@adapty/capacitor 3.16.1 → 3.16.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (278) hide show
  1. package/dist/esm/adapters.d.ts +16 -0
  2. package/dist/esm/adapters.js +31 -0
  3. package/dist/esm/adapters.js.map +1 -0
  4. package/dist/esm/adapty-emitter.js +2 -2
  5. package/dist/esm/adapty-emitter.js.map +1 -1
  6. package/dist/esm/adapty.d.ts +8 -6
  7. package/dist/esm/adapty.js +40 -78
  8. package/dist/esm/adapty.js.map +1 -1
  9. package/dist/esm/coders/factory.d.ts +6 -0
  10. package/dist/esm/coders/factory.js +11 -0
  11. package/dist/esm/coders/factory.js.map +1 -0
  12. package/dist/esm/coders/parse-onboarding.d.ts +3 -0
  13. package/dist/esm/coders/parse-onboarding.js +4 -0
  14. package/dist/esm/coders/parse-onboarding.js.map +1 -0
  15. package/dist/esm/coders/parse-paywall.d.ts +3 -0
  16. package/dist/esm/coders/parse-paywall.js +4 -0
  17. package/dist/esm/coders/parse-paywall.js.map +1 -0
  18. package/dist/esm/coders/parse.d.ts +5 -0
  19. package/dist/esm/coders/parse.js +5 -0
  20. package/dist/esm/coders/parse.js.map +1 -0
  21. package/dist/esm/default-configs.js +1 -1
  22. package/dist/esm/default-configs.js.map +1 -1
  23. package/dist/esm/index.d.ts +5 -7
  24. package/dist/esm/index.js +3 -5
  25. package/dist/esm/index.js.map +1 -1
  26. package/dist/esm/logger/index.d.ts +2 -0
  27. package/dist/esm/logger/index.js +2 -0
  28. package/dist/esm/logger/index.js.map +1 -0
  29. package/dist/esm/types/adapty-plugin.d.ts +4 -4
  30. package/dist/esm/types/adapty-plugin.js.map +1 -1
  31. package/dist/esm/types/configs.d.ts +2 -2
  32. package/dist/esm/types/configs.js.map +1 -1
  33. package/dist/esm/types/index.d.ts +5 -0
  34. package/dist/esm/types/index.js +6 -0
  35. package/dist/esm/types/index.js.map +1 -0
  36. package/dist/esm/types/inputs.d.ts +1 -0
  37. package/dist/esm/types/inputs.js +2 -0
  38. package/dist/esm/types/inputs.js.map +1 -0
  39. package/dist/esm/types/method-types.d.ts +1 -0
  40. package/dist/esm/types/method-types.js +2 -0
  41. package/dist/esm/types/method-types.js.map +1 -0
  42. package/dist/esm/types/onboarding-events.d.ts +1 -0
  43. package/dist/esm/types/onboarding-events.js +2 -0
  44. package/dist/esm/types/onboarding-events.js.map +1 -0
  45. package/dist/esm/types/paywall-events.d.ts +1 -0
  46. package/dist/esm/types/paywall-events.js +2 -0
  47. package/dist/esm/types/paywall-events.js.map +1 -0
  48. package/dist/esm/ui-builder/base-view-emitter.d.ts +1 -1
  49. package/dist/esm/ui-builder/base-view-emitter.js +1 -1
  50. package/dist/esm/ui-builder/base-view-emitter.js.map +1 -1
  51. package/dist/esm/ui-builder/create-onboarding-view.d.ts +1 -1
  52. package/dist/esm/ui-builder/create-onboarding-view.js.map +1 -1
  53. package/dist/esm/ui-builder/create-paywall-view.d.ts +1 -1
  54. package/dist/esm/ui-builder/create-paywall-view.js.map +1 -1
  55. package/dist/esm/ui-builder/onboarding-view-controller.d.ts +1 -1
  56. package/dist/esm/ui-builder/onboarding-view-controller.js +7 -9
  57. package/dist/esm/ui-builder/onboarding-view-controller.js.map +1 -1
  58. package/dist/esm/ui-builder/onboarding-view-emitter.d.ts +2 -2
  59. package/dist/esm/ui-builder/onboarding-view-emitter.js +2 -2
  60. package/dist/esm/ui-builder/onboarding-view-emitter.js.map +1 -1
  61. package/dist/esm/ui-builder/paywall-view-controller.d.ts +1 -1
  62. package/dist/esm/ui-builder/paywall-view-controller.js +6 -8
  63. package/dist/esm/ui-builder/paywall-view-controller.js.map +1 -1
  64. package/dist/esm/ui-builder/paywall-view-emitter.d.ts +2 -2
  65. package/dist/esm/ui-builder/paywall-view-emitter.js +2 -2
  66. package/dist/esm/ui-builder/paywall-view-emitter.js.map +1 -1
  67. package/dist/esm/ui-builder/types.d.ts +3 -3
  68. package/dist/esm/ui-builder/types.js +1 -1
  69. package/dist/esm/ui-builder/types.js.map +1 -1
  70. package/dist/esm/utils/index.d.ts +1 -0
  71. package/dist/esm/utils/index.js +2 -0
  72. package/dist/esm/utils/index.js.map +1 -0
  73. package/dist/esm/version.d.ts +1 -1
  74. package/dist/esm/version.js +1 -1
  75. package/dist/esm/version.js.map +1 -1
  76. package/dist/plugin.cjs.js +2882 -2777
  77. package/dist/plugin.cjs.js.map +1 -1
  78. package/dist/plugin.js +5321 -5216
  79. package/dist/plugin.js.map +1 -1
  80. package/package.json +11 -7
  81. package/dist/esm/coder-registry.d.ts +0 -27
  82. package/dist/esm/coder-registry.js +0 -25
  83. package/dist/esm/coder-registry.js.map +0 -1
  84. package/dist/esm/shared/adapty-error.d.ts +0 -19
  85. package/dist/esm/shared/adapty-error.js +0 -46
  86. package/dist/esm/shared/adapty-error.js.map +0 -1
  87. package/dist/esm/shared/coders/adapty-access-level.d.ts +0 -10
  88. package/dist/esm/shared/coders/adapty-access-level.js +0 -113
  89. package/dist/esm/shared/coders/adapty-access-level.js.map +0 -1
  90. package/dist/esm/shared/coders/adapty-configuration.d.ts +0 -8
  91. package/dist/esm/shared/coders/adapty-configuration.js +0 -68
  92. package/dist/esm/shared/coders/adapty-configuration.js.map +0 -1
  93. package/dist/esm/shared/coders/adapty-discount-phase.d.ts +0 -10
  94. package/dist/esm/shared/coders/adapty-discount-phase.js +0 -39
  95. package/dist/esm/shared/coders/adapty-discount-phase.js.map +0 -1
  96. package/dist/esm/shared/coders/adapty-identify-params.d.ts +0 -11
  97. package/dist/esm/shared/coders/adapty-identify-params.js +0 -19
  98. package/dist/esm/shared/coders/adapty-identify-params.js.map +0 -1
  99. package/dist/esm/shared/coders/adapty-installation-details.d.ts +0 -7
  100. package/dist/esm/shared/coders/adapty-installation-details.js +0 -25
  101. package/dist/esm/shared/coders/adapty-installation-details.js.map +0 -1
  102. package/dist/esm/shared/coders/adapty-installation-status.d.ts +0 -7
  103. package/dist/esm/shared/coders/adapty-installation-status.js +0 -42
  104. package/dist/esm/shared/coders/adapty-installation-status.js.map +0 -1
  105. package/dist/esm/shared/coders/adapty-native-error.d.ts +0 -14
  106. package/dist/esm/shared/coders/adapty-native-error.js +0 -21
  107. package/dist/esm/shared/coders/adapty-native-error.js.map +0 -1
  108. package/dist/esm/shared/coders/adapty-non-subscription.d.ts +0 -10
  109. package/dist/esm/shared/coders/adapty-non-subscription.js +0 -31
  110. package/dist/esm/shared/coders/adapty-non-subscription.js.map +0 -1
  111. package/dist/esm/shared/coders/adapty-onboarding-builder.d.ts +0 -10
  112. package/dist/esm/shared/coders/adapty-onboarding-builder.js +0 -14
  113. package/dist/esm/shared/coders/adapty-onboarding-builder.js.map +0 -1
  114. package/dist/esm/shared/coders/adapty-onboarding.d.ts +0 -13
  115. package/dist/esm/shared/coders/adapty-onboarding.js +0 -55
  116. package/dist/esm/shared/coders/adapty-onboarding.js.map +0 -1
  117. package/dist/esm/shared/coders/adapty-paywall-builder.d.ts +0 -10
  118. package/dist/esm/shared/coders/adapty-paywall-builder.js +0 -19
  119. package/dist/esm/shared/coders/adapty-paywall-builder.js.map +0 -1
  120. package/dist/esm/shared/coders/adapty-paywall-product.d.ts +0 -11
  121. package/dist/esm/shared/coders/adapty-paywall-product.js +0 -94
  122. package/dist/esm/shared/coders/adapty-paywall-product.js.map +0 -1
  123. package/dist/esm/shared/coders/adapty-paywall.d.ts +0 -13
  124. package/dist/esm/shared/coders/adapty-paywall.js +0 -75
  125. package/dist/esm/shared/coders/adapty-paywall.js.map +0 -1
  126. package/dist/esm/shared/coders/adapty-placement.d.ts +0 -10
  127. package/dist/esm/shared/coders/adapty-placement.js +0 -23
  128. package/dist/esm/shared/coders/adapty-placement.js.map +0 -1
  129. package/dist/esm/shared/coders/adapty-price.d.ts +0 -10
  130. package/dist/esm/shared/coders/adapty-price.js +0 -29
  131. package/dist/esm/shared/coders/adapty-price.js.map +0 -1
  132. package/dist/esm/shared/coders/adapty-profile-parameters.d.ts +0 -10
  133. package/dist/esm/shared/coders/adapty-profile-parameters.js +0 -30
  134. package/dist/esm/shared/coders/adapty-profile-parameters.js.map +0 -1
  135. package/dist/esm/shared/coders/adapty-profile.d.ts +0 -10
  136. package/dist/esm/shared/coders/adapty-profile.js +0 -47
  137. package/dist/esm/shared/coders/adapty-profile.js.map +0 -1
  138. package/dist/esm/shared/coders/adapty-purchase-params.d.ts +0 -7
  139. package/dist/esm/shared/coders/adapty-purchase-params.js +0 -37
  140. package/dist/esm/shared/coders/adapty-purchase-params.js.map +0 -1
  141. package/dist/esm/shared/coders/adapty-purchase-result.d.ts +0 -12
  142. package/dist/esm/shared/coders/adapty-purchase-result.js +0 -54
  143. package/dist/esm/shared/coders/adapty-purchase-result.js.map +0 -1
  144. package/dist/esm/shared/coders/adapty-remote-config.d.ts +0 -13
  145. package/dist/esm/shared/coders/adapty-remote-config.js +0 -41
  146. package/dist/esm/shared/coders/adapty-remote-config.js.map +0 -1
  147. package/dist/esm/shared/coders/adapty-subscription-details.d.ts +0 -11
  148. package/dist/esm/shared/coders/adapty-subscription-details.js +0 -64
  149. package/dist/esm/shared/coders/adapty-subscription-details.js.map +0 -1
  150. package/dist/esm/shared/coders/adapty-subscription-offer-identifier.d.ts +0 -10
  151. package/dist/esm/shared/coders/adapty-subscription-offer-identifier.js +0 -19
  152. package/dist/esm/shared/coders/adapty-subscription-offer-identifier.js.map +0 -1
  153. package/dist/esm/shared/coders/adapty-subscription-offer.d.ts +0 -11
  154. package/dist/esm/shared/coders/adapty-subscription-offer.js +0 -50
  155. package/dist/esm/shared/coders/adapty-subscription-offer.js.map +0 -1
  156. package/dist/esm/shared/coders/adapty-subscription-period.d.ts +0 -10
  157. package/dist/esm/shared/coders/adapty-subscription-period.js +0 -11
  158. package/dist/esm/shared/coders/adapty-subscription-period.js.map +0 -1
  159. package/dist/esm/shared/coders/adapty-subscription.d.ts +0 -10
  160. package/dist/esm/shared/coders/adapty-subscription.js +0 -116
  161. package/dist/esm/shared/coders/adapty-subscription.js.map +0 -1
  162. package/dist/esm/shared/coders/adapty-ui-create-onboarding-view-params.d.ts +0 -8
  163. package/dist/esm/shared/coders/adapty-ui-create-onboarding-view-params.js +0 -10
  164. package/dist/esm/shared/coders/adapty-ui-create-onboarding-view-params.js.map +0 -1
  165. package/dist/esm/shared/coders/adapty-ui-create-paywall-view-params.d.ts +0 -18
  166. package/dist/esm/shared/coders/adapty-ui-create-paywall-view-params.js +0 -142
  167. package/dist/esm/shared/coders/adapty-ui-create-paywall-view-params.js.map +0 -1
  168. package/dist/esm/shared/coders/adapty-ui-media-cache.d.ts +0 -10
  169. package/dist/esm/shared/coders/adapty-ui-media-cache.js +0 -24
  170. package/dist/esm/shared/coders/adapty-ui-media-cache.js.map +0 -1
  171. package/dist/esm/shared/coders/adapty-ui-onboarding-meta.d.ts +0 -10
  172. package/dist/esm/shared/coders/adapty-ui-onboarding-meta.js +0 -29
  173. package/dist/esm/shared/coders/adapty-ui-onboarding-meta.js.map +0 -1
  174. package/dist/esm/shared/coders/adapty-ui-onboarding-state-params.d.ts +0 -10
  175. package/dist/esm/shared/coders/adapty-ui-onboarding-state-params.js +0 -24
  176. package/dist/esm/shared/coders/adapty-ui-onboarding-state-params.js.map +0 -1
  177. package/dist/esm/shared/coders/adapty-ui-onboarding-state-updated-action.d.ts +0 -14
  178. package/dist/esm/shared/coders/adapty-ui-onboarding-state-updated-action.js +0 -55
  179. package/dist/esm/shared/coders/adapty-ui-onboarding-state-updated-action.js.map +0 -1
  180. package/dist/esm/shared/coders/array.d.ts +0 -15
  181. package/dist/esm/shared/coders/array.js +0 -34
  182. package/dist/esm/shared/coders/array.js.map +0 -1
  183. package/dist/esm/shared/coders/bridge-error.d.ts +0 -13
  184. package/dist/esm/shared/coders/bridge-error.js +0 -78
  185. package/dist/esm/shared/coders/bridge-error.js.map +0 -1
  186. package/dist/esm/shared/coders/coder.d.ts +0 -13
  187. package/dist/esm/shared/coders/coder.js +0 -118
  188. package/dist/esm/shared/coders/coder.js.map +0 -1
  189. package/dist/esm/shared/coders/date.d.ts +0 -9
  190. package/dist/esm/shared/coders/date.js +0 -36
  191. package/dist/esm/shared/coders/date.js.map +0 -1
  192. package/dist/esm/shared/coders/error-coder.d.ts +0 -6
  193. package/dist/esm/shared/coders/error-coder.js +0 -2
  194. package/dist/esm/shared/coders/error-coder.js.map +0 -1
  195. package/dist/esm/shared/coders/hashmap.d.ts +0 -7
  196. package/dist/esm/shared/coders/hashmap.js +0 -25
  197. package/dist/esm/shared/coders/hashmap.js.map +0 -1
  198. package/dist/esm/shared/coders/json.d.ts +0 -8
  199. package/dist/esm/shared/coders/json.js +0 -15
  200. package/dist/esm/shared/coders/json.js.map +0 -1
  201. package/dist/esm/shared/coders/parse-onboarding.d.ts +0 -3
  202. package/dist/esm/shared/coders/parse-onboarding.js +0 -86
  203. package/dist/esm/shared/coders/parse-onboarding.js.map +0 -1
  204. package/dist/esm/shared/coders/parse-paywall.d.ts +0 -4
  205. package/dist/esm/shared/coders/parse-paywall.js +0 -141
  206. package/dist/esm/shared/coders/parse-paywall.js.map +0 -1
  207. package/dist/esm/shared/coders/parse.d.ts +0 -6
  208. package/dist/esm/shared/coders/parse.js +0 -135
  209. package/dist/esm/shared/coders/parse.js.map +0 -1
  210. package/dist/esm/shared/coders/product-reference.d.ts +0 -10
  211. package/dist/esm/shared/coders/product-reference.js +0 -53
  212. package/dist/esm/shared/coders/product-reference.js.map +0 -1
  213. package/dist/esm/shared/coders/types.d.ts +0 -23
  214. package/dist/esm/shared/coders/types.js +0 -2
  215. package/dist/esm/shared/coders/types.js.map +0 -1
  216. package/dist/esm/shared/coders/utils.d.ts +0 -18
  217. package/dist/esm/shared/coders/utils.js +0 -50
  218. package/dist/esm/shared/coders/utils.js.map +0 -1
  219. package/dist/esm/shared/constants.d.ts +0 -42
  220. package/dist/esm/shared/constants.js +0 -37
  221. package/dist/esm/shared/constants.js.map +0 -1
  222. package/dist/esm/shared/index.d.ts +0 -3
  223. package/dist/esm/shared/index.js +0 -4
  224. package/dist/esm/shared/index.js.map +0 -1
  225. package/dist/esm/shared/logger/console-sink.d.ts +0 -2
  226. package/dist/esm/shared/logger/console-sink.js +0 -23
  227. package/dist/esm/shared/logger/console-sink.js.map +0 -1
  228. package/dist/esm/shared/logger/index.d.ts +0 -5
  229. package/dist/esm/shared/logger/index.js +0 -5
  230. package/dist/esm/shared/logger/index.js.map +0 -1
  231. package/dist/esm/shared/logger/log-context.d.ts +0 -23
  232. package/dist/esm/shared/logger/log-context.js +0 -61
  233. package/dist/esm/shared/logger/log-context.js.map +0 -1
  234. package/dist/esm/shared/logger/log-scope.d.ts +0 -25
  235. package/dist/esm/shared/logger/log-scope.js +0 -26
  236. package/dist/esm/shared/logger/log-scope.js.map +0 -1
  237. package/dist/esm/shared/logger/log.d.ts +0 -34
  238. package/dist/esm/shared/logger/log.js +0 -110
  239. package/dist/esm/shared/logger/log.js.map +0 -1
  240. package/dist/esm/shared/logger/types.d.ts +0 -20
  241. package/dist/esm/shared/logger/types.js +0 -2
  242. package/dist/esm/shared/logger/types.js.map +0 -1
  243. package/dist/esm/shared/types/bridge.d.ts +0 -50
  244. package/dist/esm/shared/types/bridge.js +0 -78
  245. package/dist/esm/shared/types/bridge.js.map +0 -1
  246. package/dist/esm/shared/types/error.d.ts +0 -325
  247. package/dist/esm/shared/types/error.js +0 -176
  248. package/dist/esm/shared/types/error.js.map +0 -1
  249. package/dist/esm/shared/types/index.d.ts +0 -718
  250. package/dist/esm/shared/types/index.js +0 -14
  251. package/dist/esm/shared/types/index.js.map +0 -1
  252. package/dist/esm/shared/types/inputs.d.ts +0 -238
  253. package/dist/esm/shared/types/inputs.js +0 -42
  254. package/dist/esm/shared/types/inputs.js.map +0 -1
  255. package/dist/esm/shared/types/method-types.d.ts +0 -86
  256. package/dist/esm/shared/types/method-types.js +0 -13
  257. package/dist/esm/shared/types/method-types.js.map +0 -1
  258. package/dist/esm/shared/types/onboarding-events.d.ts +0 -60
  259. package/dist/esm/shared/types/onboarding-events.js +0 -11
  260. package/dist/esm/shared/types/onboarding-events.js.map +0 -1
  261. package/dist/esm/shared/types/paywall-events.d.ts +0 -84
  262. package/dist/esm/shared/types/paywall-events.js +0 -16
  263. package/dist/esm/shared/types/paywall-events.js.map +0 -1
  264. package/dist/esm/shared/utils/compact-object.d.ts +0 -6
  265. package/dist/esm/shared/utils/compact-object.js +0 -9
  266. package/dist/esm/shared/utils/compact-object.js.map +0 -1
  267. package/dist/esm/shared/utils/map-values.d.ts +0 -8
  268. package/dist/esm/shared/utils/map-values.js +0 -11
  269. package/dist/esm/shared/utils/map-values.js.map +0 -1
  270. package/dist/esm/shared/utils/merge-options.d.ts +0 -7
  271. package/dist/esm/shared/utils/merge-options.js +0 -93
  272. package/dist/esm/shared/utils/merge-options.js.map +0 -1
  273. package/dist/esm/shared/utils/platform.d.ts +0 -2
  274. package/dist/esm/shared/utils/platform.js +0 -5
  275. package/dist/esm/shared/utils/platform.js.map +0 -1
  276. package/dist/esm/shared/utils/with-error-context.d.ts +0 -7
  277. package/dist/esm/shared/utils/with-error-context.js +0 -33
  278. package/dist/esm/shared/utils/with-error-context.js.map +0 -1
