@croct/sdk 0.17.7 → 0.17.8

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 (409) hide show
  1. package/activeRecord.cjs.map +1 -0
  2. package/activeRecord.d.ts +8 -4
  3. package/activeRecord.js +115 -106
  4. package/activeRecord.js.map +1 -1
  5. package/apiKey.cjs.map +1 -0
  6. package/apiKey.d.ts +4 -2
  7. package/apiKey.js +152 -141
  8. package/apiKey.js.map +1 -1
  9. package/base64Url.cjs.map +1 -0
  10. package/base64Url.d.ts +4 -2
  11. package/base64Url.js +8 -15
  12. package/base64Url.js.map +1 -1
  13. package/cache/cache.cjs.map +1 -0
  14. package/cache/cache.d.ts +6 -4
  15. package/cache/cache.js +9 -10
  16. package/cache/cache.js.map +1 -1
  17. package/cache/cookieCache.cjs.map +1 -0
  18. package/cache/cookieCache.d.ts +6 -3
  19. package/cache/cookieCache.js +52 -54
  20. package/cache/cookieCache.js.map +1 -1
  21. package/cache/fallbackCache.cjs.map +1 -0
  22. package/cache/fallbackCache.d.ts +5 -2
  23. package/cache/fallbackCache.js +20 -21
  24. package/cache/fallbackCache.js.map +1 -1
  25. package/cache/inMemoryCache.cjs.map +1 -0
  26. package/cache/inMemoryCache.d.ts +5 -2
  27. package/cache/inMemoryCache.js +15 -17
  28. package/cache/inMemoryCache.js.map +1 -1
  29. package/cache/index.cjs.map +1 -0
  30. package/cache/index.d.ts +4 -4
  31. package/cache/index.js +9 -11
  32. package/cache/index.js.map +1 -1
  33. package/cache/localStorageCache.cjs.map +1 -0
  34. package/cache/localStorageCache.d.ts +5 -2
  35. package/cache/localStorageCache.js +55 -63
  36. package/cache/localStorageCache.js.map +1 -1
  37. package/channel/channel.cjs.map +1 -0
  38. package/channel/channel.d.ts +8 -6
  39. package/channel/channel.js +21 -22
  40. package/channel/channel.js.map +1 -1
  41. package/channel/encodedChannel.cjs.map +1 -0
  42. package/channel/encodedChannel.d.ts +6 -3
  43. package/channel/encodedChannel.js +13 -14
  44. package/channel/encodedChannel.js.map +1 -1
  45. package/channel/guaranteedChannel.cjs.map +1 -0
  46. package/channel/guaranteedChannel.d.ts +9 -7
  47. package/channel/guaranteedChannel.js +74 -73
  48. package/channel/guaranteedChannel.js.map +1 -1
  49. package/channel/httpBeaconChannel.cjs.map +1 -0
  50. package/channel/httpBeaconChannel.d.ts +9 -6
  51. package/channel/httpBeaconChannel.js +82 -83
  52. package/channel/httpBeaconChannel.js.map +1 -1
  53. package/channel/index.cjs.map +1 -0
  54. package/channel/index.d.ts +12 -7
  55. package/channel/index.js +15 -17
  56. package/channel/index.js.map +1 -1
  57. package/channel/queuedChannel.cjs.map +1 -0
  58. package/channel/queuedChannel.d.ts +7 -4
  59. package/channel/queuedChannel.js +87 -97
  60. package/channel/queuedChannel.js.map +1 -1
  61. package/channel/retryChannel.cjs.map +1 -0
  62. package/channel/retryChannel.d.ts +7 -5
  63. package/channel/retryChannel.js +58 -57
  64. package/channel/retryChannel.js.map +1 -1
  65. package/channel/sandboxChannel.cjs.map +1 -0
  66. package/channel/sandboxChannel.d.ts +5 -2
  67. package/channel/sandboxChannel.js +34 -35
  68. package/channel/sandboxChannel.js.map +1 -1
  69. package/cid/assigner.cjs.map +1 -0
  70. package/cid/assigner.d.ts +3 -1
  71. package/cid/assigner.js +0 -2
  72. package/cid/assigner.js.map +1 -1
  73. package/cid/cachedAssigner.cjs.map +1 -0
  74. package/cid/cachedAssigner.d.ts +7 -5
  75. package/cid/cachedAssigner.js +37 -43
  76. package/cid/cachedAssigner.js.map +1 -1
  77. package/cid/fixedAssigner.cjs.map +1 -0
  78. package/cid/fixedAssigner.d.ts +5 -2
  79. package/cid/fixedAssigner.js +9 -10
  80. package/cid/fixedAssigner.js.map +1 -1
  81. package/cid/index.cjs.map +1 -0
  82. package/cid/index.d.ts +6 -4
  83. package/cid/index.js +9 -11
  84. package/cid/index.js.map +1 -1
  85. package/cid/remoteAssigner.cjs.map +1 -0
  86. package/cid/remoteAssigner.d.ts +6 -3
  87. package/cid/remoteAssigner.js +36 -37
  88. package/cid/remoteAssigner.js.map +1 -1
  89. package/constants.cjs.map +1 -0
  90. package/constants.d.ts +6 -4
  91. package/constants.js +10 -7
  92. package/constants.js.map +1 -1
  93. package/container.cjs.map +1 -0
  94. package/container.d.ts +28 -15
  95. package/container.js +269 -252
  96. package/container.js.map +1 -1
  97. package/contentFetcher.cjs.map +1 -0
  98. package/contentFetcher.d.ts +17 -14
  99. package/contentFetcher.js +156 -163
  100. package/contentFetcher.js.map +1 -1
  101. package/context.cjs.map +1 -0
  102. package/context.d.ts +13 -9
  103. package/context.js +80 -81
  104. package/context.js.map +1 -1
  105. package/error.cjs.map +1 -0
  106. package/error.d.ts +4 -2
  107. package/error.js +21 -21
  108. package/error.js.map +1 -1
  109. package/evaluator.cjs.map +1 -0
  110. package/evaluator.d.ts +18 -16
  111. package/evaluator.js +179 -179
  112. package/evaluator.js.map +1 -1
  113. package/eventManager.cjs.map +1 -0
  114. package/eventManager.d.ts +8 -6
  115. package/eventManager.js +24 -26
  116. package/eventManager.js.map +1 -1
  117. package/eventSubjectProcessor.cjs.map +1 -0
  118. package/eventSubjectProcessor.d.ts +16 -3
  119. package/eventSubjectProcessor.js +53 -59
  120. package/eventSubjectProcessor.js.map +1 -1
  121. package/facade/contentFetcherFacade.cjs.map +1 -0
  122. package/facade/contentFetcherFacade.d.ts +16 -7
  123. package/facade/contentFetcherFacade.js +32 -35
  124. package/facade/contentFetcherFacade.js.map +1 -1
  125. package/facade/evaluatorFacade.cjs.map +1 -0
  126. package/facade/evaluatorFacade.d.ts +17 -10
  127. package/facade/evaluatorFacade.js +56 -60
  128. package/facade/evaluatorFacade.js.map +1 -1
  129. package/facade/index.cjs.map +1 -0
  130. package/facade/index.d.ts +29 -7
  131. package/facade/index.js +19 -19
  132. package/facade/index.js.map +1 -1
  133. package/facade/sdkFacade.cjs.map +1 -0
  134. package/facade/sdkFacade.d.ts +33 -15
  135. package/facade/sdkFacade.js +201 -214
  136. package/facade/sdkFacade.js.map +1 -1
  137. package/facade/sessionFacade.cjs.map +1 -0
  138. package/facade/sessionFacade.d.ts +18 -3
  139. package/facade/sessionFacade.js +10 -11
  140. package/facade/sessionFacade.js.map +1 -1
  141. package/facade/sessionPatch.cjs.map +1 -0
  142. package/facade/sessionPatch.d.ts +17 -4
  143. package/facade/sessionPatch.js +22 -24
  144. package/facade/sessionPatch.js.map +1 -1
  145. package/facade/trackerFacade.cjs.map +1 -0
  146. package/facade/trackerFacade.d.ts +17 -4
  147. package/facade/trackerFacade.js +67 -57
  148. package/facade/trackerFacade.js.map +1 -1
  149. package/facade/userFacade.cjs.map +1 -0
  150. package/facade/userFacade.d.ts +21 -4
  151. package/facade/userFacade.js +17 -18
  152. package/facade/userFacade.js.map +1 -1
  153. package/facade/userPatch.cjs.map +1 -0
  154. package/facade/userPatch.d.ts +17 -4
  155. package/facade/userPatch.js +22 -24
  156. package/facade/userPatch.js.map +1 -1
  157. package/help.cjs.map +1 -0
  158. package/help.d.ts +3 -1
  159. package/help.js +19 -23
  160. package/help.js.map +1 -1
  161. package/index.cjs.map +1 -0
  162. package/index.d.ts +25 -3
  163. package/index.js +7 -7
  164. package/index.js.map +1 -1
  165. package/logging/consoleLogger.cjs.map +1 -0
  166. package/logging/consoleLogger.d.ts +5 -2
  167. package/logging/consoleLogger.js +23 -24
  168. package/logging/consoleLogger.js.map +1 -1
  169. package/logging/filteredLogger.cjs.map +1 -0
  170. package/logging/filteredLogger.d.ts +8 -5
  171. package/logging/filteredLogger.js +36 -37
  172. package/logging/filteredLogger.js.map +1 -1
  173. package/logging/index.cjs.map +1 -0
  174. package/logging/index.d.ts +5 -5
  175. package/logging/index.js +11 -13
  176. package/logging/index.js.map +1 -1
  177. package/logging/logger.cjs.map +1 -0
  178. package/logging/logger.d.ts +4 -2
  179. package/logging/logger.js +0 -2
  180. package/logging/logger.js.map +1 -1
  181. package/logging/namespacedLogger.cjs.map +1 -0
  182. package/logging/namespacedLogger.d.ts +5 -2
  183. package/logging/namespacedLogger.js +22 -23
  184. package/logging/namespacedLogger.js.map +1 -1
  185. package/logging/nullLogger.cjs.map +1 -0
  186. package/logging/nullLogger.d.ts +5 -2
  187. package/logging/nullLogger.js +11 -16
  188. package/logging/nullLogger.js.map +1 -1
  189. package/namespacedStorage.cjs.map +1 -0
  190. package/namespacedStorage.d.ts +3 -1
  191. package/namespacedStorage.js +51 -52
  192. package/namespacedStorage.js.map +1 -1
  193. package/package.json +60 -6
  194. package/patch.cjs.map +1 -0
  195. package/patch.d.ts +6 -4
  196. package/patch.js +0 -2
  197. package/patch.js.map +1 -1
  198. package/queue/capacityRestrictedQueue.cjs.map +1 -0
  199. package/queue/capacityRestrictedQueue.d.ts +5 -2
  200. package/queue/capacityRestrictedQueue.js +31 -32
  201. package/queue/capacityRestrictedQueue.js.map +1 -1
  202. package/queue/inMemoryQueue.cjs.map +1 -0
  203. package/queue/inMemoryQueue.d.ts +5 -2
  204. package/queue/inMemoryQueue.js +32 -34
  205. package/queue/inMemoryQueue.js.map +1 -1
  206. package/queue/index.cjs.map +1 -0
  207. package/queue/index.d.ts +6 -5
  208. package/queue/index.js +11 -13
  209. package/queue/index.js.map +1 -1
  210. package/queue/monitoredQueue.cjs.map +1 -0
  211. package/queue/monitoredQueue.d.ts +8 -5
  212. package/queue/monitoredQueue.js +104 -110
  213. package/queue/monitoredQueue.js.map +1 -1
  214. package/queue/persistentQueue.cjs.map +1 -0
  215. package/queue/persistentQueue.d.ts +5 -2
  216. package/queue/persistentQueue.js +52 -54
  217. package/queue/persistentQueue.js.map +1 -1
  218. package/queue/queue.cjs.map +1 -0
  219. package/queue/queue.d.ts +3 -1
  220. package/queue/queue.js +0 -2
  221. package/queue/queue.js.map +1 -1
  222. package/retry/arbitraryPolicy.cjs.map +1 -0
  223. package/retry/arbitraryPolicy.d.ts +5 -2
  224. package/retry/arbitraryPolicy.js +14 -15
  225. package/retry/arbitraryPolicy.js.map +1 -1
  226. package/retry/backoffPolicy.cjs.map +1 -0
  227. package/retry/backoffPolicy.d.ts +5 -3
  228. package/retry/backoffPolicy.js +52 -50
  229. package/retry/backoffPolicy.js.map +1 -1
  230. package/retry/index.cjs.map +1 -0
  231. package/retry/index.d.ts +5 -5
  232. package/retry/index.js +11 -13
  233. package/retry/index.js.map +1 -1
  234. package/retry/maxAttemptsPolicy.cjs.map +1 -0
  235. package/retry/maxAttemptsPolicy.d.ts +5 -2
  236. package/retry/maxAttemptsPolicy.js +17 -18
  237. package/retry/maxAttemptsPolicy.js.map +1 -1
  238. package/retry/neverPolicy.cjs.map +1 -0
  239. package/retry/neverPolicy.d.ts +5 -2
  240. package/retry/neverPolicy.js +9 -10
  241. package/retry/neverPolicy.js.map +1 -1
  242. package/retry/policy.cjs.map +1 -0
  243. package/retry/policy.d.ts +3 -1
  244. package/retry/policy.js +0 -2
  245. package/retry/policy.js.map +1 -1
  246. package/schema/attributeSchema.cjs.map +1 -0
  247. package/schema/attributeSchema.d.ts +6 -2
  248. package/schema/attributeSchema.js +7 -7
  249. package/schema/attributeSchema.js.map +1 -1
  250. package/schema/contentFetcherSchemas.cjs.map +1 -0
  251. package/schema/contentFetcherSchemas.d.ts +6 -2
  252. package/schema/contentFetcherSchemas.js +24 -21
  253. package/schema/contentFetcherSchemas.js.map +1 -1
  254. package/schema/contentSchemas.cjs.map +1 -0
  255. package/schema/contentSchemas.d.ts +6 -2
  256. package/schema/contentSchemas.js +45 -45
  257. package/schema/contentSchemas.js.map +1 -1
  258. package/schema/contextSchemas.cjs.map +1 -0
  259. package/schema/contextSchemas.d.ts +6 -2
  260. package/schema/contextSchemas.js +6 -6
  261. package/schema/contextSchemas.js.map +1 -1
  262. package/schema/ecommerceSchemas.cjs.map +1 -0
  263. package/schema/ecommerceSchemas.d.ts +10 -6
  264. package/schema/ecommerceSchemas.js +176 -172
  265. package/schema/ecommerceSchemas.js.map +1 -1
  266. package/schema/evaluatorSchemas.cjs.map +1 -0
  267. package/schema/evaluatorSchemas.d.ts +6 -2
  268. package/schema/evaluatorSchemas.js +46 -30
  269. package/schema/evaluatorSchemas.js.map +1 -1
  270. package/schema/eventSchemas.cjs.map +1 -0
  271. package/schema/eventSchemas.d.ts +16 -12
  272. package/schema/eventSchemas.js +125 -102
  273. package/schema/eventSchemas.js.map +1 -1
  274. package/schema/index.cjs.map +1 -0
  275. package/schema/index.d.ts +14 -11
  276. package/schema/index.js +11 -14
  277. package/schema/index.js.map +1 -1
  278. package/schema/loggerSchema.cjs.map +1 -0
  279. package/schema/loggerSchema.d.ts +6 -2
  280. package/schema/loggerSchema.js +13 -13
  281. package/schema/loggerSchema.js.map +1 -1
  282. package/schema/operationSchemas.cjs.map +1 -0
  283. package/schema/operationSchemas.d.ts +14 -10
  284. package/schema/operationSchemas.js +85 -69
  285. package/schema/operationSchemas.js.map +1 -1
  286. package/schema/sdkFacadeSchemas.cjs.map +1 -0
  287. package/schema/sdkFacadeSchemas.d.ts +6 -2
  288. package/schema/sdkFacadeSchemas.js +65 -51
  289. package/schema/sdkFacadeSchemas.js.map +1 -1
  290. package/schema/sdkSchemas.cjs.map +1 -0
  291. package/schema/sdkSchemas.d.ts +8 -4
  292. package/schema/sdkSchemas.js +80 -78
  293. package/schema/sdkSchemas.js.map +1 -1
  294. package/schema/tokenSchema.cjs.map +1 -0
  295. package/schema/tokenSchema.d.ts +6 -2
  296. package/schema/tokenSchema.js +41 -38
  297. package/schema/tokenSchema.js.map +1 -1
  298. package/schema/userSchema.cjs.map +1 -0
  299. package/schema/userSchema.d.ts +6 -2
  300. package/schema/userSchema.js +183 -134
  301. package/schema/userSchema.js.map +1 -1
  302. package/sdk.cjs.map +1 -0
  303. package/sdk.d.ts +28 -14
  304. package/sdk.js +106 -108
  305. package/sdk.js.map +1 -1
  306. package/sdkEvents.cjs.map +1 -0
  307. package/sdkEvents.d.ts +10 -5
  308. package/sdkEvents.js +0 -2
  309. package/sdkEvents.js.map +1 -1
  310. package/sourceLocation.cjs.map +1 -0
  311. package/sourceLocation.d.ts +7 -5
  312. package/sourceLocation.js +56 -57
  313. package/sourceLocation.js.map +1 -1
  314. package/tab.cjs.map +1 -0
  315. package/tab.d.ts +9 -7
  316. package/tab.js +93 -90
  317. package/tab.js.map +1 -1
  318. package/token/cachedTokenStore.cjs.map +1 -0
  319. package/token/cachedTokenStore.d.ts +8 -3
  320. package/token/cachedTokenStore.js +22 -24
  321. package/token/cachedTokenStore.js.map +1 -1
  322. package/token/inMemoryTokenStore.cjs.map +1 -0
  323. package/token/inMemoryTokenStore.d.ts +7 -2
  324. package/token/inMemoryTokenStore.js +12 -13
  325. package/token/inMemoryTokenStore.js.map +1 -1
  326. package/token/index.cjs.map +1 -0
  327. package/token/index.d.ts +7 -4
  328. package/token/index.js +9 -11
  329. package/token/index.js.map +1 -1
  330. package/token/replicatedTokenStore.cjs.map +1 -0
  331. package/token/replicatedTokenStore.d.ts +7 -2
  332. package/token/replicatedTokenStore.js +14 -15
  333. package/token/replicatedTokenStore.js.map +1 -1
  334. package/token/token.cjs.map +1 -0
  335. package/token/token.d.ts +11 -8
  336. package/token/token.js +212 -195
  337. package/token/token.js.map +1 -1
  338. package/tracker.cjs.map +1 -0
  339. package/tracker.d.ts +20 -13
  340. package/tracker.js +307 -307
  341. package/tracker.js.map +1 -1
  342. package/trackingEvents.cjs.map +1 -0
  343. package/trackingEvents.d.ts +65 -62
  344. package/trackingEvents.js +57 -56
  345. package/trackingEvents.js.map +1 -1
  346. package/transformer.cjs.map +1 -0
  347. package/transformer.d.ts +4 -2
  348. package/transformer.js +5 -6
  349. package/transformer.js.map +1 -1
  350. package/utilityTypes.cjs.map +1 -0
  351. package/utilityTypes.d.ts +4 -2
  352. package/utilityTypes.js +0 -2
  353. package/utilityTypes.js.map +1 -1
  354. package/uuid.cjs.map +1 -0
  355. package/uuid.d.ts +3 -1
  356. package/uuid.js +27 -32
  357. package/uuid.js.map +1 -1
  358. package/validation/arrayType.cjs.map +1 -0
  359. package/validation/arrayType.d.ts +5 -3
  360. package/validation/arrayType.js +45 -41
  361. package/validation/arrayType.js.map +1 -1
  362. package/validation/booleanType.cjs.map +1 -0
  363. package/validation/booleanType.d.ts +5 -2
  364. package/validation/booleanType.js +19 -16
  365. package/validation/booleanType.js.map +1 -1
  366. package/validation/functionType.cjs.map +1 -0
  367. package/validation/functionType.d.ts +5 -2
  368. package/validation/functionType.js +19 -16
  369. package/validation/functionType.js.map +1 -1
  370. package/validation/index.cjs.map +1 -0
  371. package/validation/index.d.ts +12 -12
  372. package/validation/index.js +27 -29
  373. package/validation/index.js.map +1 -1
  374. package/validation/jsonType.cjs.map +1 -0
  375. package/validation/jsonType.d.ts +8 -6
  376. package/validation/jsonType.js +89 -82
  377. package/validation/jsonType.js.map +1 -1
  378. package/validation/mixedSchema.cjs.map +1 -0
  379. package/validation/mixedSchema.d.ts +5 -2
  380. package/validation/mixedSchema.js +5 -7
  381. package/validation/mixedSchema.js.map +1 -1
  382. package/validation/nullType.cjs.map +1 -0
  383. package/validation/nullType.d.ts +5 -2
  384. package/validation/nullType.js +19 -16
  385. package/validation/nullType.js.map +1 -1
  386. package/validation/numberType.cjs.map +1 -0
  387. package/validation/numberType.d.ts +5 -3
  388. package/validation/numberType.js +40 -32
  389. package/validation/numberType.js.map +1 -1
  390. package/validation/objectType.cjs.map +1 -0
  391. package/validation/objectType.d.ts +5 -3
  392. package/validation/objectType.js +84 -85
  393. package/validation/objectType.js.map +1 -1
  394. package/validation/schema.cjs.map +1 -0
  395. package/validation/schema.d.ts +5 -3
  396. package/validation/schema.js +8 -9
  397. package/validation/schema.js.map +1 -1
  398. package/validation/stringType.cjs.map +1 -0
  399. package/validation/stringType.d.ts +5 -3
  400. package/validation/stringType.js +74 -70
  401. package/validation/stringType.js.map +1 -1
  402. package/validation/unionType.cjs.map +1 -0
  403. package/validation/unionType.d.ts +5 -2
  404. package/validation/unionType.js +37 -35
  405. package/validation/unionType.js.map +1 -1
  406. package/validation/violation.cjs.map +1 -0
  407. package/validation/violation.d.ts +4 -2
  408. package/validation/violation.js +18 -18
  409. package/validation/violation.js.map +1 -1
