@amplitude/analytics-browser 2.11.13 → 2.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) hide show
  1. package/README.md +1 -1
  2. package/lib/cjs/attribution/campaign-parser.d.ts +8 -0
  3. package/lib/cjs/attribution/campaign-parser.d.ts.map +1 -0
  4. package/lib/cjs/attribution/campaign-parser.js +69 -0
  5. package/lib/cjs/attribution/campaign-parser.js.map +1 -0
  6. package/lib/cjs/attribution/campaign.d.ts +31 -0
  7. package/lib/cjs/attribution/campaign.d.ts.map +1 -0
  8. package/lib/cjs/attribution/campaign.js +3 -0
  9. package/lib/cjs/attribution/campaign.js.map +1 -0
  10. package/lib/cjs/attribution/constants.d.ts +22 -0
  11. package/lib/cjs/attribution/constants.d.ts.map +1 -0
  12. package/lib/cjs/attribution/constants.js +44 -0
  13. package/lib/cjs/attribution/constants.js.map +1 -0
  14. package/lib/cjs/attribution/helpers.d.ts +12 -0
  15. package/lib/cjs/attribution/helpers.d.ts.map +1 -0
  16. package/lib/cjs/attribution/helpers.js +77 -0
  17. package/lib/cjs/attribution/helpers.js.map +1 -0
  18. package/lib/cjs/attribution/web-attribution.d.ts +25 -0
  19. package/lib/cjs/attribution/web-attribution.d.ts.map +1 -0
  20. package/lib/cjs/attribution/web-attribution.js +73 -0
  21. package/lib/cjs/attribution/web-attribution.js.map +1 -0
  22. package/lib/cjs/browser-client-factory.d.ts +1 -1
  23. package/lib/cjs/browser-client-factory.d.ts.map +1 -1
  24. package/lib/cjs/browser-client-factory.js.map +1 -1
  25. package/lib/cjs/browser-client.d.ts +7 -8
  26. package/lib/cjs/browser-client.d.ts.map +1 -1
  27. package/lib/cjs/browser-client.js +20 -20
  28. package/lib/cjs/browser-client.js.map +1 -1
  29. package/lib/cjs/config/joined-config.d.ts +6 -1
  30. package/lib/cjs/config/joined-config.d.ts.map +1 -1
  31. package/lib/cjs/config/joined-config.js.map +1 -1
  32. package/lib/cjs/config.d.ts +1 -4
  33. package/lib/cjs/config.d.ts.map +1 -1
  34. package/lib/cjs/config.js +9 -11
  35. package/lib/cjs/config.js.map +1 -1
  36. package/lib/cjs/constants.d.ts +1 -1
  37. package/lib/cjs/constants.d.ts.map +1 -1
  38. package/lib/cjs/constants.js.map +1 -1
  39. package/lib/cjs/cookie-migration/index.d.ts +1 -1
  40. package/lib/cjs/cookie-migration/index.d.ts.map +1 -1
  41. package/lib/cjs/cookie-migration/index.js +2 -2
  42. package/lib/cjs/cookie-migration/index.js.map +1 -1
  43. package/lib/cjs/default-tracking.d.ts +18 -0
  44. package/lib/cjs/default-tracking.d.ts.map +1 -0
  45. package/lib/cjs/default-tracking.js +108 -0
  46. package/lib/cjs/default-tracking.js.map +1 -0
  47. package/lib/cjs/det-notification.d.ts +1 -1
  48. package/lib/cjs/det-notification.d.ts.map +1 -1
  49. package/lib/cjs/det-notification.js.map +1 -1
  50. package/lib/cjs/gtm-snippet-index.js +3 -3
  51. package/lib/cjs/gtm-snippet-index.js.map +1 -1
  52. package/lib/cjs/index.d.ts +4 -4
  53. package/lib/cjs/index.d.ts.map +1 -1
  54. package/lib/cjs/plugins/context.d.ts +1 -1
  55. package/lib/cjs/plugins/context.d.ts.map +1 -1
  56. package/lib/cjs/plugins/context.js +1 -2
  57. package/lib/cjs/plugins/context.js.map +1 -1
  58. package/lib/cjs/plugins/file-download-tracking.d.ts +1 -1
  59. package/lib/cjs/plugins/file-download-tracking.d.ts.map +1 -1
  60. package/lib/cjs/plugins/file-download-tracking.js +2 -2
  61. package/lib/cjs/plugins/file-download-tracking.js.map +1 -1
  62. package/lib/cjs/plugins/form-interaction-tracking.d.ts +1 -1
  63. package/lib/cjs/plugins/form-interaction-tracking.d.ts.map +1 -1
  64. package/lib/cjs/plugins/form-interaction-tracking.js +2 -2
  65. package/lib/cjs/plugins/form-interaction-tracking.js.map +1 -1
  66. package/lib/cjs/plugins/network-connectivity-checker.d.ts +1 -1
  67. package/lib/cjs/plugins/network-connectivity-checker.d.ts.map +1 -1
  68. package/lib/cjs/plugins/network-connectivity-checker.js +2 -2
  69. package/lib/cjs/plugins/network-connectivity-checker.js.map +1 -1
  70. package/lib/cjs/snippet-index.js +3 -3
  71. package/lib/cjs/snippet-index.js.map +1 -1
  72. package/lib/cjs/storage/browser-storage.d.ts +1 -1
  73. package/lib/cjs/storage/browser-storage.d.ts.map +1 -1
  74. package/lib/cjs/storage/browser-storage.js.map +1 -1
  75. package/lib/cjs/storage/local-storage.d.ts +3 -3
  76. package/lib/cjs/storage/local-storage.d.ts.map +1 -1
  77. package/lib/cjs/storage/local-storage.js +2 -2
  78. package/lib/cjs/storage/local-storage.js.map +1 -1
  79. package/lib/cjs/storage/session-storage.js +2 -2
  80. package/lib/cjs/storage/session-storage.js.map +1 -1
  81. package/lib/cjs/transports/send-beacon.d.ts +1 -2
  82. package/lib/cjs/transports/send-beacon.d.ts.map +1 -1
  83. package/lib/cjs/transports/send-beacon.js +1 -2
  84. package/lib/cjs/transports/send-beacon.js.map +1 -1
  85. package/lib/cjs/transports/xhr.d.ts +1 -2
  86. package/lib/cjs/transports/xhr.d.ts.map +1 -1
  87. package/lib/cjs/transports/xhr.js.map +1 -1
  88. package/lib/cjs/utils/snippet-helper.d.ts +12 -1
  89. package/lib/cjs/utils/snippet-helper.d.ts.map +1 -1
  90. package/lib/cjs/utils/snippet-helper.js.map +1 -1
  91. package/lib/cjs/version.d.ts +1 -1
  92. package/lib/cjs/version.d.ts.map +1 -1
  93. package/lib/cjs/version.js +1 -1
  94. package/lib/cjs/version.js.map +1 -1
  95. package/lib/esm/attribution/campaign-parser.d.ts +8 -0
  96. package/lib/esm/attribution/campaign-parser.d.ts.map +1 -0
  97. package/lib/esm/attribution/campaign-parser.js +66 -0
  98. package/lib/esm/attribution/campaign-parser.js.map +1 -0
  99. package/lib/esm/attribution/campaign.d.ts +31 -0
  100. package/lib/esm/attribution/campaign.d.ts.map +1 -0
  101. package/lib/esm/attribution/campaign.js +2 -0
  102. package/lib/esm/attribution/campaign.js.map +1 -0
  103. package/lib/esm/attribution/constants.d.ts +22 -0
  104. package/lib/esm/attribution/constants.d.ts.map +1 -0
  105. package/lib/esm/attribution/constants.js +41 -0
  106. package/lib/esm/attribution/constants.js.map +1 -0
  107. package/lib/esm/attribution/helpers.d.ts +12 -0
  108. package/lib/esm/attribution/helpers.d.ts.map +1 -0
  109. package/lib/esm/attribution/helpers.js +70 -0
  110. package/lib/esm/attribution/helpers.js.map +1 -0
  111. package/lib/esm/attribution/web-attribution.d.ts +25 -0
  112. package/lib/esm/attribution/web-attribution.d.ts.map +1 -0
  113. package/lib/esm/attribution/web-attribution.js +70 -0
  114. package/lib/esm/attribution/web-attribution.js.map +1 -0
  115. package/lib/esm/browser-client-factory.d.ts +1 -1
  116. package/lib/esm/browser-client-factory.d.ts.map +1 -1
  117. package/lib/esm/browser-client-factory.js.map +1 -1
  118. package/lib/esm/browser-client.d.ts +7 -8
  119. package/lib/esm/browser-client.d.ts.map +1 -1
  120. package/lib/esm/browser-client.js +3 -3
  121. package/lib/esm/browser-client.js.map +1 -1
  122. package/lib/esm/config/joined-config.d.ts +6 -1
  123. package/lib/esm/config/joined-config.d.ts.map +1 -1
  124. package/lib/esm/config/joined-config.js.map +1 -1
  125. package/lib/esm/config.d.ts +1 -4
  126. package/lib/esm/config.d.ts.map +1 -1
  127. package/lib/esm/config.js +1 -3
  128. package/lib/esm/config.js.map +1 -1
  129. package/lib/esm/constants.d.ts +1 -1
  130. package/lib/esm/constants.d.ts.map +1 -1
  131. package/lib/esm/constants.js.map +1 -1
  132. package/lib/esm/cookie-migration/index.d.ts +1 -1
  133. package/lib/esm/cookie-migration/index.d.ts.map +1 -1
  134. package/lib/esm/cookie-migration/index.js +1 -1
  135. package/lib/esm/cookie-migration/index.js.map +1 -1
  136. package/lib/esm/default-tracking.d.ts +18 -0
  137. package/lib/esm/default-tracking.d.ts.map +1 -0
  138. package/lib/esm/default-tracking.js +96 -0
  139. package/lib/esm/default-tracking.js.map +1 -0
  140. package/lib/esm/det-notification.d.ts +1 -1
  141. package/lib/esm/det-notification.d.ts.map +1 -1
  142. package/lib/esm/det-notification.js.map +1 -1
  143. package/lib/esm/gtm-snippet-index.js +1 -1
  144. package/lib/esm/gtm-snippet-index.js.map +1 -1
  145. package/lib/esm/index.d.ts +4 -4
  146. package/lib/esm/index.d.ts.map +1 -1
  147. package/lib/esm/plugins/context.d.ts +1 -1
  148. package/lib/esm/plugins/context.d.ts.map +1 -1
  149. package/lib/esm/plugins/context.js +1 -2
  150. package/lib/esm/plugins/context.js.map +1 -1
  151. package/lib/esm/plugins/file-download-tracking.d.ts +1 -1
  152. package/lib/esm/plugins/file-download-tracking.d.ts.map +1 -1
  153. package/lib/esm/plugins/file-download-tracking.js +1 -1
  154. package/lib/esm/plugins/file-download-tracking.js.map +1 -1
  155. package/lib/esm/plugins/form-interaction-tracking.d.ts +1 -1
  156. package/lib/esm/plugins/form-interaction-tracking.d.ts.map +1 -1
  157. package/lib/esm/plugins/form-interaction-tracking.js +1 -1
  158. package/lib/esm/plugins/form-interaction-tracking.js.map +1 -1
  159. package/lib/esm/plugins/network-connectivity-checker.d.ts +1 -1
  160. package/lib/esm/plugins/network-connectivity-checker.d.ts.map +1 -1
  161. package/lib/esm/plugins/network-connectivity-checker.js +1 -1
  162. package/lib/esm/plugins/network-connectivity-checker.js.map +1 -1
  163. package/lib/esm/snippet-index.js +1 -1
  164. package/lib/esm/snippet-index.js.map +1 -1
  165. package/lib/esm/storage/browser-storage.d.ts +1 -1
  166. package/lib/esm/storage/browser-storage.d.ts.map +1 -1
  167. package/lib/esm/storage/browser-storage.js.map +1 -1
  168. package/lib/esm/storage/local-storage.d.ts +3 -3
  169. package/lib/esm/storage/local-storage.d.ts.map +1 -1
  170. package/lib/esm/storage/local-storage.js +1 -1
  171. package/lib/esm/storage/local-storage.js.map +1 -1
  172. package/lib/esm/storage/session-storage.js +1 -1
  173. package/lib/esm/storage/session-storage.js.map +1 -1
  174. package/lib/esm/transports/send-beacon.d.ts +1 -2
  175. package/lib/esm/transports/send-beacon.d.ts.map +1 -1
  176. package/lib/esm/transports/send-beacon.js +1 -2
  177. package/lib/esm/transports/send-beacon.js.map +1 -1
  178. package/lib/esm/transports/xhr.d.ts +1 -2
  179. package/lib/esm/transports/xhr.d.ts.map +1 -1
  180. package/lib/esm/transports/xhr.js.map +1 -1
  181. package/lib/esm/utils/snippet-helper.d.ts +12 -1
  182. package/lib/esm/utils/snippet-helper.d.ts.map +1 -1
  183. package/lib/esm/utils/snippet-helper.js.map +1 -1
  184. package/lib/esm/version.d.ts +1 -1
  185. package/lib/esm/version.d.ts.map +1 -1
  186. package/lib/esm/version.js +1 -1
  187. package/lib/esm/version.js.map +1 -1
  188. package/lib/scripts/amplitude-bookmarklet-snippet-min.js +1 -1
  189. package/lib/scripts/amplitude-bookmarklet.html +1 -1
  190. package/lib/scripts/amplitude-gtm-min.js +1 -1
  191. package/lib/scripts/amplitude-gtm-min.js.gz +0 -0
  192. package/lib/scripts/amplitude-gtm-min.js.map +1 -1
  193. package/lib/scripts/amplitude-gtm-snippet-min.js +1 -1
  194. package/lib/scripts/amplitude-min.js +1 -1
  195. package/lib/scripts/amplitude-min.js.gz +0 -0
  196. package/lib/scripts/amplitude-min.js.map +1 -1
  197. package/lib/scripts/amplitude-min.umd.js +1 -1
  198. package/lib/scripts/amplitude-min.umd.js.gz +0 -0
  199. package/lib/scripts/amplitude-snippet-instructions.html +1 -1
  200. package/lib/scripts/amplitude-snippet-min.js +1 -1
  201. package/lib/scripts/attribution/campaign-parser.d.ts +8 -0
  202. package/lib/scripts/attribution/campaign-parser.d.ts.map +1 -0
  203. package/lib/scripts/attribution/campaign.d.ts +31 -0
  204. package/lib/scripts/attribution/campaign.d.ts.map +1 -0
  205. package/lib/scripts/attribution/constants.d.ts +22 -0
  206. package/lib/scripts/attribution/constants.d.ts.map +1 -0
  207. package/lib/scripts/attribution/helpers.d.ts +12 -0
  208. package/lib/scripts/attribution/helpers.d.ts.map +1 -0
  209. package/lib/scripts/attribution/web-attribution.d.ts +25 -0
  210. package/lib/scripts/attribution/web-attribution.d.ts.map +1 -0
  211. package/lib/scripts/browser-client-factory.d.ts +1 -1
  212. package/lib/scripts/browser-client-factory.d.ts.map +1 -1
  213. package/lib/scripts/browser-client.d.ts +7 -8
  214. package/lib/scripts/browser-client.d.ts.map +1 -1
  215. package/lib/scripts/config/joined-config.d.ts +6 -1
  216. package/lib/scripts/config/joined-config.d.ts.map +1 -1
  217. package/lib/scripts/config.d.ts +1 -4
  218. package/lib/scripts/config.d.ts.map +1 -1
  219. package/lib/scripts/constants.d.ts +1 -1
  220. package/lib/scripts/constants.d.ts.map +1 -1
  221. package/lib/scripts/cookie-migration/index.d.ts +1 -1
  222. package/lib/scripts/cookie-migration/index.d.ts.map +1 -1
  223. package/lib/scripts/default-tracking.d.ts +18 -0
  224. package/lib/scripts/default-tracking.d.ts.map +1 -0
  225. package/lib/scripts/det-notification.d.ts +1 -1
  226. package/lib/scripts/det-notification.d.ts.map +1 -1
  227. package/lib/scripts/index.d.ts +4 -4
  228. package/lib/scripts/index.d.ts.map +1 -1
  229. package/lib/scripts/plugins/context.d.ts +1 -1
  230. package/lib/scripts/plugins/context.d.ts.map +1 -1
  231. package/lib/scripts/plugins/file-download-tracking.d.ts +1 -1
  232. package/lib/scripts/plugins/file-download-tracking.d.ts.map +1 -1
  233. package/lib/scripts/plugins/form-interaction-tracking.d.ts +1 -1
  234. package/lib/scripts/plugins/form-interaction-tracking.d.ts.map +1 -1
  235. package/lib/scripts/plugins/network-connectivity-checker.d.ts +1 -1
  236. package/lib/scripts/plugins/network-connectivity-checker.d.ts.map +1 -1
  237. package/lib/scripts/storage/browser-storage.d.ts +1 -1
  238. package/lib/scripts/storage/browser-storage.d.ts.map +1 -1
  239. package/lib/scripts/storage/local-storage.d.ts +3 -3
  240. package/lib/scripts/storage/local-storage.d.ts.map +1 -1
  241. package/lib/scripts/transports/send-beacon.d.ts +1 -2
  242. package/lib/scripts/transports/send-beacon.d.ts.map +1 -1
  243. package/lib/scripts/transports/xhr.d.ts +1 -2
  244. package/lib/scripts/transports/xhr.d.ts.map +1 -1
  245. package/lib/scripts/utils/snippet-helper.d.ts +12 -1
  246. package/lib/scripts/utils/snippet-helper.d.ts.map +1 -1
  247. package/lib/scripts/version.d.ts +1 -1
  248. package/lib/scripts/version.d.ts.map +1 -1
  249. package/package.json +5 -6
