@amplitude/analytics-browser 2.35.4 → 2.36.1

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 (119) hide show
  1. package/README.md +1 -1
  2. package/lib/cjs/attribution/helpers.d.ts +5 -1
  3. package/lib/cjs/attribution/helpers.d.ts.map +1 -1
  4. package/lib/cjs/attribution/helpers.js +199 -2
  5. package/lib/cjs/attribution/helpers.js.map +1 -1
  6. package/lib/cjs/attribution/web-attribution.d.ts +1 -0
  7. package/lib/cjs/attribution/web-attribution.d.ts.map +1 -1
  8. package/lib/cjs/attribution/web-attribution.js +3 -2
  9. package/lib/cjs/attribution/web-attribution.js.map +1 -1
  10. package/lib/cjs/browser-client-factory.d.ts.map +1 -1
  11. package/lib/cjs/browser-client-factory.js +1 -0
  12. package/lib/cjs/browser-client-factory.js.map +1 -1
  13. package/lib/cjs/browser-client.d.ts +7 -0
  14. package/lib/cjs/browser-client.d.ts.map +1 -1
  15. package/lib/cjs/browser-client.js +15 -0
  16. package/lib/cjs/browser-client.js.map +1 -1
  17. package/lib/cjs/config.d.ts +9 -5
  18. package/lib/cjs/config.d.ts.map +1 -1
  19. package/lib/cjs/config.js +53 -47
  20. package/lib/cjs/config.js.map +1 -1
  21. package/lib/cjs/index.d.ts +1 -1
  22. package/lib/cjs/index.d.ts.map +1 -1
  23. package/lib/cjs/index.js +2 -2
  24. package/lib/cjs/index.js.map +1 -1
  25. package/lib/cjs/transports/fetch.d.ts +7 -0
  26. package/lib/cjs/transports/fetch.d.ts.map +1 -0
  27. package/lib/cjs/transports/fetch.js +74 -0
  28. package/lib/cjs/transports/fetch.js.map +1 -0
  29. package/lib/cjs/transports/send-beacon.d.ts +6 -1
  30. package/lib/cjs/transports/send-beacon.d.ts.map +1 -1
  31. package/lib/cjs/transports/send-beacon.js +9 -3
  32. package/lib/cjs/transports/send-beacon.js.map +1 -1
  33. package/lib/cjs/transports/xhr.d.ts +1 -1
  34. package/lib/cjs/transports/xhr.d.ts.map +1 -1
  35. package/lib/cjs/transports/xhr.js +51 -16
  36. package/lib/cjs/transports/xhr.js.map +1 -1
  37. package/lib/cjs/types.d.ts +1 -1
  38. package/lib/cjs/types.d.ts.map +1 -1
  39. package/lib/cjs/types.js +2 -1
  40. package/lib/cjs/types.js.map +1 -1
  41. package/lib/cjs/version.d.ts +1 -1
  42. package/lib/cjs/version.js +1 -1
  43. package/lib/cjs/version.js.map +1 -1
  44. package/lib/esm/attribution/helpers.d.ts +5 -1
  45. package/lib/esm/attribution/helpers.d.ts.map +1 -1
  46. package/lib/esm/attribution/helpers.js +197 -2
  47. package/lib/esm/attribution/helpers.js.map +1 -1
  48. package/lib/esm/attribution/web-attribution.d.ts +1 -0
  49. package/lib/esm/attribution/web-attribution.d.ts.map +1 -1
  50. package/lib/esm/attribution/web-attribution.js +3 -2
  51. package/lib/esm/attribution/web-attribution.js.map +1 -1
  52. package/lib/esm/browser-client-factory.d.ts.map +1 -1
  53. package/lib/esm/browser-client-factory.js +1 -0
  54. package/lib/esm/browser-client-factory.js.map +1 -1
  55. package/lib/esm/browser-client.d.ts +7 -0
  56. package/lib/esm/browser-client.d.ts.map +1 -1
  57. package/lib/esm/browser-client.js +15 -0
  58. package/lib/esm/browser-client.js.map +1 -1
  59. package/lib/esm/config.d.ts +9 -5
  60. package/lib/esm/config.d.ts.map +1 -1
  61. package/lib/esm/config.js +53 -47
  62. package/lib/esm/config.js.map +1 -1
  63. package/lib/esm/index.d.ts +1 -1
  64. package/lib/esm/index.d.ts.map +1 -1
  65. package/lib/esm/index.js +1 -1
  66. package/lib/esm/index.js.map +1 -1
  67. package/lib/esm/transports/fetch.d.ts +7 -0
  68. package/lib/esm/transports/fetch.d.ts.map +1 -0
  69. package/lib/esm/transports/fetch.js +71 -0
  70. package/lib/esm/transports/fetch.js.map +1 -0
  71. package/lib/esm/transports/send-beacon.d.ts +6 -1
  72. package/lib/esm/transports/send-beacon.d.ts.map +1 -1
  73. package/lib/esm/transports/send-beacon.js +9 -3
  74. package/lib/esm/transports/send-beacon.js.map +1 -1
  75. package/lib/esm/transports/xhr.d.ts +1 -1
  76. package/lib/esm/transports/xhr.d.ts.map +1 -1
  77. package/lib/esm/transports/xhr.js +52 -17
  78. package/lib/esm/transports/xhr.js.map +1 -1
  79. package/lib/esm/types.d.ts +1 -1
  80. package/lib/esm/types.d.ts.map +1 -1
  81. package/lib/esm/types.js +1 -1
  82. package/lib/esm/types.js.map +1 -1
  83. package/lib/esm/version.d.ts +1 -1
  84. package/lib/esm/version.js +1 -1
  85. package/lib/esm/version.js.map +1 -1
  86. package/lib/scripts/amplitude-bookmarklet-snippet-min.js +1 -1
  87. package/lib/scripts/amplitude-bookmarklet.html +1 -1
  88. package/lib/scripts/amplitude-gtm-min.js +1 -1
  89. package/lib/scripts/amplitude-gtm-min.js.gz +0 -0
  90. package/lib/scripts/amplitude-gtm-min.js.map +1 -1
  91. package/lib/scripts/amplitude-gtm-snippet-min.js +1 -1
  92. package/lib/scripts/amplitude-min.js +1 -1
  93. package/lib/scripts/amplitude-min.js.gz +0 -0
  94. package/lib/scripts/amplitude-min.js.map +1 -1
  95. package/lib/scripts/amplitude-min.umd.js +1 -1
  96. package/lib/scripts/amplitude-min.umd.js.gz +0 -0
  97. package/lib/scripts/amplitude-snippet-instructions.html +1 -1
  98. package/lib/scripts/amplitude-snippet-min.js +1 -1
  99. package/lib/scripts/attribution/helpers.d.ts +5 -1
  100. package/lib/scripts/attribution/helpers.d.ts.map +1 -1
  101. package/lib/scripts/attribution/web-attribution.d.ts +1 -0
  102. package/lib/scripts/attribution/web-attribution.d.ts.map +1 -1
  103. package/lib/scripts/browser-client-factory.d.ts.map +1 -1
  104. package/lib/scripts/browser-client.d.ts +7 -0
  105. package/lib/scripts/browser-client.d.ts.map +1 -1
  106. package/lib/scripts/config.d.ts +9 -5
  107. package/lib/scripts/config.d.ts.map +1 -1
  108. package/lib/scripts/index.d.ts +1 -1
  109. package/lib/scripts/index.d.ts.map +1 -1
  110. package/lib/scripts/transports/fetch.d.ts +7 -0
  111. package/lib/scripts/transports/fetch.d.ts.map +1 -0
  112. package/lib/scripts/transports/send-beacon.d.ts +6 -1
  113. package/lib/scripts/transports/send-beacon.d.ts.map +1 -1
  114. package/lib/scripts/transports/xhr.d.ts +1 -1
  115. package/lib/scripts/transports/xhr.d.ts.map +1 -1
  116. package/lib/scripts/types.d.ts +1 -1
  117. package/lib/scripts/types.d.ts.map +1 -1
  118. package/lib/scripts/version.d.ts +1 -1
  119. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"browser-client.js","sourceRoot":"","sources":["../../src/browser-client.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,aAAa,EACb,WAAW,EACX,QAAQ,EACR,aAAa,EACb,OAAO,EACP,IAAI,EACJ,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,mBAAmB,EACnB,cAAc,EAMd,eAAe,EAQf,kBAAkB,EAGlB,iBAAiB,EACjB,mBAAmB,EACnB,MAAM,EACN,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,4BAA4B,EAC5B,wBAAwB,EACxB,4BAA4B,EAC5B,wBAAwB,EACxB,6BAA6B,EAC7B,gCAAgC,EAChC,4BAA4B,EAC5B,yBAAyB,EACzB,wBAAwB,EACxB,kBAAkB,EAClB,gCAAgC,EAChC,gCAAgC,EAChC,0BAA0B,GAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,8BAA8B,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzF,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC1G,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,gCAAgC,EAAE,MAAM,wCAAwC,CAAC;AAC1F,OAAO,EAAE,mCAAmC,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC7F,OAAO,EAAE,MAAM,IAAI,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAC3F,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAC;AAExF,IAAM,sBAAsB,GAAG,CAAC,CAAC,CAAC;AAElC;;;GAGG;AACH;IAAsC,oCAAa;IAAnD;QAAA,qEA2kBC;QAnkBC,0CAA0C;QAC1C,6EAA6E;QAC7E,4BAAsB,GAAG,CAAC,CAAC;;IAikB7B,CAAC;IA/jBC,+BAAI,GAAJ,UAAK,MAAW,EAAE,eAAyC,EAAE,YAA6B;QAArF,uBAAA,EAAA,WAAW;QACd,IAAI,MAA0B,CAAC;QAC/B,IAAI,OAAmC,CAAC;QACxC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACxB,MAAM,GAAG,eAAqC,CAAC;YAC/C,OAAO,GAAG,YAAY,CAAC;SACxB;aAAM;YACL,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE;gBACvC,MAAM,GAAG,eAAe,CAAC;gBACzB,OAAO,GAAG,SAAS,CAAC;aACrB;iBAAM;gBACL,MAAM,GAAG,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,MAAM,CAAC;gBACjC,OAAO,GAAG,eAAe,CAAC;aAC3B;SACF;QACD,OAAO,aAAa,CAAC,IAAI,CAAC,KAAK,uBAAM,OAAO,KAAE,MAAM,QAAA,EAAE,MAAM,QAAA,IAAG,CAAC,CAAC;IACnE,CAAC;IACe,gCAAK,GAArB,UAAsB,OAA4C;;;;;;;;wBAChE,0CAA0C;wBAC1C,IAAI,IAAI,CAAC,YAAY,EAAE;4BACrB,sBAAO;yBACR;wBACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;wBAKnB,iBAAiB,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;wBAIrD,cAAc,GAAG,MAAA,OAAO,CAAC,cAAc,mCAAI,IAAI,MAAM,EAAE,CAAC;wBACxD,UAAU,GAAG,MAAA,OAAO,CAAC,UAAU,mCAAI,mBAAmB,CAAC;wBAGzD,qBAAqB,GAAG,IAAI,CAAC,sBAAsB,CAAC;wBACpD,iBAAiB,GAAG,MAAA,OAAO,CAAC,iBAAiB,mCAAI,IAAI,CAAC;6BAKtD,iBAAiB,EAAjB,wBAAiB;wBACnB,kBAAkB,GAAG,IAAI,kBAAkB,CACzC,OAAO,CAAC,MAAM,EACd,cAAc,EACd,UAAU;wBACV,0BAA0B,CAAC,MAAA,OAAO,CAAC,YAAY,0CAAE,SAAS,CAC3D,CAAC;wBAEF,oDAAoD;wBACpD,qBAAM,IAAI,OAAO,CAAO,UAAC,OAAO;gCAC9B,mGAAmG;gCACnG,uBAAuB;gCACvB,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,SAAS,CAC3B,gCAAgC,EAChC,KAAK,EACL,UAAC,YAAiC,EAAE,MAAc,EAAE,SAAe;oCACjE,cAAc,CAAC,KAAK,CAClB,4CAA4C,EAC5C,IAAI,CAAC,SAAS,CACZ;wCACE,YAAY,cAAA;wCACZ,MAAM,QAAA;wCACN,SAAS,WAAA;qCACV,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAC;oCACF,IAAI,YAAY,EAAE;wCAChB,uDAAuD;wCACvD,IAAM,UAAU,GAAG,YAAY,CAAC,UAAoB,CAAC;wCACrD,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;4CACxD,qBAAqB,GAAG,UAAU,CAAC;yCACpC;wCAED,+CAA+C;wCAC/C,IAAM,OAAO,GAAG,YAAY,CAAC,OAAkB,CAAC;wCAChD,IAAI,OAAO,OAAO,KAAK,SAAS,EAAE;4CAChC,iBAAiB,GAAG,OAAO,CAAC;yCAC7B;qCACF;oCACD,OAAO,EAAE,CAAC;gCACZ,CAAC,CACF,CAAC;4BACJ,CAAC,CAAC,EAAA;;wBApCF,oDAAoD;wBACpD,SAmCE,CAAC;;;wBAKC,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE;4BAC1F,OAAO,EAAE,iBAAiB;4BAC1B,UAAU,EAAE,qBAAqB;yBAClC,CAAC,CAAC;wBACH,iBAAiB,CAAC,MAAM,CAAC,SAAS,EAAE,UAAG,SAAS,cAAI,OAAO,CAAE,CAAC,CAAC;wBAC/D,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE;4BACpC,iBAAiB,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;yBAC7D;wBAIsB,qBAAM,gBAAgB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE;gCAC9F,cAAc,gBAAA;gCACd,UAAU,YAAA;gCACV,iBAAiB,mBAAA;gCACjB,qBAAqB,uBAAA;6BACtB,CAAC,EAAA;;wBALI,cAAc,GAAG,SAKrB;6BAKE,CAAA,iBAAiB,IAAI,kBAAkB,CAAA,EAAvC,wBAAuC;wBACzC,qBAAM,IAAI,OAAO,CAAO,UAAC,OAAO;gCAC9B,mGAAmG;gCACnG,uBAAuB;gCACvB,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,SAAS,CAC3B,iCAAiC,EACjC,KAAK,EACL,UAAC,YAAiC,EAAE,MAAc,EAAE,SAAe;oCACjE,cAAc,CAAC,cAAc,CAAC,KAAK,CACjC,gCAAgC,EAChC,IAAI,CAAC,SAAS,CACZ;wCACE,YAAY,cAAA;wCACZ,MAAM,QAAA;wCACN,SAAS,WAAA;qCACV,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAC;oCACF,IAAI,YAAY,EAAE;wCAChB,mCAAmC,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;qCACnE;oCACD,yDAAyD;oCACzD,OAAO,EAAE,CAAC;gCACZ,CAAC,CACF,CAAC;4BACJ,CAAC,CAAC,EAAA;;wBA1BF,SA0BE,CAAC;;4BAGL,qBAAM,iBAAM,KAAK,YAAC,cAAc,CAAC,EAAA;;wBAAjC,SAAiC,CAAC;wBAClC,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;wBAEvC,IAAI,CAAC,MAAM,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;6BAGhD,4BAA4B,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,EAAzD,wBAAyD;wBAC3D,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;4BACtB,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,UAAO,MAAM;;;;;iDACvC,CAAC,MAAM,EAAP,wBAAO;4CACH,+BAA6B,4BAA4B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;4CAC7E,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,4BAA0B,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;4CAClF,qBAAM,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAA;;4CAAhC,SAAgC,CAAC;;;;;iCAEpC,CAAC,CAAC;yBACJ;wBACK,0BAA0B,GAAG,4BAA4B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wBAC7E,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,0BAA0B,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;wBAClF,2EAA2E;wBAC3E,qBAAM,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAA;;wBADhC,2EAA2E;wBAC3E,SAAgC,CAAC;;;wBAS7B,WAAW,GAAG,cAAc,EAAE,CAAC;wBAG/B,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;wBACvF,iBAAiB,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;wBAGpE,cAAc,GAClB,iBAAiB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;4BAClE,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC;4BAClC,CAAC,CAAC,SAAS,CAAC;wBAEZ,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;wBACtD,IAAI,iBAAiB,KAAK,sBAAsB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;4BACvE,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;yBAChC;wBAED,IAAI,CAAC,YAAY,CAAC,MAAA,MAAA,MAAA,OAAO,CAAC,SAAS,mCAAI,cAAc,mCAAI,iBAAiB,mCAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;wBAErG,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;4BACtB,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,UAAO,MAAM;;oCAC3C,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE;wCAC5C,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,KAAK,sBAAsB,EAAE;4CAC5D,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;yCAC9B;6CAAM;4CACL,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;yCAClD;qCACF;;;iCACF,CAAC,CAAC;yBACJ;wBAKK,SAAS,GAAG,qBAAqB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;wBAC9D,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC;4BAClC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;4BAC1B,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;yBAC/B,CAAC,CAAC;6BAIC,CAAA,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,eAAe,CAAA,EAAvC,yBAAuC;wBACzC,qBAAM,IAAI,CAAC,GAAG,CAAC,gCAAgC,EAAE,CAAC,CAAC,OAAO,EAAA;;wBAA1D,SAA0D,CAAC;;6BAE7D,qBAAM,IAAI,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,EAAE,iBAAiB,mBAAA,EAAE,CAAC,CAAC,CAAC,OAAO,EAAA;;wBAA9D,SAA8D,CAAC;wBAC/D,qBAAM,IAAI,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,OAAO,EAAA;;wBAArC,SAAqC,CAAC;wBACtC,qBAAM,IAAI,CAAC,GAAG,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC,OAAO,EAAA;;wBAAjD,SAAiD,CAAC;wBAElD,2BAA2B;wBAC3B,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;6BAEnB,6BAA6B,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,EAA1D,yBAA0D;wBAC5D,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;wBACzE,qBAAM,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC,CAAC,OAAO,EAAA;;wBAA9C,SAA8C,CAAC;;;6BAG7C,gCAAgC,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,EAA7D,yBAA6D;wBAC/D,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;wBACnE,qBAAM,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC,CAAC,OAAO,EAAA;;wBAAjD,SAAiD,CAAC;;;6BAIhD,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,EAAtD,yBAAsD;6BACpD,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAnB,yBAAmB;wBACrB,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;wBACrE,qBAAM,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,EAAA;;wBAAtF,SAAsF,CAAC;;;wBAEvF,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,UAAO,MAAM;;;;wCAC3C,wBAAwB;wCACxB,IAAI,MAAM,EAAE;4CACV,sBAAO;yCACR;wCACD,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;wCACrE,qBAAM,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,EAAA;;wCAAtF,SAAsF,CAAC;;;;6BACxF,CAAC,CAAC;;;6BAIH,4BAA4B,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAArD,yBAAqD;wBACvD,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;wBACzF,qBAAM,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,4BAA4B,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,iBAAiB,mBAAA,EAAE,CAAC,CAAC,CAAC,OAAO,EAAA;;wBAA3G,SAA2G,CAAC;;;6BAG1G,gCAAgC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAzD,yBAAyD;wBAC3D,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;wBAC3E,qBAAM,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,EAAA;;wBAAxF,SAAwF,CAAC;;;6BAGvF,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAjD,yBAAiD;wBACnD,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;wBACnE,qBAAM,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,EAAA;;wBAAnF,SAAmF,CAAC;;;6BAGlF,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAA3C,yBAA2C;wBAC7C,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;wBAC7D,qBAAM,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC,OAAO,EAAA;;wBAAzC,SAAyC,CAAC;;;6BAGxC,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAnD,yBAAmD;wBACrD,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;wBACpE,qBAAM,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC,CAAC,OAAO,EAAA;;wBAAjD,SAAiD,CAAC;;;wBAGpD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;wBAE1B,wCAAwC;wBACxC,qBAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAA;;wBAD1C,wCAAwC;wBACxC,SAA0C,CAAC;wBAE3C,2EAA2E;wBAC3E,SAAS,CAAC,WAAW,CAAC,gBAAgB,CAAC,UAAC,KAAK;4BAC3C,IAAM,KAAoC,KAAK,CAAC,eAAe,IAAI,EAAE,EAA7D,IAAI,UAAA,EAAK,oBAAoB,cAA/B,QAAiC,CAA8B,CAAC;4BACtE,IAAM,YAAY,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,MAAA,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;4BACrE,KAAK,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,oBAAoB,EAAE,YAAY,CAAC,CAAC;wBACvE,CAAC,CAAC,CAAC;;;;;KACJ;IAED,oCAAS,GAAT;;QACE,OAAO,MAAA,IAAI,CAAC,MAAM,0CAAE,MAAM,CAAC;IAC7B,CAAC;IAED,oCAAS,GAAT,UAAU,MAA0B;QAClC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YAC/C,OAAO;SACR;QACD,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;QACjE,IAAI,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,KAAK,SAAS,EAAE;YACzD,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;YAC5B,6DAA6D;YAC7D,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YACpD,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;SACtD;IACH,CAAC;IAED,sCAAW,GAAX;;QACE,OAAO,MAAA,IAAI,CAAC,MAAM,0CAAE,QAAQ,CAAC;IAC/B,CAAC;IAED,sCAAW,GAAX,UAAY,QAAgB;QAC1B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;YACnD,OAAO;SACR;QACD,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC;QACrE,IAAI,QAAQ,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAChC,6DAA6D;YAC7D,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;YACxD,oBAAoB,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;SAC1D;IACH,CAAC;IAED,gCAAK,GAAL;QACE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QACzB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;IAED,sCAAW,GAAX;;QACE,OAAO;YACL,QAAQ,EAAE,MAAA,IAAI,CAAC,MAAM,0CAAE,QAAQ;YAC/B,MAAM,EAAE,MAAA,IAAI,CAAC,MAAM,0CAAE,MAAM;YAC3B,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC;IACJ,CAAC;IAED,sCAAW,GAAX,UAAY,QAAoC;;;QAC9C,uBAAuB;QACvB,IAAI,QAAQ,IAAI,QAAQ,EAAE;YACxB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;SACjC;QAED,yBAAyB;QACzB,IAAI,UAAU,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,EAAE;YAC/C,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;SACrC;QAED,oDAAoD;QACpD,IAAI,gBAAgB,IAAI,QAAQ,EAAE;YAChC,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC;YAC9C,gDAAgD;YAChD,IAAM,WAAW,GAAG,IAAI,QAAQ,EAAE,CAAC;YACnC,uBAAuB;YACvB,IAAM,cAAc,GAAG,MAAA,QAAQ,CAAC,cAAc,mCAAI,EAAE,CAAC;;gBACrD,KAA2B,IAAA,KAAA,SAAA,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA,gBAAA,4BAAE;oBAAhD,IAAA,KAAA,mBAAY,EAAX,GAAG,QAAA,EAAE,KAAK,QAAA;oBACpB,mEAAmE;oBACnE,iEAAiE;oBACjE,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;iBAC7B;;;;;;;;;YACD,gFAAgF;YAChF,gFAAgF;YAChF,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;SAC5B;IACH,CAAC;IAED,oCAAS,GAAT;;QACE,OAAO,MAAA,IAAI,CAAC,MAAM,0CAAE,MAAM,CAAC;IAC7B,CAAC;IAED,uCAAY,GAAZ;;QACE,OAAO,MAAA,IAAI,CAAC,MAAM,0CAAE,SAAS,CAAC;IAChC,CAAC;IAED,uCAAY,GAAZ,UAAa,SAA6B;;QACxC,IAAM,QAAQ,GAAsB,EAAE,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;YACrD,OAAO,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;SACzC;QACD,+CAA+C;QAC/C,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YACtB,gEAAgE;YAChE,IAAI,CAAC,MAAM,CAAC,iBAAiB,GAAG,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,sBAAsB,CAAC;YACpE,OAAO,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;SACzC;QAED,oCAAoC;QACpC,IAAI,SAAS,KAAK,SAAS,EAAE;YAC3B,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;SACxB;QAED,2DAA2D;QAC3D,IAAI,SAAS,KAAK,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;YACvC,OAAO,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;SACzC;QAED,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,yBAAyB,EAAE,SAAS,CAAC,CAAC;QAEvE,IAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAC9C,IAAI,iBAAiB,KAAK,SAAS,EAAE;YACnC,6DAA6D;YAC7D,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;SAC7C;QAED,IAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QAChD,IAAI,WAAW,GAAG,MAAA,IAAI,CAAC,MAAM,CAAC,WAAW,mCAAI,CAAC,CAAC,CAAC;QAEhD,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,SAAS,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC;QAE5B,IAAI,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE;YACzD,IAAI,iBAAiB,IAAI,aAAa,EAAE;gBACtC,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,KAAK,CAAC,yBAAyB,EAAE,SAAS,EAAE;oBAC/C,SAAS,EAAE,IAAI,CAAC,uBAAuB;oBACvC,QAAQ,EAAE,EAAE,WAAW;oBACvB,UAAU,EAAE,iBAAiB;oBAC7B,IAAI,EAAE,aAAa,GAAG,CAAC;oBACvB,OAAO,EAAE,IAAI,CAAC,qBAAqB;iBACpC,CAAC,CAAC,OAAO,CACX,CAAC;aACH;YACD,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;SACnD;QAED,iEAAiE;QACjE,6DAA6D;QAC7D,+IAA+I;QAC/I,IAAM,sBAAsB,GAAG,IAAI,CAAC,0BAA0B,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;QAExF,2EAA2E;QAC3E,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YACxB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;SAC9E;QAED,IAAI,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE;YACzD,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,KAAK,CAAC,2BAA2B,EAAE,SAAS,EAAE;gBACjD,QAAQ,EAAE,sBAAsB,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW;gBAC9D,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBACjC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa;aAChC,CAAC,CAAC,OAAO,CACX,CAAC;SACH;QAED,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;QACpD,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAChD,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,wCAAa,GAAb;QACE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC3C,OAAO;SACR;QACD,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzC,CAAC;IAED,uCAAY,GAAZ,UAAa,SAAiC;QAC5C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;YACrD,OAAO;SACR;QACD,IAAI,CAAC,MAAM,CAAC,iBAAiB,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAC7D,CAAC;IAED,mCAAQ,GAAR,UAAS,QAAmB,EAAE,YAA2B;QACvD,IAAI,eAAe,CAAC,QAAQ,CAAC,EAAE;YAC7B,IAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAC;YAC1B,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;YACjB,QAAQ,GAAG,8BAA8B,CAAC,IAAI,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC;SAClE;QACD,IAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,OAAO,EAAE;YACzB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;SACtC;QACD,IAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,SAAS,EAAE;YAC3B,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;SAC1C;QACD,OAAO,iBAAM,QAAQ,YAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAChD,CAAC;IAED,wCAAa,GAAb,UAAc,SAAiB,EAAE,SAA4B,EAAE,QAAmB,EAAE,YAA2B;QAC7G,IAAI,eAAe,CAAC,QAAQ,CAAC,EAAE;YAC7B,IAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAC;YAC1B,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;YACjB,QAAQ,GAAG,8BAA8B,CAAC,IAAI,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC;SAClE;QACD,OAAO,iBAAM,aAAa,YAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC3E,CAAC;IAED,kCAAO,GAAP,UAAQ,OAAiB,EAAE,YAA2B;QACpD,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE;YAC5B,IAAM,KAAK,GAAG,OAAO,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;YAChB,OAAO,GAAG,8BAA8B,CAAC,IAAI,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;SAChE;QACD,OAAO,iBAAM,OAAO,YAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC9C,CAAC;IAEO,qDAA0B,GAAlC,UAAmC,WAAoB,EAAE,QAA4B;QACnF,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,sBAAsB,EAAE;YACvE,OAAO,KAAK,CAAC;SACd;QAED,IAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;QAC7E,IAAI,QAAQ,EAAE;YACZ,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC;SAClD;aAAM;YACL,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;SAC3B;QACD,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;IAEK,kCAAO,GAAb,UAAc,KAAY;;;;gBAClB,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACzB,mBAAmB,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;gBAC1F,+BAA+B,GACnC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,+BAA+B,EAAE,CAAC;gBAE/E,IACE,KAAK,CAAC,UAAU,KAAK,2BAA2B;oBAChD,KAAK,CAAC,UAAU,KAAK,yBAAyB;oBAC9C,CAAC,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC,EAC/D;oBACA,IAAI,mBAAmB,IAAI,+BAA+B,EAAE;wBAC1D,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;wBAC/B,IAAI,+BAA+B,EAAE;4BACnC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;yBAC3E;qBACF;yBAAM,IAAI,CAAC,mBAAmB,EAAE;wBAC/B,mEAAmE;wBACnE,0DAA0D;wBAC1D,IAAI,CAAC,0BAA0B,EAAE,CAAC;qBACnC;iBACF;gBAED,sBAAO,iBAAM,OAAO,YAAC,KAAK,CAAC,EAAC;;;KAC7B;IAEO,4CAAiB,GAAzB,UAA0B,aAAkD;QAC1E,IAAI;YACF,IAAM,iBAAiB,yBAClB,aAAa,KAChB,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,UAAU,GAC3D,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAC9B,2CAA2C,EAC3C,iBAAiB,CAAC,iBAAiB,CAAC,CACrC,CAAC;SACH;QAAC,OAAO,CAAC,EAAE;YACV,0BAA0B;YAC1B,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC;SACrE;IACH,CAAC;IAED;;;;;;;OAOG;IACH,oDAAyB,GAAzB,UAA0B,UAAkB;QAC1C,IAAI,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE;YACpC,OAAO;SACR;QACD,6DAA6D;QAC7D,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,sBAAsB,GAAG,UAAU,CAAC;YACzC,OAAO;SACR;IACH,CAAC;IACH,uBAAC;AAAD,CAAC,AA3kBD,CAAsC,aAAa,GA2kBlD","sourcesContent":["import {\n AmplitudeCore,\n Destination,\n Identify,\n returnWrapper,\n Revenue,\n UUID,\n getAnalyticsConnector,\n setConnectorDeviceId,\n setConnectorUserId,\n isNewSession,\n IdentityEventSender,\n getQueryParams,\n Event,\n EventOptions,\n IIdentify,\n IRevenue,\n TransportTypeOrOptions,\n OfflineDisabled,\n Result,\n BrowserOptions,\n BrowserConfig,\n BrowserClient,\n AnalyticsClient,\n AnalyticsIdentity,\n IRemoteConfigClient,\n RemoteConfigClient,\n RemoteConfig,\n Source,\n DiagnosticsClient,\n createIdentifyEvent,\n Logger,\n safeJsonStringify,\n} from '@amplitude/analytics-core';\nimport {\n getAttributionTrackingConfig,\n getPageViewTrackingConfig,\n getElementInteractionsConfig,\n getNetworkTrackingConfig,\n isAttributionTrackingEnabled,\n isSessionTrackingEnabled,\n isFileDownloadTrackingEnabled,\n isFormInteractionTrackingEnabled,\n isElementInteractionsEnabled,\n isPageViewTrackingEnabled,\n isNetworkTrackingEnabled,\n isWebVitalsEnabled,\n isFrustrationInteractionsEnabled,\n getFrustrationInteractionsConfig,\n isPageUrlEnrichmentEnabled,\n} from './default-tracking';\nimport { convertProxyObjectToRealObject, isInstanceProxy } from './utils/snippet-helper';\nimport { Context } from './plugins/context';\nimport { useBrowserConfig, createTransport, shouldFetchRemoteConfig } from './config';\nimport { pageViewTrackingPlugin } from '@amplitude/plugin-page-view-tracking-browser';\nimport { formInteractionTracking } from './plugins/form-interaction-tracking';\nimport { fileDownloadTracking } from './plugins/file-download-tracking';\nimport { DEFAULT_SESSION_END_EVENT, DEFAULT_SESSION_START_EVENT, DEFAULT_SERVER_ZONE } from './constants';\nimport { detNotify } from './det-notification';\nimport { networkConnectivityCheckerPlugin } from './plugins/network-connectivity-checker';\nimport { updateBrowserConfigWithRemoteConfig } from './config/joined-config';\nimport { autocapturePlugin, frustrationPlugin } from '@amplitude/plugin-autocapture-browser';\nimport { plugin as networkCapturePlugin } from '@amplitude/plugin-network-capture-browser';\nimport { webVitalsPlugin } from '@amplitude/plugin-web-vitals-browser';\nimport { WebAttribution } from './attribution/web-attribution';\nimport { LIBPREFIX } from './lib-prefix';\nimport { VERSION } from './version';\nimport { pageUrlEnrichmentPlugin } from '@amplitude/plugin-page-url-enrichment-browser';\n\nconst UNSPECIFIED_SESSION_ID = -1;\n\n/**\n * Exported for `@amplitude/unified` or integration with blade plugins.\n * If you only use `@amplitude/analytics-browser`, use `amplitude.init()` or `amplitude.createInstance()` instead.\n */\nexport class AmplitudeBrowser extends AmplitudeCore implements BrowserClient, AnalyticsClient {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n config: BrowserConfig;\n previousSessionDeviceId: string | undefined;\n previousSessionUserId: string | undefined;\n webAttribution: WebAttribution | undefined;\n\n // Backdoor to set diagnostics sample rate\n // by calling amplitude._setDiagnosticsSampleRate(1); before amplitude.init()\n _diagnosticsSampleRate = 0;\n\n init(apiKey = '', userIdOrOptions?: string | BrowserOptions, maybeOptions?: BrowserOptions) {\n let userId: string | undefined;\n let options: BrowserOptions | undefined;\n if (arguments.length > 2) {\n userId = userIdOrOptions as string | undefined;\n options = maybeOptions;\n } else {\n if (typeof userIdOrOptions === 'string') {\n userId = userIdOrOptions;\n options = undefined;\n } else {\n userId = userIdOrOptions?.userId;\n options = userIdOrOptions;\n }\n }\n return returnWrapper(this._init({ ...options, userId, apiKey }));\n }\n protected async _init(options: BrowserOptions & { apiKey: string }) {\n // Step 1: Block concurrent initialization\n if (this.initializing) {\n return;\n }\n this.initializing = true;\n\n // Step 2: Create browser config\n // Step 2.1: Determine if we should fetch remote config BEFORE creating browser config\n // This allows us to get diagnostics settings before creating the DiagnosticsClient\n const fetchRemoteConfig = shouldFetchRemoteConfig(options);\n\n // Set up early dependencies needed for remote config client\n // These use options directly or fall back to defaults\n const loggerProvider = options.loggerProvider ?? new Logger();\n const serverZone = options.serverZone ?? DEFAULT_SERVER_ZONE;\n\n let remoteConfigClient: IRemoteConfigClient | undefined;\n let diagnosticsSampleRate = this._diagnosticsSampleRate;\n let enableDiagnostics = options.enableDiagnostics ?? true;\n\n // Step 2.2: Fetch diagnostics config FIRST to get sample rate for DiagnosticsClient\n // We want to create DiagnosticsClient as early as possible so it can track more data\n /* istanbul ignore next */\n if (fetchRemoteConfig) {\n remoteConfigClient = new RemoteConfigClient(\n options.apiKey,\n loggerProvider,\n serverZone,\n /* istanbul ignore next */ options.remoteConfig?.serverUrl,\n );\n\n // Fetch diagnostics config first to get sample rate\n await new Promise<void>((resolve) => {\n // Disable coverage for this line because remote config client will always be defined in this case.\n // istanbul ignore next\n remoteConfigClient?.subscribe(\n 'configs.diagnostics.browserSDK',\n 'all',\n (remoteConfig: RemoteConfig | null, source: Source, lastFetch: Date) => {\n loggerProvider.debug(\n 'Diagnostics remote configuration received:',\n JSON.stringify(\n {\n remoteConfig,\n source,\n lastFetch,\n },\n null,\n 2,\n ),\n );\n if (remoteConfig) {\n // Validate and set sampleRate (must be a valid number)\n const sampleRate = remoteConfig.sampleRate as number;\n if (typeof sampleRate === 'number' && !isNaN(sampleRate)) {\n diagnosticsSampleRate = sampleRate;\n }\n\n // Validate and set enabled (must be a boolean)\n const enabled = remoteConfig.enabled as boolean;\n if (typeof enabled === 'boolean') {\n enableDiagnostics = enabled;\n }\n }\n resolve();\n },\n );\n });\n }\n\n // Step 2.3: Initialize diagnostics client as early as possible\n // Now we have the sample rate from remote config (if fetched)\n const diagnosticsClient = new DiagnosticsClient(options.apiKey, loggerProvider, serverZone, {\n enabled: enableDiagnostics,\n sampleRate: diagnosticsSampleRate,\n });\n diagnosticsClient.setTag('library', `${LIBPREFIX}/${VERSION}`);\n if (typeof navigator !== 'undefined') {\n diagnosticsClient.setTag('user_agent', navigator.userAgent);\n }\n\n // Step 2.4: Create browser config with diagnosticsClient and earlyConfig\n // earlyConfig ensures consistent logger/serverZone/diagnostics settings across all components\n const browserOptions = await useBrowserConfig(options.apiKey, options, this, diagnosticsClient, {\n loggerProvider,\n serverZone,\n enableDiagnostics,\n diagnosticsSampleRate,\n });\n\n // Step 2.5: Fetch analytics SDK remote config\n // This is fetched after DiagnosticsClient is created so diagnostics can track any issues\n /* istanbul ignore next */\n if (fetchRemoteConfig && remoteConfigClient) {\n await new Promise<void>((resolve) => {\n // Disable coverage for this line because remote config client will always be defined in this case.\n // istanbul ignore next\n remoteConfigClient?.subscribe(\n 'configs.analyticsSDK.browserSDK',\n 'all',\n (remoteConfig: RemoteConfig | null, source: Source, lastFetch: Date) => {\n browserOptions.loggerProvider.debug(\n 'Remote configuration received:',\n JSON.stringify(\n {\n remoteConfig,\n source,\n lastFetch,\n },\n null,\n 2,\n ),\n );\n if (remoteConfig) {\n updateBrowserConfigWithRemoteConfig(remoteConfig, browserOptions);\n }\n // Resolve the promise on first callback (initial config)\n resolve();\n },\n );\n });\n }\n\n await super._init(browserOptions);\n this.logBrowserOptions(browserOptions);\n\n this.config.remoteConfigClient = remoteConfigClient;\n\n // Add web attribution plugin\n if (isAttributionTrackingEnabled(this.config.defaultTracking)) {\n if (this.config.optOut) {\n this.timeline.addOptOutListener(async (optOut) => {\n if (!optOut) {\n const attributionTrackingOptions = getAttributionTrackingConfig(this.config);\n this.webAttribution = new WebAttribution(attributionTrackingOptions, this.config);\n await this.webAttribution.init();\n }\n });\n }\n const attributionTrackingOptions = getAttributionTrackingConfig(this.config);\n this.webAttribution = new WebAttribution(attributionTrackingOptions, this.config);\n // Fetch the current campaign, check if need to track web attribution later\n await this.webAttribution.init();\n }\n\n // Step 3: Set session ID\n // Priority 1: `options.sessionId`\n // Priority 2: sessionId from url if it's Number and ampTimestamp is valid\n // Priority 3: last known sessionId from user identity storage\n // Default: `Date.now()`\n // Session ID is handled differently than device ID and user ID due to session events\n const queryParams = getQueryParams();\n\n // Check if ampTimestamp is present and valid\n const ampTimestamp = queryParams.ampTimestamp ? Number(queryParams.ampTimestamp) : undefined;\n const isWithinTimeLimit = ampTimestamp ? Date.now() < ampTimestamp : true;\n\n // check if we need to set the sessionId\n const querySessionId =\n isWithinTimeLimit && !Number.isNaN(Number(queryParams.ampSessionId))\n ? Number(queryParams.ampSessionId)\n : undefined;\n\n let deferredSessionId = this.config.deferredSessionId;\n if (deferredSessionId === UNSPECIFIED_SESSION_ID && !this.config.optOut) {\n deferredSessionId = Date.now();\n }\n\n this.setSessionId(options.sessionId ?? querySessionId ?? deferredSessionId ?? this.config.sessionId);\n\n if (this.config.optOut) {\n this.timeline.addOptOutListener(async (optOut) => {\n if (!optOut && this.config.deferredSessionId) {\n if (this.config.deferredSessionId === UNSPECIFIED_SESSION_ID) {\n this.setSessionId(undefined);\n } else {\n this.setSessionId(this.config.deferredSessionId);\n }\n }\n });\n }\n\n // Set up the analytics connector to integrate with the experiment SDK.\n // Send events from the experiment SDK and forward identifies to the\n // identity store.\n const connector = getAnalyticsConnector(options.instanceName);\n connector.identityStore.setIdentity({\n userId: this.config.userId,\n deviceId: this.config.deviceId,\n });\n\n // Step 4: Install plugins\n // Do not track any events before this\n if (this.config.offline !== OfflineDisabled) {\n await this.add(networkConnectivityCheckerPlugin()).promise;\n }\n await this.add(new Destination({ diagnosticsClient })).promise;\n await this.add(new Context()).promise;\n await this.add(new IdentityEventSender()).promise;\n\n // Notify if DET is enabled\n detNotify(this.config);\n\n if (isFileDownloadTrackingEnabled(this.config.defaultTracking)) {\n this.config.loggerProvider.debug('Adding file download tracking plugin');\n await this.add(fileDownloadTracking()).promise;\n }\n\n if (isFormInteractionTrackingEnabled(this.config.defaultTracking)) {\n this.config.loggerProvider.debug('Adding form interaction plugin');\n await this.add(formInteractionTracking()).promise;\n }\n\n // Add page view plugin\n if (isPageViewTrackingEnabled(this.config.defaultTracking)) {\n if (!this.config.optOut) {\n this.config.loggerProvider.debug('Adding page view tracking plugin');\n await this.add(pageViewTrackingPlugin(getPageViewTrackingConfig(this.config))).promise;\n } else {\n this.timeline.addOptOutListener(async (optOut) => {\n /* istanbul ignore if */\n if (optOut) {\n return;\n }\n this.config.loggerProvider.debug('Adding page view tracking plugin');\n await this.add(pageViewTrackingPlugin(getPageViewTrackingConfig(this.config))).promise;\n });\n }\n }\n\n if (isElementInteractionsEnabled(this.config.autocapture)) {\n this.config.loggerProvider.debug('Adding user interactions plugin (autocapture plugin)');\n await this.add(autocapturePlugin(getElementInteractionsConfig(this.config), { diagnosticsClient })).promise;\n }\n\n if (isFrustrationInteractionsEnabled(this.config.autocapture)) {\n this.config.loggerProvider.debug('Adding frustration interactions plugin');\n await this.add(frustrationPlugin(getFrustrationInteractionsConfig(this.config))).promise;\n }\n\n if (isNetworkTrackingEnabled(this.config.autocapture)) {\n this.config.loggerProvider.debug('Adding network tracking plugin');\n await this.add(networkCapturePlugin(getNetworkTrackingConfig(this.config))).promise;\n }\n\n if (isWebVitalsEnabled(this.config.autocapture)) {\n this.config.loggerProvider.debug('Adding web vitals plugin');\n await this.add(webVitalsPlugin()).promise;\n }\n\n if (isPageUrlEnrichmentEnabled(this.config.autocapture)) {\n this.config.loggerProvider.debug('Adding referrer page url plugin');\n await this.add(pageUrlEnrichmentPlugin()).promise;\n }\n\n this.initializing = false;\n\n // Step 6: Run queued dispatch functions\n await this.runQueuedFunctions('dispatchQ');\n\n // Step 7: Add the event receiver after running remaining queued functions.\n connector.eventBridge.setEventReceiver((event) => {\n const { time, ...cleanEventProperties } = event.eventProperties || {};\n const eventOptions = typeof time === 'number' ? { time } : undefined;\n void this.track(event.eventType, cleanEventProperties, eventOptions);\n });\n }\n\n getUserId() {\n return this.config?.userId;\n }\n\n setUserId(userId: string | undefined) {\n if (!this.config) {\n this.q.push(this.setUserId.bind(this, userId));\n return;\n }\n this.config.loggerProvider.debug('function setUserId: ', userId);\n if (userId !== this.config.userId || userId === undefined) {\n this.config.userId = userId;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n this.timeline.onIdentityChanged({ userId: userId });\n setConnectorUserId(userId, this.config.instanceName);\n }\n }\n\n getDeviceId() {\n return this.config?.deviceId;\n }\n\n setDeviceId(deviceId: string) {\n if (!this.config) {\n this.q.push(this.setDeviceId.bind(this, deviceId));\n return;\n }\n this.config.loggerProvider.debug('function setDeviceId: ', deviceId);\n if (deviceId !== this.config.deviceId) {\n this.config.deviceId = deviceId;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n this.timeline.onIdentityChanged({ deviceId: deviceId });\n setConnectorDeviceId(deviceId, this.config.instanceName);\n }\n }\n\n reset() {\n this.setDeviceId(UUID());\n this.setUserId(undefined);\n this.timeline.onReset();\n }\n\n getIdentity() {\n return {\n deviceId: this.config?.deviceId,\n userId: this.config?.userId,\n userProperties: this.userProperties,\n };\n }\n\n setIdentity(identity: Partial<AnalyticsIdentity>) {\n // Handle userId change\n if ('userId' in identity) {\n this.setUserId(identity.userId);\n }\n\n // Handle deviceId change\n if ('deviceId' in identity && identity.deviceId) {\n this.setDeviceId(identity.deviceId);\n }\n\n // Handle userProperties change - auto-send identify\n if ('userProperties' in identity) {\n this.userProperties = identity.userProperties;\n // Auto-send identify event with $set operations\n const identifyObj = new Identify();\n // istanbul ignore next\n const userProperties = identity.userProperties ?? {};\n for (const [key, value] of Object.entries(userProperties)) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n identifyObj.set(key, value);\n }\n // The identify event processing in core-client already calls onIdentityChanged,\n // so we don't need to call it explicitly here to avoid duplicate notifications.\n this.identify(identifyObj);\n }\n }\n\n getOptOut(): boolean | undefined {\n return this.config?.optOut;\n }\n\n getSessionId() {\n return this.config?.sessionId;\n }\n\n setSessionId(sessionId: number | undefined) {\n const promises: Promise<Result>[] = [];\n if (!this.config) {\n this.q.push(this.setSessionId.bind(this, sessionId));\n return returnWrapper(Promise.resolve());\n }\n // do not start a new session if optOut is true\n if (this.config.optOut) {\n // save the sessionId to storage to be used when optOut is false\n this.config.deferredSessionId = sessionId ?? UNSPECIFIED_SESSION_ID;\n return returnWrapper(Promise.resolve());\n }\n\n // default sessionId to current time\n if (sessionId === undefined) {\n sessionId = Date.now();\n }\n\n // Prevents starting a new session with the same session ID\n if (sessionId === this.config.sessionId) {\n return returnWrapper(Promise.resolve());\n }\n\n this.config.loggerProvider.debug('function setSessionId: ', sessionId);\n\n const previousSessionId = this.getSessionId();\n if (previousSessionId !== sessionId) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n this.timeline.onSessionIdChanged(sessionId);\n }\n\n const lastEventTime = this.config.lastEventTime;\n let lastEventId = this.config.lastEventId ?? -1;\n\n this.config.sessionId = sessionId;\n this.config.lastEventTime = undefined;\n this.config.pageCounter = 0;\n\n if (isSessionTrackingEnabled(this.config.defaultTracking)) {\n if (previousSessionId && lastEventTime) {\n promises.push(\n this.track(DEFAULT_SESSION_END_EVENT, undefined, {\n device_id: this.previousSessionDeviceId,\n event_id: ++lastEventId,\n session_id: previousSessionId,\n time: lastEventTime + 1,\n user_id: this.previousSessionUserId,\n }).promise,\n );\n }\n this.config.lastEventTime = this.config.sessionId;\n }\n\n // Fire web attribution event when enable webAttribution tracking\n // 1. has new campaign (call setSessionId from init function)\n // 2. or shouldTrackNewCampaign (call setSessionId from async process(event) when there has new campaign and resetSessionOnNewCampaign = true )\n const isCampaignEventTracked = this.trackCampaignEventIfNeeded(++lastEventId, promises);\n\n // track the identify event if an Identify object is provided in the config\n if (this.config.identify) {\n promises.push(this.track(createIdentifyEvent(this.config.identify)).promise);\n }\n\n if (isSessionTrackingEnabled(this.config.defaultTracking)) {\n promises.push(\n this.track(DEFAULT_SESSION_START_EVENT, undefined, {\n event_id: isCampaignEventTracked ? ++lastEventId : lastEventId,\n session_id: this.config.sessionId,\n time: this.config.lastEventTime,\n }).promise,\n );\n }\n\n this.previousSessionDeviceId = this.config.deviceId;\n this.previousSessionUserId = this.config.userId;\n return returnWrapper(Promise.all(promises));\n }\n\n extendSession() {\n if (!this.config) {\n this.q.push(this.extendSession.bind(this));\n return;\n }\n this.config.lastEventTime = Date.now();\n }\n\n setTransport(transport: TransportTypeOrOptions) {\n if (!this.config) {\n this.q.push(this.setTransport.bind(this, transport));\n return;\n }\n this.config.transportProvider = createTransport(transport);\n }\n\n identify(identify: IIdentify, eventOptions?: EventOptions) {\n if (isInstanceProxy(identify)) {\n const queue = identify._q;\n identify._q = [];\n identify = convertProxyObjectToRealObject(new Identify(), queue);\n }\n if (eventOptions?.user_id) {\n this.setUserId(eventOptions.user_id);\n }\n if (eventOptions?.device_id) {\n this.setDeviceId(eventOptions.device_id);\n }\n return super.identify(identify, eventOptions);\n }\n\n groupIdentify(groupType: string, groupName: string | string[], identify: IIdentify, eventOptions?: EventOptions) {\n if (isInstanceProxy(identify)) {\n const queue = identify._q;\n identify._q = [];\n identify = convertProxyObjectToRealObject(new Identify(), queue);\n }\n return super.groupIdentify(groupType, groupName, identify, eventOptions);\n }\n\n revenue(revenue: IRevenue, eventOptions?: EventOptions) {\n if (isInstanceProxy(revenue)) {\n const queue = revenue._q;\n revenue._q = [];\n revenue = convertProxyObjectToRealObject(new Revenue(), queue);\n }\n return super.revenue(revenue, eventOptions);\n }\n\n private trackCampaignEventIfNeeded(lastEventId?: number, promises?: Promise<Result>[]) {\n if (!this.webAttribution || !this.webAttribution.shouldTrackNewCampaign) {\n return false;\n }\n\n const campaignEvent = this.webAttribution.generateCampaignEvent(lastEventId);\n if (promises) {\n promises.push(this.track(campaignEvent).promise);\n } else {\n this.track(campaignEvent);\n }\n this.config.loggerProvider.log('Tracking attribution.');\n return true;\n }\n\n async process(event: Event) {\n const currentTime = Date.now();\n const isEventInNewSession = isNewSession(this.config.sessionTimeout, this.config.lastEventTime);\n const shouldSetSessionIdOnNewCampaign =\n this.webAttribution && this.webAttribution.shouldSetSessionIdOnNewCampaign();\n\n if (\n event.event_type !== DEFAULT_SESSION_START_EVENT &&\n event.event_type !== DEFAULT_SESSION_END_EVENT &&\n (!event.session_id || event.session_id === this.getSessionId())\n ) {\n if (isEventInNewSession || shouldSetSessionIdOnNewCampaign) {\n this.setSessionId(currentTime);\n if (shouldSetSessionIdOnNewCampaign) {\n this.config.loggerProvider.log('Created a new session for new campaign.');\n }\n } else if (!isEventInNewSession) {\n // Web attribution should be tracked during the middle of a session\n // if there has been a chance in the campaign information.\n this.trackCampaignEventIfNeeded();\n }\n }\n\n return super.process(event);\n }\n\n private logBrowserOptions(browserConfig: BrowserOptions & { apiKey: string }) {\n try {\n const browserConfigCopy = {\n ...browserConfig,\n apiKey: browserConfig.apiKey.substring(0, 10) + '********',\n };\n this.config.loggerProvider.debug(\n 'Initialized Amplitude with BrowserConfig:',\n safeJsonStringify(browserConfigCopy),\n );\n } catch (e) {\n /* istanbul ignore next */\n this.config.loggerProvider.error('Error logging browser config', e);\n }\n }\n\n /**\n * @experimental\n * WARNING: This method is for internal testing only and is not part of the public API.\n * It may be changed or removed at any time without notice.\n *\n * Sets the diagnostics sample rate before amplitude.init()\n * @param sampleRate - The sample rate to set\n */\n _setDiagnosticsSampleRate(sampleRate: number): void {\n if (sampleRate > 1 || sampleRate < 0) {\n return;\n }\n // Set diagnostics sample rate before initializing the config\n if (!this.config) {\n this._diagnosticsSampleRate = sampleRate;\n return;\n }\n }\n}\n"]}