@@ -1,118 +0,0 @@
1
- import { AdaptyError } from '../adapty-error';
2
- // import { Platform } from 'react-native'; // Not available in Capacitor
3
- // Mock Platform for Capacitor
4
- const Platform = {
5
- OS: 'web'
6
- };
7
- export class Coder {
8
- encode(data) {
9
- return this.encodeWithProperties(data, this.properties);
10
- }
11
- // From vendor_product_id to productId
12
- decode(data) {
13
- return this.decodeWithProperties(data, this.properties);
14
- }
15
- isType(value, type) {
16
- switch (type) {
17
- case 'string':
18
- case 'boolean':
19
- case 'number':
20
- return typeof value === type;
21
- case 'object':
22
- return value !== null && typeof value === 'object';
23
- case 'array':
24
- return Array.isArray(value);
25
- }
26
- }
27
- getNestedValue(obj, key) {
28
- const keys = key.split('.');
29
- let current;
30
- if (typeof obj === 'string') {
31
- try {
32
- current = JSON.parse(obj);
33
- }
34
- catch (error) {
35
- return undefined;
36
- }
37
- }
38
- else {
39
- current = obj;
40
- }
41
- for (let i = 0; i < keys.length; i++) {
42
- const key = keys[i];
43
- if (current[key] !== undefined) {
44
- current = current[key];
45
- }
46
- else {
47
- return undefined;
48
- }
49
- }
50
- return current;
51
- }
52
- assignNestedValue(obj, key, value) {
53
- const keys = String(key).split('.');
54
- let currentObj = obj;
55
- for (let i = 0; i < keys.length - 1; i++) {
56
- const key = keys[i];
57
- if (currentObj[key] === undefined) {
58
- currentObj[key] = {};
59
- }
60
- currentObj = currentObj[key];
61
- }
62
- currentObj[keys[keys.length - 1]] = value;
63
- return obj;
64
- }
65
- encodeWithProperties(data, properties) {
66
- const result = {};
67
- for (const key in data) {
68
- if (key === 'ios' || key === 'android') {
69
- // Read properties from ios/android platform keys and flatten them
70
- const platformResult = this.encodeWithProperties(data[key], properties[key]);
71
- Object.assign(result, platformResult);
72
- continue;
73
- }
74
- const property = properties[key];
75
- if (!property) {
76
- throw AdaptyError.failedToEncode(`Failed to find encoder for property "${key}"`);
77
- }
78
- const converter = property.converter;
79
- this.assignNestedValue(result, property.key, converter ? converter.encode(data[key]) : data[key]);
80
- }
81
- return result;
82
- }
83
- decodeWithProperties(data, properties, platform) {
84
- const result = {};
85
- for (const key in properties) {
86
- if (key === 'android' || key === 'ios') {
87
- // Add ios/android property and fill platform data there
88
- result[key] =
89
- this.decodeWithProperties(data, properties[key], key);
90
- continue;
91
- }
92
- const property = properties[key];
93
- if (!property) {
94
- throw AdaptyError.failedToDecode(`Failed to find decoder for property "${key}"`);
95
- }
96
- const value = this.getNestedValue(data, property.key);
97
- if (property.required &&
98
- value === undefined &&
99
- (!platform || platform == Platform.OS)) {
100
- throw AdaptyError.failedToDecode(`Failed to decode native response, because it is missing required property "${key}"`);
101
- }
102
- // If value is null or undefined and property is not required, continue
103
- if (value == null)
104
- continue;
105
- if (!this.isType(value, property.type)) {
106
- throw AdaptyError.failedToDecode(`Failed to decode native response, because its property "${key}" has invalid type. Expected type: ${property.type}. Received type: ${typeof value}`);
107
- }
108
- // If a converter is provided, use it to convert the value
109
- result[key] = property.converter
110
- ? property.converter.decode(value)
111
- : value;
112
- }
113
- return result;
114
- }
115
- }
116
- export class SimpleCoder extends Coder {
117
- }
118
- //# sourceMappingURL=coder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"coder.js","sourceRoot":"","sources":["../../../../src/shared/coders/coder.ts"],"names":[],"mappings":"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","sourcesContent":["import { AdaptyError } from '../adapty-error';\nimport { Converter, Properties, StrType } from './types';\n// import { Platform } from 'react-native'; // Not available in Capacitor\n// Mock Platform for Capacitor\nconst Platform = {\n OS: 'web' as 'web' | 'ios' | 'android'\n};\n\nexport abstract class Coder<\n Model extends Record<string, any>,\n CodableModel extends Partial<Model>,\n Serializable extends Record<string, any> = Record<string, any>,\n> implements Converter<CodableModel, Serializable>\n{\n protected abstract properties: Properties<CodableModel, Serializable>;\n\n encode(data: CodableModel): Serializable {\n return this.encodeWithProperties(data, this.properties);\n }\n // From vendor_product_id to productId\n decode(data: Serializable): CodableModel {\n return this.decodeWithProperties(data, this.properties);\n }\n\n protected isType(value: unknown, type: StrType<any>): boolean {\n switch (type) {\n case 'string':\n case 'boolean':\n case 'number':\n return typeof value === type;\n case 'object':\n return value !== null && typeof value === 'object';\n case 'array':\n return Array.isArray(value);\n }\n }\n\n private getNestedValue(obj: Record<string, any>, key: string): any {\n const keys = key.split('.');\n let current;\n if (typeof obj === 'string') {\n try {\n current = JSON.parse(obj);\n } catch (error) {\n return undefined;\n }\n } else {\n current = obj;\n }\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]!;\n\n if (current[key] !== undefined) {\n current = current[key];\n } else {\n return undefined;\n }\n }\n\n return current;\n }\n\n private assignNestedValue<T extends Record<string, any>>(\n obj: T,\n key: string,\n value: any,\n ): T {\n const keys = String(key).split('.');\n let currentObj: Partial<T> = obj;\n\n for (let i = 0; i < keys.length - 1; i++) {\n const key = keys[i] as keyof Partial<T>;\n\n if (currentObj[key] === undefined) {\n currentObj[key] = {} as any;\n }\n\n currentObj = currentObj[key] as any;\n }\n\n currentObj[keys[keys.length - 1] as keyof Partial<T>] = value;\n return obj;\n }\n\n private encodeWithProperties<Model extends Record<string, any>, Serializable>(\n data: Model,\n properties: Properties<Model, Serializable>,\n ): Serializable {\n const result: Partial<Serializable> = {};\n\n for (const key in data) {\n if (key === 'ios' || key === 'android') {\n // Read properties from ios/android platform keys and flatten them\n const platformResult = this.encodeWithProperties(\n data[key],\n (properties as Record<string, any>)[key],\n ) as any;\n\n Object.assign(result, platformResult);\n continue;\n }\n\n const property = properties[key as string];\n if (!property) {\n throw AdaptyError.failedToEncode(\n `Failed to find encoder for property \"${key}\"`,\n );\n }\n\n const converter = property.converter;\n\n this.assignNestedValue(\n result,\n property.key as string,\n converter ? converter.encode(data[key]) : data[key as keyof Model],\n );\n }\n\n return result as Serializable;\n }\n\n private decodeWithProperties<Serializable, Model extends Record<string, any>>(\n data: Serializable,\n properties: Properties<Model, Serializable>,\n platform?: 'ios' | 'android',\n ): Model {\n const result: Partial<Model> = {};\n\n for (const key in properties) {\n if (key === 'android' || key === 'ios') {\n // Add ios/android property and fill platform data there\n result[key as unknown as keyof typeof result] =\n this.decodeWithProperties(\n data,\n (properties as Record<string, any>)[key],\n key,\n ) as any;\n continue;\n }\n\n const property = properties[key];\n if (!property) {\n throw AdaptyError.failedToDecode(\n `Failed to find decoder for property \"${key}\"`,\n );\n }\n\n const value = this.getNestedValue(\n data as Record<string, any>,\n property.key as string,\n );\n\n if (\n property.required &&\n value === undefined &&\n (!platform || platform == Platform.OS)\n ) {\n throw AdaptyError.failedToDecode(\n `Failed to decode native response, because it is missing required property \"${key}\"`,\n );\n }\n\n // If value is null or undefined and property is not required, continue\n if (value == null) continue;\n\n if (!this.isType(value, property.type)) {\n throw AdaptyError.failedToDecode(\n `Failed to decode native response, because its property \"${key}\" has invalid type. Expected type: ${\n property.type\n }. Received type: ${typeof value}`,\n );\n }\n\n // If a converter is provided, use it to convert the value\n result[key as keyof Model] = property.converter\n ? property.converter.decode(value)\n : (value as any);\n }\n\n return result as Model;\n }\n}\n\nexport abstract class SimpleCoder<\n Model extends Record<string, any>,\n Serializable extends Record<string, any> = Record<string, any>,\n> extends Coder<Model, Model, Serializable> {}\n"]}
@@ -1,9 +0,0 @@
1
- import type { Converter } from './types';
2
- /**
3
- * Format: yyyy-MM-dd'T'HH:mm:ss.SSSZ
4
- * OpenAPI: Output.Date
5
- */
6
- export declare class DateCoder implements Converter<Date, string> {
7
- decode(input: string): Date;
8
- encode(value: Date): string;
9
- }
@@ -1,36 +0,0 @@
1
- import { AdaptyError } from '../adapty-error';
2
- /**
3
- * Format: yyyy-MM-dd'T'HH:mm:ss.SSSZ
4
- * OpenAPI: Output.Date
5
- */
6
- export class DateCoder {
7
- decode(input) {
8
- var _a, _b, _c, _d, _e, _f;
9
- let pureValue = input;
10
- if (!input.endsWith('Z')) {
11
- // React Native seems to have an inconsistent behaviour
12
- // with dates with timezone offset
13
- // It is not handled with custom libs like dayjs
14
- // So we just remove the timezone offset if possible
15
- // Android SDK returns the following format,
16
- // that resulted in an invalid date for some customers
17
- // `2023-02-24T07:16:28.000000+0000`
18
- // solution is:
19
- // 1. Replace "+0000" with "Z"
20
- // 2. Replace microsecs with 0 millisecs
21
- // with the timezone offset removed
22
- const dateParts = input.split(/[-T:.Z]/);
23
- const date = new Date(Date.UTC(parseInt((_a = dateParts[0]) !== null && _a !== void 0 ? _a : '0', 10), parseInt((_b = dateParts[1]) !== null && _b !== void 0 ? _b : '0', 10) - 1, parseInt((_c = dateParts[2]) !== null && _c !== void 0 ? _c : '0', 10), parseInt((_d = dateParts[3]) !== null && _d !== void 0 ? _d : '0', 10), parseInt((_e = dateParts[4]) !== null && _e !== void 0 ? _e : '0', 10), parseInt((_f = dateParts[5]) !== null && _f !== void 0 ? _f : '0', 10)));
24
- pureValue = date.toISOString();
25
- }
26
- const parsedValue = Date.parse(pureValue);
27
- if (isNaN(parsedValue)) {
28
- throw AdaptyError.failedToDecode(`Failed to decode a date string into JS Date. String value: ${pureValue}`);
29
- }
30
- return new Date(parsedValue);
31
- }
32
- encode(value) {
33
- return value.toISOString();
34
- }
35
- }
36
- //# sourceMappingURL=date.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"date.js","sourceRoot":"","sources":["../../../../src/shared/coders/date.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG9C;;;GAGG;AACH,MAAM,OAAO,SAAS;IACpB,MAAM,CAAC,KAAa;;QAClB,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,uDAAuD;YACvD,kCAAkC;YAClC,gDAAgD;YAChD,oDAAoD;YAEpD,4CAA4C;YAC5C,sDAAsD;YACtD,oCAAoC;YACpC,eAAe;YACf,8BAA8B;YAC9B,wCAAwC;YAExC,mCAAmC;YACnC,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACzC,MAAM,IAAI,GAAG,IAAI,IAAI,CACnB,IAAI,CAAC,GAAG,CACN,QAAQ,CAAC,MAAA,SAAS,CAAC,CAAC,CAAC,mCAAI,GAAG,EAAE,EAAE,CAAC,EACjC,QAAQ,CAAC,MAAA,SAAS,CAAC,CAAC,CAAC,mCAAI,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EACrC,QAAQ,CAAC,MAAA,SAAS,CAAC,CAAC,CAAC,mCAAI,GAAG,EAAE,EAAE,CAAC,EACjC,QAAQ,CAAC,MAAA,SAAS,CAAC,CAAC,CAAC,mCAAI,GAAG,EAAE,EAAE,CAAC,EACjC,QAAQ,CAAC,MAAA,SAAS,CAAC,CAAC,CAAC,mCAAI,GAAG,EAAE,EAAE,CAAC,EACjC,QAAQ,CAAC,MAAA,SAAS,CAAC,CAAC,CAAC,mCAAI,GAAG,EAAE,EAAE,CAAC,CAClC,CACF,CAAC;YACF,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;YACvB,MAAM,WAAW,CAAC,cAAc,CAC9B,8DAA8D,SAAS,EAAE,CAC1E,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,KAAW;QAChB,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;IAC7B,CAAC;CACF","sourcesContent":["import { AdaptyError } from '../adapty-error';\nimport type { Converter } from './types';\n\n/**\n * Format: yyyy-MM-dd'T'HH:mm:ss.SSSZ\n * OpenAPI: Output.Date\n */\nexport class DateCoder implements Converter<Date, string> {\n decode(input: string): Date {\n let pureValue = input;\n\n if (!input.endsWith('Z')) {\n // React Native seems to have an inconsistent behaviour\n // with dates with timezone offset\n // It is not handled with custom libs like dayjs\n // So we just remove the timezone offset if possible\n\n // Android SDK returns the following format,\n // that resulted in an invalid date for some customers\n // `2023-02-24T07:16:28.000000+0000`\n // solution is:\n // 1. Replace \"+0000\" with \"Z\"\n // 2. Replace microsecs with 0 millisecs\n\n // with the timezone offset removed\n const dateParts = input.split(/[-T:.Z]/);\n const date = new Date(\n Date.UTC(\n parseInt(dateParts[0] ?? '0', 10),\n parseInt(dateParts[1] ?? '0', 10) - 1,\n parseInt(dateParts[2] ?? '0', 10),\n parseInt(dateParts[3] ?? '0', 10),\n parseInt(dateParts[4] ?? '0', 10),\n parseInt(dateParts[5] ?? '0', 10),\n ),\n );\n pureValue = date.toISOString();\n }\n\n const parsedValue = Date.parse(pureValue);\n if (isNaN(parsedValue)) {\n throw AdaptyError.failedToDecode(\n `Failed to decode a date string into JS Date. String value: ${pureValue}`,\n );\n }\n\n return new Date(parsedValue);\n }\n\n encode(value: Date): string {\n return value.toISOString();\n }\n}\n"]}
@@ -1,6 +0,0 @@
1
- import { AdaptyError } from '../adapty-error';
2
- import { Converter } from './types';
3
- export interface ErrorConverter<Model extends Record<string, any>> extends Converter<Model, any> {
4
- type: 'error';
5
- getError: (data: Model) => AdaptyError;
6
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=error-coder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-coder.js","sourceRoot":"","sources":["../../../../src/shared/coders/error-coder.ts"],"names":[],"mappings":"","sourcesContent":["import { AdaptyError } from '../adapty-error';\nimport { Converter } from './types';\n\nexport interface ErrorConverter<Model extends Record<string, any>>\n extends Converter<Model, any> {\n type: 'error';\n getError: (data: Model) => AdaptyError;\n}\n"]}
@@ -1,7 +0,0 @@
1
- import type { Converter } from './types';
2
- export declare class HashmapCoder<T extends Converter<any, any>> implements Converter<Record<string, any>, Record<string, any>> {
3
- private coder;
4
- constructor(coder: T | null);
5
- decode(input: Record<string, any>): Record<string, any>;
6
- encode(value: Record<string, any>): Record<string, unknown>;
7
- }
@@ -1,25 +0,0 @@
1
- // Coder for Record<string, T>
2
- export class HashmapCoder {
3
- constructor(coder) {
4
- this.coder = coder;
5
- }
6
- decode(input) {
7
- const result = {};
8
- Object.keys(input).forEach(key => {
9
- var _a, _b;
10
- const property = input[key];
11
- result[key] = (_b = (_a = this.coder) === null || _a === void 0 ? void 0 : _a.decode(property)) !== null && _b !== void 0 ? _b : property;
12
- });
13
- return result;
14
- }
15
- encode(value) {
16
- const result = {};
17
- Object.keys(value).forEach(key => {
18
- var _a, _b;
19
- const property = value[key];
20
- result[key] = (_b = (_a = this.coder) === null || _a === void 0 ? void 0 : _a.encode(property)) !== null && _b !== void 0 ? _b : property;
21
- });
22
- return result;
23
- }
24
- }
25
- //# sourceMappingURL=hashmap.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hashmap.js","sourceRoot":"","sources":["../../../../src/shared/coders/hashmap.ts"],"names":[],"mappings":"AAEA,8BAA8B;AAC9B,MAAM,OAAO,YAAY;IAKvB,YAAY,KAAe;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,KAA0B;QAC/B,MAAM,MAAM,GAAsB,EAAE,CAAC;QAErC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;;YAC/B,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAa,CAAC,CAAC;YAEtC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,MAAM,CAAC,QAAQ,CAAC,mCAAI,QAAQ,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAA0B;QAC/B,MAAM,MAAM,GAA4B,EAAE,CAAC;QAE3C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;;YAC/B,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAa,CAAC,CAAC;YACtC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,MAAM,CAAC,QAAQ,CAAC,mCAAI,QAAQ,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;CACF","sourcesContent":["import type { Converter } from './types';\n\n// Coder for Record<string, T>\nexport class HashmapCoder<T extends Converter<any, any>>\n implements Converter<Record<string, any>, Record<string, any>>\n{\n private coder: T | null;\n\n constructor(coder: T | null) {\n this.coder = coder;\n }\n\n decode(input: Record<string, any>): Record<string, any> {\n const result: Record<string, T> = {};\n\n Object.keys(input).forEach(key => {\n const property = input[key as string];\n\n result[key] = this.coder?.decode(property) ?? property;\n });\n\n return result;\n }\n\n encode(value: Record<string, any>): Record<string, unknown> {\n const result: Record<string, unknown> = {};\n\n Object.keys(value).forEach(key => {\n const property = value[key as string];\n result[key] = this.coder?.encode(property) ?? property;\n });\n\n return result;\n }\n}\n"]}
@@ -1,8 +0,0 @@
1
- import { Converter } from './types';
2
- type Model = any;
3
- type Serialized = string;
4
- export declare class JSONCoder implements Converter<Model, Serialized> {
5
- decode(input: Serialized): Model;
6
- encode(value: Model): Serialized;
7
- }
8
- export {};
@@ -1,15 +0,0 @@
1
- export class JSONCoder {
2
- decode(input) {
3
- if (!input) {
4
- return {};
5
- }
6
- return JSON.parse(input);
7
- }
8
- encode(value) {
9
- if (Object.keys(value).length === 0) {
10
- return '';
11
- }
12
- return JSON.stringify(value);
13
- }
14
- }
15
- //# sourceMappingURL=json.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"json.js","sourceRoot":"","sources":["../../../../src/shared/coders/json.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,SAAS;IACpB,MAAM,CAAC,KAAiB;QACtB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IACD,MAAM,CAAC,KAAY;QACjB,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;CACF","sourcesContent":["import { Converter } from './types';\n\ntype Model = any;\ntype Serialized = string;\n\nexport class JSONCoder implements Converter<Model, Serialized> {\n decode(input: Serialized): Model {\n if (!input) {\n return {};\n }\n\n return JSON.parse(input);\n }\n encode(value: Model): Serialized {\n if (Object.keys(value).length === 0) {\n return '';\n }\n return JSON.stringify(value);\n }\n}\n"]}
@@ -1,3 +0,0 @@
1
- import { LogContext } from '../logger';
2
- import { type ParsedOnboardingEvent } from '../types/onboarding-events';
3
- export declare function parseOnboardingEvent(input: string, ctx?: LogContext): ParsedOnboardingEvent | null;
@@ -1,86 +0,0 @@
1
- import { AdaptyError } from '../adapty-error';
2
- import { AdaptyNativeErrorCoder } from './adapty-native-error';
3
- import { AdaptyUiOnboardingMetaCoder } from './adapty-ui-onboarding-meta';
4
- import { AdaptyUiOnboardingStateUpdatedActionCoder } from './adapty-ui-onboarding-state-updated-action';
5
- import { OnboardingEventId } from '../types/onboarding-events';
6
- // Parser
7
- export function parseOnboardingEvent(input, ctx) {
8
- var _a;
9
- let obj;
10
- try {
11
- obj = JSON.parse(input);
12
- }
13
- catch (error) {
14
- throw AdaptyError.failedToDecode(`Failed to decode event: ${error === null || error === void 0 ? void 0 : error.message}`);
15
- }
16
- const eventId = obj['id'];
17
- if (!(eventId === null || eventId === void 0 ? void 0 : eventId.startsWith('onboarding_'))) {
18
- return null;
19
- }
20
- const viewObj = obj['view'];
21
- const view = {
22
- id: viewObj['id'],
23
- placementId: viewObj['placement_id'],
24
- variationId: viewObj['variation_id'],
25
- };
26
- const decodeMeta = () => getOnboardingCoder('meta', ctx).decode(obj['meta']);
27
- switch (eventId) {
28
- case OnboardingEventId.Close:
29
- case OnboardingEventId.Custom:
30
- case OnboardingEventId.Paywall:
31
- return {
32
- id: eventId,
33
- view,
34
- actionId: (_a = obj['action_id']) !== null && _a !== void 0 ? _a : '',
35
- meta: decodeMeta(),
36
- };
37
- case OnboardingEventId.StateUpdated:
38
- return {
39
- id: eventId,
40
- view,
41
- action: getOnboardingCoder('action', ctx).decode(obj['action']),
42
- meta: decodeMeta(),
43
- };
44
- case OnboardingEventId.FinishedLoading:
45
- return {
46
- id: eventId,
47
- view,
48
- meta: decodeMeta(),
49
- };
50
- case OnboardingEventId.Analytics: {
51
- const eventObj = obj['event'];
52
- return {
53
- id: eventId,
54
- view,
55
- event: {
56
- name: eventObj['name'],
57
- elementId: eventObj['element_id'],
58
- reply: eventObj['reply'],
59
- },
60
- meta: decodeMeta(),
61
- };
62
- }
63
- case OnboardingEventId.Error: {
64
- const errorCoder = getOnboardingCoder('error', ctx);
65
- const decodedError = errorCoder.decode(obj['error']);
66
- return {
67
- id: eventId,
68
- view,
69
- error: errorCoder.getError(decodedError),
70
- };
71
- }
72
- default:
73
- return null;
74
- }
75
- }
76
- function getOnboardingCoder(type, _ctx) {
77
- switch (type) {
78
- case 'meta':
79
- return new AdaptyUiOnboardingMetaCoder();
80
- case 'action':
81
- return new AdaptyUiOnboardingStateUpdatedActionCoder();
82
- case 'error':
83
- return new AdaptyNativeErrorCoder();
84
- }
85
- }
86
- //# sourceMappingURL=parse-onboarding.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parse-onboarding.js","sourceRoot":"","sources":["../../../../src/shared/coders/parse-onboarding.ts"],"names":[],"mappings":"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","sourcesContent":["import { AdaptyError } from '../adapty-error';\nimport { LogContext } from '../logger';\nimport { ErrorConverter } from './error-coder';\nimport type { Converter } from './types';\nimport { AdaptyNativeErrorCoder } from './adapty-native-error';\nimport { AdaptyUiOnboardingMetaCoder } from './adapty-ui-onboarding-meta';\nimport { AdaptyUiOnboardingStateUpdatedActionCoder } from './adapty-ui-onboarding-state-updated-action';\nimport type { AdaptyUiOnboardingMeta, OnboardingStateUpdatedAction } from '../../ui-builder/types';\nimport { OnboardingEventId, type OnboardingEventView, type ParsedOnboardingEvent } from '../types/onboarding-events';\n\n// Parser\nexport function parseOnboardingEvent(input: string, ctx?: LogContext): ParsedOnboardingEvent | null {\n let obj: Record<string, unknown>;\n try {\n obj = JSON.parse(input);\n } catch (error) {\n throw AdaptyError.failedToDecode(`Failed to decode event: ${(error as Error)?.message}`);\n }\n\n const eventId = obj['id'] as string | undefined;\n if (!eventId?.startsWith('onboarding_')) {\n return null;\n }\n\n const viewObj = obj['view'] as Record<string, unknown>;\n const view: OnboardingEventView = {\n id: viewObj['id'] as string,\n placementId: viewObj['placement_id'] as string | undefined,\n variationId: viewObj['variation_id'] as string | undefined,\n };\n const decodeMeta = () => getOnboardingCoder('meta', ctx)!.decode(obj['meta']) as AdaptyUiOnboardingMeta;\n\n switch (eventId) {\n case OnboardingEventId.Close:\n case OnboardingEventId.Custom:\n case OnboardingEventId.Paywall:\n return {\n id: eventId,\n view,\n actionId: (obj['action_id'] as string) ?? '',\n meta: decodeMeta(),\n };\n\n case OnboardingEventId.StateUpdated:\n return {\n id: eventId,\n view,\n action: getOnboardingCoder('action', ctx)!.decode(obj['action']) as OnboardingStateUpdatedAction,\n meta: decodeMeta(),\n };\n\n case OnboardingEventId.FinishedLoading:\n return {\n id: eventId,\n view,\n meta: decodeMeta(),\n };\n\n case OnboardingEventId.Analytics: {\n const eventObj = obj['event'] as Record<string, any>;\n return {\n id: eventId,\n view,\n event: {\n name: eventObj['name'] as string,\n elementId: eventObj['element_id'] as string | undefined,\n reply: eventObj['reply'] as string | undefined,\n },\n meta: decodeMeta(),\n };\n }\n\n case OnboardingEventId.Error: {\n const errorCoder = getOnboardingCoder('error', ctx) as ErrorConverter<any>;\n const decodedError = errorCoder.decode(obj['error']);\n return {\n id: eventId,\n view,\n error: errorCoder.getError(decodedError),\n };\n }\n\n default:\n return null;\n }\n}\n\ntype OnboardingCoderType = 'meta' | 'action' | 'error';\n\nfunction getOnboardingCoder(type: OnboardingCoderType, _ctx?: LogContext): Converter<any, any> | ErrorConverter<any> {\n switch (type) {\n case 'meta':\n return new AdaptyUiOnboardingMetaCoder();\n case 'action':\n return new AdaptyUiOnboardingStateUpdatedActionCoder();\n case 'error':\n return new AdaptyNativeErrorCoder();\n }\n}\n"]}
@@ -1,4 +0,0 @@
1
- import { LogContext } from '../logger';
2
- import { PaywallEventId, type PaywallEventView, type ParsedPaywallEvent, type PaywallEventIdType, type PaywallDidAppearEvent, type PaywallDidDisappearEvent, type PaywallDidPerformActionEvent, type PaywallDidSelectProductEvent, type PaywallDidStartPurchaseEvent, type PaywallDidFinishPurchaseEvent, type PaywallDidFailPurchaseEvent, type PaywallDidStartRestoreEvent, type PaywallDidFinishRestoreEvent, type PaywallDidFailRestoreEvent, type PaywallDidFailRenderingEvent, type PaywallDidFailLoadingProductsEvent, type PaywallDidFinishWebPaymentNavigationEvent } from '../types/paywall-events';
3
- export { PaywallEventId, type PaywallEventIdType, type PaywallEventView, type PaywallDidAppearEvent, type PaywallDidDisappearEvent, type PaywallDidPerformActionEvent, type PaywallDidSelectProductEvent, type PaywallDidStartPurchaseEvent, type PaywallDidFinishPurchaseEvent, type PaywallDidFailPurchaseEvent, type PaywallDidStartRestoreEvent, type PaywallDidFinishRestoreEvent, type PaywallDidFailRestoreEvent, type PaywallDidFailRenderingEvent, type PaywallDidFailLoadingProductsEvent, type PaywallDidFinishWebPaymentNavigationEvent, type ParsedPaywallEvent, };
4
- export declare function parsePaywallEvent(input: string, ctx?: LogContext): ParsedPaywallEvent | null;
@@ -1,141 +0,0 @@
1
- import { AdaptyError } from '../adapty-error';
2
- import { AdaptyNativeErrorCoder } from './adapty-native-error';
3
- import { AdaptyPaywallProductCoder } from './adapty-paywall-product';
4
- import { AdaptyProfileCoder } from './adapty-profile';
5
- import { AdaptyPurchaseResultCoder } from './adapty-purchase-result';
6
- import { PaywallEventId, } from '../types/paywall-events';
7
- export { PaywallEventId, };
8
- export function parsePaywallEvent(input, ctx) {
9
- var _a;
10
- let obj;
11
- try {
12
- obj = JSON.parse(input);
13
- }
14
- catch (error) {
15
- throw AdaptyError.failedToDecode(`Failed to decode event: ${error === null || error === void 0 ? void 0 : error.message}`);
16
- }
17
- const eventId = obj['id'];
18
- if (!(eventId === null || eventId === void 0 ? void 0 : eventId.startsWith('paywall_view_'))) {
19
- return null;
20
- }
21
- const viewObj = obj['view'];
22
- const view = {
23
- id: viewObj['id'],
24
- placementId: viewObj['placement_id'],
25
- variationId: viewObj['variation_id'],
26
- };
27
- switch (eventId) {
28
- case PaywallEventId.DidAppear:
29
- return { id: eventId, view };
30
- case PaywallEventId.DidDisappear:
31
- return { id: eventId, view };
32
- case PaywallEventId.DidPerformAction: {
33
- const actionObj = obj['action'];
34
- return {
35
- id: eventId,
36
- view,
37
- action: {
38
- type: actionObj['type'],
39
- value: actionObj['value'],
40
- },
41
- };
42
- }
43
- case PaywallEventId.DidSelectProduct:
44
- return {
45
- id: eventId,
46
- view,
47
- productId: (_a = obj['product_id']) !== null && _a !== void 0 ? _a : '',
48
- };
49
- case PaywallEventId.DidStartPurchase:
50
- return {
51
- id: eventId,
52
- view,
53
- product: getPaywallCoder('product', ctx).decode(obj['product']),
54
- };
55
- case PaywallEventId.DidFinishPurchase:
56
- return {
57
- id: eventId,
58
- view,
59
- purchaseResult: getPaywallCoder('purchaseResult', ctx).decode(obj['purchased_result']),
60
- product: getPaywallCoder('product', ctx).decode(obj['product']),
61
- };
62
- case PaywallEventId.DidFailPurchase: {
63
- const errorCoder = getPaywallCoder('error', ctx);
64
- const decodedError = errorCoder.decode(obj['error']);
65
- return {
66
- id: eventId,
67
- view,
68
- error: errorCoder.getError(decodedError),
69
- product: getPaywallCoder('product', ctx).decode(obj['product']),
70
- };
71
- }
72
- case PaywallEventId.DidStartRestore:
73
- return {
74
- id: eventId,
75
- view,
76
- };
77
- case PaywallEventId.DidFinishRestore:
78
- return {
79
- id: eventId,
80
- view,
81
- profile: getPaywallCoder('profile', ctx).decode(obj['profile']),
82
- };
83
- case PaywallEventId.DidFailRestore: {
84
- const errorCoder = getPaywallCoder('error', ctx);
85
- const decodedError = errorCoder.decode(obj['error']);
86
- return {
87
- id: eventId,
88
- view,
89
- error: errorCoder.getError(decodedError),
90
- };
91
- }
92
- case PaywallEventId.DidFailRendering: {
93
- const errorCoder = getPaywallCoder('error', ctx);
94
- const decodedError = errorCoder.decode(obj['error']);
95
- return {
96
- id: eventId,
97
- view,
98
- error: errorCoder.getError(decodedError),
99
- };
100
- }
101
- case PaywallEventId.DidFailLoadingProducts: {
102
- const errorCoder = getPaywallCoder('error', ctx);
103
- const decodedError = errorCoder.decode(obj['error']);
104
- return {
105
- id: eventId,
106
- view,
107
- error: errorCoder.getError(decodedError),
108
- };
109
- }
110
- case PaywallEventId.DidFinishWebPaymentNavigation:
111
- return {
112
- id: eventId,
113
- view,
114
- product: obj['product']
115
- ? getPaywallCoder('product', ctx).decode(obj['product'])
116
- : undefined,
117
- error: obj['error']
118
- ? (() => {
119
- const errorCoder = getPaywallCoder('error', ctx);
120
- const decodedError = errorCoder.decode(obj['error']);
121
- return errorCoder.getError(decodedError);
122
- })()
123
- : undefined,
124
- };
125
- default:
126
- return null;
127
- }
128
- }
129
- function getPaywallCoder(type, _ctx) {
130
- switch (type) {
131
- case 'product':
132
- return new AdaptyPaywallProductCoder();
133
- case 'profile':
134
- return new AdaptyProfileCoder();
135
- case 'purchaseResult':
136
- return new AdaptyPurchaseResultCoder();
137
- case 'error':
138
- return new AdaptyNativeErrorCoder();
139
- }
140
- }
141
- //# sourceMappingURL=parse-paywall.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parse-paywall.js","sourceRoot":"","sources":["../../../../src/shared/coders/parse-paywall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAI9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAMrE,OAAO,EACL,cAAc,GAiBf,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,cAAc,GAiBf,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAC/B,KAAa,EACb,GAAgB;;IAEhB,IAAI,GAA4B,CAAC;IACjC,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,WAAW,CAAC,cAAc,CAC9B,2BAA4B,KAAe,aAAf,KAAK,uBAAL,KAAK,CAAY,OAAO,EAAE,CACvD,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAmC,CAAC;IAC5D,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,CAAC,eAAe,CAAC,CAAA,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAA4B,CAAC;IACvD,MAAM,IAAI,GAAqB;QAC7B,EAAE,EAAE,OAAO,CAAC,IAAI,CAAW;QAC3B,WAAW,EAAE,OAAO,CAAC,cAAc,CAAuB;QAC1D,WAAW,EAAE,OAAO,CAAC,cAAc,CAAuB;KAC3D,CAAC;IAEF,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,cAAc,CAAC,SAAS;YAC3B,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAE/B,KAAK,cAAc,CAAC,YAAY;YAC9B,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAE/B,KAAK,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC;YACrC,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAA4B,CAAC;YAC3D,OAAO;gBACL,EAAE,EAAE,OAAO;gBACX,IAAI;gBACJ,MAAM,EAAE;oBACN,IAAI,EAAE,SAAS,CAAC,MAAM,CAIV;oBACZ,KAAK,EAAE,SAAS,CAAC,OAAO,CAAuB;iBAChD;aACF,CAAC;QACJ,CAAC;QAED,KAAK,cAAc,CAAC,gBAAgB;YAClC,OAAO;gBACL,EAAE,EAAE,OAAO;gBACX,IAAI;gBACJ,SAAS,EAAE,MAAC,GAAG,CAAC,YAAY,CAAY,mCAAI,EAAE;aAC/C,CAAC;QAEJ,KAAK,cAAc,CAAC,gBAAgB;YAClC,OAAO;gBACL,EAAE,EAAE,OAAO;gBACX,IAAI;gBACJ,OAAO,EAAE,eAAe,CAAC,SAAS,EAAE,GAAG,CAAE,CAAC,MAAM,CAC9C,GAAG,CAAC,SAAS,CAAC,CACS;aAC1B,CAAC;QAEJ,KAAK,cAAc,CAAC,iBAAiB;YACnC,OAAO;gBACL,EAAE,EAAE,OAAO;gBACX,IAAI;gBACJ,cAAc,EAAE,eAAe,CAAC,gBAAgB,EAAE,GAAG,CAAE,CAAC,MAAM,CAC5D,GAAG,CAAC,kBAAkB,CAAC,CACA;gBACzB,OAAO,EAAE,eAAe,CAAC,SAAS,EAAE,GAAG,CAAE,CAAC,MAAM,CAC9C,GAAG,CAAC,SAAS,CAAC,CACS;aAC1B,CAAC;QAEJ,KAAK,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC;YACpC,MAAM,UAAU,GAAG,eAAe,CAChC,OAAO,EACP,GAAG,CACmC,CAAC;YACzC,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;YACrD,OAAO;gBACL,EAAE,EAAE,OAAO;gBACX,IAAI;gBACJ,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC;gBACxC,OAAO,EAAE,eAAe,CAAC,SAAS,EAAE,GAAG,CAAE,CAAC,MAAM,CAC9C,GAAG,CAAC,SAAS,CAAC,CACS;aAC1B,CAAC;QACJ,CAAC;QAED,KAAK,cAAc,CAAC,eAAe;YACjC,OAAO;gBACL,EAAE,EAAE,OAAO;gBACX,IAAI;aACL,CAAC;QAEJ,KAAK,cAAc,CAAC,gBAAgB;YAClC,OAAO;gBACL,EAAE,EAAE,OAAO;gBACX,IAAI;gBACJ,OAAO,EAAE,eAAe,CAAC,SAAS,EAAE,GAAG,CAAE,CAAC,MAAM,CAC9C,GAAG,CAAC,SAAS,CAAC,CACE;aACnB,CAAC;QAEJ,KAAK,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;YACnC,MAAM,UAAU,GAAG,eAAe,CAChC,OAAO,EACP,GAAG,CACmC,CAAC;YACzC,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;YACrD,OAAO;gBACL,EAAE,EAAE,OAAO;gBACX,IAAI;gBACJ,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC;aACzC,CAAC;QACJ,CAAC;QAED,KAAK,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC;YACrC,MAAM,UAAU,GAAG,eAAe,CAChC,OAAO,EACP,GAAG,CACmC,CAAC;YACzC,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;YACrD,OAAO;gBACL,EAAE,EAAE,OAAO;gBACX,IAAI;gBACJ,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC;aACzC,CAAC;QACJ,CAAC;QAED,KAAK,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAC3C,MAAM,UAAU,GAAG,eAAe,CAChC,OAAO,EACP,GAAG,CACmC,CAAC;YACzC,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;YACrD,OAAO;gBACL,EAAE,EAAE,OAAO;gBACX,IAAI;gBACJ,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC;aACzC,CAAC;QACJ,CAAC;QAED,KAAK,cAAc,CAAC,6BAA6B;YAC/C,OAAO;gBACL,EAAE,EAAE,OAAO;gBACX,IAAI;gBACJ,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC;oBACrB,CAAC,CAAE,eAAe,CAAC,SAAS,EAAE,GAAG,CAAE,CAAC,MAAM,CACtC,GAAG,CAAC,SAAS,CAAC,CACU;oBAC5B,CAAC,CAAC,SAAS;gBACb,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC;oBACjB,CAAC,CAAC,CAAC,GAAG,EAAE;wBACJ,MAAM,UAAU,GAAG,eAAe,CAChC,OAAO,EACP,GAAG,CACmC,CAAC;wBACzC,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;wBACrD,OAAO,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;oBAC3C,CAAC,CAAC,EAAE;oBACN,CAAC,CAAC,SAAS;aACd,CAAC;QAEJ;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAID,SAAS,eAAe,CACtB,IAAsB,EACtB,IAAiB;IAEjB,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,SAAS;YACZ,OAAO,IAAI,yBAAyB,EAAE,CAAC;QACzC,KAAK,SAAS;YACZ,OAAO,IAAI,kBAAkB,EAAE,CAAC;QAClC,KAAK,gBAAgB;YACnB,OAAO,IAAI,yBAAyB,EAAE,CAAC;QACzC,KAAK,OAAO;YACV,OAAO,IAAI,sBAAsB,EAAE,CAAC;IACxC,CAAC;AACH,CAAC","sourcesContent":["import { AdaptyError } from '../adapty-error';\nimport { LogContext } from '../logger';\nimport { ErrorConverter } from './error-coder';\nimport type { Converter } from './types';\nimport { AdaptyNativeErrorCoder } from './adapty-native-error';\nimport { AdaptyPaywallProductCoder } from './adapty-paywall-product';\nimport { AdaptyProfileCoder } from './adapty-profile';\nimport { AdaptyPurchaseResultCoder } from './adapty-purchase-result';\nimport type {\n AdaptyPaywallProduct,\n AdaptyProfile,\n AdaptyPurchaseResult,\n} from '../types';\nimport {\n PaywallEventId,\n type PaywallEventView,\n type ParsedPaywallEvent,\n type PaywallEventIdType,\n type PaywallDidAppearEvent,\n type PaywallDidDisappearEvent,\n type PaywallDidPerformActionEvent,\n type PaywallDidSelectProductEvent,\n type PaywallDidStartPurchaseEvent,\n type PaywallDidFinishPurchaseEvent,\n type PaywallDidFailPurchaseEvent,\n type PaywallDidStartRestoreEvent,\n type PaywallDidFinishRestoreEvent,\n type PaywallDidFailRestoreEvent,\n type PaywallDidFailRenderingEvent,\n type PaywallDidFailLoadingProductsEvent,\n type PaywallDidFinishWebPaymentNavigationEvent,\n} from '../types/paywall-events';\n\nexport {\n PaywallEventId,\n type PaywallEventIdType,\n type PaywallEventView,\n type PaywallDidAppearEvent,\n type PaywallDidDisappearEvent,\n type PaywallDidPerformActionEvent,\n type PaywallDidSelectProductEvent,\n type PaywallDidStartPurchaseEvent,\n type PaywallDidFinishPurchaseEvent,\n type PaywallDidFailPurchaseEvent,\n type PaywallDidStartRestoreEvent,\n type PaywallDidFinishRestoreEvent,\n type PaywallDidFailRestoreEvent,\n type PaywallDidFailRenderingEvent,\n type PaywallDidFailLoadingProductsEvent,\n type PaywallDidFinishWebPaymentNavigationEvent,\n type ParsedPaywallEvent,\n};\n\nexport function parsePaywallEvent(\n input: string,\n ctx?: LogContext,\n): ParsedPaywallEvent | null {\n let obj: Record<string, unknown>;\n try {\n obj = JSON.parse(input);\n } catch (error) {\n throw AdaptyError.failedToDecode(\n `Failed to decode event: ${(error as Error)?.message}`,\n );\n }\n\n const eventId = obj['id'] as PaywallEventIdType | undefined;\n if (!eventId?.startsWith('paywall_view_')) {\n return null;\n }\n\n const viewObj = obj['view'] as Record<string, unknown>;\n const view: PaywallEventView = {\n id: viewObj['id'] as string,\n placementId: viewObj['placement_id'] as string | undefined,\n variationId: viewObj['variation_id'] as string | undefined,\n };\n\n switch (eventId) {\n case PaywallEventId.DidAppear:\n return { id: eventId, view };\n\n case PaywallEventId.DidDisappear:\n return { id: eventId, view };\n\n case PaywallEventId.DidPerformAction: {\n const actionObj = obj['action'] as Record<string, unknown>;\n return {\n id: eventId,\n view,\n action: {\n type: actionObj['type'] as\n | 'close'\n | 'system_back'\n | 'open_url'\n | 'custom',\n value: actionObj['value'] as string | undefined,\n },\n };\n }\n\n case PaywallEventId.DidSelectProduct:\n return {\n id: eventId,\n view,\n productId: (obj['product_id'] as string) ?? '',\n };\n\n case PaywallEventId.DidStartPurchase:\n return {\n id: eventId,\n view,\n product: getPaywallCoder('product', ctx)!.decode(\n obj['product'],\n ) as AdaptyPaywallProduct,\n };\n\n case PaywallEventId.DidFinishPurchase:\n return {\n id: eventId,\n view,\n purchaseResult: getPaywallCoder('purchaseResult', ctx)!.decode(\n obj['purchased_result'],\n ) as AdaptyPurchaseResult,\n product: getPaywallCoder('product', ctx)!.decode(\n obj['product'],\n ) as AdaptyPaywallProduct,\n };\n\n case PaywallEventId.DidFailPurchase: {\n const errorCoder = getPaywallCoder(\n 'error',\n ctx,\n ) as ErrorConverter<Record<string, any>>;\n const decodedError = errorCoder.decode(obj['error']);\n return {\n id: eventId,\n view,\n error: errorCoder.getError(decodedError),\n product: getPaywallCoder('product', ctx)!.decode(\n obj['product'],\n ) as AdaptyPaywallProduct,\n };\n }\n\n case PaywallEventId.DidStartRestore:\n return {\n id: eventId,\n view,\n };\n\n case PaywallEventId.DidFinishRestore:\n return {\n id: eventId,\n view,\n profile: getPaywallCoder('profile', ctx)!.decode(\n obj['profile'],\n ) as AdaptyProfile,\n };\n\n case PaywallEventId.DidFailRestore: {\n const errorCoder = getPaywallCoder(\n 'error',\n ctx,\n ) as ErrorConverter<Record<string, any>>;\n const decodedError = errorCoder.decode(obj['error']);\n return {\n id: eventId,\n view,\n error: errorCoder.getError(decodedError),\n };\n }\n\n case PaywallEventId.DidFailRendering: {\n const errorCoder = getPaywallCoder(\n 'error',\n ctx,\n ) as ErrorConverter<Record<string, any>>;\n const decodedError = errorCoder.decode(obj['error']);\n return {\n id: eventId,\n view,\n error: errorCoder.getError(decodedError),\n };\n }\n\n case PaywallEventId.DidFailLoadingProducts: {\n const errorCoder = getPaywallCoder(\n 'error',\n ctx,\n ) as ErrorConverter<Record<string, any>>;\n const decodedError = errorCoder.decode(obj['error']);\n return {\n id: eventId,\n view,\n error: errorCoder.getError(decodedError),\n };\n }\n\n case PaywallEventId.DidFinishWebPaymentNavigation:\n return {\n id: eventId,\n view,\n product: obj['product']\n ? (getPaywallCoder('product', ctx)!.decode(\n obj['product'],\n ) as AdaptyPaywallProduct)\n : undefined,\n error: obj['error']\n ? (() => {\n const errorCoder = getPaywallCoder(\n 'error',\n ctx,\n ) as ErrorConverter<Record<string, any>>;\n const decodedError = errorCoder.decode(obj['error']);\n return errorCoder.getError(decodedError);\n })()\n : undefined,\n };\n\n default:\n return null;\n }\n}\n\ntype PaywallCoderType = 'product' | 'profile' | 'purchaseResult' | 'error';\n\nfunction getPaywallCoder(\n type: PaywallCoderType,\n _ctx?: LogContext,\n): Converter<any, any> | ErrorConverter<any> {\n switch (type) {\n case 'product':\n return new AdaptyPaywallProductCoder();\n case 'profile':\n return new AdaptyProfileCoder();\n case 'purchaseResult':\n return new AdaptyPurchaseResultCoder();\n case 'error':\n return new AdaptyNativeErrorCoder();\n }\n}\n"]}
@@ -1,6 +0,0 @@
1
- import { LogContext } from '../logger';
2
- declare const AdaptyTypes: readonly ["AdaptyError", "AdaptyProfile", "AdaptyPurchaseResult", "AdaptyPaywall", "AdaptyPaywallProduct", "AdaptyOnboarding", "AdaptyRemoteConfig", "AdaptyPaywallBuilder", "AdaptyInstallationStatus", "AdaptyInstallationDetails", "AdaptyUiView", "AdaptyUiDialogActionType", "AdaptyUiOnboardingMeta", "AdaptyUiOnboardingStateParams", "AdaptyUiOnboardingStateUpdatedAction", "Array<AdaptyPaywallProduct>", "BridgeError", "String", "Boolean", "Void"];
3
- export type AdaptyType = (typeof AdaptyTypes)[number];
4
- export declare function parseMethodResult<T>(input: string, resultType: AdaptyType, ctx?: LogContext): T;
5
- export declare function parseCommonEvent(event: string, input: string, ctx?: LogContext): any;
6
- export {};