@@ -1 +1 @@
1
- {"version":3,"file":"browser-storage.js","sourceRoot":"","sources":["../../../src/storage/browser-storage.ts"],"names":[],"mappings":";;;;AAEA;IACE,wBAAoB,OAAiB;QAAjB,YAAO,GAAP,OAAO,CAAU;IAAG,CAAC;IAEnC,kCAAS,GAAf;;;;;;wBACE,wBAAwB;wBACxB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;4BAClB,sBAAO,KAAK,EAAC;wBACf,CAAC;wBAEK,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;wBAC5B,WAAW,GAAG,IAAI,cAAc,CAAS,IAAI,CAAC,OAAO,CAAC,CAAC;wBACvD,OAAO,GAAG,UAAU,CAAC;;;;wBAEzB,qBAAM,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,EAAA;;wBAAtC,SAAsC,CAAC;wBACzB,qBAAM,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAA;;wBAAtC,KAAK,GAAG,SAA8B;wBAC5C,sBAAO,KAAK,KAAK,MAAM,EAAC;;;wBAExB,0BAA0B;wBAC1B,sBAAO,KAAK,EAAC;4BAEb,qBAAM,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAA;;wBAAjC,SAAiC,CAAC;;;;;;KAErC;IAEK,4BAAG,GAAT,UAAU,GAAW;;;;;;;wBAEH,qBAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAA;;wBAA9B,KAAK,GAAG,SAAsB;wBACpC,IAAI,CAAC,KAAK,EAAE,CAAC;4BACX,sBAAO,SAAS,EAAC;wBACnB,CAAC;wBACD,+DAA+D;wBAC/D,sBAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAC;;;wBAEzB,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;wBACrE,sBAAO,SAAS,EAAC;;;;;KAEpB;IAEK,+BAAM,GAAZ,UAAa,GAAW;;;;gBACtB,sBAAO,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,OAAO,CAAC,GAAG,CAAC,KAAI,SAAS,EAAC;;;KAChD;IAEK,4BAAG,GAAT,UAAU,GAAW,EAAE,KAAQ;;;;gBAC7B,IAAI,CAAC;oBACH,MAAA,IAAI,CAAC,OAAO,0CAAE,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;gBACpD,CAAC;gBAAC,WAAM,CAAC;oBACP,EAAE;gBACJ,CAAC;;;;KACF;IAEK,+BAAM,GAAZ,UAAa,GAAW;;;;gBACtB,IAAI,CAAC;oBACH,MAAA,IAAI,CAAC,OAAO,0CAAE,UAAU,CAAC,GAAG,CAAC,CAAC;gBAChC,CAAC;gBAAC,WAAM,CAAC;oBACP,EAAE;gBACJ,CAAC;;;;KACF;IAEK,8BAAK,GAAX;;;;gBACE,IAAI,CAAC;oBACH,MAAA,IAAI,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;gBACxB,CAAC;gBAAC,WAAM,CAAC;oBACP,EAAE;gBACJ,CAAC;;;;KACF;IACH,qBAAC;AAAD,CAAC,AAjED,IAiEC;AAjEY,wCAAc","sourcesContent":["import { Storage as AmplitudeStorage } from '@amplitude/analytics-types';\n\nexport class BrowserStorage<T> implements AmplitudeStorage<T> {\n constructor(private storage?: Storage) {}\n\n async isEnabled(): Promise<boolean> {\n /* istanbul ignore if */\n if (!this.storage) {\n return false;\n }\n\n const random = String(Date.now());\n const testStorage = new BrowserStorage<string>(this.storage);\n const testKey = 'AMP_TEST';\n try {\n await testStorage.set(testKey, random);\n const value = await testStorage.get(testKey);\n return value === random;\n } catch {\n /* istanbul ignore next */\n return false;\n } finally {\n await testStorage.remove(testKey);\n }\n }\n\n async get(key: string): Promise<T | undefined> {\n try {\n const value = await this.getRaw(key);\n if (!value) {\n return undefined;\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return JSON.parse(value);\n } catch {\n console.error(`[Amplitude] Error: Could not get value from storage`);\n return undefined;\n }\n }\n\n async getRaw(key: string): Promise<string | undefined> {\n return this.storage?.getItem(key) || undefined;\n }\n\n async set(key: string, value: T): Promise<void> {\n try {\n this.storage?.setItem(key, JSON.stringify(value));\n } catch {\n //\n }\n }\n\n async remove(key: string): Promise<void> {\n try {\n this.storage?.removeItem(key);\n } catch {\n //\n }\n }\n\n async reset(): Promise<void> {\n try {\n this.storage?.clear();\n } catch {\n //\n }\n }\n}\n"]}
1
+ {"version":3,"file":"browser-storage.js","sourceRoot":"","sources":["../../../src/storage/browser-storage.ts"],"names":[],"mappings":";;;;AAEA;IACE,wBAAoB,OAAiB;QAAjB,YAAO,GAAP,OAAO,CAAU;IAAG,CAAC;IAEnC,kCAAS,GAAf;;;;;;wBACE,wBAAwB;wBACxB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;4BAClB,sBAAO,KAAK,EAAC;wBACf,CAAC;wBAEK,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;wBAC5B,WAAW,GAAG,IAAI,cAAc,CAAS,IAAI,CAAC,OAAO,CAAC,CAAC;wBACvD,OAAO,GAAG,UAAU,CAAC;;;;wBAEzB,qBAAM,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,EAAA;;wBAAtC,SAAsC,CAAC;wBACzB,qBAAM,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAA;;wBAAtC,KAAK,GAAG,SAA8B;wBAC5C,sBAAO,KAAK,KAAK,MAAM,EAAC;;;wBAExB,0BAA0B;wBAC1B,sBAAO,KAAK,EAAC;4BAEb,qBAAM,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAA;;wBAAjC,SAAiC,CAAC;;;;;;KAErC;IAEK,4BAAG,GAAT,UAAU,GAAW;;;;;;;wBAEH,qBAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAA;;wBAA9B,KAAK,GAAG,SAAsB;wBACpC,IAAI,CAAC,KAAK,EAAE,CAAC;4BACX,sBAAO,SAAS,EAAC;wBACnB,CAAC;wBACD,+DAA+D;wBAC/D,sBAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAC;;;wBAEzB,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;wBACrE,sBAAO,SAAS,EAAC;;;;;KAEpB;IAEK,+BAAM,GAAZ,UAAa,GAAW;;;;gBACtB,sBAAO,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,OAAO,CAAC,GAAG,CAAC,KAAI,SAAS,EAAC;;;KAChD;IAEK,4BAAG,GAAT,UAAU,GAAW,EAAE,KAAQ;;;;gBAC7B,IAAI,CAAC;oBACH,MAAA,IAAI,CAAC,OAAO,0CAAE,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;gBACpD,CAAC;gBAAC,WAAM,CAAC;oBACP,EAAE;gBACJ,CAAC;;;;KACF;IAEK,+BAAM,GAAZ,UAAa,GAAW;;;;gBACtB,IAAI,CAAC;oBACH,MAAA,IAAI,CAAC,OAAO,0CAAE,UAAU,CAAC,GAAG,CAAC,CAAC;gBAChC,CAAC;gBAAC,WAAM,CAAC;oBACP,EAAE;gBACJ,CAAC;;;;KACF;IAEK,8BAAK,GAAX;;;;gBACE,IAAI,CAAC;oBACH,MAAA,IAAI,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;gBACxB,CAAC;gBAAC,WAAM,CAAC;oBACP,EAAE;gBACJ,CAAC;;;;KACF;IACH,qBAAC;AAAD,CAAC,AAjED,IAiEC;AAjEY,wCAAc","sourcesContent":["import { Storage as AmplitudeStorage } from '@amplitude/analytics-core';\n\nexport class BrowserStorage<T> implements AmplitudeStorage<T> {\n constructor(private storage?: Storage) {}\n\n async isEnabled(): Promise<boolean> {\n /* istanbul ignore if */\n if (!this.storage) {\n return false;\n }\n\n const random = String(Date.now());\n const testStorage = new BrowserStorage<string>(this.storage);\n const testKey = 'AMP_TEST';\n try {\n await testStorage.set(testKey, random);\n const value = await testStorage.get(testKey);\n return value === random;\n } catch {\n /* istanbul ignore next */\n return false;\n } finally {\n await testStorage.remove(testKey);\n }\n }\n\n async get(key: string): Promise<T | undefined> {\n try {\n const value = await this.getRaw(key);\n if (!value) {\n return undefined;\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return JSON.parse(value);\n } catch {\n console.error(`[Amplitude] Error: Could not get value from storage`);\n return undefined;\n }\n }\n\n async getRaw(key: string): Promise<string | undefined> {\n return this.storage?.getItem(key) || undefined;\n }\n\n async set(key: string, value: T): Promise<void> {\n try {\n this.storage?.setItem(key, JSON.stringify(value));\n } catch {\n //\n }\n }\n\n async remove(key: string): Promise<void> {\n try {\n this.storage?.removeItem(key);\n } catch {\n //\n }\n }\n\n async reset(): Promise<void> {\n try {\n this.storage?.clear();\n } catch {\n //\n }\n }\n}\n"]}
@@ -1,10 +1,10 @@
1
+ import { ILogger } from '@amplitude/analytics-core';
1
2
  import { BrowserStorage } from './browser-storage';