1
+ {"version":3,"file":"browser-client.js","sourceRoot":"","sources":["../../src/browser-client.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AmplitudeCore,\n Destination,\n Identify,\n returnWrapper,\n Revenue,\n UUID,\n getAnalyticsConnector,\n setConnectorDeviceId,\n setConnectorUserId,\n isNewSession,\n IdentityEventSender,\n getQueryParams,\n Event,\n EventOptions,\n IIdentify,\n IRevenue,\n TransportTypeOrOptions,\n OfflineDisabled,\n Result,\n BrowserOptions,\n BrowserConfig,\n BrowserClient,\n AnalyticsClient,\n AnalyticsIdentity,\n IRemoteConfigClient,\n RemoteConfigClient,\n RemoteConfig,\n Source,\n DiagnosticsClient,\n createIdentifyEvent,\n Logger,\n safeJsonStringify,\n} from '@amplitude/analytics-core';\nimport {\n getAttributionTrackingConfig,\n getPageViewTrackingConfig,\n getElementInteractionsConfig,\n getNetworkTrackingConfig,\n isAttributionTrackingEnabled,\n isSessionTrackingEnabled,\n isFileDownloadTrackingEnabled,\n isFormInteractionTrackingEnabled,\n isElementInteractionsEnabled,\n isPageViewTrackingEnabled,\n isNetworkTrackingEnabled,\n isWebVitalsEnabled,\n isFrustrationInteractionsEnabled,\n getFrustrationInteractionsConfig,\n isPageUrlEnrichmentEnabled,\n} from './default-tracking';\nimport { convertProxyObjectToRealObject, isInstanceProxy } from './utils/snippet-helper';\nimport { Context } from './plugins/context';\nimport { useBrowserConfig, createTransport, shouldFetchRemoteConfig } from './config';\nimport { pageViewTrackingPlugin } from '@amplitude/plugin-page-view-tracking-browser';\nimport { formInteractionTracking } from './plugins/form-interaction-tracking';\nimport { fileDownloadTracking } from './plugins/file-download-tracking';\nimport { DEFAULT_SESSION_END_EVENT, DEFAULT_SESSION_START_EVENT, DEFAULT_SERVER_ZONE } from './constants';\nimport { detNotify } from './det-notification';\nimport { networkConnectivityCheckerPlugin } from './plugins/network-connectivity-checker';\nimport { updateBrowserConfigWithRemoteConfig } from './config/joined-config';\nimport { autocapturePlugin, frustrationPlugin } from '@amplitude/plugin-autocapture-browser';\nimport { plugin as networkCapturePlugin } from '@amplitude/plugin-network-capture-browser';\nimport { webVitalsPlugin } from '@amplitude/plugin-web-vitals-browser';\nimport { WebAttribution } from './attribution/web-attribution';\nimport { LIBPREFIX } from './lib-prefix';\nimport { VERSION } from './version';\nimport { pageUrlEnrichmentPlugin } from '@amplitude/plugin-page-url-enrichment-browser';\n\nconst UNSPECIFIED_SESSION_ID = -1;\n\n/**\n * Exported for `@amplitude/unified` or integration with blade plugins.\n * If you only use `@amplitude/analytics-browser`, use `amplitude.init()` or `amplitude.createInstance()` instead.\n */\nexport class AmplitudeBrowser extends AmplitudeCore implements BrowserClient, AnalyticsClient {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n config: BrowserConfig;\n previousSessionDeviceId: string | undefined;\n previousSessionUserId: string | undefined;\n webAttribution: WebAttribution | undefined;\n\n // Backdoor to set diagnostics sample rate\n // by calling amplitude._setDiagnosticsSampleRate(1); before amplitude.init()\n _diagnosticsSampleRate = 0;\n\n // Backdoor to test request body compression\n // by calling amplitude._enableRequestBodyCompressionExperimental(true); before amplitude.init()\n _enableRequestBodyCompressionExperimentalValue = false;\n\n init(apiKey = '', userIdOrOptions?: string | BrowserOptions, maybeOptions?: BrowserOptions) {\n let userId: string | undefined;\n let options: BrowserOptions | undefined;\n if (arguments.length > 2) {\n userId = userIdOrOptions as string | undefined;\n options = maybeOptions;\n } else {\n if (typeof userIdOrOptions === 'string') {\n userId = userIdOrOptions;\n options = undefined;\n } else {\n userId = userIdOrOptions?.userId;\n options = userIdOrOptions;\n }\n }\n return returnWrapper(this._init({ ...options, userId, apiKey }));\n }\n protected async _init(options: BrowserOptions & { apiKey: string }) {\n // Step 1: Block concurrent initialization\n if (this.initializing) {\n return;\n }\n this.initializing = true;\n\n // Step 2: Create browser config\n // Step 2.1: Determine if we should fetch remote config BEFORE creating browser config\n // This allows us to get diagnostics settings before creating the DiagnosticsClient\n const fetchRemoteConfig = shouldFetchRemoteConfig(options);\n\n // Set up early dependencies needed for remote config client\n // These use options directly or fall back to defaults\n const loggerProvider = options.loggerProvider ?? new Logger();\n const serverZone = options.serverZone ?? DEFAULT_SERVER_ZONE;\n\n let remoteConfigClient: IRemoteConfigClient | undefined;\n let diagnosticsSampleRate = this._diagnosticsSampleRate;\n let enableDiagnostics = options.enableDiagnostics ?? true;\n\n // Step 2.2: Fetch diagnostics config FIRST to get sample rate for DiagnosticsClient\n // We want to create DiagnosticsClient as early as possible so it can track more data\n /* istanbul ignore next */\n if (fetchRemoteConfig) {\n remoteConfigClient = new RemoteConfigClient(\n options.apiKey,\n loggerProvider,\n serverZone,\n /* istanbul ignore next */ options.remoteConfig?.serverUrl,\n );\n\n // Fetch diagnostics config first to get sample rate\n await new Promise<void>((resolve) => {\n // Disable coverage for this line because remote config client will always be defined in this case.\n // istanbul ignore next\n remoteConfigClient?.subscribe(\n 'configs.diagnostics.browserSDK',\n 'all',\n (remoteConfig: RemoteConfig | null, source: Source, lastFetch: Date) => {\n loggerProvider.debug(\n 'Diagnostics remote configuration received:',\n JSON.stringify(\n {\n remoteConfig,\n source,\n lastFetch,\n },\n null,\n 2,\n ),\n );\n if (remoteConfig) {\n // Validate and set sampleRate (must be a valid number)\n const sampleRate = remoteConfig.sampleRate as number;\n if (typeof sampleRate === 'number' && !isNaN(sampleRate)) {\n diagnosticsSampleRate = sampleRate;\n }\n\n // Validate and set enabled (must be a boolean)\n const enabled = remoteConfig.enabled as boolean;\n if (typeof enabled === 'boolean') {\n enableDiagnostics = enabled;\n }\n }\n resolve();\n },\n );\n });\n }\n\n // Step 2.3: Initialize diagnostics client as early as possible\n // Now we have the sample rate from remote config (if fetched)\n const diagnosticsClient = new DiagnosticsClient(options.apiKey, loggerProvider, serverZone, {\n enabled: enableDiagnostics,\n sampleRate: diagnosticsSampleRate,\n });\n diagnosticsClient.setTag('library', `${LIBPREFIX}/${VERSION}`);\n if (typeof navigator !== 'undefined') {\n diagnosticsClient.setTag('user_agent', navigator.userAgent);\n }\n\n // Step 2.4: Create browser config with diagnosticsClient and earlyConfig\n // earlyConfig ensures consistent logger/serverZone/diagnostics settings across all components\n const browserOptions = await useBrowserConfig(options.apiKey, options, this, diagnosticsClient, {\n loggerProvider,\n serverZone,\n enableDiagnostics,\n diagnosticsSampleRate,\n });\n\n // Step 2.5: Fetch analytics SDK remote config\n // This is fetched after DiagnosticsClient is created so diagnostics can track any issues\n /* istanbul ignore next */\n if (fetchRemoteConfig && remoteConfigClient) {\n await new Promise<void>((resolve) => {\n // Disable coverage for this line because remote config client will always be defined in this case.\n // istanbul ignore next\n remoteConfigClient?.subscribe(\n 'configs.analyticsSDK.browserSDK',\n 'all',\n (remoteConfig: RemoteConfig | null, source: Source, lastFetch: Date) => {\n browserOptions.loggerProvider.debug(\n 'Remote configuration received:',\n JSON.stringify(\n {\n remoteConfig,\n source,\n lastFetch,\n },\n null,\n 2,\n ),\n );\n if (remoteConfig) {\n updateBrowserConfigWithRemoteConfig(remoteConfig, browserOptions);\n }\n // Resolve the promise on first callback (initial config)\n resolve();\n },\n );\n });\n }\n\n await super._init(browserOptions);\n this.logBrowserOptions(browserOptions);\n\n this.config.remoteConfigClient = remoteConfigClient;\n\n // Add web attribution plugin\n if (isAttributionTrackingEnabled(this.config.defaultTracking)) {\n if (this.config.optOut) {\n this.timeline.addOptOutListener(async (optOut) => {\n if (!optOut) {\n const attributionTrackingOptions = getAttributionTrackingConfig(this.config);\n this.webAttribution = new WebAttribution(attributionTrackingOptions, this.config);\n await this.webAttribution.init();\n }\n });\n }\n const attributionTrackingOptions = getAttributionTrackingConfig(this.config);\n this.webAttribution = new WebAttribution(attributionTrackingOptions, this.config);\n // Fetch the current campaign, check if need to track web attribution later\n await this.webAttribution.init();\n }\n\n // Step 3: Set session ID\n // Priority 1: `options.sessionId`\n // Priority 2: sessionId from url if it's Number and ampTimestamp is valid\n // Priority 3: last known sessionId from user identity storage\n // Default: `Date.now()`\n // Session ID is handled differently than device ID and user ID due to session events\n const queryParams = getQueryParams();\n\n // Check if ampTimestamp is present and valid\n const ampTimestamp = queryParams.ampTimestamp ? Number(queryParams.ampTimestamp) : undefined;\n const isWithinTimeLimit = ampTimestamp ? Date.now() < ampTimestamp : true;\n\n // check if we need to set the sessionId\n const querySessionId =\n isWithinTimeLimit && !Number.isNaN(Number(queryParams.ampSessionId))\n ? Number(queryParams.ampSessionId)\n : undefined;\n\n let deferredSessionId = this.config.deferredSessionId;\n if (deferredSessionId === UNSPECIFIED_SESSION_ID && !this.config.optOut) {\n deferredSessionId = Date.now();\n }\n\n this.setSessionId(options.sessionId ?? querySessionId ?? deferredSessionId ?? this.config.sessionId);\n\n if (this.config.optOut) {\n this.timeline.addOptOutListener(async (optOut) => {\n if (!optOut && this.config.deferredSessionId) {\n if (this.config.deferredSessionId === UNSPECIFIED_SESSION_ID) {\n this.setSessionId(undefined);\n } else {\n this.setSessionId(this.config.deferredSessionId);\n }\n }\n });\n }\n\n // Set up the analytics connector to integrate with the experiment SDK.\n // Send events from the experiment SDK and forward identifies to the\n // identity store.\n const connector = getAnalyticsConnector(options.instanceName);\n connector.identityStore.setIdentity({\n userId: this.config.userId,\n deviceId: this.config.deviceId,\n });\n\n // Step 4: Install plugins\n // Do not track any events before this\n if (this.config.offline !== OfflineDisabled) {\n await this.add(networkConnectivityCheckerPlugin()).promise;\n }\n await this.add(new Destination({ diagnosticsClient })).promise;\n await this.add(new Context()).promise;\n await this.add(new IdentityEventSender()).promise;\n\n // Notify if DET is enabled\n detNotify(this.config);\n\n if (isFileDownloadTrackingEnabled(this.config.defaultTracking)) {\n this.config.loggerProvider.debug('Adding file download tracking plugin');\n await this.add(fileDownloadTracking()).promise;\n }\n\n if (isFormInteractionTrackingEnabled(this.config.defaultTracking)) {\n this.config.loggerProvider.debug('Adding form interaction plugin');\n await this.add(formInteractionTracking()).promise;\n }\n\n // Add page view plugin\n if (isPageViewTrackingEnabled(this.config.defaultTracking)) {\n if (!this.config.optOut) {\n this.config.loggerProvider.debug('Adding page view tracking plugin');\n await this.add(pageViewTrackingPlugin(getPageViewTrackingConfig(this.config))).promise;\n } else {\n this.timeline.addOptOutListener(async (optOut) => {\n /* istanbul ignore if */\n if (optOut) {\n return;\n }\n this.config.loggerProvider.debug('Adding page view tracking plugin');\n await this.add(pageViewTrackingPlugin(getPageViewTrackingConfig(this.config))).promise;\n });\n }\n }\n\n if (isElementInteractionsEnabled(this.config.autocapture)) {\n this.config.loggerProvider.debug('Adding user interactions plugin (autocapture plugin)');\n await this.add(autocapturePlugin(getElementInteractionsConfig(this.config), { diagnosticsClient })).promise;\n }\n\n if (isFrustrationInteractionsEnabled(this.config.autocapture)) {\n this.config.loggerProvider.debug('Adding frustration interactions plugin');\n await this.add(frustrationPlugin(getFrustrationInteractionsConfig(this.config))).promise;\n }\n\n if (isNetworkTrackingEnabled(this.config.autocapture)) {\n this.config.loggerProvider.debug('Adding network tracking plugin');\n await this.add(networkCapturePlugin(getNetworkTrackingConfig(this.config))).promise;\n }\n\n if (isWebVitalsEnabled(this.config.autocapture)) {\n this.config.loggerProvider.debug('Adding web vitals plugin');\n await this.add(webVitalsPlugin()).promise;\n }\n\n if (isPageUrlEnrichmentEnabled(this.config.autocapture)) {\n this.config.loggerProvider.debug('Adding referrer page url plugin');\n await this.add(pageUrlEnrichmentPlugin()).promise;\n }\n\n this.initializing = false;\n\n // Step 6: Run queued dispatch functions\n await this.runQueuedFunctions('dispatchQ');\n\n // Step 7: Add the event receiver after running remaining queued functions.\n connector.eventBridge.setEventReceiver((event) => {\n const { time, ...cleanEventProperties } = event.eventProperties || {};\n const eventOptions = typeof time === 'number' ? { time } : undefined;\n void this.track(event.eventType, cleanEventProperties, eventOptions);\n });\n }\n\n getUserId() {\n return this.config?.userId;\n }\n\n setUserId(userId: string | undefined) {\n if (!this.config) {\n this.q.push(this.setUserId.bind(this, userId));\n return;\n }\n this.config.loggerProvider.debug('function setUserId: ', userId);\n if (userId !== this.config.userId || userId === undefined) {\n this.config.userId = userId;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n this.timeline.onIdentityChanged({ userId: userId });\n setConnectorUserId(userId, this.config.instanceName);\n }\n }\n\n getDeviceId() {\n return this.config?.deviceId;\n }\n\n setDeviceId(deviceId: string) {\n if (!this.config) {\n this.q.push(this.setDeviceId.bind(this, deviceId));\n return;\n }\n this.config.loggerProvider.debug('function setDeviceId: ', deviceId);\n if (deviceId !== this.config.deviceId) {\n this.config.deviceId = deviceId;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n this.timeline.onIdentityChanged({ deviceId: deviceId });\n setConnectorDeviceId(deviceId, this.config.instanceName);\n }\n }\n\n reset() {\n this.setDeviceId(UUID());\n this.setUserId(undefined);\n this.timeline.onReset();\n }\n\n getIdentity() {\n return {\n deviceId: this.config?.deviceId,\n userId: this.config?.userId,\n userProperties: this.userProperties,\n };\n }\n\n setIdentity(identity: Partial<AnalyticsIdentity>) {\n // Handle userId change\n if ('userId' in identity) {\n this.setUserId(identity.userId);\n }\n\n // Handle deviceId change\n if ('deviceId' in identity && identity.deviceId) {\n this.setDeviceId(identity.deviceId);\n }\n\n // Handle userProperties change - auto-send identify\n if ('userProperties' in identity) {\n this.userProperties = identity.userProperties;\n // Auto-send identify event with $set operations\n const identifyObj = new Identify();\n // istanbul ignore next\n const userProperties = identity.userProperties ?? {};\n for (const [key, value] of Object.entries(userProperties)) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n identifyObj.set(key, value);\n }\n // The identify event processing in core-client already calls onIdentityChanged,\n // so we don't need to call it explicitly here to avoid duplicate notifications.\n this.identify(identifyObj);\n }\n }\n\n getOptOut(): boolean | undefined {\n return this.config?.optOut;\n }\n\n getSessionId() {\n return this.config?.sessionId;\n }\n\n setSessionId(sessionId: number | undefined) {\n const promises: Promise<Result>[] = [];\n if (!this.config) {\n this.q.push(this.setSessionId.bind(this, sessionId));\n return returnWrapper(Promise.resolve());\n }\n // do not start a new session if optOut is true\n if (this.config.optOut) {\n // save the sessionId to storage to be used when optOut is false\n this.config.deferredSessionId = sessionId ?? UNSPECIFIED_SESSION_ID;\n return returnWrapper(Promise.resolve());\n }\n\n // default sessionId to current time\n if (sessionId === undefined) {\n sessionId = Date.now();\n }\n\n // Prevents starting a new session with the same session ID\n if (sessionId === this.config.sessionId) {\n return returnWrapper(Promise.resolve());\n }\n\n this.config.loggerProvider.debug('function setSessionId: ', sessionId);\n\n const previousSessionId = this.getSessionId();\n if (previousSessionId !== sessionId) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n this.timeline.onSessionIdChanged(sessionId);\n }\n\n const lastEventTime = this.config.lastEventTime;\n let lastEventId = this.config.lastEventId ?? -1;\n\n this.config.sessionId = sessionId;\n this.config.lastEventTime = undefined;\n this.config.pageCounter = 0;\n\n if (isSessionTrackingEnabled(this.config.defaultTracking)) {\n if (previousSessionId && lastEventTime) {\n promises.push(\n this.track(DEFAULT_SESSION_END_EVENT, undefined, {\n device_id: this.previousSessionDeviceId,\n event_id: ++lastEventId,\n session_id: previousSessionId,\n time: lastEventTime + 1,\n user_id: this.previousSessionUserId,\n }).promise,\n );\n }\n this.config.lastEventTime = this.config.sessionId;\n }\n\n // Fire web attribution event when enable webAttribution tracking\n // 1. has new campaign (call setSessionId from init function)\n // 2. or shouldTrackNewCampaign (call setSessionId from async process(event) when there has new campaign and resetSessionOnNewCampaign = true )\n const isCampaignEventTracked = this.trackCampaignEventIfNeeded(++lastEventId, promises);\n\n // track the identify event if an Identify object is provided in the config\n if (this.config.identify) {\n promises.push(this.track(createIdentifyEvent(this.config.identify)).promise);\n }\n\n if (isSessionTrackingEnabled(this.config.defaultTracking)) {\n promises.push(\n this.track(DEFAULT_SESSION_START_EVENT, undefined, {\n event_id: isCampaignEventTracked ? ++lastEventId : lastEventId,\n session_id: this.config.sessionId,\n time: this.config.lastEventTime,\n }).promise,\n );\n }\n\n this.previousSessionDeviceId = this.config.deviceId;\n this.previousSessionUserId = this.config.userId;\n return returnWrapper(Promise.all(promises));\n }\n\n extendSession() {\n if (!this.config) {\n this.q.push(this.extendSession.bind(this));\n return;\n }\n this.config.lastEventTime = Date.now();\n }\n\n setTransport(transport: TransportTypeOrOptions) {\n if (!this.config) {\n this.q.push(this.setTransport.bind(this, transport));\n return;\n }\n this.config.transportProvider = createTransport(transport);\n }\n\n identify(identify: IIdentify, eventOptions?: EventOptions) {\n if (isInstanceProxy(identify)) {\n const queue = identify._q;\n identify._q = [];\n identify = convertProxyObjectToRealObject(new Identify(), queue);\n }\n if (eventOptions?.user_id) {\n this.setUserId(eventOptions.user_id);\n }\n if (eventOptions?.device_id) {\n this.setDeviceId(eventOptions.device_id);\n }\n return super.identify(identify, eventOptions);\n }\n\n groupIdentify(groupType: string, groupName: string | string[], identify: IIdentify, eventOptions?: EventOptions) {\n if (isInstanceProxy(identify)) {\n const queue = identify._q;\n identify._q = [];\n identify = convertProxyObjectToRealObject(new Identify(), queue);\n }\n return super.groupIdentify(groupType, groupName, identify, eventOptions);\n }\n\n revenue(revenue: IRevenue, eventOptions?: EventOptions) {\n if (isInstanceProxy(revenue)) {\n const queue = revenue._q;\n revenue._q = [];\n revenue = convertProxyObjectToRealObject(new Revenue(), queue);\n }\n return super.revenue(revenue, eventOptions);\n }\n\n private trackCampaignEventIfNeeded(lastEventId?: number, promises?: Promise<Result>[]) {\n if (!this.webAttribution || !this.webAttribution.shouldTrackNewCampaign) {\n return false;\n }\n\n const campaignEvent = this.webAttribution.generateCampaignEvent(lastEventId);\n if (promises) {\n promises.push(this.track(campaignEvent).promise);\n } else {\n this.track(campaignEvent);\n }\n this.config.loggerProvider.log('Tracking attribution.');\n return true;\n }\n\n async process(event: Event) {\n const currentTime = Date.now();\n const isEventInNewSession = isNewSession(this.config.sessionTimeout, this.config.lastEventTime);\n const shouldSetSessionIdOnNewCampaign =\n this.webAttribution && this.webAttribution.shouldSetSessionIdOnNewCampaign();\n\n if (\n event.event_type !== DEFAULT_SESSION_START_EVENT &&\n event.event_type !== DEFAULT_SESSION_END_EVENT &&\n (!event.session_id || event.session_id === this.getSessionId())\n ) {\n if (isEventInNewSession || shouldSetSessionIdOnNewCampaign) {\n this.setSessionId(currentTime);\n if (shouldSetSessionIdOnNewCampaign) {\n this.config.loggerProvider.log('Created a new session for new campaign.');\n }\n } else if (!isEventInNewSession) {\n // Web attribution should be tracked during the middle of a session\n // if there has been a chance in the campaign information.\n this.trackCampaignEventIfNeeded();\n }\n }\n\n return super.process(event);\n }\n\n private logBrowserOptions(browserConfig: BrowserOptions & { apiKey: string }) {\n try {\n const browserConfigCopy = {\n ...browserConfig,\n apiKey: browserConfig.apiKey.substring(0, 10) + '********',\n };\n this.config.loggerProvider.debug(\n 'Initialized Amplitude with BrowserConfig:',\n safeJsonStringify(browserConfigCopy),\n );\n } catch (e) {\n /* istanbul ignore next */\n this.config.loggerProvider.error('Error logging browser config', e);\n }\n }\n\n /**\n * @experimental\n * WARNING: This method is for internal testing only and is not part of the public API.\n * It may be changed or removed at any time without notice.\n *\n * Sets the diagnostics sample rate before amplitude.init()\n * @param sampleRate - The sample rate to set\n */\n _setDiagnosticsSampleRate(sampleRate: number): void {\n if (sampleRate > 1 || sampleRate < 0) {\n return;\n }\n // Set diagnostics sample rate before initializing the config\n if (!this.config) {\n this._diagnosticsSampleRate = sampleRate;\n return;\n }\n }\n\n /**\n * @experimental\n * WARNING: This method is for internal testing only and is not part of the public API.\n * It may be changed or removed at any time without notice.\n */\n _enableRequestBodyCompressionExperimental(enabled: boolean): void {\n // Set request body compression experimental config before initializing the config\n if (!this.config) {\n this._enableRequestBodyCompressionExperimentalValue = enabled;\n return;\n }\n }\n}\n"]}
@@ -1,7 +1,8 @@
1
- import { Config, ILogger, LogLevel, Event, Storage, IngestionMetadata, ServerZoneType, OfflineDisabled, Plan, IdentityStorageType, TransportTypeOrOptions, MemoryStorage, CookieStorage, FetchTransport, UserSession, BrowserOptions, BrowserConfig as IBrowserConfig, DefaultTrackingOptions, TrackingOptions, AutocaptureOptions, CookieOptions, RemoteConfigOptions, NetworkTrackingOptions, IIdentify, IDiagnosticsClient, CookieStorageConfig } from '@amplitude/analytics-core';
1
+ import { Config, ILogger, LogLevel, Event, Storage, IngestionMetadata, ServerZoneType, OfflineDisabled, Plan, IdentityStorageType, TransportTypeOrOptions, MemoryStorage, CookieStorage, UserSession, BrowserOptions, BrowserConfig as IBrowserConfig, DefaultTrackingOptions, TrackingOptions, AutocaptureOptions, CookieOptions, RemoteConfigOptions, NetworkTrackingOptions, IIdentify, IDiagnosticsClient, CookieStorageConfig } from '@amplitude/analytics-core';
2
2
  import { LocalStorage } from './storage/local-storage';
