@croct/sdk 0.17.7 → 0.17.9

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/tracker.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tracker.js","sourceRoot":"","sources":["src/tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["src/tracker.ts"],"sourcesContent":["import {Logger, NullLogger} from './logging';\nimport {Tab, TabEvent, TabUrlChangeEvent, TabVisibilityChangeEvent} from './tab';\nimport {OutputChannel} from './channel';\nimport {formatCause} from './error';\nimport {Token, TokenProvider} from './token';\nimport {RetryPolicy} from './retry';\nimport {\n Beacon,\n BeaconPayload,\n TrackingEvent,\n TrackingEventContext,\n isCartPartialEvent,\n isIdentifiedUserEvent,\n PartialTrackingEvent,\n} from './trackingEvents';\n\ntype Options = {\n eventMetadata?: {[key: string]: string},\n};\n\nexport type Configuration = Options & {\n channel: OutputChannel<Beacon>,\n logger?: Logger,\n tab: Tab,\n tokenProvider: TokenProvider,\n processor?: TrackingEventProcessor,\n inactivityRetryPolicy: RetryPolicy<number>,\n};\n\ntype State = {\n initialized: boolean,\n enabled: boolean,\n suspended: boolean,\n};\n\ntype InactivityTimer = {\n id?: number,\n since: number,\n};\n\nexport interface TrackingEventProcessor {\n process(event: QueuedEventInfo): QueuedEventInfo[];\n}\n\nexport type QueuedEventInfo<T extends TrackingEvent = TrackingEvent> = Omit<EventInfo<T>, 'status'>;\n\nexport type EventInfo<T extends TrackingEvent = TrackingEvent> = {\n context: TrackingEventContext,\n userToken?: Token,\n event: T,\n timestamp: number,\n status: 'pending' | 'confirmed' | 'failed' | 'ignored',\n};\n\nexport interface EventListener {\n (event: EventInfo): void;\n}\n\nconst trackedEvents: {[key: string]: {[key: string]: boolean}} = {};\n\nexport class Tracker {\n private readonly options: Required<Options>;\n\n private tab: Tab;\n\n private tokenProvider: TokenProvider;\n\n private inactivityRetryPolicy: RetryPolicy<any>;\n\n private readonly channel: OutputChannel<Beacon>;\n\n private readonly logger: Logger;\n\n private readonly processor?: TrackingEventProcessor;\n\n private readonly listeners: EventListener[] = [];\n\n private readonly pending: Array<Promise<void>> = [];\n\n private readonly state: State = {\n enabled: false,\n initialized: false,\n suspended: false,\n };\n\n private readonly inactivityTimer: InactivityTimer = {\n since: 0,\n };\n\n public constructor(config: Configuration) {\n const {tab, tokenProvider, channel, logger, inactivityRetryPolicy, ...options} = config;\n\n this.tab = tab;\n this.tokenProvider = tokenProvider;\n this.inactivityRetryPolicy = inactivityRetryPolicy;\n this.channel = channel;\n this.logger = logger ?? new NullLogger();\n this.processor = config.processor;\n this.options = {\n ...options,\n eventMetadata: options.eventMetadata ?? {},\n };\n\n this.enable = this.enable.bind(this);\n this.disable = this.disable.bind(this);\n this.suspend = this.suspend.bind(this);\n this.unsuspend = this.unsuspend.bind(this);\n this.trackPageLoad = this.trackPageLoad.bind(this);\n this.trackTabVisibilityChange = this.trackTabVisibilityChange.bind(this);\n this.trackTabUrlChange = this.trackTabUrlChange.bind(this);\n this.trackInactivity = this.trackInactivity.bind(this);\n }\n\n public addListener(listener: EventListener): void {\n this.listeners.push(listener);\n }\n\n public removeListener(listener: EventListener): void {\n let index = this.listeners.indexOf(listener);\n\n while (index >= 0) {\n this.listeners.splice(index, 1);\n index = this.listeners.indexOf(listener);\n }\n }\n\n public get flushed(): Promise<void> {\n const suppress = (): void => {\n // suppress errors\n };\n\n return Promise.all(this.pending).then(suppress, suppress);\n }\n\n public isEnabled(): boolean {\n return this.state.enabled;\n }\n\n public isSuspended(): boolean {\n return this.state.suspended;\n }\n\n public enable(): void {\n if (this.state.enabled) {\n return;\n }\n\n this.logger.info('Tracker enabled');\n\n this.state.enabled = true;\n\n if (this.state.suspended) {\n return;\n }\n\n this.startInactivityTimer();\n\n if (!this.state.initialized) {\n this.state.initialized = true;\n this.initialize();\n }\n\n this.tab.addListener('load', this.trackPageLoad);\n this.tab.addListener('urlChange', this.trackTabUrlChange);\n this.tab.addListener('visibilityChange', this.trackTabVisibilityChange);\n }\n\n public disable(): void {\n if (!this.state.enabled) {\n return;\n }\n\n this.logger.info('Tracker disabled');\n\n this.state.enabled = false;\n\n if (this.state.suspended) {\n return;\n }\n\n this.tab.removeListener('load', this.trackPageLoad);\n this.tab.removeListener('urlChange', this.trackTabUrlChange);\n this.tab.removeListener('visibilityChange', this.trackTabVisibilityChange);\n\n this.stopInactivityTimer();\n }\n\n public suspend(): void {\n if (this.state.suspended) {\n return;\n }\n\n this.logger.info('Tracker suspended');\n\n if (this.state.enabled) {\n this.disable();\n this.state.enabled = true;\n }\n\n this.state.suspended = true;\n }\n\n public unsuspend(): void {\n if (!this.state.suspended) {\n return;\n }\n\n this.logger.info('Tracker unsuspended');\n\n this.state.suspended = false;\n\n if (this.state.enabled) {\n this.state.enabled = false;\n this.enable();\n }\n }\n\n private initialize(): void {\n if (trackedEvents[this.tab.id] === undefined) {\n trackedEvents[this.tab.id] = {};\n }\n\n const initEvents = trackedEvents[this.tab.id];\n\n if (this.tab.isNew && !initEvents.tabOpened) {\n initEvents.tabOpened = true;\n\n this.trackTabOpen({tabId: this.tab.id});\n }\n\n if (!initEvents.pageOpened) {\n initEvents.pageOpened = true;\n\n this.trackPageOpen({\n url: this.tab.url,\n referrer: this.tab.referrer,\n });\n }\n }\n\n private stopInactivityTimer(): void {\n if (this.inactivityTimer.id !== undefined) {\n window.clearTimeout(this.inactivityTimer.id);\n\n delete this.inactivityTimer.id;\n }\n }\n\n private startInactivityTimer(): void {\n this.stopInactivityTimer();\n\n this.inactivityTimer.since = Date.now();\n\n let iteration = -1;\n\n const startTimer = (): void => {\n if (!this.inactivityRetryPolicy.shouldRetry(iteration + 1, this.inactivityTimer.since)) {\n window.clearTimeout(this.inactivityTimer.id);\n\n return;\n }\n\n iteration += 1;\n\n this.inactivityTimer.id = window.setTimeout(\n () => {\n this.trackInactivity();\n startTimer();\n },\n this.inactivityRetryPolicy.getDelay(iteration),\n );\n };\n\n startTimer();\n }\n\n public track<T extends PartialTrackingEvent>(event: T, timestamp: number = Date.now()): Promise<T> {\n return this.dispatch(this.enrichEvent(event, timestamp), timestamp).then(() => event);\n }\n\n private trackPageOpen({referrer, ...payload}: {url: string, referrer: string}): void {\n this.enqueue({\n type: 'pageOpened',\n ...payload,\n ...(referrer.length > 0 ? {referrer: referrer} : {}),\n });\n }\n\n private trackPageLoad({detail: {tab}}: TabEvent): void {\n this.enqueue({\n type: 'pageLoaded',\n url: tab.url,\n title: tab.title,\n lastModifiedTime: Date.parse(tab.document.lastModified),\n });\n }\n\n private trackTabOpen(payload: {tabId: string}): void {\n this.enqueue({\n type: 'tabOpened',\n ...payload,\n });\n }\n\n private trackTabUrlChange({detail}: TabUrlChangeEvent): void {\n this.enqueue({\n type: 'tabUrlChanged',\n tabId: detail.tab.id,\n url: detail.url,\n });\n }\n\n private trackTabVisibilityChange({detail}: TabVisibilityChangeEvent): void {\n this.enqueue({\n type: 'tabVisibilityChanged',\n tabId: detail.tab.id,\n visibility: detail.visible ? 'visible' : 'hidden',\n });\n }\n\n private trackInactivity(): void {\n this.enqueue({\n type: 'nothingChanged',\n sinceTime: this.inactivityTimer.since,\n });\n }\n\n private enqueue(event: TrackingEvent, timestamp: number = Date.now()): void {\n this.dispatch(event, timestamp).catch(() => {\n // suppress error\n });\n }\n\n private notifyEvent(event: EventInfo): void {\n this.listeners.map(listener => listener(event));\n }\n\n private dispatch<T extends TrackingEvent>(event: T, timestamp: number): Promise<T> {\n const userToken = this.tokenProvider.getToken();\n const metadata = this.options.eventMetadata;\n const context: TrackingEventContext = {\n tabId: this.tab.id,\n url: this.tab.url,\n ...(Object.keys(metadata).length > 0 ? {metadata: metadata} : {}),\n };\n\n const queuedEvent: QueuedEventInfo<T> = {\n ...(userToken !== null ? {userToken: userToken} : {}),\n event: event,\n timestamp: timestamp,\n context: context,\n };\n\n const processedEvents = this.processor !== undefined\n ? this.processor.process(queuedEvent)\n : [queuedEvent];\n\n // sort events by timestamp in ascending order\n processedEvents.sort((left, right) => left.timestamp - right.timestamp);\n\n let result: Promise<T>|null = null;\n\n for (const processedEvent of processedEvents) {\n if (processedEvent === queuedEvent) {\n result = this.publish(queuedEvent);\n\n continue;\n }\n\n this.publish(processedEvent);\n }\n\n if (result === null) {\n return Promise.reject(new Error('Event suppressed.'));\n }\n\n return result;\n }\n\n private publish<T extends TrackingEvent>(queuedEvent: QueuedEventInfo<T>): Promise<T> {\n const {event} = queuedEvent;\n\n if (event.type !== 'nothingChanged') {\n this.stopInactivityTimer();\n }\n\n const eventInfo: EventInfo<T> = {\n ...queuedEvent,\n status: 'pending',\n };\n\n if (this.state.suspended) {\n this.logger.warn(`Tracker is suspended, ignoring event \"${event.type}\"`);\n\n this.notifyEvent({...eventInfo, status: 'ignored'});\n\n return Promise.reject(new Error('The tracker is suspended.'));\n }\n\n this.logger.info(`Tracked event \"${event.type}\"`);\n\n this.notifyEvent(eventInfo);\n\n return new Promise<T>((resolve, reject) => {\n const promise = this.channel\n .publish(this.createBeacon(queuedEvent))\n .then(\n () => {\n this.logger.debug(`Successfully published event \"${event.type}\"`);\n\n this.notifyEvent({...eventInfo, status: 'confirmed'});\n\n resolve(event);\n },\n cause => {\n this.logger.error(`Failed to publish event \"${event.type}\", reason: ${formatCause(cause)}`);\n\n this.notifyEvent({...eventInfo, status: 'failed'});\n\n reject(cause);\n },\n );\n\n this.pending.push(promise);\n\n promise.finally(() => {\n this.pending.splice(this.pending.indexOf(promise), 1);\n });\n\n if (this.state.enabled && event.type !== 'nothingChanged') {\n this.startInactivityTimer();\n }\n });\n }\n\n private enrichEvent(event: PartialTrackingEvent, timestamp: number): TrackingEvent {\n if (isCartPartialEvent(event)) {\n const {cart: {lastUpdateTime = timestamp, ...cart}, ...payload} = event;\n\n return {\n ...payload,\n cart: {\n ...cart,\n lastUpdateTime: lastUpdateTime,\n },\n };\n }\n\n return event;\n }\n\n private createBeacon({event, timestamp, context, userToken}: QueuedEventInfo): Beacon {\n return {\n timestamp: timestamp,\n ...(userToken !== undefined ? {token: userToken.toString()} : {}),\n context: context,\n payload: this.enrichBeaconPayload(this.createBeaconPayload(event)),\n };\n }\n\n private createBeaconPayload(event: TrackingEvent): BeaconPayload {\n if (!isIdentifiedUserEvent(event)) {\n return event;\n }\n\n if (event.type === 'userSignedUp' && event.profile !== undefined) {\n const {userId, profile, ...payload} = event;\n\n return {\n ...payload,\n externalUserId: userId,\n patch: {\n operations: [\n {\n type: 'merge',\n path: '.',\n value: profile,\n },\n ],\n },\n };\n }\n\n const {userId, ...payload} = event;\n\n return {\n ...payload,\n externalUserId: userId,\n };\n }\n\n private enrichBeaconPayload(event: BeaconPayload): BeaconPayload {\n switch (event.type) {\n case 'linkOpened':\n return {\n ...event,\n link: new URL(event.link, this.tab.url).toString(),\n };\n\n default:\n return event;\n }\n }\n}\n"],"mappings":"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","names":["userId","payload"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/trackingEvents.ts"],"sourcesContent":["import {Patch} from './patch';\nimport {DistributiveOmit, Optional} from './utilityTypes';\n\n/*\n * Object values\n */\n\nexport type ProductDetails = {\n productId: string,\n sku?: string,\n name: string,\n category?: string,\n brand?: string,\n variant?: string,\n displayPrice: number,\n originalPrice?: number,\n url?: string,\n imageUrl?: string,\n};\n\nexport type CartItem = {\n index: number,\n product: ProductDetails,\n quantity: number,\n total: number,\n discount?: number,\n coupon?: string,\n};\n\nexport type Cart = {\n currency: string,\n items: CartItem[],\n subtotal?: number,\n shippingPrice?: number,\n taxes?: {[key: string]: number},\n costs?: {[key: string]: number},\n discount?: number,\n total: number,\n coupon?: string,\n lastUpdateTime: number,\n};\n\nexport type OrderItem = {\n index: number,\n product: ProductDetails,\n quantity?: number,\n total: number,\n discount?: number,\n coupon?: string,\n};\n\nexport type OrderStatus = 'placed' | 'paid' | 'completed';\n\nexport type Order = {\n orderId: string,\n currency: string,\n items: OrderItem[],\n subtotal?: number,\n shippingPrice?: number,\n taxes?: {[key: string]: number},\n costs?: {[key: string]: number},\n discount?: number,\n total: number,\n coupon?: string,\n paymentMethod?: string,\n installments?: number,\n status?: OrderStatus,\n};\n\nexport type Gender = 'male' | 'female' | 'neutral' | 'unknown';\n\n/*\n * Events\n */\n\nexport const pageEventTypes = [\n 'pageLoaded',\n 'pageOpened',\n] as const;\n\nexport const tabEventTypes = [\n 'tabOpened',\n 'tabUrlChanged',\n 'tabVisibilityChanged',\n] as const;\n\nexport const cartEventTypes = [\n 'cartModified',\n 'cartViewed',\n 'checkoutStarted',\n] as const;\n\nexport const ecommerceEventTypes = [\n ...cartEventTypes,\n 'orderPlaced',\n 'productViewed',\n] as const;\n\nexport const identifiedUserEventTypes = [\n 'userSignedIn',\n 'userSignedOut',\n 'userSignedUp',\n];\n\nexport const userEventTypes = [\n ...identifiedUserEventTypes,\n 'userProfileChanged',\n] as const;\n\nexport const miscEventTypes = [\n 'nothingChanged',\n 'sessionAttributesChanged',\n 'goalCompleted',\n 'interestShown',\n 'postViewed',\n 'eventOccurred',\n 'linkOpened',\n] as const;\n\nexport const eventTypes = [\n ...pageEventTypes,\n ...ecommerceEventTypes,\n ...userEventTypes,\n ...miscEventTypes,\n] as const;\n\ninterface BaseEvent {\n type: string;\n}\n\n/*\n * User events\n */\n\nexport interface UserProfileChanged extends BaseEvent {\n type: 'userProfileChanged';\n patch: Patch;\n}\n\ntype Primitive = null | string | number | boolean;\ntype PrimitiveMap = {[member: string]: Primitive};\ntype PrimitiveArray = Primitive[];\ntype TwoLevelMap = {[member: string]: Primitive | PrimitiveMap | PrimitiveArray};\ntype TwoLevelArray = PrimitiveArray | PrimitiveMap[] | PrimitiveArray[];\ntype CustomAttribute = Primitive | TwoLevelMap | TwoLevelArray;\n\nexport type UserProfile = {\n firstName?: string,\n lastName?: string,\n birthDate?: string,\n gender?: Gender,\n email?: string,\n alternateEmail?: string,\n phone?: string,\n alternatePhone?: string,\n address?: {\n street?: string,\n district?: string,\n city?: string,\n region?: string,\n country?: string,\n postalCode?: string,\n },\n avatar?: string,\n company?: string,\n companyUrl?: string,\n jobTitle?: string,\n interests?: string[],\n activities?: string[],\n custom?: {\n [member: string]: CustomAttribute,\n },\n};\n\nexport interface UserSignedUp extends BaseEvent {\n type: 'userSignedUp';\n userId: string;\n profile?: UserProfile;\n}\n\nexport interface UserSignedIn extends BaseEvent {\n type: 'userSignedIn';\n userId: string;\n}\n\nexport interface UserSignedOut extends BaseEvent {\n type: 'userSignedOut';\n userId: string;\n}\n\nexport type IdentifiedUserEvent = UserSignedIn | UserSignedOut | UserSignedUp;\nexport type UserEvent = UserProfileChanged | IdentifiedUserEvent;\n\n/*\n * E-commerce events\n */\n\nexport type CartEventType = typeof cartEventTypes[number];\n\ninterface BaseCartEvent extends BaseEvent {\n type: CartEventType;\n cart: Cart;\n}\n\nexport interface CartViewed extends BaseCartEvent {\n type: 'cartViewed';\n}\n\nexport interface CartModified extends BaseCartEvent {\n type: 'cartModified';\n}\n\nexport interface CheckoutStarted extends BaseCartEvent {\n type: 'checkoutStarted';\n orderId?: string;\n}\n\nexport type CartEvent = CartModified | CartViewed | CheckoutStarted;\n\nexport interface OrderPlaced extends BaseEvent {\n type: 'orderPlaced';\n order: Order;\n}\n\nexport interface ProductViewed extends BaseEvent {\n type: 'productViewed';\n product: ProductDetails;\n}\n\nexport type EcommerceEvent = OrderPlaced | ProductViewed | CartEvent;\n\n/**\n * Tab event\n */\n\nexport type TabEventType = typeof tabEventTypes[number];\n\ninterface BaseTabEvent extends BaseEvent {\n type: TabEventType;\n tabId: string;\n}\n\nexport interface TabOpened extends BaseTabEvent {\n type: 'tabOpened';\n}\n\nexport interface TabUrlChanged extends BaseTabEvent {\n type: 'tabUrlChanged';\n url: string;\n}\n\nexport interface TabVisibilityChanged extends BaseTabEvent {\n type: 'tabVisibilityChanged';\n visibility: 'visible' | 'hidden';\n}\n\nexport type TabEvent = TabVisibilityChanged | TabUrlChanged | TabOpened;\n\n/*\n * Page events\n */\n\nexport type PageEventType = typeof pageEventTypes[number];\n\ninterface BasePageEvent extends BaseEvent {\n type: PageEventType;\n url: string;\n}\n\nexport interface PageOpened extends BasePageEvent {\n type: 'pageOpened';\n referrer?: string;\n}\n\nexport interface PageLoaded extends BasePageEvent {\n type: 'pageLoaded';\n title: string;\n lastModifiedTime: number;\n}\n\nexport type PageEvent = PageLoaded | PageOpened;\n\n/*\n * Misc events\n */\n\nexport interface NothingChanged extends BaseEvent {\n type: 'nothingChanged';\n sinceTime: number;\n}\n\nexport interface SessionAttributesChanged extends BaseEvent {\n type: 'sessionAttributesChanged';\n patch: Patch;\n}\n\nexport interface GoalCompleted extends BaseEvent {\n type: 'goalCompleted';\n goalId: string;\n value?: number;\n currency?: string;\n}\n\nexport interface InterestShown extends BaseEvent {\n type: 'interestShown';\n interests: string[];\n}\n\nexport interface PostDetails {\n postId: string;\n url?: string;\n title: string;\n tags?: string[];\n categories?: string[];\n authors?: string[];\n publishTime: number;\n updateTime?: number;\n}\n\nexport interface PostViewed extends BaseEvent {\n type: 'postViewed';\n post: PostDetails;\n}\n\nexport interface EventOccurred extends BaseEvent {\n type: 'eventOccurred';\n name: string;\n details?: {[key: string]: string|number|boolean|null};\n}\n\nexport interface LinkOpened extends BaseEvent {\n type: 'linkOpened';\n link: string;\n}\n\nexport type MiscEvent =\n NothingChanged\n | SessionAttributesChanged\n | EventOccurred\n | GoalCompleted\n | InterestShown\n | PostViewed\n | LinkOpened;\n\ntype EventMap = {\n // Tab events\n tabVisibilityChanged: TabVisibilityChanged,\n tabUrlChanged: TabUrlChanged,\n tabOpened: TabOpened,\n // Page events\n pageLoaded: PageLoaded,\n pageOpened: PageOpened,\n // User events\n userSignedIn: UserSignedIn,\n userSignedOut: UserSignedOut,\n userSignedUp: UserSignedUp,\n userProfileChanged: UserProfileChanged,\n // E-commerce events\n productViewed: ProductViewed,\n cartViewed: CartViewed,\n cartModified: CartModified,\n checkoutStarted: CheckoutStarted,\n orderPlaced: OrderPlaced,\n // Misc events\n nothingChanged: NothingChanged,\n sessionAttributesChanged: SessionAttributesChanged,\n goalCompleted: GoalCompleted,\n interestShown: InterestShown,\n postViewed: PostViewed,\n eventOccurred: EventOccurred,\n linkOpened: LinkOpened,\n};\n\nexport type TrackingEventType = keyof EventMap;\n\nexport type TrackingEvent<T extends TrackingEventType = TrackingEventType> =\n T extends TrackingEventType ? EventMap[T] : EventMap[TrackingEventType];\n\n/**\n * Partial Events\n */\n\ntype CartPartialEvent <T extends CartEvent = CartEvent> =\n DistributiveOmit<T, 'cart'> & Record<'cart', Optional<Cart, 'lastUpdateTime'>>;\n\nexport type PartialTrackingEvent = Exclude<TrackingEvent, PageEvent | TabEvent | CartEvent> | CartPartialEvent;\n\n/**\n * External Events\n */\n\ntype ExternalEventMap = {\n cartModified: CartPartialEvent<CartModified>,\n cartViewed: CartPartialEvent<CartViewed>,\n checkoutStarted: CartPartialEvent<CheckoutStarted>,\n orderPlaced: OrderPlaced,\n productViewed: ProductViewed,\n userSignedUp: UserSignedUp,\n goalCompleted: GoalCompleted,\n interestShown: InterestShown,\n postViewed: PostViewed,\n linkOpened: LinkOpened,\n eventOccurred: EventOccurred,\n};\n\nexport type ExternalTrackingEventType = keyof ExternalEventMap;\n\nexport type ExternalTrackingEvent<T extends ExternalTrackingEventType = ExternalTrackingEventType> =\n T extends ExternalTrackingEventType\n ? ExternalEventMap[T]\n : ExternalEventMap[ExternalTrackingEventType];\n\nexport type ExternalTrackingEventPayload<T extends ExternalTrackingEventType> = Omit<ExternalEventMap[T], 'type'>;\n\n/*\n * Type guards\n */\n\nexport function isIdentifiedUserEvent(event: TrackingEvent): event is IdentifiedUserEvent {\n return identifiedUserEventTypes.includes((event as IdentifiedUserEvent).type);\n}\n\nexport function isCartPartialEvent(event: PartialTrackingEvent): event is CartPartialEvent {\n return cartEventTypes.includes((event as CartEvent).type);\n}\n\n/*\n * Beacon\n */\n\nexport type TrackingEventContext = {\n tabId: string,\n url: string,\n metadata?: {[key: string]: string},\n};\n\nexport type BeaconPayload =\n Exclude<TrackingEvent, IdentifiedUserEvent>\n // Renames \"userId\" to \"externalUserId\"\n | DistributiveOmit<Exclude<IdentifiedUserEvent, UserSignedUp>, 'userId'>\n & Record<'externalUserId', IdentifiedUserEvent['userId']>\n // Renames \"userId\" to \"externalUserId\", remove \"profile\" and add \"patch\"\n | Omit<UserSignedUp, 'userId' | 'profile'>\n & Record<'externalUserId', IdentifiedUserEvent['userId']>\n & {patch?: Patch};\n\nexport type Beacon = {\n timestamp: number,\n token?: string,\n context: TrackingEventContext,\n payload: BeaconPayload,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA2EO,MAAM,iBAAiB;AAAA,EAC1B;AAAA,EACA;AACJ;AAEO,MAAM,gBAAgB;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AACJ;AAEO,MAAM,iBAAiB;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AACJ;AAEO,MAAM,sBAAsB;AAAA,EAC/B,GAAG;AAAA,EACH;AAAA,EACA;AACJ;AAEO,MAAM,2BAA2B;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AACJ;AAEO,MAAM,iBAAiB;AAAA,EAC1B,GAAG;AAAA,EACH;AACJ;AAEO,MAAM,iBAAiB;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AAEO,MAAM,aAAa;AAAA,EACtB,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AACP;AAsSO,SAAS,sBAAsB,OAAoD;AACtF,SAAO,yBAAyB,SAAU,MAA8B,IAAI;AAChF;AAEO,SAAS,mBAAmB,OAAwD;AACvF,SAAO,eAAe,SAAU,MAAoB,IAAI;AAC5D;","names":[]}
@@ -1,6 +1,8 @@
1
- import { Patch } from './patch';
2
- import { DistributiveOmit, Optional } from './utilityTypes';
3
- export type ProductDetails = {
1
+ import { Patch } from './patch.js';
2
+ import { DistributiveOmit, Optional } from './utilityTypes.js';
3
+ import '@croct/json';
4
+
5
+ type ProductDetails = {
4
6
  productId: string;
5
7
  sku?: string;
6
8
  name: string;
@@ -12,7 +14,7 @@ export type ProductDetails = {
12
14
  url?: string;
13
15
  imageUrl?: string;
14
16
  };
15
- export type CartItem = {
17
+ type CartItem = {
16
18
  index: number;
17
19
  product: ProductDetails;
18
20
  quantity: number;
@@ -20,7 +22,7 @@ export type CartItem = {
20
22
  discount?: number;
21
23
  coupon?: string;
22
24
  };
23
- export type Cart = {
25
+ type Cart = {
24
26
  currency: string;
25
27
  items: CartItem[];
26
28
  subtotal?: number;
@@ -36,7 +38,7 @@ export type Cart = {
36
38
  coupon?: string;
37
39
  lastUpdateTime: number;
38
40
  };
39
- export type OrderItem = {
41
+ type OrderItem = {
40
42
  index: number;
41
43
  product: ProductDetails;
42
44
  quantity?: number;
@@ -44,8 +46,8 @@ export type OrderItem = {
44
46
  discount?: number;
45
47
  coupon?: string;
46
48
  };
47
- export type OrderStatus = 'placed' | 'paid' | 'completed';
48
- export type Order = {
49
+ type OrderStatus = 'placed' | 'paid' | 'completed';
50
+ type Order = {
49
51
  orderId: string;
50
52
  currency: string;
51
53
  items: OrderItem[];
@@ -64,19 +66,19 @@ export type Order = {
64
66
  installments?: number;
65
67
  status?: OrderStatus;
66
68
  };
67
- export type Gender = 'male' | 'female' | 'neutral' | 'unknown';
68
- export declare const pageEventTypes: readonly ["pageLoaded", "pageOpened"];
69
- export declare const tabEventTypes: readonly ["tabOpened", "tabUrlChanged", "tabVisibilityChanged"];
70
- export declare const cartEventTypes: readonly ["cartModified", "cartViewed", "checkoutStarted"];
71
- export declare const ecommerceEventTypes: readonly ["cartModified", "cartViewed", "checkoutStarted", "orderPlaced", "productViewed"];
72
- export declare const identifiedUserEventTypes: string[];
73
- export declare const userEventTypes: readonly [...string[], "userProfileChanged"];
74
- export declare const miscEventTypes: readonly ["nothingChanged", "sessionAttributesChanged", "goalCompleted", "interestShown", "postViewed", "eventOccurred", "linkOpened"];
75
- export declare const eventTypes: readonly ["pageLoaded", "pageOpened", "cartModified", "cartViewed", "checkoutStarted", "orderPlaced", "productViewed", ...string[], "userProfileChanged", "nothingChanged", "sessionAttributesChanged", "goalCompleted", "interestShown", "postViewed", "eventOccurred", "linkOpened"];
69
+ type Gender = 'male' | 'female' | 'neutral' | 'unknown';
70
+ declare const pageEventTypes: readonly ["pageLoaded", "pageOpened"];
71
+ declare const tabEventTypes: readonly ["tabOpened", "tabUrlChanged", "tabVisibilityChanged"];
72
+ declare const cartEventTypes: readonly ["cartModified", "cartViewed", "checkoutStarted"];
73
+ declare const ecommerceEventTypes: readonly ["cartModified", "cartViewed", "checkoutStarted", "orderPlaced", "productViewed"];
74
+ declare const identifiedUserEventTypes: string[];
75
+ declare const userEventTypes: readonly [...string[], "userProfileChanged"];
76
+ declare const miscEventTypes: readonly ["nothingChanged", "sessionAttributesChanged", "goalCompleted", "interestShown", "postViewed", "eventOccurred", "linkOpened"];
77
+ declare const eventTypes: readonly ["pageLoaded", "pageOpened", "cartModified", "cartViewed", "checkoutStarted", "orderPlaced", "productViewed", ...string[], "userProfileChanged", "nothingChanged", "sessionAttributesChanged", "goalCompleted", "interestShown", "postViewed", "eventOccurred", "linkOpened"];
76
78
  interface BaseEvent {
77
79
  type: string;
78
80
  }
79
- export interface UserProfileChanged extends BaseEvent {
81
+ interface UserProfileChanged extends BaseEvent {
80
82
  type: 'userProfileChanged';
81
83
  patch: Patch;
82
84
  }
@@ -90,7 +92,7 @@ type TwoLevelMap = {
90
92
  };
91
93
  type TwoLevelArray = PrimitiveArray | PrimitiveMap[] | PrimitiveArray[];
92
94
  type CustomAttribute = Primitive | TwoLevelMap | TwoLevelArray;
93
- export type UserProfile = {
95
+ type UserProfile = {
94
96
  firstName?: string;
95
97
  lastName?: string;
96
98
  birthDate?: string;
@@ -117,100 +119,100 @@ export type UserProfile = {
117
119
  [member: string]: CustomAttribute;
118
120
  };
119
121
  };
120
- export interface UserSignedUp extends BaseEvent {
122
+ interface UserSignedUp extends BaseEvent {
121
123
  type: 'userSignedUp';
122
124
  userId: string;
123
125
  profile?: UserProfile;
124
126
  }
125
- export interface UserSignedIn extends BaseEvent {
127
+ interface UserSignedIn extends BaseEvent {
126
128
  type: 'userSignedIn';
127
129
  userId: string;
128
130
  }
129
- export interface UserSignedOut extends BaseEvent {
131
+ interface UserSignedOut extends BaseEvent {
130
132
  type: 'userSignedOut';
131
133
  userId: string;
132
134
  }
133
- export type IdentifiedUserEvent = UserSignedIn | UserSignedOut | UserSignedUp;
134
- export type UserEvent = UserProfileChanged | IdentifiedUserEvent;
135
- export type CartEventType = typeof cartEventTypes[number];
135
+ type IdentifiedUserEvent = UserSignedIn | UserSignedOut | UserSignedUp;
136
+ type UserEvent = UserProfileChanged | IdentifiedUserEvent;
137
+ type CartEventType = typeof cartEventTypes[number];
136
138
  interface BaseCartEvent extends BaseEvent {
137
139
  type: CartEventType;
138
140
  cart: Cart;
139
141
  }
140
- export interface CartViewed extends BaseCartEvent {
142
+ interface CartViewed extends BaseCartEvent {
141
143
  type: 'cartViewed';
142
144
  }
143
- export interface CartModified extends BaseCartEvent {
145
+ interface CartModified extends BaseCartEvent {
144
146
  type: 'cartModified';
145
147
  }
146
- export interface CheckoutStarted extends BaseCartEvent {
148
+ interface CheckoutStarted extends BaseCartEvent {
147
149
  type: 'checkoutStarted';
148
150
  orderId?: string;
149
151
  }
150
- export type CartEvent = CartModified | CartViewed | CheckoutStarted;
151
- export interface OrderPlaced extends BaseEvent {
152
+ type CartEvent = CartModified | CartViewed | CheckoutStarted;
153
+ interface OrderPlaced extends BaseEvent {
152
154
  type: 'orderPlaced';
153
155
  order: Order;
154
156
  }
155
- export interface ProductViewed extends BaseEvent {
157
+ interface ProductViewed extends BaseEvent {
156
158
  type: 'productViewed';
157
159
  product: ProductDetails;
158
160
  }
159
- export type EcommerceEvent = OrderPlaced | ProductViewed | CartEvent;
161
+ type EcommerceEvent = OrderPlaced | ProductViewed | CartEvent;
160
162
  /**
161
163
  * Tab event
162
164
  */
163
- export type TabEventType = typeof tabEventTypes[number];
165
+ type TabEventType = typeof tabEventTypes[number];
164
166
  interface BaseTabEvent extends BaseEvent {
165
167
  type: TabEventType;
166
168
  tabId: string;
167
169
  }
168
- export interface TabOpened extends BaseTabEvent {
170
+ interface TabOpened extends BaseTabEvent {
169
171
  type: 'tabOpened';
170
172
  }
171
- export interface TabUrlChanged extends BaseTabEvent {
173
+ interface TabUrlChanged extends BaseTabEvent {
172
174
  type: 'tabUrlChanged';
173
175
  url: string;
174
176
  }
175
- export interface TabVisibilityChanged extends BaseTabEvent {
177
+ interface TabVisibilityChanged extends BaseTabEvent {
176
178
  type: 'tabVisibilityChanged';
177
179
  visibility: 'visible' | 'hidden';
178
180
  }
179
- export type TabEvent = TabVisibilityChanged | TabUrlChanged | TabOpened;
180
- export type PageEventType = typeof pageEventTypes[number];
181
+ type TabEvent = TabVisibilityChanged | TabUrlChanged | TabOpened;
182
+ type PageEventType = typeof pageEventTypes[number];
181
183
  interface BasePageEvent extends BaseEvent {
182
184
  type: PageEventType;
183
185
  url: string;
184
186
  }
185
- export interface PageOpened extends BasePageEvent {
187
+ interface PageOpened extends BasePageEvent {
186
188
  type: 'pageOpened';
187
189
  referrer?: string;
188
190
  }
189
- export interface PageLoaded extends BasePageEvent {
191
+ interface PageLoaded extends BasePageEvent {
190
192
  type: 'pageLoaded';
191
193
  title: string;
192
194
  lastModifiedTime: number;
193
195
  }
194
- export type PageEvent = PageLoaded | PageOpened;
195
- export interface NothingChanged extends BaseEvent {
196
+ type PageEvent = PageLoaded | PageOpened;
197
+ interface NothingChanged extends BaseEvent {
196
198
  type: 'nothingChanged';
197
199
  sinceTime: number;
198
200
  }
199
- export interface SessionAttributesChanged extends BaseEvent {
201
+ interface SessionAttributesChanged extends BaseEvent {
200
202
  type: 'sessionAttributesChanged';
201
203
  patch: Patch;
202
204
  }
203
- export interface GoalCompleted extends BaseEvent {
205
+ interface GoalCompleted extends BaseEvent {
204
206
  type: 'goalCompleted';
205
207
  goalId: string;
206
208
  value?: number;
207
209
  currency?: string;
208
210
  }
209
- export interface InterestShown extends BaseEvent {
211
+ interface InterestShown extends BaseEvent {
210
212
  type: 'interestShown';
211
213
  interests: string[];
212
214
  }
213
- export interface PostDetails {
215
+ interface PostDetails {
214
216
  postId: string;
215
217
  url?: string;
216
218
  title: string;
@@ -220,22 +222,22 @@ export interface PostDetails {
220
222
  publishTime: number;
221
223
  updateTime?: number;
222
224
  }
223
- export interface PostViewed extends BaseEvent {
225
+ interface PostViewed extends BaseEvent {
224
226
  type: 'postViewed';
225
227
  post: PostDetails;
226
228
  }
227
- export interface EventOccurred extends BaseEvent {
229
+ interface EventOccurred extends BaseEvent {
228
230
  type: 'eventOccurred';
229
231
  name: string;
230
232
  details?: {
231
233
  [key: string]: string | number | boolean | null;
232
234
  };
233
235
  }
234
- export interface LinkOpened extends BaseEvent {
236
+ interface LinkOpened extends BaseEvent {
235
237
  type: 'linkOpened';
236
238
  link: string;
237
239
  }
238
- export type MiscEvent = NothingChanged | SessionAttributesChanged | EventOccurred | GoalCompleted | InterestShown | PostViewed | LinkOpened;
240
+ type MiscEvent = NothingChanged | SessionAttributesChanged | EventOccurred | GoalCompleted | InterestShown | PostViewed | LinkOpened;
239
241
  type EventMap = {
240
242
  tabVisibilityChanged: TabVisibilityChanged;
241
243
  tabUrlChanged: TabUrlChanged;
@@ -259,13 +261,13 @@ type EventMap = {
259
261
  eventOccurred: EventOccurred;
260
262
  linkOpened: LinkOpened;
261
263
  };
262
- export type TrackingEventType = keyof EventMap;
263
- export type TrackingEvent<T extends TrackingEventType = TrackingEventType> = T extends TrackingEventType ? EventMap[T] : EventMap[TrackingEventType];
264
+ type TrackingEventType = keyof EventMap;
265
+ type TrackingEvent<T extends TrackingEventType = TrackingEventType> = T extends TrackingEventType ? EventMap[T] : EventMap[TrackingEventType];
264
266
  /**
265
267
  * Partial Events
266
268
  */
267
269
  type CartPartialEvent<T extends CartEvent = CartEvent> = DistributiveOmit<T, 'cart'> & Record<'cart', Optional<Cart, 'lastUpdateTime'>>;
268
- export type PartialTrackingEvent = Exclude<TrackingEvent, PageEvent | TabEvent | CartEvent> | CartPartialEvent;
270
+ type PartialTrackingEvent = Exclude<TrackingEvent, PageEvent | TabEvent | CartEvent> | CartPartialEvent;
269
271
  /**
270
272
  * External Events
271
273
  */
@@ -282,25 +284,26 @@ type ExternalEventMap = {
282
284
  linkOpened: LinkOpened;
283
285
  eventOccurred: EventOccurred;
284
286
  };
285
- export type ExternalTrackingEventType = keyof ExternalEventMap;
286
- export type ExternalTrackingEvent<T extends ExternalTrackingEventType = ExternalTrackingEventType> = T extends ExternalTrackingEventType ? ExternalEventMap[T] : ExternalEventMap[ExternalTrackingEventType];
287
- export type ExternalTrackingEventPayload<T extends ExternalTrackingEventType> = Omit<ExternalEventMap[T], 'type'>;
288
- export declare function isIdentifiedUserEvent(event: TrackingEvent): event is IdentifiedUserEvent;
289
- export declare function isCartPartialEvent(event: PartialTrackingEvent): event is CartPartialEvent;
290
- export type TrackingEventContext = {
287
+ type ExternalTrackingEventType = keyof ExternalEventMap;
288
+ type ExternalTrackingEvent<T extends ExternalTrackingEventType = ExternalTrackingEventType> = T extends ExternalTrackingEventType ? ExternalEventMap[T] : ExternalEventMap[ExternalTrackingEventType];
289
+ type ExternalTrackingEventPayload<T extends ExternalTrackingEventType> = Omit<ExternalEventMap[T], 'type'>;
290
+ declare function isIdentifiedUserEvent(event: TrackingEvent): event is IdentifiedUserEvent;
291
+ declare function isCartPartialEvent(event: PartialTrackingEvent): event is CartPartialEvent;
292
+ type TrackingEventContext = {
291
293
  tabId: string;
292
294
  url: string;
293
295
  metadata?: {
294
296
  [key: string]: string;
295
297
  };
296
298
  };
297
- export type BeaconPayload = Exclude<TrackingEvent, IdentifiedUserEvent> | DistributiveOmit<Exclude<IdentifiedUserEvent, UserSignedUp>, 'userId'> & Record<'externalUserId', IdentifiedUserEvent['userId']> | Omit<UserSignedUp, 'userId' | 'profile'> & Record<'externalUserId', IdentifiedUserEvent['userId']> & {
299
+ type BeaconPayload = Exclude<TrackingEvent, IdentifiedUserEvent> | DistributiveOmit<Exclude<IdentifiedUserEvent, UserSignedUp>, 'userId'> & Record<'externalUserId', IdentifiedUserEvent['userId']> | Omit<UserSignedUp, 'userId' | 'profile'> & Record<'externalUserId', IdentifiedUserEvent['userId']> & {
298
300
  patch?: Patch;
299
301
  };
300
- export type Beacon = {
302
+ type Beacon = {
301
303
  timestamp: number;
302
304
  token?: string;
303
305
  context: TrackingEventContext;
304
306
  payload: BeaconPayload;
305
307
  };
306
- export {};
308
+
309
+ export { type Beacon, type BeaconPayload, type Cart, type CartEvent, type CartEventType, type CartItem, type CartModified, type CartViewed, type CheckoutStarted, type EcommerceEvent, type EventOccurred, type ExternalTrackingEvent, type ExternalTrackingEventPayload, type ExternalTrackingEventType, type Gender, type GoalCompleted, type IdentifiedUserEvent, type InterestShown, type LinkOpened, type MiscEvent, type NothingChanged, type Order, type OrderItem, type OrderPlaced, type OrderStatus, type PageEvent, type PageEventType, type PageLoaded, type PageOpened, type PartialTrackingEvent, type PostDetails, type PostViewed, type ProductDetails, type ProductViewed, type SessionAttributesChanged, type TabEvent, type TabEventType, type TabOpened, type TabUrlChanged, type TabVisibilityChanged, type TrackingEvent, type TrackingEventContext, type TrackingEventType, type UserEvent, type UserProfile, type UserProfileChanged, type UserSignedIn, type UserSignedOut, type UserSignedUp, cartEventTypes, ecommerceEventTypes, eventTypes, identifiedUserEventTypes, isCartPartialEvent, isIdentifiedUserEvent, miscEventTypes, pageEventTypes, tabEventTypes, userEventTypes };
package/trackingEvents.js CHANGED
@@ -1,61 +1,62 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.eventTypes = exports.miscEventTypes = exports.userEventTypes = exports.identifiedUserEventTypes = exports.ecommerceEventTypes = exports.cartEventTypes = exports.tabEventTypes = exports.pageEventTypes = void 0;
4
- exports.isIdentifiedUserEvent = isIdentifiedUserEvent;
5
- exports.isCartPartialEvent = isCartPartialEvent;
6
- /*
7
- * Events
8
- */
9
- exports.pageEventTypes = [
10
- 'pageLoaded',
11
- 'pageOpened',
12
- ];
13
- exports.tabEventTypes = [
14
- 'tabOpened',
15
- 'tabUrlChanged',
16
- 'tabVisibilityChanged',
17
- ];
18
- exports.cartEventTypes = [
19
- 'cartModified',
20
- 'cartViewed',
21
- 'checkoutStarted',
22
- ];
23
- exports.ecommerceEventTypes = [
24
- ...exports.cartEventTypes,
25
- 'orderPlaced',
26
- 'productViewed',
27
- ];
28
- exports.identifiedUserEventTypes = [
29
- 'userSignedIn',
30
- 'userSignedOut',
31
- 'userSignedUp',
32
- ];
33
- exports.userEventTypes = [
34
- ...exports.identifiedUserEventTypes,
35
- 'userProfileChanged',
36
- ];
37
- exports.miscEventTypes = [
38
- 'nothingChanged',
39
- 'sessionAttributesChanged',
40
- 'goalCompleted',
41
- 'interestShown',
42
- 'postViewed',
43
- 'eventOccurred',
44
- 'linkOpened',
45
- ];
46
- exports.eventTypes = [
47
- ...exports.pageEventTypes,
48
- ...exports.ecommerceEventTypes,
49
- ...exports.userEventTypes,
50
- ...exports.miscEventTypes,
51
- ];
52
- /*
53
- * Type guards
54
- */
1
+ const pageEventTypes = [
2
+ "pageLoaded",
3
+ "pageOpened"
4
+ ];
5
+ const tabEventTypes = [
6
+ "tabOpened",
7
+ "tabUrlChanged",
8
+ "tabVisibilityChanged"
9
+ ];
10
+ const cartEventTypes = [
11
+ "cartModified",
12
+ "cartViewed",
13
+ "checkoutStarted"
14
+ ];
15
+ const ecommerceEventTypes = [
16
+ ...cartEventTypes,
17
+ "orderPlaced",
18
+ "productViewed"
19
+ ];
20
+ const identifiedUserEventTypes = [
21
+ "userSignedIn",
22
+ "userSignedOut",
23
+ "userSignedUp"
24
+ ];
25
+ const userEventTypes = [
26
+ ...identifiedUserEventTypes,
27
+ "userProfileChanged"
28
+ ];
29
+ const miscEventTypes = [
30
+ "nothingChanged",
31
+ "sessionAttributesChanged",
32
+ "goalCompleted",
33
+ "interestShown",
34
+ "postViewed",
35
+ "eventOccurred",
36
+ "linkOpened"
37
+ ];
38
+ const eventTypes = [
39
+ ...pageEventTypes,
40
+ ...ecommerceEventTypes,
41
+ ...userEventTypes,
42
+ ...miscEventTypes
43
+ ];
55
44
  function isIdentifiedUserEvent(event) {
56
- return exports.identifiedUserEventTypes.includes(event.type);
45
+ return identifiedUserEventTypes.includes(event.type);
57
46
  }
58
47
  function isCartPartialEvent(event) {
59
- return exports.cartEventTypes.includes(event.type);
48
+ return cartEventTypes.includes(event.type);
60
49
  }
50
+ export {
51
+ cartEventTypes,
52
+ ecommerceEventTypes,
53
+ eventTypes,
54
+ identifiedUserEventTypes,
55
+ isCartPartialEvent,
56
+ isIdentifiedUserEvent,
57
+ miscEventTypes,
58
+ pageEventTypes,
59
+ tabEventTypes,
60
+ userEventTypes
61
+ };
61
62
  //# sourceMappingURL=trackingEvents.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"trackingEvents.js","sourceRoot":"","sources":["src/trackingEvents.ts"],"names":[],"mappings":";;;AAkaA,sDAEC;AAED,gDAEC;AAjWD;;GAEG;AAEU,QAAA,cAAc,GAAG;IAC1B,YAAY;IACZ,YAAY;CACN,CAAC;AAEE,QAAA,aAAa,GAAG;IACzB,WAAW;IACX,eAAe;IACf,sBAAsB;CAChB,CAAC;AAEE,QAAA,cAAc,GAAG;IAC1B,cAAc;IACd,YAAY;IACZ,iBAAiB;CACX,CAAC;AAEE,QAAA,mBAAmB,GAAG;IAC/B,GAAG,sBAAc;IACjB,aAAa;IACb,eAAe;CACT,CAAC;AAEE,QAAA,wBAAwB,GAAG;IACpC,cAAc;IACd,eAAe;IACf,cAAc;CACjB,CAAC;AAEW,QAAA,cAAc,GAAG;IAC1B,GAAG,gCAAwB;IAC3B,oBAAoB;CACd,CAAC;AAEE,QAAA,cAAc,GAAG;IAC1B,gBAAgB;IAChB,0BAA0B;IAC1B,eAAe;IACf,eAAe;IACf,YAAY;IACZ,eAAe;IACf,YAAY;CACN,CAAC;AAEE,QAAA,UAAU,GAAG;IACtB,GAAG,sBAAc;IACjB,GAAG,2BAAmB;IACtB,GAAG,sBAAc;IACjB,GAAG,sBAAc;CACX,CAAC;AAkSX;;GAEG;AAEH,SAAgB,qBAAqB,CAAC,KAAoB;IACtD,OAAO,gCAAwB,CAAC,QAAQ,CAAE,KAA6B,CAAC,IAAI,CAAC,CAAC;AAClF,CAAC;AAED,SAAgB,kBAAkB,CAAC,KAA2B;IAC1D,OAAO,sBAAc,CAAC,QAAQ,CAAE,KAAmB,CAAC,IAAI,CAAC,CAAC;AAC9D,CAAC"}
1
+ {"version":3,"sources":["src/trackingEvents.ts"],"sourcesContent":["import {Patch} from './patch';\nimport {DistributiveOmit, Optional} from './utilityTypes';\n\n/*\n * Object values\n */\n\nexport type ProductDetails = {\n productId: string,\n sku?: string,\n name: string,\n category?: string,\n brand?: string,\n variant?: string,\n displayPrice: number,\n originalPrice?: number,\n url?: string,\n imageUrl?: string,\n};\n\nexport type CartItem = {\n index: number,\n product: ProductDetails,\n quantity: number,\n total: number,\n discount?: number,\n coupon?: string,\n};\n\nexport type Cart = {\n currency: string,\n items: CartItem[],\n subtotal?: number,\n shippingPrice?: number,\n taxes?: {[key: string]: number},\n costs?: {[key: string]: number},\n discount?: number,\n total: number,\n coupon?: string,\n lastUpdateTime: number,\n};\n\nexport type OrderItem = {\n index: number,\n product: ProductDetails,\n quantity?: number,\n total: number,\n discount?: number,\n coupon?: string,\n};\n\nexport type OrderStatus = 'placed' | 'paid' | 'completed';\n\nexport type Order = {\n orderId: string,\n currency: string,\n items: OrderItem[],\n subtotal?: number,\n shippingPrice?: number,\n taxes?: {[key: string]: number},\n costs?: {[key: string]: number},\n discount?: number,\n total: number,\n coupon?: string,\n paymentMethod?: string,\n installments?: number,\n status?: OrderStatus,\n};\n\nexport type Gender = 'male' | 'female' | 'neutral' | 'unknown';\n\n/*\n * Events\n */\n\nexport const pageEventTypes = [\n 'pageLoaded',\n 'pageOpened',\n] as const;\n\nexport const tabEventTypes = [\n 'tabOpened',\n 'tabUrlChanged',\n 'tabVisibilityChanged',\n] as const;\n\nexport const cartEventTypes = [\n 'cartModified',\n 'cartViewed',\n 'checkoutStarted',\n] as const;\n\nexport const ecommerceEventTypes = [\n ...cartEventTypes,\n 'orderPlaced',\n 'productViewed',\n] as const;\n\nexport const identifiedUserEventTypes = [\n 'userSignedIn',\n 'userSignedOut',\n 'userSignedUp',\n];\n\nexport const userEventTypes = [\n ...identifiedUserEventTypes,\n 'userProfileChanged',\n] as const;\n\nexport const miscEventTypes = [\n 'nothingChanged',\n 'sessionAttributesChanged',\n 'goalCompleted',\n 'interestShown',\n 'postViewed',\n 'eventOccurred',\n 'linkOpened',\n] as const;\n\nexport const eventTypes = [\n ...pageEventTypes,\n ...ecommerceEventTypes,\n ...userEventTypes,\n ...miscEventTypes,\n] as const;\n\ninterface BaseEvent {\n type: string;\n}\n\n/*\n * User events\n */\n\nexport interface UserProfileChanged extends BaseEvent {\n type: 'userProfileChanged';\n patch: Patch;\n}\n\ntype Primitive = null | string | number | boolean;\ntype PrimitiveMap = {[member: string]: Primitive};\ntype PrimitiveArray = Primitive[];\ntype TwoLevelMap = {[member: string]: Primitive | PrimitiveMap | PrimitiveArray};\ntype TwoLevelArray = PrimitiveArray | PrimitiveMap[] | PrimitiveArray[];\ntype CustomAttribute = Primitive | TwoLevelMap | TwoLevelArray;\n\nexport type UserProfile = {\n firstName?: string,\n lastName?: string,\n birthDate?: string,\n gender?: Gender,\n email?: string,\n alternateEmail?: string,\n phone?: string,\n alternatePhone?: string,\n address?: {\n street?: string,\n district?: string,\n city?: string,\n region?: string,\n country?: string,\n postalCode?: string,\n },\n avatar?: string,\n company?: string,\n companyUrl?: string,\n jobTitle?: string,\n interests?: string[],\n activities?: string[],\n custom?: {\n [member: string]: CustomAttribute,\n },\n};\n\nexport interface UserSignedUp extends BaseEvent {\n type: 'userSignedUp';\n userId: string;\n profile?: UserProfile;\n}\n\nexport interface UserSignedIn extends BaseEvent {\n type: 'userSignedIn';\n userId: string;\n}\n\nexport interface UserSignedOut extends BaseEvent {\n type: 'userSignedOut';\n userId: string;\n}\n\nexport type IdentifiedUserEvent = UserSignedIn | UserSignedOut | UserSignedUp;\nexport type UserEvent = UserProfileChanged | IdentifiedUserEvent;\n\n/*\n * E-commerce events\n */\n\nexport type CartEventType = typeof cartEventTypes[number];\n\ninterface BaseCartEvent extends BaseEvent {\n type: CartEventType;\n cart: Cart;\n}\n\nexport interface CartViewed extends BaseCartEvent {\n type: 'cartViewed';\n}\n\nexport interface CartModified extends BaseCartEvent {\n type: 'cartModified';\n}\n\nexport interface CheckoutStarted extends BaseCartEvent {\n type: 'checkoutStarted';\n orderId?: string;\n}\n\nexport type CartEvent = CartModified | CartViewed | CheckoutStarted;\n\nexport interface OrderPlaced extends BaseEvent {\n type: 'orderPlaced';\n order: Order;\n}\n\nexport interface ProductViewed extends BaseEvent {\n type: 'productViewed';\n product: ProductDetails;\n}\n\nexport type EcommerceEvent = OrderPlaced | ProductViewed | CartEvent;\n\n/**\n * Tab event\n */\n\nexport type TabEventType = typeof tabEventTypes[number];\n\ninterface BaseTabEvent extends BaseEvent {\n type: TabEventType;\n tabId: string;\n}\n\nexport interface TabOpened extends BaseTabEvent {\n type: 'tabOpened';\n}\n\nexport interface TabUrlChanged extends BaseTabEvent {\n type: 'tabUrlChanged';\n url: string;\n}\n\nexport interface TabVisibilityChanged extends BaseTabEvent {\n type: 'tabVisibilityChanged';\n visibility: 'visible' | 'hidden';\n}\n\nexport type TabEvent = TabVisibilityChanged | TabUrlChanged | TabOpened;\n\n/*\n * Page events\n */\n\nexport type PageEventType = typeof pageEventTypes[number];\n\ninterface BasePageEvent extends BaseEvent {\n type: PageEventType;\n url: string;\n}\n\nexport interface PageOpened extends BasePageEvent {\n type: 'pageOpened';\n referrer?: string;\n}\n\nexport interface PageLoaded extends BasePageEvent {\n type: 'pageLoaded';\n title: string;\n lastModifiedTime: number;\n}\n\nexport type PageEvent = PageLoaded | PageOpened;\n\n/*\n * Misc events\n */\n\nexport interface NothingChanged extends BaseEvent {\n type: 'nothingChanged';\n sinceTime: number;\n}\n\nexport interface SessionAttributesChanged extends BaseEvent {\n type: 'sessionAttributesChanged';\n patch: Patch;\n}\n\nexport interface GoalCompleted extends BaseEvent {\n type: 'goalCompleted';\n goalId: string;\n value?: number;\n currency?: string;\n}\n\nexport interface InterestShown extends BaseEvent {\n type: 'interestShown';\n interests: string[];\n}\n\nexport interface PostDetails {\n postId: string;\n url?: string;\n title: string;\n tags?: string[];\n categories?: string[];\n authors?: string[];\n publishTime: number;\n updateTime?: number;\n}\n\nexport interface PostViewed extends BaseEvent {\n type: 'postViewed';\n post: PostDetails;\n}\n\nexport interface EventOccurred extends BaseEvent {\n type: 'eventOccurred';\n name: string;\n details?: {[key: string]: string|number|boolean|null};\n}\n\nexport interface LinkOpened extends BaseEvent {\n type: 'linkOpened';\n link: string;\n}\n\nexport type MiscEvent =\n NothingChanged\n | SessionAttributesChanged\n | EventOccurred\n | GoalCompleted\n | InterestShown\n | PostViewed\n | LinkOpened;\n\ntype EventMap = {\n // Tab events\n tabVisibilityChanged: TabVisibilityChanged,\n tabUrlChanged: TabUrlChanged,\n tabOpened: TabOpened,\n // Page events\n pageLoaded: PageLoaded,\n pageOpened: PageOpened,\n // User events\n userSignedIn: UserSignedIn,\n userSignedOut: UserSignedOut,\n userSignedUp: UserSignedUp,\n userProfileChanged: UserProfileChanged,\n // E-commerce events\n productViewed: ProductViewed,\n cartViewed: CartViewed,\n cartModified: CartModified,\n checkoutStarted: CheckoutStarted,\n orderPlaced: OrderPlaced,\n // Misc events\n nothingChanged: NothingChanged,\n sessionAttributesChanged: SessionAttributesChanged,\n goalCompleted: GoalCompleted,\n interestShown: InterestShown,\n postViewed: PostViewed,\n eventOccurred: EventOccurred,\n linkOpened: LinkOpened,\n};\n\nexport type TrackingEventType = keyof EventMap;\n\nexport type TrackingEvent<T extends TrackingEventType = TrackingEventType> =\n T extends TrackingEventType ? EventMap[T] : EventMap[TrackingEventType];\n\n/**\n * Partial Events\n */\n\ntype CartPartialEvent <T extends CartEvent = CartEvent> =\n DistributiveOmit<T, 'cart'> & Record<'cart', Optional<Cart, 'lastUpdateTime'>>;\n\nexport type PartialTrackingEvent = Exclude<TrackingEvent, PageEvent | TabEvent | CartEvent> | CartPartialEvent;\n\n/**\n * External Events\n */\n\ntype ExternalEventMap = {\n cartModified: CartPartialEvent<CartModified>,\n cartViewed: CartPartialEvent<CartViewed>,\n checkoutStarted: CartPartialEvent<CheckoutStarted>,\n orderPlaced: OrderPlaced,\n productViewed: ProductViewed,\n userSignedUp: UserSignedUp,\n goalCompleted: GoalCompleted,\n interestShown: InterestShown,\n postViewed: PostViewed,\n linkOpened: LinkOpened,\n eventOccurred: EventOccurred,\n};\n\nexport type ExternalTrackingEventType = keyof ExternalEventMap;\n\nexport type ExternalTrackingEvent<T extends ExternalTrackingEventType = ExternalTrackingEventType> =\n T extends ExternalTrackingEventType\n ? ExternalEventMap[T]\n : ExternalEventMap[ExternalTrackingEventType];\n\nexport type ExternalTrackingEventPayload<T extends ExternalTrackingEventType> = Omit<ExternalEventMap[T], 'type'>;\n\n/*\n * Type guards\n */\n\nexport function isIdentifiedUserEvent(event: TrackingEvent): event is IdentifiedUserEvent {\n return identifiedUserEventTypes.includes((event as IdentifiedUserEvent).type);\n}\n\nexport function isCartPartialEvent(event: PartialTrackingEvent): event is CartPartialEvent {\n return cartEventTypes.includes((event as CartEvent).type);\n}\n\n/*\n * Beacon\n */\n\nexport type TrackingEventContext = {\n tabId: string,\n url: string,\n metadata?: {[key: string]: string},\n};\n\nexport type BeaconPayload =\n Exclude<TrackingEvent, IdentifiedUserEvent>\n // Renames \"userId\" to \"externalUserId\"\n | DistributiveOmit<Exclude<IdentifiedUserEvent, UserSignedUp>, 'userId'>\n & Record<'externalUserId', IdentifiedUserEvent['userId']>\n // Renames \"userId\" to \"externalUserId\", remove \"profile\" and add \"patch\"\n | Omit<UserSignedUp, 'userId' | 'profile'>\n & Record<'externalUserId', IdentifiedUserEvent['userId']>\n & {patch?: Patch};\n\nexport type Beacon = {\n timestamp: number,\n token?: string,\n context: TrackingEventContext,\n payload: BeaconPayload,\n};\n"],"mappings":"AA2EO,MAAM,iBAAiB;AAAA,EAC1B;AAAA,EACA;AACJ;AAEO,MAAM,gBAAgB;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AACJ;AAEO,MAAM,iBAAiB;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AACJ;AAEO,MAAM,sBAAsB;AAAA,EAC/B,GAAG;AAAA,EACH;AAAA,EACA;AACJ;AAEO,MAAM,2BAA2B;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AACJ;AAEO,MAAM,iBAAiB;AAAA,EAC1B,GAAG;AAAA,EACH;AACJ;AAEO,MAAM,iBAAiB;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AAEO,MAAM,aAAa;AAAA,EACtB,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AACP;AAsSO,SAAS,sBAAsB,OAAoD;AACtF,SAAO,yBAAyB,SAAU,MAA8B,IAAI;AAChF;AAEO,SAAS,mBAAmB,OAAwD;AACvF,SAAO,eAAe,SAAU,MAAoB,IAAI;AAC5D;","names":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/transformer.ts"],"sourcesContent":["export interface Transformer<I, O> {\n (input: I): Promise<O>;\n}\n\nexport const encodeJson: Transformer<any, string> = function encodeJson(input: any): Promise<string> {\n return Promise.resolve(JSON.stringify(input));\n};\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIO,MAAM,aAAuC,SAASA,YAAW,OAA6B;AACjG,SAAO,QAAQ,QAAQ,KAAK,UAAU,KAAK,CAAC;AAChD;","names":["encodeJson"]}
package/transformer.d.ts CHANGED
@@ -1,4 +1,6 @@
1
- export interface Transformer<I, O> {
1
+ interface Transformer<I, O> {
2
2
  (input: I): Promise<O>;
3
3
  }
4
- export declare const encodeJson: Transformer<any, string>;
4
+ declare const encodeJson: Transformer<any, string>;
5
+
6
+ export { type Transformer, encodeJson };
package/transformer.js CHANGED
@@ -1,8 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.encodeJson = void 0;
4
- const encodeJson = function encodeJson(input) {
5
- return Promise.resolve(JSON.stringify(input));
1
+ const encodeJson = function encodeJson2(input) {
2
+ return Promise.resolve(JSON.stringify(input));
3
+ };
4
+ export {
5
+ encodeJson
6
6
  };
7
- exports.encodeJson = encodeJson;
8
7
  //# sourceMappingURL=transformer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transformer.js","sourceRoot":"","sources":["src/transformer.ts"],"names":[],"mappings":";;;AAIO,MAAM,UAAU,GAA6B,SAAS,UAAU,CAAC,KAAU;IAC9E,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAClD,CAAC,CAAC;AAFW,QAAA,UAAU,cAErB"}
1
+ {"version":3,"sources":["src/transformer.ts"],"sourcesContent":["export interface Transformer<I, O> {\n (input: I): Promise<O>;\n}\n\nexport const encodeJson: Transformer<any, string> = function encodeJson(input: any): Promise<string> {\n return Promise.resolve(JSON.stringify(input));\n};\n"],"mappings":"AAIO,MAAM,aAAuC,SAASA,YAAW,OAA6B;AACjG,SAAO,QAAQ,QAAQ,KAAK,UAAU,KAAK,CAAC;AAChD;","names":["encodeJson"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utilityTypes.ts"],"sourcesContent":["export type DistributiveOmit<T, K extends keyof T> = T extends unknown ? Omit<T, K> : never;\n\nexport type Optional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;\n"],"mappings":";;;;;;;;;;;;;AAAA;AAAA;","names":[]}
package/utilityTypes.d.ts CHANGED
@@ -1,2 +1,4 @@
1
- export type DistributiveOmit<T, K extends keyof T> = T extends unknown ? Omit<T, K> : never;
2
- export type Optional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
1
+ type DistributiveOmit<T, K extends keyof T> = T extends unknown ? Omit<T, K> : never;
2
+ type Optional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
3
+
4
+ export type { DistributiveOmit, Optional };
package/utilityTypes.js CHANGED
@@ -1,3 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
1
  //# sourceMappingURL=utilityTypes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utilityTypes.js","sourceRoot":"","sources":["src/utilityTypes.ts"],"names":[],"mappings":""}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
package/uuid.cjs.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/uuid.ts"],"sourcesContent":["export function uuid4(sortable = false): string {\n let uuid = '';\n\n if (sortable) {\n const prefix = Date.now()\n .toString(16)\n .padStart(12, '0')\n .substring(0, 12);\n\n uuid = `${prefix.substring(0, 8)}-${prefix.substring(8, 12)}`;\n }\n\n for (let index = uuid.length; index < 36; index++) {\n switch (index) {\n case 8:\n case 13:\n case 18:\n case 23:\n uuid += '-';\n\n break;\n\n case 14:\n // bits 12-15 of the time_hi_and_version field to 0010\n uuid += '4';\n\n break;\n\n default: {\n let random = (Math.random() * 16) | 0;\n\n if (index === 19) {\n // bits 6-7 of the clock_seq_hi_and_reserved to 01\n random = (random & 3) | 8;\n }\n\n uuid += random.toString(16);\n }\n }\n }\n\n return uuid;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,SAAS,MAAM,WAAW,OAAe;AAC5C,MAAI,OAAO;AAEX,MAAI,UAAU;AACV,UAAM,SAAS,KAAK,IAAI,EACnB,SAAS,EAAE,EACX,SAAS,IAAI,GAAG,EAChB,UAAU,GAAG,EAAE;AAEpB,WAAO,GAAG,OAAO,UAAU,GAAG,CAAC,CAAC,IAAI,OAAO,UAAU,GAAG,EAAE,CAAC;AAAA,EAC/D;AAEA,WAAS,QAAQ,KAAK,QAAQ,QAAQ,IAAI,SAAS;AAC/C,YAAQ,OAAO;AAAA,MACX,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACD,gBAAQ;AAER;AAAA,MAEJ,KAAK;AAED,gBAAQ;AAER;AAAA,MAEJ,SAAS;AACL,YAAI,SAAU,KAAK,OAAO,IAAI,KAAM;AAEpC,YAAI,UAAU,IAAI;AAEd,mBAAU,SAAS,IAAK;AAAA,QAC5B;AAEA,gBAAQ,OAAO,SAAS,EAAE;AAAA,MAC9B;AAAA,IACJ;AAAA,EACJ;AAEA,SAAO;AACX;","names":[]}
package/uuid.d.ts CHANGED
@@ -1 +1,3 @@
1
- export declare function uuid4(sortable?: boolean): string;
1
+ declare function uuid4(sortable?: boolean): string;
2
+
3
+ export { uuid4 };