2
- import { Logger } from '@amplitude/analytics-types';
3
3
  interface LocalStorageOptions {
4
- loggerProvider?: Logger;
4
+ loggerProvider?: ILogger;
5
5
  }
6
6
  export declare class LocalStorage<T> extends BrowserStorage<T> {
7
- loggerProvider?: Logger;
7
+ loggerProvider?: ILogger;
8
8
  constructor(config?: LocalStorageOptions);
9
9
  set(key: string, value: T): Promise<void>;
10
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"local-storage.d.ts","sourceRoot":"","sources":["../../../src/storage/local-storage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAIpD,UAAU,mBAAmB;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AACD,qBAAa,YAAY,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;IACpD,cAAc,CAAC,EAAE,MAAM,CAAC;gBAEZ,MAAM,CAAC,EAAE,mBAAmB;IAKlC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAWhD"}
1
+ {"version":3,"file":"local-storage.d.ts","sourceRoot":"","sources":["../../../src/storage/local-storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAInD,UAAU,mBAAmB;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AACD,qBAAa,YAAY,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;IACpD,cAAc,CAAC,EAAE,OAAO,CAAC;gBAEb,MAAM,CAAC,EAAE,mBAAmB;IAKlC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAWhD"}
@@ -2,14 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LocalStorage = void 0;
4
4
  var tslib_1 = require("tslib");
5
- var analytics_client_common_1 = require("@amplitude/analytics-client-common");
5
+ var analytics_core_1 = require("@amplitude/analytics-core");
6
6
  var browser_storage_1 = require("./browser-storage");
7
7
  var MAX_ARRAY_LENGTH = 1000;
8
8
  var LocalStorage = /** @class */ (function (_super) {
9
9
  tslib_1.__extends(LocalStorage, _super);
10
10
  function LocalStorage(config) {
11
11
  var _a;
12
- var _this = _super.call(this, (_a = (0, analytics_client_common_1.getGlobalScope)()) === null || _a === void 0 ? void 0 : _a.localStorage) || this;
12
+ var _this = _super.call(this, (_a = (0, analytics_core_1.getGlobalScope)()) === null || _a === void 0 ? void 0 : _a.localStorage) || this;
13
13
  _this.loggerProvider = config === null || config === void 0 ? void 0 : config.loggerProvider;
14
14
  return _this;
15
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"local-storage.js","sourceRoot":"","sources":["../../../src/storage/local-storage.ts"],"names":[],"mappings":";;;;AAAA,8EAAoE;AACpE,qDAAmD;AAGnD,IAAM,gBAAgB,GAAG,IAAI,CAAC;AAK9B;IAAqC,wCAAiB;IAGpD,sBAAY,MAA4B;;QACtC,YAAA,MAAK,YAAC,MAAA,IAAA,wCAAc,GAAE,0CAAE,YAAY,CAAC,SAAC;QACtC,KAAI,CAAC,cAAc,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,cAAc,CAAC;;IAC/C,CAAC;IAEK,0BAAG,GAAT,UAAU,GAAW,EAAE,KAAQ;;;;;;;6BACzB,CAAA,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,gBAAgB,CAAA,EAAvD,wBAAuD;wBACnD,kBAAkB,GAAG,KAAK,CAAC,MAAM,GAAG,gBAAgB,CAAC;wBAC3D,qBAAM,gBAAK,CAAC,GAAG,YAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAM,CAAC,EAAA;;wBAA3D,SAA2D,CAAC;wBAC5D,MAAA,IAAI,CAAC,cAAc,0CAAE,KAAK,CACxB,yBAAkB,kBAAkB,uDAA6C,gBAAgB,MAAG,CACrG,CAAC;;4BAEF,qBAAM,gBAAK,CAAC,GAAG,YAAC,GAAG,EAAE,KAAK,CAAC,EAAA;;wBAA3B,SAA2B,CAAC;;;;;;KAE/B;IACH,mBAAC;AAAD,CAAC,AAnBD,CAAqC,gCAAc,GAmBlD;AAnBY,oCAAY","sourcesContent":["import { getGlobalScope } from '@amplitude/analytics-client-common';\nimport { BrowserStorage } from './browser-storage';\nimport { Logger } from '@amplitude/analytics-types';\n\nconst MAX_ARRAY_LENGTH = 1000;\n\ninterface LocalStorageOptions {\n loggerProvider?: Logger;\n}\nexport class LocalStorage<T> extends BrowserStorage<T> {\n loggerProvider?: Logger;\n\n constructor(config?: LocalStorageOptions) {\n super(getGlobalScope()?.localStorage);\n this.loggerProvider = config?.loggerProvider;\n }\n\n async set(key: string, value: T): Promise<void> {\n if (Array.isArray(value) && value.length > MAX_ARRAY_LENGTH) {\n const droppedEventsCount = value.length - MAX_ARRAY_LENGTH;\n await super.set(key, value.slice(0, MAX_ARRAY_LENGTH) as T);\n this.loggerProvider?.error(\n `Failed to save ${droppedEventsCount} events because the queue length exceeded ${MAX_ARRAY_LENGTH}.`,\n );\n } else {\n await super.set(key, value);\n }\n }\n}\n"]}
1
+ {"version":3,"file":"local-storage.js","sourceRoot":"","sources":["../../../src/storage/local-storage.ts"],"names":[],"mappings":";;;;AAAA,4DAAoE;AACpE,qDAAmD;AAEnD,IAAM,gBAAgB,GAAG,IAAI,CAAC;AAK9B;IAAqC,wCAAiB;IAGpD,sBAAY,MAA4B;;QACtC,YAAA,MAAK,YAAC,MAAA,IAAA,+BAAc,GAAE,0CAAE,YAAY,CAAC,SAAC;QACtC,KAAI,CAAC,cAAc,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,cAAc,CAAC;;IAC/C,CAAC;IAEK,0BAAG,GAAT,UAAU,GAAW,EAAE,KAAQ;;;;;;;6BACzB,CAAA,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,gBAAgB,CAAA,EAAvD,wBAAuD;wBACnD,kBAAkB,GAAG,KAAK,CAAC,MAAM,GAAG,gBAAgB,CAAC;wBAC3D,qBAAM,gBAAK,CAAC,GAAG,YAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAM,CAAC,EAAA;;wBAA3D,SAA2D,CAAC;wBAC5D,MAAA,IAAI,CAAC,cAAc,0CAAE,KAAK,CACxB,yBAAkB,kBAAkB,uDAA6C,gBAAgB,MAAG,CACrG,CAAC;;4BAEF,qBAAM,gBAAK,CAAC,GAAG,YAAC,GAAG,EAAE,KAAK,CAAC,EAAA;;wBAA3B,SAA2B,CAAC;;;;;;KAE/B;IACH,mBAAC;AAAD,CAAC,AAnBD,CAAqC,gCAAc,GAmBlD;AAnBY,oCAAY","sourcesContent":["import { getGlobalScope, ILogger } from '@amplitude/analytics-core';\nimport { BrowserStorage } from './browser-storage';\n\nconst MAX_ARRAY_LENGTH = 1000;\n\ninterface LocalStorageOptions {\n loggerProvider?: ILogger;\n}\nexport class LocalStorage<T> extends BrowserStorage<T> {\n loggerProvider?: ILogger;\n\n constructor(config?: LocalStorageOptions) {\n super(getGlobalScope()?.localStorage);\n this.loggerProvider = config?.loggerProvider;\n }\n\n async set(key: string, value: T): Promise<void> {\n if (Array.isArray(value) && value.length > MAX_ARRAY_LENGTH) {\n const droppedEventsCount = value.length - MAX_ARRAY_LENGTH;\n await super.set(key, value.slice(0, MAX_ARRAY_LENGTH) as T);\n this.loggerProvider?.error(\n `Failed to save ${droppedEventsCount} events because the queue length exceeded ${MAX_ARRAY_LENGTH}.`,\n );\n } else {\n await super.set(key, value);\n }\n }\n}\n"]}
@@ -2,13 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SessionStorage = void 0;
4
4
  var tslib_1 = require("tslib");
5
- var analytics_client_common_1 = require("@amplitude/analytics-client-common");
5
+ var analytics_core_1 = require("@amplitude/analytics-core");
6
6
  var browser_storage_1 = require("./browser-storage");
7
7
  var SessionStorage = /** @class */ (function (_super) {
8
8
  tslib_1.__extends(SessionStorage, _super);
9
9
  function SessionStorage() {
10
10
  var _a;
11
- return _super.call(this, (_a = (0, analytics_client_common_1.getGlobalScope)()) === null || _a === void 0 ? void 0 : _a.sessionStorage) || this;
11
+ return _super.call(this, (_a = (0, analytics_core_1.getGlobalScope)()) === null || _a === void 0 ? void 0 : _a.sessionStorage) || this;
12
12
  }
13
13
  return SessionStorage;
14
14
  }(browser_storage_1.BrowserStorage));
@@ -1 +1 @@
1
- {"version":3,"file":"session-storage.js","sourceRoot":"","sources":["../../../src/storage/session-storage.ts"],"names":[],"mappings":";;;;AAAA,8EAAoE;AACpE,qDAAmD;AAEnD;IAAuC,0CAAiB;IACtD;;QACE,OAAA,MAAK,YAAC,MAAA,IAAA,wCAAc,GAAE,0CAAE,cAAc,CAAC,SAAC;IAC1C,CAAC;IACH,qBAAC;AAAD,CAAC,AAJD,CAAuC,gCAAc,GAIpD;AAJY,wCAAc","sourcesContent":["import { getGlobalScope } from '@amplitude/analytics-client-common';\nimport { BrowserStorage } from './browser-storage';\n\nexport class SessionStorage<T> extends BrowserStorage<T> {\n constructor() {\n super(getGlobalScope()?.sessionStorage);\n }\n}\n"]}
1
+ {"version":3,"file":"session-storage.js","sourceRoot":"","sources":["../../../src/storage/session-storage.ts"],"names":[],"mappings":";;;;AAAA,4DAA2D;AAC3D,qDAAmD;AAEnD;IAAuC,0CAAiB;IACtD;;QACE,OAAA,MAAK,YAAC,MAAA,IAAA,+BAAc,GAAE,0CAAE,cAAc,CAAC,SAAC;IAC1C,CAAC;IACH,qBAAC;AAAD,CAAC,AAJD,CAAuC,gCAAc,GAIpD;AAJY,wCAAc","sourcesContent":["import { getGlobalScope } from '@amplitude/analytics-core';\nimport { BrowserStorage } from './browser-storage';\n\nexport class SessionStorage<T> extends BrowserStorage<T> {\n constructor() {\n super(getGlobalScope()?.sessionStorage);\n }\n}\n"]}
@@ -1,5 +1,4 @@
1
- import { BaseTransport } from '@amplitude/analytics-core';
2
- import { Payload, Response, Transport } from '@amplitude/analytics-types';
1
+ import { BaseTransport, Payload, Response, Transport } from '@amplitude/analytics-core';
3
2
  export declare class SendBeaconTransport extends BaseTransport implements Transport {
4
3
  send(serverUrl: string, payload: Payload): Promise<Response | null>;
5
4
  }
@@ -1 +1 @@
1
- {"version":3,"file":"send-beacon.d.ts","sourceRoot":"","sources":["../../../src/transports/send-beacon.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAE1E,qBAAa,mBAAoB,SAAQ,aAAc,YAAW,SAAS;IACnE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;CA0B1E"}
1
+ {"version":3,"file":"send-beacon.d.ts","sourceRoot":"","sources":["../../../src/transports/send-beacon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAkB,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAExG,qBAAa,mBAAoB,SAAQ,aAAc,YAAW,SAAS;IACnE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;CA0B1E"}
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SendBeaconTransport = void 0;
4
4
  var tslib_1 = require("tslib");
5
- var analytics_client_common_1 = require("@amplitude/analytics-client-common");
6
5
  var analytics_core_1 = require("@amplitude/analytics-core");
7
6
  var SendBeaconTransport = /** @class */ (function (_super) {
8
7
  tslib_1.__extends(SendBeaconTransport, _super);
@@ -14,7 +13,7 @@ var SendBeaconTransport = /** @class */ (function (_super) {
14
13
  var _this = this;
15
14
  return tslib_1.__generator(this, function (_a) {
16
15
  return [2 /*return*/, new Promise(function (resolve, reject) {
17
- var globalScope = (0, analytics_client_common_1.getGlobalScope)();
16
+ var globalScope = (0, analytics_core_1.getGlobalScope)();
18
17
  /* istanbul ignore if */
19
18
  if (!(globalScope === null || globalScope === void 0 ? void 0 : globalScope.navigator.sendBeacon)) {
20
19
  throw new Error('SendBeaconTransport is not supported');
@@ -1 +1 @@
1
- {"version":3,"file":"send-beacon.js","sourceRoot":"","sources":["../../../src/transports/send-beacon.ts"],"names":[],"mappings":";;;;AAAA,8EAAoE;AACpE,4DAA0D;AAG1D;IAAyC,+CAAa;IAAtD;;IA2BA,CAAC;IA1BO,kCAAI,GAAV,UAAW,SAAiB,EAAE,OAAgB;;;;gBAC5C,sBAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;wBACjC,IAAM,WAAW,GAAG,IAAA,wCAAc,GAAE,CAAC;wBACrC,wBAAwB;wBACxB,IAAI,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,SAAS,CAAC,UAAU,CAAA,EAAE,CAAC;4BACvC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;wBAC1D,CAAC;wBACD,IAAI,CAAC;4BACH,IAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;4BACrC,IAAM,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;4BACrF,IAAI,OAAO,EAAE,CAAC;gCACZ,OAAO,OAAO,CACZ,KAAI,CAAC,aAAa,CAAC;oCACjB,IAAI,EAAE,GAAG;oCACT,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM;oCACtC,kBAAkB,EAAE,IAAI,CAAC,MAAM;oCAC/B,kBAAkB,EAAE,IAAI,CAAC,GAAG,EAAE;iCAC/B,CAAC,CACH,CAAC;4BACJ,CAAC;4BACD,OAAO,OAAO,CAAC,KAAI,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;wBACpD,CAAC;wBAAC,OAAO,CAAC,EAAE,CAAC;4BACX,MAAM,CAAC,CAAC,CAAC,CAAC;wBACZ,CAAC;oBACH,CAAC,CAAC,EAAC;;;KACJ;IACH,0BAAC;AAAD,CAAC,AA3BD,CAAyC,8BAAa,GA2BrD;AA3BY,kDAAmB","sourcesContent":["import { getGlobalScope } from '@amplitude/analytics-client-common';\nimport { BaseTransport } from '@amplitude/analytics-core';\nimport { Payload, Response, Transport } from '@amplitude/analytics-types';\n\nexport class SendBeaconTransport extends BaseTransport implements Transport {\n async send(serverUrl: string, payload: Payload): Promise<Response | null> {\n return new Promise((resolve, reject) => {\n const globalScope = getGlobalScope();\n /* istanbul ignore if */\n if (!globalScope?.navigator.sendBeacon) {\n throw new Error('SendBeaconTransport is not supported');\n }\n try {\n const data = JSON.stringify(payload);\n const success = globalScope.navigator.sendBeacon(serverUrl, JSON.stringify(payload));\n if (success) {\n return resolve(\n this.buildResponse({\n code: 200,\n events_ingested: payload.events.length,\n payload_size_bytes: data.length,\n server_upload_time: Date.now(),\n }),\n );\n }\n return resolve(this.buildResponse({ code: 500 }));\n } catch (e) {\n reject(e);\n }\n });\n }\n}\n"]}
1
+ {"version":3,"file":"send-beacon.js","sourceRoot":"","sources":["../../../src/transports/send-beacon.ts"],"names":[],"mappings":";;;;AAAA,4DAAwG;AAExG;IAAyC,+CAAa;IAAtD;;IA2BA,CAAC;IA1BO,kCAAI,GAAV,UAAW,SAAiB,EAAE,OAAgB;;;;gBAC5C,sBAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;wBACjC,IAAM,WAAW,GAAG,IAAA,+BAAc,GAAE,CAAC;wBACrC,wBAAwB;wBACxB,IAAI,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,SAAS,CAAC,UAAU,CAAA,EAAE,CAAC;4BACvC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;wBAC1D,CAAC;wBACD,IAAI,CAAC;4BACH,IAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;4BACrC,IAAM,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;4BACrF,IAAI,OAAO,EAAE,CAAC;gCACZ,OAAO,OAAO,CACZ,KAAI,CAAC,aAAa,CAAC;oCACjB,IAAI,EAAE,GAAG;oCACT,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM;oCACtC,kBAAkB,EAAE,IAAI,CAAC,MAAM;oCAC/B,kBAAkB,EAAE,IAAI,CAAC,GAAG,EAAE;iCAC/B,CAAC,CACH,CAAC;4BACJ,CAAC;4BACD,OAAO,OAAO,CAAC,KAAI,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;wBACpD,CAAC;wBAAC,OAAO,CAAC,EAAE,CAAC;4BACX,MAAM,CAAC,CAAC,CAAC,CAAC;wBACZ,CAAC;oBACH,CAAC,CAAC,EAAC;;;KACJ;IACH,0BAAC;AAAD,CAAC,AA3BD,CAAyC,8BAAa,GA2BrD;AA3BY,kDAAmB","sourcesContent":["import { BaseTransport, getGlobalScope, Payload, Response, Transport } from '@amplitude/analytics-core';\n\nexport class SendBeaconTransport extends BaseTransport implements Transport {\n async send(serverUrl: string, payload: Payload): Promise<Response | null> {\n return new Promise((resolve, reject) => {\n const globalScope = getGlobalScope();\n /* istanbul ignore if */\n if (!globalScope?.navigator.sendBeacon) {\n throw new Error('SendBeaconTransport is not supported');\n }\n try {\n const data = JSON.stringify(payload);\n const success = globalScope.navigator.sendBeacon(serverUrl, JSON.stringify(payload));\n if (success) {\n return resolve(\n this.buildResponse({\n code: 200,\n events_ingested: payload.events.length,\n payload_size_bytes: data.length,\n server_upload_time: Date.now(),\n }),\n );\n }\n return resolve(this.buildResponse({ code: 500 }));\n } catch (e) {\n reject(e);\n }\n });\n }\n}\n"]}
@@ -1,5 +1,4 @@
1
- import { BaseTransport } from '@amplitude/analytics-core';
2
- import { Payload, Response, Transport } from '@amplitude/analytics-types';
1
+ import { BaseTransport, Payload, Response, Transport } from '@amplitude/analytics-core';
3
2
  export declare class XHRTransport extends BaseTransport implements Transport {
4
3
  private state;
5
4
  send(serverUrl: string, payload: Payload): Promise<Response | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"xhr.d.ts","sourceRoot":"","sources":["../../../src/transports/xhr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAE1E,qBAAa,YAAa,SAAQ,aAAc,YAAW,SAAS;IAClE,OAAO,CAAC,KAAK,CAEX;IAEI,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;CAyB1E"}
1
+ {"version":3,"file":"xhr.d.ts","sourceRoot":"","sources":["../../../src/transports/xhr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAExF,qBAAa,YAAa,SAAQ,aAAc,YAAW,SAAS;IAClE,OAAO,CAAC,KAAK,CAEX;IAEI,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;CAyB1E"}
@@ -1 +1 @@
1
- {"version":3,"file":"xhr.js","sourceRoot":"","sources":["../../../src/transports/xhr.ts"],"names":[],"mappings":";;;;AAAA,4DAA0D;AAG1D;IAAkC,wCAAa;IAA/C;;QACU,WAAK,GAAG;YACd,IAAI,EAAE,CAAC;SACR,CAAC;;IA2BJ,CAAC;IAzBO,2BAAI,GAAV,UAAW,SAAiB,EAAE,OAAgB;;;;gBAC5C,sBAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;wBACjC,wBAAwB;wBACxB,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE,CAAC;4BAC1C,MAAM,CAAC,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC;wBACtD,CAAC;wBAED,IAAM,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;wBACjC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;wBAClC,GAAG,CAAC,kBAAkB,GAAG;4BACvB,IAAI,GAAG,CAAC,UAAU,KAAK,KAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gCACvC,IAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;gCACtC,IAAI,CAAC;oCACH,iEAAiE;oCACjE,OAAO,CAAC,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gCACxD,CAAC;gCAAC,WAAM,CAAC;oCACP,OAAO,CAAC,KAAI,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gCACpD,CAAC;4BACH,CAAC;wBACH,CAAC,CAAC;wBACF,GAAG,CAAC,gBAAgB,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;wBACzD,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;wBACtC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;oBACpC,CAAC,CAAC,EAAC;;;KACJ;IACH,mBAAC;AAAD,CAAC,AA9BD,CAAkC,8BAAa,GA8B9C;AA9BY,oCAAY","sourcesContent":["import { BaseTransport } from '@amplitude/analytics-core';\nimport { Payload, Response, Transport } from '@amplitude/analytics-types';\n\nexport class XHRTransport extends BaseTransport implements Transport {\n private state = {\n done: 4,\n };\n\n async send(serverUrl: string, payload: Payload): Promise<Response | null> {\n return new Promise((resolve, reject) => {\n /* istanbul ignore if */\n if (typeof XMLHttpRequest === 'undefined') {\n reject(new Error('XHRTransport is not supported.'));\n }\n\n const xhr = new XMLHttpRequest();\n xhr.open('POST', serverUrl, true);\n xhr.onreadystatechange = () => {\n if (xhr.readyState === this.state.done) {\n const responseText = xhr.responseText;\n try {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n resolve(this.buildResponse(JSON.parse(responseText)));\n } catch {\n resolve(this.buildResponse({ code: xhr.status }));\n }\n }\n };\n xhr.setRequestHeader('Content-Type', 'application/json');\n xhr.setRequestHeader('Accept', '*/*');\n xhr.send(JSON.stringify(payload));\n });\n }\n}\n"]}
1
+ {"version":3,"file":"xhr.js","sourceRoot":"","sources":["../../../src/transports/xhr.ts"],"names":[],"mappings":";;;;AAAA,4DAAwF;AAExF;IAAkC,wCAAa;IAA/C;;QACU,WAAK,GAAG;YACd,IAAI,EAAE,CAAC;SACR,CAAC;;IA2BJ,CAAC;IAzBO,2BAAI,GAAV,UAAW,SAAiB,EAAE,OAAgB;;;;gBAC5C,sBAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;wBACjC,wBAAwB;wBACxB,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE,CAAC;4BAC1C,MAAM,CAAC,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC;wBACtD,CAAC;wBAED,IAAM,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;wBACjC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;wBAClC,GAAG,CAAC,kBAAkB,GAAG;4BACvB,IAAI,GAAG,CAAC,UAAU,KAAK,KAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gCACvC,IAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;gCACtC,IAAI,CAAC;oCACH,iEAAiE;oCACjE,OAAO,CAAC,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gCACxD,CAAC;gCAAC,WAAM,CAAC;oCACP,OAAO,CAAC,KAAI,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gCACpD,CAAC;4BACH,CAAC;wBACH,CAAC,CAAC;wBACF,GAAG,CAAC,gBAAgB,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;wBACzD,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;wBACtC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;oBACpC,CAAC,CAAC,EAAC;;;KACJ;IACH,mBAAC;AAAD,CAAC,AA9BD,CAAkC,8BAAa,GA8B9C;AA9BY,oCAAY","sourcesContent":["import { BaseTransport, Payload, Response, Transport } from '@amplitude/analytics-core';\n\nexport class XHRTransport extends BaseTransport implements Transport {\n private state = {\n done: 4,\n };\n\n async send(serverUrl: string, payload: Payload): Promise<Response | null> {\n return new Promise((resolve, reject) => {\n /* istanbul ignore if */\n if (typeof XMLHttpRequest === 'undefined') {\n reject(new Error('XHRTransport is not supported.'));\n }\n\n const xhr = new XMLHttpRequest();\n xhr.open('POST', serverUrl, true);\n xhr.onreadystatechange = () => {\n if (xhr.readyState === this.state.done) {\n const responseText = xhr.responseText;\n try {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n resolve(this.buildResponse(JSON.parse(responseText)));\n } catch {\n resolve(this.buildResponse({ code: xhr.status }));\n }\n }\n };\n xhr.setRequestHeader('Content-Type', 'application/json');\n xhr.setRequestHeader('Accept', '*/*');\n xhr.send(JSON.stringify(payload));\n });\n }\n}\n"]}
@@ -1,4 +1,14 @@
1
- import { InstanceProxy, QueueProxy } from '@amplitude/analytics-types';
1
+ import { Result } from '@amplitude/analytics-core';
2
+ interface ProxyItem {
3
+ name: string;
4
+ args: any[];
5
+ resolve?: (promise: Promise<Result>) => void;
6
+ }
7
+ type QueueProxy = Array<ProxyItem>;
8
+ interface InstanceProxy {
9
+ _q: QueueProxy;
10
+ _iq: Record<string, InstanceProxy>;
11
+ }
2
12
  /**
3
13
  * Applies the proxied functions on the proxied amplitude snippet to an instance of the real object.
4
14
  * @ignore
@@ -13,4 +23,5 @@ export declare const convertProxyObjectToRealObject: <T>(instance: T, queue: Que
13
23
  * Check if the param is snippet proxy
14
24
  */
15
25
  export declare const isInstanceProxy: (instance: unknown) => instance is InstanceProxy;
26
+ export {};
16
27
  //# sourceMappingURL=snippet-helper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"snippet-helper.d.ts","sourceRoot":"","sources":["../../../src/utils/snippet-helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,aAAa,EAAE,UAAU,EAAU,MAAM,4BAA4B,CAAC;AAEhG;;;GAGG;AACH,eAAO,MAAM,kBAAkB,aAAc,MAAM,SAAS,UAAU,SAErE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,8BAA8B,GAAI,CAAC,YAAY,CAAC,SAAS,UAAU,KAAG,CAYlF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,aAAc,OAAO,KAAG,QAAQ,IAAI,aAG/D,CAAC"}
1
+ {"version":3,"file":"snippet-helper.d.ts","sourceRoot":"","sources":["../../../src/utils/snippet-helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAmB,MAAM,2BAA2B,CAAC;AAEpE,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;CAC9C;AAED,KAAK,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;AAEnC,UAAU,aAAa;IACrB,EAAE,EAAE,UAAU,CAAC;IACf,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACpC;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,aAAc,MAAM,SAAS,UAAU,SAErE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,8BAA8B,GAAI,CAAC,YAAY,CAAC,SAAS,UAAU,KAAG,CAYlF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,aAAc,OAAO,KAAG,QAAQ,IAAI,aAG/D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"snippet-helper.js","sourceRoot":"","sources":["../../../src/utils/snippet-helper.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACI,IAAM,kBAAkB,GAAG,UAAC,QAAgB,EAAE,KAAiB;IACpE,IAAA,sCAA8B,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAClD,CAAC,CAAC;AAFW,QAAA,kBAAkB,sBAE7B;AAEF;;;GAGG;AACI,IAAM,8BAA8B,GAAG,UAAI,QAAW,EAAE,KAAiB;IAC9E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,IAAA,KAA0B,KAAK,CAAC,CAAC,CAAC,EAAhC,MAAI,UAAA,EAAE,IAAI,UAAA,EAAE,OAAO,aAAa,CAAC;QACzC,IAAM,EAAE,GAAG,QAAQ,IAAI,QAAQ,CAAC,MAAe,CAAC,CAAC;QACjD,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;YAC7B,IAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAA4B,CAAC;YACnE,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;gBAClC,OAAO,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAZW,QAAA,8BAA8B,kCAYzC;AAEF;;GAEG;AACI,IAAM,eAAe,GAAG,UAAC,QAAiB;IAC/C,IAAM,aAAa,GAAG,QAAyB,CAAC;IAChD,OAAO,aAAa,IAAI,aAAa,CAAC,EAAE,KAAK,SAAS,CAAC;AACzD,CAAC,CAAC;AAHW,QAAA,eAAe,mBAG1B","sourcesContent":["import { AmplitudeReturn, InstanceProxy, QueueProxy, Result } from '@amplitude/analytics-types';\n\n/**\n * Applies the proxied functions on the proxied amplitude snippet to an instance of the real object.\n * @ignore\n */\nexport const runQueuedFunctions = (instance: object, queue: QueueProxy) => {\n convertProxyObjectToRealObject(instance, queue);\n};\n\n/**\n * Applies the proxied functions on the proxied object to an instance of the real object.\n * Used to convert proxied Identify and Revenue objects.\n */\nexport const convertProxyObjectToRealObject = <T>(instance: T, queue: QueueProxy): T => {\n for (let i = 0; i < queue.length; i++) {\n const { name, args, resolve } = queue[i];\n const fn = instance && instance[name as keyof T];\n if (typeof fn === 'function') {\n const result = fn.apply(instance, args) as AmplitudeReturn<Result>;\n if (typeof resolve === 'function') {\n resolve(result?.promise);\n }\n }\n }\n return instance;\n};\n\n/**\n * Check if the param is snippet proxy\n */\nexport const isInstanceProxy = (instance: unknown): instance is InstanceProxy => {\n const instanceProxy = instance as InstanceProxy;\n return instanceProxy && instanceProxy._q !== undefined;\n};\n"]}
1
+ {"version":3,"file":"snippet-helper.js","sourceRoot":"","sources":["../../../src/utils/snippet-helper.ts"],"names":[],"mappings":";;;AAeA;;;GAGG;AACI,IAAM,kBAAkB,GAAG,UAAC,QAAgB,EAAE,KAAiB;IACpE,IAAA,sCAA8B,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAClD,CAAC,CAAC;AAFW,QAAA,kBAAkB,sBAE7B;AAEF;;;GAGG;AACI,IAAM,8BAA8B,GAAG,UAAI,QAAW,EAAE,KAAiB;IAC9E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,IAAA,KAA0B,KAAK,CAAC,CAAC,CAAC,EAAhC,MAAI,UAAA,EAAE,IAAI,UAAA,EAAE,OAAO,aAAa,CAAC;QACzC,IAAM,EAAE,GAAG,QAAQ,IAAI,QAAQ,CAAC,MAAe,CAAC,CAAC;QACjD,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;YAC7B,IAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAA4B,CAAC;YACnE,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;gBAClC,OAAO,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAZW,QAAA,8BAA8B,kCAYzC;AAEF;;GAEG;AACI,IAAM,eAAe,GAAG,UAAC,QAAiB;IAC/C,IAAM,aAAa,GAAG,QAAyB,CAAC;IAChD,OAAO,aAAa,IAAI,aAAa,CAAC,EAAE,KAAK,SAAS,CAAC;AACzD,CAAC,CAAC;AAHW,QAAA,eAAe,mBAG1B","sourcesContent":["import { Result, AmplitudeReturn } from '@amplitude/analytics-core';\n\ninterface ProxyItem {\n name: string;\n args: any[];\n resolve?: (promise: Promise<Result>) => void;\n}\n\ntype QueueProxy = Array<ProxyItem>;\n\ninterface InstanceProxy {\n _q: QueueProxy;\n _iq: Record<string, InstanceProxy>;\n}\n\n/**\n * Applies the proxied functions on the proxied amplitude snippet to an instance of the real object.\n * @ignore\n */\nexport const runQueuedFunctions = (instance: object, queue: QueueProxy) => {\n convertProxyObjectToRealObject(instance, queue);\n};\n\n/**\n * Applies the proxied functions on the proxied object to an instance of the real object.\n * Used to convert proxied Identify and Revenue objects.\n */\nexport const convertProxyObjectToRealObject = <T>(instance: T, queue: QueueProxy): T => {\n for (let i = 0; i < queue.length; i++) {\n const { name, args, resolve } = queue[i];\n const fn = instance && instance[name as keyof T];\n if (typeof fn === 'function') {\n const result = fn.apply(instance, args) as AmplitudeReturn<Result>;\n if (typeof resolve === 'function') {\n resolve(result?.promise);\n }\n }\n }\n return instance;\n};\n\n/**\n * Check if the param is snippet proxy\n */\nexport const isInstanceProxy = (instance: unknown): instance is InstanceProxy => {\n const instanceProxy = instance as InstanceProxy;\n return instanceProxy && instanceProxy._q !== undefined;\n};\n"]}
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "2.11.13";
1
+ export declare const VERSION = "2.12.0";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,YAAY,CAAC"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,WAAW,CAAC"}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
- exports.VERSION = '2.11.13';
4
+ exports.VERSION = '2.12.0';
5
5
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";;;AAAa,QAAA,OAAO,GAAG,SAAS,CAAC","sourcesContent":["export const VERSION = '2.11.13';\n"]}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";;;AAAa,QAAA,OAAO,GAAG,QAAQ,CAAC","sourcesContent":["export const VERSION = '2.12.0';\n"]}
@@ -0,0 +1,8 @@
1
+ import { Campaign, CampaignParser as ICampaignParser, ClickIdParameters, ReferrerParameters, UTMParameters } from './campaign';
2
+ export declare class CampaignParser implements ICampaignParser {
3
+ parse(): Promise<Campaign>;
4
+ getUtmParam(): UTMParameters;
5
+ getReferrer(): ReferrerParameters;
6
+ getClickIds(): ClickIdParameters;
7
+ }
8
+ //# sourceMappingURL=campaign-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"campaign-parser.d.ts","sourceRoot":"","sources":["../../../src/attribution/campaign-parser.ts"],"names":[],"mappings":"AAqBA,OAAO,EACL,QAAQ,EACR,cAAc,IAAI,eAAe,EACjC,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,qBAAa,cAAe,YAAW,eAAe;IAC9C,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC;IAShC,WAAW,IAAI,aAAa;IAoB5B,WAAW,IAAI,kBAAkB;IAcjC,WAAW,IAAI,iBAAiB;CAgBjC"}
@@ -0,0 +1,66 @@
1
+ import { __assign, __awaiter, __generator } from "tslib";
2
+ import { getQueryParams } from '@amplitude/analytics-core';
3
+ import { UTM_CAMPAIGN, UTM_CONTENT, UTM_MEDIUM, UTM_SOURCE, UTM_TERM, GCLID, FBCLID, BASE_CAMPAIGN, DCLID, MSCLKID, RDT_CID, TWCLID, TTCLID, KO_CLICK_ID, LI_FAT_ID, GBRAID, WBRAID, UTM_ID, } from './constants';
4
+ var CampaignParser = /** @class */ (function () {
5
+ function CampaignParser() {
6
+ }
7
+ CampaignParser.prototype.parse = function () {
8
+ return __awaiter(this, void 0, void 0, function () {
9
+ return __generator(this, function (_a) {
10
+ return [2 /*return*/, __assign(__assign(__assign(__assign({}, BASE_CAMPAIGN), this.getUtmParam()), this.getReferrer()), this.getClickIds())];
11
+ });
12
+ });
13
+ };
14
+ CampaignParser.prototype.getUtmParam = function () {
15
+ var params = getQueryParams();
16
+ var utmCampaign = params[UTM_CAMPAIGN];
17
+ var utmContent = params[UTM_CONTENT];
18
+ var utmId = params[UTM_ID];
19
+ var utmMedium = params[UTM_MEDIUM];
20
+ var utmSource = params[UTM_SOURCE];
21
+ var utmTerm = params[UTM_TERM];
22
+ return {
23
+ utm_campaign: utmCampaign,
24
+ utm_content: utmContent,
25
+ utm_id: utmId,
26
+ utm_medium: utmMedium,
27
+ utm_source: utmSource,
28
+ utm_term: utmTerm,
29
+ };
30
+ };
31
+ CampaignParser.prototype.getReferrer = function () {
32
+ var _a, _b;
33
+ var data = {
34
+ referrer: undefined,
35
+ referring_domain: undefined,
36
+ };
37
+ try {
38
+ data.referrer = document.referrer || undefined;
39
+ data.referring_domain = (_b = (_a = data.referrer) === null || _a === void 0 ? void 0 : _a.split('/')[2]) !== null && _b !== void 0 ? _b : undefined;
40
+ }
41
+ catch (_c) {
42
+ // nothing to track
43
+ }
44
+ return data;
45
+ };
46
+ CampaignParser.prototype.getClickIds = function () {
47
+ var _a;
48
+ var params = getQueryParams();
49
+ return _a = {},
50
+ _a[DCLID] = params[DCLID],
51
+ _a[FBCLID] = params[FBCLID],
52
+ _a[GBRAID] = params[GBRAID],
53
+ _a[GCLID] = params[GCLID],
54
+ _a[KO_CLICK_ID] = params[KO_CLICK_ID],
55
+ _a[LI_FAT_ID] = params[LI_FAT_ID],
56
+ _a[MSCLKID] = params[MSCLKID],
57
+ _a[RDT_CID] = params[RDT_CID],
58
+ _a[TTCLID] = params[TTCLID],
59
+ _a[TWCLID] = params[TWCLID],
60
+ _a[WBRAID] = params[WBRAID],
61
+ _a;
62
+ };
63
+ return CampaignParser;
64
+ }());
65
+ export { CampaignParser };
66
+ //# sourceMappingURL=campaign-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"campaign-parser.js","sourceRoot":"","sources":["../../../src/attribution/campaign-parser.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EACL,YAAY,EACZ,WAAW,EACX,UAAU,EACV,UAAU,EACV,QAAQ,EACR,KAAK,EACL,MAAM,EACN,aAAa,EACb,KAAK,EACL,OAAO,EACP,OAAO,EACP,MAAM,EACN,MAAM,EACN,WAAW,EACX,SAAS,EACT,MAAM,EACN,MAAM,EACN,MAAM,GACP,MAAM,aAAa,CAAC;AASrB;IAAA;IA4DA,CAAC;IA3DO,8BAAK,GAAX;;;gBACE,sBAAO,wCACF,aAAa,GACb,IAAI,CAAC,WAAW,EAAE,GAClB,IAAI,CAAC,WAAW,EAAE,GAClB,IAAI,CAAC,WAAW,EAAE,CACV,EAAC;;;KACf;IAED,oCAAW,GAAX;QACE,IAAM,MAAM,GAAG,cAAc,EAAE,CAAC;QAEhC,IAAM,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;QACzC,IAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QACvC,IAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QACrC,IAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QACrC,IAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEjC,OAAO;YACL,YAAY,EAAE,WAAW;YACzB,WAAW,EAAE,UAAU;YACvB,MAAM,EAAE,KAAK;YACb,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,OAAO;SAClB,CAAC;IACJ,CAAC;IAED,oCAAW,GAAX;;QACE,IAAM,IAAI,GAAuB;YAC/B,QAAQ,EAAE,SAAS;YACnB,gBAAgB,EAAE,SAAS;SAC5B,CAAC;QACF,IAAI,CAAC;YACH,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,SAAS,CAAC;YAC/C,IAAI,CAAC,gBAAgB,GAAG,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,mCAAI,SAAS,CAAC;QACpE,CAAC;QAAC,WAAM,CAAC;YACP,mBAAmB;QACrB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oCAAW,GAAX;;QACE,IAAM,MAAM,GAAG,cAAc,EAAE,CAAC;QAChC;YACE,GAAC,KAAK,IAAG,MAAM,CAAC,KAAK,CAAC;YACtB,GAAC,MAAM,IAAG,MAAM,CAAC,MAAM,CAAC;YACxB,GAAC,MAAM,IAAG,MAAM,CAAC,MAAM,CAAC;YACxB,GAAC,KAAK,IAAG,MAAM,CAAC,KAAK,CAAC;YACtB,GAAC,WAAW,IAAG,MAAM,CAAC,WAAW,CAAC;YAClC,GAAC,SAAS,IAAG,MAAM,CAAC,SAAS,CAAC;YAC9B,GAAC,OAAO,IAAG,MAAM,CAAC,OAAO,CAAC;YAC1B,GAAC,OAAO,IAAG,MAAM,CAAC,OAAO,CAAC;YAC1B,GAAC,MAAM,IAAG,MAAM,CAAC,MAAM,CAAC;YACxB,GAAC,MAAM,IAAG,MAAM,CAAC,MAAM,CAAC;YACxB,GAAC,MAAM,IAAG,MAAM,CAAC,MAAM,CAAC;eACxB;IACJ,CAAC;IACH,qBAAC;AAAD,CAAC,AA5DD,IA4DC","sourcesContent":["import { getQueryParams } from '@amplitude/analytics-core';\nimport {\n UTM_CAMPAIGN,\n UTM_CONTENT,\n UTM_MEDIUM,\n UTM_SOURCE,\n UTM_TERM,\n GCLID,\n FBCLID,\n BASE_CAMPAIGN,\n DCLID,\n MSCLKID,\n RDT_CID,\n TWCLID,\n TTCLID,\n KO_CLICK_ID,\n LI_FAT_ID,\n GBRAID,\n WBRAID,\n UTM_ID,\n} from './constants';\nimport {\n Campaign,\n CampaignParser as ICampaignParser,\n ClickIdParameters,\n ReferrerParameters,\n UTMParameters,\n} from './campaign';\n\nexport class CampaignParser implements ICampaignParser {\n async parse(): Promise<Campaign> {\n return {\n ...BASE_CAMPAIGN,\n ...this.getUtmParam(),\n ...this.getReferrer(),\n ...this.getClickIds(),\n } as Campaign;\n }\n\n getUtmParam(): UTMParameters {\n const params = getQueryParams();\n\n const utmCampaign = params[UTM_CAMPAIGN];\n const utmContent = params[UTM_CONTENT];\n const utmId = params[UTM_ID];\n const utmMedium = params[UTM_MEDIUM];\n const utmSource = params[UTM_SOURCE];\n const utmTerm = params[UTM_TERM];\n\n return {\n utm_campaign: utmCampaign,\n utm_content: utmContent,\n utm_id: utmId,\n utm_medium: utmMedium,\n utm_source: utmSource,\n utm_term: utmTerm,\n };\n }\n\n getReferrer(): ReferrerParameters {\n const data: ReferrerParameters = {\n referrer: undefined,\n referring_domain: undefined,\n };\n try {\n data.referrer = document.referrer || undefined;\n data.referring_domain = data.referrer?.split('/')[2] ?? undefined;\n } catch {\n // nothing to track\n }\n return data;\n }\n\n getClickIds(): ClickIdParameters {\n const params = getQueryParams();\n return {\n [DCLID]: params[DCLID],\n [FBCLID]: params[FBCLID],\n [GBRAID]: params[GBRAID],\n [GCLID]: params[GCLID],\n [KO_CLICK_ID]: params[KO_CLICK_ID],\n [LI_FAT_ID]: params[LI_FAT_ID],\n [MSCLKID]: params[MSCLKID],\n [RDT_CID]: params[RDT_CID],\n [TTCLID]: params[TTCLID],\n [TWCLID]: params[TWCLID],\n [WBRAID]: params[WBRAID],\n };\n }\n}\n"]}
@@ -0,0 +1,31 @@
1
+ export interface Campaign extends Record<string, string | undefined>, UTMParameters, ReferrerParameters, ClickIdParameters {
2
+ }
3
+ export interface CampaignParser {
4
+ parse(): Promise<Campaign>;
5
+ }
6
+ export interface UTMParameters {
7
+ utm_campaign: string | undefined;
8
+ utm_content: string | undefined;
9
+ utm_id: string | undefined;
10
+ utm_medium: string | undefined;
11
+ utm_source: string | undefined;
12
+ utm_term: string | undefined;
13
+ }
14
+ export interface ReferrerParameters {
15
+ referrer: string | undefined;
16
+ referring_domain: string | undefined;
17
+ }
18
+ export interface ClickIdParameters {
19
+ dclid: string | undefined;
20
+ fbclid: string | undefined;
21
+ gbraid: string | undefined;
22
+ gclid: string | undefined;
23
+ ko_click_id: string | undefined;
24
+ li_fat_id: string | undefined;
25
+ msclkid: string | undefined;
26
+ rtd_cid: string | undefined;
27
+ ttclid: string | undefined;
28
+ twclid: string | undefined;
29
+ wbraid: string | undefined;
30
+ }
31
+ //# sourceMappingURL=campaign.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"campaign.d.ts","sourceRoot":"","sources":["../../../src/attribution/campaign.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QACf,SAAQ,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EACxC,aAAa,EACb,kBAAkB,EAClB,iBAAiB;CAAG;AAExB,MAAM,WAAW,cAAc;IAC7B,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=campaign.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"campaign.js","sourceRoot":"","sources":["../../../src/attribution/campaign.ts"],"names":[],"mappings":"","sourcesContent":["export interface Campaign\n extends Record<string, string | undefined>,\n UTMParameters,\n ReferrerParameters,\n ClickIdParameters {}\n\nexport interface CampaignParser {\n parse(): Promise<Campaign>;\n}\n\nexport interface UTMParameters {\n utm_campaign: string | undefined;\n utm_content: string | undefined;\n utm_id: string | undefined;\n utm_medium: string | undefined;\n utm_source: string | undefined;\n utm_term: string | undefined;\n}\n\nexport interface ReferrerParameters {\n referrer: string | undefined;\n referring_domain: string | undefined;\n}\n\nexport interface ClickIdParameters {\n dclid: string | undefined;\n fbclid: string | undefined;\n gbraid: string | undefined;\n gclid: string | undefined;\n ko_click_id: string | undefined;\n li_fat_id: string | undefined;\n msclkid: string | undefined;\n rtd_cid: string | undefined;\n ttclid: string | undefined;\n twclid: string | undefined;\n wbraid: string | undefined;\n}\n"]}
@@ -0,0 +1,22 @@
1
+ import { Campaign } from './campaign';
2
+ export declare const UTM_CAMPAIGN = "utm_campaign";
3
+ export declare const UTM_CONTENT = "utm_content";
4
+ export declare const UTM_ID = "utm_id";
5
+ export declare const UTM_MEDIUM = "utm_medium";
6
+ export declare const UTM_SOURCE = "utm_source";
7
+ export declare const UTM_TERM = "utm_term";
8
+ export declare const DCLID = "dclid";
9
+ export declare const FBCLID = "fbclid";
10
+ export declare const GBRAID = "gbraid";
11
+ export declare const GCLID = "gclid";
12
+ export declare const KO_CLICK_ID = "ko_click_id";
13
+ export declare const LI_FAT_ID = "li_fat_id";
14
+ export declare const MSCLKID = "msclkid";
15
+ export declare const RDT_CID = "rtd_cid";
16
+ export declare const TTCLID = "ttclid";
17
+ export declare const TWCLID = "twclid";
18
+ export declare const WBRAID = "wbraid";
19
+ export declare const EMPTY_VALUE = "EMPTY";
20
+ export declare const BASE_CAMPAIGN: Campaign;
21
+ export declare const MKTG = "MKTG";
22
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/attribution/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAC3C,eAAO,MAAM,WAAW,gBAAgB,CAAC;AACzC,eAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,eAAO,MAAM,UAAU,eAAe,CAAC;AACvC,eAAO,MAAM,UAAU,eAAe,CAAC;AACvC,eAAO,MAAM,QAAQ,aAAa,CAAC;AAEnC,eAAO,MAAM,KAAK,UAAU,CAAC;AAC7B,eAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,eAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,eAAO,MAAM,KAAK,UAAU,CAAC;AAC7B,eAAO,MAAM,WAAW,gBAAgB,CAAC;AACzC,eAAO,MAAM,SAAS,cAAc,CAAC;AACrC,eAAO,MAAM,OAAO,YAAY,CAAC;AACjC,eAAO,MAAM,OAAO,YAAY,CAAC;AACjC,eAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,eAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,eAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,eAAO,MAAM,WAAW,UAAU,CAAC;AAEnC,eAAO,MAAM,aAAa,EAAE,QAoB3B,CAAC;AAEF,eAAO,MAAM,IAAI,SAAS,CAAC"}
@@ -0,0 +1,41 @@
1
+ export var UTM_CAMPAIGN = 'utm_campaign';
2
+ export var UTM_CONTENT = 'utm_content';
3
+ export var UTM_ID = 'utm_id';
4
+ export var UTM_MEDIUM = 'utm_medium';
5
+ export var UTM_SOURCE = 'utm_source';
6
+ export var UTM_TERM = 'utm_term';
7
+ export var DCLID = 'dclid';
8
+ export var FBCLID = 'fbclid';
9
+ export var GBRAID = 'gbraid';
10
+ export var GCLID = 'gclid';
11
+ export var KO_CLICK_ID = 'ko_click_id';
12
+ export var LI_FAT_ID = 'li_fat_id';
13
+ export var MSCLKID = 'msclkid';
14
+ export var RDT_CID = 'rtd_cid';
15
+ export var TTCLID = 'ttclid';
16
+ export var TWCLID = 'twclid';
17
+ export var WBRAID = 'wbraid';
18
+ export var EMPTY_VALUE = 'EMPTY';
19
+ export var BASE_CAMPAIGN = {
20
+ utm_campaign: undefined,
21
+ utm_content: undefined,
22
+ utm_id: undefined,
23
+ utm_medium: undefined,
24
+ utm_source: undefined,
25
+ utm_term: undefined,
26
+ referrer: undefined,
27
+ referring_domain: undefined,
28
+ dclid: undefined,
29
+ gbraid: undefined,
30
+ gclid: undefined,
31
+ fbclid: undefined,
32
+ ko_click_id: undefined,
33
+ li_fat_id: undefined,
34
+ msclkid: undefined,
35
+ rtd_cid: undefined,
36
+ ttclid: undefined,
37
+ twclid: undefined,
38
+ wbraid: undefined,
39
+ };
40
+ export var MKTG = 'MKTG';
41
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/attribution/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,IAAM,YAAY,GAAG,cAAc,CAAC;AAC3C,MAAM,CAAC,IAAM,WAAW,GAAG,aAAa,CAAC;AACzC,MAAM,CAAC,IAAM,MAAM,GAAG,QAAQ,CAAC;AAC/B,MAAM,CAAC,IAAM,UAAU,GAAG,YAAY,CAAC;AACvC,MAAM,CAAC,IAAM,UAAU,GAAG,YAAY,CAAC;AACvC,MAAM,CAAC,IAAM,QAAQ,GAAG,UAAU,CAAC;AAEnC,MAAM,CAAC,IAAM,KAAK,GAAG,OAAO,CAAC;AAC7B,MAAM,CAAC,IAAM,MAAM,GAAG,QAAQ,CAAC;AAC/B,MAAM,CAAC,IAAM,MAAM,GAAG,QAAQ,CAAC;AAC/B,MAAM,CAAC,IAAM,KAAK,GAAG,OAAO,CAAC;AAC7B,MAAM,CAAC,IAAM,WAAW,GAAG,aAAa,CAAC;AACzC,MAAM,CAAC,IAAM,SAAS,GAAG,WAAW,CAAC;AACrC,MAAM,CAAC,IAAM,OAAO,GAAG,SAAS,CAAC;AACjC,MAAM,CAAC,IAAM,OAAO,GAAG,SAAS,CAAC;AACjC,MAAM,CAAC,IAAM,MAAM,GAAG,QAAQ,CAAC;AAC/B,MAAM,CAAC,IAAM,MAAM,GAAG,QAAQ,CAAC;AAC/B,MAAM,CAAC,IAAM,MAAM,GAAG,QAAQ,CAAC;AAE/B,MAAM,CAAC,IAAM,WAAW,GAAG,OAAO,CAAC;AAEnC,MAAM,CAAC,IAAM,aAAa,GAAa;IACrC,YAAY,EAAE,SAAS;IACvB,WAAW,EAAE,SAAS;IACtB,MAAM,EAAE,SAAS;IACjB,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,SAAS;IACrB,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,SAAS;IACnB,gBAAgB,EAAE,SAAS;IAC3B,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,SAAS;IACjB,WAAW,EAAE,SAAS;IACtB,SAAS,EAAE,SAAS;IACpB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;CAClB,CAAC;AAEF,MAAM,CAAC,IAAM,IAAI,GAAG,MAAM,CAAC","sourcesContent":["import { Campaign } from './campaign';\n\nexport const UTM_CAMPAIGN = 'utm_campaign';\nexport const UTM_CONTENT = 'utm_content';\nexport const UTM_ID = 'utm_id';\nexport const UTM_MEDIUM = 'utm_medium';\nexport const UTM_SOURCE = 'utm_source';\nexport const UTM_TERM = 'utm_term';\n\nexport const DCLID = 'dclid';\nexport const FBCLID = 'fbclid';\nexport const GBRAID = 'gbraid';\nexport const GCLID = 'gclid';\nexport const KO_CLICK_ID = 'ko_click_id';\nexport const LI_FAT_ID = 'li_fat_id';\nexport const MSCLKID = 'msclkid';\nexport const RDT_CID = 'rtd_cid';\nexport const TTCLID = 'ttclid';\nexport const TWCLID = 'twclid';\nexport const WBRAID = 'wbraid';\n\nexport const EMPTY_VALUE = 'EMPTY';\n\nexport const BASE_CAMPAIGN: Campaign = {\n utm_campaign: undefined,\n utm_content: undefined,\n utm_id: undefined,\n utm_medium: undefined,\n utm_source: undefined,\n utm_term: undefined,\n referrer: undefined,\n referring_domain: undefined,\n dclid: undefined,\n gbraid: undefined,\n gclid: undefined,\n fbclid: undefined,\n ko_click_id: undefined,\n li_fat_id: undefined,\n msclkid: undefined,\n rtd_cid: undefined,\n ttclid: undefined,\n twclid: undefined,\n wbraid: undefined,\n};\n\nexport const MKTG = 'MKTG';\n"]}
@@ -0,0 +1,12 @@
1
+ import { ILogger } from '@amplitude/analytics-core';
2
+ import { Campaign } from './campaign';
3
+ export interface Options {
4
+ excludeReferrers?: (string | RegExp)[];
5
+ initialEmptyValue?: string;
6
+ resetSessionOnNewCampaign?: boolean;
7
+ }
8
+ export declare const isNewCampaign: (current: Campaign, previous: Campaign | undefined, options: Options, logger: ILogger, isNewSession?: boolean) => boolean;
9
+ export declare const isExcludedReferrer: (excludeReferrers?: (string | RegExp)[], referringDomain?: string) => boolean;
10
+ export declare const createCampaignEvent: (campaign: Campaign, options: Options) => import("@amplitude/analytics-core/lib/esm/types/event/event").IdentifyEvent;
11
+ export declare const getDefaultExcludedReferrers: (cookieDomain: string | undefined) => RegExp[];
12
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/attribution/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,MAAM,WAAW,OAAO;IACtB,gBAAgB,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACvC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC;AAiBD,eAAO,MAAM,aAAa,YACf,QAAQ,YACP,QAAQ,GAAG,SAAS,WACrB,OAAO,UACR,OAAO,oCA+BhB,CAAC;AAEF,eAAO,MAAM,kBAAkB,sBAAsB,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,sCAIvE,CAAC;AAEF,eAAO,MAAM,mBAAmB,aAAc,QAAQ,WAAW,OAAO,gFAgBvE,CAAC;AAEF,eAAO,MAAM,2BAA2B,iBAAkB,MAAM,GAAG,SAAS,aAS3E,CAAC"}
@@ -0,0 +1,70 @@
1
+ import { __assign, __read, __rest } from "tslib";
2
+ import { createIdentifyEvent, Identify } from '@amplitude/analytics-core';
3
+ import { BASE_CAMPAIGN } from './constants';
4
+ var domainWithoutSubdomain = function (domain) {
5
+ var parts = domain.split('.');
6
+ if (parts.length <= 2) {
7
+ return domain;
8
+ }
9
+ return parts.slice(parts.length - 2, parts.length).join('.');
10
+ };
11
+ //Direct traffic mean no external referral, no UTMs, no click-ids, and no other customer identified marketing campaign url params.
12
+ var isDirectTraffic = function (current) {
13
+ return Object.values(current).every(function (value) { return !value; });
14
+ };
15
+ export var isNewCampaign = function (current, previous, options, logger, isNewSession) {
16
+ if (isNewSession === void 0) { isNewSession = true; }
17
+ var referrer = current.referrer, referring_domain = current.referring_domain, currentCampaign = __rest(current, ["referrer", "referring_domain"]);
18
+ var _a = previous || {}, _previous_referrer = _a.referrer, prevReferringDomain = _a.referring_domain, previousCampaign = __rest(_a, ["referrer", "referring_domain"]);
19
+ if (isExcludedReferrer(options.excludeReferrers, current.referring_domain)) {
20
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
21
+ logger.debug("This is not a new campaign because ".concat(current.referring_domain, " is in the exclude referrer list."));
22
+ return false;
23
+ }
24
+ //In the same session, direct traffic should not override or unset any persisting query params
25
+ if (!isNewSession && isDirectTraffic(current) && previous) {
26
+ logger.debug('This is not a new campaign because this is a direct traffic in the same session.');
27
+ return false;
28
+ }
29
+ var hasNewCampaign = JSON.stringify(currentCampaign) !== JSON.stringify(previousCampaign);
30
+ var hasNewDomain = domainWithoutSubdomain(referring_domain || '') !== domainWithoutSubdomain(prevReferringDomain || '');
31
+ var result = !previous || hasNewCampaign || hasNewDomain;
32
+ if (!result) {
33
+ logger.debug("This is not a new campaign because it's the same as the previous one.");
34
+ }
35
+ else {
36
+ logger.debug("This is a new campaign. An $identify event will be sent.");
37
+ }
38
+ return result;
39
+ };
40
+ export var isExcludedReferrer = function (excludeReferrers, referringDomain) {
41
+ if (excludeReferrers === void 0) { excludeReferrers = []; }
42
+ if (referringDomain === void 0) { referringDomain = ''; }
43
+ return excludeReferrers.some(function (value) {
44
+ return value instanceof RegExp ? value.test(referringDomain) : value === referringDomain;
45
+ });
46
+ };
47
+ export var createCampaignEvent = function (campaign, options) {
48
+ var campaignParameters = __assign(__assign({}, BASE_CAMPAIGN), campaign);
49
+ var identifyEvent = Object.entries(campaignParameters).reduce(function (identify, _a) {
50
+ var _b;
51
+ var _c = __read(_a, 2), key = _c[0], value = _c[1];
52
+ identify.setOnce("initial_".concat(key), (_b = value !== null && value !== void 0 ? value : options.initialEmptyValue) !== null && _b !== void 0 ? _b : 'EMPTY');
53
+ if (value) {
54
+ return identify.set(key, value);
55
+ }
56
+ return identify.unset(key);
57
+ }, new Identify());
58
+ return createIdentifyEvent(identifyEvent);
59
+ };
60
+ export var getDefaultExcludedReferrers = function (cookieDomain) {
61
+ var domain = cookieDomain;
62
+ if (domain) {
63
+ if (domain.startsWith('.')) {
64
+ domain = domain.substring(1);
65
+ }
66
+ return [new RegExp("".concat(domain.replace('.', '\\.'), "$"))];
67
+ }
68
+ return [];
69
+ };
70
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/attribution/helpers.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAW,MAAM,2BAA2B,CAAC;AAEnF,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAQ5C,IAAM,sBAAsB,GAAG,UAAC,MAAc;IAC5C,IAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEhC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/D,CAAC,CAAC;AAEF,kIAAkI;AAClI,IAAM,eAAe,GAAG,UAAC,OAAiB;IACxC,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,UAAC,KAAK,IAAK,OAAA,CAAC,KAAK,EAAN,CAAM,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,aAAa,GAAG,UAC3B,OAAiB,EACjB,QAA8B,EAC9B,OAAgB,EAChB,MAAe,EACf,YAAmB;IAAnB,6BAAA,EAAA,mBAAmB;IAEX,IAAA,QAAQ,GAA2C,OAAO,SAAlD,EAAE,gBAAgB,GAAyB,OAAO,iBAAhC,EAAK,eAAe,UAAK,OAAO,EAA5D,gCAAkD,CAAF,CAAa;IACnE,IAAM,KAA+F,QAAQ,IAAI,EAAE,EAAjG,kBAAkB,cAAA,EAAoB,mBAAmB,sBAAA,EAAK,gBAAgB,cAA1F,gCAA4F,CAAiB,CAAC;IAEpH,IAAI,kBAAkB,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC3E,4EAA4E;QAC5E,MAAM,CAAC,KAAK,CAAC,6CAAsC,OAAO,CAAC,gBAAgB,sCAAmC,CAAC,CAAC;QAChH,OAAO,KAAK,CAAC;IACf,CAAC;IAED,8FAA8F;IAC9F,IAAI,CAAC,YAAY,IAAI,eAAe,CAAC,OAAO,CAAC,IAAI,QAAQ,EAAE,CAAC;QAC1D,MAAM,CAAC,KAAK,CAAC,kFAAkF,CAAC,CAAC;QACjG,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAC5F,IAAM,YAAY,GAChB,sBAAsB,CAAC,gBAAgB,IAAI,EAAE,CAAC,KAAK,sBAAsB,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;IAEvG,IAAM,MAAM,GAAG,CAAC,QAAQ,IAAI,cAAc,IAAI,YAAY,CAAC;IAE3D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC;IACxF,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,kBAAkB,GAAG,UAAC,gBAA0C,EAAE,eAAoB;IAAhE,iCAAA,EAAA,qBAA0C;IAAE,gCAAA,EAAA,oBAAoB;IACjG,OAAO,gBAAgB,CAAC,IAAI,CAAC,UAAC,KAAK;QACjC,OAAA,KAAK,YAAY,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,eAAe;IAAjF,CAAiF,CAClF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,mBAAmB,GAAG,UAAC,QAAkB,EAAE,OAAgB;IACtE,IAAM,kBAAkB,yBAGnB,aAAa,GACb,QAAQ,CACZ,CAAC;IACF,IAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,UAAC,QAAQ,EAAE,EAAY;;YAAZ,KAAA,aAAY,EAAX,GAAG,QAAA,EAAE,KAAK,QAAA;QACpF,QAAQ,CAAC,OAAO,CAAC,kBAAW,GAAG,CAAE,EAAE,MAAA,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,OAAO,CAAC,iBAAiB,mCAAI,OAAO,CAAC,CAAC;QAClF,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC,EAAE,IAAI,QAAQ,EAAE,CAAC,CAAC;IAEnB,OAAO,mBAAmB,CAAC,aAAa,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,2BAA2B,GAAG,UAAC,YAAgC;IAC1E,IAAI,MAAM,GAAG,YAAY,CAAC;IAC1B,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,CAAC,IAAI,MAAM,CAAC,UAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,MAAG,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC","sourcesContent":["import { createIdentifyEvent, Identify, ILogger } from '@amplitude/analytics-core';\nimport { Campaign } from './campaign';\nimport { BASE_CAMPAIGN } from './constants';\n\nexport interface Options {\n excludeReferrers?: (string | RegExp)[];\n initialEmptyValue?: string;\n resetSessionOnNewCampaign?: boolean;\n}\n\nconst domainWithoutSubdomain = (domain: string) => {\n const parts = domain.split('.');\n\n if (parts.length <= 2) {\n return domain;\n }\n\n return parts.slice(parts.length - 2, parts.length).join('.');\n};\n\n//Direct traffic mean no external referral, no UTMs, no click-ids, and no other customer identified marketing campaign url params.\nconst isDirectTraffic = (current: Campaign) => {\n return Object.values(current).every((value) => !value);\n};\n\nexport const isNewCampaign = (\n current: Campaign,\n previous: Campaign | undefined,\n options: Options,\n logger: ILogger,\n isNewSession = true,\n) => {\n const { referrer, referring_domain, ...currentCampaign } = current;\n const { referrer: _previous_referrer, referring_domain: prevReferringDomain, ...previousCampaign } = previous || {};\n\n if (isExcludedReferrer(options.excludeReferrers, current.referring_domain)) {\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n logger.debug(`This is not a new campaign because ${current.referring_domain} is in the exclude referrer list.`);\n return false;\n }\n\n //In the same session, direct traffic should not override or unset any persisting query params\n if (!isNewSession && isDirectTraffic(current) && previous) {\n logger.debug('This is not a new campaign because this is a direct traffic in the same session.');\n return false;\n }\n\n const hasNewCampaign = JSON.stringify(currentCampaign) !== JSON.stringify(previousCampaign);\n const hasNewDomain =\n domainWithoutSubdomain(referring_domain || '') !== domainWithoutSubdomain(prevReferringDomain || '');\n\n const result = !previous || hasNewCampaign || hasNewDomain;\n\n if (!result) {\n logger.debug(\"This is not a new campaign because it's the same as the previous one.\");\n } else {\n logger.debug(`This is a new campaign. An $identify event will be sent.`);\n }\n\n return result;\n};\n\nexport const isExcludedReferrer = (excludeReferrers: (string | RegExp)[] = [], referringDomain = '') => {\n return excludeReferrers.some((value) =>\n value instanceof RegExp ? value.test(referringDomain) : value === referringDomain,\n );\n};\n\nexport const createCampaignEvent = (campaign: Campaign, options: Options) => {\n const campaignParameters: Campaign = {\n // This object definition allows undefined keys to be iterated on\n // in .reduce() to build indentify object\n ...BASE_CAMPAIGN,\n ...campaign,\n };\n const identifyEvent = Object.entries(campaignParameters).reduce((identify, [key, value]) => {\n identify.setOnce(`initial_${key}`, value ?? options.initialEmptyValue ?? 'EMPTY');\n if (value) {\n return identify.set(key, value);\n }\n return identify.unset(key);\n }, new Identify());\n\n return createIdentifyEvent(identifyEvent);\n};\n\nexport const getDefaultExcludedReferrers = (cookieDomain: string | undefined) => {\n let domain = cookieDomain;\n if (domain) {\n if (domain.startsWith('.')) {\n domain = domain.substring(1);\n }\n return [new RegExp(`${domain.replace('.', '\\\\.')}$`)];\n }\n return [];\n};\n"]}
@@ -0,0 +1,25 @@
1
+ import { BrowserConfig, ILogger, Storage } from '@amplitude/analytics-core';
2
+ import { Campaign } from './campaign';
3
+ import { Options } from './helpers';
4
+ export declare class WebAttribution {
5
+ options: Options;
6
+ storage: Storage<Campaign>;
7
+ storageKey: string;
8
+ previousCampaign?: Campaign;
9
+ currentCampaign: Campaign;
10
+ shouldTrackNewCampaign: boolean;
11
+ sessionTimeout: number;
12
+ lastEventTime?: number;
13
+ logger: ILogger;
14
+ constructor(options: Options, config: BrowserConfig);
15
+ init(): Promise<void>;
16
+ fetchCampaign(): Promise<[Campaign, Campaign | undefined]>;
17
+ /**
18
+ * This can be called when enable web attribution and either
19
+ * 1. set a new session
20
+ * 2. has new campaign and enable resetSessionOnNewCampaign
21
+ */
22
+ generateCampaignEvent(event_id?: number): import("@amplitude/analytics-core/lib/esm/types/event/event").IdentifyEvent;
23
+ shouldSetSessionIdOnNewCampaign(): boolean;
24
+ }
25
+ //# sourceMappingURL=web-attribution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-attribution.d.ts","sourceRoot":"","sources":["../../../src/attribution/web-attribution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAA+B,MAAM,2BAA2B,CAAC;AACzG,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAmE,MAAM,WAAW,CAAC;AAIrG,qBAAa,cAAc;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,QAAQ,CAAC;IAC5B,eAAe,EAAE,QAAQ,CAAC;IAC1B,sBAAsB,UAAS;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;gBAEJ,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa;IAgB7C,IAAI;IAUJ,aAAa;IAInB;;;;OAIG;IACH,qBAAqB,CAAC,QAAQ,CAAC,EAAE,MAAM;IAUvC,+BAA+B;CAGhC"}