@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
package/README.md CHANGED
@@ -53,7 +53,7 @@ This SDK is also available through CDN. Copy the script loader below and paste b
53
53
  <!-- README_SNIPPET_BLOCK -->
54
54
  ```html
55
55
  <script type="text/javascript">
56
- !function(){"use strict";!function(e,t){var n=e.amplitude||{_q:[],_iq:{}};if(n.invoked)e.console&&console.error&&console.error("Amplitude snippet has been loaded.");else{var r=function(e,t){e.prototype[t]=function(){return this._q.push({name:t,args:Array.prototype.slice.call(arguments,0)}),this}},s=function(e,t,n){return function(r){e._q.push({name:t,args:Array.prototype.slice.call(n,0),resolve:r})}},o=function(e,t,n){e._q.push({name:t,args:Array.prototype.slice.call(n,0)})},i=function(e,t,n){e[t]=function(){if(n)return{promise:new Promise(s(e,t,Array.prototype.slice.call(arguments)))};o(e,t,Array.prototype.slice.call(arguments))}},a=function(e){for(var t=0;t<g.length;t++)i(e,g[t],!1);for(var n=0;n<m.length;n++)i(e,m[n],!0)};n.invoked=!0;var c=t.createElement("script");c.type="text/javascript",c.integrity="sha384-Gp3U9FccXZdynaf6nB7JC4UsNvxaQtTQxipmBPgneRzqjcvAUa/7+oAfy+7NJpsb",c.crossOrigin="anonymous",c.async=!0,c.src="https://cdn.amplitude.com/libs/analytics-browser-2.11.13-min.js.gz",c.onload=function(){e.amplitude.runQueuedFunctions||console.log("[Amplitude] Error: could not load SDK")};var u=t.getElementsByTagName("script")[0];u.parentNode.insertBefore(c,u);for(var p=function(){return this._q=[],this},l=["add","append","clearAll","prepend","set","setOnce","unset","preInsert","postInsert","remove","getUserProperties"],d=0;d<l.length;d++)r(p,l[d]);n.Identify=p;for(var f=function(){return this._q=[],this},v=["getEventProperties","setProductId","setQuantity","setPrice","setRevenue","setRevenueType","setEventProperties"],y=0;y<v.length;y++)r(f,v[y]);n.Revenue=f;var g=["getDeviceId","setDeviceId","getSessionId","setSessionId","getUserId","setUserId","setOptOut","setTransport","reset","extendSession"],m=["init","add","remove","track","logEvent","identify","groupIdentify","setGroup","revenue","flush"];a(n),n.createInstance=function(e){return n._iq[e]={_q:[]},a(n._iq[e]),n._iq[e]},e.amplitude=n}}(window,document)}();
56
+ !function(){"use strict";!function(e,t){var r=e.amplitude||{_q:[],_iq:{}};if(r.invoked)e.console&&console.error&&console.error("Amplitude snippet has been loaded.");else{var n=function(e,t){e.prototype[t]=function(){return this._q.push({name:t,args:Array.prototype.slice.call(arguments,0)}),this}},s=function(e,t,r){return function(n){e._q.push({name:t,args:Array.prototype.slice.call(r,0),resolve:n})}},o=function(e,t,r){e._q.push({name:t,args:Array.prototype.slice.call(r,0)})},i=function(e,t,r){e[t]=function(){if(r)return{promise:new Promise(s(e,t,Array.prototype.slice.call(arguments)))};o(e,t,Array.prototype.slice.call(arguments))}},c=function(e){for(var t=0;t<g.length;t++)i(e,g[t],!1);for(var r=0;r<m.length;r++)i(e,m[r],!0)};r.invoked=!0;var a=t.createElement("script");a.type="text/javascript",a.integrity="sha384-kd/jdkjTe2NGBFKjZo1VFoSEtUd/gSrCOgur0+K+eMboBlyEA9Wzd53UE2xIw6wk",a.crossOrigin="anonymous",a.async=!0,a.src="https://cdn.amplitude.com/libs/analytics-browser-2.12.0-min.js.gz",a.onload=function(){e.amplitude.runQueuedFunctions||console.log("[Amplitude] Error: could not load SDK")};var u=t.getElementsByTagName("script")[0];u.parentNode.insertBefore(a,u);for(var l=function(){return this._q=[],this},p=["add","append","clearAll","prepend","set","setOnce","unset","preInsert","postInsert","remove","getUserProperties"],d=0;d<p.length;d++)n(l,p[d]);r.Identify=l;for(var f=function(){return this._q=[],this},v=["getEventProperties","setProductId","setQuantity","setPrice","setRevenue","setRevenueType","setReceipt","setReceiptSig","setCurrency","setEventProperties"],y=0;y<v.length;y++)n(f,v[y]);r.Revenue=f;var g=["getDeviceId","setDeviceId","getSessionId","setSessionId","getUserId","setUserId","setOptOut","setTransport","reset","extendSession"],m=["init","add","remove","track","logEvent","identify","groupIdentify","setGroup","revenue","flush"];c(r),r.createInstance=function(e){return r._iq[e]={_q:[]},c(r._iq[e]),r._iq[e]},e.amplitude=r}}(window,document)}();
57
57
 
58
58
  amplitude.init("<YOUR_API_KEY>");
59
59
  </script>
@@ -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,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CampaignParser = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var analytics_core_1 = require("@amplitude/analytics-core");
6
+ var constants_1 = require("./constants");
7
+ var CampaignParser = /** @class */ (function () {
8
+ function CampaignParser() {
9
+ }
10
+ CampaignParser.prototype.parse = function () {
11
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
12
+ return tslib_1.__generator(this, function (_a) {
13
+ return [2 /*return*/, tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({}, constants_1.BASE_CAMPAIGN), this.getUtmParam()), this.getReferrer()), this.getClickIds())];
14
+ });
15
+ });
16
+ };
17
+ CampaignParser.prototype.getUtmParam = function () {
18
+ var params = (0, analytics_core_1.getQueryParams)();
19
+ var utmCampaign = params[constants_1.UTM_CAMPAIGN];
20
+ var utmContent = params[constants_1.UTM_CONTENT];
21
+ var utmId = params[constants_1.UTM_ID];
22
+ var utmMedium = params[constants_1.UTM_MEDIUM];
23
+ var utmSource = params[constants_1.UTM_SOURCE];
24
+ var utmTerm = params[constants_1.UTM_TERM];
25
+ return {
26
+ utm_campaign: utmCampaign,
27
+ utm_content: utmContent,
28
+ utm_id: utmId,
29
+ utm_medium: utmMedium,
30
+ utm_source: utmSource,
31
+ utm_term: utmTerm,
32
+ };
33
+ };
34
+ CampaignParser.prototype.getReferrer = function () {
35
+ var _a, _b;
36
+ var data = {
37
+ referrer: undefined,
38
+ referring_domain: undefined,
39
+ };
40
+ try {
41
+ data.referrer = document.referrer || undefined;
42
+ data.referring_domain = (_b = (_a = data.referrer) === null || _a === void 0 ? void 0 : _a.split('/')[2]) !== null && _b !== void 0 ? _b : undefined;
43
+ }
44
+ catch (_c) {
45
+ // nothing to track
46
+ }
47
+ return data;
48
+ };
49
+ CampaignParser.prototype.getClickIds = function () {
50
+ var _a;
51
+ var params = (0, analytics_core_1.getQueryParams)();
52
+ return _a = {},
53
+ _a[constants_1.DCLID] = params[constants_1.DCLID],
54
+ _a[constants_1.FBCLID] = params[constants_1.FBCLID],
55
+ _a[constants_1.GBRAID] = params[constants_1.GBRAID],
56
+ _a[constants_1.GCLID] = params[constants_1.GCLID],
57
+ _a[constants_1.KO_CLICK_ID] = params[constants_1.KO_CLICK_ID],
58
+ _a[constants_1.LI_FAT_ID] = params[constants_1.LI_FAT_ID],
59
+ _a[constants_1.MSCLKID] = params[constants_1.MSCLKID],
60
+ _a[constants_1.RDT_CID] = params[constants_1.RDT_CID],
61
+ _a[constants_1.TTCLID] = params[constants_1.TTCLID],
62
+ _a[constants_1.TWCLID] = params[constants_1.TWCLID],
63
+ _a[constants_1.WBRAID] = params[constants_1.WBRAID],
64
+ _a;
65
+ };
66
+ return CampaignParser;
67
+ }());
68
+ exports.CampaignParser = CampaignParser;
69
+ //# 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,4DAA2D;AAC3D,yCAmBqB;AASrB;IAAA;IA4DA,CAAC;IA3DO,8BAAK,GAAX;;;gBACE,sBAAO,wEACF,yBAAa,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,IAAA,+BAAc,GAAE,CAAC;QAEhC,IAAM,WAAW,GAAG,MAAM,CAAC,wBAAY,CAAC,CAAC;QACzC,IAAM,UAAU,GAAG,MAAM,CAAC,uBAAW,CAAC,CAAC;QACvC,IAAM,KAAK,GAAG,MAAM,CAAC,kBAAM,CAAC,CAAC;QAC7B,IAAM,SAAS,GAAG,MAAM,CAAC,sBAAU,CAAC,CAAC;QACrC,IAAM,SAAS,GAAG,MAAM,CAAC,sBAAU,CAAC,CAAC;QACrC,IAAM,OAAO,GAAG,MAAM,CAAC,oBAAQ,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,IAAA,+BAAc,GAAE,CAAC;QAChC;YACE,GAAC,iBAAK,IAAG,MAAM,CAAC,iBAAK,CAAC;YACtB,GAAC,kBAAM,IAAG,MAAM,CAAC,kBAAM,CAAC;YACxB,GAAC,kBAAM,IAAG,MAAM,CAAC,kBAAM,CAAC;YACxB,GAAC,iBAAK,IAAG,MAAM,CAAC,iBAAK,CAAC;YACtB,GAAC,uBAAW,IAAG,MAAM,CAAC,uBAAW,CAAC;YAClC,GAAC,qBAAS,IAAG,MAAM,CAAC,qBAAS,CAAC;YAC9B,GAAC,mBAAO,IAAG,MAAM,CAAC,mBAAO,CAAC;YAC1B,GAAC,mBAAO,IAAG,MAAM,CAAC,mBAAO,CAAC;YAC1B,GAAC,kBAAM,IAAG,MAAM,CAAC,kBAAM,CAAC;YACxB,GAAC,kBAAM,IAAG,MAAM,CAAC,kBAAM,CAAC;YACxB,GAAC,kBAAM,IAAG,MAAM,CAAC,kBAAM,CAAC;eACxB;IACJ,CAAC;IACH,qBAAC;AAAD,CAAC,AA5DD,IA4DC;AA5DY,wCAAc","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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# 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,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MKTG = exports.BASE_CAMPAIGN = exports.EMPTY_VALUE = exports.WBRAID = exports.TWCLID = exports.TTCLID = exports.RDT_CID = exports.MSCLKID = exports.LI_FAT_ID = exports.KO_CLICK_ID = exports.GCLID = exports.GBRAID = exports.FBCLID = exports.DCLID = exports.UTM_TERM = exports.UTM_SOURCE = exports.UTM_MEDIUM = exports.UTM_ID = exports.UTM_CONTENT = exports.UTM_CAMPAIGN = void 0;
4
+ exports.UTM_CAMPAIGN = 'utm_campaign';
5
+ exports.UTM_CONTENT = 'utm_content';
6
+ exports.UTM_ID = 'utm_id';
7
+ exports.UTM_MEDIUM = 'utm_medium';
8
+ exports.UTM_SOURCE = 'utm_source';
9
+ exports.UTM_TERM = 'utm_term';
10
+ exports.DCLID = 'dclid';
11
+ exports.FBCLID = 'fbclid';
12
+ exports.GBRAID = 'gbraid';
13
+ exports.GCLID = 'gclid';
14
+ exports.KO_CLICK_ID = 'ko_click_id';
15
+ exports.LI_FAT_ID = 'li_fat_id';
16
+ exports.MSCLKID = 'msclkid';
17
+ exports.RDT_CID = 'rtd_cid';
18
+ exports.TTCLID = 'ttclid';
19
+ exports.TWCLID = 'twclid';
20
+ exports.WBRAID = 'wbraid';
21
+ exports.EMPTY_VALUE = 'EMPTY';
22
+ exports.BASE_CAMPAIGN = {
23
+ utm_campaign: undefined,
24
+ utm_content: undefined,
25
+ utm_id: undefined,
26
+ utm_medium: undefined,
27
+ utm_source: undefined,
28
+ utm_term: undefined,
29
+ referrer: undefined,
30
+ referring_domain: undefined,
31
+ dclid: undefined,
32
+ gbraid: undefined,
33
+ gclid: undefined,
34
+ fbclid: undefined,
35
+ ko_click_id: undefined,
36
+ li_fat_id: undefined,
37
+ msclkid: undefined,
38
+ rtd_cid: undefined,
39
+ ttclid: undefined,
40
+ twclid: undefined,
41
+ wbraid: undefined,
42
+ };
43
+ exports.MKTG = 'MKTG';
44
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/attribution/constants.ts"],"names":[],"mappings":";;;AAEa,QAAA,YAAY,GAAG,cAAc,CAAC;AAC9B,QAAA,WAAW,GAAG,aAAa,CAAC;AAC5B,QAAA,MAAM,GAAG,QAAQ,CAAC;AAClB,QAAA,UAAU,GAAG,YAAY,CAAC;AAC1B,QAAA,UAAU,GAAG,YAAY,CAAC;AAC1B,QAAA,QAAQ,GAAG,UAAU,CAAC;AAEtB,QAAA,KAAK,GAAG,OAAO,CAAC;AAChB,QAAA,MAAM,GAAG,QAAQ,CAAC;AAClB,QAAA,MAAM,GAAG,QAAQ,CAAC;AAClB,QAAA,KAAK,GAAG,OAAO,CAAC;AAChB,QAAA,WAAW,GAAG,aAAa,CAAC;AAC5B,QAAA,SAAS,GAAG,WAAW,CAAC;AACxB,QAAA,OAAO,GAAG,SAAS,CAAC;AACpB,QAAA,OAAO,GAAG,SAAS,CAAC;AACpB,QAAA,MAAM,GAAG,QAAQ,CAAC;AAClB,QAAA,MAAM,GAAG,QAAQ,CAAC;AAClB,QAAA,MAAM,GAAG,QAAQ,CAAC;AAElB,QAAA,WAAW,GAAG,OAAO,CAAC;AAEtB,QAAA,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;AAEW,QAAA,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,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDefaultExcludedReferrers = exports.createCampaignEvent = exports.isExcludedReferrer = exports.isNewCampaign = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var analytics_core_1 = require("@amplitude/analytics-core");
6
+ var constants_1 = require("./constants");
7
+ var domainWithoutSubdomain = function (domain) {
8
+ var parts = domain.split('.');
9
+ if (parts.length <= 2) {
10
+ return domain;
11
+ }
12
+ return parts.slice(parts.length - 2, parts.length).join('.');
13
+ };
14
+ //Direct traffic mean no external referral, no UTMs, no click-ids, and no other customer identified marketing campaign url params.
15
+ var isDirectTraffic = function (current) {
16
+ return Object.values(current).every(function (value) { return !value; });
17
+ };
18
+ var isNewCampaign = function (current, previous, options, logger, isNewSession) {
19
+ if (isNewSession === void 0) { isNewSession = true; }
20
+ var referrer = current.referrer, referring_domain = current.referring_domain, currentCampaign = tslib_1.__rest(current, ["referrer", "referring_domain"]);
21
+ var _a = previous || {}, _previous_referrer = _a.referrer, prevReferringDomain = _a.referring_domain, previousCampaign = tslib_1.__rest(_a, ["referrer", "referring_domain"]);
22
+ if ((0, exports.isExcludedReferrer)(options.excludeReferrers, current.referring_domain)) {
23
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
24
+ logger.debug("This is not a new campaign because ".concat(current.referring_domain, " is in the exclude referrer list."));
25
+ return false;
26
+ }
27
+ //In the same session, direct traffic should not override or unset any persisting query params
28
+ if (!isNewSession && isDirectTraffic(current) && previous) {
29
+ logger.debug('This is not a new campaign because this is a direct traffic in the same session.');
30
+ return false;
31
+ }
32
+ var hasNewCampaign = JSON.stringify(currentCampaign) !== JSON.stringify(previousCampaign);
33
+ var hasNewDomain = domainWithoutSubdomain(referring_domain || '') !== domainWithoutSubdomain(prevReferringDomain || '');
34
+ var result = !previous || hasNewCampaign || hasNewDomain;
35
+ if (!result) {
36
+ logger.debug("This is not a new campaign because it's the same as the previous one.");
37
+ }
38
+ else {
39
+ logger.debug("This is a new campaign. An $identify event will be sent.");
40
+ }
41
+ return result;
42
+ };
43
+ exports.isNewCampaign = isNewCampaign;
44
+ var isExcludedReferrer = function (excludeReferrers, referringDomain) {
45
+ if (excludeReferrers === void 0) { excludeReferrers = []; }
46
+ if (referringDomain === void 0) { referringDomain = ''; }
47
+ return excludeReferrers.some(function (value) {
48
+ return value instanceof RegExp ? value.test(referringDomain) : value === referringDomain;
49
+ });
50
+ };
51
+ exports.isExcludedReferrer = isExcludedReferrer;
52
+ var createCampaignEvent = function (campaign, options) {
53
+ var campaignParameters = tslib_1.__assign(tslib_1.__assign({}, constants_1.BASE_CAMPAIGN), campaign);
54
+ var identifyEvent = Object.entries(campaignParameters).reduce(function (identify, _a) {
55
+ var _b;
56
+ var _c = tslib_1.__read(_a, 2), key = _c[0], value = _c[1];
57
+ identify.setOnce("initial_".concat(key), (_b = value !== null && value !== void 0 ? value : options.initialEmptyValue) !== null && _b !== void 0 ? _b : 'EMPTY');
58
+ if (value) {
59
+ return identify.set(key, value);
60
+ }
61
+ return identify.unset(key);
62
+ }, new analytics_core_1.Identify());
63
+ return (0, analytics_core_1.createIdentifyEvent)(identifyEvent);
64
+ };
65
+ exports.createCampaignEvent = createCampaignEvent;
66
+ var getDefaultExcludedReferrers = function (cookieDomain) {
67
+ var domain = cookieDomain;
68
+ if (domain) {
69
+ if (domain.startsWith('.')) {
70
+ domain = domain.substring(1);
71
+ }
72
+ return [new RegExp("".concat(domain.replace('.', '\\.'), "$"))];
73
+ }
74
+ return [];
75
+ };
76
+ exports.getDefaultExcludedReferrers = getDefaultExcludedReferrers;
77
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/attribution/helpers.ts"],"names":[],"mappings":"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","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"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WebAttribution = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var analytics_core_1 = require("@amplitude/analytics-core");
6
+ var helpers_1 = require("./helpers");
7
+ var campaign_parser_1 = require("./campaign-parser");
8
+ var constants_1 = require("./constants");
9
+ var WebAttribution = /** @class */ (function () {
10
+ function WebAttribution(options, config) {
11
+ var _a;
12
+ this.shouldTrackNewCampaign = false;
13
+ this.options = tslib_1.__assign({ initialEmptyValue: 'EMPTY', resetSessionOnNewCampaign: false, excludeReferrers: (0, helpers_1.getDefaultExcludedReferrers)((_a = config.cookieOptions) === null || _a === void 0 ? void 0 : _a.domain) }, options);
14
+ this.storage = config.cookieStorage;
15
+ this.storageKey = (0, analytics_core_1.getStorageKey)(config.apiKey, 'MKTG');
16
+ this.currentCampaign = constants_1.BASE_CAMPAIGN;
17
+ this.sessionTimeout = config.sessionTimeout;
18
+ this.lastEventTime = config.lastEventTime;
19
+ this.logger = config.loggerProvider;
20
+ config.loggerProvider.log('Installing web attribution tracking.');
21
+ }
22
+ WebAttribution.prototype.init = function () {
23
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
24
+ var isEventInNewSession;
25
+ var _a;
26
+ return tslib_1.__generator(this, function (_b) {
27
+ switch (_b.label) {
28
+ case 0: return [4 /*yield*/, this.fetchCampaign()];
29
+ case 1:
30
+ _a = tslib_1.__read.apply(void 0, [_b.sent(), 2]), this.currentCampaign = _a[0], this.previousCampaign = _a[1];
31
+ isEventInNewSession = !this.lastEventTime ? true : (0, analytics_core_1.isNewSession)(this.sessionTimeout, this.lastEventTime);
32
+ if (!(0, helpers_1.isNewCampaign)(this.currentCampaign, this.previousCampaign, this.options, this.logger, isEventInNewSession)) return [3 /*break*/, 3];
33
+ this.shouldTrackNewCampaign = true;
34
+ return [4 /*yield*/, this.storage.set(this.storageKey, this.currentCampaign)];
35
+ case 2:
36
+ _b.sent();
37
+ _b.label = 3;
38
+ case 3: return [2 /*return*/];
39
+ }
40
+ });
41
+ });
42
+ };
43
+ WebAttribution.prototype.fetchCampaign = function () {
44
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
45
+ return tslib_1.__generator(this, function (_a) {
46
+ switch (_a.label) {
47
+ case 0: return [4 /*yield*/, Promise.all([new campaign_parser_1.CampaignParser().parse(), this.storage.get(this.storageKey)])];
48
+ case 1: return [2 /*return*/, _a.sent()];
49
+ }
50
+ });
51
+ });
52
+ };
53
+ /**
54
+ * This can be called when enable web attribution and either
55
+ * 1. set a new session
56
+ * 2. has new campaign and enable resetSessionOnNewCampaign
57
+ */
58
+ WebAttribution.prototype.generateCampaignEvent = function (event_id) {
59
+ // Mark this campaign has been tracked
60
+ this.shouldTrackNewCampaign = false;
61
+ var campaignEvent = (0, helpers_1.createCampaignEvent)(this.currentCampaign, this.options);
62
+ if (event_id) {
63
+ campaignEvent.event_id = event_id;
64
+ }
65
+ return campaignEvent;
66
+ };
67
+ WebAttribution.prototype.shouldSetSessionIdOnNewCampaign = function () {
68
+ return this.shouldTrackNewCampaign && !!this.options.resetSessionOnNewCampaign;
69
+ };
70
+ return WebAttribution;
71
+ }());
72
+ exports.WebAttribution = WebAttribution;
73
+ //# sourceMappingURL=web-attribution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-attribution.js","sourceRoot":"","sources":["../../../src/attribution/web-attribution.ts"],"names":[],"mappings":";;;;AAAA,4DAAyG;AAEzG,qCAAqG;AACrG,qDAAmD;AACnD,yCAA4C;AAE5C;IAWE,wBAAY,OAAgB,EAAE,MAAqB;;QALnD,2BAAsB,GAAG,KAAK,CAAC;QAM7B,IAAI,CAAC,OAAO,sBACV,iBAAiB,EAAE,OAAO,EAC1B,yBAAyB,EAAE,KAAK,EAChC,gBAAgB,EAAE,IAAA,qCAA2B,EAAC,MAAA,MAAM,CAAC,aAAa,0CAAE,MAAM,CAAC,IACxE,OAAO,CACX,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,aAA6C,CAAC;QACpE,IAAI,CAAC,UAAU,GAAG,IAAA,8BAAa,EAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACvD,IAAI,CAAC,eAAe,GAAG,yBAAa,CAAC;QACrC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC5C,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAC1C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC;QACpC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IACpE,CAAC;IAEK,6BAAI,GAAV;;;;;;4BACkD,qBAAM,IAAI,CAAC,aAAa,EAAE,EAAA;;wBAA1E,KAAA,8BAAgD,SAA0B,KAAA,EAAzE,IAAI,CAAC,eAAe,QAAA,EAAE,IAAI,CAAC,gBAAgB,QAAA,CAA+B;wBACrE,mBAAmB,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,6BAAY,EAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;6BAE3G,IAAA,uBAAa,EAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAA1G,wBAA0G;wBAC5G,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;wBACnC,qBAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,EAAA;;wBAA7D,SAA6D,CAAC;;;;;;KAEjE;IAEK,sCAAa,GAAnB;;;;4BACS,qBAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,gCAAc,EAAE,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAA;4BAA3F,sBAAO,SAAoF,EAAC;;;;KAC7F;IAED;;;;OAIG;IACH,8CAAqB,GAArB,UAAsB,QAAiB;QACrC,sCAAsC;QACtC,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;QACpC,IAAM,aAAa,GAAG,IAAA,6BAAmB,EAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9E,IAAI,QAAQ,EAAE,CAAC;YACb,aAAa,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACpC,CAAC;QACD,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,wDAA+B,GAA/B;QACE,OAAO,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC;IACjF,CAAC;IACH,qBAAC;AAAD,CAAC,AA3DD,IA2DC;AA3DY,wCAAc","sourcesContent":["import { BrowserConfig, ILogger, Storage, getStorageKey, isNewSession } from '@amplitude/analytics-core';\nimport { Campaign } from './campaign';\nimport { Options, getDefaultExcludedReferrers, createCampaignEvent, isNewCampaign } from './helpers';\nimport { CampaignParser } from './campaign-parser';\nimport { BASE_CAMPAIGN } from './constants';\n\nexport class WebAttribution {\n options: Options;\n storage: Storage<Campaign>;\n storageKey: string;\n previousCampaign?: Campaign;\n currentCampaign: Campaign;\n shouldTrackNewCampaign = false;\n sessionTimeout: number;\n lastEventTime?: number;\n logger: ILogger;\n\n constructor(options: Options, config: BrowserConfig) {\n this.options = {\n initialEmptyValue: 'EMPTY',\n resetSessionOnNewCampaign: false,\n excludeReferrers: getDefaultExcludedReferrers(config.cookieOptions?.domain),\n ...options,\n };\n this.storage = config.cookieStorage as unknown as Storage<Campaign>;\n this.storageKey = getStorageKey(config.apiKey, 'MKTG');\n this.currentCampaign = BASE_CAMPAIGN;\n this.sessionTimeout = config.sessionTimeout;\n this.lastEventTime = config.lastEventTime;\n this.logger = config.loggerProvider;\n config.loggerProvider.log('Installing web attribution tracking.');\n }\n\n async init() {\n [this.currentCampaign, this.previousCampaign] = await this.fetchCampaign();\n const isEventInNewSession = !this.lastEventTime ? true : isNewSession(this.sessionTimeout, this.lastEventTime);\n\n if (isNewCampaign(this.currentCampaign, this.previousCampaign, this.options, this.logger, isEventInNewSession)) {\n this.shouldTrackNewCampaign = true;\n await this.storage.set(this.storageKey, this.currentCampaign);\n }\n }\n\n async fetchCampaign() {\n return await Promise.all([new CampaignParser().parse(), this.storage.get(this.storageKey)]);\n }\n\n /**\n * This can be called when enable web attribution and either\n * 1. set a new session\n * 2. has new campaign and enable resetSessionOnNewCampaign\n */\n generateCampaignEvent(event_id?: number) {\n // Mark this campaign has been tracked\n this.shouldTrackNewCampaign = false;\n const campaignEvent = createCampaignEvent(this.currentCampaign, this.options);\n if (event_id) {\n campaignEvent.event_id = event_id;\n }\n return campaignEvent;\n }\n\n shouldSetSessionIdOnNewCampaign() {\n return this.shouldTrackNewCampaign && !!this.options.resetSessionOnNewCampaign;\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { BrowserClient } from '@amplitude/analytics-types';
1
+ import { BrowserClient } from '@amplitude/analytics-core';
2
2
  export declare const createInstance: () => BrowserClient;
3
3
  declare const _default: BrowserClient;
4
4
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"browser-client-factory.d.ts","sourceRoot":"","sources":["../../src/browser-client-factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAG3D,eAAO,MAAM,cAAc,QAAO,aA4HjC,CAAC;;AAEF,wBAAgC"}
1
+ {"version":3,"file":"browser-client-factory.d.ts","sourceRoot":"","sources":["../../src/browser-client-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqD,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAG7G,eAAO,MAAM,cAAc,QAAO,aA4HjC,CAAC;;AAEF,wBAAgC"}
@@ -1 +1 @@
1
- {"version":3,"file":"browser-client-factory.js","sourceRoot":"","sources":["../../src/browser-client-factory.ts"],"names":[],"mappings":"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","sourcesContent":["import { debugWrapper, getClientLogConfig, getClientStates } from '@amplitude/analytics-core';\nimport { BrowserClient } from '@amplitude/analytics-types';\nimport { AmplitudeBrowser } from './browser-client';\n\nexport const createInstance = (): BrowserClient => {\n const client = new AmplitudeBrowser();\n return {\n init: debugWrapper(\n client.init.bind(client),\n 'init',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n add: debugWrapper(\n client.add.bind(client),\n 'add',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.plugins']),\n ),\n remove: debugWrapper(\n client.remove.bind(client),\n 'remove',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.plugins']),\n ),\n track: debugWrapper(\n client.track.bind(client),\n 'track',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n logEvent: debugWrapper(\n client.logEvent.bind(client),\n 'logEvent',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n identify: debugWrapper(\n client.identify.bind(client),\n 'identify',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n groupIdentify: debugWrapper(\n client.groupIdentify.bind(client),\n 'groupIdentify',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n setGroup: debugWrapper(\n client.setGroup.bind(client),\n 'setGroup',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n revenue: debugWrapper(\n client.revenue.bind(client),\n 'revenue',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n flush: debugWrapper(\n client.flush.bind(client),\n 'flush',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n getUserId: debugWrapper(\n client.getUserId.bind(client),\n 'getUserId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.userId']),\n ),\n setUserId: debugWrapper(\n client.setUserId.bind(client),\n 'setUserId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.userId']),\n ),\n getDeviceId: debugWrapper(\n client.getDeviceId.bind(client),\n 'getDeviceId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.deviceId']),\n ),\n setDeviceId: debugWrapper(\n client.setDeviceId.bind(client),\n 'setDeviceId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.deviceId']),\n ),\n reset: debugWrapper(\n client.reset.bind(client),\n 'reset',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.userId', 'config.deviceId']),\n ),\n getSessionId: debugWrapper(\n client.getSessionId.bind(client),\n 'getSessionId',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n setSessionId: debugWrapper(\n client.setSessionId.bind(client),\n 'setSessionId',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n extendSession: debugWrapper(\n client.extendSession.bind(client),\n 'extendSession',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n setOptOut: debugWrapper(\n client.setOptOut.bind(client),\n 'setOptOut',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n setTransport: debugWrapper(\n client.setTransport.bind(client),\n 'setTransport',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n };\n};\n\nexport default createInstance();\n"]}
1
+ {"version":3,"file":"browser-client-factory.js","sourceRoot":"","sources":["../../src/browser-client-factory.ts"],"names":[],"mappings":"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","sourcesContent":["import { debugWrapper, getClientLogConfig, getClientStates, BrowserClient } from '@amplitude/analytics-core';\nimport { AmplitudeBrowser } from './browser-client';\n\nexport const createInstance = (): BrowserClient => {\n const client = new AmplitudeBrowser();\n return {\n init: debugWrapper(\n client.init.bind(client),\n 'init',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n add: debugWrapper(\n client.add.bind(client),\n 'add',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.plugins']),\n ),\n remove: debugWrapper(\n client.remove.bind(client),\n 'remove',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.plugins']),\n ),\n track: debugWrapper(\n client.track.bind(client),\n 'track',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n logEvent: debugWrapper(\n client.logEvent.bind(client),\n 'logEvent',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n identify: debugWrapper(\n client.identify.bind(client),\n 'identify',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n groupIdentify: debugWrapper(\n client.groupIdentify.bind(client),\n 'groupIdentify',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n setGroup: debugWrapper(\n client.setGroup.bind(client),\n 'setGroup',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n revenue: debugWrapper(\n client.revenue.bind(client),\n 'revenue',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n flush: debugWrapper(\n client.flush.bind(client),\n 'flush',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n getUserId: debugWrapper(\n client.getUserId.bind(client),\n 'getUserId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.userId']),\n ),\n setUserId: debugWrapper(\n client.setUserId.bind(client),\n 'setUserId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.userId']),\n ),\n getDeviceId: debugWrapper(\n client.getDeviceId.bind(client),\n 'getDeviceId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.deviceId']),\n ),\n setDeviceId: debugWrapper(\n client.setDeviceId.bind(client),\n 'setDeviceId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.deviceId']),\n ),\n reset: debugWrapper(\n client.reset.bind(client),\n 'reset',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.userId', 'config.deviceId']),\n ),\n getSessionId: debugWrapper(\n client.getSessionId.bind(client),\n 'getSessionId',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n setSessionId: debugWrapper(\n client.setSessionId.bind(client),\n 'setSessionId',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n extendSession: debugWrapper(\n client.extendSession.bind(client),\n 'extendSession',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n setOptOut: debugWrapper(\n client.setOptOut.bind(client),\n 'setOptOut',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n setTransport: debugWrapper(\n client.setTransport.bind(client),\n 'setTransport',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n };\n};\n\nexport default createInstance();\n"]}
@@ -1,12 +1,11 @@
1
- import { AmplitudeCore } from '@amplitude/analytics-core';
2
- import { WebAttribution } from '@amplitude/analytics-client-common';
3
- import { BrowserClient, BrowserConfig, BrowserOptions, Event, EventOptions, Identify as IIdentify, Revenue as IRevenue, TransportType, Result } from '@amplitude/analytics-types';
1
+ import { AmplitudeCore, Event, EventOptions, IIdentify, IRevenue, TransportType, Result, BrowserOptions, BrowserConfig, BrowserClient } from '@amplitude/analytics-core';
2
+ import { WebAttribution } from './attribution/web-attribution';
4
3
  export declare class AmplitudeBrowser extends AmplitudeCore implements BrowserClient {
5
4
  config: BrowserConfig;
6
5
  previousSessionDeviceId: string | undefined;
7
6
  previousSessionUserId: string | undefined;
8
7
  webAttribution: WebAttribution | undefined;
9
- init(apiKey?: string, userIdOrOptions?: string | BrowserOptions, maybeOptions?: BrowserOptions): import("@amplitude/analytics-types").AmplitudeReturn<void>;
8
+ init(apiKey?: string, userIdOrOptions?: string | BrowserOptions, maybeOptions?: BrowserOptions): import("@amplitude/analytics-core").AmplitudeReturn<void>;
10
9
  protected _init(options: BrowserOptions & {
11
10
  apiKey: string;
12
11
  }): Promise<void>;
@@ -16,12 +15,12 @@ export declare class AmplitudeBrowser extends AmplitudeCore implements BrowserCl
16
15
  setDeviceId(deviceId: string): void;
17
16
  reset(): void;
18
17
  getSessionId(): number | undefined;
19
- setSessionId(sessionId: number): import("@amplitude/analytics-types").AmplitudeReturn<void> | import("@amplitude/analytics-types").AmplitudeReturn<Result[]>;
18
+ setSessionId(sessionId: number): import("@amplitude/analytics-core").AmplitudeReturn<void> | import("@amplitude/analytics-core").AmplitudeReturn<Result[]>;
20
19
  extendSession(): void;
21
20
  setTransport(transport: TransportType): void;
22
- identify(identify: IIdentify, eventOptions?: EventOptions): import("@amplitude/analytics-types").AmplitudeReturn<Result>;
23
- groupIdentify(groupType: string, groupName: string | string[], identify: IIdentify, eventOptions?: EventOptions): import("@amplitude/analytics-types").AmplitudeReturn<Result>;
24
- revenue(revenue: IRevenue, eventOptions?: EventOptions): import("@amplitude/analytics-types").AmplitudeReturn<Result>;
21
+ identify(identify: IIdentify, eventOptions?: EventOptions): import("@amplitude/analytics-core").AmplitudeReturn<Result>;
22
+ groupIdentify(groupType: string, groupName: string | string[], identify: IIdentify, eventOptions?: EventOptions): import("@amplitude/analytics-core").AmplitudeReturn<Result>;
23
+ revenue(revenue: IRevenue, eventOptions?: EventOptions): import("@amplitude/analytics-core").AmplitudeReturn<Result>;
25
24
  private trackCampaignEventIfNeeded;
26
25
  process(event: Event): Promise<Result>;
27
26
  private logBrowserOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"browser-client.d.ts","sourceRoot":"","sources":["../../src/browser-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAuD,MAAM,2BAA2B,CAAC;AAC/G,OAAO,EAeL,cAAc,EAEf,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,aAAa,EACb,aAAa,EACb,cAAc,EACd,KAAK,EACL,YAAY,EACZ,QAAQ,IAAI,SAAS,EACrB,OAAO,IAAI,QAAQ,EACnB,aAAa,EAEb,MAAM,EACP,MAAM,4BAA4B,CAAC;AAapC,qBAAa,gBAAiB,SAAQ,aAAc,YAAW,aAAa;IAG1E,MAAM,EAAE,aAAa,CAAC;IACtB,uBAAuB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,qBAAqB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,cAAc,EAAE,cAAc,GAAG,SAAS,CAAC;IAE3C,IAAI,CAAC,MAAM,SAAK,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,cAAc,EAAE,YAAY,CAAC,EAAE,cAAc;cAkB1E,KAAK,CAAC,OAAO,EAAE,cAAc,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE;IAyFlE,SAAS;IAIT,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;IAYpC,WAAW;IAIX,WAAW,CAAC,QAAQ,EAAE,MAAM;IAU5B,KAAK;IAKL,YAAY;IAIZ,YAAY,CAAC,SAAS,EAAE,MAAM;IAwD9B,aAAa;IAQb,YAAY,CAAC,SAAS,EAAE,aAAa;IAQrC,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,YAAY;IAezD,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,YAAY;IAS/G,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,YAAY;IAStD,OAAO,CAAC,0BAA0B;IAe5B,OAAO,CAAC,KAAK,EAAE,KAAK;IA0B1B,OAAO,CAAC,iBAAiB;CAY1B"}
1
+ {"version":3,"file":"browser-client.d.ts","sourceRoot":"","sources":["../../src/browser-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAYb,KAAK,EACL,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,aAAa,EAEb,MAAM,EACN,cAAc,EACd,aAAa,EACb,aAAa,EACd,MAAM,2BAA2B,CAAC;AAuBnC,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,qBAAa,gBAAiB,SAAQ,aAAc,YAAW,aAAa;IAG1E,MAAM,EAAE,aAAa,CAAC;IACtB,uBAAuB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,qBAAqB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,cAAc,EAAE,cAAc,GAAG,SAAS,CAAC;IAE3C,IAAI,CAAC,MAAM,SAAK,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,cAAc,EAAE,YAAY,CAAC,EAAE,cAAc;cAkB1E,KAAK,CAAC,OAAO,EAAE,cAAc,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE;IAyFlE,SAAS;IAIT,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;IAYpC,WAAW;IAIX,WAAW,CAAC,QAAQ,EAAE,MAAM;IAU5B,KAAK;IAKL,YAAY;IAIZ,YAAY,CAAC,SAAS,EAAE,MAAM;IAwD9B,aAAa;IAQb,YAAY,CAAC,SAAS,EAAE,aAAa;IAQrC,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,YAAY;IAezD,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,YAAY;IAS/G,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,YAAY;IAStD,OAAO,CAAC,0BAA0B;IAe5B,OAAO,CAAC,KAAK,EAAE,KAAK;IA0B1B,OAAO,CAAC,iBAAiB;CAY1B"}