3
3
  import { SessionStorage } from './storage/session-storage';
4
4
  import { XHRTransport } from './transports/xhr';
5
+ import { FetchTransport } from './transports/fetch';
5
6
  import { SendBeaconTransport } from './transports/send-beacon';
6
7
  import { AmplitudeBrowser } from './browser-client';
7
8
  export declare class BrowserConfig extends Config implements IBrowserConfig {
@@ -36,7 +37,10 @@ export declare class BrowserConfig extends Config implements IBrowserConfig {
36
37
  diagnosticsSampleRate: number;
37
38
  diagnosticsClient?: IDiagnosticsClient | undefined;
38
39
  remoteConfig?: RemoteConfigOptions | undefined;
39
- readonly version = "2.35.4";
40
+ topLevelDomain?: string | undefined;
41
+ enableRequestBodyCompression: boolean;
42
+ _enableRequestBodyCompressionExperimental: boolean;
43
+ readonly version = "2.36.1";
40
44
  protected _cookieStorage: Storage<UserSession>;
41
45
  protected _deviceId?: string;
42
46
  protected _lastEventId?: number;
@@ -47,7 +51,7 @@ export declare class BrowserConfig extends Config implements IBrowserConfig {
47
51
  protected _userId?: string;
48
52
  protected _pageCounter?: number;
49
53
  protected _debugLogsEnabled?: boolean;
50
- constructor(apiKey: string, appVersion?: string | undefined, cookieStorage?: Storage<UserSession>, cookieOptions?: CookieOptions, defaultTracking?: boolean | DefaultTrackingOptions | undefined, autocapture?: boolean | AutocaptureOptions | undefined, deviceId?: string, flushIntervalMillis?: number, flushMaxRetries?: number, flushQueueSize?: number, identityStorage?: IdentityStorageType, ingestionMetadata?: IngestionMetadata | undefined, instanceName?: string | undefined, lastEventId?: number, lastEventTime?: number, loggerProvider?: ILogger, logLevel?: LogLevel, minIdLength?: number | undefined, offline?: boolean | typeof OfflineDisabled, optOut?: boolean, partnerId?: string | undefined, plan?: Plan | undefined, serverUrl?: string, serverZone?: ServerZoneType, sessionId?: number, deferredSessionId?: number, sessionTimeout?: number, storageProvider?: Storage<Event[]>, trackingOptions?: Required<TrackingOptions>, transport?: TransportTypeOrOptions, useBatch?: boolean, fetchRemoteConfig?: boolean, userId?: string, pageCounter?: number, debugLogsEnabled?: boolean, networkTrackingOptions?: NetworkTrackingOptions | undefined, identify?: IIdentify | undefined, enableDiagnostics?: boolean, diagnosticsSampleRate?: number, diagnosticsClient?: IDiagnosticsClient | undefined, remoteConfig?: RemoteConfigOptions | undefined);
54
+ constructor(apiKey: string, appVersion?: string | undefined, cookieStorage?: Storage<UserSession>, cookieOptions?: CookieOptions, defaultTracking?: boolean | DefaultTrackingOptions | undefined, autocapture?: boolean | AutocaptureOptions | undefined, deviceId?: string, flushIntervalMillis?: number, flushMaxRetries?: number, flushQueueSize?: number, identityStorage?: IdentityStorageType, ingestionMetadata?: IngestionMetadata | undefined, instanceName?: string | undefined, lastEventId?: number, lastEventTime?: number, loggerProvider?: ILogger, logLevel?: LogLevel, minIdLength?: number | undefined, offline?: boolean | typeof OfflineDisabled, optOut?: boolean, partnerId?: string | undefined, plan?: Plan | undefined, serverUrl?: string, serverZone?: ServerZoneType, sessionId?: number, deferredSessionId?: number, sessionTimeout?: number, storageProvider?: Storage<Event[]>, trackingOptions?: Required<TrackingOptions>, transport?: TransportTypeOrOptions, useBatch?: boolean, fetchRemoteConfig?: boolean, userId?: string, pageCounter?: number, debugLogsEnabled?: boolean, networkTrackingOptions?: NetworkTrackingOptions | undefined, identify?: IIdentify | undefined, enableDiagnostics?: boolean, diagnosticsSampleRate?: number, diagnosticsClient?: IDiagnosticsClient | undefined, remoteConfig?: RemoteConfigOptions | undefined, topLevelDomain?: string | undefined, enableRequestBodyCompression?: boolean, _enableRequestBodyCompressionExperimental?: boolean);
51
55
  get cookieStorage(): Storage<UserSession>;
52
56
  set cookieStorage(cookieStorage: Storage<UserSession>);
53
57
  get deviceId(): string | undefined;
@@ -90,6 +94,6 @@ export declare const createCookieStorage: <T>(identityStorage?: IdentityStorageT
90
94
  * Extracted to allow early determination before useBrowserConfig is called.
91
95
  */
92
96
  export declare const shouldFetchRemoteConfig: (options?: BrowserOptions) => boolean;
93
- export declare const createTransport: (transport?: TransportTypeOrOptions) => FetchTransport | XHRTransport | SendBeaconTransport;
94
- export declare const getTopLevelDomain: (url?: string) => Promise<string>;
97
+ export declare const createTransport: (transport?: TransportTypeOrOptions) => XHRTransport | FetchTransport | SendBeaconTransport;
98
+ export declare const getTopLevelDomain: (url?: string, diagnosticsClient?: IDiagnosticsClient) => Promise<string>;
95
99
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EAEN,OAAO,EACP,QAAQ,EACR,KAAK,EACL,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,IAAI,EACJ,mBAAmB,EACnB,sBAAsB,EACtB,aAAa,EAEb,aAAa,EAEb,cAAc,EAEd,WAAW,EACX,cAAc,EACd,aAAa,IAAI,cAAc,EAC/B,sBAAsB,EACtB,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,SAAS,EACT,kBAAkB,EAElB,mBAAmB,EAEpB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAIpD,qBAAa,aAAc,SAAQ,MAAO,YAAW,cAAc;IAaxD,MAAM,EAAE,MAAM;IACd,UAAU,CAAC;IAEX,aAAa,EAAE,aAAa;IAO5B,eAAe,CAAC;IAChB,WAAW,CAAC;IAEZ,mBAAmB,EAAE,MAAM;IAC3B,eAAe,EAAE,MAAM;IACvB,cAAc,EAAE,MAAM;IACtB,eAAe,EAAE,mBAAmB;IACpC,iBAAiB,CAAC;IAClB,YAAY,CAAC;IAGb,cAAc,EAAE,OAAO;IACvB,QAAQ,EAAE,QAAQ;IAClB,WAAW,CAAC;IACZ,OAAO,EAAE,OAAO,GAAG,OAAO,eAAe;IAEzC,SAAS,CAAC;IACV,IAAI,CAAC;IACL,SAAS,EAAE,MAAM;IACjB,UAAU,EAAE,cAAc;IAG1B,cAAc,EAAE,MAAM;IACtB,eAAe,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;IACjC,eAAe,EAAE,QAAQ,CAAC,eAAe,CAAC;IAK1C,SAAS,EAAE,sBAAsB;IACjC,QAAQ,EAAE,OAAO;IACjB,iBAAiB,EAAE,OAAO;IAI1B,sBAAsB,CAAC;IACvB,QAAQ,CAAC;IACT,iBAAiB,EAAE,OAAO;IAC1B,qBAAqB,EAAE,MAAM;IAC7B,iBAAiB,CAAC;IAClB,YAAY,CAAC;IA9DtB,SAAgB,OAAO,YAAW;IAClC,SAAS,CAAC,cAAc,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC/C,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,OAAO,UAAS;IAC1B,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACtC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;gBAE7B,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,oBAAQ,EAC1B,aAAa,GAAE,OAAO,CAAC,WAAW,CAAuB,EAClD,aAAa,GAAE,aAMrB,EACM,eAAe,CAAC,8CAAkC,EAClD,WAAW,CAAC,0CAA8B,EACjD,QAAQ,CAAC,EAAE,MAAM,EACV,mBAAmB,GAAE,MAAa,EAClC,eAAe,GAAE,MAAU,EAC3B,cAAc,GAAE,MAAW,EAC3B,eAAe,GAAE,mBAA8C,EAC/D,iBAAiB,CAAC,+BAAmB,EACrC,YAAY,CAAC,oBAAQ,EAC5B,WAAW,CAAC,EAAE,MAAM,EACpB,aAAa,CAAC,EAAE,MAAM,EACf,cAAc,GAAE,OAAsB,EACtC,QAAQ,GAAE,QAAwB,EAClC,WAAW,CAAC,oBAAQ,EACpB,OAAO,GAAE,OAAO,GAAG,OAAO,eAAuB,EACxD,MAAM,UAAQ,EACP,SAAS,CAAC,oBAAQ,EAClB,IAAI,CAAC,kBAAM,EACX,SAAS,GAAE,MAAW,EACtB,UAAU,GAAE,cAAoC,EACvD,SAAS,CAAC,EAAE,MAAM,EAClB,iBAAiB,CAAC,EAAE,MAAM,EACnB,cAAc,GAAE,MAAuB,EACvC,eAAe,GAAE,OAAO,CAAC,KAAK,EAAE,CAAwC,EACxE,eAAe,GAAE,QAAQ,CAAC,eAAe,CAI/C,EACM,SAAS,GAAE,sBAAgC,EAC3C,QAAQ,GAAE,OAAe,EACzB,iBAAiB,GAAE,OAAc,EACxC,MAAM,CAAC,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,EACpB,gBAAgB,CAAC,EAAE,OAAO,EACnB,sBAAsB,CAAC,oCAAwB,EAC/C,QAAQ,CAAC,uBAAW,EACpB,iBAAiB,GAAE,OAAc,EACjC,qBAAqB,GAAE,MAAU,EACjC,iBAAiB,CAAC,gCAAoB,EACtC,YAAY,CAAC,iCAAqB;IA8B3C,IAAI,aAAa,IAIgB,OAAO,CAAC,WAAW,CAAC,CAFpD;IAED,IAAI,aAAa,CAAC,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC,EAKpD;IAED,IAAI,QAAQ,IAIW,MAAM,GAAG,SAAS,CAFxC;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAKxC;IAED,IAAI,MAAM,IAIS,MAAM,GAAG,SAAS,CAFpC;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAKpC;IAED,IAAI,SAAS,IAIY,MAAM,GAAG,SAAS,CAF1C;IAED,IAAI,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAU1C;IAED,IAAI,iBAAiB,IAIoB,MAAM,GAAG,SAAS,CAF1D;IAED,IAAI,iBAAiB,CAAC,iBAAiB,EAAE,MAAM,GAAG,SAAS,EAK1D;IAED,IAAI,MAAM,IAIS,OAAO,CAFzB;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,EAKzB;IAED,IAAI,aAAa,IAIgB,MAAM,GAAG,SAAS,CAFlD;IAED,IAAI,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,EAKlD;IAED,IAAI,WAAW,IAIc,MAAM,GAAG,SAAS,CAF9C;IAED,IAAI,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,EAK9C;IAED,IAAI,WAAW,IAIc,MAAM,GAAG,SAAS,CAF9C;IAED,IAAI,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,EAK9C;IAED,IAAI,gBAAgB,CAAC,gBAAgB,EAAE,OAAO,GAAG,SAAS,EAKzD;IAED,OAAO,CAAC,aAAa;CAoBtB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,+FAA+F;IAC/F,cAAc,EAAE,OAAO,CAAC;IACxB,oCAAoC;IACpC,UAAU,EAAE,cAAc,CAAC;IAC3B,mEAAmE;IACnE,iBAAiB,EAAE,OAAO,CAAC;IAC3B,4DAA4D;IAC5D,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,gBAAgB,WACnB,MAAM,0DAEK,gBAAgB,sBACf,kBAAkB,gBACxB,WAAW,KACxB,QAAQ,cAAc,CAyHxB,CAAC;AAEF,eAAO,MAAM,mBAAmB,wBACb,mBAAmB,kBACrB,aAAa,iBACb,mBAAmB,8EAmBnC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,aAAa,cAAc,KAAQ,OAWtE,CAAC;AAEF,eAAO,MAAM,eAAe,eAAgB,sBAAsB,wDAYjE,CAAC;AAEF,eAAO,MAAM,iBAAiB,SAAgB,MAAM,oBAiCnD,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EAEN,OAAO,EACP,QAAQ,EACR,KAAK,EACL,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,IAAI,EACJ,mBAAmB,EACnB,sBAAsB,EACtB,aAAa,EAEb,aAAa,EAGb,WAAW,EACX,cAAc,EACd,aAAa,IAAI,cAAc,EAC/B,sBAAsB,EACtB,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,SAAS,EACT,kBAAkB,EAElB,mBAAmB,EAEpB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAKpD,qBAAa,aAAc,SAAQ,MAAO,YAAW,cAAc;IAaxD,MAAM,EAAE,MAAM;IACd,UAAU,CAAC;IAEX,aAAa,EAAE,aAAa;IAO5B,eAAe,CAAC;IAChB,WAAW,CAAC;IAEZ,mBAAmB,EAAE,MAAM;IAC3B,eAAe,EAAE,MAAM;IACvB,cAAc,EAAE,MAAM;IACtB,eAAe,EAAE,mBAAmB;IACpC,iBAAiB,CAAC;IAClB,YAAY,CAAC;IAGb,cAAc,EAAE,OAAO;IACvB,QAAQ,EAAE,QAAQ;IAClB,WAAW,CAAC;IACZ,OAAO,EAAE,OAAO,GAAG,OAAO,eAAe;IAEzC,SAAS,CAAC;IACV,IAAI,CAAC;IACL,SAAS,EAAE,MAAM;IACjB,UAAU,EAAE,cAAc;IAG1B,cAAc,EAAE,MAAM;IACtB,eAAe,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;IACjC,eAAe,EAAE,QAAQ,CAAC,eAAe,CAAC;IAK1C,SAAS,EAAE,sBAAsB;IACjC,QAAQ,EAAE,OAAO;IACjB,iBAAiB,EAAE,OAAO;IAI1B,sBAAsB,CAAC;IACvB,QAAQ,CAAC;IACT,iBAAiB,EAAE,OAAO;IAC1B,qBAAqB,EAAE,MAAM;IAC7B,iBAAiB,CAAC;IAClB,YAAY,CAAC;IACb,cAAc,CAAC;IACf,4BAA4B,EAAE,OAAO;IACrC,yCAAyC,EAAE,OAAO;IAjE3D,SAAgB,OAAO,YAAW;IAClC,SAAS,CAAC,cAAc,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC/C,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,OAAO,UAAS;IAC1B,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACtC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;gBAE7B,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,oBAAQ,EAC1B,aAAa,GAAE,OAAO,CAAC,WAAW,CAAuB,EAClD,aAAa,GAAE,aAMrB,EACM,eAAe,CAAC,8CAAkC,EAClD,WAAW,CAAC,0CAA8B,EACjD,QAAQ,CAAC,EAAE,MAAM,EACV,mBAAmB,GAAE,MAAa,EAClC,eAAe,GAAE,MAAU,EAC3B,cAAc,GAAE,MAAW,EAC3B,eAAe,GAAE,mBAA8C,EAC/D,iBAAiB,CAAC,+BAAmB,EACrC,YAAY,CAAC,oBAAQ,EAC5B,WAAW,CAAC,EAAE,MAAM,EACpB,aAAa,CAAC,EAAE,MAAM,EACf,cAAc,GAAE,OAAsB,EACtC,QAAQ,GAAE,QAAwB,EAClC,WAAW,CAAC,oBAAQ,EACpB,OAAO,GAAE,OAAO,GAAG,OAAO,eAAuB,EACxD,MAAM,UAAQ,EACP,SAAS,CAAC,oBAAQ,EAClB,IAAI,CAAC,kBAAM,EACX,SAAS,GAAE,MAAW,EACtB,UAAU,GAAE,cAAoC,EACvD,SAAS,CAAC,EAAE,MAAM,EAClB,iBAAiB,CAAC,EAAE,MAAM,EACnB,cAAc,GAAE,MAAuB,EACvC,eAAe,GAAE,OAAO,CAAC,KAAK,EAAE,CAAwC,EACxE,eAAe,GAAE,QAAQ,CAAC,eAAe,CAI/C,EACM,SAAS,GAAE,sBAAgC,EAC3C,QAAQ,GAAE,OAAe,EACzB,iBAAiB,GAAE,OAAc,EACxC,MAAM,CAAC,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,EACpB,gBAAgB,CAAC,EAAE,OAAO,EACnB,sBAAsB,CAAC,oCAAwB,EAC/C,QAAQ,CAAC,uBAAW,EACpB,iBAAiB,GAAE,OAAc,EACjC,qBAAqB,GAAE,MAAU,EACjC,iBAAiB,CAAC,gCAAoB,EACtC,YAAY,CAAC,iCAAqB,EAClC,cAAc,CAAC,oBAAQ,EACvB,4BAA4B,GAAE,OAAe,EAC7C,yCAAyC,GAAE,OAAe;IAgCnE,IAAI,aAAa,IAIgB,OAAO,CAAC,WAAW,CAAC,CAFpD;IAED,IAAI,aAAa,CAAC,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC,EAKpD;IAED,IAAI,QAAQ,IAIW,MAAM,GAAG,SAAS,CAFxC;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAKxC;IAED,IAAI,MAAM,IAIS,MAAM,GAAG,SAAS,CAFpC;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAKpC;IAED,IAAI,SAAS,IAIY,MAAM,GAAG,SAAS,CAF1C;IAED,IAAI,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAU1C;IAED,IAAI,iBAAiB,IAIoB,MAAM,GAAG,SAAS,CAF1D;IAED,IAAI,iBAAiB,CAAC,iBAAiB,EAAE,MAAM,GAAG,SAAS,EAK1D;IAED,IAAI,MAAM,IAIS,OAAO,CAFzB;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,EAKzB;IAED,IAAI,aAAa,IAIgB,MAAM,GAAG,SAAS,CAFlD;IAED,IAAI,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,EAKlD;IAED,IAAI,WAAW,IAIc,MAAM,GAAG,SAAS,CAF9C;IAED,IAAI,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,EAK9C;IAED,IAAI,WAAW,IAIc,MAAM,GAAG,SAAS,CAF9C;IAED,IAAI,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,EAK9C;IAED,IAAI,gBAAgB,CAAC,gBAAgB,EAAE,OAAO,GAAG,SAAS,EAKzD;IAED,OAAO,CAAC,aAAa;CAoBtB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,+FAA+F;IAC/F,cAAc,EAAE,OAAO,CAAC;IACxB,oCAAoC;IACpC,UAAU,EAAE,cAAc,CAAC;IAC3B,mEAAmE;IACnE,iBAAiB,EAAE,OAAO,CAAC;IAC3B,4DAA4D;IAC5D,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,gBAAgB,WACnB,MAAM,0DAEK,gBAAgB,sBACf,kBAAkB,gBACxB,WAAW,KACxB,QAAQ,cAAc,CAkIxB,CAAC;AAEF,eAAO,MAAM,mBAAmB,wBACb,mBAAmB,kBACrB,aAAa,iBACb,mBAAmB,8EAmBnC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,aAAa,cAAc,KAAQ,OAWtE,CAAC;AAEF,eAAO,MAAM,eAAe,eAAgB,sBAAsB,wDAcjE,CAAC;AAEF,eAAO,MAAM,iBAAiB,SAAgB,MAAM,sBAAsB,kBAAkB,oBAuC3F,CAAC"}
package/lib/esm/config.js CHANGED
@@ -1,16 +1,18 @@
1
1
  import { __assign, __awaiter, __extends, __generator } from "tslib";
2
- import { Config, Logger, LogLevel, MemoryStorage, UUID, CookieStorage, getCookieName, FetchTransport, getQueryParams, isDomainEqual, decodeCookieValue, } from '@amplitude/analytics-core';
2
+ import { Config, Logger, LogLevel, MemoryStorage, UUID, CookieStorage, getCookieName, getQueryParams, isDomainEqual, decodeCookieValue, } from '@amplitude/analytics-core';
3
3
  import { LocalStorage } from './storage/local-storage';
4
4
  import { SessionStorage } from './storage/session-storage';
5
5
  import { XHRTransport } from './transports/xhr';
6
+ import { FetchTransport } from './transports/fetch';
6
7
  import { SendBeaconTransport } from './transports/send-beacon';
7
8
  import { parseLegacyCookies } from './cookie-migration';
8
9
  import { DEFAULT_IDENTITY_STORAGE, DEFAULT_SERVER_ZONE } from './constants';
9
10
  import { VERSION } from './version';
11
+ import { getDomain } from './attribution/helpers';
10
12
  // Exported for testing purposes only. Do not expose to public interface.
11
13
  var BrowserConfig = /** @class */ (function (_super) {
12
14
  __extends(BrowserConfig, _super);
13
- function BrowserConfig(apiKey, appVersion, cookieStorage, cookieOptions, defaultTracking, autocapture, deviceId, flushIntervalMillis, flushMaxRetries, flushQueueSize, identityStorage, ingestionMetadata, instanceName, lastEventId, lastEventTime, loggerProvider, logLevel, minIdLength, offline, optOut, partnerId, plan, serverUrl, serverZone, sessionId, deferredSessionId, sessionTimeout, storageProvider, trackingOptions, transport, useBatch, fetchRemoteConfig, userId, pageCounter, debugLogsEnabled, networkTrackingOptions, identify, enableDiagnostics, diagnosticsSampleRate, diagnosticsClient, remoteConfig) {
15
+ function BrowserConfig(apiKey, appVersion, cookieStorage, cookieOptions, defaultTracking, autocapture, deviceId, flushIntervalMillis, flushMaxRetries, flushQueueSize, identityStorage, ingestionMetadata, instanceName, lastEventId, lastEventTime, loggerProvider, logLevel, minIdLength, offline, optOut, partnerId, plan, serverUrl, serverZone, sessionId, deferredSessionId, sessionTimeout, storageProvider, trackingOptions, transport, useBatch, fetchRemoteConfig, userId, pageCounter, debugLogsEnabled, networkTrackingOptions, identify, enableDiagnostics, diagnosticsSampleRate, diagnosticsClient, remoteConfig, topLevelDomain, enableRequestBodyCompression, _enableRequestBodyCompressionExperimental) {
14
16
  if (cookieStorage === void 0) { cookieStorage = new MemoryStorage(); }
15
17
  if (cookieOptions === void 0) { cookieOptions = {
16
18
  domain: '',
@@ -41,6 +43,8 @@ var BrowserConfig = /** @class */ (function (_super) {
41
43
  if (fetchRemoteConfig === void 0) { fetchRemoteConfig = true; }
42
44
  if (enableDiagnostics === void 0) { enableDiagnostics = true; }
43
45
  if (diagnosticsSampleRate === void 0) { diagnosticsSampleRate = 0; }
46
+ if (enableRequestBodyCompression === void 0) { enableRequestBodyCompression = false; }
47
+ if (_enableRequestBodyCompressionExperimental === void 0) { _enableRequestBodyCompressionExperimental = false; }
44
48
  var _this = this;
45
49
  var _a;
46
50
  _this = _super.call(this, { apiKey: apiKey, storageProvider: storageProvider, transportProvider: createTransport(transport) }) || this;
@@ -75,6 +79,9 @@ var BrowserConfig = /** @class */ (function (_super) {
75
79
  _this.diagnosticsSampleRate = diagnosticsSampleRate;
76
80
  _this.diagnosticsClient = diagnosticsClient;
77
81
  _this.remoteConfig = remoteConfig;
82
+ _this.topLevelDomain = topLevelDomain;
83
+ _this.enableRequestBodyCompression = enableRequestBodyCompression;
84
+ _this._enableRequestBodyCompressionExperimental = _enableRequestBodyCompressionExperimental;
78
85
  _this.version = VERSION;
79
86
  _this._optOut = false;
80
87
  _this._cookieStorage = cookieStorage;
@@ -101,6 +108,7 @@ var BrowserConfig = /** @class */ (function (_super) {
101
108
  _this.remoteConfig = _this.remoteConfig || {};
102
109
  _this.remoteConfig.fetchRemoteConfig = _fetchRemoteConfig;
103
110
  _this.fetchRemoteConfig = _fetchRemoteConfig;
111
+ _this.topLevelDomain = topLevelDomain || getDomain();
104
112
  return _this;
105
113
  }
106
114
  Object.defineProperty(BrowserConfig.prototype, "cookieStorage", {
@@ -259,30 +267,20 @@ export { BrowserConfig };
259
267
  export var useBrowserConfig = function (apiKey, options, amplitudeInstance, diagnosticsClient, earlyConfig) {
260
268
  if (options === void 0) { options = {}; }
261
269
  return __awaiter(void 0, void 0, void 0, function () {
262
- var identityStorage, cookieOptions, _a, _b, cookieConfig, cookieStorage, legacyCookies, previousCookies, queryParams, ampTimestamp, isWithinTimeLimit, deviceId, lastEventId, lastEventTime, optOut, sessionId, deferredSessionId, userId, trackingOptions, pageCounter, debugLogsEnabled, browserConfig;
263
- var _c;
264
- var _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6;
265
- return __generator(this, function (_7) {
266
- switch (_7.label) {
270
+ var identityStorage, topLevelDomain, cookieOptions, cookieConfig, cookieStorage, legacyCookies, previousCookies, queryParams, ampTimestamp, isWithinTimeLimit, deviceId, lastEventId, lastEventTime, optOut, sessionId, deferredSessionId, userId, trackingOptions, pageCounter, debugLogsEnabled, browserConfig;
271
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3;
272
+ return __generator(this, function (_4) {
273
+ switch (_4.label) {
267
274
  case 0:
268
275
  identityStorage = options.identityStorage || DEFAULT_IDENTITY_STORAGE;
269
- _c = {};
270
- if (!(identityStorage !== DEFAULT_IDENTITY_STORAGE)) return [3 /*break*/, 1];
271
- _a = '';
272
- return [3 /*break*/, 5];
276
+ topLevelDomain = '';
277
+ if (!(identityStorage === DEFAULT_IDENTITY_STORAGE)) return [3 /*break*/, 2];
278
+ return [4 /*yield*/, getTopLevelDomain(undefined, diagnosticsClient)];
273
279
  case 1:
274
- if (!((_e = (_d = options.cookieOptions) === null || _d === void 0 ? void 0 : _d.domain) !== null && _e !== void 0)) return [3 /*break*/, 2];
275
- _b = _e;
276
- return [3 /*break*/, 4];
277
- case 2: return [4 /*yield*/, getTopLevelDomain()];
278
- case 3:
279
- _b = (_7.sent());
280
- _7.label = 4;
281
- case 4:
282
- _a = _b;
283
- _7.label = 5;
284
- case 5:
285
- cookieOptions = __assign.apply(void 0, [(_c.domain = _a, _c.expiration = 365, _c.sameSite = 'Lax', _c.secure = false, _c.upgrade = true, _c), options.cookieOptions]);
280
+ topLevelDomain = _4.sent();
281
+ _4.label = 2;
282
+ case 2:
283
+ cookieOptions = __assign({ domain: (_b = (_a = options.cookieOptions) === null || _a === void 0 ? void 0 : _a.domain) !== null && _b !== void 0 ? _b : topLevelDomain, expiration: 365, sameSite: 'Lax', secure: false, upgrade: true }, options.cookieOptions);
286
284
  cookieConfig = {
287
285
  // if more than one cookie with the same key exists,
288
286
  // look for the cookie that has the domain attribute set to cookieOptions.domain
@@ -297,28 +295,28 @@ export var useBrowserConfig = function (apiKey, options, amplitudeInstance, diag
297
295
  diagnosticsClient: diagnosticsClient,
298
296
  };
299
297
  cookieStorage = createCookieStorage(options.identityStorage, cookieOptions, cookieConfig);
300
- return [4 /*yield*/, parseLegacyCookies(apiKey, cookieStorage, (_g = (_f = options.cookieOptions) === null || _f === void 0 ? void 0 : _f.upgrade) !== null && _g !== void 0 ? _g : true)];
301
- case 6:
302
- legacyCookies = _7.sent();
298
+ return [4 /*yield*/, parseLegacyCookies(apiKey, cookieStorage, (_d = (_c = options.cookieOptions) === null || _c === void 0 ? void 0 : _c.upgrade) !== null && _d !== void 0 ? _d : true)];
299
+ case 3:
300
+ legacyCookies = _4.sent();
303
301
  return [4 /*yield*/, cookieStorage.get(getCookieName(apiKey))];
304
- case 7:
305
- previousCookies = _7.sent();
302
+ case 4:
303
+ previousCookies = _4.sent();
306
304
  queryParams = getQueryParams();
307
305
  ampTimestamp = queryParams.ampTimestamp ? Number(queryParams.ampTimestamp) : undefined;
308
306
  isWithinTimeLimit = ampTimestamp ? Date.now() < ampTimestamp : true;
309
- deviceId = (_m = (_l = (_k = (_h = options.deviceId) !== null && _h !== void 0 ? _h : (isWithinTimeLimit ? (_j = queryParams.ampDeviceId) !== null && _j !== void 0 ? _j : queryParams.deviceId : undefined)) !== null && _k !== void 0 ? _k : previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies.deviceId) !== null && _l !== void 0 ? _l : legacyCookies.deviceId) !== null && _m !== void 0 ? _m : UUID();
310
- lastEventId = (_o = previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies.lastEventId) !== null && _o !== void 0 ? _o : legacyCookies.lastEventId;
311
- lastEventTime = (_p = previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies.lastEventTime) !== null && _p !== void 0 ? _p : legacyCookies.lastEventTime;
312
- optOut = (_r = (_q = options.optOut) !== null && _q !== void 0 ? _q : previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies.optOut) !== null && _r !== void 0 ? _r : legacyCookies.optOut;
313
- sessionId = (_s = previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies.sessionId) !== null && _s !== void 0 ? _s : legacyCookies.sessionId;
307
+ deviceId = (_j = (_h = (_g = (_e = options.deviceId) !== null && _e !== void 0 ? _e : (isWithinTimeLimit ? (_f = queryParams.ampDeviceId) !== null && _f !== void 0 ? _f : queryParams.deviceId : undefined)) !== null && _g !== void 0 ? _g : previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies.deviceId) !== null && _h !== void 0 ? _h : legacyCookies.deviceId) !== null && _j !== void 0 ? _j : UUID();
308
+ lastEventId = (_k = previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies.lastEventId) !== null && _k !== void 0 ? _k : legacyCookies.lastEventId;
309
+ lastEventTime = (_l = previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies.lastEventTime) !== null && _l !== void 0 ? _l : legacyCookies.lastEventTime;
310
+ optOut = (_o = (_m = options.optOut) !== null && _m !== void 0 ? _m : previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies.optOut) !== null && _o !== void 0 ? _o : legacyCookies.optOut;
311
+ sessionId = (_p = previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies.sessionId) !== null && _p !== void 0 ? _p : legacyCookies.sessionId;
314
312
  deferredSessionId = previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies.deferredSessionId;
315
- userId = (_u = (_t = options.userId) !== null && _t !== void 0 ? _t : previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies.userId) !== null && _u !== void 0 ? _u : legacyCookies.userId;
316
- amplitudeInstance.previousSessionDeviceId = (_v = previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies.deviceId) !== null && _v !== void 0 ? _v : legacyCookies.deviceId;
317
- amplitudeInstance.previousSessionUserId = (_w = previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies.userId) !== null && _w !== void 0 ? _w : legacyCookies.userId;
313
+ userId = (_r = (_q = options.userId) !== null && _q !== void 0 ? _q : previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies.userId) !== null && _r !== void 0 ? _r : legacyCookies.userId;
314
+ amplitudeInstance.previousSessionDeviceId = (_s = previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies.deviceId) !== null && _s !== void 0 ? _s : legacyCookies.deviceId;
315
+ amplitudeInstance.previousSessionUserId = (_t = previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies.userId) !== null && _t !== void 0 ? _t : legacyCookies.userId;
318
316
  trackingOptions = {
319
- ipAddress: (_y = (_x = options.trackingOptions) === null || _x === void 0 ? void 0 : _x.ipAddress) !== null && _y !== void 0 ? _y : true,
320
- language: (_0 = (_z = options.trackingOptions) === null || _z === void 0 ? void 0 : _z.language) !== null && _0 !== void 0 ? _0 : true,
321
- platform: (_2 = (_1 = options.trackingOptions) === null || _1 === void 0 ? void 0 : _1.platform) !== null && _2 !== void 0 ? _2 : true,
317
+ ipAddress: (_v = (_u = options.trackingOptions) === null || _u === void 0 ? void 0 : _u.ipAddress) !== null && _v !== void 0 ? _v : true,
318
+ language: (_x = (_w = options.trackingOptions) === null || _w === void 0 ? void 0 : _w.language) !== null && _x !== void 0 ? _x : true,
319
+ platform: (_z = (_y = options.trackingOptions) === null || _y === void 0 ? void 0 : _y.platform) !== null && _z !== void 0 ? _z : true,
322
320
  };
323
321
  pageCounter = previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies.pageCounter;
324
322
  debugLogsEnabled = previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies.debugLogsEnabled;
@@ -328,14 +326,14 @@ export var useBrowserConfig = function (apiKey, options, amplitudeInstance, diag
328
326
  }
329
327
  browserConfig = new BrowserConfig(apiKey, options.appVersion, cookieStorage, cookieOptions, options.defaultTracking, options.autocapture, deviceId, options.flushIntervalMillis, options.flushMaxRetries, options.flushQueueSize, identityStorage, options.ingestionMetadata, options.instanceName, lastEventId, lastEventTime,
330
328
  // Use earlyConfig.loggerProvider to ensure consistent logger across DiagnosticsClient/RemoteConfigClient/BrowserConfig
331
- (_3 = earlyConfig === null || earlyConfig === void 0 ? void 0 : earlyConfig.loggerProvider) !== null && _3 !== void 0 ? _3 : options.loggerProvider, options.logLevel, options.minIdLength, options.offline, optOut, options.partnerId, options.plan, options.serverUrl,
329
+ (_0 = earlyConfig === null || earlyConfig === void 0 ? void 0 : earlyConfig.loggerProvider) !== null && _0 !== void 0 ? _0 : options.loggerProvider, options.logLevel, options.minIdLength, options.offline, optOut, options.partnerId, options.plan, options.serverUrl,
332
330
  // Use earlyConfig.serverZone to ensure consistent serverZone
333
- (_4 = earlyConfig === null || earlyConfig === void 0 ? void 0 : earlyConfig.serverZone) !== null && _4 !== void 0 ? _4 : options.serverZone, sessionId, deferredSessionId, options.sessionTimeout, options.storageProvider, trackingOptions, options.transport, options.useBatch, options.fetchRemoteConfig, userId, pageCounter, debugLogsEnabled, options.networkTrackingOptions, options.identify,
331
+ (_1 = earlyConfig === null || earlyConfig === void 0 ? void 0 : earlyConfig.serverZone) !== null && _1 !== void 0 ? _1 : options.serverZone, sessionId, deferredSessionId, options.sessionTimeout, options.storageProvider, trackingOptions, options.transport, options.useBatch, options.fetchRemoteConfig, userId, pageCounter, debugLogsEnabled, options.networkTrackingOptions, options.identify,
334
332
  // Use earlyConfig values (already has remote config applied), otherwise fall back to options
335
- (_5 = earlyConfig === null || earlyConfig === void 0 ? void 0 : earlyConfig.enableDiagnostics) !== null && _5 !== void 0 ? _5 : options.enableDiagnostics, (_6 = earlyConfig === null || earlyConfig === void 0 ? void 0 : earlyConfig.diagnosticsSampleRate) !== null && _6 !== void 0 ? _6 : amplitudeInstance._diagnosticsSampleRate, diagnosticsClient, options.remoteConfig);
333
+ (_2 = earlyConfig === null || earlyConfig === void 0 ? void 0 : earlyConfig.enableDiagnostics) !== null && _2 !== void 0 ? _2 : options.enableDiagnostics, (_3 = earlyConfig === null || earlyConfig === void 0 ? void 0 : earlyConfig.diagnosticsSampleRate) !== null && _3 !== void 0 ? _3 : amplitudeInstance._diagnosticsSampleRate, diagnosticsClient, options.remoteConfig, topLevelDomain, options.enableRequestBodyCompression, amplitudeInstance._enableRequestBodyCompressionExperimentalValue);
336
334
  return [4 /*yield*/, browserConfig.storageProvider.isEnabled()];
337
- case 8:
338
- if (!(_7.sent())) {
335
+ case 5:
336
+ if (!(_4.sent())) {
339
337
  browserConfig.loggerProvider.warn("Storage provider ".concat(browserConfig.storageProvider.constructor.name, " is not enabled. Falling back to MemoryStorage."));
340
338
  browserConfig.storageProvider = new MemoryStorage();
341
339
  }
@@ -389,13 +387,15 @@ export var createTransport = function (transport) {
389
387
  // SendBeacon does not support custom headers
390
388
  return new SendBeaconTransport();
391
389
  }
390
+ // Keep a browser-local fetch transport for gzip support.
391
+ // TODO: Merge back to core FetchTransport after React Native supports gzip.
392
392
  return new FetchTransport(headers);
393
393
  };
394
- export var getTopLevelDomain = function (url) { return __awaiter(void 0, void 0, void 0, function () {
394
+ export var getTopLevelDomain = function (url, diagnosticsClient) { return __awaiter(void 0, void 0, void 0, function () {
395
395
  var host, parts, levels, cookieKeyUniqueId, storageKey, i, i, domain, options, storage, value;
396
396
  return __generator(this, function (_a) {
397
397
  switch (_a.label) {
398
- case 0: return [4 /*yield*/, new CookieStorage().isEnabled()];
398
+ case 0: return [4 /*yield*/, new CookieStorage(undefined, { diagnosticsClient: diagnosticsClient }).isEnabled()];
399
399
  case 1:
400
400
  if (!(_a.sent()) ||
401
401
  (!url && (typeof location === 'undefined' || !location.hostname))) {
@@ -433,7 +433,13 @@ export var getTopLevelDomain = function (url) { return __awaiter(void 0, void 0,
433
433
  case 6:
434
434
  i++;
435
435
  return [3 /*break*/, 2];
436
- case 7: return [2 /*return*/, ''];
436
+ case 7:
437
+ if (diagnosticsClient) {
438
+ diagnosticsClient.recordEvent('cookies.tld.failure', {
439
+ reason: "Could not determine TLD for host ".concat(host),
440
+ });
441
+ }
442
+ return [2 /*return*/, ''];
437
443
  }
438
444
  });
439
445
  }); };