package/container.js CHANGED
@@ -1,271 +1,288 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Container = void 0;
4
- const logging_1 = require("./logging");
5
- const context_1 = require("./context");
6
- const namespacedStorage_1 = require("./namespacedStorage");
7
- const retry_1 = require("./retry");
8
- const queue_1 = require("./queue");
9
- const token_1 = require("./token");
10
- const tracker_1 = require("./tracker");
11
- const evaluator_1 = require("./evaluator");
12
- const transformer_1 = require("./transformer");
13
- const cid_1 = require("./cid");
14
- const eventManager_1 = require("./eventManager");
15
- const cache_1 = require("./cache");
16
- const guaranteedChannel_1 = require("./channel/guaranteedChannel");
17
- const channel_1 = require("./channel");
18
- const contentFetcher_1 = require("./contentFetcher");
19
- const cookieCache_1 = require("./cache/cookieCache");
20
- const filteredLogger_1 = require("./logging/filteredLogger");
21
- const httpBeaconChannel_1 = require("./channel/httpBeaconChannel");
22
- class Container {
23
- constructor(configuration) {
24
- this.eventManager = new eventManager_1.SynchronousEventManager();
25
- this.configuration = configuration;
1
+ import { ConsoleLogger, NamespacedLogger } from "./logging";
2
+ import { Context } from "./context";
3
+ import { NamespacedStorage } from "./namespacedStorage";
4
+ import { BackoffPolicy, ArbitraryPolicy } from "./retry";
5
+ import { PersistentQueue, MonitoredQueue, CapacityRestrictedQueue } from "./queue";
6
+ import { CachedTokenStore } from "./token";
7
+ import { Tracker } from "./tracker";
8
+ import { Evaluator } from "./evaluator";
9
+ import { encodeJson } from "./transformer";
10
+ import { CachedAssigner, RemoteAssigner, FixedAssigner } from "./cid";
11
+ import { SynchronousEventManager } from "./eventManager";
12
+ import { LocalStorageCache } from "./cache";
13
+ import { TimeStamper } from "./channel/guaranteedChannel";
14
+ import {
15
+ QueuedChannel,
16
+ RetryChannel,
17
+ GuaranteedChannel,
18
+ EncodedChannel,
19
+ SandboxChannel
20
+ } from "./channel";
21
+ import { ContentFetcher } from "./contentFetcher";
22
+ import { CookieCache } from "./cache/cookieCache";
23
+ import { FilteredLogger } from "./logging/filteredLogger";
24
+ import { HttpBeaconChannel } from "./channel/httpBeaconChannel";
25
+ const _Container = class _Container {
26
+ constructor(configuration) {
27
+ this.eventManager = new SynchronousEventManager();
28
+ this.configuration = configuration;
29
+ }
30
+ getConfiguration() {
31
+ return this.configuration;
32
+ }
33
+ getEvaluator() {
34
+ if (this.evaluator === void 0) {
35
+ this.evaluator = this.createEvaluator();
26
36
  }
27
- getConfiguration() {
28
- return this.configuration;
37
+ return this.evaluator;
38
+ }
39
+ createEvaluator() {
40
+ return new Evaluator({
41
+ appId: this.configuration.appId,
42
+ baseEndpointUrl: this.configuration.evaluationBaseEndpointUrl,
43
+ logger: this.getLogger("Evaluator"),
44
+ defaultTimeout: this.configuration.defaultFetchTimeout ?? _Container.DEFAULT_FETCH_TIMEOUT
45
+ });
46
+ }
47
+ getContentFetcher() {
48
+ if (this.contentFetcher === void 0) {
49
+ this.contentFetcher = this.createContentFetcher();
29
50
  }
30
- getEvaluator() {
31
- if (this.evaluator === undefined) {
32
- this.evaluator = this.createEvaluator();
33
- }
34
- return this.evaluator;
51
+ return this.contentFetcher;
52
+ }
53
+ createContentFetcher() {
54
+ return new ContentFetcher({
55
+ appId: this.configuration.appId,
56
+ baseEndpointUrl: this.configuration.contentBaseEndpointUrl,
57
+ logger: this.getLogger("ContentFetcher"),
58
+ defaultTimeout: this.configuration.defaultFetchTimeout ?? _Container.DEFAULT_FETCH_TIMEOUT,
59
+ defaultPreferredLocale: this.configuration.defaultPreferredLocale
60
+ });
61
+ }
62
+ getPreviewTokenStore() {
63
+ if (this.previewTokenStore === void 0) {
64
+ this.previewTokenStore = new CachedTokenStore(
65
+ this.configuration.cookie?.previewToken !== void 0 ? new CookieCache(this.configuration.cookie.previewToken) : new LocalStorageCache(this.getGlobalBrowserStorage("preview"), "token")
66
+ );
35
67
  }
36
- createEvaluator() {
37
- var _a;
38
- return new evaluator_1.Evaluator({
39
- appId: this.configuration.appId,
40
- baseEndpointUrl: this.configuration.evaluationBaseEndpointUrl,
41
- logger: this.getLogger('Evaluator'),
42
- defaultTimeout: (_a = this.configuration.defaultFetchTimeout) !== null && _a !== void 0 ? _a : Container.DEFAULT_FETCH_TIMEOUT,
43
- });
68
+ return this.previewTokenStore;
69
+ }
70
+ getTracker() {
71
+ if (this.tracker === void 0) {
72
+ this.tracker = this.createTracker();
44
73
  }
45
- getContentFetcher() {
46
- if (this.contentFetcher === undefined) {
47
- this.contentFetcher = this.createContentFetcher();
48
- }
49
- return this.contentFetcher;
74
+ return this.tracker;
75
+ }
76
+ createTracker() {
77
+ const context = this.getContext();
78
+ const tracker = new Tracker({
79
+ tab: context.getTab(),
80
+ tokenProvider: this.getUserTokenStore(),
81
+ inactivityRetryPolicy: new ArbitraryPolicy([3e4, 3e4, 12e4, 12e4, 3e5, 3e5, 9e5]),
82
+ logger: this.getLogger("Tracker"),
83
+ channel: this.getBeaconChannel(),
84
+ eventMetadata: this.configuration.eventMetadata,
85
+ processor: this.configuration.eventProcessor === void 0 ? void 0 : this.configuration.eventProcessor(this)
86
+ });
87
+ const queue = this.getBeaconQueue();
88
+ queue.addCallback("halfEmpty", tracker.unsuspend);
89
+ queue.addCallback("full", tracker.suspend);
90
+ return tracker;
91
+ }
92
+ getUserTokenStore() {
93
+ if (this.userTokenProvider === void 0) {
94
+ const context = this.getContext();
95
+ this.userTokenProvider = {
96
+ getToken: context.getToken.bind(context),
97
+ setToken: context.setToken.bind(context)
98
+ };
50
99
  }
51
- createContentFetcher() {
52
- var _a;
53
- return new contentFetcher_1.ContentFetcher({
54
- appId: this.configuration.appId,
55
- baseEndpointUrl: this.configuration.contentBaseEndpointUrl,
56
- logger: this.getLogger('ContentFetcher'),
57
- defaultTimeout: (_a = this.configuration.defaultFetchTimeout) !== null && _a !== void 0 ? _a : Container.DEFAULT_FETCH_TIMEOUT,
58
- defaultPreferredLocale: this.configuration.defaultPreferredLocale,
59
- });
100
+ return this.userTokenProvider;
101
+ }
102
+ getContext() {
103
+ if (this.context === void 0) {
104
+ this.context = this.createContext();
60
105
  }
61
- getPreviewTokenStore() {
62
- var _a;
63
- if (this.previewTokenStore === undefined) {
64
- this.previewTokenStore = new token_1.CachedTokenStore(((_a = this.configuration.cookie) === null || _a === void 0 ? void 0 : _a.previewToken) !== undefined
65
- ? new cookieCache_1.CookieCache(this.configuration.cookie.previewToken)
66
- : new cache_1.LocalStorageCache(this.getGlobalBrowserStorage('preview'), 'token'));
67
- }
68
- return this.previewTokenStore;
106
+ return this.context;
107
+ }
108
+ createContext() {
109
+ const tokenKey = this.resolveStorageNamespace("token");
110
+ const tabKey = this.resolveStorageNamespace("tab");
111
+ const browserCache = this.configuration.tokenScope === "global" && this.configuration.cookie?.userToken !== void 0 ? new CookieCache(this.configuration.cookie.userToken) : new LocalStorageCache(this.getLocalStorage(), tokenKey);
112
+ const tabStorage = this.getSessionStorage();
113
+ if (browserCache instanceof LocalStorageCache) {
114
+ this.removeTokenSyncListener = LocalStorageCache.autoSync(browserCache);
69
115
  }
70
- getTracker() {
71
- if (this.tracker === undefined) {
72
- this.tracker = this.createTracker();
73
- }
74
- return this.tracker;
116
+ return Context.load({
117
+ tokenScope: this.configuration.tokenScope,
118
+ eventDispatcher: this.getEventManager(),
119
+ urlSanitizer: this.configuration.urlSanitizer,
120
+ cache: {
121
+ tabId: new LocalStorageCache(tabStorage, tabKey),
122
+ tabToken: new LocalStorageCache(tabStorage, tokenKey),
123
+ browserToken: browserCache
124
+ }
125
+ });
126
+ }
127
+ getBeaconChannel() {
128
+ if (this.beaconChannel === void 0) {
129
+ this.beaconChannel = this.createBeaconChannel();
75
130
  }
76
- createTracker() {
77
- const context = this.getContext();
78
- const tracker = new tracker_1.Tracker({
79
- tab: context.getTab(),
80
- tokenProvider: this.getUserTokenStore(),
81
- inactivityRetryPolicy: new retry_1.ArbitraryPolicy([30000, 30000, 120000, 120000, 300000, 300000, 900000]),
82
- logger: this.getLogger('Tracker'),
83
- channel: this.getBeaconChannel(),
84
- eventMetadata: this.configuration.eventMetadata,
85
- processor: this.configuration.eventProcessor === undefined
86
- ? undefined
87
- : this.configuration.eventProcessor(this),
88
- });
89
- const queue = this.getBeaconQueue();
90
- queue.addCallback('halfEmpty', tracker.unsuspend);
91
- queue.addCallback('full', tracker.suspend);
92
- return tracker;
131
+ return this.beaconChannel;
132
+ }
133
+ createBeaconChannel() {
134
+ if (this.configuration.test) {
135
+ return new SandboxChannel();
93
136
  }
94
- getUserTokenStore() {
95
- if (this.userTokenProvider === undefined) {
96
- const context = this.getContext();
97
- this.userTokenProvider = {
98
- getToken: context.getToken.bind(context),
99
- setToken: context.setToken.bind(context),
100
- };
101
- }
102
- return this.userTokenProvider;
137
+ const channelLogger = this.getLogger("BeaconChannel");
138
+ const { appId, trackerEndpointUrl } = this.configuration;
139
+ const queuedChannel = new QueuedChannel(
140
+ new RetryChannel({
141
+ channel: new GuaranteedChannel({
142
+ channel: new HttpBeaconChannel({
143
+ appId,
144
+ endpointUrl: trackerEndpointUrl,
145
+ cidAssigner: this.getCidAssigner(),
146
+ logger: channelLogger
147
+ }),
148
+ stamper: new TimeStamper(),
149
+ ackTimeout: 1e4,
150
+ logger: channelLogger
151
+ }),
152
+ retryPolicy: new BackoffPolicy({
153
+ minRetryDelay: 3e3,
154
+ // 3 seconds
155
+ maxRetryDelay: 60 * 1e3,
156
+ // 60 seconds
157
+ backoffFactor: 1.5,
158
+ // 1.5 ^ attempt
159
+ backoffJitter: 1
160
+ // add randomness
161
+ }),
162
+ logger: channelLogger
163
+ }),
164
+ this.getBeaconQueue(),
165
+ channelLogger
166
+ );
167
+ queuedChannel.flush().catch(() => {
168
+ });
169
+ return new EncodedChannel(queuedChannel, encodeJson);
170
+ }
171
+ getCidAssigner() {
172
+ if (this.cidAssigner === void 0) {
173
+ this.cidAssigner = this.createCidAssigner();
103
174
  }
104
- getContext() {
105
- if (this.context === undefined) {
106
- this.context = this.createContext();
107
- }
108
- return this.context;
175
+ return this.cidAssigner;
176
+ }
177
+ createCidAssigner() {
178
+ if (this.configuration.clientId !== void 0) {
179
+ return new FixedAssigner(this.configuration.clientId);
109
180
  }
110
- createContext() {
111
- var _a;
112
- const tokenKey = this.resolveStorageNamespace('token');
113
- const tabKey = this.resolveStorageNamespace('tab');
114
- const browserCache = this.configuration.tokenScope === 'global'
115
- && ((_a = this.configuration.cookie) === null || _a === void 0 ? void 0 : _a.userToken) !== undefined
116
- ? new cookieCache_1.CookieCache(this.configuration.cookie.userToken)
117
- : new cache_1.LocalStorageCache(this.getLocalStorage(), tokenKey);
118
- const tabStorage = this.getSessionStorage();
119
- if (browserCache instanceof cache_1.LocalStorageCache) {
120
- this.removeTokenSyncListener = cache_1.LocalStorageCache.autoSync(browserCache);
121
- }
122
- return context_1.Context.load({
123
- tokenScope: this.configuration.tokenScope,
124
- eventDispatcher: this.getEventManager(),
125
- urlSanitizer: this.configuration.urlSanitizer,
126
- cache: {
127
- tabId: new cache_1.LocalStorageCache(tabStorage, tabKey),
128
- tabToken: new cache_1.LocalStorageCache(tabStorage, tokenKey),
129
- browserToken: browserCache,
130
- },
131
- });
181
+ if (this.configuration.test) {
182
+ return new FixedAssigner("00000000-0000-0000-0000-000000000000");
132
183
  }
133
- getBeaconChannel() {
134
- if (this.beaconChannel === undefined) {
135
- this.beaconChannel = this.createBeaconChannel();
136
- }
137
- return this.beaconChannel;
184
+ const logger = this.getLogger("CidAssigner");
185
+ return new CachedAssigner(
186
+ new RemoteAssigner(this.configuration.cidAssignerEndpointUrl, logger),
187
+ this.configuration.cookie?.clientId !== void 0 ? new CookieCache(this.configuration.cookie?.clientId) : new LocalStorageCache(this.getLocalStorage(), "croct.cid"),
188
+ {
189
+ logger,
190
+ mirror: !this.configuration.disableCidMirroring
191
+ }
192
+ );
193
+ }
194
+ getBeaconQueue() {
195
+ if (this.beaconQueue === void 0) {
196
+ this.beaconQueue = this.createBeaconQueue();
138
197
  }
139
- createBeaconChannel() {
140
- if (this.configuration.test) {
141
- return new channel_1.SandboxChannel();
142
- }
143
- const channelLogger = this.getLogger('BeaconChannel');
144
- const { appId, trackerEndpointUrl } = this.configuration;
145
- const queuedChannel = new channel_1.QueuedChannel(new channel_1.RetryChannel({
146
- channel: new channel_1.GuaranteedChannel({
147
- channel: new httpBeaconChannel_1.HttpBeaconChannel({
148
- appId: appId,
149
- endpointUrl: trackerEndpointUrl,
150
- cidAssigner: this.getCidAssigner(),
151
- logger: channelLogger,
152
- }),
153
- stamper: new guaranteedChannel_1.TimeStamper(),
154
- ackTimeout: 10000,
155
- logger: channelLogger,
156
- }),
157
- retryPolicy: new retry_1.BackoffPolicy({
158
- minRetryDelay: 3000, // 3 seconds
159
- maxRetryDelay: 60 * 1000, // 60 seconds
160
- backoffFactor: 1.5, // 1.5 ^ attempt
161
- backoffJitter: 1, // add randomness
162
- }),
163
- logger: channelLogger,
164
- }), this.getBeaconQueue(), channelLogger);
165
- queuedChannel.flush().catch(() => {
166
- // Suppress errors as they are already reported by the channel
167
- });
168
- return new channel_1.EncodedChannel(queuedChannel, transformer_1.encodeJson);
198
+ return this.beaconQueue;
199
+ }
200
+ createBeaconQueue() {
201
+ return new MonitoredQueue(
202
+ new CapacityRestrictedQueue(
203
+ new PersistentQueue(this.getGlobalTabStorage("queue")),
204
+ this.configuration.beaconQueueSize
205
+ ),
206
+ this.getLogger("BeaconQueue")
207
+ );
208
+ }
209
+ getLogger(...namespace) {
210
+ const prefix = `Croct${namespace.length === 0 ? "" : `:${namespace.join(":")}`}`;
211
+ if (this.configuration.logger !== void 0) {
212
+ return new NamespacedLogger(this.configuration.logger, prefix);
169
213
  }
170
- getCidAssigner() {
171
- if (this.cidAssigner === undefined) {
172
- this.cidAssigner = this.createCidAssigner();
173
- }
174
- return this.cidAssigner;
214
+ if (this.configuration.debug) {
215
+ return new ConsoleLogger(prefix);
175
216
  }
176
- createCidAssigner() {
177
- var _a, _b;
178
- if (this.configuration.clientId !== undefined) {
179
- return new cid_1.FixedAssigner(this.configuration.clientId);
180
- }
181
- if (this.configuration.test) {
182
- return new cid_1.FixedAssigner('00000000-0000-0000-0000-000000000000');
183
- }
184
- const logger = this.getLogger('CidAssigner');
185
- return new cid_1.CachedAssigner(new cid_1.RemoteAssigner(this.configuration.cidAssignerEndpointUrl, logger), ((_a = this.configuration.cookie) === null || _a === void 0 ? void 0 : _a.clientId) !== undefined
186
- ? new cookieCache_1.CookieCache((_b = this.configuration.cookie) === null || _b === void 0 ? void 0 : _b.clientId)
187
- : new cache_1.LocalStorageCache(this.getLocalStorage(), 'croct.cid'), {
188
- logger: logger,
189
- mirror: !this.configuration.disableCidMirroring,
190
- });
217
+ return FilteredLogger.include(new ConsoleLogger(), ["error", "warn"]);
218
+ }
219
+ getTabStorage(namespace, ...subnamespace) {
220
+ return this.getGlobalTabStorage("external", namespace, ...subnamespace);
221
+ }
222
+ getBrowserStorage(namespace, ...subnamespace) {
223
+ return this.getGlobalBrowserStorage("external", namespace, ...subnamespace);
224
+ }
225
+ getGlobalTabStorage(namespace, ...subnamespace) {
226
+ return new NamespacedStorage(
227
+ this.getSessionStorage(),
228
+ this.resolveStorageNamespace(namespace, ...subnamespace)
229
+ );
230
+ }
231
+ getGlobalBrowserStorage(namespace, ...subnamespace) {
232
+ return new NamespacedStorage(
233
+ this.getLocalStorage(),
234
+ this.resolveStorageNamespace(namespace, ...subnamespace)
235
+ );
236
+ }
237
+ resolveStorageNamespace(namespace, ...subnamespace) {
238
+ const { appId } = this.configuration;
239
+ return `croct[${appId.toLowerCase()}].${[namespace].concat(subnamespace).join(".")}`;
240
+ }
241
+ getLocalStorage() {
242
+ return localStorage;
243
+ }
244
+ getSessionStorage() {
245
+ return sessionStorage;
246
+ }
247
+ getEventManager() {
248
+ return this.eventManager;
249
+ }
250
+ async dispose() {
251
+ const logger = this.getLogger();
252
+ if (this.beaconChannel !== void 0) {
253
+ logger.debug("Closing beacon channel...");
254
+ await this.beaconChannel.close();
191
255
  }
192
- getBeaconQueue() {
193
- if (this.beaconQueue === undefined) {
194
- this.beaconQueue = this.createBeaconQueue();
195
- }
196
- return this.beaconQueue;
256
+ if (this.removeTokenSyncListener !== void 0) {
257
+ logger.debug("Removing token sync listener...");
258
+ this.removeTokenSyncListener();
197
259
  }
198
- createBeaconQueue() {
199
- return new queue_1.MonitoredQueue(new queue_1.CapacityRestrictedQueue(new queue_1.PersistentQueue(this.getGlobalTabStorage('queue')), this.configuration.beaconQueueSize), this.getLogger('BeaconQueue'));
260
+ if (this.tracker !== void 0) {
261
+ if (this.beaconQueue !== void 0) {
262
+ logger.debug("Removing queue listeners...");
263
+ this.beaconQueue.removeCallback("halfEmpty", this.tracker.unsuspend);
264
+ this.beaconQueue.removeCallback("full", this.tracker.suspend);
265
+ }
266
+ logger.debug("Suspending tracker...");
267
+ this.tracker.suspend();
268
+ await this.tracker.flushed;
200
269
  }
201
- getLogger(...namespace) {
202
- const prefix = `Croct${namespace.length === 0 ? '' : `:${namespace.join(':')}`}`;
203
- if (this.configuration.logger !== undefined) {
204
- return new logging_1.NamespacedLogger(this.configuration.logger, prefix);
205
- }
206
- if (this.configuration.debug) {
207
- return new logging_1.ConsoleLogger(prefix);
208
- }
209
- return filteredLogger_1.FilteredLogger.include(new logging_1.ConsoleLogger(), ['error', 'warn']);
210
- }
211
- getTabStorage(namespace, ...subnamespace) {
212
- return this.getGlobalTabStorage('external', namespace, ...subnamespace);
213
- }
214
- getBrowserStorage(namespace, ...subnamespace) {
215
- return this.getGlobalBrowserStorage('external', namespace, ...subnamespace);
216
- }
217
- getGlobalTabStorage(namespace, ...subnamespace) {
218
- return new namespacedStorage_1.NamespacedStorage(this.getSessionStorage(), this.resolveStorageNamespace(namespace, ...subnamespace));
219
- }
220
- getGlobalBrowserStorage(namespace, ...subnamespace) {
221
- return new namespacedStorage_1.NamespacedStorage(this.getLocalStorage(), this.resolveStorageNamespace(namespace, ...subnamespace));
222
- }
223
- resolveStorageNamespace(namespace, ...subnamespace) {
224
- const { appId } = this.configuration;
225
- return `croct[${appId.toLowerCase()}].${[namespace].concat(subnamespace).join('.')}`;
226
- }
227
- getLocalStorage() {
228
- return localStorage;
229
- }
230
- getSessionStorage() {
231
- return sessionStorage;
232
- }
233
- getEventManager() {
234
- return this.eventManager;
235
- }
236
- async dispose() {
237
- const logger = this.getLogger();
238
- if (this.beaconChannel !== undefined) {
239
- logger.debug('Closing beacon channel...');
240
- await this.beaconChannel.close();
241
- }
242
- if (this.removeTokenSyncListener !== undefined) {
243
- logger.debug('Removing token sync listener...');
244
- this.removeTokenSyncListener();
245
- }
246
- if (this.tracker !== undefined) {
247
- if (this.beaconQueue !== undefined) {
248
- logger.debug('Removing queue listeners...');
249
- this.beaconQueue.removeCallback('halfEmpty', this.tracker.unsuspend);
250
- this.beaconQueue.removeCallback('full', this.tracker.suspend);
251
- }
252
- logger.debug('Suspending tracker...');
253
- this.tracker.suspend();
254
- await this.tracker.flushed;
255
- }
256
- delete this.context;
257
- delete this.userTokenProvider;
258
- delete this.previewTokenStore;
259
- delete this.cidAssigner;
260
- delete this.tracker;
261
- delete this.evaluator;
262
- delete this.contentFetcher;
263
- delete this.beaconChannel;
264
- delete this.beaconQueue;
265
- delete this.removeTokenSyncListener;
266
- logger.debug('Container resources released.');
267
- }
268
- }
269
- exports.Container = Container;
270
- Container.DEFAULT_FETCH_TIMEOUT = 5000; // 5 seconds
270
+ delete this.context;
271
+ delete this.userTokenProvider;
272
+ delete this.previewTokenStore;
273
+ delete this.cidAssigner;
274
+ delete this.tracker;
275
+ delete this.evaluator;
276
+ delete this.contentFetcher;
277
+ delete this.beaconChannel;
278
+ delete this.beaconQueue;
279
+ delete this.removeTokenSyncListener;
280
+ logger.debug("Container resources released.");
281
+ }
282
+ };
283
+ _Container.DEFAULT_FETCH_TIMEOUT = 5e3;
284
+ let Container = _Container;
285
+ export {
286
+ Container
287
+ };
271
288
  //# sourceMappingURL=container.js.map
package/container.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"container.js","sourceRoot":"","sources":["src/container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["src/container.ts"],"sourcesContent":["import {Logger, ConsoleLogger, NamespacedLogger} from './logging';\nimport {Context, TokenScope} from './context';\nimport {NamespacedStorage} from './namespacedStorage';\nimport {BackoffPolicy, ArbitraryPolicy} from './retry';\nimport {PersistentQueue, MonitoredQueue, CapacityRestrictedQueue} from './queue';\nimport {Beacon} from './trackingEvents';\nimport {CachedTokenStore, TokenStore} from './token';\nimport {Tracker, TrackingEventProcessor} from './tracker';\nimport {Evaluator} from './evaluator';\nimport {encodeJson} from './transformer';\nimport {CidAssigner, CachedAssigner, RemoteAssigner, FixedAssigner} from './cid';\nimport {EventManager, SynchronousEventManager} from './eventManager';\nimport {SdkEventMap} from './sdkEvents';\nimport {LocalStorageCache} from './cache';\nimport {UrlSanitizer} from './tab';\nimport {TimeStamper} from './channel/guaranteedChannel';\nimport {\n OutputChannel,\n QueuedChannel,\n RetryChannel,\n GuaranteedChannel,\n EncodedChannel,\n SandboxChannel,\n} from './channel';\nimport {ContentFetcher} from './contentFetcher';\nimport {CookieCache, CookieCacheConfiguration} from './cache/cookieCache';\nimport {FilteredLogger} from './logging/filteredLogger';\nimport {HttpBeaconChannel} from './channel/httpBeaconChannel';\n\nexport type DependencyResolver<T> = (container: Container) => T;\n\nexport type Configuration = {\n appId: string,\n tokenScope: TokenScope,\n clientId?: string,\n debug: boolean,\n test: boolean,\n disableCidMirroring: boolean,\n cidAssignerEndpointUrl: string,\n trackerEndpointUrl: string,\n evaluationBaseEndpointUrl: string,\n contentBaseEndpointUrl: string,\n beaconQueueSize: number,\n logger?: Logger,\n urlSanitizer?: UrlSanitizer,\n cookie?: {\n clientId?: CookieCacheConfiguration,\n userToken?: CookieCacheConfiguration,\n previewToken?: CookieCacheConfiguration,\n },\n eventMetadata?: {[key: string]: string},\n eventProcessor?: DependencyResolver<TrackingEventProcessor>,\n defaultFetchTimeout?: number,\n defaultPreferredLocale?: string,\n};\n\nexport class Container {\n public static readonly DEFAULT_FETCH_TIMEOUT = 5_000; // 5 seconds\n\n private readonly configuration: Configuration;\n\n private context?: Context;\n\n private userTokenProvider?: TokenStore;\n\n private previewTokenStore?: TokenStore;\n\n private tracker?: Tracker;\n\n private evaluator?: Evaluator;\n\n private contentFetcher?: ContentFetcher;\n\n private cidAssigner?: CidAssigner;\n\n private beaconChannel?: OutputChannel<Beacon>;\n\n private beaconQueue?: MonitoredQueue<string>;\n\n private removeTokenSyncListener?: {(): void};\n\n private readonly eventManager = new SynchronousEventManager<SdkEventMap>();\n\n public constructor(configuration: Configuration) {\n this.configuration = configuration;\n }\n\n public getConfiguration(): Configuration {\n return this.configuration;\n }\n\n public getEvaluator(): Evaluator {\n if (this.evaluator === undefined) {\n this.evaluator = this.createEvaluator();\n }\n\n return this.evaluator;\n }\n\n private createEvaluator(): Evaluator {\n return new Evaluator({\n appId: this.configuration.appId,\n baseEndpointUrl: this.configuration.evaluationBaseEndpointUrl,\n logger: this.getLogger('Evaluator'),\n defaultTimeout: this.configuration.defaultFetchTimeout ?? Container.DEFAULT_FETCH_TIMEOUT,\n });\n }\n\n public getContentFetcher(): ContentFetcher {\n if (this.contentFetcher === undefined) {\n this.contentFetcher = this.createContentFetcher();\n }\n\n return this.contentFetcher;\n }\n\n private createContentFetcher(): ContentFetcher {\n return new ContentFetcher({\n appId: this.configuration.appId,\n baseEndpointUrl: this.configuration.contentBaseEndpointUrl,\n logger: this.getLogger('ContentFetcher'),\n defaultTimeout: this.configuration.defaultFetchTimeout ?? Container.DEFAULT_FETCH_TIMEOUT,\n defaultPreferredLocale: this.configuration.defaultPreferredLocale,\n });\n }\n\n public getPreviewTokenStore(): TokenStore {\n if (this.previewTokenStore === undefined) {\n this.previewTokenStore = new CachedTokenStore(\n this.configuration.cookie?.previewToken !== undefined\n ? new CookieCache(this.configuration.cookie.previewToken)\n : new LocalStorageCache(this.getGlobalBrowserStorage('preview'), 'token'),\n );\n }\n\n return this.previewTokenStore;\n }\n\n public getTracker(): Tracker {\n if (this.tracker === undefined) {\n this.tracker = this.createTracker();\n }\n\n return this.tracker;\n }\n\n private createTracker(): Tracker {\n const context = this.getContext();\n\n const tracker = new Tracker({\n tab: context.getTab(),\n tokenProvider: this.getUserTokenStore(),\n inactivityRetryPolicy: new ArbitraryPolicy([30_000, 30_000, 120_000, 120_000, 300_000, 300_000, 900_000]),\n logger: this.getLogger('Tracker'),\n channel: this.getBeaconChannel(),\n eventMetadata: this.configuration.eventMetadata,\n processor: this.configuration.eventProcessor === undefined\n ? undefined\n : this.configuration.eventProcessor(this),\n });\n\n const queue = this.getBeaconQueue();\n\n queue.addCallback('halfEmpty', tracker.unsuspend);\n queue.addCallback('full', tracker.suspend);\n\n return tracker;\n }\n\n public getUserTokenStore(): TokenStore {\n if (this.userTokenProvider === undefined) {\n const context = this.getContext();\n\n this.userTokenProvider = {\n getToken: context.getToken.bind(context),\n setToken: context.setToken.bind(context),\n };\n }\n\n return this.userTokenProvider;\n }\n\n public getContext(): Context {\n if (this.context === undefined) {\n this.context = this.createContext();\n }\n\n return this.context;\n }\n\n private createContext(): Context {\n const tokenKey = this.resolveStorageNamespace('token');\n const tabKey = this.resolveStorageNamespace('tab');\n const browserCache = this.configuration.tokenScope === 'global'\n && this.configuration.cookie?.userToken !== undefined\n ? new CookieCache(this.configuration.cookie.userToken)\n : new LocalStorageCache(this.getLocalStorage(), tokenKey);\n const tabStorage = this.getSessionStorage();\n\n if (browserCache instanceof LocalStorageCache) {\n this.removeTokenSyncListener = LocalStorageCache.autoSync(browserCache);\n }\n\n return Context.load({\n tokenScope: this.configuration.tokenScope,\n eventDispatcher: this.getEventManager(),\n urlSanitizer: this.configuration.urlSanitizer,\n cache: {\n tabId: new LocalStorageCache(tabStorage, tabKey),\n tabToken: new LocalStorageCache(tabStorage, tokenKey),\n browserToken: browserCache,\n },\n });\n }\n\n private getBeaconChannel(): OutputChannel<Beacon> {\n if (this.beaconChannel === undefined) {\n this.beaconChannel = this.createBeaconChannel();\n }\n\n return this.beaconChannel;\n }\n\n private createBeaconChannel(): OutputChannel<Beacon> {\n if (this.configuration.test) {\n return new SandboxChannel();\n }\n\n const channelLogger = this.getLogger('BeaconChannel');\n const {appId, trackerEndpointUrl} = this.configuration;\n\n const queuedChannel = new QueuedChannel(\n new RetryChannel({\n channel: new GuaranteedChannel({\n channel: new HttpBeaconChannel({\n appId: appId,\n endpointUrl: trackerEndpointUrl,\n cidAssigner: this.getCidAssigner(),\n logger: channelLogger,\n }),\n stamper: new TimeStamper(),\n ackTimeout: 10000,\n logger: channelLogger,\n }),\n retryPolicy: new BackoffPolicy({\n minRetryDelay: 3000, // 3 seconds\n maxRetryDelay: 60 * 1000, // 60 seconds\n backoffFactor: 1.5, // 1.5 ^ attempt\n backoffJitter: 1, // add randomness\n }),\n logger: channelLogger,\n }),\n this.getBeaconQueue(),\n channelLogger,\n );\n\n queuedChannel.flush().catch(() => {\n // Suppress errors as they are already reported by the channel\n });\n\n return new EncodedChannel<Beacon, string>(queuedChannel, encodeJson);\n }\n\n public getCidAssigner(): CidAssigner {\n if (this.cidAssigner === undefined) {\n this.cidAssigner = this.createCidAssigner();\n }\n\n return this.cidAssigner;\n }\n\n private createCidAssigner(): CidAssigner {\n if (this.configuration.clientId !== undefined) {\n return new FixedAssigner(this.configuration.clientId);\n }\n\n if (this.configuration.test) {\n return new FixedAssigner('00000000-0000-0000-0000-000000000000');\n }\n\n const logger = this.getLogger('CidAssigner');\n\n return new CachedAssigner(\n new RemoteAssigner(this.configuration.cidAssignerEndpointUrl, logger),\n this.configuration.cookie?.clientId !== undefined\n ? new CookieCache(this.configuration.cookie?.clientId)\n : new LocalStorageCache(this.getLocalStorage(), 'croct.cid'),\n {\n logger: logger,\n mirror: !this.configuration.disableCidMirroring,\n },\n );\n }\n\n public getBeaconQueue(): MonitoredQueue<string> {\n if (this.beaconQueue === undefined) {\n this.beaconQueue = this.createBeaconQueue();\n }\n\n return this.beaconQueue;\n }\n\n private createBeaconQueue(): MonitoredQueue<string> {\n return new MonitoredQueue<string>(\n new CapacityRestrictedQueue(\n new PersistentQueue(this.getGlobalTabStorage('queue')),\n this.configuration.beaconQueueSize,\n ),\n this.getLogger('BeaconQueue'),\n );\n }\n\n public getLogger(...namespace: string[]): Logger {\n const prefix = `Croct${namespace.length === 0 ? '' : `:${namespace.join(':')}`}`;\n\n if (this.configuration.logger !== undefined) {\n return new NamespacedLogger(this.configuration.logger, prefix);\n }\n\n if (this.configuration.debug) {\n return new ConsoleLogger(prefix);\n }\n\n return FilteredLogger.include(new ConsoleLogger(), ['error', 'warn']);\n }\n\n public getTabStorage(namespace: string, ...subnamespace: string[]): Storage {\n return this.getGlobalTabStorage('external', namespace, ...subnamespace);\n }\n\n public getBrowserStorage(namespace: string, ...subnamespace: string[]): Storage {\n return this.getGlobalBrowserStorage('external', namespace, ...subnamespace);\n }\n\n private getGlobalTabStorage(namespace: string, ...subnamespace: string[]): Storage {\n return new NamespacedStorage(\n this.getSessionStorage(),\n this.resolveStorageNamespace(namespace, ...subnamespace),\n );\n }\n\n private getGlobalBrowserStorage(namespace: string, ...subnamespace: string[]): Storage {\n return new NamespacedStorage(\n this.getLocalStorage(),\n this.resolveStorageNamespace(namespace, ...subnamespace),\n );\n }\n\n private resolveStorageNamespace(namespace: string, ...subnamespace: string[]): string {\n const {appId} = this.configuration;\n\n return `croct[${appId.toLowerCase()}].${[namespace].concat(subnamespace).join('.')}`;\n }\n\n private getLocalStorage(): Storage {\n return localStorage;\n }\n\n private getSessionStorage(): Storage {\n return sessionStorage;\n }\n\n public getEventManager(): EventManager<SdkEventMap> {\n return this.eventManager;\n }\n\n public async dispose(): Promise<void> {\n const logger = this.getLogger();\n\n if (this.beaconChannel !== undefined) {\n logger.debug('Closing beacon channel...');\n\n await this.beaconChannel.close();\n }\n\n if (this.removeTokenSyncListener !== undefined) {\n logger.debug('Removing token sync listener...');\n\n this.removeTokenSyncListener();\n }\n\n if (this.tracker !== undefined) {\n if (this.beaconQueue !== undefined) {\n logger.debug('Removing queue listeners...');\n\n this.beaconQueue.removeCallback('halfEmpty', this.tracker.unsuspend);\n this.beaconQueue.removeCallback('full', this.tracker.suspend);\n }\n\n logger.debug('Suspending tracker...');\n\n this.tracker.suspend();\n\n await this.tracker.flushed;\n }\n\n delete this.context;\n delete this.userTokenProvider;\n delete this.previewTokenStore;\n delete this.cidAssigner;\n delete this.tracker;\n delete this.evaluator;\n delete this.contentFetcher;\n delete this.beaconChannel;\n delete this.beaconQueue;\n delete this.removeTokenSyncListener;\n\n logger.debug('Container resources released.');\n }\n}\n"],"mappings":"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","names":[]}