castled-js-sdk 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (660) hide show
  1. package/README.md +21 -101
  2. package/index.es.js +1 -0
  3. package/index.js +1 -0
  4. package/package.json +39 -198
  5. package/{examples/chrome-extension/background-script-websockets/rudderAnalytics.js → service-worker/index.es.js} +1274 -1283
  6. package/service-worker/index.js +5346 -0
  7. package/.env.example +0 -8
  8. package/.eslintignore +0 -15
  9. package/.eslintrc.json +0 -41
  10. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -50
  11. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -19
  12. package/.github/pull_request_template.md +0 -22
  13. package/.github/workflows/build-and-quality-checks.yml +0 -50
  14. package/.github/workflows/deploy-beta.yml +0 -55
  15. package/.github/workflows/deploy-cdn.yml +0 -113
  16. package/.github/workflows/deploy-npm.yml +0 -80
  17. package/.github/workflows/deploy-sanity-suite.yml +0 -46
  18. package/.github/workflows/test.yml +0 -39
  19. package/.husky/commit-msg +0 -4
  20. package/.husky/pre-commit +0 -4
  21. package/.nvmrc +0 -1
  22. package/.prettierignore +0 -10
  23. package/.prettierrc +0 -7
  24. package/.size-limit.js +0 -30
  25. package/.versionrc +0 -12
  26. package/LICENSE +0 -67
  27. package/__mocks__/BraveBrowser.js +0 -9
  28. package/__mocks__/fixtures.js +0 -130
  29. package/__mocks__/msw.handlers.js +0 -34
  30. package/__mocks__/msw.server.js +0 -6
  31. package/__tests__/camelcase.test.js +0 -29
  32. package/__tests__/data-residency.test.js +0 -238
  33. package/__tests__/features/core/metrics/errorReporting/ErrorReportingService.test.js +0 -80
  34. package/__tests__/integrations/BingAds/__mocks__/data.js +0 -17
  35. package/__tests__/integrations/BingAds/browser.test.js +0 -148
  36. package/__tests__/integrations/BingAds/utils.test.js +0 -138
  37. package/__tests__/integrations/Braze/Braze.test.js +0 -462
  38. package/__tests__/integrations/FacebookPixel/FacebookPixel.test.js +0 -347
  39. package/__tests__/integrations/FacebookPixel/utils.test.js +0 -688
  40. package/__tests__/integrations/Fullstory/fullstory.test.js +0 -147
  41. package/__tests__/integrations/GA4/__mocks__/data.js +0 -1480
  42. package/__tests__/integrations/GA4/browser.test.js +0 -94
  43. package/__tests__/integrations/GA4/utils.test.js +0 -337
  44. package/__tests__/integrations/GoogleAds/__mocks__/data.js +0 -235
  45. package/__tests__/integrations/GoogleAds/browser.test.js +0 -202
  46. package/__tests__/integrations/GoogleAds/utils.test.js +0 -110
  47. package/__tests__/integrations/LaunchDarkly/__mocks__/data.js +0 -61
  48. package/__tests__/integrations/LaunchDarkly/browser.test.js +0 -148
  49. package/__tests__/integrations/LaunchDarkly/utils.test.js +0 -36
  50. package/__tests__/integrations/Lemnisk/lemnisk.test.js +0 -156
  51. package/__tests__/integrations/Mixpanel/browser.test.js +0 -60
  52. package/__tests__/integrations/PinterestTag/__mocks__/data.js +0 -24
  53. package/__tests__/integrations/PinterestTag/utils.test.js +0 -19
  54. package/__tests__/integrations/TikTokAds/tiktokads.test.js +0 -231
  55. package/__tests__/ketchConsent.test.js +0 -49
  56. package/__tests__/oneTrustCookieConsent.test.js +0 -89
  57. package/__tests__/script.test.js +0 -167
  58. package/__tests__/service-worker/__mocks__/fixtures.js +0 -79
  59. package/__tests__/service-worker/__mocks__/msw.server.js +0 -12
  60. package/__tests__/service-worker/index.test.js +0 -109
  61. package/__tests__/transformationHandler.test.js +0 -169
  62. package/__tests__/utils/IntegrationsData.test.js +0 -105
  63. package/__tests__/utils/ObjectUtils.test.js +0 -227
  64. package/__tests__/utils/cdnPaths.test.js +0 -63
  65. package/__tests__/utils/clientHint.test.js +0 -87
  66. package/__tests__/utils/commonUtils.test.js +0 -271
  67. package/__tests__/utils/errorHandler.test.js +0 -60
  68. package/__tests__/utils/eventProcessorUtils.test.js +0 -266
  69. package/__tests__/utils/navigator.test.js +0 -38
  70. package/__tests__/utils/preProcessQueue.test.js +0 -78
  71. package/__tests__/utils/screenDetails.test.js +0 -19
  72. package/__tests__/utils/utils.test.js +0 -348
  73. package/assets/integrations/AdobeAnalytics/adobe-analytics-heartbeat.js +0 -12384
  74. package/assets/integrations/AdobeAnalytics/adobe-analytics-js.js +0 -5046
  75. package/babel.config.json +0 -34
  76. package/commitlint.config.js +0 -3
  77. package/examples/SampleEventsTest.Html +0 -133
  78. package/examples/TC/TC_001.js +0 -4
  79. package/examples/TC/TC_002.js +0 -4
  80. package/examples/TC/TC_003.js +0 -4
  81. package/examples/TC/TC_004.js +0 -4
  82. package/examples/TC/TC_005.js +0 -4
  83. package/examples/chrome-extension/USAGE.md +0 -131
  84. package/examples/chrome-extension/background-script/LICENSE +0 -21
  85. package/examples/chrome-extension/background-script/README.md +0 -101
  86. package/examples/chrome-extension/background-script/foreground.js +0 -7
  87. package/examples/chrome-extension/background-script/logo/logo-128.png +0 -0
  88. package/examples/chrome-extension/background-script/logo/logo-16.png +0 -0
  89. package/examples/chrome-extension/background-script/logo/logo-48.png +0 -0
  90. package/examples/chrome-extension/background-script/logo/logo.svg +0 -138
  91. package/examples/chrome-extension/background-script/manifest.json +0 -37
  92. package/examples/chrome-extension/background-script/popup/popup.css +0 -11
  93. package/examples/chrome-extension/background-script/popup/popup.html +0 -11
  94. package/examples/chrome-extension/background-script/rudderAnalytics.js +0 -5345
  95. package/examples/chrome-extension/background-script/service-worker.js +0 -32
  96. package/examples/chrome-extension/background-script/settings/settings.css +0 -8
  97. package/examples/chrome-extension/background-script/settings/settings.html +0 -12
  98. package/examples/chrome-extension/background-script-websockets/LICENSE +0 -21
  99. package/examples/chrome-extension/background-script-websockets/README.md +0 -101
  100. package/examples/chrome-extension/background-script-websockets/foreground.js +0 -7
  101. package/examples/chrome-extension/background-script-websockets/logo/logo-128.png +0 -0
  102. package/examples/chrome-extension/background-script-websockets/logo/logo-16.png +0 -0
  103. package/examples/chrome-extension/background-script-websockets/logo/logo-48.png +0 -0
  104. package/examples/chrome-extension/background-script-websockets/logo/logo.svg +0 -138
  105. package/examples/chrome-extension/background-script-websockets/manifest.json +0 -37
  106. package/examples/chrome-extension/background-script-websockets/popup/popup.css +0 -11
  107. package/examples/chrome-extension/background-script-websockets/popup/popup.html +0 -11
  108. package/examples/chrome-extension/background-script-websockets/service-worker.js +0 -60
  109. package/examples/chrome-extension/background-script-websockets/settings/settings.css +0 -8
  110. package/examples/chrome-extension/background-script-websockets/settings/settings.html +0 -12
  111. package/examples/chrome-extension/content-script/LICENSE +0 -21
  112. package/examples/chrome-extension/content-script/README.md +0 -101
  113. package/examples/chrome-extension/content-script/foreground.js +0 -65
  114. package/examples/chrome-extension/content-script/logo/logo-128.png +0 -0
  115. package/examples/chrome-extension/content-script/logo/logo-16.png +0 -0
  116. package/examples/chrome-extension/content-script/logo/logo-48.png +0 -0
  117. package/examples/chrome-extension/content-script/logo/logo.svg +0 -138
  118. package/examples/chrome-extension/content-script/manifest.json +0 -39
  119. package/examples/chrome-extension/content-script/popup/popup.css +0 -11
  120. package/examples/chrome-extension/content-script/popup/popup.html +0 -11
  121. package/examples/chrome-extension/content-script/service-worker-utils.js +0 -17
  122. package/examples/chrome-extension/content-script/service-worker.js +0 -12
  123. package/examples/chrome-extension/content-script/settings/settings.css +0 -8
  124. package/examples/chrome-extension/content-script/settings/settings.html +0 -12
  125. package/examples/chrome-extension/websocket-server/server.mjs +0 -19
  126. package/examples/html/autotrack-test.html +0 -96
  127. package/examples/html/ecomm_test.html +0 -358
  128. package/examples/html/script-test.html +0 -968
  129. package/examples/html/segment.html +0 -177
  130. package/examples/html/test_poster.jpg +0 -0
  131. package/examples/umd/index.js +0 -11
  132. package/examples/umd/package.json +0 -42
  133. package/examples/umd/rollup.config.js +0 -36
  134. package/examples/umd/tests/test.html +0 -5
  135. package/examples/v1.1/tc1.html +0 -139
  136. package/examples/v1.1/tc2.1.html +0 -140
  137. package/examples/v1.1/tc2.2.html +0 -139
  138. package/examples/v1.1/tc2.3.html +0 -143
  139. package/examples/v1.1/tc3.1.html +0 -139
  140. package/examples/v1.1/tc3.2.html +0 -142
  141. package/examples/v1.1/tc3.3.html +0 -142
  142. package/examples/v1.1/tc3.4.html +0 -144
  143. package/examples/v1.1/tc3.5.html +0 -142
  144. package/examples/v1.1/tc4.html +0 -142
  145. package/examples/v1.1/tc5.html +0 -150
  146. package/github-release.config.js +0 -5
  147. package/jest/jest.global-setup.js +0 -3
  148. package/jest/jest.polyfills.js +0 -10
  149. package/jest/jest.setup-dom.js +0 -49
  150. package/jest.config.js +0 -196
  151. package/packages/npm/README.md +0 -125
  152. package/packages/npm/package.json +0 -50
  153. package/patches/@segment+localstorage-retry+1.3.0.patch +0 -73
  154. package/patches/@segment+top-domain+3.0.1.patch +0 -34
  155. package/public/index.html +0 -136
  156. package/public/list_integration_sdks.html +0 -390
  157. package/rollup-configs/rollup.integrations.config.js +0 -29
  158. package/rollup-configs/rollup.sdk.browser.js +0 -32
  159. package/rollup-configs/rollup.sdk.npm.js +0 -43
  160. package/rollup-configs/rollup.utilities.js +0 -120
  161. package/rollup-configs/rollup.worker.config.js +0 -37
  162. package/sanity-suite/.babelrc +0 -33
  163. package/sanity-suite/.env.example +0 -6
  164. package/sanity-suite/__mocks__/alias1.json +0 -137
  165. package/sanity-suite/__mocks__/alias2.json +0 -97
  166. package/sanity-suite/__mocks__/alias5.json +0 -103
  167. package/sanity-suite/__mocks__/alias6.json +0 -137
  168. package/sanity-suite/__mocks__/group1.json +0 -120
  169. package/sanity-suite/__mocks__/group2.json +0 -86
  170. package/sanity-suite/__mocks__/group4.json +0 -101
  171. package/sanity-suite/__mocks__/group5.json +0 -67
  172. package/sanity-suite/__mocks__/group6.json +0 -66
  173. package/sanity-suite/__mocks__/identify1.json +0 -136
  174. package/sanity-suite/__mocks__/identify2.json +0 -102
  175. package/sanity-suite/__mocks__/identify3.json +0 -99
  176. package/sanity-suite/__mocks__/identify4.json +0 -65
  177. package/sanity-suite/__mocks__/identify5.json +0 -102
  178. package/sanity-suite/__mocks__/identify6.json +0 -103
  179. package/sanity-suite/__mocks__/identify7.json +0 -102
  180. package/sanity-suite/__mocks__/identify8.json +0 -103
  181. package/sanity-suite/__mocks__/page1.json +0 -119
  182. package/sanity-suite/__mocks__/page2.json +0 -86
  183. package/sanity-suite/__mocks__/page4.json +0 -112
  184. package/sanity-suite/__mocks__/page5.json +0 -79
  185. package/sanity-suite/__mocks__/page6.json +0 -77
  186. package/sanity-suite/__mocks__/page7.json +0 -77
  187. package/sanity-suite/__mocks__/page8.json +0 -75
  188. package/sanity-suite/__mocks__/page9.json +0 -155
  189. package/sanity-suite/__mocks__/sourceConfig1.json +0 -988
  190. package/sanity-suite/__mocks__/track1.json +0 -150
  191. package/sanity-suite/__mocks__/track2.json +0 -118
  192. package/sanity-suite/__mocks__/track4.json +0 -134
  193. package/sanity-suite/__mocks__/track5.json +0 -102
  194. package/sanity-suite/__mocks__/track6.json +0 -81
  195. package/sanity-suite/__mocks__/track7.json +0 -81
  196. package/sanity-suite/package-lock.json +0 -7951
  197. package/sanity-suite/package.json +0 -67
  198. package/sanity-suite/public/eventFiltering/index-cdn.html +0 -112
  199. package/sanity-suite/public/eventFiltering/index-local.html +0 -109
  200. package/sanity-suite/public/eventFiltering/index-npm.html +0 -92
  201. package/sanity-suite/public/index-cdn.html +0 -112
  202. package/sanity-suite/public/index-local.html +0 -109
  203. package/sanity-suite/public/index-npm.html +0 -92
  204. package/sanity-suite/public/preloadBuffer/index-cdn.html +0 -112
  205. package/sanity-suite/public/preloadBuffer/index-local.html +0 -109
  206. package/sanity-suite/public/preloadBuffer/index-npm.html +0 -92
  207. package/sanity-suite/rollup.config.js +0 -199
  208. package/sanity-suite/src/index-npm.js +0 -65
  209. package/sanity-suite/src/index.js +0 -5
  210. package/sanity-suite/src/testBook/ResultAssertions.js +0 -51
  211. package/sanity-suite/src/testBook/TestBook.js +0 -345
  212. package/sanity-suite/src/testBook/ignoredProperties.js +0 -150
  213. package/sanity-suite/src/testBook/index.js +0 -11
  214. package/sanity-suite/src/testBookSuites/alias.js +0 -287
  215. package/sanity-suite/src/testBookSuites/group.js +0 -240
  216. package/sanity-suite/src/testBookSuites/identify.js +0 -455
  217. package/sanity-suite/src/testBookSuites/index.js +0 -31
  218. package/sanity-suite/src/testBookSuites/page.js +0 -258
  219. package/sanity-suite/src/testBookSuites/sourceConfig.js +0 -84
  220. package/sanity-suite/src/testBookSuites/track.js +0 -451
  221. package/scripts/integrationBuildScript.js +0 -77
  222. package/scripts/run_tests.sh +0 -6
  223. package/src/core/analytics.js +0 -1668
  224. package/src/features/core/cookieConsent/CookieConsentFactory.js +0 -32
  225. package/src/features/core/cookieConsent/OneTrust/browser.js +0 -102
  226. package/src/features/core/cookieConsent/OneTrust/index.js +0 -3
  227. package/src/features/core/cookieConsent/ketch/browser.js +0 -114
  228. package/src/features/core/cookieConsent/ketch/index.js +0 -1
  229. package/src/features/core/deviceModeTransformation/transformationHandler.js +0 -189
  230. package/src/features/core/deviceModeTransformation/util.js +0 -23
  231. package/src/features/core/metrics/errorReporting/ErrorReportingService.js +0 -116
  232. package/src/features/core/metrics/errorReporting/providers/Bugsnag.js +0 -240
  233. package/src/features/core/session/index.js +0 -207
  234. package/src/integrations/ActiveCampaign/browser.js +0 -52
  235. package/src/integrations/ActiveCampaign/constants.js +0 -14
  236. package/src/integrations/ActiveCampaign/index.js +0 -3
  237. package/src/integrations/ActiveCampaign/nativeSdkLoader.js +0 -24
  238. package/src/integrations/AdobeAnalytics/browser.js +0 -276
  239. package/src/integrations/AdobeAnalytics/constants.js +0 -14
  240. package/src/integrations/AdobeAnalytics/eCommHandle.js +0 -56
  241. package/src/integrations/AdobeAnalytics/heartbeatHandle.js +0 -266
  242. package/src/integrations/AdobeAnalytics/index.js +0 -1
  243. package/src/integrations/AdobeAnalytics/util.js +0 -678
  244. package/src/integrations/Adroll/browser.js +0 -125
  245. package/src/integrations/Adroll/constants.js +0 -10
  246. package/src/integrations/Adroll/index.js +0 -1
  247. package/src/integrations/Adroll/util.js +0 -48
  248. package/src/integrations/Amplitude/browser.js +0 -352
  249. package/src/integrations/Amplitude/constants.js +0 -9
  250. package/src/integrations/Amplitude/index.js +0 -1
  251. package/src/integrations/Amplitude/nativeSdkLoader.js +0 -112
  252. package/src/integrations/Amplitude/test/test_amplitude.html +0 -157
  253. package/src/integrations/Amplitude/utils.js +0 -25
  254. package/src/integrations/Appcues/browser.js +0 -79
  255. package/src/integrations/Appcues/constants.js +0 -9
  256. package/src/integrations/Appcues/index.js +0 -1
  257. package/src/integrations/Axeptio/browser.js +0 -61
  258. package/src/integrations/Axeptio/constants.js +0 -8
  259. package/src/integrations/Axeptio/index.js +0 -1
  260. package/src/integrations/Axeptio/nativeSdkLoader.js +0 -14
  261. package/src/integrations/Axeptio/utils.js +0 -16
  262. package/src/integrations/BingAds/browser.js +0 -79
  263. package/src/integrations/BingAds/constants.js +0 -12
  264. package/src/integrations/BingAds/index.js +0 -1
  265. package/src/integrations/BingAds/nativeSdkLoader.js +0 -30
  266. package/src/integrations/BingAds/utils.js +0 -101
  267. package/src/integrations/Braze/browser.js +0 -284
  268. package/src/integrations/Braze/constants.js +0 -11
  269. package/src/integrations/Braze/index.js +0 -1
  270. package/src/integrations/Braze/nativeSdkLoader.js +0 -35
  271. package/src/integrations/Braze/utils.js +0 -51
  272. package/src/integrations/Bugsnag/browser.js +0 -60
  273. package/src/integrations/Bugsnag/constants.js +0 -8
  274. package/src/integrations/Bugsnag/index.js +0 -1
  275. package/src/integrations/Chartbeat/browser.js +0 -148
  276. package/src/integrations/Chartbeat/constants.js +0 -10
  277. package/src/integrations/Chartbeat/index.js +0 -1
  278. package/src/integrations/Chartbeat/nativeSdkLoader.js +0 -7
  279. package/src/integrations/Clevertap/browser.js +0 -206
  280. package/src/integrations/Clevertap/constants.js +0 -8
  281. package/src/integrations/Clevertap/index.js +0 -1
  282. package/src/integrations/Comscore/browser.js +0 -130
  283. package/src/integrations/Comscore/constants.js +0 -11
  284. package/src/integrations/Comscore/index.js +0 -1
  285. package/src/integrations/Comscore/nativeSdkLoader.js +0 -10
  286. package/src/integrations/ConvertFlow/browser.js +0 -59
  287. package/src/integrations/ConvertFlow/constants.js +0 -15
  288. package/src/integrations/ConvertFlow/index.js +0 -1
  289. package/src/integrations/ConvertFlow/utils.js +0 -107
  290. package/src/integrations/Criteo/browser.js +0 -155
  291. package/src/integrations/Criteo/constants.js +0 -11
  292. package/src/integrations/Criteo/index.js +0 -1
  293. package/src/integrations/Criteo/utils.js +0 -343
  294. package/src/integrations/CustomerIO/browser.js +0 -74
  295. package/src/integrations/CustomerIO/constants.js +0 -10
  296. package/src/integrations/CustomerIO/index.js +0 -1
  297. package/src/integrations/CustomerIO/nativeSdkLoader.js +0 -31
  298. package/src/integrations/DCMFloodlight/browser.js +0 -240
  299. package/src/integrations/DCMFloodlight/constants.js +0 -15
  300. package/src/integrations/DCMFloodlight/index.js +0 -1
  301. package/src/integrations/DCMFloodlight/utils.js +0 -336
  302. package/src/integrations/Drip/browser.js +0 -169
  303. package/src/integrations/Drip/constants.js +0 -8
  304. package/src/integrations/Drip/index.js +0 -1
  305. package/src/integrations/Drip/nativeSdkLoader.js +0 -10
  306. package/src/integrations/Drip/utils.js +0 -29
  307. package/src/integrations/Engage/browser.js +0 -124
  308. package/src/integrations/Engage/constants.js +0 -16
  309. package/src/integrations/Engage/index.js +0 -1
  310. package/src/integrations/Engage/nativeSdkLoader.js +0 -25
  311. package/src/integrations/Engage/utils.js +0 -69
  312. package/src/integrations/FacebookPixel/browser.js +0 -313
  313. package/src/integrations/FacebookPixel/constants.js +0 -77
  314. package/src/integrations/FacebookPixel/index.js +0 -1
  315. package/src/integrations/FacebookPixel/utils.js +0 -310
  316. package/src/integrations/Fullstory/browser.js +0 -169
  317. package/src/integrations/Fullstory/constants.js +0 -13
  318. package/src/integrations/Fullstory/index.js +0 -1
  319. package/src/integrations/Fullstory/nativeSdkLoader.js +0 -69
  320. package/src/integrations/GA/browser.js +0 -816
  321. package/src/integrations/GA/constants.js +0 -10
  322. package/src/integrations/GA/index.js +0 -1
  323. package/src/integrations/GA/index.test.js +0 -184
  324. package/src/integrations/GA360/browser.js +0 -58
  325. package/src/integrations/GA360/constants.js +0 -14
  326. package/src/integrations/GA360/index.js +0 -1
  327. package/src/integrations/GA4/browser.js +0 -264
  328. package/src/integrations/GA4/config.js +0 -296
  329. package/src/integrations/GA4/constants.js +0 -15
  330. package/src/integrations/GA4/index.js +0 -1
  331. package/src/integrations/GA4/utils.js +0 -329
  332. package/src/integrations/GoogleAds/browser.js +0 -212
  333. package/src/integrations/GoogleAds/constants.js +0 -11
  334. package/src/integrations/GoogleAds/index.js +0 -1
  335. package/src/integrations/GoogleAds/nativeSdkLoader.js +0 -26
  336. package/src/integrations/GoogleAds/utils.js +0 -117
  337. package/src/integrations/GoogleOptimize/browser.js +0 -79
  338. package/src/integrations/GoogleOptimize/constants.js +0 -13
  339. package/src/integrations/GoogleOptimize/index.js +0 -1
  340. package/src/integrations/GoogleTagManager/browser.js +0 -95
  341. package/src/integrations/GoogleTagManager/constants.js +0 -10
  342. package/src/integrations/GoogleTagManager/index.js +0 -1
  343. package/src/integrations/GoogleTagManager/nativeSdkLoader.js +0 -21
  344. package/src/integrations/Heap/browser.js +0 -67
  345. package/src/integrations/Heap/constants.js +0 -9
  346. package/src/integrations/Heap/index.js +0 -1
  347. package/src/integrations/Heap/nativeSdkLoader.js +0 -40
  348. package/src/integrations/Heap/util.js +0 -23
  349. package/src/integrations/Hotjar/browser.js +0 -86
  350. package/src/integrations/Hotjar/constants.js +0 -10
  351. package/src/integrations/Hotjar/index.js +0 -1
  352. package/src/integrations/Hotjar/nativeSdkLoader.js +0 -21
  353. package/src/integrations/HubSpot/browser.js +0 -96
  354. package/src/integrations/HubSpot/constants.js +0 -11
  355. package/src/integrations/HubSpot/index.js +0 -1
  356. package/src/integrations/INTERCOM/browser.js +0 -107
  357. package/src/integrations/INTERCOM/constants.js +0 -8
  358. package/src/integrations/INTERCOM/index.js +0 -1
  359. package/src/integrations/INTERCOM/nativeSdkLoader.js +0 -46
  360. package/src/integrations/INTERCOM/utils.js +0 -68
  361. package/src/integrations/Iterable/browser.js +0 -185
  362. package/src/integrations/Iterable/constants.js +0 -8
  363. package/src/integrations/Iterable/index.js +0 -1
  364. package/src/integrations/Iterable/utils.js +0 -111
  365. package/src/integrations/June/browser.js +0 -98
  366. package/src/integrations/June/constants.js +0 -8
  367. package/src/integrations/June/index.js +0 -1
  368. package/src/integrations/Keen/browser.js +0 -153
  369. package/src/integrations/Keen/constants.js +0 -10
  370. package/src/integrations/Keen/index.js +0 -1
  371. package/src/integrations/Kissmetrics/browser.js +0 -254
  372. package/src/integrations/Kissmetrics/constants.js +0 -8
  373. package/src/integrations/Kissmetrics/index.js +0 -1
  374. package/src/integrations/Kissmetrics/nativeSdkLoader.js +0 -23
  375. package/src/integrations/Klaviyo/browser.js +0 -195
  376. package/src/integrations/Klaviyo/constants.js +0 -8
  377. package/src/integrations/Klaviyo/index.js +0 -1
  378. package/src/integrations/Klaviyo/util.js +0 -91
  379. package/src/integrations/LaunchDarkly/browser.js +0 -74
  380. package/src/integrations/LaunchDarkly/constants.js +0 -11
  381. package/src/integrations/LaunchDarkly/index.js +0 -1
  382. package/src/integrations/LaunchDarkly/utils.js +0 -24
  383. package/src/integrations/Lemnisk/browser.js +0 -85
  384. package/src/integrations/Lemnisk/constants.js +0 -13
  385. package/src/integrations/Lemnisk/index.js +0 -1
  386. package/src/integrations/Lemnisk/nativeSdkLoader.js +0 -34
  387. package/src/integrations/LinkedInInsightTag/browser.js +0 -71
  388. package/src/integrations/LinkedInInsightTag/constants.js +0 -16
  389. package/src/integrations/LinkedInInsightTag/index.js +0 -1
  390. package/src/integrations/LiveChat/browser.js +0 -82
  391. package/src/integrations/LiveChat/constants.js +0 -12
  392. package/src/integrations/LiveChat/index.js +0 -1
  393. package/src/integrations/LiveChat/nativeSdkLoader.js +0 -40
  394. package/src/integrations/LiveChat/util.js +0 -71
  395. package/src/integrations/Lotame/LotameStorage.js +0 -21
  396. package/src/integrations/Lotame/browser.js +0 -172
  397. package/src/integrations/Lotame/constants.js +0 -8
  398. package/src/integrations/Lotame/index.js +0 -1
  399. package/src/integrations/Lytics/browser.js +0 -87
  400. package/src/integrations/Lytics/constants.js +0 -8
  401. package/src/integrations/Lytics/index.js +0 -1
  402. package/src/integrations/Lytics/nativeSdkLoader.js +0 -77
  403. package/src/integrations/Lytics/test/script-test-lytics.html +0 -250
  404. package/src/integrations/Matomo/browser.js +0 -188
  405. package/src/integrations/Matomo/constants.js +0 -8
  406. package/src/integrations/Matomo/index.js +0 -1
  407. package/src/integrations/Matomo/nativeSdkLoader.js +0 -20
  408. package/src/integrations/Matomo/util.js +0 -417
  409. package/src/integrations/MicrosoftClarity/browser.js +0 -70
  410. package/src/integrations/MicrosoftClarity/constants.js +0 -14
  411. package/src/integrations/MicrosoftClarity/index.js +0 -1
  412. package/src/integrations/MicrosoftClarity/nativeSdkLoader.js +0 -22
  413. package/src/integrations/Mixpanel/browser.js +0 -326
  414. package/src/integrations/Mixpanel/constants.js +0 -11
  415. package/src/integrations/Mixpanel/index.js +0 -1
  416. package/src/integrations/Mixpanel/nativeSdkLoader.js +0 -71
  417. package/src/integrations/Mixpanel/util.js +0 -178
  418. package/src/integrations/MoEngage/browser.js +0 -133
  419. package/src/integrations/MoEngage/constants.js +0 -12
  420. package/src/integrations/MoEngage/index.js +0 -1
  421. package/src/integrations/MoEngage/nativeSdkLoader.js +0 -66
  422. package/src/integrations/MoEngage/test/script-test-moengage.html +0 -216
  423. package/src/integrations/Mouseflow/browser.js +0 -98
  424. package/src/integrations/Mouseflow/constants.js +0 -14
  425. package/src/integrations/Mouseflow/index.js +0 -1
  426. package/src/integrations/Mouseflow/utils.js +0 -27
  427. package/src/integrations/Olark/browser.js +0 -94
  428. package/src/integrations/Olark/constants.js +0 -8
  429. package/src/integrations/Olark/index.js +0 -1
  430. package/src/integrations/Olark/nativeSdkLoader.js +0 -31
  431. package/src/integrations/Olark/utils.js +0 -51
  432. package/src/integrations/Optimizely/browser.js +0 -230
  433. package/src/integrations/Optimizely/constants.js +0 -8
  434. package/src/integrations/Optimizely/index.js +0 -1
  435. package/src/integrations/Optimizely/utils.js +0 -23
  436. package/src/integrations/Pendo/browser.js +0 -119
  437. package/src/integrations/Pendo/constants.js +0 -8
  438. package/src/integrations/Pendo/index.js +0 -1
  439. package/src/integrations/Pendo/nativeSdkLoader.js +0 -32
  440. package/src/integrations/PinterestTag/browser.js +0 -241
  441. package/src/integrations/PinterestTag/constants.js +0 -19
  442. package/src/integrations/PinterestTag/index.js +0 -1
  443. package/src/integrations/PinterestTag/nativeSdkLoader.js +0 -19
  444. package/src/integrations/PinterestTag/propertyMappingConfig.js +0 -57
  445. package/src/integrations/PinterestTag/test/input.js +0 -180
  446. package/src/integrations/PinterestTag/test/output.js +0 -129
  447. package/src/integrations/PinterestTag/utils.js +0 -47
  448. package/src/integrations/Podsights/browser.js +0 -178
  449. package/src/integrations/Podsights/constants.js +0 -206
  450. package/src/integrations/Podsights/index.js +0 -1
  451. package/src/integrations/Podsights/utils.js +0 -65
  452. package/src/integrations/PostAffiliatePro/browser.js +0 -133
  453. package/src/integrations/PostAffiliatePro/constants.js +0 -13
  454. package/src/integrations/PostAffiliatePro/index.js +0 -1
  455. package/src/integrations/PostAffiliatePro/utils.js +0 -40
  456. package/src/integrations/Posthog/browser.js +0 -154
  457. package/src/integrations/Posthog/constants.js +0 -12
  458. package/src/integrations/Posthog/index.js +0 -1
  459. package/src/integrations/Posthog/nativeSdkLoader.js +0 -48
  460. package/src/integrations/Posthog/test/test_posthog.html +0 -77
  461. package/src/integrations/Posthog/utils.js +0 -36
  462. package/src/integrations/ProfitWell/browser.js +0 -72
  463. package/src/integrations/ProfitWell/constants.js +0 -12
  464. package/src/integrations/ProfitWell/index.js +0 -1
  465. package/src/integrations/ProfitWell/nativeSdkLoader.js +0 -25
  466. package/src/integrations/Qualaroo/browser.js +0 -116
  467. package/src/integrations/Qualaroo/constants.js +0 -8
  468. package/src/integrations/Qualaroo/index.js +0 -1
  469. package/src/integrations/Qualaroo/utils.js +0 -83
  470. package/src/integrations/Qualtrics/browser.js +0 -89
  471. package/src/integrations/Qualtrics/constants.js +0 -8
  472. package/src/integrations/Qualtrics/index.js +0 -1
  473. package/src/integrations/Qualtrics/nativeSdkLoader.js +0 -79
  474. package/src/integrations/QuantumMetric/browser.js +0 -63
  475. package/src/integrations/QuantumMetric/constants.js +0 -13
  476. package/src/integrations/QuantumMetric/index.js +0 -1
  477. package/src/integrations/QuoraPixel/browser.js +0 -64
  478. package/src/integrations/QuoraPixel/constants.js +0 -15
  479. package/src/integrations/QuoraPixel/index.js +0 -1
  480. package/src/integrations/QuoraPixel/nativeSdkLoader.js +0 -21
  481. package/src/integrations/RedditPixel/browser.js +0 -98
  482. package/src/integrations/RedditPixel/constants.js +0 -13
  483. package/src/integrations/RedditPixel/index.js +0 -1
  484. package/src/integrations/RedditPixel/nativeSdkLoader.js +0 -21
  485. package/src/integrations/Refiner/browser.js +0 -119
  486. package/src/integrations/Refiner/constants.js +0 -8
  487. package/src/integrations/Refiner/index.js +0 -1
  488. package/src/integrations/Refiner/nativeSdkLoader.js +0 -20
  489. package/src/integrations/Refiner/utils.js +0 -44
  490. package/src/integrations/Rockerbox/browser.js +0 -89
  491. package/src/integrations/Rockerbox/constants.js +0 -12
  492. package/src/integrations/Rockerbox/index.js +0 -1
  493. package/src/integrations/Rockerbox/nativeSdkLoader.js +0 -32
  494. package/src/integrations/RollBar/browser.js +0 -92
  495. package/src/integrations/RollBar/constants.js +0 -13
  496. package/src/integrations/RollBar/index.js +0 -1
  497. package/src/integrations/RollBar/nativeSdkLoader.js +0 -383
  498. package/src/integrations/Satismeter/browser.js +0 -94
  499. package/src/integrations/Satismeter/constants.js +0 -9
  500. package/src/integrations/Satismeter/index.js +0 -1
  501. package/src/integrations/Satismeter/nativeSdkLoader.js +0 -23
  502. package/src/integrations/Satismeter/util.js +0 -54
  503. package/src/integrations/Sendinblue/browser.js +0 -111
  504. package/src/integrations/Sendinblue/constants.js +0 -25
  505. package/src/integrations/Sendinblue/index.js +0 -1
  506. package/src/integrations/Sendinblue/nativeSdkLoader.js +0 -36
  507. package/src/integrations/Sendinblue/utils.js +0 -112
  508. package/src/integrations/Sentry/browser.js +0 -118
  509. package/src/integrations/Sentry/constants.js +0 -8
  510. package/src/integrations/Sentry/index.js +0 -1
  511. package/src/integrations/Sentry/utils.js +0 -80
  512. package/src/integrations/Shynet/browser.js +0 -97
  513. package/src/integrations/Shynet/constants.js +0 -15
  514. package/src/integrations/Shynet/index.js +0 -1
  515. package/src/integrations/SnapEngage/browser.js +0 -75
  516. package/src/integrations/SnapEngage/constants.js +0 -12
  517. package/src/integrations/SnapEngage/index.js +0 -1
  518. package/src/integrations/SnapEngage/nativeSdkLoader.js +0 -24
  519. package/src/integrations/SnapEngage/util.js +0 -63
  520. package/src/integrations/SnapPixel/browser.js +0 -232
  521. package/src/integrations/SnapPixel/constants.js +0 -13
  522. package/src/integrations/SnapPixel/index.js +0 -1
  523. package/src/integrations/SnapPixel/nativeSdkLoader.js +0 -20
  524. package/src/integrations/SnapPixel/util.js +0 -211
  525. package/src/integrations/TVSquared/browser.js +0 -96
  526. package/src/integrations/TVSquared/constants.js +0 -14
  527. package/src/integrations/TVSquared/index.js +0 -1
  528. package/src/integrations/TVSquared/utils.js +0 -40
  529. package/src/integrations/TiktokAds/browser.js +0 -103
  530. package/src/integrations/TiktokAds/constants.js +0 -86
  531. package/src/integrations/TiktokAds/index.js +0 -1
  532. package/src/integrations/TiktokAds/nativeSdkLoader.js +0 -52
  533. package/src/integrations/TiktokAds/util.js +0 -71
  534. package/src/integrations/VWO/browser.js +0 -131
  535. package/src/integrations/VWO/constants.js +0 -13
  536. package/src/integrations/VWO/index.js +0 -1
  537. package/src/integrations/VWO/nativeSdkLoader.js +0 -64
  538. package/src/integrations/Vero/browser.js +0 -165
  539. package/src/integrations/Vero/constants.js +0 -8
  540. package/src/integrations/Vero/index.js +0 -1
  541. package/src/integrations/Woopra/browser.js +0 -83
  542. package/src/integrations/Woopra/constants.js +0 -8
  543. package/src/integrations/Woopra/index.js +0 -1
  544. package/src/integrations/Woopra/nativeSdkLoader.js +0 -43
  545. package/src/integrations/YandexMetrica/browser.js +0 -143
  546. package/src/integrations/YandexMetrica/constants.js +0 -10
  547. package/src/integrations/YandexMetrica/index.js +0 -1
  548. package/src/integrations/YandexMetrica/nativeSdkLoader.js +0 -35
  549. package/src/integrations/YandexMetrica/utils.js +0 -138
  550. package/src/integrations/index.js +0 -155
  551. package/src/service-worker/index.js +0 -466
  552. package/src/utils/EventRepository.js +0 -78
  553. package/src/utils/HtElement.js +0 -33
  554. package/src/utils/HtElementBuilder.js +0 -29
  555. package/src/utils/IntegrationsData.js +0 -61
  556. package/src/utils/JSFileLoader.js +0 -66
  557. package/src/utils/ObjectUtils.js +0 -68
  558. package/src/utils/PreProcessQueue.js +0 -66
  559. package/src/utils/RudderApp.js +0 -9
  560. package/src/utils/RudderContext.js +0 -21
  561. package/src/utils/RudderInfo.js +0 -41
  562. package/src/utils/RudderMessage.js +0 -28
  563. package/src/utils/ScriptLoader.js +0 -53
  564. package/src/utils/beaconQueue.js +0 -133
  565. package/src/utils/camelcase.js +0 -48
  566. package/src/utils/cdnPaths.js +0 -43
  567. package/src/utils/clientHint.js +0 -28
  568. package/src/utils/client_server_name.js +0 -78
  569. package/src/utils/commonUtils.js +0 -207
  570. package/src/utils/config_to_integration_names.js +0 -80
  571. package/src/utils/constants.js +0 -82
  572. package/src/utils/errorHandler.js +0 -88
  573. package/src/utils/eventProcessorUtils.js +0 -53
  574. package/src/utils/integration_cname.js +0 -156
  575. package/src/utils/linker/base64decoder.js +0 -31
  576. package/src/utils/linker/crc32.js +0 -42
  577. package/src/utils/linker/index.js +0 -134
  578. package/src/utils/linker/userLib.js +0 -20
  579. package/src/utils/logUtil.js +0 -51
  580. package/src/utils/logger.js +0 -106
  581. package/src/utils/navigator.js +0 -32
  582. package/src/utils/notifyError.js +0 -16
  583. package/src/utils/pageProperties.js +0 -74
  584. package/src/utils/screenDetails.js +0 -23
  585. package/src/utils/storage/cookie.js +0 -93
  586. package/src/utils/storage/index.js +0 -3
  587. package/src/utils/storage/storage.js +0 -459
  588. package/src/utils/storage/store.js +0 -72
  589. package/src/utils/storage/v3DecryptionUtils.js +0 -19
  590. package/src/utils/utils.js +0 -966
  591. package/src/utils/xhrModule.js +0 -111
  592. package/stats/AdobeAnalytics.html +0 -4044
  593. package/stats/Adroll.html +0 -4044
  594. package/stats/Amplitude.html +0 -4044
  595. package/stats/Appcues.html +0 -4044
  596. package/stats/BingAds.html +0 -4044
  597. package/stats/Braze.html +0 -4044
  598. package/stats/Bugsnag.html +0 -4044
  599. package/stats/Chartbeat.html +0 -4044
  600. package/stats/Clevertap.html +0 -4044
  601. package/stats/Comscore.html +0 -4044
  602. package/stats/ConvertFlow.html +0 -4044
  603. package/stats/Criteo.html +0 -4044
  604. package/stats/CustomerIO.html +0 -4044
  605. package/stats/DCMFloodlight.html +0 -4044
  606. package/stats/Drip.html +0 -4044
  607. package/stats/Engage.html +0 -4044
  608. package/stats/FacebookPixel.html +0 -4044
  609. package/stats/Fullstory.html +0 -4044
  610. package/stats/GA.html +0 -4044
  611. package/stats/GA360.html +0 -4044
  612. package/stats/GA4.html +0 -4044
  613. package/stats/GoogleAds.html +0 -4044
  614. package/stats/GoogleOptimize.html +0 -4044
  615. package/stats/GoogleTagManager.html +0 -4044
  616. package/stats/Heap.html +0 -4044
  617. package/stats/Hotjar.html +0 -4044
  618. package/stats/HubSpot.html +0 -4044
  619. package/stats/INTERCOM.html +0 -4044
  620. package/stats/Iterable.html +0 -4044
  621. package/stats/June.html +0 -4044
  622. package/stats/Keen.html +0 -4044
  623. package/stats/Kissmetrics.html +0 -4044
  624. package/stats/Klaviyo.html +0 -4044
  625. package/stats/LaunchDarkly.html +0 -4044
  626. package/stats/LinkedInInsightTag.html +0 -4044
  627. package/stats/LiveChat.html +0 -4044
  628. package/stats/Lotame.html +0 -4044
  629. package/stats/Lytics.html +0 -4044
  630. package/stats/Matomo.html +0 -4044
  631. package/stats/Mixpanel.html +0 -4044
  632. package/stats/MoEngage.html +0 -4044
  633. package/stats/Mouseflow.html +0 -4044
  634. package/stats/Optimizely.html +0 -4044
  635. package/stats/Pendo.html +0 -4044
  636. package/stats/PinterestTag.html +0 -4044
  637. package/stats/Podsights.html +0 -4044
  638. package/stats/PostAffiliatePro.html +0 -4044
  639. package/stats/Posthog.html +0 -4044
  640. package/stats/ProfitWell.html +0 -4044
  641. package/stats/Qualaroo.html +0 -4044
  642. package/stats/Qualtrics.html +0 -4044
  643. package/stats/QuantumMetric.html +0 -4044
  644. package/stats/QuoraPixel.html +0 -4044
  645. package/stats/RedditPixel.html +0 -4044
  646. package/stats/Refiner.html +0 -4044
  647. package/stats/Rockerbox.html +0 -4044
  648. package/stats/RollBar.html +0 -4044
  649. package/stats/Sentry.html +0 -4044
  650. package/stats/Shynet.html +0 -4044
  651. package/stats/SnapEngage.html +0 -4044
  652. package/stats/SnapPixel.html +0 -4044
  653. package/stats/TVSquared.html +0 -4044
  654. package/stats/VWO.html +0 -4044
  655. package/stats/Vero.html +0 -4044
  656. package/stats/Woopra.html +0 -4044
  657. package/stats/YandexMetrica.html +0 -4044
  658. package/stats/rudder-analytics.html +0 -4044
  659. /package/{packages/npm/index.d.ts → index.d.ts} +0 -0
  660. /package/{src/service-worker → service-worker}/index.d.ts +0 -0
