@formo/analytics-react-native 0.1.0

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 (247) hide show
  1. package/README.md +302 -0
  2. package/lib/commonjs/FormoAnalytics.js +526 -0
  3. package/lib/commonjs/FormoAnalytics.js.map +1 -0
  4. package/lib/commonjs/FormoAnalyticsProvider.js +265 -0
  5. package/lib/commonjs/FormoAnalyticsProvider.js.map +1 -0
  6. package/lib/commonjs/constants/config.js +69 -0
  7. package/lib/commonjs/constants/config.js.map +1 -0
  8. package/lib/commonjs/constants/events.js +30 -0
  9. package/lib/commonjs/constants/events.js.map +1 -0
  10. package/lib/commonjs/constants/index.js +39 -0
  11. package/lib/commonjs/constants/index.js.map +1 -0
  12. package/lib/commonjs/constants/storage.js +23 -0
  13. package/lib/commonjs/constants/storage.js.map +1 -0
  14. package/lib/commonjs/index.js +65 -0
  15. package/lib/commonjs/index.js.map +1 -0
  16. package/lib/commonjs/lib/consent/index.js +56 -0
  17. package/lib/commonjs/lib/consent/index.js.map +1 -0
  18. package/lib/commonjs/lib/event/EventFactory.js +493 -0
  19. package/lib/commonjs/lib/event/EventFactory.js.map +1 -0
  20. package/lib/commonjs/lib/event/EventManager.js +46 -0
  21. package/lib/commonjs/lib/event/EventManager.js.map +1 -0
  22. package/lib/commonjs/lib/event/EventQueue.js +290 -0
  23. package/lib/commonjs/lib/event/EventQueue.js.map +1 -0
  24. package/lib/commonjs/lib/event/index.js +50 -0
  25. package/lib/commonjs/lib/event/index.js.map +1 -0
  26. package/lib/commonjs/lib/event/types.js +6 -0
  27. package/lib/commonjs/lib/event/types.js.map +1 -0
  28. package/lib/commonjs/lib/lifecycle/index.js +196 -0
  29. package/lib/commonjs/lib/lifecycle/index.js.map +1 -0
  30. package/lib/commonjs/lib/logger/index.js +48 -0
  31. package/lib/commonjs/lib/logger/index.js.map +1 -0
  32. package/lib/commonjs/lib/session/index.js +109 -0
  33. package/lib/commonjs/lib/session/index.js.map +1 -0
  34. package/lib/commonjs/lib/storage/AsyncStorageAdapter.js +164 -0
  35. package/lib/commonjs/lib/storage/AsyncStorageAdapter.js.map +1 -0
  36. package/lib/commonjs/lib/storage/MemoryStorage.js +41 -0
  37. package/lib/commonjs/lib/storage/MemoryStorage.js.map +1 -0
  38. package/lib/commonjs/lib/storage/StorageBlueprint.js +24 -0
  39. package/lib/commonjs/lib/storage/StorageBlueprint.js.map +1 -0
  40. package/lib/commonjs/lib/storage/StorageManager.js +126 -0
  41. package/lib/commonjs/lib/storage/StorageManager.js.map +1 -0
  42. package/lib/commonjs/lib/storage/index.js +49 -0
  43. package/lib/commonjs/lib/storage/index.js.map +1 -0
  44. package/lib/commonjs/lib/storage/types.js +2 -0
  45. package/lib/commonjs/lib/storage/types.js.map +1 -0
  46. package/lib/commonjs/lib/wagmi/WagmiEventHandler.js +445 -0
  47. package/lib/commonjs/lib/wagmi/WagmiEventHandler.js.map +1 -0
  48. package/lib/commonjs/lib/wagmi/index.js +28 -0
  49. package/lib/commonjs/lib/wagmi/index.js.map +1 -0
  50. package/lib/commonjs/lib/wagmi/types.js +2 -0
  51. package/lib/commonjs/lib/wagmi/types.js.map +1 -0
  52. package/lib/commonjs/types/base.js +6 -0
  53. package/lib/commonjs/types/base.js.map +1 -0
  54. package/lib/commonjs/types/events.js +22 -0
  55. package/lib/commonjs/types/events.js.map +1 -0
  56. package/lib/commonjs/types/index.js +28 -0
  57. package/lib/commonjs/types/index.js.map +1 -0
  58. package/lib/commonjs/utils/address.js +82 -0
  59. package/lib/commonjs/utils/address.js.map +1 -0
  60. package/lib/commonjs/utils/hash.js +30 -0
  61. package/lib/commonjs/utils/hash.js.map +1 -0
  62. package/lib/commonjs/utils/helpers.js +116 -0
  63. package/lib/commonjs/utils/helpers.js.map +1 -0
  64. package/lib/commonjs/utils/index.js +61 -0
  65. package/lib/commonjs/utils/index.js.map +1 -0
  66. package/lib/commonjs/utils/timestamp.js +34 -0
  67. package/lib/commonjs/utils/timestamp.js.map +1 -0
  68. package/lib/commonjs/utils/trafficSource.js +147 -0
  69. package/lib/commonjs/utils/trafficSource.js.map +1 -0
  70. package/lib/commonjs/version.js +10 -0
  71. package/lib/commonjs/version.js.map +1 -0
  72. package/lib/module/FormoAnalytics.js +519 -0
  73. package/lib/module/FormoAnalytics.js.map +1 -0
  74. package/lib/module/FormoAnalyticsProvider.js +256 -0
  75. package/lib/module/FormoAnalyticsProvider.js.map +1 -0
  76. package/lib/module/constants/config.js +62 -0
  77. package/lib/module/constants/config.js.map +1 -0
  78. package/lib/module/constants/events.js +24 -0
  79. package/lib/module/constants/events.js.map +1 -0
  80. package/lib/module/constants/index.js +4 -0
  81. package/lib/module/constants/index.js.map +1 -0
  82. package/lib/module/constants/storage.js +17 -0
  83. package/lib/module/constants/storage.js.map +1 -0
  84. package/lib/module/index.js +51 -0
  85. package/lib/module/index.js.map +1 -0
  86. package/lib/module/lib/consent/index.js +49 -0
  87. package/lib/module/lib/consent/index.js.map +1 -0
  88. package/lib/module/lib/event/EventFactory.js +488 -0
  89. package/lib/module/lib/event/EventFactory.js.map +1 -0
  90. package/lib/module/lib/event/EventManager.js +41 -0
  91. package/lib/module/lib/event/EventManager.js.map +1 -0
  92. package/lib/module/lib/event/EventQueue.js +283 -0
  93. package/lib/module/lib/event/EventQueue.js.map +1 -0
  94. package/lib/module/lib/event/index.js +5 -0
  95. package/lib/module/lib/event/index.js.map +1 -0
  96. package/lib/module/lib/event/types.js +2 -0
  97. package/lib/module/lib/event/types.js.map +1 -0
  98. package/lib/module/lib/lifecycle/index.js +190 -0
  99. package/lib/module/lib/lifecycle/index.js.map +1 -0
  100. package/lib/module/lib/logger/index.js +42 -0
  101. package/lib/module/lib/logger/index.js.map +1 -0
  102. package/lib/module/lib/session/index.js +92 -0
  103. package/lib/module/lib/session/index.js.map +1 -0
  104. package/lib/module/lib/storage/AsyncStorageAdapter.js +158 -0
  105. package/lib/module/lib/storage/AsyncStorageAdapter.js.map +1 -0
  106. package/lib/module/lib/storage/MemoryStorage.js +35 -0
  107. package/lib/module/lib/storage/MemoryStorage.js.map +1 -0
  108. package/lib/module/lib/storage/StorageBlueprint.js +18 -0
  109. package/lib/module/lib/storage/StorageBlueprint.js.map +1 -0
  110. package/lib/module/lib/storage/StorageManager.js +115 -0
  111. package/lib/module/lib/storage/StorageManager.js.map +1 -0
  112. package/lib/module/lib/storage/index.js +5 -0
  113. package/lib/module/lib/storage/index.js.map +1 -0
  114. package/lib/module/lib/storage/types.js +2 -0
  115. package/lib/module/lib/storage/types.js.map +1 -0
  116. package/lib/module/lib/wagmi/WagmiEventHandler.js +439 -0
  117. package/lib/module/lib/wagmi/WagmiEventHandler.js.map +1 -0
  118. package/lib/module/lib/wagmi/index.js +3 -0
  119. package/lib/module/lib/wagmi/index.js.map +1 -0
  120. package/lib/module/lib/wagmi/types.js +2 -0
  121. package/lib/module/lib/wagmi/types.js.map +1 -0
  122. package/lib/module/types/base.js +2 -0
  123. package/lib/module/types/base.js.map +1 -0
  124. package/lib/module/types/events.js +17 -0
  125. package/lib/module/types/events.js.map +1 -0
  126. package/lib/module/types/index.js +3 -0
  127. package/lib/module/types/index.js.map +1 -0
  128. package/lib/module/utils/address.js +74 -0
  129. package/lib/module/utils/address.js.map +1 -0
  130. package/lib/module/utils/hash.js +24 -0
  131. package/lib/module/utils/hash.js.map +1 -0
  132. package/lib/module/utils/helpers.js +105 -0
  133. package/lib/module/utils/helpers.js.map +1 -0
  134. package/lib/module/utils/index.js +6 -0
  135. package/lib/module/utils/index.js.map +1 -0
  136. package/lib/module/utils/timestamp.js +26 -0
  137. package/lib/module/utils/timestamp.js.map +1 -0
  138. package/lib/module/utils/trafficSource.js +137 -0
  139. package/lib/module/utils/trafficSource.js.map +1 -0
  140. package/lib/module/version.js +4 -0
  141. package/lib/module/version.js.map +1 -0
  142. package/lib/typescript/FormoAnalytics.d.ts +163 -0
  143. package/lib/typescript/FormoAnalytics.d.ts.map +1 -0
  144. package/lib/typescript/FormoAnalyticsProvider.d.ts +29 -0
  145. package/lib/typescript/FormoAnalyticsProvider.d.ts.map +1 -0
  146. package/lib/typescript/constants/config.d.ts +8 -0
  147. package/lib/typescript/constants/config.d.ts.map +1 -0
  148. package/lib/typescript/constants/events.d.ts +23 -0
  149. package/lib/typescript/constants/events.d.ts.map +1 -0
  150. package/lib/typescript/constants/index.d.ts +4 -0
  151. package/lib/typescript/constants/index.d.ts.map +1 -0
  152. package/lib/typescript/constants/storage.d.ts +10 -0
  153. package/lib/typescript/constants/storage.d.ts.map +1 -0
  154. package/lib/typescript/index.d.ts +44 -0
  155. package/lib/typescript/index.d.ts.map +1 -0
  156. package/lib/typescript/lib/consent/index.d.ts +13 -0
  157. package/lib/typescript/lib/consent/index.d.ts.map +1 -0
  158. package/lib/typescript/lib/event/EventFactory.d.ts +61 -0
  159. package/lib/typescript/lib/event/EventFactory.d.ts.map +1 -0
  160. package/lib/typescript/lib/event/EventManager.d.ts +17 -0
  161. package/lib/typescript/lib/event/EventManager.d.ts.map +1 -0
  162. package/lib/typescript/lib/event/EventQueue.d.ts +74 -0
  163. package/lib/typescript/lib/event/EventQueue.d.ts.map +1 -0
  164. package/lib/typescript/lib/event/index.d.ts +5 -0
  165. package/lib/typescript/lib/event/index.d.ts.map +1 -0
  166. package/lib/typescript/lib/event/types.d.ts +23 -0
  167. package/lib/typescript/lib/event/types.d.ts.map +1 -0
  168. package/lib/typescript/lib/lifecycle/index.d.ts +46 -0
  169. package/lib/typescript/lib/lifecycle/index.d.ts.map +1 -0
  170. package/lib/typescript/lib/logger/index.d.ts +19 -0
  171. package/lib/typescript/lib/logger/index.d.ts.map +1 -0
  172. package/lib/typescript/lib/session/index.d.ts +41 -0
  173. package/lib/typescript/lib/session/index.d.ts.map +1 -0
  174. package/lib/typescript/lib/storage/AsyncStorageAdapter.d.ts +48 -0
  175. package/lib/typescript/lib/storage/AsyncStorageAdapter.d.ts.map +1 -0
  176. package/lib/typescript/lib/storage/MemoryStorage.d.ts +18 -0
  177. package/lib/typescript/lib/storage/MemoryStorage.d.ts.map +1 -0
  178. package/lib/typescript/lib/storage/StorageBlueprint.d.ts +21 -0
  179. package/lib/typescript/lib/storage/StorageBlueprint.d.ts.map +1 -0
  180. package/lib/typescript/lib/storage/StorageManager.d.ts +45 -0
  181. package/lib/typescript/lib/storage/StorageManager.d.ts.map +1 -0
  182. package/lib/typescript/lib/storage/index.d.ts +5 -0
  183. package/lib/typescript/lib/storage/index.d.ts.map +1 -0
  184. package/lib/typescript/lib/storage/types.d.ts +22 -0
  185. package/lib/typescript/lib/storage/types.d.ts.map +1 -0
  186. package/lib/typescript/lib/wagmi/WagmiEventHandler.d.ts +104 -0
  187. package/lib/typescript/lib/wagmi/WagmiEventHandler.d.ts.map +1 -0
  188. package/lib/typescript/lib/wagmi/index.d.ts +3 -0
  189. package/lib/typescript/lib/wagmi/index.d.ts.map +1 -0
  190. package/lib/typescript/lib/wagmi/types.d.ts +54 -0
  191. package/lib/typescript/lib/wagmi/types.d.ts.map +1 -0
  192. package/lib/typescript/types/base.d.ts +219 -0
  193. package/lib/typescript/types/base.d.ts.map +1 -0
  194. package/lib/typescript/types/events.d.ts +111 -0
  195. package/lib/typescript/types/events.d.ts.map +1 -0
  196. package/lib/typescript/types/index.d.ts +3 -0
  197. package/lib/typescript/types/index.d.ts.map +1 -0
  198. package/lib/typescript/utils/address.d.ts +25 -0
  199. package/lib/typescript/utils/address.d.ts.map +1 -0
  200. package/lib/typescript/utils/hash.d.ts +10 -0
  201. package/lib/typescript/utils/hash.d.ts.map +1 -0
  202. package/lib/typescript/utils/helpers.d.ts +26 -0
  203. package/lib/typescript/utils/helpers.d.ts.map +1 -0
  204. package/lib/typescript/utils/index.d.ts +6 -0
  205. package/lib/typescript/utils/index.d.ts.map +1 -0
  206. package/lib/typescript/utils/timestamp.d.ts +13 -0
  207. package/lib/typescript/utils/timestamp.d.ts.map +1 -0
  208. package/lib/typescript/utils/trafficSource.d.ts +30 -0
  209. package/lib/typescript/utils/trafficSource.d.ts.map +1 -0
  210. package/lib/typescript/version.d.ts +2 -0
  211. package/lib/typescript/version.d.ts.map +1 -0
  212. package/package.json +143 -0
  213. package/src/FormoAnalytics.ts +685 -0
  214. package/src/FormoAnalyticsProvider.tsx +296 -0
  215. package/src/constants/config.ts +62 -0
  216. package/src/constants/events.ts +26 -0
  217. package/src/constants/index.ts +3 -0
  218. package/src/constants/storage.ts +16 -0
  219. package/src/index.ts +55 -0
  220. package/src/lib/consent/index.ts +52 -0
  221. package/src/lib/event/EventFactory.ts +682 -0
  222. package/src/lib/event/EventManager.ts +50 -0
  223. package/src/lib/event/EventQueue.ts +371 -0
  224. package/src/lib/event/index.ts +4 -0
  225. package/src/lib/event/types.ts +107 -0
  226. package/src/lib/lifecycle/index.ts +215 -0
  227. package/src/lib/logger/index.ts +56 -0
  228. package/src/lib/session/index.ts +103 -0
  229. package/src/lib/storage/AsyncStorageAdapter.ts +173 -0
  230. package/src/lib/storage/MemoryStorage.ts +43 -0
  231. package/src/lib/storage/StorageBlueprint.ts +30 -0
  232. package/src/lib/storage/StorageManager.ts +121 -0
  233. package/src/lib/storage/index.ts +4 -0
  234. package/src/lib/storage/types.ts +23 -0
  235. package/src/lib/wagmi/WagmiEventHandler.ts +574 -0
  236. package/src/lib/wagmi/index.ts +2 -0
  237. package/src/lib/wagmi/types.ts +71 -0
  238. package/src/types/base.ts +287 -0
  239. package/src/types/events.ts +140 -0
  240. package/src/types/index.ts +2 -0
  241. package/src/utils/address.ts +84 -0
  242. package/src/utils/hash.ts +23 -0
  243. package/src/utils/helpers.ts +139 -0
  244. package/src/utils/index.ts +5 -0
  245. package/src/utils/timestamp.ts +25 -0
  246. package/src/utils/trafficSource.ts +153 -0
  247. package/src/version.ts +3 -0
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.FormoAnalyticsSession = void 0;
7
+ Object.defineProperty(exports, "SESSION_WALLET_DETECTED_KEY", {
8
+ enumerable: true,
9
+ get: function () {
10
+ return _constants.SESSION_WALLET_DETECTED_KEY;
11
+ }
12
+ });
13
+ Object.defineProperty(exports, "SESSION_WALLET_IDENTIFIED_KEY", {
14
+ enumerable: true,
15
+ get: function () {
16
+ return _constants.SESSION_WALLET_IDENTIFIED_KEY;
17
+ }
18
+ });
19
+ var _constants = require("../../constants");
20
+ var _storage = require("../storage");
21
+ var _logger = require("../logger");
22
+ /**
23
+ * Session manager for tracking wallet detection and identification
24
+ * Persists to session storage to avoid duplicate detection/identification events
25
+ * within the same session
26
+ */
27
+ class FormoAnalyticsSession {
28
+ detectedWallets = new Set();
29
+ identifiedWallets = new Set();
30
+ constructor() {
31
+ this.loadFromStorage();
32
+ }
33
+
34
+ /**
35
+ * Load session state from storage
36
+ */
37
+ loadFromStorage() {
38
+ try {
39
+ const detected = (0, _storage.storage)().get(_constants.SESSION_WALLET_DETECTED_KEY);
40
+ if (detected) {
41
+ const parsed = JSON.parse(detected);
42
+ this.detectedWallets = new Set(parsed);
43
+ }
44
+ const identified = (0, _storage.storage)().get(_constants.SESSION_WALLET_IDENTIFIED_KEY);
45
+ if (identified) {
46
+ const parsed = JSON.parse(identified);
47
+ this.identifiedWallets = new Set(parsed);
48
+ }
49
+ } catch (error) {
50
+ _logger.logger.debug("Session: Failed to load from storage", error);
51
+ }
52
+ }
53
+
54
+ /**
55
+ * Save session state to storage
56
+ */
57
+ saveToStorage() {
58
+ try {
59
+ (0, _storage.storage)().set(_constants.SESSION_WALLET_DETECTED_KEY, JSON.stringify(Array.from(this.detectedWallets)));
60
+ (0, _storage.storage)().set(_constants.SESSION_WALLET_IDENTIFIED_KEY, JSON.stringify(Array.from(this.identifiedWallets)));
61
+ } catch (error) {
62
+ _logger.logger.debug("Session: Failed to save to storage", error);
63
+ }
64
+ }
65
+
66
+ /**
67
+ * Check if a wallet has been detected in this session
68
+ */
69
+ isWalletDetected(rdns) {
70
+ return this.detectedWallets.has(rdns);
71
+ }
72
+
73
+ /**
74
+ * Mark a wallet as detected
75
+ */
76
+ markWalletDetected(rdns) {
77
+ this.detectedWallets.add(rdns);
78
+ this.saveToStorage();
79
+ }
80
+
81
+ /**
82
+ * Check if a wallet + address combination has been identified
83
+ */
84
+ isWalletIdentified(address, rdns) {
85
+ const key = `${address.toLowerCase()}:${rdns}`;
86
+ return this.identifiedWallets.has(key);
87
+ }
88
+
89
+ /**
90
+ * Mark a wallet + address combination as identified
91
+ */
92
+ markWalletIdentified(address, rdns) {
93
+ const key = `${address.toLowerCase()}:${rdns}`;
94
+ this.identifiedWallets.add(key);
95
+ this.saveToStorage();
96
+ }
97
+
98
+ /**
99
+ * Clear all session data
100
+ */
101
+ clear() {
102
+ this.detectedWallets.clear();
103
+ this.identifiedWallets.clear();
104
+ (0, _storage.storage)().remove(_constants.SESSION_WALLET_DETECTED_KEY);
105
+ (0, _storage.storage)().remove(_constants.SESSION_WALLET_IDENTIFIED_KEY);
106
+ }
107
+ }
108
+ exports.FormoAnalyticsSession = FormoAnalyticsSession;
109
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_constants","require","_storage","_logger","FormoAnalyticsSession","detectedWallets","Set","identifiedWallets","constructor","loadFromStorage","detected","storage","get","SESSION_WALLET_DETECTED_KEY","parsed","JSON","parse","identified","SESSION_WALLET_IDENTIFIED_KEY","error","logger","debug","saveToStorage","set","stringify","Array","from","isWalletDetected","rdns","has","markWalletDetected","add","isWalletIdentified","address","key","toLowerCase","markWalletIdentified","clear","remove","exports"],"sourceRoot":"../../../../src","sources":["lib/session/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAIA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAIA;AACA;AACA;AACA;AACA;AACO,MAAMG,qBAAqB,CAAC;EACzBC,eAAe,GAAgB,IAAIC,GAAG,CAAC,CAAC;EACxCC,iBAAiB,GAAgB,IAAID,GAAG,CAAC,CAAC;EAElDE,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACC,eAAe,CAAC,CAAC;EACxB;;EAEA;AACF;AACA;EACUA,eAAeA,CAAA,EAAS;IAC9B,IAAI;MACF,MAAMC,QAAQ,GAAG,IAAAC,gBAAO,EAAC,CAAC,CAACC,GAAG,CAACC,sCAA2B,CAAC;MAC3D,IAAIH,QAAQ,EAAE;QACZ,MAAMI,MAAM,GAAGC,IAAI,CAACC,KAAK,CAACN,QAAQ,CAAa;QAC/C,IAAI,CAACL,eAAe,GAAG,IAAIC,GAAG,CAACQ,MAAM,CAAC;MACxC;MAEA,MAAMG,UAAU,GAAG,IAAAN,gBAAO,EAAC,CAAC,CAACC,GAAG,CAACM,wCAA6B,CAAC;MAC/D,IAAID,UAAU,EAAE;QACd,MAAMH,MAAM,GAAGC,IAAI,CAACC,KAAK,CAACC,UAAU,CAAa;QACjD,IAAI,CAACV,iBAAiB,GAAG,IAAID,GAAG,CAACQ,MAAM,CAAC;MAC1C;IACF,CAAC,CAAC,OAAOK,KAAK,EAAE;MACdC,cAAM,CAACC,KAAK,CAAC,sCAAsC,EAAEF,KAAK,CAAC;IAC7D;EACF;;EAEA;AACF;AACA;EACUG,aAAaA,CAAA,EAAS;IAC5B,IAAI;MACF,IAAAX,gBAAO,EAAC,CAAC,CAACY,GAAG,CACXV,sCAA2B,EAC3BE,IAAI,CAACS,SAAS,CAACC,KAAK,CAACC,IAAI,CAAC,IAAI,CAACrB,eAAe,CAAC,CACjD,CAAC;MACD,IAAAM,gBAAO,EAAC,CAAC,CAACY,GAAG,CACXL,wCAA6B,EAC7BH,IAAI,CAACS,SAAS,CAACC,KAAK,CAACC,IAAI,CAAC,IAAI,CAACnB,iBAAiB,CAAC,CACnD,CAAC;IACH,CAAC,CAAC,OAAOY,KAAK,EAAE;MACdC,cAAM,CAACC,KAAK,CAAC,oCAAoC,EAAEF,KAAK,CAAC;IAC3D;EACF;;EAEA;AACF;AACA;EACSQ,gBAAgBA,CAACC,IAAY,EAAW;IAC7C,OAAO,IAAI,CAACvB,eAAe,CAACwB,GAAG,CAACD,IAAI,CAAC;EACvC;;EAEA;AACF;AACA;EACSE,kBAAkBA,CAACF,IAAY,EAAQ;IAC5C,IAAI,CAACvB,eAAe,CAAC0B,GAAG,CAACH,IAAI,CAAC;IAC9B,IAAI,CAACN,aAAa,CAAC,CAAC;EACtB;;EAEA;AACF;AACA;EACSU,kBAAkBA,CAACC,OAAe,EAAEL,IAAY,EAAW;IAChE,MAAMM,GAAG,GAAG,GAAGD,OAAO,CAACE,WAAW,CAAC,CAAC,IAAIP,IAAI,EAAE;IAC9C,OAAO,IAAI,CAACrB,iBAAiB,CAACsB,GAAG,CAACK,GAAG,CAAC;EACxC;;EAEA;AACF;AACA;EACSE,oBAAoBA,CAACH,OAAe,EAAEL,IAAY,EAAQ;IAC/D,MAAMM,GAAG,GAAG,GAAGD,OAAO,CAACE,WAAW,CAAC,CAAC,IAAIP,IAAI,EAAE;IAC9C,IAAI,CAACrB,iBAAiB,CAACwB,GAAG,CAACG,GAAG,CAAC;IAC/B,IAAI,CAACZ,aAAa,CAAC,CAAC;EACtB;;EAEA;AACF;AACA;EACSe,KAAKA,CAAA,EAAS;IACnB,IAAI,CAAChC,eAAe,CAACgC,KAAK,CAAC,CAAC;IAC5B,IAAI,CAAC9B,iBAAiB,CAAC8B,KAAK,CAAC,CAAC;IAC9B,IAAA1B,gBAAO,EAAC,CAAC,CAAC2B,MAAM,CAACzB,sCAA2B,CAAC;IAC7C,IAAAF,gBAAO,EAAC,CAAC,CAAC2B,MAAM,CAACpB,wCAA6B,CAAC;EACjD;AACF;AAACqB,OAAA,CAAAnC,qBAAA,GAAAA,qBAAA","ignoreList":[]}
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _StorageBlueprint = _interopRequireDefault(require("./StorageBlueprint"));
8
+ var _logger = require("../logger");
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ /**
11
+ * AsyncStorage adapter for React Native
12
+ * Provides persistent storage across app restarts
13
+ */
14
+ class AsyncStorageAdapter extends _StorageBlueprint.default {
15
+ asyncStorage = null;
16
+ cache = new Map();
17
+ constructor(writeKey, asyncStorage) {
18
+ super(writeKey);
19
+ if (asyncStorage) {
20
+ this.asyncStorage = asyncStorage;
21
+ }
22
+ }
23
+
24
+ /**
25
+ * Initialize with AsyncStorage instance and preload all Formo keys
26
+ * This ensures consent flags and other critical data are available synchronously
27
+ */
28
+ async initialize(asyncStorage) {
29
+ this.asyncStorage = asyncStorage;
30
+
31
+ // Preload all Formo keys into cache for synchronous access
32
+ // This is critical for consent checks on cold start (GDPR compliance)
33
+ try {
34
+ const allKeys = await asyncStorage.getAllKeys();
35
+ // getKey("") returns "formo_rn_{writeKey}_" - use this exact prefix
36
+ // to avoid matching keys from other instances (e.g., "abc" matching "abc123")
37
+ const formoPrefix = this.getKey("");
38
+
39
+ // Filter to only our keys (exact prefix match including trailing underscore)
40
+ const formoKeys = allKeys.filter(key => key.startsWith(formoPrefix));
41
+ if (formoKeys.length > 0) {
42
+ const pairs = await asyncStorage.multiGet(formoKeys);
43
+ for (const [key, value] of pairs) {
44
+ if (value !== null) {
45
+ this.cache.set(key, value);
46
+ }
47
+ }
48
+ _logger.logger.debug(`AsyncStorageAdapter: Preloaded ${formoKeys.length} keys into cache`);
49
+ }
50
+ } catch (error) {
51
+ _logger.logger.error("AsyncStorageAdapter: Failed to preload keys", error);
52
+ }
53
+ _logger.logger.debug("AsyncStorageAdapter: Initialized");
54
+ }
55
+ isAvailable() {
56
+ return this.asyncStorage !== null;
57
+ }
58
+
59
+ /**
60
+ * Synchronous get from cache (may return stale data)
61
+ * Use getAsync for guaranteed fresh data
62
+ */
63
+ get(key) {
64
+ const cachedValue = this.cache.get(this.getKey(key));
65
+ if (cachedValue !== undefined) {
66
+ return cachedValue;
67
+ }
68
+
69
+ // Trigger async fetch to populate cache
70
+ this.getAsync(key).catch(() => {
71
+ // Ignore errors in background fetch
72
+ });
73
+ return null;
74
+ }
75
+
76
+ /**
77
+ * Async get from storage
78
+ */
79
+ async getAsync(key) {
80
+ if (!this.asyncStorage) {
81
+ return this.cache.get(this.getKey(key)) ?? null;
82
+ }
83
+ try {
84
+ const fullKey = this.getKey(key);
85
+ const value = await this.asyncStorage.getItem(fullKey);
86
+ if (value !== null) {
87
+ this.cache.set(fullKey, value);
88
+ }
89
+ return value;
90
+ } catch (error) {
91
+ _logger.logger.error("AsyncStorageAdapter: Failed to get item", error);
92
+ return this.cache.get(this.getKey(key)) ?? null;
93
+ }
94
+ }
95
+
96
+ /**
97
+ * Synchronous set (writes to cache immediately, persists async)
98
+ */
99
+ set(key, value) {
100
+ const fullKey = this.getKey(key);
101
+ this.cache.set(fullKey, value);
102
+
103
+ // Persist asynchronously
104
+ this.setAsync(key, value).catch(error => {
105
+ _logger.logger.error("AsyncStorageAdapter: Failed to persist item", error);
106
+ });
107
+ }
108
+
109
+ /**
110
+ * Async set to storage
111
+ */
112
+ async setAsync(key, value) {
113
+ const fullKey = this.getKey(key);
114
+ this.cache.set(fullKey, value);
115
+ if (!this.asyncStorage) {
116
+ return;
117
+ }
118
+ try {
119
+ await this.asyncStorage.setItem(fullKey, value);
120
+ } catch (error) {
121
+ _logger.logger.error("AsyncStorageAdapter: Failed to set item", error);
122
+ throw error;
123
+ }
124
+ }
125
+
126
+ /**
127
+ * Synchronous remove (removes from cache immediately, persists async)
128
+ */
129
+ remove(key) {
130
+ const fullKey = this.getKey(key);
131
+ this.cache.delete(fullKey);
132
+
133
+ // Persist asynchronously
134
+ this.removeAsync(key).catch(error => {
135
+ _logger.logger.error("AsyncStorageAdapter: Failed to remove item", error);
136
+ });
137
+ }
138
+
139
+ /**
140
+ * Async remove from storage
141
+ */
142
+ async removeAsync(key) {
143
+ const fullKey = this.getKey(key);
144
+ this.cache.delete(fullKey);
145
+ if (!this.asyncStorage) {
146
+ return;
147
+ }
148
+ try {
149
+ await this.asyncStorage.removeItem(fullKey);
150
+ } catch (error) {
151
+ _logger.logger.error("AsyncStorageAdapter: Failed to remove item", error);
152
+ throw error;
153
+ }
154
+ }
155
+
156
+ /**
157
+ * Clear all cached data
158
+ */
159
+ clearCache() {
160
+ this.cache.clear();
161
+ }
162
+ }
163
+ var _default = exports.default = AsyncStorageAdapter;
164
+ //# sourceMappingURL=AsyncStorageAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_StorageBlueprint","_interopRequireDefault","require","_logger","e","__esModule","default","AsyncStorageAdapter","StorageBlueprint","asyncStorage","cache","Map","constructor","writeKey","initialize","allKeys","getAllKeys","formoPrefix","getKey","formoKeys","filter","key","startsWith","length","pairs","multiGet","value","set","logger","debug","error","isAvailable","get","cachedValue","undefined","getAsync","catch","fullKey","getItem","setAsync","setItem","remove","delete","removeAsync","removeItem","clearCache","clear","_default","exports"],"sourceRoot":"../../../../src","sources":["lib/storage/AsyncStorageAdapter.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _StorageBlueprint = _interopRequireDefault(require("./StorageBlueprint"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ /**
10
+ * In-memory storage fallback
11
+ * Data is lost when the app is closed
12
+ */
13
+ class MemoryStorage extends _StorageBlueprint.default {
14
+ storage = new Map();
15
+ isAvailable() {
16
+ return true;
17
+ }
18
+ get(key) {
19
+ return this.storage.get(this.getKey(key)) ?? null;
20
+ }
21
+ async getAsync(key) {
22
+ return this.get(key);
23
+ }
24
+ set(key, value) {
25
+ this.storage.set(this.getKey(key), value);
26
+ }
27
+ async setAsync(key, value) {
28
+ this.set(key, value);
29
+ }
30
+ remove(key) {
31
+ this.storage.delete(this.getKey(key));
32
+ }
33
+ async removeAsync(key) {
34
+ this.remove(key);
35
+ }
36
+ clear() {
37
+ this.storage.clear();
38
+ }
39
+ }
40
+ var _default = exports.default = MemoryStorage;
41
+ //# sourceMappingURL=MemoryStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_StorageBlueprint","_interopRequireDefault","require","e","__esModule","default","MemoryStorage","StorageBlueprint","storage","Map","isAvailable","get","key","getKey","getAsync","set","value","setAsync","remove","delete","removeAsync","clear","_default","exports"],"sourceRoot":"../../../../src","sources":["lib/storage/MemoryStorage.ts"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAkD,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAElD;AACA;AACA;AACA;AACA,MAAMG,aAAa,SAASC,yBAAgB,CAAC;EACnCC,OAAO,GAAwB,IAAIC,GAAG,CAAC,CAAC;EAEzCC,WAAWA,CAAA,EAAY;IAC5B,OAAO,IAAI;EACb;EAEOC,GAAGA,CAACC,GAAW,EAAiB;IACrC,OAAO,IAAI,CAACJ,OAAO,CAACG,GAAG,CAAC,IAAI,CAACE,MAAM,CAACD,GAAG,CAAC,CAAC,IAAI,IAAI;EACnD;EAEA,MAAaE,QAAQA,CAACF,GAAW,EAA0B;IACzD,OAAO,IAAI,CAACD,GAAG,CAACC,GAAG,CAAC;EACtB;EAEOG,GAAGA,CAACH,GAAW,EAAEI,KAAa,EAAQ;IAC3C,IAAI,CAACR,OAAO,CAACO,GAAG,CAAC,IAAI,CAACF,MAAM,CAACD,GAAG,CAAC,EAAEI,KAAK,CAAC;EAC3C;EAEA,MAAaC,QAAQA,CAACL,GAAW,EAAEI,KAAa,EAAiB;IAC/D,IAAI,CAACD,GAAG,CAACH,GAAG,EAAEI,KAAK,CAAC;EACtB;EAEOE,MAAMA,CAACN,GAAW,EAAQ;IAC/B,IAAI,CAACJ,OAAO,CAACW,MAAM,CAAC,IAAI,CAACN,MAAM,CAACD,GAAG,CAAC,CAAC;EACvC;EAEA,MAAaQ,WAAWA,CAACR,GAAW,EAAiB;IACnD,IAAI,CAACM,MAAM,CAACN,GAAG,CAAC;EAClB;EAEOS,KAAKA,CAAA,EAAS;IACnB,IAAI,CAACb,OAAO,CAACa,KAAK,CAAC,CAAC;EACtB;AACF;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAlB,OAAA,GAEcC,aAAa","ignoreList":[]}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _constants = require("../../constants");
8
+ /**
9
+ * Base storage class with key prefixing
10
+ */
11
+ class StorageBlueprint {
12
+ constructor(writeKey) {
13
+ this.writeKey = writeKey;
14
+ }
15
+
16
+ /**
17
+ * Generate storage key with prefix
18
+ */
19
+ getKey(key) {
20
+ return `${_constants.STORAGE_PREFIX}${this.writeKey}_${key}`;
21
+ }
22
+ }
23
+ var _default = exports.default = StorageBlueprint;
24
+ //# sourceMappingURL=StorageBlueprint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_constants","require","StorageBlueprint","constructor","writeKey","getKey","key","STORAGE_PREFIX","_default","exports","default"],"sourceRoot":"../../../../src","sources":["lib/storage/StorageBlueprint.ts"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAGA;AACA;AACA;AACA,MAAeC,gBAAgB,CAAqB;EAGlDC,WAAWA,CAACC,QAAgB,EAAE;IAC5B,IAAI,CAACA,QAAQ,GAAGA,QAAQ;EAC1B;;EAEA;AACF;AACA;EACSC,MAAMA,CAACC,GAAW,EAAU;IACjC,OAAO,GAAGC,yBAAc,GAAG,IAAI,CAACH,QAAQ,IAAIE,GAAG,EAAE;EACnD;AASF;AAAC,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcR,gBAAgB","ignoreList":[]}
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.StorageManager = void 0;
7
+ exports.getStorageManager = getStorageManager;
8
+ exports.initStorageManager = initStorageManager;
9
+ exports.storage = storage;
10
+ var _logger = require("../logger");
11
+ var _AsyncStorageAdapter = _interopRequireDefault(require("./AsyncStorageAdapter"));
12
+ var _MemoryStorage = _interopRequireDefault(require("./MemoryStorage"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
+ /**
15
+ * Storage manager for React Native SDK
16
+ * Uses AsyncStorage as primary storage with MemoryStorage fallback
17
+ */
18
+ class StorageManager {
19
+ storages = new Map();
20
+ constructor(writeKey) {
21
+ this.writeKey = writeKey;
22
+ }
23
+
24
+ /**
25
+ * Initialize with AsyncStorage instance
26
+ * This should be called during SDK initialization
27
+ */
28
+ async initialize(asyncStorage) {
29
+ // Create and initialize the AsyncStorage adapter directly.
30
+ // We bypass getStorage() here because it checks isAvailable() which
31
+ // returns false on an uninitialized adapter and would fall back to
32
+ // MemoryStorage, causing a crash when we call adapter.initialize().
33
+ const adapter = new _AsyncStorageAdapter.default(this.writeKey);
34
+ await adapter.initialize(asyncStorage);
35
+ this.storages.set("asyncStorage", adapter);
36
+ _logger.logger.debug("StorageManager: Initialized with AsyncStorage");
37
+ }
38
+
39
+ /**
40
+ * Get storage instance by type
41
+ */
42
+ getStorage(type) {
43
+ if (!this.storages.has(type)) {
44
+ const storage = this.createStorage(type);
45
+
46
+ // If storage is not available, fallback to memory and cache the fallback
47
+ if (!storage.isAvailable() && type !== "memoryStorage") {
48
+ _logger.logger.warn(`Storage ${type} is not available, falling back to memoryStorage`);
49
+ const fallback = this.getStorage("memoryStorage");
50
+ this.storages.set(type, fallback);
51
+ return fallback;
52
+ }
53
+ this.storages.set(type, storage);
54
+ }
55
+ return this.storages.get(type);
56
+ }
57
+
58
+ /**
59
+ * Create storage instance
60
+ */
61
+ createStorage(type) {
62
+ switch (type) {
63
+ case "asyncStorage":
64
+ return new _AsyncStorageAdapter.default(this.writeKey);
65
+ case "memoryStorage":
66
+ default:
67
+ return new _MemoryStorage.default(this.writeKey);
68
+ }
69
+ }
70
+
71
+ /**
72
+ * Get primary storage (AsyncStorage with fallback)
73
+ */
74
+ getPrimaryStorage() {
75
+ const asyncStorage = this.getStorage("asyncStorage");
76
+ if (asyncStorage.isAvailable()) {
77
+ return asyncStorage;
78
+ }
79
+ return this.getStorage("memoryStorage");
80
+ }
81
+
82
+ /**
83
+ * Check if persistent storage (AsyncStorage) has been initialized.
84
+ * Returns false if only MemoryStorage is available.
85
+ */
86
+ hasPersistentStorage() {
87
+ const stored = this.storages.get("asyncStorage");
88
+ return stored instanceof _AsyncStorageAdapter.default && stored.isAvailable();
89
+ }
90
+ }
91
+
92
+ // Global storage manager instance
93
+ exports.StorageManager = StorageManager;
94
+ let storageManagerInstance = null;
95
+
96
+ /**
97
+ * Initialize global storage manager
98
+ */
99
+ function initStorageManager(writeKey) {
100
+ if (!storageManagerInstance || storageManagerInstance["writeKey"] !== writeKey) {
101
+ // Clean up old instance before creating new one
102
+ if (storageManagerInstance) {
103
+ _logger.logger.debug("StorageManager: Replacing instance with new writeKey");
104
+ }
105
+ storageManagerInstance = new StorageManager(writeKey);
106
+ }
107
+ return storageManagerInstance;
108
+ }
109
+
110
+ /**
111
+ * Get global storage manager instance
112
+ */
113
+ function getStorageManager() {
114
+ return storageManagerInstance;
115
+ }
116
+
117
+ /**
118
+ * Get primary storage
119
+ */
120
+ function storage() {
121
+ if (!storageManagerInstance) {
122
+ throw new Error("StorageManager not initialized. Call initStorageManager first.");
123
+ }
124
+ return storageManagerInstance.getPrimaryStorage();
125
+ }
126
+ //# sourceMappingURL=StorageManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_logger","require","_AsyncStorageAdapter","_interopRequireDefault","_MemoryStorage","e","__esModule","default","StorageManager","storages","Map","constructor","writeKey","initialize","asyncStorage","adapter","AsyncStorageAdapter","set","logger","debug","getStorage","type","has","storage","createStorage","isAvailable","warn","fallback","get","MemoryStorage","getPrimaryStorage","hasPersistentStorage","stored","exports","storageManagerInstance","initStorageManager","getStorageManager","Error"],"sourceRoot":"../../../../src","sources":["lib/storage/StorageManager.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _exportNames = {
7
+ AsyncStorageAdapter: true,
8
+ MemoryStorage: true
9
+ };
10
+ Object.defineProperty(exports, "AsyncStorageAdapter", {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _AsyncStorageAdapter.default;
14
+ }
15
+ });
16
+ Object.defineProperty(exports, "MemoryStorage", {
17
+ enumerable: true,
18
+ get: function () {
19
+ return _MemoryStorage.default;
20
+ }
21
+ });
22
+ var _StorageManager = require("./StorageManager");
23
+ Object.keys(_StorageManager).forEach(function (key) {
24
+ if (key === "default" || key === "__esModule") return;
25
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
26
+ if (key in exports && exports[key] === _StorageManager[key]) return;
27
+ Object.defineProperty(exports, key, {
28
+ enumerable: true,
29
+ get: function () {
30
+ return _StorageManager[key];
31
+ }
32
+ });
33
+ });
34
+ var _types = require("./types");
35
+ Object.keys(_types).forEach(function (key) {
36
+ if (key === "default" || key === "__esModule") return;
37
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
38
+ if (key in exports && exports[key] === _types[key]) return;
39
+ Object.defineProperty(exports, key, {
40
+ enumerable: true,
41
+ get: function () {
42
+ return _types[key];
43
+ }
44
+ });
45
+ });
46
+ var _AsyncStorageAdapter = _interopRequireDefault(require("./AsyncStorageAdapter"));
47
+ var _MemoryStorage = _interopRequireDefault(require("./MemoryStorage"));
48
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
49
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_StorageManager","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_types","_AsyncStorageAdapter","_interopRequireDefault","_MemoryStorage","e","__esModule","default"],"sourceRoot":"../../../../src","sources":["lib/storage/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,eAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAL,eAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAb,eAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,MAAA,GAAAb,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAW,MAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,MAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,MAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AACA,IAAAU,oBAAA,GAAAC,sBAAA,CAAAf,OAAA;AACA,IAAAgB,cAAA,GAAAD,sBAAA,CAAAf,OAAA;AAA2D,SAAAe,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["lib/storage/types.ts"],"mappings":"","ignoreList":[]}