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
@@ -0,0 +1,34 @@
|
|
1
|
+
{
|
2
|
+
"presets": [
|
3
|
+
[
|
4
|
+
"@babel/env",
|
5
|
+
{
|
6
|
+
"corejs": "3.6",
|
7
|
+
"useBuiltIns": "entry"
|
8
|
+
}
|
9
|
+
]
|
10
|
+
],
|
11
|
+
"plugins": [
|
12
|
+
[
|
13
|
+
"@babel/plugin-proposal-class-properties",
|
14
|
+
{
|
15
|
+
"loose": true
|
16
|
+
}
|
17
|
+
],
|
18
|
+
[
|
19
|
+
"@babel/plugin-proposal-private-property-in-object",
|
20
|
+
{
|
21
|
+
"loose": true
|
22
|
+
}
|
23
|
+
],
|
24
|
+
[
|
25
|
+
"@babel/plugin-proposal-private-methods",
|
26
|
+
{
|
27
|
+
"loose": true
|
28
|
+
}
|
29
|
+
],
|
30
|
+
["@babel/plugin-transform-arrow-functions"],
|
31
|
+
["@babel/plugin-transform-object-assign"],
|
32
|
+
["babel-plugin-transform-object-hasown"]
|
33
|
+
]
|
34
|
+
}
|
@@ -0,0 +1,133 @@
|
|
1
|
+
<html>
|
2
|
+
<head>
|
3
|
+
<script>
|
4
|
+
hightouchevents = window.hightouchevents = [];
|
5
|
+
var methods = [
|
6
|
+
'load',
|
7
|
+
'page',
|
8
|
+
'track',
|
9
|
+
'identify',
|
10
|
+
'alias',
|
11
|
+
'group',
|
12
|
+
'ready',
|
13
|
+
'reset',
|
14
|
+
'getAnonymousId',
|
15
|
+
'setAnonymousId',
|
16
|
+
];
|
17
|
+
|
18
|
+
for (var i = 0; i < methods.length; i++) {
|
19
|
+
var method = methods[i];
|
20
|
+
hightouchevents[method] = (function (methodName) {
|
21
|
+
return function () {
|
22
|
+
hightouchevents.push([methodName].concat(Array.prototype.slice.call(arguments)));
|
23
|
+
};
|
24
|
+
})(method);
|
25
|
+
}
|
26
|
+
|
27
|
+
hightouchevents.load('829c38e2e359d94372a2e0d35e1f74df', 'https://api.castled.io', {
|
28
|
+
integrations: { All: true, "Chartbeat": false, "Customer.io": false},
|
29
|
+
getSourceConfig: () => '{"source":{"config":{"statsCollection":{"errors":{"enabled":false},"metrics":{"enabled":true}}},"enabled":true,"workspaceId":"1prwY0wNhOkpG1Y4k5JVS2ezItx","sourceDefinitionId":"1TW48i2bIzEl1HPf825cEznfIM8","destinations":[],"updatedAt":"2024-01-24T16:23:09.864Z","createdAt":"2021-04-04T01:39:08.534Z","liveEventsConfig":{"eventUpload":false,"eventUploadTS":1706113389863},"sourceDefinition":{"options":null,"config":null,"configSchema":null,"uiConfig":null,"id":"1TW48i2bIzEl1HPf825cEznfIM8","name":"Javascript","displayName":"Javascript","category":null,"type":"web","createdAt":"2019-11-12T12:39:19.885Z","updatedAt":"2023-05-16T11:52:25.474Z"},"createdBy":"1prwY4bfqbgVs1j9nwk1tr8wJYi","secretVersion":null,"connections":[],"deleted":false,"transient":false},"updatedAt":"2024-02-04T23:05:03.042Z","consentManagementMetadata":{"providers":[{"provider":"oneTrust","resolutionStrategy":"and"},{"provider":"ketch","resolutionStrategy":"or"}]}}' ,
|
30
|
+
logLevel: 'DEBUG'
|
31
|
+
});
|
32
|
+
|
33
|
+
console.log("init complete..")
|
34
|
+
|
35
|
+
setTimeout(function () {
|
36
|
+
hightouchevents.identify(
|
37
|
+
'customUserID',
|
38
|
+
{
|
39
|
+
name: 'John Doe',
|
40
|
+
title: 'CEO',
|
41
|
+
email: 'name.surname@domain.com',
|
42
|
+
company: 'Company123',
|
43
|
+
phone: '123-456-7890',
|
44
|
+
rating: 'Hot',
|
45
|
+
city: 'Austin',
|
46
|
+
postalCode: '12345',
|
47
|
+
country: 'US',
|
48
|
+
street: 'Sample Address',
|
49
|
+
state: 'TX',
|
50
|
+
},
|
51
|
+
() => {
|
52
|
+
console.log('in identify call');
|
53
|
+
},
|
54
|
+
);
|
55
|
+
console.log('after identify call');
|
56
|
+
|
57
|
+
hightouchevents.page(
|
58
|
+
'Home',
|
59
|
+
'Cart Viewed',
|
60
|
+
{
|
61
|
+
path: '',
|
62
|
+
referrer: '',
|
63
|
+
search: '',
|
64
|
+
title: '',
|
65
|
+
url: '',
|
66
|
+
},
|
67
|
+
() => {
|
68
|
+
console.log('in page call');
|
69
|
+
},
|
70
|
+
);
|
71
|
+
|
72
|
+
hightouchevents.track(
|
73
|
+
'test track event 1',
|
74
|
+
{
|
75
|
+
revenue: 30,
|
76
|
+
currency: 'USD',
|
77
|
+
user_actual_id: 12345,
|
78
|
+
},
|
79
|
+
() => {
|
80
|
+
console.log('in track call 1');
|
81
|
+
},
|
82
|
+
);
|
83
|
+
|
84
|
+
hightouchevents.track(
|
85
|
+
'test track event 2',
|
86
|
+
{
|
87
|
+
revenue: 45,
|
88
|
+
currency: 'INR',
|
89
|
+
user_actual_id: 333,
|
90
|
+
},
|
91
|
+
() => {
|
92
|
+
console.log('in track call 2');
|
93
|
+
},
|
94
|
+
);
|
95
|
+
|
96
|
+
hightouchevents.track(
|
97
|
+
'test track event 3',
|
98
|
+
{
|
99
|
+
revenue: 10003,
|
100
|
+
currency: 'EUR',
|
101
|
+
user_actual_id: 5678,
|
102
|
+
},
|
103
|
+
() => {
|
104
|
+
console.log('in track call 3');
|
105
|
+
},
|
106
|
+
);
|
107
|
+
|
108
|
+
// TODO: Call other APIs here
|
109
|
+
}, 5000);
|
110
|
+
</script>
|
111
|
+
<script src="../dist/legacy/events.min.js"></script>
|
112
|
+
|
113
|
+
<!-- ============ V3 ============ -->
|
114
|
+
<!-- ============ CDN ============ -->
|
115
|
+
<!-- Prod -->
|
116
|
+
<!-- MINIFIED -->
|
117
|
+
<!-- <script src="https://cdn.hightouch-events.com/js/latest/events.min.js"></script> -->
|
118
|
+
|
119
|
+
<!-- UNMINIFIED -->
|
120
|
+
<!-- <script src="https://cdn.hightouch-events.com/js/latest/events.js"></script> -->
|
121
|
+
|
122
|
+
<!-- ============ LOCAl ================= -->
|
123
|
+
<!-- Local MINIFIED -->
|
124
|
+
<!-- <script src="../dist/legacy/events.min.js"></script> -->
|
125
|
+
|
126
|
+
<!-- Local UNMINIFIED -->
|
127
|
+
<!-- <script src="./events.js"></script> -->
|
128
|
+
<!-- ============ LOCAl ================= -->
|
129
|
+
</head>
|
130
|
+
<body>
|
131
|
+
<h1>Page Loaded</h1>
|
132
|
+
</body>
|
133
|
+
</html>
|
@@ -0,0 +1,131 @@
|
|
1
|
+
# Chrome Extension Usage
|
2
|
+
|
3
|
+
The JS SDK can be used in Chrome Extensions with manifest v3, both as a content script or as a background script
|
4
|
+
service worker.
|
5
|
+
|
6
|
+
## Table of contents
|
7
|
+
|
8
|
+
- [**Examples**](#examples)
|
9
|
+
- [**Background Script**](#background-script)
|
10
|
+
- [**Content Script**](#content-script)
|
11
|
+
|
12
|
+
## Examples
|
13
|
+
|
14
|
+
The provided examples are based on [Chrome Extension v3 Starter](https://github.com/SimGus/chrome-extension-v3-starter)
|
15
|
+
that contains a minimal Chrome/Chromium extension using the newest version of the manifest (v3).
|
16
|
+
|
17
|
+
## Background Script
|
18
|
+
|
19
|
+
The npm package has a service worker export that can be used as a background script. You will need to
|
20
|
+
place it in your Chrome extension resources, either by copying the file from node modules--having it as part of your
|
21
|
+
resources--or by using a JS bundler.
|
22
|
+
|
23
|
+
Relevant permissions need to be enabled in the manifest file as per the desired capabilities and connections allowed.
|
24
|
+
Additionally setting the background script type as module will allow you to import is as ESM.
|
25
|
+
|
26
|
+
"permissions": ["storage", "tabs"],
|
27
|
+
"host_permissions": [
|
28
|
+
"https://*.*.hightouch.com/*",
|
29
|
+
"https://*.hightouch.com/*",
|
30
|
+
"*://*/*"
|
31
|
+
],
|
32
|
+
"externally_connectable": {
|
33
|
+
"matches": [
|
34
|
+
"https://*.*.hightouch.com/*",
|
35
|
+
"https://*.hightouch.com/*"
|
36
|
+
]
|
37
|
+
},
|
38
|
+
"background": {
|
39
|
+
"service_worker": "service-worker.js",
|
40
|
+
"type": "module"
|
41
|
+
},
|
42
|
+
|
43
|
+
After that you should be able to follow the NodeJS SDK documentation for further usage.
|
44
|
+
|
45
|
+
You can react to events that are available in background scripts via the [Chrome API](https://developer.chrome.com/docs/extensions/reference/).
|
46
|
+
|
47
|
+
Here is an example to track url changes.
|
48
|
+
|
49
|
+
Sample background script imports:
|
50
|
+
|
51
|
+
# In case file is copied from node_modules/@ht-sdks/events-sdk-js/service-worker/index.es.js in extension resources folder
|
52
|
+
import { Analytics } from "./rudderAnalytics.js";
|
53
|
+
|
54
|
+
# In case the package is imported directly as umd and then bundled in the background script
|
55
|
+
import { Analytics } from "@ht-sdks/events-sdk-js/service-worker";
|
56
|
+
|
57
|
+
# In case the package is imported directly as es-module and then bundled in the background script
|
58
|
+
import { Analytics } from "@ht-sdks/events-sdk-js/service-worker/index.es";
|
59
|
+
|
60
|
+
Sample background script:
|
61
|
+
|
62
|
+
const hightouchClient = new Analytics("<writeKey>","<dataPlaneURL>/v1/batch", {configUrl: <controlPlaneUrl>});
|
63
|
+
|
64
|
+
chrome.tabs.onUpdated.addListener((tabId, tab) => {
|
65
|
+
if (tab.url) {
|
66
|
+
hightouchClient.track({
|
67
|
+
userId: "123456",
|
68
|
+
event: "Event Name",
|
69
|
+
properties: {
|
70
|
+
data: { url: tab.url },
|
71
|
+
}
|
72
|
+
});
|
73
|
+
}
|
74
|
+
});
|
75
|
+
|
76
|
+
## Content Script
|
77
|
+
|
78
|
+
The SDK can also be used as a content script. Place it in your Chrome extension resources, either by downloading the file or by using a JS bundler and bundling it as part of your content script.
|
79
|
+
|
80
|
+
Relevant permissions need to be enabled in the manifest file as per the desired capabilities and connections allowed
|
81
|
+
|
82
|
+
"permissions": ["storage", "tabs"],
|
83
|
+
"host_permissions": [
|
84
|
+
"https://*.*.hightouch.com/*",
|
85
|
+
"https://*.hightouch.com/*",
|
86
|
+
"*://*/*"
|
87
|
+
],
|
88
|
+
"externally_connectable": {
|
89
|
+
"matches": [
|
90
|
+
"https://*.*.hightouch.com/*",
|
91
|
+
"https://*.hightouch.com/*"
|
92
|
+
]
|
93
|
+
}
|
94
|
+
|
95
|
+
After that you should be able to follow the JS SDK documentation for further usage.
|
96
|
+
|
97
|
+
You can react to events that are available in both content and background scripts too via the [Chrome API](https://developer.chrome.com/docs/extensions/reference/).
|
98
|
+
|
99
|
+
Here is an example to track url changes.
|
100
|
+
|
101
|
+
Sample content script:
|
102
|
+
|
103
|
+
# prepend the JS SDK file here
|
104
|
+
analytics.load("<writeKey>", "<dataPlaneURL>", {configUrl: <controlPlaneUrl>});
|
105
|
+
|
106
|
+
chrome.runtime.onMessage.addListener((obj, sender, response) => {
|
107
|
+
const { type, value } = obj;
|
108
|
+
|
109
|
+
if (type === "trackURL") {
|
110
|
+
analytics.track("URL change", { url: value });
|
111
|
+
}
|
112
|
+
});
|
113
|
+
|
114
|
+
Sample background script:
|
115
|
+
|
116
|
+
chrome.tabs.onUpdated.addListener((tabId, tab) => {
|
117
|
+
if (tab.url) {
|
118
|
+
chrome.tabs.sendMessage(tabId, {
|
119
|
+
type: "trackURL",
|
120
|
+
value: {
|
121
|
+
url: tab.url
|
122
|
+
},
|
123
|
+
});
|
124
|
+
}
|
125
|
+
});
|
126
|
+
|
127
|
+
## External resources
|
128
|
+
|
129
|
+
- [Official feature summary for manifest v3](https://developer.chrome.com/docs/extensions/mv3/intro/mv3-overview/)
|
130
|
+
- [Migrating from v2 to v3](https://developer.chrome.com/docs/extensions/mv3/intro/mv3-migration/) + [very useful checklist once you think you are done](https://developer.chrome.com/docs/extensions/mv3/mv3-migration-checklist/)
|
131
|
+
- [Excellent write-ups of a migration](https://github.com/kentbrew/learning-manifest-v3)
|
@@ -0,0 +1,21 @@
|
|
1
|
+
MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2021 RudderStack
|
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.
|
@@ -0,0 +1,101 @@
|
|
1
|
+
<div align="center">
|
2
|
+
<img src="https://raw.githubusercontent.com/SimGus/chrome-addon-v3-starter/master/logo/logo-128.png"/>
|
3
|
+
<h1>Chrome Extension v3 Starter</h1>
|
4
|
+
<h3>A minimal template of a Chrome v3 addon</h3>
|
5
|
+
</div>
|
6
|
+
|
7
|
+
This repository contains a minimal Chrome/Chromium extension that uses the newest version of the manifest (v3).
|
8
|
+
|
9
|
+
You can use it as a basis to develop an extension.
|
10
|
+
It can also give you more insights about how to turn a v2 extension to v3.
|
11
|
+
|
12
|
+
In other words, this is a **working, installable v3 extension** example meant for you to **jumpstart** the development of your own extension.
|
13
|
+
|
14
|
+
|
15
|
+
## Installation
|
16
|
+
- **Fork** this repo, then **clone your forked repo locally**. If you don't have a github account, you can simply download a zip of the repo and unzip it on your computer.
|
17
|
+
- **Open [the extensions page](chrome://extensions)** in your browser: `chrome://extensions`. This link works on any chromium-based browser.
|
18
|
+
- If you did not do it already, **toggle the "developer mode"**. This is usually a toggle button at the top right of the extensions page.
|
19
|
+
- Click the button **_load unpacked extension_**.
|
20
|
+
- In the window that pops up, **select the folder that contains this minimal extension**, then **click _ok_**.
|
21
|
+
- **Done!** A new extension called _Chrome Addon v3 Starter_ should have appeared in the list.
|
22
|
+
|
23
|
+
## Q&A
|
24
|
+
> Does this work only on Chrome or on **other web browsers** as well?
|
25
|
+
|
26
|
+
At the moment, this works on every chromium-based web browser that supports v3 extensions.
|
27
|
+
Therefore, you should be able to install this extension on any of the following browsers (as long as they are up-to-date):
|
28
|
+
- _Free and open-source browsers_:
|
29
|
+
- Chromium
|
30
|
+
- Brave
|
31
|
+
- _Proprietary browsers_:
|
32
|
+
- Chrome
|
33
|
+
- Edge
|
34
|
+
- Vivaldi
|
35
|
+
- Opera
|
36
|
+
|
37
|
+
> So it doesn't work on **Firefox** or **Safari**?
|
38
|
+
|
39
|
+
No, Firefox uses a different extension format. That being said, it is usually not too hard to port extensions from Chrome to Firefox.
|
40
|
+
Read [their porting documentation](https://extensionworkshop.com/documentation/develop/porting-a-google-chrome-extension/) for more information.
|
41
|
+
|
42
|
+
Safari uses yet another extension format and porting is usually harder.
|
43
|
+
You can find more information [here](https://bartsolutions.github.io/2020/11/20/safari-extension/).
|
44
|
+
|
45
|
+
> Does this work on **Chrome for Android/iOS**?
|
46
|
+
|
47
|
+
Chrome for mobile doesn't currently support extensions.
|
48
|
+
|
49
|
+
> I don't need a **popup tool** for my extension! Can I remove it?
|
50
|
+
|
51
|
+
Yes, simply delete the `popup` folder and remove the `default_popup` property from the manifest.
|
52
|
+
|
53
|
+
> I changed some code in the extension, but my **changes aren't taken into account**!
|
54
|
+
|
55
|
+
For most of the changes you make, you will need to reload your extension for the changes to be applied.
|
56
|
+
To do that, go to the chrome://extensions page and click the reload button of your extension.
|
57
|
+
Note that most of the changes you will make to the settings page or the popup don't require reloading the extension.
|
58
|
+
|
59
|
+
> Can I follow a **tutorial about a v2 extension** with this?
|
60
|
+
|
61
|
+
Most of what you will find in those tutorials still holds with v3.
|
62
|
+
|
63
|
+
However, a few things (notably best practices) have changed.
|
64
|
+
You should read the [official migration page (v2 to v3)](https://developer.chrome.com/docs/extensions/mv3/intro/mv3-migration/) before following such a tutorial.
|
65
|
+
|
66
|
+
> When I make an erroneous change in my service worker, the extension doesn't load! How can I **debug a service worker**?
|
67
|
+
|
68
|
+
Using the debugger if your service worker is not loaded is not possible.
|
69
|
+
|
70
|
+
However, if you want to test some piece of code before putting it in your service worker, you can:
|
71
|
+
- load your extension with a working version of the service worker.
|
72
|
+
- click on "service worker" on the page _chrome://extensions_. This will open the console attached to the service worker.
|
73
|
+
- paste your code in the console and see if any error is logged.
|
74
|
+
|
75
|
+
Note that in this console, you have access to anything your service worker has access to, including its variables, functions and chrome APIs.
|
76
|
+
|
77
|
+
> How do I **uninstall** this extension from my browser?
|
78
|
+
|
79
|
+
- Go to the [extensions page](chrome://extensions): chrome://extensions.
|
80
|
+
There should be a card with the name of this extension as title.
|
81
|
+
If you don't see such a card, it means the extension is not installed.
|
82
|
+
- Simply click the _Delete_ button at the bottom of the card. Click _ok_ if a popup asks you for confirmation. The extension is now uninstalled.
|
83
|
+
|
84
|
+
> I want to **push my changes to my own repo**, how do I do this?
|
85
|
+
|
86
|
+
- If you forked this repo and cloned your own fork locally, git will push to your fork on your account automatically (i.e. use the command `git push` or `git push origin <your-branch>`).
|
87
|
+
|
88
|
+
- If you downloaded a zip or simply cloned this repo locally, do the following:
|
89
|
+
- Create a github account if you don't already have one and install git on your machine.
|
90
|
+
- Create a new (empty) repo on your github and copy its url.
|
91
|
+
- Open a terminal in the folder where the extension is cloned.
|
92
|
+
- Run the command `git init`, then `git commit -am "Initial commit"`
|
93
|
+
- Run the command `git remote add origin <url-of-your-repo>`
|
94
|
+
- Run `git push -u origin master`. The extension code is now on your repo, on brnach _master_.
|
95
|
+
- If you want, you can make the _master_ branch the default one and delete the _main_ branch in the settings of your repo.
|
96
|
+
|
97
|
+
## External resources
|
98
|
+
- [Official feature summary for manifest v3](https://developer.chrome.com/docs/extensions/mv3/intro/mv3-overview/)
|
99
|
+
- [Migrating from v2 to v3](https://developer.chrome.com/docs/extensions/mv3/intro/mv3-migration/) + [very useful checklist once you think you are done](https://developer.chrome.com/docs/extensions/mv3/mv3-migration-checklist/)
|
100
|
+
- [Excellent write-ups of a migration](https://github.com/kentbrew/learning-manifest-v3)
|
101
|
+
- [Another example of a v3 extension (older code)](https://gist.github.com/dotproto/3a328d6b187621b445499ba503599dc0)
|
@@ -0,0 +1,7 @@
|
|
1
|
+
// This script gets injected into any opened page
|
2
|
+
// whose URL matches the pattern defined in the manifest
|
3
|
+
// (see "content_script" key).
|
4
|
+
// Several foreground scripts can be declared
|
5
|
+
// and injected into the same or different pages.
|
6
|
+
|
7
|
+
console.log("This prints to the console of the page (injected only if the page url matched)")
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,138 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
|
+
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
3
|
+
|
4
|
+
<svg
|
5
|
+
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
6
|
+
xmlns:cc="http://creativecommons.org/ns#"
|
7
|
+
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
8
|
+
xmlns:svg="http://www.w3.org/2000/svg"
|
9
|
+
xmlns="http://www.w3.org/2000/svg"
|
10
|
+
xmlns:xlink="http://www.w3.org/1999/xlink"
|
11
|
+
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
12
|
+
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
13
|
+
width="5.8741975mm"
|
14
|
+
height="5.8741975mm"
|
15
|
+
viewBox="0 0 5.8741975 5.8741975"
|
16
|
+
version="1.1"
|
17
|
+
id="svg8"
|
18
|
+
inkscape:version="0.92.3 (2405546, 2018-03-11)"
|
19
|
+
sodipodi:docname="logo.svg"
|
20
|
+
inkscape:export-filename="/home/simon/Lien vers Files/Programming/Browser-addons/chrome-addon-v3-starter/logo/logo-128.png"
|
21
|
+
inkscape:export-xdpi="553.47137"
|
22
|
+
inkscape:export-ydpi="553.47137">
|
23
|
+
<defs
|
24
|
+
id="defs2">
|
25
|
+
<linearGradient
|
26
|
+
id="linearGradient992"
|
27
|
+
inkscape:collect="always">
|
28
|
+
<stop
|
29
|
+
id="stop988"
|
30
|
+
offset="0"
|
31
|
+
style="stop-color:#6dd47e;stop-opacity:1" />
|
32
|
+
<stop
|
33
|
+
id="stop990"
|
34
|
+
offset="1"
|
35
|
+
style="stop-color:#ffd55a;stop-opacity:1" />
|
36
|
+
</linearGradient>
|
37
|
+
<linearGradient
|
38
|
+
inkscape:collect="always"
|
39
|
+
id="linearGradient982">
|
40
|
+
<stop
|
41
|
+
style="stop-color:#6dd47e;stop-opacity:1"
|
42
|
+
offset="0"
|
43
|
+
id="stop978" />
|
44
|
+
<stop
|
45
|
+
style="stop-color:#ffd55a;stop-opacity:1"
|
46
|
+
offset="1"
|
47
|
+
id="stop980" />
|
48
|
+
</linearGradient>
|
49
|
+
<linearGradient
|
50
|
+
inkscape:collect="always"
|
51
|
+
xlink:href="#linearGradient982"
|
52
|
+
id="linearGradient984"
|
53
|
+
x1="29.799274"
|
54
|
+
y1="65.80043"
|
55
|
+
x2="32.461639"
|
56
|
+
y2="61.674587"
|
57
|
+
gradientUnits="userSpaceOnUse" />
|
58
|
+
<linearGradient
|
59
|
+
inkscape:collect="always"
|
60
|
+
xlink:href="#linearGradient992"
|
61
|
+
id="linearGradient986"
|
62
|
+
x1="125.58246"
|
63
|
+
y1="241.31987"
|
64
|
+
x2="130.39503"
|
65
|
+
y2="233.86185"
|
66
|
+
gradientUnits="userSpaceOnUse" />
|
67
|
+
</defs>
|
68
|
+
<sodipodi:namedview
|
69
|
+
id="base"
|
70
|
+
pagecolor="#ffffff"
|
71
|
+
bordercolor="#666666"
|
72
|
+
borderopacity="1.0"
|
73
|
+
inkscape:pageopacity="0.0"
|
74
|
+
inkscape:pageshadow="2"
|
75
|
+
inkscape:zoom="32"
|
76
|
+
inkscape:cx="9.4060156"
|
77
|
+
inkscape:cy="10.261868"
|
78
|
+
inkscape:document-units="mm"
|
79
|
+
inkscape:current-layer="layer1"
|
80
|
+
showgrid="false"
|
81
|
+
fit-margin-top="0"
|
82
|
+
fit-margin-left="0"
|
83
|
+
fit-margin-right="0"
|
84
|
+
fit-margin-bottom="0"
|
85
|
+
inkscape:window-width="1920"
|
86
|
+
inkscape:window-height="1056"
|
87
|
+
inkscape:window-x="0"
|
88
|
+
inkscape:window-y="0"
|
89
|
+
inkscape:window-maximized="0" />
|
90
|
+
<metadata
|
91
|
+
id="metadata5">
|
92
|
+
<rdf:RDF>
|
93
|
+
<cc:Work
|
94
|
+
rdf:about="">
|
95
|
+
<dc:format>image/svg+xml</dc:format>
|
96
|
+
<dc:type
|
97
|
+
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
98
|
+
<dc:title></dc:title>
|
99
|
+
</cc:Work>
|
100
|
+
</rdf:RDF>
|
101
|
+
</metadata>
|
102
|
+
<g
|
103
|
+
inkscape:label="Calque 1"
|
104
|
+
inkscape:groupmode="layer"
|
105
|
+
id="layer1"
|
106
|
+
transform="translate(-27.740484,-61.108589)"
|
107
|
+
style="opacity:1">
|
108
|
+
<g
|
109
|
+
aria-label="v"
|
110
|
+
transform="matrix(0.39299767,0,0,0.35804726,-14.850221,-22.602919)"
|
111
|
+
style="font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;font-size:13.33347988px;line-height:1.25;font-family:'Fira Code';-inkscape-font-specification:'Fira Code, Medium';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
|
112
|
+
id="flowRoot815" />
|
113
|
+
<g
|
114
|
+
aria-label="3"
|
115
|
+
transform="matrix(0.55320903,0,0,0.55320903,-39.674075,-67.699903)"
|
116
|
+
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333397px;line-height:1.25;font-family:'Fira Code';-inkscape-font-specification:'Fira Code, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.28696206;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
|
117
|
+
id="flowRoot823">
|
118
|
+
<g
|
119
|
+
id="g859"
|
120
|
+
style="stroke:none;stroke-width:0.28696206;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;fill:#000000">
|
121
|
+
<g
|
122
|
+
id="g997">
|
123
|
+
<path
|
124
|
+
style="opacity:1;font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;font-size:13.33347988px;line-height:1.25;font-family:'Fira Code';-inkscape-font-specification:'Fira Code, Medium';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:url(#linearGradient984);fill-opacity:1;stroke:none;stroke-width:0.15875001;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
|
125
|
+
inkscape:connector-curvature="0"
|
126
|
+
id="path834"
|
127
|
+
d="m 29.571182,65.570738 h -0.704043 l -0.999637,-2.585312 h 0.644929 l 0.720168,2.129944 0.722853,-2.129944 h 0.615367 z"
|
128
|
+
transform="matrix(1.807635,0,0,1.807635,71.716248,122.37671)" />
|
129
|
+
<path
|
130
|
+
style="stroke:none;stroke-width:0.28696206;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;fill:url(#linearGradient986);fill-opacity:1"
|
131
|
+
d="m 129.05656,233.2864 q 0.86154,0 1.51795,0.32137 0.66325,0.31453 1.0188,0.8547 0.35556,0.53333 0.35556,1.17607 0,0.55384 -0.25299,1.02564 -0.24616,0.46496 -0.67009,0.77265 -0.41709,0.30085 -0.91624,0.39658 0.57436,0.0479 1.05983,0.32821 0.48547,0.2735 0.77949,0.77948 0.30085,0.50599 0.30085,1.19658 0,0.81368 -0.41709,1.47009 -0.41026,0.64957 -1.15556,1.02564 -0.73846,0.37607 -1.69572,0.37607 -0.83419,0 -1.60684,-0.31453 -0.77265,-0.31453 -1.28547,-0.94359 l 0.77265,-0.62906 q 0.38974,0.45812 0.94359,0.69744 0.55384,0.23931 1.14872,0.23931 0.64957,0 1.12136,-0.23248 0.4718,-0.23248 0.71795,-0.66324 0.25299,-0.43761 0.25299,-1.02565 0,-1.78461 -1.94871,-1.78461 h -0.79317 l 0.14359,-0.9094 h 0.55385 q 0.47179,0 0.88205,-0.17778 0.41026,-0.18462 0.65641,-0.55385 0.25299,-0.37607 0.25299,-0.9094 0,-0.50598 -0.23931,-0.86154 -0.23248,-0.36239 -0.6359,-0.54701 -0.40342,-0.19145 -0.90256,-0.19145 -0.59488,0 -1.053,0.21197 -0.45812,0.20513 -0.94359,0.65641 l -0.63589,-0.70428 q 1.14871,-1.08034 2.6735,-1.08034 z"
|
132
|
+
id="path831"
|
133
|
+
inkscape:connector-curvature="0" />
|
134
|
+
</g>
|
135
|
+
</g>
|
136
|
+
</g>
|
137
|
+
</g>
|
138
|
+
</svg>
|
@@ -0,0 +1,37 @@
|
|
1
|
+
{
|
2
|
+
// Comments are accepted in the manifest, even though it is JSON.
|
3
|
+
"manifest_version": 3,
|
4
|
+
"name": "Rudderstack SDK: Chrome Extension Background Script Sample",
|
5
|
+
"description": "A minimal example of a chrome extension using manifest v3",
|
6
|
+
"version": "0.0.1",
|
7
|
+
"icons": {
|
8
|
+
"16": "logo/logo-16.png",
|
9
|
+
"48": "logo/logo-48.png",
|
10
|
+
"128": "logo/logo-128.png"
|
11
|
+
},
|
12
|
+
"options_page": "settings/settings.html",
|
13
|
+
"action": {
|
14
|
+
"default_title": "Rudderstack SDK: Chrome Extension Background Script Sample",
|
15
|
+
"default_popup": "popup/popup.html"
|
16
|
+
},
|
17
|
+
"permissions": ["storage", "tabs"],
|
18
|
+
"host_permissions": [
|
19
|
+
"https://*.dataplane.rudderstack.com/*",
|
20
|
+
"https://*.rudderlabs.com/*",
|
21
|
+
"*://*/*"
|
22
|
+
],
|
23
|
+
"externally_connectable": {
|
24
|
+
"matches": [
|
25
|
+
"https://*.dataplane.rudderstack.com/*",
|
26
|
+
"https://*.rudderlabs.com/*"
|
27
|
+
]
|
28
|
+
},
|
29
|
+
"background": {
|
30
|
+
"service_worker": "service-worker.js",
|
31
|
+
"type": "module"
|
32
|
+
},
|
33
|
+
"content_scripts": [{
|
34
|
+
"js": ["foreground.js"],
|
35
|
+
"matches": ["https://github.com/*"]
|
36
|
+
}]
|
37
|
+
}
|