* tests: remove `Equatable` conformance of `DiagnosticsEvent` and `AnyEncodable` from RevenueCat and added to test targets (where it's needed)
* Use Arrays instead of Sets in Diagnostics events to have predictable order in sent events
* tests: compare Sets vs Arrays in unit test
The conversion from Array --> Set --> Array may change the order of the elements
* remove `DiagnosticsEvent+Equatable` from some targets
* PR #4839 fixes
* remove `AnyEncodable+Equatable.swift` from some targets
Initial components merge. Notes:
- Linting enabled except for public documentation which will come as the
API matures and stabilizes.
- Took out unused files (tier-related ones), which will come back in a
future version. The comments were useful and will be referenced when
they come back so thank you for the comments on these.
- Left in tvOS and watchOS availability checks for now - may revisit
this later.
- Everything is codable.
- Features added:
- Layout components allow other components to be laid out along x/y/z
axes.
- Text component supports font weight. (Changing actual font will come
later.)
- LinkButton component links out to external website of choice.
- RemoteImage allows the image to be arbitrarily styled by the calling
code by passing the image back in a closure.
- Image component supports corner rounding an overlaid gradient. (These
will likely be pulled out into common code somewhere in a future PR.)
- Support for OfferingResponse that includes a separate
`PaywallComponentsData` structure, which is separate from `PaywallData`
used for template-based paywalls.
---------
Co-authored-by: Josh Holtz <me@joshholtz.com>
Adds missing user-facing error alerts, makes the error messages more
readable and uses `Error` rather than `NSError` as the type to use when
passing errors for presentation.
resolves PWL-458
This allows decorating a `String` property in a `Decodable` type so it
ensures it gets converted to `nil` if it's empty.
It will be used for `PaywallData`.
Thanks to @aboedo for the suggestion.
### Changes
- Moved signature verification files and tests to new `Security` folder
- Moved `CacheFetchPolicy` inside `Caching`
- Split files inside `Misc` into subfolders