castled-js-sdk 0.0.1 → 0.0.2
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.
- package/.env.example +8 -0
- package/.eslintignore +15 -0
- package/.eslintrc.json +41 -0
- package/.github/ISSUE_TEMPLATE/bug_report.md +50 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +19 -0
- package/.github/pull_request_template.md +22 -0
- package/.github/workflows/build-and-quality-checks.yml +50 -0
- package/.github/workflows/deploy-beta.yml +55 -0
- package/.github/workflows/deploy-cdn.yml +113 -0
- package/.github/workflows/deploy-npm.yml +80 -0
- package/.github/workflows/deploy-sanity-suite.yml +46 -0
- package/.github/workflows/test.yml +39 -0
- package/.husky/commit-msg +4 -0
- package/.husky/pre-commit +4 -0
- package/.nvmrc +1 -0
- package/.prettierignore +10 -0
- package/.prettierrc +7 -0
- package/.size-limit.js +30 -0
- package/.versionrc +12 -0
- package/LICENSE +67 -0
- package/README.md +102 -22
- package/__mocks__/BraveBrowser.js +9 -0
- package/__mocks__/fixtures.js +130 -0
- package/__mocks__/msw.handlers.js +34 -0
- package/__mocks__/msw.server.js +6 -0
- package/__tests__/camelcase.test.js +29 -0
- package/__tests__/data-residency.test.js +238 -0
- package/__tests__/features/core/metrics/errorReporting/ErrorReportingService.test.js +80 -0
- package/__tests__/integrations/BingAds/__mocks__/data.js +17 -0
- package/__tests__/integrations/BingAds/browser.test.js +148 -0
- package/__tests__/integrations/BingAds/utils.test.js +138 -0
- package/__tests__/integrations/Braze/Braze.test.js +462 -0
- package/__tests__/integrations/FacebookPixel/FacebookPixel.test.js +347 -0
- package/__tests__/integrations/FacebookPixel/utils.test.js +688 -0
- package/__tests__/integrations/Fullstory/fullstory.test.js +147 -0
- package/__tests__/integrations/GA4/__mocks__/data.js +1480 -0
- package/__tests__/integrations/GA4/browser.test.js +94 -0
- package/__tests__/integrations/GA4/utils.test.js +337 -0
- package/__tests__/integrations/GoogleAds/__mocks__/data.js +235 -0
- package/__tests__/integrations/GoogleAds/browser.test.js +202 -0
- package/__tests__/integrations/GoogleAds/utils.test.js +110 -0
- package/__tests__/integrations/LaunchDarkly/__mocks__/data.js +61 -0
- package/__tests__/integrations/LaunchDarkly/browser.test.js +148 -0
- package/__tests__/integrations/LaunchDarkly/utils.test.js +36 -0
- package/__tests__/integrations/Lemnisk/lemnisk.test.js +156 -0
- package/__tests__/integrations/Mixpanel/browser.test.js +60 -0
- package/__tests__/integrations/PinterestTag/__mocks__/data.js +24 -0
- package/__tests__/integrations/PinterestTag/utils.test.js +19 -0
- package/__tests__/integrations/TikTokAds/tiktokads.test.js +231 -0
- package/__tests__/ketchConsent.test.js +49 -0
- package/__tests__/oneTrustCookieConsent.test.js +89 -0
- package/__tests__/script.test.js +167 -0
- package/__tests__/service-worker/__mocks__/fixtures.js +79 -0
- package/__tests__/service-worker/__mocks__/msw.server.js +12 -0
- package/__tests__/service-worker/index.test.js +109 -0
- package/__tests__/transformationHandler.test.js +169 -0
- package/__tests__/utils/IntegrationsData.test.js +105 -0
- package/__tests__/utils/ObjectUtils.test.js +227 -0
- package/__tests__/utils/cdnPaths.test.js +63 -0
- package/__tests__/utils/clientHint.test.js +87 -0
- package/__tests__/utils/commonUtils.test.js +271 -0
- package/__tests__/utils/errorHandler.test.js +60 -0
- package/__tests__/utils/eventProcessorUtils.test.js +266 -0
- package/__tests__/utils/navigator.test.js +38 -0
- package/__tests__/utils/preProcessQueue.test.js +78 -0
- package/__tests__/utils/screenDetails.test.js +19 -0
- package/__tests__/utils/utils.test.js +348 -0
- package/assets/integrations/AdobeAnalytics/adobe-analytics-heartbeat.js +12384 -0
- package/assets/integrations/AdobeAnalytics/adobe-analytics-js.js +5046 -0
- package/babel.config.json +34 -0
- package/commitlint.config.js +3 -0
- package/examples/SampleEventsTest.Html +133 -0
- package/examples/TC/TC_001.js +4 -0
- package/examples/TC/TC_002.js +4 -0
- package/examples/TC/TC_003.js +4 -0
- package/examples/TC/TC_004.js +4 -0
- package/examples/TC/TC_005.js +4 -0
- package/examples/chrome-extension/USAGE.md +131 -0
- package/examples/chrome-extension/background-script/LICENSE +21 -0
- package/examples/chrome-extension/background-script/README.md +101 -0
- package/examples/chrome-extension/background-script/foreground.js +7 -0
- package/examples/chrome-extension/background-script/logo/logo-128.png +0 -0
- package/examples/chrome-extension/background-script/logo/logo-16.png +0 -0
- package/examples/chrome-extension/background-script/logo/logo-48.png +0 -0
- package/examples/chrome-extension/background-script/logo/logo.svg +138 -0
- package/examples/chrome-extension/background-script/manifest.json +37 -0
- package/examples/chrome-extension/background-script/popup/popup.css +11 -0
- package/examples/chrome-extension/background-script/popup/popup.html +11 -0
- package/examples/chrome-extension/background-script/rudderAnalytics.js +5345 -0
- package/examples/chrome-extension/background-script/service-worker.js +32 -0
- package/examples/chrome-extension/background-script/settings/settings.css +8 -0
- package/examples/chrome-extension/background-script/settings/settings.html +12 -0
- package/examples/chrome-extension/background-script-websockets/LICENSE +21 -0
- package/examples/chrome-extension/background-script-websockets/README.md +101 -0
- package/examples/chrome-extension/background-script-websockets/foreground.js +7 -0
- package/examples/chrome-extension/background-script-websockets/logo/logo-128.png +0 -0
- package/examples/chrome-extension/background-script-websockets/logo/logo-16.png +0 -0
- package/examples/chrome-extension/background-script-websockets/logo/logo-48.png +0 -0
- package/examples/chrome-extension/background-script-websockets/logo/logo.svg +138 -0
- package/examples/chrome-extension/background-script-websockets/manifest.json +37 -0
- package/examples/chrome-extension/background-script-websockets/popup/popup.css +11 -0
- package/examples/chrome-extension/background-script-websockets/popup/popup.html +11 -0
- package/{service-worker/index.es.js → examples/chrome-extension/background-script-websockets/rudderAnalytics.js} +1283 -1274
- package/examples/chrome-extension/background-script-websockets/service-worker.js +60 -0
- package/examples/chrome-extension/background-script-websockets/settings/settings.css +8 -0
- package/examples/chrome-extension/background-script-websockets/settings/settings.html +12 -0
- package/examples/chrome-extension/content-script/LICENSE +21 -0
- package/examples/chrome-extension/content-script/README.md +101 -0
- package/examples/chrome-extension/content-script/foreground.js +65 -0
- package/examples/chrome-extension/content-script/logo/logo-128.png +0 -0
- package/examples/chrome-extension/content-script/logo/logo-16.png +0 -0
- package/examples/chrome-extension/content-script/logo/logo-48.png +0 -0
- package/examples/chrome-extension/content-script/logo/logo.svg +138 -0
- package/examples/chrome-extension/content-script/manifest.json +39 -0
- package/examples/chrome-extension/content-script/popup/popup.css +11 -0
- package/examples/chrome-extension/content-script/popup/popup.html +11 -0
- package/examples/chrome-extension/content-script/service-worker-utils.js +17 -0
- package/examples/chrome-extension/content-script/service-worker.js +12 -0
- package/examples/chrome-extension/content-script/settings/settings.css +8 -0
- package/examples/chrome-extension/content-script/settings/settings.html +12 -0
- package/examples/chrome-extension/websocket-server/server.mjs +19 -0
- package/examples/html/autotrack-test.html +96 -0
- package/examples/html/ecomm_test.html +358 -0
- package/examples/html/script-test.html +968 -0
- package/examples/html/segment.html +177 -0
- package/examples/html/test_poster.jpg +0 -0
- package/examples/umd/index.js +11 -0
- package/examples/umd/package.json +42 -0
- package/examples/umd/rollup.config.js +36 -0
- package/examples/umd/tests/test.html +5 -0
- package/examples/v1.1/tc1.html +139 -0
- package/examples/v1.1/tc2.1.html +140 -0
- package/examples/v1.1/tc2.2.html +139 -0
- package/examples/v1.1/tc2.3.html +143 -0
- package/examples/v1.1/tc3.1.html +139 -0
- package/examples/v1.1/tc3.2.html +142 -0
- package/examples/v1.1/tc3.3.html +142 -0
- package/examples/v1.1/tc3.4.html +144 -0
- package/examples/v1.1/tc3.5.html +142 -0
- package/examples/v1.1/tc4.html +142 -0
- package/examples/v1.1/tc5.html +150 -0
- package/github-release.config.js +5 -0
- package/jest/jest.global-setup.js +3 -0
- package/jest/jest.polyfills.js +10 -0
- package/jest/jest.setup-dom.js +49 -0
- package/jest.config.js +196 -0
- package/package.json +198 -39
- package/packages/npm/README.md +125 -0
- package/packages/npm/package.json +50 -0
- package/patches/@segment+localstorage-retry+1.3.0.patch +73 -0
- package/patches/@segment+top-domain+3.0.1.patch +34 -0
- package/public/index.html +136 -0
- package/public/list_integration_sdks.html +390 -0
- package/rollup-configs/rollup.integrations.config.js +29 -0
- package/rollup-configs/rollup.sdk.browser.js +32 -0
- package/rollup-configs/rollup.sdk.npm.js +43 -0
- package/rollup-configs/rollup.utilities.js +120 -0
- package/rollup-configs/rollup.worker.config.js +37 -0
- package/sanity-suite/.babelrc +33 -0
- package/sanity-suite/.env.example +6 -0
- package/sanity-suite/__mocks__/alias1.json +137 -0
- package/sanity-suite/__mocks__/alias2.json +97 -0
- package/sanity-suite/__mocks__/alias5.json +103 -0
- package/sanity-suite/__mocks__/alias6.json +137 -0
- package/sanity-suite/__mocks__/group1.json +120 -0
- package/sanity-suite/__mocks__/group2.json +86 -0
- package/sanity-suite/__mocks__/group4.json +101 -0
- package/sanity-suite/__mocks__/group5.json +67 -0
- package/sanity-suite/__mocks__/group6.json +66 -0
- package/sanity-suite/__mocks__/identify1.json +136 -0
- package/sanity-suite/__mocks__/identify2.json +102 -0
- package/sanity-suite/__mocks__/identify3.json +99 -0
- package/sanity-suite/__mocks__/identify4.json +65 -0
- package/sanity-suite/__mocks__/identify5.json +102 -0
- package/sanity-suite/__mocks__/identify6.json +103 -0
- package/sanity-suite/__mocks__/identify7.json +102 -0
- package/sanity-suite/__mocks__/identify8.json +103 -0
- package/sanity-suite/__mocks__/page1.json +119 -0
- package/sanity-suite/__mocks__/page2.json +86 -0
- package/sanity-suite/__mocks__/page4.json +112 -0
- package/sanity-suite/__mocks__/page5.json +79 -0
- package/sanity-suite/__mocks__/page6.json +77 -0
- package/sanity-suite/__mocks__/page7.json +77 -0
- package/sanity-suite/__mocks__/page8.json +75 -0
- package/sanity-suite/__mocks__/page9.json +155 -0
- package/sanity-suite/__mocks__/sourceConfig1.json +988 -0
- package/sanity-suite/__mocks__/track1.json +150 -0
- package/sanity-suite/__mocks__/track2.json +118 -0
- package/sanity-suite/__mocks__/track4.json +134 -0
- package/sanity-suite/__mocks__/track5.json +102 -0
- package/sanity-suite/__mocks__/track6.json +81 -0
- package/sanity-suite/__mocks__/track7.json +81 -0
- package/sanity-suite/package-lock.json +7951 -0
- package/sanity-suite/package.json +67 -0
- package/sanity-suite/public/eventFiltering/index-cdn.html +112 -0
- package/sanity-suite/public/eventFiltering/index-local.html +109 -0
- package/sanity-suite/public/eventFiltering/index-npm.html +92 -0
- package/sanity-suite/public/index-cdn.html +112 -0
- package/sanity-suite/public/index-local.html +109 -0
- package/sanity-suite/public/index-npm.html +92 -0
- package/sanity-suite/public/preloadBuffer/index-cdn.html +112 -0
- package/sanity-suite/public/preloadBuffer/index-local.html +109 -0
- package/sanity-suite/public/preloadBuffer/index-npm.html +92 -0
- package/sanity-suite/rollup.config.js +199 -0
- package/sanity-suite/src/index-npm.js +65 -0
- package/sanity-suite/src/index.js +5 -0
- package/sanity-suite/src/testBook/ResultAssertions.js +51 -0
- package/sanity-suite/src/testBook/TestBook.js +345 -0
- package/sanity-suite/src/testBook/ignoredProperties.js +150 -0
- package/sanity-suite/src/testBook/index.js +11 -0
- package/sanity-suite/src/testBookSuites/alias.js +287 -0
- package/sanity-suite/src/testBookSuites/group.js +240 -0
- package/sanity-suite/src/testBookSuites/identify.js +455 -0
- package/sanity-suite/src/testBookSuites/index.js +31 -0
- package/sanity-suite/src/testBookSuites/page.js +258 -0
- package/sanity-suite/src/testBookSuites/sourceConfig.js +84 -0
- package/sanity-suite/src/testBookSuites/track.js +451 -0
- package/scripts/integrationBuildScript.js +77 -0
- package/scripts/run_tests.sh +6 -0
- package/src/core/analytics.js +1668 -0
- package/src/features/core/cookieConsent/CookieConsentFactory.js +32 -0
- package/src/features/core/cookieConsent/OneTrust/browser.js +102 -0
- package/src/features/core/cookieConsent/OneTrust/index.js +3 -0
- package/src/features/core/cookieConsent/ketch/browser.js +114 -0
- package/src/features/core/cookieConsent/ketch/index.js +1 -0
- package/src/features/core/deviceModeTransformation/transformationHandler.js +189 -0
- package/src/features/core/deviceModeTransformation/util.js +23 -0
- package/src/features/core/metrics/errorReporting/ErrorReportingService.js +116 -0
- package/src/features/core/metrics/errorReporting/providers/Bugsnag.js +240 -0
- package/src/features/core/session/index.js +207 -0
- package/src/integrations/ActiveCampaign/browser.js +52 -0
- package/src/integrations/ActiveCampaign/constants.js +14 -0
- package/src/integrations/ActiveCampaign/index.js +3 -0
- package/src/integrations/ActiveCampaign/nativeSdkLoader.js +24 -0
- package/src/integrations/AdobeAnalytics/browser.js +276 -0
- package/src/integrations/AdobeAnalytics/constants.js +14 -0
- package/src/integrations/AdobeAnalytics/eCommHandle.js +56 -0
- package/src/integrations/AdobeAnalytics/heartbeatHandle.js +266 -0
- package/src/integrations/AdobeAnalytics/index.js +1 -0
- package/src/integrations/AdobeAnalytics/util.js +678 -0
- package/src/integrations/Adroll/browser.js +125 -0
- package/src/integrations/Adroll/constants.js +10 -0
- package/src/integrations/Adroll/index.js +1 -0
- package/src/integrations/Adroll/util.js +48 -0
- package/src/integrations/Amplitude/browser.js +352 -0
- package/src/integrations/Amplitude/constants.js +9 -0
- package/src/integrations/Amplitude/index.js +1 -0
- package/src/integrations/Amplitude/nativeSdkLoader.js +112 -0
- package/src/integrations/Amplitude/test/test_amplitude.html +157 -0
- package/src/integrations/Amplitude/utils.js +25 -0
- package/src/integrations/Appcues/browser.js +79 -0
- package/src/integrations/Appcues/constants.js +9 -0
- package/src/integrations/Appcues/index.js +1 -0
- package/src/integrations/Axeptio/browser.js +61 -0
- package/src/integrations/Axeptio/constants.js +8 -0
- package/src/integrations/Axeptio/index.js +1 -0
- package/src/integrations/Axeptio/nativeSdkLoader.js +14 -0
- package/src/integrations/Axeptio/utils.js +16 -0
- package/src/integrations/BingAds/browser.js +79 -0
- package/src/integrations/BingAds/constants.js +12 -0
- package/src/integrations/BingAds/index.js +1 -0
- package/src/integrations/BingAds/nativeSdkLoader.js +30 -0
- package/src/integrations/BingAds/utils.js +101 -0
- package/src/integrations/Braze/browser.js +284 -0
- package/src/integrations/Braze/constants.js +11 -0
- package/src/integrations/Braze/index.js +1 -0
- package/src/integrations/Braze/nativeSdkLoader.js +35 -0
- package/src/integrations/Braze/utils.js +51 -0
- package/src/integrations/Bugsnag/browser.js +60 -0
- package/src/integrations/Bugsnag/constants.js +8 -0
- package/src/integrations/Bugsnag/index.js +1 -0
- package/src/integrations/Chartbeat/browser.js +148 -0
- package/src/integrations/Chartbeat/constants.js +10 -0
- package/src/integrations/Chartbeat/index.js +1 -0
- package/src/integrations/Chartbeat/nativeSdkLoader.js +7 -0
- package/src/integrations/Clevertap/browser.js +206 -0
- package/src/integrations/Clevertap/constants.js +8 -0
- package/src/integrations/Clevertap/index.js +1 -0
- package/src/integrations/Comscore/browser.js +130 -0
- package/src/integrations/Comscore/constants.js +11 -0
- package/src/integrations/Comscore/index.js +1 -0
- package/src/integrations/Comscore/nativeSdkLoader.js +10 -0
- package/src/integrations/ConvertFlow/browser.js +59 -0
- package/src/integrations/ConvertFlow/constants.js +15 -0
- package/src/integrations/ConvertFlow/index.js +1 -0
- package/src/integrations/ConvertFlow/utils.js +107 -0
- package/src/integrations/Criteo/browser.js +155 -0
- package/src/integrations/Criteo/constants.js +11 -0
- package/src/integrations/Criteo/index.js +1 -0
- package/src/integrations/Criteo/utils.js +343 -0
- package/src/integrations/CustomerIO/browser.js +74 -0
- package/src/integrations/CustomerIO/constants.js +10 -0
- package/src/integrations/CustomerIO/index.js +1 -0
- package/src/integrations/CustomerIO/nativeSdkLoader.js +31 -0
- package/src/integrations/DCMFloodlight/browser.js +240 -0
- package/src/integrations/DCMFloodlight/constants.js +15 -0
- package/src/integrations/DCMFloodlight/index.js +1 -0
- package/src/integrations/DCMFloodlight/utils.js +336 -0
- package/src/integrations/Drip/browser.js +169 -0
- package/src/integrations/Drip/constants.js +8 -0
- package/src/integrations/Drip/index.js +1 -0
- package/src/integrations/Drip/nativeSdkLoader.js +10 -0
- package/src/integrations/Drip/utils.js +29 -0
- package/src/integrations/Engage/browser.js +124 -0
- package/src/integrations/Engage/constants.js +16 -0
- package/src/integrations/Engage/index.js +1 -0
- package/src/integrations/Engage/nativeSdkLoader.js +25 -0
- package/src/integrations/Engage/utils.js +69 -0
- package/src/integrations/FacebookPixel/browser.js +313 -0
- package/src/integrations/FacebookPixel/constants.js +77 -0
- package/src/integrations/FacebookPixel/index.js +1 -0
- package/src/integrations/FacebookPixel/utils.js +310 -0
- package/src/integrations/Fullstory/browser.js +169 -0
- package/src/integrations/Fullstory/constants.js +13 -0
- package/src/integrations/Fullstory/index.js +1 -0
- package/src/integrations/Fullstory/nativeSdkLoader.js +69 -0
- package/src/integrations/GA/browser.js +816 -0
- package/src/integrations/GA/constants.js +10 -0
- package/src/integrations/GA/index.js +1 -0
- package/src/integrations/GA/index.test.js +184 -0
- package/src/integrations/GA360/browser.js +58 -0
- package/src/integrations/GA360/constants.js +14 -0
- package/src/integrations/GA360/index.js +1 -0
- package/src/integrations/GA4/browser.js +264 -0
- package/src/integrations/GA4/config.js +296 -0
- package/src/integrations/GA4/constants.js +15 -0
- package/src/integrations/GA4/index.js +1 -0
- package/src/integrations/GA4/utils.js +329 -0
- package/src/integrations/GoogleAds/browser.js +212 -0
- package/src/integrations/GoogleAds/constants.js +11 -0
- package/src/integrations/GoogleAds/index.js +1 -0
- package/src/integrations/GoogleAds/nativeSdkLoader.js +26 -0
- package/src/integrations/GoogleAds/utils.js +117 -0
- package/src/integrations/GoogleOptimize/browser.js +79 -0
- package/src/integrations/GoogleOptimize/constants.js +13 -0
- package/src/integrations/GoogleOptimize/index.js +1 -0
- package/src/integrations/GoogleTagManager/browser.js +95 -0
- package/src/integrations/GoogleTagManager/constants.js +10 -0
- package/src/integrations/GoogleTagManager/index.js +1 -0
- package/src/integrations/GoogleTagManager/nativeSdkLoader.js +21 -0
- package/src/integrations/Heap/browser.js +67 -0
- package/src/integrations/Heap/constants.js +9 -0
- package/src/integrations/Heap/index.js +1 -0
- package/src/integrations/Heap/nativeSdkLoader.js +40 -0
- package/src/integrations/Heap/util.js +23 -0
- package/src/integrations/Hotjar/browser.js +86 -0
- package/src/integrations/Hotjar/constants.js +10 -0
- package/src/integrations/Hotjar/index.js +1 -0
- package/src/integrations/Hotjar/nativeSdkLoader.js +21 -0
- package/src/integrations/HubSpot/browser.js +96 -0
- package/src/integrations/HubSpot/constants.js +11 -0
- package/src/integrations/HubSpot/index.js +1 -0
- package/src/integrations/INTERCOM/browser.js +107 -0
- package/src/integrations/INTERCOM/constants.js +8 -0
- package/src/integrations/INTERCOM/index.js +1 -0
- package/src/integrations/INTERCOM/nativeSdkLoader.js +46 -0
- package/src/integrations/INTERCOM/utils.js +68 -0
- package/src/integrations/Iterable/browser.js +185 -0
- package/src/integrations/Iterable/constants.js +8 -0
- package/src/integrations/Iterable/index.js +1 -0
- package/src/integrations/Iterable/utils.js +111 -0
- package/src/integrations/June/browser.js +98 -0
- package/src/integrations/June/constants.js +8 -0
- package/src/integrations/June/index.js +1 -0
- package/src/integrations/Keen/browser.js +153 -0
- package/src/integrations/Keen/constants.js +10 -0
- package/src/integrations/Keen/index.js +1 -0
- package/src/integrations/Kissmetrics/browser.js +254 -0
- package/src/integrations/Kissmetrics/constants.js +8 -0
- package/src/integrations/Kissmetrics/index.js +1 -0
- package/src/integrations/Kissmetrics/nativeSdkLoader.js +23 -0
- package/src/integrations/Klaviyo/browser.js +195 -0
- package/src/integrations/Klaviyo/constants.js +8 -0
- package/src/integrations/Klaviyo/index.js +1 -0
- package/src/integrations/Klaviyo/util.js +91 -0
- package/src/integrations/LaunchDarkly/browser.js +74 -0
- package/src/integrations/LaunchDarkly/constants.js +11 -0
- package/src/integrations/LaunchDarkly/index.js +1 -0
- package/src/integrations/LaunchDarkly/utils.js +24 -0
- package/src/integrations/Lemnisk/browser.js +85 -0
- package/src/integrations/Lemnisk/constants.js +13 -0
- package/src/integrations/Lemnisk/index.js +1 -0
- package/src/integrations/Lemnisk/nativeSdkLoader.js +34 -0
- package/src/integrations/LinkedInInsightTag/browser.js +71 -0
- package/src/integrations/LinkedInInsightTag/constants.js +16 -0
- package/src/integrations/LinkedInInsightTag/index.js +1 -0
- package/src/integrations/LiveChat/browser.js +82 -0
- package/src/integrations/LiveChat/constants.js +12 -0
- package/src/integrations/LiveChat/index.js +1 -0
- package/src/integrations/LiveChat/nativeSdkLoader.js +40 -0
- package/src/integrations/LiveChat/util.js +71 -0
- package/src/integrations/Lotame/LotameStorage.js +21 -0
- package/src/integrations/Lotame/browser.js +172 -0
- package/src/integrations/Lotame/constants.js +8 -0
- package/src/integrations/Lotame/index.js +1 -0
- package/src/integrations/Lytics/browser.js +87 -0
- package/src/integrations/Lytics/constants.js +8 -0
- package/src/integrations/Lytics/index.js +1 -0
- package/src/integrations/Lytics/nativeSdkLoader.js +77 -0
- package/src/integrations/Lytics/test/script-test-lytics.html +250 -0
- package/src/integrations/Matomo/browser.js +188 -0
- package/src/integrations/Matomo/constants.js +8 -0
- package/src/integrations/Matomo/index.js +1 -0
- package/src/integrations/Matomo/nativeSdkLoader.js +20 -0
- package/src/integrations/Matomo/util.js +417 -0
- package/src/integrations/MicrosoftClarity/browser.js +70 -0
- package/src/integrations/MicrosoftClarity/constants.js +14 -0
- package/src/integrations/MicrosoftClarity/index.js +1 -0
- package/src/integrations/MicrosoftClarity/nativeSdkLoader.js +22 -0
- package/src/integrations/Mixpanel/browser.js +326 -0
- package/src/integrations/Mixpanel/constants.js +11 -0
- package/src/integrations/Mixpanel/index.js +1 -0
- package/src/integrations/Mixpanel/nativeSdkLoader.js +71 -0
- package/src/integrations/Mixpanel/util.js +178 -0
- package/src/integrations/MoEngage/browser.js +133 -0
- package/src/integrations/MoEngage/constants.js +12 -0
- package/src/integrations/MoEngage/index.js +1 -0
- package/src/integrations/MoEngage/nativeSdkLoader.js +66 -0
- package/src/integrations/MoEngage/test/script-test-moengage.html +216 -0
- package/src/integrations/Mouseflow/browser.js +98 -0
- package/src/integrations/Mouseflow/constants.js +14 -0
- package/src/integrations/Mouseflow/index.js +1 -0
- package/src/integrations/Mouseflow/utils.js +27 -0
- package/src/integrations/Olark/browser.js +94 -0
- package/src/integrations/Olark/constants.js +8 -0
- package/src/integrations/Olark/index.js +1 -0
- package/src/integrations/Olark/nativeSdkLoader.js +31 -0
- package/src/integrations/Olark/utils.js +51 -0
- package/src/integrations/Optimizely/browser.js +230 -0
- package/src/integrations/Optimizely/constants.js +8 -0
- package/src/integrations/Optimizely/index.js +1 -0
- package/src/integrations/Optimizely/utils.js +23 -0
- package/src/integrations/Pendo/browser.js +119 -0
- package/src/integrations/Pendo/constants.js +8 -0
- package/src/integrations/Pendo/index.js +1 -0
- package/src/integrations/Pendo/nativeSdkLoader.js +32 -0
- package/src/integrations/PinterestTag/browser.js +241 -0
- package/src/integrations/PinterestTag/constants.js +19 -0
- package/src/integrations/PinterestTag/index.js +1 -0
- package/src/integrations/PinterestTag/nativeSdkLoader.js +19 -0
- package/src/integrations/PinterestTag/propertyMappingConfig.js +57 -0
- package/src/integrations/PinterestTag/test/input.js +180 -0
- package/src/integrations/PinterestTag/test/output.js +129 -0
- package/src/integrations/PinterestTag/utils.js +47 -0
- package/src/integrations/Podsights/browser.js +178 -0
- package/src/integrations/Podsights/constants.js +206 -0
- package/src/integrations/Podsights/index.js +1 -0
- package/src/integrations/Podsights/utils.js +65 -0
- package/src/integrations/PostAffiliatePro/browser.js +133 -0
- package/src/integrations/PostAffiliatePro/constants.js +13 -0
- package/src/integrations/PostAffiliatePro/index.js +1 -0
- package/src/integrations/PostAffiliatePro/utils.js +40 -0
- package/src/integrations/Posthog/browser.js +154 -0
- package/src/integrations/Posthog/constants.js +12 -0
- package/src/integrations/Posthog/index.js +1 -0
- package/src/integrations/Posthog/nativeSdkLoader.js +48 -0
- package/src/integrations/Posthog/test/test_posthog.html +77 -0
- package/src/integrations/Posthog/utils.js +36 -0
- package/src/integrations/ProfitWell/browser.js +72 -0
- package/src/integrations/ProfitWell/constants.js +12 -0
- package/src/integrations/ProfitWell/index.js +1 -0
- package/src/integrations/ProfitWell/nativeSdkLoader.js +25 -0
- package/src/integrations/Qualaroo/browser.js +116 -0
- package/src/integrations/Qualaroo/constants.js +8 -0
- package/src/integrations/Qualaroo/index.js +1 -0
- package/src/integrations/Qualaroo/utils.js +83 -0
- package/src/integrations/Qualtrics/browser.js +89 -0
- package/src/integrations/Qualtrics/constants.js +8 -0
- package/src/integrations/Qualtrics/index.js +1 -0
- package/src/integrations/Qualtrics/nativeSdkLoader.js +79 -0
- package/src/integrations/QuantumMetric/browser.js +63 -0
- package/src/integrations/QuantumMetric/constants.js +13 -0
- package/src/integrations/QuantumMetric/index.js +1 -0
- package/src/integrations/QuoraPixel/browser.js +64 -0
- package/src/integrations/QuoraPixel/constants.js +15 -0
- package/src/integrations/QuoraPixel/index.js +1 -0
- package/src/integrations/QuoraPixel/nativeSdkLoader.js +21 -0
- package/src/integrations/RedditPixel/browser.js +98 -0
- package/src/integrations/RedditPixel/constants.js +13 -0
- package/src/integrations/RedditPixel/index.js +1 -0
- package/src/integrations/RedditPixel/nativeSdkLoader.js +21 -0
- package/src/integrations/Refiner/browser.js +119 -0
- package/src/integrations/Refiner/constants.js +8 -0
- package/src/integrations/Refiner/index.js +1 -0
- package/src/integrations/Refiner/nativeSdkLoader.js +20 -0
- package/src/integrations/Refiner/utils.js +44 -0
- package/src/integrations/Rockerbox/browser.js +89 -0
- package/src/integrations/Rockerbox/constants.js +12 -0
- package/src/integrations/Rockerbox/index.js +1 -0
- package/src/integrations/Rockerbox/nativeSdkLoader.js +32 -0
- package/src/integrations/RollBar/browser.js +92 -0
- package/src/integrations/RollBar/constants.js +13 -0
- package/src/integrations/RollBar/index.js +1 -0
- package/src/integrations/RollBar/nativeSdkLoader.js +383 -0
- package/src/integrations/Satismeter/browser.js +94 -0
- package/src/integrations/Satismeter/constants.js +9 -0
- package/src/integrations/Satismeter/index.js +1 -0
- package/src/integrations/Satismeter/nativeSdkLoader.js +23 -0
- package/src/integrations/Satismeter/util.js +54 -0
- package/src/integrations/Sendinblue/browser.js +111 -0
- package/src/integrations/Sendinblue/constants.js +25 -0
- package/src/integrations/Sendinblue/index.js +1 -0
- package/src/integrations/Sendinblue/nativeSdkLoader.js +36 -0
- package/src/integrations/Sendinblue/utils.js +112 -0
- package/src/integrations/Sentry/browser.js +118 -0
- package/src/integrations/Sentry/constants.js +8 -0
- package/src/integrations/Sentry/index.js +1 -0
- package/src/integrations/Sentry/utils.js +80 -0
- package/src/integrations/Shynet/browser.js +97 -0
- package/src/integrations/Shynet/constants.js +15 -0
- package/src/integrations/Shynet/index.js +1 -0
- package/src/integrations/SnapEngage/browser.js +75 -0
- package/src/integrations/SnapEngage/constants.js +12 -0
- package/src/integrations/SnapEngage/index.js +1 -0
- package/src/integrations/SnapEngage/nativeSdkLoader.js +24 -0
- package/src/integrations/SnapEngage/util.js +63 -0
- package/src/integrations/SnapPixel/browser.js +232 -0
- package/src/integrations/SnapPixel/constants.js +13 -0
- package/src/integrations/SnapPixel/index.js +1 -0
- package/src/integrations/SnapPixel/nativeSdkLoader.js +20 -0
- package/src/integrations/SnapPixel/util.js +211 -0
- package/src/integrations/TVSquared/browser.js +96 -0
- package/src/integrations/TVSquared/constants.js +14 -0
- package/src/integrations/TVSquared/index.js +1 -0
- package/src/integrations/TVSquared/utils.js +40 -0
- package/src/integrations/TiktokAds/browser.js +103 -0
- package/src/integrations/TiktokAds/constants.js +86 -0
- package/src/integrations/TiktokAds/index.js +1 -0
- package/src/integrations/TiktokAds/nativeSdkLoader.js +52 -0
- package/src/integrations/TiktokAds/util.js +71 -0
- package/src/integrations/VWO/browser.js +131 -0
- package/src/integrations/VWO/constants.js +13 -0
- package/src/integrations/VWO/index.js +1 -0
- package/src/integrations/VWO/nativeSdkLoader.js +64 -0
- package/src/integrations/Vero/browser.js +165 -0
- package/src/integrations/Vero/constants.js +8 -0
- package/src/integrations/Vero/index.js +1 -0
- package/src/integrations/Woopra/browser.js +83 -0
- package/src/integrations/Woopra/constants.js +8 -0
- package/src/integrations/Woopra/index.js +1 -0
- package/src/integrations/Woopra/nativeSdkLoader.js +43 -0
- package/src/integrations/YandexMetrica/browser.js +143 -0
- package/src/integrations/YandexMetrica/constants.js +10 -0
- package/src/integrations/YandexMetrica/index.js +1 -0
- package/src/integrations/YandexMetrica/nativeSdkLoader.js +35 -0
- package/src/integrations/YandexMetrica/utils.js +138 -0
- package/src/integrations/index.js +155 -0
- package/src/service-worker/index.js +466 -0
- package/src/utils/EventRepository.js +78 -0
- package/src/utils/HtElement.js +33 -0
- package/src/utils/HtElementBuilder.js +29 -0
- package/src/utils/IntegrationsData.js +61 -0
- package/src/utils/JSFileLoader.js +66 -0
- package/src/utils/ObjectUtils.js +68 -0
- package/src/utils/PreProcessQueue.js +66 -0
- package/src/utils/RudderApp.js +9 -0
- package/src/utils/RudderContext.js +21 -0
- package/src/utils/RudderInfo.js +41 -0
- package/src/utils/RudderMessage.js +28 -0
- package/src/utils/ScriptLoader.js +53 -0
- package/src/utils/beaconQueue.js +133 -0
- package/src/utils/camelcase.js +48 -0
- package/src/utils/cdnPaths.js +43 -0
- package/src/utils/clientHint.js +28 -0
- package/src/utils/client_server_name.js +78 -0
- package/src/utils/commonUtils.js +207 -0
- package/src/utils/config_to_integration_names.js +80 -0
- package/src/utils/constants.js +82 -0
- package/src/utils/errorHandler.js +88 -0
- package/src/utils/eventProcessorUtils.js +53 -0
- package/src/utils/integration_cname.js +156 -0
- package/src/utils/linker/base64decoder.js +31 -0
- package/src/utils/linker/crc32.js +42 -0
- package/src/utils/linker/index.js +134 -0
- package/src/utils/linker/userLib.js +20 -0
- package/src/utils/logUtil.js +51 -0
- package/src/utils/logger.js +106 -0
- package/src/utils/navigator.js +32 -0
- package/src/utils/notifyError.js +16 -0
- package/src/utils/pageProperties.js +74 -0
- package/src/utils/screenDetails.js +23 -0
- package/src/utils/storage/cookie.js +93 -0
- package/src/utils/storage/index.js +3 -0
- package/src/utils/storage/storage.js +459 -0
- package/src/utils/storage/store.js +72 -0
- package/src/utils/storage/v3DecryptionUtils.js +19 -0
- package/src/utils/utils.js +966 -0
- package/src/utils/xhrModule.js +111 -0
- package/stats/AdobeAnalytics.html +4044 -0
- package/stats/Adroll.html +4044 -0
- package/stats/Amplitude.html +4044 -0
- package/stats/Appcues.html +4044 -0
- package/stats/BingAds.html +4044 -0
- package/stats/Braze.html +4044 -0
- package/stats/Bugsnag.html +4044 -0
- package/stats/Chartbeat.html +4044 -0
- package/stats/Clevertap.html +4044 -0
- package/stats/Comscore.html +4044 -0
- package/stats/ConvertFlow.html +4044 -0
- package/stats/Criteo.html +4044 -0
- package/stats/CustomerIO.html +4044 -0
- package/stats/DCMFloodlight.html +4044 -0
- package/stats/Drip.html +4044 -0
- package/stats/Engage.html +4044 -0
- package/stats/FacebookPixel.html +4044 -0
- package/stats/Fullstory.html +4044 -0
- package/stats/GA.html +4044 -0
- package/stats/GA360.html +4044 -0
- package/stats/GA4.html +4044 -0
- package/stats/GoogleAds.html +4044 -0
- package/stats/GoogleOptimize.html +4044 -0
- package/stats/GoogleTagManager.html +4044 -0
- package/stats/Heap.html +4044 -0
- package/stats/Hotjar.html +4044 -0
- package/stats/HubSpot.html +4044 -0
- package/stats/INTERCOM.html +4044 -0
- package/stats/Iterable.html +4044 -0
- package/stats/June.html +4044 -0
- package/stats/Keen.html +4044 -0
- package/stats/Kissmetrics.html +4044 -0
- package/stats/Klaviyo.html +4044 -0
- package/stats/LaunchDarkly.html +4044 -0
- package/stats/LinkedInInsightTag.html +4044 -0
- package/stats/LiveChat.html +4044 -0
- package/stats/Lotame.html +4044 -0
- package/stats/Lytics.html +4044 -0
- package/stats/Matomo.html +4044 -0
- package/stats/Mixpanel.html +4044 -0
- package/stats/MoEngage.html +4044 -0
- package/stats/Mouseflow.html +4044 -0
- package/stats/Optimizely.html +4044 -0
- package/stats/Pendo.html +4044 -0
- package/stats/PinterestTag.html +4044 -0
- package/stats/Podsights.html +4044 -0
- package/stats/PostAffiliatePro.html +4044 -0
- package/stats/Posthog.html +4044 -0
- package/stats/ProfitWell.html +4044 -0
- package/stats/Qualaroo.html +4044 -0
- package/stats/Qualtrics.html +4044 -0
- package/stats/QuantumMetric.html +4044 -0
- package/stats/QuoraPixel.html +4044 -0
- package/stats/RedditPixel.html +4044 -0
- package/stats/Refiner.html +4044 -0
- package/stats/Rockerbox.html +4044 -0
- package/stats/RollBar.html +4044 -0
- package/stats/Sentry.html +4044 -0
- package/stats/Shynet.html +4044 -0
- package/stats/SnapEngage.html +4044 -0
- package/stats/SnapPixel.html +4044 -0
- package/stats/TVSquared.html +4044 -0
- package/stats/VWO.html +4044 -0
- package/stats/Vero.html +4044 -0
- package/stats/Woopra.html +4044 -0
- package/stats/YandexMetrica.html +4044 -0
- package/stats/rudder-analytics.html +4044 -0
- package/index.es.js +0 -1
- package/index.js +0 -1
- package/service-worker/index.js +0 -5346
- /package/{index.d.ts → packages/npm/index.d.ts} +0 -0
- /package/{service-worker → src/service-worker}/index.d.ts +0 -0
package/LICENSE
ADDED
@@ -0,0 +1,67 @@
|
|
1
|
+
MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2024 Castled Data
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
22
|
+
|
23
|
+
---
|
24
|
+
MIT License
|
25
|
+
|
26
|
+
Copyright (c) 2023 Hightouch
|
27
|
+
|
28
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
29
|
+
of this software and associated documentation files (the "Software"), to deal
|
30
|
+
in the Software without restriction, including without limitation the rights
|
31
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
32
|
+
copies of the Software, and to permit persons to whom the Software is
|
33
|
+
furnished to do so, subject to the following conditions:
|
34
|
+
|
35
|
+
The above copyright notice and this permission notice shall be included in all
|
36
|
+
copies or substantial portions of the Software.
|
37
|
+
|
38
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
39
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
40
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
41
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
42
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
43
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
44
|
+
SOFTWARE.
|
45
|
+
|
46
|
+
---
|
47
|
+
MIT License
|
48
|
+
|
49
|
+
Copyright (c) 2021 RudderStack
|
50
|
+
|
51
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
52
|
+
of this software and associated documentation files (the "Software"), to deal
|
53
|
+
in the Software without restriction, including without limitation the rights
|
54
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
55
|
+
copies of the Software, and to permit persons to whom the Software is
|
56
|
+
furnished to do so, subject to the following conditions:
|
57
|
+
|
58
|
+
The above copyright notice and this permission notice shall be included in all
|
59
|
+
copies or substantial portions of the Software.
|
60
|
+
|
61
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
62
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
63
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
64
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
65
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
66
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
67
|
+
SOFTWARE.
|
package/README.md
CHANGED
@@ -1,31 +1,107 @@
|
|
1
|
-
# Events SDK
|
1
|
+
# Castled Events Javascript SDK
|
2
2
|
|
3
3
|
## Installation
|
4
4
|
|
5
|
+
To integrate the JavaScript SDK with your website, place the following code snippet in the `<head>` section of your website.
|
6
|
+
|
7
|
+
```javascript
|
8
|
+
<script type="text/javascript">
|
9
|
+
!function(){var e=window.castledanalytics=window.castledanalytics||[];e.methods=["load","page","track","identify","alias","group","ready","reset","getAnonymousId","setAnonymousId"],e.factory=function(t){return function(){e.push([t].concat(Array.prototype.slice.call(arguments)))}};for(var t=0;t<e.methods.length;t++){var r=e.methods[t];e[r]=e.factory(r)}e.loadJS=function(e,t){var r=document.createElement("script");r.type="text/javascript",r.async=!0,r.src="https://cdn.castled.io/js/latest/events.min.js";var a=document.getElementsByTagName("script")[0];a.parentNode.insertBefore(r,a)},e.loadJS(),
|
10
|
+
e.load(<WRITE_KEY>,<DATA_PLANE_URL>,{configUrl: <CONTROL_PLANE_URL>}),
|
11
|
+
e.page()}();
|
12
|
+
</script>
|
13
|
+
```
|
14
|
+
|
15
|
+
The above snippet lets you integrate the SDK with your website and load it asynchronously to keep your page load time unaffected.
|
16
|
+
|
17
|
+
To load the events SDK synchronously, you can refer to the minified or non-minified versions of the code in the following sections:
|
18
|
+
|
19
|
+
### Minified code
|
20
|
+
|
21
|
+
```html
|
22
|
+
<script>
|
23
|
+
castledanalytics=window.castledanalytics=[];for(var methods=["load","page","track","identify","alias","group","ready","reset","getAnonymousId","setAnonymousId"],i=0;i<methods.length;i++){var method=methods[i];castledanalytics[method]=function(a){return function(){castledanalytics.push([a].concat(Array.prototype.slice.call(arguments)))}}(method)}castledanalytics.load(<WRITE_KEY>,<DATA_PLANE_URL>, {configUrl: <CONTROL_PLANE_URL>}),castledanalytics.page();
|
24
|
+
</script>
|
25
|
+
|
26
|
+
<script src="https://cdn.castled.io/js/latest/events.min.js"></script>
|
27
|
+
```
|
28
|
+
|
29
|
+
### Non-minified code
|
30
|
+
|
31
|
+
```html
|
32
|
+
<script>
|
33
|
+
castledanalytics = window.castledanalytics = [];
|
34
|
+
|
35
|
+
var methods = [
|
36
|
+
'load',
|
37
|
+
'page',
|
38
|
+
'track',
|
39
|
+
'identify',
|
40
|
+
'alias',
|
41
|
+
'group',
|
42
|
+
'ready',
|
43
|
+
'reset',
|
44
|
+
'getAnonymousId',
|
45
|
+
'setAnonymousId',
|
46
|
+
];
|
47
|
+
|
48
|
+
for (var i = 0; i < methods.length; i++) {
|
49
|
+
var method = methods[i];
|
50
|
+
castledanalytics[method] = (function (methodName) {
|
51
|
+
return function () {
|
52
|
+
castledanalytics.push([methodName].concat(Array.prototype.slice.call(arguments)));
|
53
|
+
};
|
54
|
+
})(method);
|
55
|
+
}
|
56
|
+
castledanalytics.load(YOUR_WRITE_KEY, DATA_PLANE_URL, {
|
57
|
+
configUrl: <CONTROL_PLANE_URL>,
|
58
|
+
});
|
59
|
+
//For example,
|
60
|
+
//castledanalytics.load("1Qb1F3jSWv0eKFBPZcrM7ypgjVo", "http://localhost:8080", {
|
61
|
+
// configUrl: "http://localhost:8080,
|
62
|
+
//});
|
63
|
+
castledanalytics.page();
|
64
|
+
</script>
|
65
|
+
|
66
|
+
<script src="https://cdn.castled.io/js/latest/events.min.js"></script>
|
67
|
+
```
|
68
|
+
|
69
|
+
In all the above versions, there is an explicit `page` call at the end. This is added to ensure that whenever the SDK loads in a page, a `page` call is sent. You can remove this call completely or modify it with the extra page properties to suit your requirement. You can also add `page` calls in your application in places not tied directly to page load, e.g., virtual page views, page renders on route change such as in SPAs, etc.
|
70
|
+
|
71
|
+
### Write key and data plane URL
|
72
|
+
|
73
|
+
To integrate and initialize the JavaScript SDK, you will need the source write key and the data plane URL.
|
74
|
+
|
75
|
+
### Alternative installation using NPM
|
76
|
+
|
77
|
+
Although we recommend using the snippets mentioned above to use the JavaScript SDK with your website, you can also use this [**NPM module**](https://www.npmjs.com/package/castled-js-sdk) to package the library directly into your project.
|
78
|
+
|
79
|
+
To install the SDK via npm, run the following command:
|
80
|
+
|
5
81
|
```bash
|
6
|
-
npm install
|
82
|
+
npm install castled-js-sdk --save
|
7
83
|
```
|
8
84
|
|
9
|
-
**Note that this NPM module is only meant to be used for a browser installation**. If you want to integrate with your Node.js application, refer to the [**Node.js
|
85
|
+
**Note that this NPM module is only meant to be used for a browser installation**. If you want to integrate with your Node.js application, refer to the [**Node.js SDK**](https://github.com/ht-sdks/events-sdk-node).
|
10
86
|
<br><br>
|
11
87
|
|
12
|
-
**IMPORTANT**:
|
88
|
+
**IMPORTANT**: Since the module exports the [**related APIs**](#exported-apis) on an already-defined object combined with the Node.js module caching, you should run the following code snippet only once and use the exported object throughout your project:
|
13
89
|
|
14
90
|
```javascript
|
15
|
-
import * as
|
16
|
-
|
91
|
+
import * as castledanalytics from "events-sdk-js";
|
92
|
+
castledanalytics.ready(() => {
|
17
93
|
console.log("we are all set!!!");
|
18
94
|
});
|
19
|
-
|
20
|
-
export {
|
95
|
+
castledanalytics.load(<WRITE_KEY>, <DATA_PLANE_URL>);
|
96
|
+
export { castledanalytics };
|
21
97
|
```
|
22
98
|
|
23
99
|
You can also do this with **ES5** using the `require` method, as shown:
|
24
100
|
|
25
101
|
```javascript
|
26
|
-
var
|
27
|
-
|
28
|
-
exports.
|
102
|
+
var castledanalytics = require("events-sdk-js");
|
103
|
+
castledanalytics.load(<WRITE_KEY>, <DATA_PLANE_URL>);
|
104
|
+
exports.castledanalytics = castledanalytics;
|
29
105
|
```
|
30
106
|
|
31
107
|
### Exported APIs
|
@@ -64,7 +140,7 @@ The `identify` call lets you identify a visiting user and associate them to thei
|
|
64
140
|
A sample `identify()` call is shown below:
|
65
141
|
|
66
142
|
```javascript
|
67
|
-
|
143
|
+
castledanalytics.identify(
|
68
144
|
'12345',
|
69
145
|
{
|
70
146
|
email: 'name@domain.com',
|
@@ -84,7 +160,7 @@ analytics.identify(
|
|
84
160
|
);
|
85
161
|
```
|
86
162
|
|
87
|
-
In the above example, the user-related information like the `userId` and `email`
|
163
|
+
In the above example, the user-related information like the `userId` and `email` is captured.
|
88
164
|
|
89
165
|
> There is no need to call `identify()` for anonymous visitors to your website. Such visitors are automatically assigned an `anonymousId`.
|
90
166
|
|
@@ -95,7 +171,7 @@ The `track` call lets you record the customer events, i.e. the actions that they
|
|
95
171
|
A sample `track` call is shown below:
|
96
172
|
|
97
173
|
```javascript
|
98
|
-
|
174
|
+
castledanalytics.track(
|
99
175
|
'test track event GA3',
|
100
176
|
{
|
101
177
|
revenue: 30,
|
@@ -112,14 +188,18 @@ In the above example, the `track` method tracks the user event ‘**test track e
|
|
112
188
|
|
113
189
|
> You can use the `track` method to track various success metrics for your website like user signups, item purchases, article bookmarks, and more.
|
114
190
|
|
115
|
-
|
191
|
+
### How to build the SDK
|
116
192
|
|
117
|
-
|
193
|
+
- Look for run scripts in the `package.json` file for getting the browser minified and non-minified builds. The builds are updated in the `dist` folder of the directory. Among the others, some of the important ones are:
|
118
194
|
|
119
|
-
|
195
|
+
- `npm run build:browser`: This outputs **events.min.js**.
|
196
|
+
- `npm run build:npm`: This outputs **events-sdk-js** folder that contains the npm package contents.
|
197
|
+
- `npm run build:integration:all`: This outputs **integrations** folder that contains the integrations.
|
120
198
|
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
199
|
+
> We use **rollup** to build our SDKs. The configuration for it is present in `rollup-configs` folder.
|
200
|
+
|
201
|
+
- For adding or removing integrations, modify the imports in `index.js` under the `src/integrations` folder.
|
202
|
+
|
203
|
+
### Usage in Chrome Extensions
|
204
|
+
|
205
|
+
The JS SDK can be used in Chrome Extensions with manifest v3, both as a content script or as a background script service worker.
|
@@ -0,0 +1,130 @@
|
|
1
|
+
const dummyWriteKey = 'dummyWriteKey';
|
2
|
+
|
3
|
+
const dummyDataplaneHost = 'https://dummy.dataplane.host.com';
|
4
|
+
const sdkName = 'Events SDK JavaScript';
|
5
|
+
const errorMessage = 'order number must be an integer';
|
6
|
+
const actualErrorMessage = '[Transformation]:: order number must be an integer';
|
7
|
+
|
8
|
+
const samplePageEvent = {
|
9
|
+
message: {
|
10
|
+
channel: 'web',
|
11
|
+
context: {
|
12
|
+
library: {
|
13
|
+
name: sdkName,
|
14
|
+
version: '2.5.2',
|
15
|
+
},
|
16
|
+
},
|
17
|
+
type: 'page',
|
18
|
+
messageId: 'a65e19c7-a937-4c7a-8349-8d1c7e9bbf9f',
|
19
|
+
originalTimestamp: '2022-07-23T15:18:36.998Z',
|
20
|
+
anonymousId: '1f7618d8-6ada-4d1c-b2c8-923fbfdd142d',
|
21
|
+
userId: '',
|
22
|
+
event: null,
|
23
|
+
properties: {
|
24
|
+
name: 'page view',
|
25
|
+
path: '/',
|
26
|
+
referrer: '$direct',
|
27
|
+
referring_domain: '',
|
28
|
+
search: '',
|
29
|
+
title: 'Document',
|
30
|
+
url: 'http://localhost:4000/',
|
31
|
+
tab_url: 'http://localhost:4000/',
|
32
|
+
initial_referrer: '$direct',
|
33
|
+
initial_referring_domain: '',
|
34
|
+
},
|
35
|
+
integrations: {
|
36
|
+
All: true,
|
37
|
+
},
|
38
|
+
user_properties: null,
|
39
|
+
name: 'page view',
|
40
|
+
},
|
41
|
+
};
|
42
|
+
|
43
|
+
const retryCount = 3;
|
44
|
+
const samplePayloadSuccess = {
|
45
|
+
transformedBatch: [
|
46
|
+
{
|
47
|
+
id: '2CO2YmLozA3SZe6JtmdmMKTrCOl',
|
48
|
+
payload: [
|
49
|
+
{
|
50
|
+
orderNo: 1659505271417,
|
51
|
+
status: '200',
|
52
|
+
event: {
|
53
|
+
message: {
|
54
|
+
anonymousId: '7105960b-0174-4d31-a7a1-561925dedde3',
|
55
|
+
channel: 'web',
|
56
|
+
context: {
|
57
|
+
library: {
|
58
|
+
name: sdkName,
|
59
|
+
version: '2.9.2',
|
60
|
+
},
|
61
|
+
},
|
62
|
+
integrations: {
|
63
|
+
All: true,
|
64
|
+
},
|
65
|
+
messageId: '1659505271412300-2d882451-7f50-4f23-b5ac-919fa8a1957d',
|
66
|
+
name: 'page view 123',
|
67
|
+
originalTimestamp: '2022-08-03T05:41:11.412Z',
|
68
|
+
properties: {},
|
69
|
+
type: 'page',
|
70
|
+
},
|
71
|
+
},
|
72
|
+
},
|
73
|
+
],
|
74
|
+
},
|
75
|
+
],
|
76
|
+
};
|
77
|
+
|
78
|
+
const samplePayloadPartialSuccess = {
|
79
|
+
transformedBatch: [
|
80
|
+
{
|
81
|
+
id: '2CO2YmLozA3SZe6JtmdmMKTrCOl',
|
82
|
+
payload: [
|
83
|
+
{
|
84
|
+
orderNo: 1659505271417,
|
85
|
+
status: '200',
|
86
|
+
event: {
|
87
|
+
message: {
|
88
|
+
anonymousId: '7105960b-0174-4d31-a7a1-561925dedde3',
|
89
|
+
channel: 'web',
|
90
|
+
context: {
|
91
|
+
library: {
|
92
|
+
name: sdkName,
|
93
|
+
version: '2.9.2',
|
94
|
+
},
|
95
|
+
},
|
96
|
+
integrations: {
|
97
|
+
All: true,
|
98
|
+
},
|
99
|
+
messageId: '1659505271412300-2d882451-7f50-4f23-b5ac-919fa8a1957d',
|
100
|
+
name: 'page view 123',
|
101
|
+
originalTimestamp: '2022-08-03T05:41:11.412Z',
|
102
|
+
properties: {},
|
103
|
+
type: 'page',
|
104
|
+
},
|
105
|
+
},
|
106
|
+
},
|
107
|
+
],
|
108
|
+
},
|
109
|
+
{
|
110
|
+
id: '2CO2YmLozA3SZe6JtmdmMKTrCKr',
|
111
|
+
payload: [
|
112
|
+
{
|
113
|
+
orderNo: 1659505271418,
|
114
|
+
status: '400',
|
115
|
+
},
|
116
|
+
],
|
117
|
+
},
|
118
|
+
],
|
119
|
+
};
|
120
|
+
|
121
|
+
export {
|
122
|
+
dummyWriteKey,
|
123
|
+
dummyDataplaneHost,
|
124
|
+
retryCount,
|
125
|
+
samplePageEvent,
|
126
|
+
samplePayloadSuccess,
|
127
|
+
samplePayloadPartialSuccess,
|
128
|
+
errorMessage,
|
129
|
+
actualErrorMessage,
|
130
|
+
};
|
@@ -0,0 +1,34 @@
|
|
1
|
+
import { rest } from 'msw';
|
2
|
+
import {
|
3
|
+
dummyDataplaneHost,
|
4
|
+
samplePayloadSuccess,
|
5
|
+
samplePayloadPartialSuccess,
|
6
|
+
errorMessage,
|
7
|
+
} from './fixtures';
|
8
|
+
|
9
|
+
const handlers = [
|
10
|
+
rest.post(`${dummyDataplaneHost}/success/transform`, (req, res, ctx) => {
|
11
|
+
return res(ctx.status(200), ctx.json(samplePayloadSuccess));
|
12
|
+
}),
|
13
|
+
rest.post(`${dummyDataplaneHost}/partialSuccess/transform`, (req, res, ctx) => {
|
14
|
+
return res(ctx.status(200), ctx.json(samplePayloadPartialSuccess));
|
15
|
+
}),
|
16
|
+
rest.post(`${dummyDataplaneHost}/invalidResponse/transform`, (req, res, ctx) => {
|
17
|
+
return res(
|
18
|
+
ctx.status(200),
|
19
|
+
ctx.text(samplePayloadSuccess),
|
20
|
+
ctx.set('Content-Type', 'application/json; charset=utf-8'),
|
21
|
+
);
|
22
|
+
}),
|
23
|
+
rest.post(`${dummyDataplaneHost}/badRequest/transform`, (req, res, ctx) => {
|
24
|
+
return res(ctx.status(400), ctx.text(errorMessage));
|
25
|
+
}),
|
26
|
+
rest.post(`${dummyDataplaneHost}/accessDenied/transform`, (req, res, ctx) => {
|
27
|
+
return res(ctx.status(404));
|
28
|
+
}),
|
29
|
+
rest.post(`${dummyDataplaneHost}/serverDown/transform`, (req, res, ctx) => {
|
30
|
+
return res(ctx.status(500));
|
31
|
+
}),
|
32
|
+
];
|
33
|
+
|
34
|
+
export { handlers };
|
@@ -0,0 +1,29 @@
|
|
1
|
+
import camelcase from '../src/utils/camelcase';
|
2
|
+
|
3
|
+
test('convert string with space to camelcase format', () => {
|
4
|
+
expect(camelcase('camel case')).toBe('camelCase');
|
5
|
+
});
|
6
|
+
|
7
|
+
test('convert string with underscore to camelcase format', () => {
|
8
|
+
expect(camelcase('camel_case')).toBe('camelCase');
|
9
|
+
});
|
10
|
+
|
11
|
+
test('convert string with first letter capital to camelcase format', () => {
|
12
|
+
expect(camelcase('Camelcase')).toBe('camelcase');
|
13
|
+
});
|
14
|
+
|
15
|
+
test('convert uppercase string to camelcase format', () => {
|
16
|
+
expect(camelcase('CAMELCASE')).toBe('camelcase');
|
17
|
+
});
|
18
|
+
|
19
|
+
test('convert string with first letter capital for each word to camelcase format', () => {
|
20
|
+
expect(camelcase('Camel Case')).toBe('camelCase');
|
21
|
+
});
|
22
|
+
|
23
|
+
test('convert non-string values', () => {
|
24
|
+
expect(camelcase(123)).toBe('123');
|
25
|
+
});
|
26
|
+
|
27
|
+
test('convert invalid values', () => {
|
28
|
+
expect(camelcase()).toBe('');
|
29
|
+
});
|
@@ -0,0 +1,238 @@
|
|
1
|
+
import { resolveDataPlaneUrl } from '../src/utils/utils';
|
2
|
+
|
3
|
+
const usDataplaneUrl = 'https://sample.rudderlabs.com/us';
|
4
|
+
const euDataplaneUrl = 'https://sample.rudderlabs.com/eu';
|
5
|
+
const serverUrl = 'https://sample.rudderlabs.com';
|
6
|
+
|
7
|
+
const sourceConfigWithBothDataPlane = {
|
8
|
+
source: {
|
9
|
+
dataplanes: {
|
10
|
+
US: [
|
11
|
+
{
|
12
|
+
url: usDataplaneUrl,
|
13
|
+
default: true,
|
14
|
+
},
|
15
|
+
],
|
16
|
+
EU: [
|
17
|
+
{
|
18
|
+
url: euDataplaneUrl,
|
19
|
+
default: true,
|
20
|
+
},
|
21
|
+
],
|
22
|
+
},
|
23
|
+
},
|
24
|
+
};
|
25
|
+
|
26
|
+
const sourceConfigWithUSDataPlane = {
|
27
|
+
source: {
|
28
|
+
dataplanes: {
|
29
|
+
US: [
|
30
|
+
{
|
31
|
+
url: usDataplaneUrl,
|
32
|
+
default: true,
|
33
|
+
},
|
34
|
+
],
|
35
|
+
},
|
36
|
+
},
|
37
|
+
};
|
38
|
+
|
39
|
+
const sourceConfigWithEUDataPlane = {
|
40
|
+
source: {
|
41
|
+
dataplanes: {
|
42
|
+
EU: [
|
43
|
+
{
|
44
|
+
url: euDataplaneUrl,
|
45
|
+
default: true,
|
46
|
+
},
|
47
|
+
],
|
48
|
+
},
|
49
|
+
},
|
50
|
+
};
|
51
|
+
const sourceConfigWithEmptyDataPlanes = { source: {} };
|
52
|
+
|
53
|
+
const invalidResidencyServer1 = { residencyServer: 1234 };
|
54
|
+
const invalidResidencyServer2 = { residencyServer: 'test' };
|
55
|
+
const validResidencyServerUS = { residencyServer: 'US' };
|
56
|
+
const validResidencyServerEU = { residencyServer: 'EU' };
|
57
|
+
|
58
|
+
const testCaseData = [
|
59
|
+
// {
|
60
|
+
// description:
|
61
|
+
// 'When dataplane is not provided in source config or in load API, default dataplane Url will be selected',
|
62
|
+
// input: {
|
63
|
+
// response: sourceConfigWithEmptyDataPlanes,
|
64
|
+
// },
|
65
|
+
// output: DEFAULT_DATAPLANE_URL,
|
66
|
+
// },
|
67
|
+
{
|
68
|
+
description:
|
69
|
+
'When dataplane is not provided in source config but provided in load API, dataplane Url from load option will be selected',
|
70
|
+
input: {
|
71
|
+
response: sourceConfigWithEmptyDataPlanes,
|
72
|
+
serverUrl: serverUrl,
|
73
|
+
},
|
74
|
+
output: serverUrl,
|
75
|
+
},
|
76
|
+
{
|
77
|
+
description: 'When dataplane is provided in source config that dataplane Url will be selected',
|
78
|
+
input: {
|
79
|
+
response: sourceConfigWithBothDataPlane,
|
80
|
+
serverUrl: serverUrl,
|
81
|
+
},
|
82
|
+
output: usDataplaneUrl,
|
83
|
+
},
|
84
|
+
// {
|
85
|
+
// description:
|
86
|
+
// 'In case of invalid residencyServer option: dataplane is not provided in source config or in load API, default dataplane Url will be selected',
|
87
|
+
// input: {
|
88
|
+
// response: sourceConfigWithEmptyDataPlanes,
|
89
|
+
// options: invalidResidencyServer1,
|
90
|
+
// },
|
91
|
+
// output: DEFAULT_DATAPLANE_URL,
|
92
|
+
// },
|
93
|
+
{
|
94
|
+
description:
|
95
|
+
'In case of invalid residencyServer option: dataplane is not provided in source config but provided in load API, dataplane Url from load option will be selected',
|
96
|
+
input: {
|
97
|
+
response: sourceConfigWithEmptyDataPlanes,
|
98
|
+
serverUrl: serverUrl,
|
99
|
+
options: invalidResidencyServer2,
|
100
|
+
},
|
101
|
+
output: serverUrl,
|
102
|
+
},
|
103
|
+
{
|
104
|
+
description:
|
105
|
+
'In case of invalid residencyServer option: dataplane is provided in source config that dataplane Url will be selected',
|
106
|
+
input: {
|
107
|
+
response: sourceConfigWithBothDataPlane,
|
108
|
+
serverUrl: serverUrl,
|
109
|
+
options: invalidResidencyServer1,
|
110
|
+
},
|
111
|
+
output: usDataplaneUrl,
|
112
|
+
},
|
113
|
+
// {
|
114
|
+
// description:
|
115
|
+
// 'In case of valid residencyServer(US) option: dataplane is not provided in source config or in load API, default dataplane Url will be selected',
|
116
|
+
// input: {
|
117
|
+
// response: sourceConfigWithEmptyDataPlanes,
|
118
|
+
// options: validResidencyServerUS,
|
119
|
+
// },
|
120
|
+
// output: DEFAULT_DATAPLANE_URL,
|
121
|
+
// },
|
122
|
+
{
|
123
|
+
description:
|
124
|
+
'In case of valid residencyServer(US) option: dataplane is not provided in source config but provided in load API, dataplane Url from load option will be selected',
|
125
|
+
input: {
|
126
|
+
response: sourceConfigWithEmptyDataPlanes,
|
127
|
+
serverUrl: serverUrl,
|
128
|
+
options: validResidencyServerUS,
|
129
|
+
},
|
130
|
+
output: serverUrl,
|
131
|
+
},
|
132
|
+
{
|
133
|
+
description:
|
134
|
+
'In case of valid residencyServer(US) option: dataplane is provided in source config that dataplane Url will be selected',
|
135
|
+
input: {
|
136
|
+
response: sourceConfigWithBothDataPlane,
|
137
|
+
serverUrl: serverUrl,
|
138
|
+
options: validResidencyServerUS,
|
139
|
+
},
|
140
|
+
output: usDataplaneUrl,
|
141
|
+
},
|
142
|
+
{
|
143
|
+
description:
|
144
|
+
'In case of valid residencyServer(US) option: dataplane is provided but US region not available in source config then load API dataplane Url will be selected',
|
145
|
+
input: {
|
146
|
+
response: sourceConfigWithEUDataPlane,
|
147
|
+
serverUrl: serverUrl,
|
148
|
+
options: validResidencyServerUS,
|
149
|
+
},
|
150
|
+
output: serverUrl,
|
151
|
+
},
|
152
|
+
// {
|
153
|
+
// description:
|
154
|
+
// 'In case of valid residencyServer(EU) option: dataplane is not provided in source config or in load API, default dataplane Url will be selected',
|
155
|
+
// input: {
|
156
|
+
// response: sourceConfigWithEmptyDataPlanes,
|
157
|
+
// options: validResidencyServerEU,
|
158
|
+
// },
|
159
|
+
// output: DEFAULT_DATAPLANE_URL,
|
160
|
+
// },
|
161
|
+
{
|
162
|
+
description:
|
163
|
+
'In case of valid residencyServer(EU) option: dataplane is not provided in source config but provided in load API, dataplane Url from load option will be selected',
|
164
|
+
input: {
|
165
|
+
response: sourceConfigWithEmptyDataPlanes,
|
166
|
+
serverUrl: serverUrl,
|
167
|
+
options: validResidencyServerEU,
|
168
|
+
},
|
169
|
+
output: serverUrl,
|
170
|
+
},
|
171
|
+
{
|
172
|
+
description:
|
173
|
+
'In case of valid residencyServer(EU) option: dataplane is provided in source config that dataplane Url will be selected',
|
174
|
+
input: {
|
175
|
+
response: sourceConfigWithBothDataPlane,
|
176
|
+
serverUrl: serverUrl,
|
177
|
+
options: validResidencyServerEU,
|
178
|
+
},
|
179
|
+
output: euDataplaneUrl,
|
180
|
+
},
|
181
|
+
{
|
182
|
+
description:
|
183
|
+
'In case of valid residencyServer(EU) option: dataplane is provided only for US region not available in source config then US region dataplane Url will be selected',
|
184
|
+
input: {
|
185
|
+
response: sourceConfigWithUSDataPlane,
|
186
|
+
serverUrl: serverUrl,
|
187
|
+
options: validResidencyServerEU,
|
188
|
+
},
|
189
|
+
output: usDataplaneUrl,
|
190
|
+
},
|
191
|
+
];
|
192
|
+
|
193
|
+
const testCaseDataWithInvalidDataplaneUrl = [
|
194
|
+
{
|
195
|
+
description:
|
196
|
+
'When dataplane is not provided in source config or in load API, default dataplane Url will be selected',
|
197
|
+
input: {
|
198
|
+
response: sourceConfigWithEmptyDataPlanes,
|
199
|
+
serverUrl: null
|
200
|
+
},
|
201
|
+
},
|
202
|
+
{
|
203
|
+
description:
|
204
|
+
'In case of invalid residencyServer option: dataplane is not provided in source config or in load API, default dataplane Url will be selected',
|
205
|
+
input: {
|
206
|
+
response: sourceConfigWithEmptyDataPlanes,
|
207
|
+
options: invalidResidencyServer1,
|
208
|
+
},
|
209
|
+
},
|
210
|
+
{
|
211
|
+
description:
|
212
|
+
'In case of valid residencyServer(US) option: dataplane is not provided in source config or in load API, default dataplane Url will be selected',
|
213
|
+
input: {
|
214
|
+
response: sourceConfigWithEmptyDataPlanes,
|
215
|
+
options: validResidencyServerUS,
|
216
|
+
},
|
217
|
+
},
|
218
|
+
{
|
219
|
+
description:
|
220
|
+
'In case of valid residencyServer(EU) option: dataplane is not provided in source config or in load API, default dataplane Url will be selected',
|
221
|
+
input: {
|
222
|
+
response: sourceConfigWithEmptyDataPlanes,
|
223
|
+
options: validResidencyServerEU,
|
224
|
+
},
|
225
|
+
},
|
226
|
+
]
|
227
|
+
|
228
|
+
test.each(testCaseData)('$description', ({ input, output }) => {
|
229
|
+
const url = resolveDataPlaneUrl(input.response, input.serverUrl, input.options);
|
230
|
+
expect(url).toEqual(output);
|
231
|
+
});
|
232
|
+
|
233
|
+
test.each(testCaseDataWithInvalidDataplaneUrl)('$description', ({ input }) => {
|
234
|
+
const url = () => resolveDataPlaneUrl(input.response, input.serverUrl, input.options);
|
235
|
+
expect(url).toThrow(
|
236
|
+
'Unable to load the SDK due to invalid data plane url'
|
237
|
+
);
|
238
|
+
});
|