@@ -1,466 +0,0 @@
1
- import looselyValidate from '@segment/loosely-validate-event';
2
- import axios from 'axios';
3
- import axiosRetry from 'axios-retry';
4
- import ms from 'ms';
5
- import { v4 as uuid } from '@lukeed/uuid';
6
- import isString from 'lodash.isstring';
7
- import cloneDeep from 'lodash.clonedeep';
8
- import fetchAdapter from '@vespaiach/axios-fetch-adapter';
9
-
10
- const version = '__PACKAGE_VERSION__';
11
-
12
- const removeTrailingSlashes = (inURL) =>
13
- inURL && inURL.endsWith('/') ? inURL.replace(/\/+$/, '') : inURL;
14
-
15
- const isFunction = (value) =>
16
- typeof value === 'function' && Boolean(value.constructor && value.call && value.apply);
17
-
18
- const setImmediate = process.nextTick.bind(process);
19
- const noop = () => {};
20
-
21
- class Analytics {
22
- /**
23
- * Initialize a new `Analytics` with your RudderStack source's `writeKey` and an
24
- * optional dictionary of `options`.
25
- *
26
- * @param {String} writeKey
27
- * @param {String} dataPlaneURL
28
- * @param {Object=} options (optional)
29
- * @param {Number=20} options.flushAt (default: 20)
30
- * @param {Number=20000} options.flushInterval (default: 20000)
31
- * @param {Boolean=true} options.enable (default: true)
32
- * @param {Number=20000} options.maxInternalQueueSize (default: 20000)
33
- * @param {Number} options.timeout (default: false)
34
- * @param {String=info} options.logLevel (default: info)
35
- * @param {Function} options.flushOverride (optional)
36
- */
37
-
38
- constructor(writeKey, dataPlaneURL, options) {
39
- options = options || {};
40
-
41
- if(!writeKey) {
42
- throw new Error('You must pass your project\'s write key.')
43
- }
44
-
45
- if(!dataPlaneURL) {
46
- throw new Error('You must pass our data plane url.')
47
- }
48
-
49
- this.queue = [];
50
- this.writeKey = writeKey;
51
- this.host = removeTrailingSlashes(dataPlaneURL);
52
- this.timeout = options.timeout || false;
53
- this.flushAt = Math.max(options.flushAt, 1) || 20;
54
- this.flushInterval = options.flushInterval || 20000;
55
- this.maxInternalQueueSize = options.maxInternalQueueSize || 20000;
56
- this.logLevel = options.logLevel || 'info';
57
- this.flushOverride = options.flushOverride && isFunction(options.flushOverride) ? options.flushOverride : undefined;
58
- this.flushed = false;
59
- this.axiosInstance = axios.create({
60
- adapter: fetchAdapter,
61
- });
62
- Object.defineProperty(this, 'enable', {
63
- configurable: false,
64
- writable: false,
65
- enumerable: true,
66
- value: typeof options.enable === 'boolean' ? options.enable : true,
67
- });
68
-
69
- this.logger = {
70
- error(message, ...args) {
71
- if (this.logLevel !== 'off') {
72
- console.error(`${new Date().toISOString()} ["Rudder"] error: ${message}`, ...args);
73
- }
74
- },
75
- info(message, ...args) {
76
- if (['silly', 'debug', 'info'].includes(this.logLevel)) {
77
- console.log(`${new Date().toISOString()} ["Rudder"] info: ${message}`, ...args);
78
- }
79
- },
80
- debug(message, ...args) {
81
- if (['silly', 'debug'].includes(this.logLevel)) {
82
- console.debug(`${new Date().toISOString()} ["Rudder"] debug: ${message}`, ...args);
83
- }
84
- },
85
- silly(message, ...args) {
86
- if (['silly'].includes(this.logLevel)) {
87
- console.info(`${new Date().toISOString()} ["Rudder"] silly: ${message}`, ...args);
88
- }
89
- },
90
- };
91
-
92
- axiosRetry(this.axiosInstance, { retries: 0 });
93
- }
94
-
95
- _validate(message, type) {
96
- try {
97
- looselyValidate(message, type);
98
- } catch (e) {
99
- if (e.message === 'Your message must be < 32kb.') {
100
- this.logger.info(
101
- 'Your message must be < 32kb. This is currently surfaced as a warning. Please update your code',
102
- message,
103
- );
104
- return;
105
- }
106
- throw e;
107
- }
108
- }
109
-
110
- /**
111
- * Send an identify `message`.
112
- *
113
- * @param {Object} message
114
- * @param {String=} message.userId (optional)
115
- * @param {String=} message.anonymousId (optional)
116
- * @param {Object=} message.context (optional)
117
- * @param {Object=} message.traits (optional)
118
- * @param {Object=} message.integrations (optional)
119
- * @param {Date=} message.timestamp (optional)
120
- * @param {Function=} callback (optional)
121
- * @return {Analytics}
122
- */
123
-
124
- identify(message, callback) {
125
- this._validate(message, 'identify');
126
- this.enqueue('identify', message, callback);
127
- return this;
128
- }
129
-
130
- /**
131
- * Send a group `message`.
132
- *
133
- * @param {Object} message
134
- * @param {String} message.groupId
135
- * @param {String=} message.userId (optional)
136
- * @param {String=} message.anonymousId (optional)
137
- * @param {Object=} message.context (optional)
138
- * @param {Object=} message.traits (optional)
139
- * @param {Object=} message.integrations (optional)
140
- * @param {Date=} message.timestamp (optional)
141
- * @param {Function=} callback (optional)
142
- * @return {Analytics}
143
- */
144
-
145
- group(message, callback) {
146
- this._validate(message, 'group');
147
- this.enqueue('group', message, callback);
148
- return this;
149
- }
150
-
151
- /**
152
- * Send a track `message`.
153
- *
154
- * @param {Object} message
155
- * @param {String} message.event
156
- * @param {String=} message.userId (optional)
157
- * @param {String=} message.anonymousId (optional)
158
- * @param {Object=} message.context (optional)
159
- * @param {Object=} message.properties (optional)
160
- * @param {Object=} message.integrations (optional)
161
- * @param {Date=} message.timestamp (optional)
162
- * @param {Function=} callback (optional)
163
- * @return {Analytics}
164
- */
165
-
166
- track(message, callback) {
167
- this._validate(message, 'track');
168
- this.enqueue('track', message, callback);
169
- return this;
170
- }
171
-
172
- /**
173
- * Send a page `message`.
174
- *
175
- * @param {Object} message
176
- * @param {String} message.name
177
- * @param {String=} message.userId (optional)
178
- * @param {String=} message.anonymousId (optional)
179
- * @param {Object=} message.context (optional)
180
- * @param {Object=} message.properties (optional)
181
- * @param {Object=} message.integrations (optional)
182
- * @param {Date=} message.timestamp (optional)
183
- * @param {Function=} callback (optional)
184
- * @return {Analytics}
185
- */
186
-
187
- page(message, callback) {
188
- this._validate(message, 'page');
189
- this.enqueue('page', message, callback);
190
- return this;
191
- }
192
-
193
- /**
194
- * Send a screen `message`.
195
- *
196
- * @param {Object} message
197
- * @param {Function} callback (optional)
198
- * @return {Analytics}
199
- */
200
-
201
- screen(message, callback) {
202
- this._validate(message, 'screen');
203
- this.enqueue('screen', message, callback);
204
- return this;
205
- }
206
-
207
- /**
208
- * Send an alias `message`.
209
- *
210
- * @param {Object} message
211
- * @param {String} message.previousId
212
- * @param {String=} message.userId (optional)
213
- * @param {String=} message.anonymousId (optional)
214
- * @param {Object=} message.context (optional)
215
- * @param {Object=} message.properties (optional)
216
- * @param {Object=} message.integrations (optional)
217
- * @param {Date=} message.timestamp (optional)
218
- * @param {Function=} callback (optional)
219
- * @return {Analytics}
220
- */
221
-
222
- alias(message, callback) {
223
- this._validate(message, 'alias');
224
- this.enqueue('alias', message, callback);
225
- return this;
226
- }
227
-
228
- /**
229
- * Add a `message` of type `type` to the queue and
230
- * check whether it should be flushed.
231
- *
232
- * @param {String} type
233
- * @param {Object} message
234
- * @param {Function} [callback] (optional)
235
- * @api private
236
- */
237
-
238
- enqueue(type, message, callback) {
239
- if (this.queue.length >= this.maxInternalQueueSize) {
240
- this.logger.error(
241
- `not adding events for processing as queue size ${this.queue.length} >= than max configuration ${this.maxInternalQueueSize}`,
242
- );
243
- return;
244
- }
245
- // Clone the incoming message object
246
- // before altering the data
247
- let lMessage = cloneDeep(message);
248
- callback = callback || noop;
249
-
250
- if (!this.enable) {
251
- return setImmediate(callback);
252
- }
253
-
254
- if (type == 'identify') {
255
- if (lMessage.traits) {
256
- if (!lMessage.context) {
257
- lMessage.context = {};
258
- }
259
- lMessage.context.traits = lMessage.traits;
260
- }
261
- }
262
-
263
- lMessage = { ...lMessage };
264
- lMessage.type = type;
265
-
266
- lMessage.context = {
267
- library: {
268
- name: 'analytics-service-worker',
269
- version,
270
- },
271
- ...lMessage.context,
272
- };
273
-
274
- lMessage.channel = 'service-worker';
275
-
276
- lMessage._metadata = {
277
- serviceWorkerVersion: version,
278
- ...lMessage._metadata,
279
- };
280
-
281
- if (!lMessage.originalTimestamp) {
282
- lMessage.originalTimestamp = new Date();
283
- }
284
-
285
- if (!lMessage.messageId) {
286
- lMessage.messageId = uuid();
287
- }
288
-
289
- // Historically this library has accepted strings and numbers as IDs.
290
- // However, our spec only allows strings. To avoid breaking compatibility,
291
- // we'll coerce these to strings if they aren't already.
292
- if (lMessage.anonymousId && !isString(lMessage.anonymousId)) {
293
- lMessage.anonymousId = JSON.stringify(lMessage.anonymousId);
294
- }
295
- if (lMessage.userId && !isString(lMessage.userId)) {
296
- lMessage.userId = JSON.stringify(lMessage.userId);
297
- }
298
-
299
- this.queue.push({ message: lMessage, callback });
300
-
301
- if (!this.flushed) {
302
- this.flushed = true;
303
- this.flush();
304
- return;
305
- }
306
-
307
- if (this.queue.length >= this.flushAt) {
308
- this.logger.debug('flushAt reached, trying flush...');
309
- this.flush();
310
- }
311
-
312
- if (this.flushInterval && !this.flushTimer) {
313
- this.logger.debug('no existing flush timer, creating new one');
314
- this.flushTimer = setTimeout(this.flush.bind(this), this.flushInterval);
315
- }
316
- }
317
-
318
- /**
319
- * Flush the current queue
320
- *
321
- * @param {Function} [callback] (optional)
322
- * @return {Analytics}
323
- */
324
-
325
- flush(callback) {
326
- // check if earlier flush was pushed to queue
327
- this.logger.debug('in flush');
328
- callback = callback || noop;
329
-
330
- if (!this.enable) {
331
- return setImmediate(callback);
332
- }
333
-
334
- if (this.timer) {
335
- this.logger.debug('cancelling existing timer...');
336
- clearTimeout(this.timer);
337
- this.timer = null;
338
- }
339
-
340
- if (this.flushTimer) {
341
- this.logger.debug('cancelling existing flushTimer...');
342
- clearTimeout(this.flushTimer);
343
- this.flushTimer = null;
344
- }
345
-
346
- if (!this.queue.length) {
347
- this.logger.debug('queue is empty, nothing to flush');
348
- return setImmediate(callback);
349
- }
350
-
351
- const items = this.queue.splice(0, this.flushAt);
352
- const callbacks = items.map((item) => item.callback);
353
- const messages = items.map((item) => {
354
- // if someone mangles directly with queue
355
- if (typeof item.message === 'object') {
356
- item.message.sentAt = new Date();
357
- }
358
- return item.message;
359
- });
360
-
361
- const data = {
362
- batch: messages,
363
- sentAt: new Date(),
364
- };
365
- this.logger.debug(`batch size is ${items.length}`);
366
- this.logger.silly('===data===', data);
367
-
368
- const done = (err) => {
369
- callbacks.forEach((callback_) => {
370
- callback_(err);
371
- });
372
- callback(err, data);
373
- };
374
-
375
- // Don't set the user agent if we're not on a browser. The latest spec allows
376
- // the User-Agent header (see https://fetch.spec.whatwg.org/#terminology-headers
377
- // and https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/setRequestHeader),
378
- // but browsers such as Chrome and Safari have not caught up.
379
- const headers = {};
380
- if (typeof window === 'undefined') {
381
- headers['user-agent'] = `analytics-service-worker/${version}`;
382
- headers['Content-Type'] = `application/json`;
383
- }
384
-
385
- const reqTimeout = typeof this.timeout === 'string' ? ms(this.timeout) : this.timeout;
386
-
387
- if(this.flushOverride) {
388
- this.flushOverride({
389
- host: `${this.host}`,
390
- writeKey: this.writeKey,
391
- data,
392
- headers,
393
- reqTimeout,
394
- flush: this.flush.bind(this),
395
- done,
396
- isErrorRetryable: this._isErrorRetryable.bind(this)
397
- });
398
- } else {
399
- const req = {
400
- method: 'POST',
401
- url: `${this.host}`,
402
- auth: {
403
- username: this.writeKey,
404
- },
405
- data,
406
- headers,
407
- };
408
-
409
- if (reqTimeout) {
410
- req.timeout = reqTimeout;
411
- }
412
-
413
- this.axiosInstance({
414
- ...req,
415
- 'axios-retry': {
416
- retries: 3,
417
- retryCondition: this._isErrorRetryable.bind(this),
418
- retryDelay: axiosRetry.exponentialDelay,
419
- },
420
- })
421
- .then((response) => {
422
- this.timer = setTimeout(this.flush.bind(this), this.flushInterval);
423
- done();
424
- })
425
- .catch((err) => {
426
- console.log(err);
427
- this.logger.error(
428
- `got error while attempting send for 3 times, dropping ${items.length} events`,
429
- );
430
- this.timer = setTimeout(this.flush.bind(this), this.flushInterval);
431
- if (err.response) {
432
- const error = new Error(err.response.statusText);
433
- return done(error);
434
- }
435
- done(err);
436
- });
437
- }
438
- }
439
-
440
- _isErrorRetryable(error) {
441
- // Retry Network Errors.
442
- if (axiosRetry.isNetworkError(error)) {
443
- return true;
444
- }
445
-
446
- if (!error.response) {
447
- // Cannot determine if the request can be retried
448
- return false;
449
- }
450
-
451
- this.logger.error(`error status: ${error.response.status}`);
452
- // Retry Server Errors (5xx).
453
- if (error.response.status >= 500 && error.response.status <= 599) {
454
- return true;
455
- }
456
-
457
- // Retry if rate limited.
458
- if (error.response.status === 429) {
459
- return true;
460
- }
461
-
462
- return false;
463
- }
464
- }
465
-
466
- export { Analytics };
@@ -1,78 +0,0 @@
1
- /* eslint-disable no-lonely-if */
2
- /* eslint-disable class-methods-use-this */
3
- import logger from './logUtil';
4
- import XHRQueue from './xhrModule';
5
- import BeaconQueue from './beaconQueue';
6
- import { getCurrentTimeFormatted, removeTrailingSlashes } from './utils';
7
- import { stringifyWithoutCircular } from './ObjectUtils';
8
-
9
- const MESSAGE_LENGTH = 32 * 1000; // ~32 Kb
10
-
11
- /**
12
- *
13
- * @class EventRepository responsible for adding events into
14
- * flush queue and sending data to ht events backend
15
- * in batch and maintains order of the event.
16
- */
17
- class EventRepository {
18
- /**
19
- *Creates an instance of EventRepository.
20
- * @memberof EventRepository
21
- */
22
- constructor() {
23
- this.queue = undefined;
24
- }
25
-
26
- initialize(writeKey, url, options) {
27
- let queueOptions = {};
28
- let targetUrl = removeTrailingSlashes(url);
29
- if (options && options.useBeacon && navigator.sendBeacon) {
30
- if (
31
- options.beaconQueueOptions &&
32
- options.beaconQueueOptions != null &&
33
- typeof options.beaconQueueOptions === 'object'
34
- ) {
35
- queueOptions = options.beaconQueueOptions;
36
- }
37
- targetUrl = `${targetUrl}/beacon/v1/batch`;
38
- this.queue = new BeaconQueue();
39
- } else {
40
- if (options && options.useBeacon) {
41
- logger.info(
42
- '[EventRepository] sendBeacon feature not available in this browser :: fallback to XHR',
43
- );
44
- }
45
- if (
46
- options &&
47
- options.queueOptions &&
48
- options.queueOptions != null &&
49
- typeof options.queueOptions === 'object'
50
- ) {
51
- queueOptions = options.queueOptions;
52
- }
53
- this.queue = new XHRQueue();
54
- }
55
- this.queue.init(writeKey, targetUrl, queueOptions);
56
- }
57
-
58
- /**
59
- *
60
- *
61
- * @param {HtElement} htElement
62
- * @memberof EventRepository
63
- */
64
- enqueue(htElement, type) {
65
- const message = htElement.getElementContent();
66
- message.originalTimestamp = message.originalTimestamp || getCurrentTimeFormatted();
67
- message.sentAt = getCurrentTimeFormatted(); // add this, will get modified when actually being sent
68
-
69
- // check message size, if greater log an error
70
- if (stringifyWithoutCircular(message, true).length > MESSAGE_LENGTH) {
71
- logger.error('[EventRepository] enqueue:: message length greater 32 Kb ', message);
72
- }
73
-
74
- this.queue.enqueue(message, type);
75
- }
76
- }
77
- const eventRepository = new EventRepository();
78
- export { eventRepository as EventRepository };
@@ -1,33 +0,0 @@
1
- import RudderMessage from './RudderMessage';
2
- // Individual element class containing Rudder Message
3
- class HtElement {
4
- constructor() {
5
- this.message = new RudderMessage();
6
- }
7
-
8
- // Setters that in turn set the field values for the contained object
9
- setType(type) {
10
- this.message.type = type;
11
- }
12
-
13
- setProperty(htProperty) {
14
- this.message.properties = htProperty;
15
- }
16
-
17
- setUserProperty(htUserProperty) {
18
- this.message.user_properties = htUserProperty;
19
- }
20
-
21
- setUserId(userId) {
22
- this.message.userId = userId;
23
- }
24
-
25
- setEventName(eventName) {
26
- this.message.event = eventName;
27
- }
28
-
29
- getElementContent() {
30
- return this.message;
31
- }
32
- }
33
- export default HtElement;
@@ -1,29 +0,0 @@
1
- // Class responsible for building up the individual elements in a batch
2
- // that is transmitted by the SDK
3
- import HtElement from './HtElement';
4
-
5
- class HtElementBuilder {
6
- constructor() {
7
- this.htProperty = null;
8
- this.htUserProperty = null;
9
- this.event = null;
10
- this.userId = null;
11
- this.type = null;
12
- }
13
-
14
- setType(eventType) {
15
- this.type = eventType;
16
- return this;
17
- }
18
-
19
- build() {
20
- const element = new HtElement();
21
- element.setUserId(this.userId);
22
- element.setType(this.type);
23
- element.setEventName(this.event);
24
- element.setProperty(this.htProperty);
25
- element.setUserProperty(this.htUserProperty);
26
- return element;
27
- }
28
- }
29
- export default HtElementBuilder;
@@ -1,61 +0,0 @@
1
- import * as R from 'ramda';
2
- import logger from "./logUtil";
3
- import {mergeDeepRight} from "./ObjectUtils";
4
-
5
- /**
6
- * Prepares the data for integrationsObj
7
- *
8
- * @param {*} integrationsData
9
- * @param {*} integrationInstances
10
- *
11
- */
12
- const constructMessageIntegrationsObj = (integrationsData, integrationInstances) => {
13
- let enhancedIntegrationsData = R.clone(integrationsData);
14
-
15
- integrationInstances.forEach((integrationInstance) => {
16
- if (integrationInstance.getDataForIntegrationsObject) {
17
- try {
18
- enhancedIntegrationsData = mergeDeepRight(
19
- enhancedIntegrationsData,
20
- integrationInstance.getDataForIntegrationsObject()
21
- );
22
- } catch (error) {
23
- logger.debug('[Analytics: prepareDataForIntegrationsObj]', error);
24
- }
25
- }
26
- });
27
-
28
- return enhancedIntegrationsData;
29
- };
30
-
31
- /**
32
- * Prepares the data for integrationsObj
33
- *
34
- * @param {*} integrationsData
35
- * @param {*} clientSuppliedIntegrations
36
- *
37
- */
38
- const getMergedClientSuppliedIntegrations = (integrationsData, clientSuppliedIntegrations) => {
39
- const clonedIntegrationsData = R.clone(integrationsData);
40
-
41
- // Filtering the integrations which are not a part of integrationsData object or value set to false
42
- const activeClientSuppliedIntegrations = Object.keys(clientSuppliedIntegrations)
43
- .filter((integration) => !(
44
- clientSuppliedIntegrations[integration] === true && clonedIntegrationsData[integration]
45
- ))
46
- .reduce((obj, key) => {
47
- // eslint-disable-next-line no-param-reassign
48
- obj[key] = clientSuppliedIntegrations[key];
49
- return obj;
50
- }, {});
51
-
52
- return mergeDeepRight(
53
- clonedIntegrationsData,
54
- activeClientSuppliedIntegrations,
55
- );
56
- };
57
-
58
- export {
59
- constructMessageIntegrationsObj,
60
- getMergedClientSuppliedIntegrations
61
- }