@amplitude/analytics-browser 2.12.0 → 2.12.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/README.md +1 -1
- package/lib/cjs/attribution/campaign-parser.js.map +1 -1
- package/lib/cjs/attribution/helpers.js.map +1 -1
- package/lib/cjs/attribution/web-attribution.js.map +1 -1
- package/lib/cjs/browser-client.js +1 -1
- package/lib/cjs/browser-client.js.map +1 -1
- package/lib/cjs/config/joined-config.js +10 -10
- package/lib/cjs/config/joined-config.js.map +1 -1
- package/lib/cjs/config.d.ts +4 -3
- package/lib/cjs/config.d.ts.map +1 -1
- package/lib/cjs/config.js +5 -7
- package/lib/cjs/config.js.map +1 -1
- package/lib/cjs/constants.d.ts +12 -12
- package/lib/cjs/constants.d.ts.map +1 -1
- package/lib/cjs/cookie-migration/index.d.ts.map +1 -1
- package/lib/cjs/cookie-migration/index.js +3 -7
- package/lib/cjs/cookie-migration/index.js.map +1 -1
- package/lib/cjs/default-tracking.js.map +1 -1
- package/lib/cjs/det-notification.js.map +1 -1
- package/lib/cjs/gtm-snippet-index.js.map +1 -1
- package/lib/cjs/index.d.ts +46 -5
- package/lib/cjs/index.d.ts.map +1 -1
- package/lib/cjs/index.js +15 -1
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/plugins/context.js +1 -1
- package/lib/cjs/plugins/context.js.map +1 -1
- package/lib/cjs/plugins/file-download-tracking.d.ts.map +1 -1
- package/lib/cjs/plugins/file-download-tracking.js +19 -8
- package/lib/cjs/plugins/file-download-tracking.js.map +1 -1
- package/lib/cjs/plugins/form-interaction-tracking.d.ts.map +1 -1
- package/lib/cjs/plugins/form-interaction-tracking.js +18 -8
- package/lib/cjs/plugins/form-interaction-tracking.js.map +1 -1
- package/lib/cjs/plugins/network-connectivity-checker.js.map +1 -1
- package/lib/cjs/snippet-index.js.map +1 -1
- package/lib/cjs/storage/browser-storage.d.ts.map +1 -1
- package/lib/cjs/storage/browser-storage.js +4 -4
- package/lib/cjs/storage/browser-storage.js.map +1 -1
- package/lib/cjs/storage/local-storage.js +3 -2
- package/lib/cjs/storage/local-storage.js.map +1 -1
- package/lib/cjs/storage/session-storage.js.map +1 -1
- package/lib/cjs/transports/send-beacon.js.map +1 -1
- package/lib/cjs/transports/xhr.js +1 -1
- package/lib/cjs/transports/xhr.js.map +1 -1
- package/lib/cjs/utils/snippet-helper.d.ts.map +1 -1
- package/lib/cjs/utils/snippet-helper.js.map +1 -1
- package/lib/cjs/version.d.ts +1 -1
- package/lib/cjs/version.js +1 -1
- package/lib/cjs/version.js.map +1 -1
- package/lib/esm/attribution/campaign-parser.js.map +1 -1
- package/lib/esm/attribution/helpers.js.map +1 -1
- package/lib/esm/attribution/web-attribution.js.map +1 -1
- package/lib/esm/browser-client.js +1 -1
- package/lib/esm/browser-client.js.map +1 -1
- package/lib/esm/config/joined-config.js +10 -10
- package/lib/esm/config/joined-config.js.map +1 -1
- package/lib/esm/config.d.ts +4 -3
- package/lib/esm/config.d.ts.map +1 -1
- package/lib/esm/config.js +6 -8
- package/lib/esm/config.js.map +1 -1
- package/lib/esm/constants.d.ts +12 -12
- package/lib/esm/constants.d.ts.map +1 -1
- package/lib/esm/cookie-migration/index.d.ts.map +1 -1
- package/lib/esm/cookie-migration/index.js +4 -8
- package/lib/esm/cookie-migration/index.js.map +1 -1
- package/lib/esm/default-tracking.js.map +1 -1
- package/lib/esm/det-notification.js.map +1 -1
- package/lib/esm/gtm-snippet-index.js.map +1 -1
- package/lib/esm/index.d.ts +46 -5
- package/lib/esm/index.d.ts.map +1 -1
- package/lib/esm/index.js +15 -2
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/plugins/context.js +1 -1
- package/lib/esm/plugins/context.js.map +1 -1
- package/lib/esm/plugins/file-download-tracking.d.ts.map +1 -1
- package/lib/esm/plugins/file-download-tracking.js +19 -8
- package/lib/esm/plugins/file-download-tracking.js.map +1 -1
- package/lib/esm/plugins/form-interaction-tracking.d.ts.map +1 -1
- package/lib/esm/plugins/form-interaction-tracking.js +18 -8
- package/lib/esm/plugins/form-interaction-tracking.js.map +1 -1
- package/lib/esm/plugins/network-connectivity-checker.js.map +1 -1
- package/lib/esm/snippet-index.js.map +1 -1
- package/lib/esm/storage/browser-storage.d.ts.map +1 -1
- package/lib/esm/storage/browser-storage.js +4 -4
- package/lib/esm/storage/browser-storage.js.map +1 -1
- package/lib/esm/storage/local-storage.js +3 -2
- package/lib/esm/storage/local-storage.js.map +1 -1
- package/lib/esm/storage/session-storage.js.map +1 -1
- package/lib/esm/transports/send-beacon.js.map +1 -1
- package/lib/esm/transports/xhr.js +2 -2
- package/lib/esm/transports/xhr.js.map +1 -1
- package/lib/esm/utils/snippet-helper.d.ts.map +1 -1
- package/lib/esm/utils/snippet-helper.js.map +1 -1
- package/lib/esm/version.d.ts +1 -1
- package/lib/esm/version.js +1 -1
- package/lib/esm/version.js.map +1 -1
- package/lib/scripts/amplitude-bookmarklet-snippet-min.js +1 -1
- package/lib/scripts/amplitude-bookmarklet.html +1 -1
- package/lib/scripts/amplitude-gtm-min.js +1 -1
- package/lib/scripts/amplitude-gtm-min.js.gz +0 -0
- package/lib/scripts/amplitude-gtm-min.js.map +1 -1
- package/lib/scripts/amplitude-gtm-snippet-min.js +1 -1
- package/lib/scripts/amplitude-min.js +1 -1
- package/lib/scripts/amplitude-min.js.gz +0 -0
- package/lib/scripts/amplitude-min.js.map +1 -1
- package/lib/scripts/amplitude-min.umd.js +1 -1
- package/lib/scripts/amplitude-min.umd.js.gz +0 -0
- package/lib/scripts/amplitude-snippet-instructions.html +1 -1
- package/lib/scripts/amplitude-snippet-min.js +1 -1
- package/lib/scripts/config.d.ts +1 -0
- package/lib/scripts/config.d.ts.map +1 -1
- package/lib/scripts/index.d.ts +46 -5
- package/lib/scripts/index.d.ts.map +1 -1
- package/lib/scripts/plugins/file-download-tracking.d.ts.map +1 -1
- package/lib/scripts/plugins/form-interaction-tracking.d.ts.map +1 -1
- package/lib/scripts/version.d.ts +1 -1
- package/package.json +5 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhF,eAAO,MAAM,oBAAoB,gBAAgB,CAAC;AAElD,eAAO,MAAM,uBAAuB,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhF,eAAO,MAAM,oBAAoB,gBAAgB,CAAC;AAElD,eAAO,MAAM,uBAAuB,QAAwC,CAAC;AAC7E,eAAO,MAAM,wBAAwB,QAAyC,CAAC;AAC/E,eAAO,MAAM,yBAAyB,QAA2C,CAAC;AAClF,eAAO,MAAM,2BAA2B,QAA4C,CAAC;AACrF,eAAO,MAAM,2BAA2B,kBAAkB,CAAC;AAC3D,eAAO,MAAM,yBAAyB,gBAAgB,CAAC;AAEvD,eAAO,MAAM,cAAc,QAA2C,CAAC;AACvE,eAAO,MAAM,SAAS,QAAsC,CAAC;AAC7D,eAAO,MAAM,OAAO,QAAoC,CAAC;AACzD,eAAO,MAAM,SAAS,QAAsC,CAAC;AAC7D,eAAO,MAAM,QAAQ,QAAqC,CAAC;AAE3D,eAAO,MAAM,OAAO,QAAoC,CAAC;AACzD,eAAO,MAAM,SAAS,QAAsC,CAAC;AAC7D,eAAO,MAAM,gBAAgB,QAA6C,CAAC;AAE3E,eAAO,MAAM,wBAAwB,EAAE,mBAA8B,CAAC;AACtE,eAAO,MAAM,mBAAmB,EAAE,cAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cookie-migration/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAEnF,eAAO,MAAM,kBAAkB,WACrB,MAAM,iBACC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cookie-migration/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAEnF,eAAO,MAAM,kBAAkB,WACrB,MAAM,iBACC,QAAQ,WAAW,CAAC,oCAElC,QAAQ,WAAW,CAoBrB,CAAC;AAEF,eAAO,MAAM,SAAS,QAAS,MAAM,uBAMpC,CAAC;AAEF,eAAO,MAAM,MAAM,WAAY,MAAM,KAAG,MAAM,GAAG,SAShD,CAAC"}
|
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
import { __awaiter, __generator, __read
|
|
1
|
+
import { __awaiter, __generator, __read } from "tslib";
|
|
2
2
|
import { getOldCookieName } from '@amplitude/analytics-core';
|
|
3
|
-
export var parseLegacyCookies = function (
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
args_1[_i - 2] = arguments[_i];
|
|
7
|
-
}
|
|
8
|
-
return __awaiter(void 0, __spreadArray([apiKey_1, cookieStorage_1], __read(args_1), false), void 0, function (apiKey, cookieStorage, deleteLegacyCookies) {
|
|
3
|
+
export var parseLegacyCookies = function (apiKey, cookieStorage, deleteLegacyCookies) {
|
|
4
|
+
if (deleteLegacyCookies === void 0) { deleteLegacyCookies = true; }
|
|
5
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
9
6
|
var cookieName, cookies, _a, deviceId, userId, optOut, sessionId, lastEventTime, lastEventId;
|
|
10
|
-
if (deleteLegacyCookies === void 0) { deleteLegacyCookies = true; }
|
|
11
7
|
return __generator(this, function (_b) {
|
|
12
8
|
switch (_b.label) {
|
|
13
9
|
case 0:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cookie-migration/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAwB,MAAM,2BAA2B,CAAC;AAEnF,MAAM,CAAC,IAAM,kBAAkB,GAAG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cookie-migration/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAwB,MAAM,2BAA2B,CAAC;AAEnF,MAAM,CAAC,IAAM,kBAAkB,GAAG,UAChC,MAAc,EACd,aAAmC,EACnC,mBAA0B;IAA1B,oCAAA,EAAA,0BAA0B;;;;;;oBAEpB,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;oBAC5B,qBAAM,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,EAAA;;oBAAhD,OAAO,GAAG,SAAsC;oBACtD,IAAI,CAAC,OAAO,EAAE;wBACZ,sBAAO;gCACL,MAAM,EAAE,KAAK;6BACd,EAAC;qBACH;yBACG,mBAAmB,EAAnB,wBAAmB;oBACrB,qBAAM,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,EAAA;;oBAAtC,SAAsC,CAAC;;;oBAEnC,KAAA,OAAoE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAA,EAArF,QAAQ,QAAA,EAAE,MAAM,QAAA,EAAE,MAAM,QAAA,EAAE,SAAS,QAAA,EAAE,aAAa,QAAA,EAAE,WAAW,QAAA,CAAuB;oBAC7F,sBAAO;4BACL,QAAQ,UAAA;4BACR,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;4BACtB,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC;4BAC/B,WAAW,EAAE,SAAS,CAAC,WAAW,CAAC;4BACnC,aAAa,EAAE,SAAS,CAAC,aAAa,CAAC;4BACvC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;yBACxB,EAAC;;;;CACH,CAAC;AAEF,MAAM,CAAC,IAAM,SAAS,GAAG,UAAC,GAAW;IACnC,IAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAClC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE;QAClB,OAAO,SAAS,CAAC;KAClB;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,MAAM,GAAG,UAAC,KAAc;IACnC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE;QAC9B,OAAO,SAAS,CAAC;KAClB;IACD,IAAI;QACF,OAAO,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAChD;IAAC,WAAM;QACN,OAAO,SAAS,CAAC;KAClB;AACH,CAAC,CAAC","sourcesContent":["import { getOldCookieName, Storage, UserSession } from '@amplitude/analytics-core';\n\nexport const parseLegacyCookies = async (\n apiKey: string,\n cookieStorage: Storage<UserSession>,\n deleteLegacyCookies = true,\n): Promise<UserSession> => {\n const cookieName = getOldCookieName(apiKey);\n const cookies = await cookieStorage.getRaw(cookieName);\n if (!cookies) {\n return {\n optOut: false,\n };\n }\n if (deleteLegacyCookies) {\n await cookieStorage.remove(cookieName);\n }\n const [deviceId, userId, optOut, sessionId, lastEventTime, lastEventId] = cookies.split('.');\n return {\n deviceId,\n userId: decode(userId),\n sessionId: parseTime(sessionId),\n lastEventId: parseTime(lastEventId),\n lastEventTime: parseTime(lastEventTime),\n optOut: Boolean(optOut),\n };\n};\n\nexport const parseTime = (num: string) => {\n const integer = parseInt(num, 32);\n if (isNaN(integer)) {\n return undefined;\n }\n return integer;\n};\n\nexport const decode = (value?: string): string | undefined => {\n if (!atob || !escape || !value) {\n return undefined;\n }\n try {\n return decodeURIComponent(escape(atob(value)));\n } catch {\n return undefined;\n }\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-tracking.js","sourceRoot":"","sources":["../../src/default-tracking.ts"],"names":[],"mappings":";AAUA;;;GAGG;AACH,IAAM,iBAAiB,GAAG,UAAC,WAAqD,EAAE,KAA+B;IAC/G,IAAI,OAAO,WAAW,KAAK,SAAS,EAAE
|
|
1
|
+
{"version":3,"file":"default-tracking.js","sourceRoot":"","sources":["../../src/default-tracking.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n PageTrackingHistoryChanges,\n PageTrackingOptions,\n PageTrackingTrackOn,\n ElementInteractionsOptions,\n BrowserOptions,\n AutocaptureOptions,\n AttributionOptions,\n} from '@amplitude/analytics-core';\n\n/**\n * Returns false if autocapture === false or if autocapture[event],\n * otherwise returns true\n */\nconst isTrackingEnabled = (autocapture: AutocaptureOptions | boolean | undefined, event: keyof AutocaptureOptions) => {\n if (typeof autocapture === 'boolean') {\n return autocapture;\n }\n\n if (autocapture?.[event] === false) {\n return false;\n }\n\n return true;\n};\n\nexport const isAttributionTrackingEnabled = (autocapture: AutocaptureOptions | boolean | undefined) =>\n isTrackingEnabled(autocapture, 'attribution');\n\nexport const isFileDownloadTrackingEnabled = (autocapture: AutocaptureOptions | boolean | undefined) =>\n isTrackingEnabled(autocapture, 'fileDownloads');\n\nexport const isFormInteractionTrackingEnabled = (autocapture: AutocaptureOptions | boolean | undefined) =>\n isTrackingEnabled(autocapture, 'formInteractions');\n\nexport const isPageViewTrackingEnabled = (autocapture: AutocaptureOptions | boolean | undefined) =>\n isTrackingEnabled(autocapture, 'pageViews');\n\nexport const isSessionTrackingEnabled = (autocapture: AutocaptureOptions | boolean | undefined) =>\n isTrackingEnabled(autocapture, 'sessions');\n\n/**\n * Returns true if\n * 1. autocapture === true\n * 2. if autocapture.elementInteractions === true\n * 3. if autocapture.elementInteractions === object\n * otherwise returns false\n */\nexport const isElementInteractionsEnabled = (autocapture: AutocaptureOptions | boolean | undefined): boolean => {\n if (typeof autocapture === 'boolean') {\n return autocapture;\n }\n\n if (\n typeof autocapture === 'object' &&\n (autocapture.elementInteractions === true || typeof autocapture.elementInteractions === 'object')\n ) {\n return true;\n }\n\n return false;\n};\n\nexport const getElementInteractionsConfig = (config: BrowserOptions): ElementInteractionsOptions | undefined => {\n if (\n isElementInteractionsEnabled(config.autocapture) &&\n typeof config.autocapture === 'object' &&\n typeof config.autocapture.elementInteractions === 'object'\n ) {\n return config.autocapture.elementInteractions;\n }\n return undefined;\n};\n\nexport const getPageViewTrackingConfig = (config: BrowserOptions): PageTrackingOptions => {\n let trackOn: PageTrackingTrackOn | undefined = () => false;\n let trackHistoryChanges: PageTrackingHistoryChanges | undefined = undefined;\n let eventType: string | undefined;\n const pageCounter = config.pageCounter;\n\n const isDefaultPageViewTrackingEnabled = isPageViewTrackingEnabled(config.defaultTracking);\n if (isDefaultPageViewTrackingEnabled) {\n trackOn = undefined;\n eventType = undefined;\n\n if (\n config.defaultTracking &&\n typeof config.defaultTracking === 'object' &&\n config.defaultTracking.pageViews &&\n typeof config.defaultTracking.pageViews === 'object'\n ) {\n if ('trackOn' in config.defaultTracking.pageViews) {\n trackOn = config.defaultTracking.pageViews.trackOn;\n }\n\n if ('trackHistoryChanges' in config.defaultTracking.pageViews) {\n trackHistoryChanges = config.defaultTracking.pageViews.trackHistoryChanges;\n }\n\n if ('eventType' in config.defaultTracking.pageViews && config.defaultTracking.pageViews.eventType) {\n eventType = config.defaultTracking.pageViews.eventType;\n }\n }\n }\n\n return {\n trackOn,\n trackHistoryChanges,\n eventType,\n pageCounter,\n };\n};\n\nexport const getAttributionTrackingConfig = (config: BrowserOptions): AttributionOptions => {\n if (\n isAttributionTrackingEnabled(config.defaultTracking) &&\n config.defaultTracking &&\n typeof config.defaultTracking === 'object' &&\n config.defaultTracking.attribution &&\n typeof config.defaultTracking.attribution === 'object'\n ) {\n return {\n ...config.defaultTracking.attribution,\n };\n }\n\n return {};\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"det-notification.js","sourceRoot":"","sources":["../../src/det-notification.ts"],"names":[],"mappings":"AAEA,IAAI,QAAQ,GAAG,KAAK,CAAC;AAErB,MAAM,CAAC,IAAM,SAAS,GAAG,UAAC,MAAqB;IAC7C,IAAI,QAAQ,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS,EAAE
|
|
1
|
+
{"version":3,"file":"det-notification.js","sourceRoot":"","sources":["../../src/det-notification.ts"],"names":[],"mappings":"AAEA,IAAI,QAAQ,GAAG,KAAK,CAAC;AAErB,MAAM,CAAC,IAAM,SAAS,GAAG,UAAC,MAAqB;IAC7C,IAAI,QAAQ,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS,EAAE;QACpD,OAAO;KACR;IAED,IAAM,OAAO,GAAG,6jBAM6F,CAAC;IAC9G,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,QAAQ,GAAG,IAAI,CAAC;AAClB,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,IAAM,WAAW,GAAG;IACzB,QAAQ,GAAG,KAAK,CAAC;AACnB,CAAC,CAAC","sourcesContent":["import { BrowserConfig } from '@amplitude/analytics-core';\n\nlet notified = false;\n\nexport const detNotify = (config: BrowserConfig): void => {\n if (notified || config.defaultTracking !== undefined) {\n return;\n }\n\n const message = `\\`options.defaultTracking\\` is set to undefined. This implicitly configures your Amplitude instance to track Page Views, Sessions, File Downloads, and Form Interactions. You can suppress this warning by explicitly setting a value to \\`options.defaultTracking\\`. The value must either be a boolean, to enable and disable all default events, or an object, for advanced configuration. For example:\n\namplitude.init(<YOUR_API_KEY>, {\n defaultTracking: true,\n});\n\nVisit https://www.docs.developers.amplitude.com/data/sdks/browser-2/#tracking-default-events for more details.`;\n config.loggerProvider.warn(message);\n notified = true;\n};\n\n/**\n * @private\n * This function is meant for testing purposes only\n */\nexport const resetNotify = () => {\n notified = false;\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gtm-snippet-index.js","sourceRoot":"","sources":["../../src/gtm-snippet-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,YAAY,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,yDAAyD;AACzD,CAAC;IACC,IAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,IAAI,CAAC,WAAW,EAAE
|
|
1
|
+
{"version":3,"file":"gtm-snippet-index.js","sourceRoot":"","sources":["../../src/gtm-snippet-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,YAAY,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,yDAAyD;AACzD,CAAC;IACC,IAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAC/D,OAAO;KACR;IAED,IAAM,mBAAmB,GAAG,UAAC,YAAqB;QAChD,IAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;QAClC,IAAM,WAAW,GAAG,cAAc,EAAE,CAAC;QACrC,IAAI,WAAW,IAAI,WAAW,CAAC,YAAY,IAAI,WAAW,CAAC,YAAY,CAAC,GAAG,IAAI,YAAY,EAAE;YAC3F,6DAA6D;YAC7D,aAAa;YACb,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;SACvD;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,WAAW,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,IAAI,EAAE,EAAE,YAAY,EAAE;QACrF,cAAc,EAAE,mBAAmB;KACpC,CAAC,CAAC;IAEH,IAAI,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE;QACpC,IAAM,KAAK,GAAG,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC;QAC1C,WAAW,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,CAAC;QACjC,kBAAkB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAExC,IAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,IAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YACtC,IAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC;YAC9G,IAAM,OAAK,GAAG,QAAQ,CAAC,EAAE,CAAC;YAC1B,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;YACjB,kBAAkB,CAAC,QAAQ,EAAE,OAAK,CAAC,CAAC;SACrC;KACF;AACH,CAAC,CAAC,EAAE,CAAC","sourcesContent":["import { getGlobalScope } from '@amplitude/analytics-core';\nimport * as amplitudeGTM from './index';\nimport { createInstance } from './browser-client-factory';\nimport { runQueuedFunctions } from './utils/snippet-helper';\n\n// https://developer.mozilla.org/en-US/docs/Glossary/IIFE\n(function () {\n const GlobalScope = getGlobalScope();\n\n if (!GlobalScope) {\n console.error('[Amplitude] Error: GlobalScope is not defined');\n return;\n }\n\n const createNamedInstance = (instanceName?: string) => {\n const instance = createInstance();\n const GlobalScope = getGlobalScope();\n if (GlobalScope && GlobalScope.amplitudeGTM && GlobalScope.amplitudeGTM._iq && instanceName) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n GlobalScope.amplitudeGTM._iq[instanceName] = instance;\n }\n return instance;\n };\n\n GlobalScope.amplitudeGTM = Object.assign(GlobalScope.amplitudeGTM || {}, amplitudeGTM, {\n createInstance: createNamedInstance,\n });\n\n if (GlobalScope.amplitudeGTM.invoked) {\n const queue = GlobalScope.amplitudeGTM._q;\n GlobalScope.amplitudeGTM._q = [];\n runQueuedFunctions(amplitudeGTM, queue);\n\n const instanceNames = Object.keys(GlobalScope.amplitudeGTM._iq) || [];\n for (let i = 0; i < instanceNames.length; i++) {\n const instanceName = instanceNames[i];\n const instance = Object.assign(GlobalScope.amplitudeGTM._iq[instanceName], createNamedInstance(instanceName));\n const queue = instance._q;\n instance._q = [];\n runQueuedFunctions(instance, queue);\n }\n }\n})();\n"]}
|
package/lib/esm/index.d.ts
CHANGED
|
@@ -1,9 +1,50 @@
|
|
|
1
1
|
export { createInstance } from './browser-client-factory';
|
|
2
|
-
export declare const add: (plugin:
|
|
3
|
-
(apiKey: string, options?:
|
|
4
|
-
(apiKey: string, userId?: string, options?:
|
|
5
|
-
}, logEvent: (eventInput:
|
|
2
|
+
export declare const add: (plugin: PluginType<BrowserClientType, BrowserConfigType>) => AmplitudeReturnType<void>, extendSession: () => void, flush: () => AmplitudeReturnType<void>, getDeviceId: () => string | undefined, getSessionId: () => number | undefined, getUserId: () => string | undefined, groupIdentify: (groupType: string, groupName: string | string[], identify: IIdentifyType, eventOptions?: EventOptionsType | undefined) => AmplitudeReturnType<ResultType>, identify: (identify: IIdentifyType, eventOptions?: EventOptionsType | undefined) => AmplitudeReturnType<ResultType>, init: {
|
|
3
|
+
(apiKey: string, options?: BrowserOptionsType | undefined): AmplitudeReturnType<void>;
|
|
4
|
+
(apiKey: string, userId?: string | undefined, options?: BrowserOptionsType | undefined): AmplitudeReturnType<void>;
|
|
5
|
+
}, logEvent: (eventInput: string | BaseEventType, eventProperties?: Record<string, any> | undefined, eventOptions?: EventOptionsType | undefined) => AmplitudeReturnType<ResultType>, remove: (pluginName: string) => AmplitudeReturnType<void>, reset: () => void, revenue: (revenue: IRevenueType, eventOptions?: EventOptionsType | undefined) => AmplitudeReturnType<ResultType>, setDeviceId: (deviceId: string) => void, setGroup: (groupType: string, groupName: string | string[], eventOptions?: EventOptionsType | undefined) => AmplitudeReturnType<ResultType>, setOptOut: (optOut: boolean) => void, setSessionId: (sessionId: number) => void, setTransport: (transport: TransportTypeType) => void, setUserId: (userId: string | undefined) => void, track: (eventInput: string | BaseEventType, eventProperties?: Record<string, any> | undefined, eventOptions?: EventOptionsType | undefined) => AmplitudeReturnType<ResultType>;
|
|
6
6
|
export { runQueuedFunctions } from './utils/snippet-helper';
|
|
7
7
|
export { Revenue, Identify } from '@amplitude/analytics-core';
|
|
8
|
-
|
|
8
|
+
import { AmplitudeReturn as AmplitudeReturnType, BaseEvent as BaseEventType, EventOptions as EventOptionsType, BrowserClient as BrowserClientType, AttributionOptions as AttributionOptionsType, AutocaptureOptions as AutocaptureOptionsType, BrowserOptions as BrowserOptionsType, BrowserConfig as BrowserConfigType, IConfig as IConfigType, Event as EventType, IdentifyOperation as IdentifyOperationType, SpecialEventType as SpecialEventTypeType, IIdentify as IIdentifyType, IRevenue as IRevenueType, RevenueProperty as RevenuePropertyType, ILogger as ILoggerType, LogLevel as LogLevelType, Plugin as PluginType, BeforePlugin as BeforePluginType, EnrichmentPlugin as EnrichmentPluginType, DestinationPlugin as DestinationPluginType, Result as ResultType, ServerZoneType as ServerZoneTypeType, IdentityStorageType as IdentityStorageTypeType, Storage as StorageTypeType, TransportType as TransportTypeType, Messenger as MessengerType, ElementInteractionsOptions as ElementInteractionsOptionsType, ActionType as ActionTypeType } from '@amplitude/analytics-core';
|
|
9
|
+
import { Campaign as CampaignType, CampaignParser as CampaignParserType, ClickIdParameters as ClickIdParametersType, ReferrerParameters as ReferrerParametersType, UTMParameters as UTMParametersType } from './attribution/campaign';
|
|
10
|
+
export declare namespace Types {
|
|
11
|
+
type AmplitudeReturn<T> = AmplitudeReturnType<T>;
|
|
12
|
+
type BaseEvent = BaseEventType;
|
|
13
|
+
type EventOptions = EventOptionsType;
|
|
14
|
+
type Campaign = CampaignType;
|
|
15
|
+
type CampaignParser = CampaignParserType;
|
|
16
|
+
type ClickIdParameters = ClickIdParametersType;
|
|
17
|
+
type ReferrerParameters = ReferrerParametersType;
|
|
18
|
+
type UTMParameters = UTMParametersType;
|
|
19
|
+
type BrowserClient = BrowserClientType;
|
|
20
|
+
type AttributionOptions = AttributionOptionsType;
|
|
21
|
+
type AutocaptureOptions = AutocaptureOptionsType;
|
|
22
|
+
type BrowserConfig = BrowserConfigType;
|
|
23
|
+
type BrowserOptions = BrowserOptionsType;
|
|
24
|
+
type Config = IConfigType;
|
|
25
|
+
type Event = EventType;
|
|
26
|
+
const IdentifyOperation: typeof IdentifyOperationType;
|
|
27
|
+
const SpecialEventType: typeof SpecialEventTypeType;
|
|
28
|
+
type Identify = IIdentifyType;
|
|
29
|
+
type Revenue = IRevenueType;
|
|
30
|
+
const RevenueProperty: typeof RevenuePropertyType;
|
|
31
|
+
type Logger = ILoggerType;
|
|
32
|
+
const LogLevel: typeof LogLevelType;
|
|
33
|
+
type Plugin = PluginType;
|
|
34
|
+
type BeforePlugin = BeforePluginType;
|
|
35
|
+
type EnrichmentPlugin = EnrichmentPluginType;
|
|
36
|
+
type DestinationPlugin = DestinationPluginType;
|
|
37
|
+
type Result = ResultType;
|
|
38
|
+
type ServerZoneType = ServerZoneTypeType;
|
|
39
|
+
type IdentityStorageType = IdentityStorageTypeType;
|
|
40
|
+
type Storage<T> = StorageTypeType<T>;
|
|
41
|
+
type TransportType = TransportTypeType;
|
|
42
|
+
const OfflineDisabled: null;
|
|
43
|
+
type Messenger = MessengerType;
|
|
44
|
+
type ElementInteractionsOptions = ElementInteractionsOptionsType;
|
|
45
|
+
type ActionType = ActionTypeType;
|
|
46
|
+
const DEFAULT_CSS_SELECTOR_ALLOWLIST: string[];
|
|
47
|
+
const DEFAULT_DATA_ATTRIBUTE_PREFIX = "data-amp-track-";
|
|
48
|
+
const DEFAULT_ACTION_CLICK_ALLOWLIST: string[];
|
|
49
|
+
}
|
|
9
50
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,eAAO,MACL,GAAG,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,eAAO,MACL,GAAG,2FACH,aAAa,cACb,KAAK,mCACL,WAAW,4BACX,YAAY,4BACZ,SAAS,4BACT,aAAa,8JACb,QAAQ,6GACR,IAAI;;;GACJ,QAAQ,2KACR,MAAM,qDACN,KAAK,cACL,OAAO,2GACP,WAAW,8BACX,QAAQ,qIACR,SAAS,6BACT,YAAY,+BACZ,YAAY,0CACZ,SAAS,wCACT,KAAK,yKACG,CAAC;AACX,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EACL,eAAe,IAAI,mBAAmB,EACtC,SAAS,IAAI,aAAa,EAC1B,YAAY,IAAI,gBAAgB,EAChC,aAAa,IAAI,iBAAiB,EAClC,kBAAkB,IAAI,sBAAsB,EAC5C,kBAAkB,IAAI,sBAAsB,EAC5C,cAAc,IAAI,kBAAkB,EACpC,aAAa,IAAI,iBAAiB,EAClC,OAAO,IAAI,WAAW,EACtB,KAAK,IAAI,SAAS,EAClB,iBAAiB,IAAI,qBAAqB,EAC1C,gBAAgB,IAAI,oBAAoB,EACxC,SAAS,IAAI,aAAa,EAC1B,QAAQ,IAAI,YAAY,EACxB,eAAe,IAAI,mBAAmB,EACtC,OAAO,IAAI,WAAW,EACtB,QAAQ,IAAI,YAAY,EACxB,MAAM,IAAI,UAAU,EACpB,YAAY,IAAI,gBAAgB,EAChC,gBAAgB,IAAI,oBAAoB,EACxC,iBAAiB,IAAI,qBAAqB,EAC1C,MAAM,IAAI,UAAU,EACpB,cAAc,IAAI,kBAAkB,EACpC,mBAAmB,IAAI,uBAAuB,EAC9C,OAAO,IAAI,eAAe,EAC1B,aAAa,IAAI,iBAAiB,EAElC,SAAS,IAAI,aAAa,EAC1B,0BAA0B,IAAI,8BAA8B,EAC5D,UAAU,IAAI,cAAc,EAI7B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,QAAQ,IAAI,YAAY,EACxB,cAAc,IAAI,kBAAkB,EACpC,iBAAiB,IAAI,qBAAqB,EAC1C,kBAAkB,IAAI,sBAAsB,EAC5C,aAAa,IAAI,iBAAiB,EACnC,MAAM,wBAAwB,CAAC;AAKhC,yBAAiB,KAAK,CAAC;IACrB,KAAY,eAAe,CAAC,CAAC,IAAI,mBAAmB,CAAC,CAAC,CAAC,CAAC;IACxD,KAAY,SAAS,GAAG,aAAa,CAAC;IACtC,KAAY,YAAY,GAAG,gBAAgB,CAAC;IAC5C,KAAY,QAAQ,GAAG,YAAY,CAAC;IACpC,KAAY,cAAc,GAAG,kBAAkB,CAAC;IAChD,KAAY,iBAAiB,GAAG,qBAAqB,CAAC;IACtD,KAAY,kBAAkB,GAAG,sBAAsB,CAAC;IACxD,KAAY,aAAa,GAAG,iBAAiB,CAAC;IAC9C,KAAY,aAAa,GAAG,iBAAiB,CAAC;IAC9C,KAAY,kBAAkB,GAAG,sBAAsB,CAAC;IACxD,KAAY,kBAAkB,GAAG,sBAAsB,CAAC;IACxD,KAAY,aAAa,GAAG,iBAAiB,CAAC;IAC9C,KAAY,cAAc,GAAG,kBAAkB,CAAC;IAChD,KAAY,MAAM,GAAG,WAAW,CAAC;IACjC,KAAY,KAAK,GAAG,SAAS,CAAC;IACvB,MAAM,iBAAiB,8BAAwB,CAAC;IAChD,MAAM,gBAAgB,6BAAuB,CAAC;IACrD,KAAY,QAAQ,GAAG,aAAa,CAAC;IACrC,KAAY,OAAO,GAAG,YAAY,CAAC;IAC5B,MAAM,eAAe,4BAAsB,CAAC;IACnD,KAAY,MAAM,GAAG,WAAW,CAAC;IAC1B,MAAM,QAAQ,qBAAe,CAAC;IACrC,KAAY,MAAM,GAAG,UAAU,CAAC;IAChC,KAAY,YAAY,GAAG,gBAAgB,CAAC;IAC5C,KAAY,gBAAgB,GAAG,oBAAoB,CAAC;IACpD,KAAY,iBAAiB,GAAG,qBAAqB,CAAC;IACtD,KAAY,MAAM,GAAG,UAAU,CAAC;IAChC,KAAY,cAAc,GAAG,kBAAkB,CAAC;IAChD,KAAY,mBAAmB,GAAG,uBAAuB,CAAC;IAC1D,KAAY,OAAO,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;IAC5C,KAAY,aAAa,GAAG,iBAAiB,CAAC;IACvC,MAAM,eAAe,MAAsB,CAAC;IACnD,KAAY,SAAS,GAAG,aAAa,CAAC;IACtC,KAAY,0BAA0B,GAAG,8BAA8B,CAAC;IACxE,KAAY,UAAU,GAAG,cAAc,CAAC;IACjC,MAAM,8BAA8B,UAAsC,CAAC;IAC3E,MAAM,6BAA6B,oBAAqC,CAAC;IACzE,MAAM,8BAA8B,UAAsC,CAAC;CACnF"}
|
package/lib/esm/index.js
CHANGED
|
@@ -4,6 +4,19 @@ export { createInstance } from './browser-client-factory';
|
|
|
4
4
|
export var add = client.add, extendSession = client.extendSession, flush = client.flush, getDeviceId = client.getDeviceId, getSessionId = client.getSessionId, getUserId = client.getUserId, groupIdentify = client.groupIdentify, identify = client.identify, init = client.init, logEvent = client.logEvent, remove = client.remove, reset = client.reset, revenue = client.revenue, setDeviceId = client.setDeviceId, setGroup = client.setGroup, setOptOut = client.setOptOut, setSessionId = client.setSessionId, setTransport = client.setTransport, setUserId = client.setUserId, track = client.track;
|
|
5
5
|
export { runQueuedFunctions } from './utils/snippet-helper';
|
|
6
6
|
export { Revenue, Identify } from '@amplitude/analytics-core';
|
|
7
|
-
import
|
|
8
|
-
|
|
7
|
+
import { IdentifyOperation as IdentifyOperationType, SpecialEventType as SpecialEventTypeType, RevenueProperty as RevenuePropertyType, LogLevel as LogLevelType, OfflineDisabled as OfflineDisabledType, DEFAULT_CSS_SELECTOR_ALLOWLIST as DEFAULT_CSS_SELECTOR_ALLOWLIST_TYPE, DEFAULT_DATA_ATTRIBUTE_PREFIX as DEFAULT_DATA_ATTRIBUTE_PREFIX_TYPE, DEFAULT_ACTION_CLICK_ALLOWLIST as DEFAULT_ACTION_CLICK_ALLOWLIST_TYPE, } from '@amplitude/analytics-core';
|
|
8
|
+
// Export the following types to maintain backward compatibility with `analytics-types`.
|
|
9
|
+
// In the next major version, only export customer-facing types to reduce the public API surface.
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/no-namespace
|
|
11
|
+
export var Types;
|
|
12
|
+
(function (Types) {
|
|
13
|
+
Types.IdentifyOperation = IdentifyOperationType;
|
|
14
|
+
Types.SpecialEventType = SpecialEventTypeType;
|
|
15
|
+
Types.RevenueProperty = RevenuePropertyType;
|
|
16
|
+
Types.LogLevel = LogLevelType;
|
|
17
|
+
Types.OfflineDisabled = OfflineDisabledType;
|
|
18
|
+
Types.DEFAULT_CSS_SELECTOR_ALLOWLIST = DEFAULT_CSS_SELECTOR_ALLOWLIST_TYPE;
|
|
19
|
+
Types.DEFAULT_DATA_ATTRIBUTE_PREFIX = DEFAULT_DATA_ATTRIBUTE_PREFIX_TYPE;
|
|
20
|
+
Types.DEFAULT_ACTION_CLICK_ALLOWLIST = DEFAULT_ACTION_CLICK_ALLOWLIST_TYPE;
|
|
21
|
+
})(Types || (Types = {}));
|
|
9
22
|
//# sourceMappingURL=index.js.map
|
package/lib/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,OAAO,MAAM,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,MAAM,CACJ,IAAA,GAAG,GAoBD,MAAM,IApBL,EACH,aAAa,GAmBX,MAAM,cAnBK,EACb,KAAK,GAkBH,MAAM,MAlBH,EACL,WAAW,GAiBT,MAAM,YAjBG,EACX,YAAY,GAgBV,MAAM,aAhBI,EACZ,SAAS,GAeP,MAAM,UAfC,EACT,aAAa,GAcX,MAAM,cAdK,EACb,QAAQ,GAaN,MAAM,SAbA,EACR,IAAI,GAYF,MAAM,KAZJ,EACJ,QAAQ,GAWN,MAAM,SAXA,EACR,MAAM,GAUJ,MAAM,OAVF,EACN,KAAK,GASH,MAAM,MATH,EACL,OAAO,GAQL,MAAM,QARD,EACP,WAAW,GAOT,MAAM,YAPG,EACX,QAAQ,GAMN,MAAM,SANA,EACR,SAAS,GAKP,MAAM,UALC,EACT,YAAY,GAIV,MAAM,aAJI,EACZ,YAAY,GAGV,MAAM,aAHI,EACZ,SAAS,GAEP,MAAM,UAFC,EACT,KAAK,GACH,MAAM,MADH,CACI;AACX,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,OAAO,MAAM,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,MAAM,CACJ,IAAA,GAAG,GAoBD,MAAM,IApBL,EACH,aAAa,GAmBX,MAAM,cAnBK,EACb,KAAK,GAkBH,MAAM,MAlBH,EACL,WAAW,GAiBT,MAAM,YAjBG,EACX,YAAY,GAgBV,MAAM,aAhBI,EACZ,SAAS,GAeP,MAAM,UAfC,EACT,aAAa,GAcX,MAAM,cAdK,EACb,QAAQ,GAaN,MAAM,SAbA,EACR,IAAI,GAYF,MAAM,KAZJ,EACJ,QAAQ,GAWN,MAAM,SAXA,EACR,MAAM,GAUJ,MAAM,OAVF,EACN,KAAK,GASH,MAAM,MATH,EACL,OAAO,GAQL,MAAM,QARD,EACP,WAAW,GAOT,MAAM,YAPG,EACX,QAAQ,GAMN,MAAM,SANA,EACR,SAAS,GAKP,MAAM,UALC,EACT,YAAY,GAIV,MAAM,aAJI,EACZ,YAAY,GAGV,MAAM,aAHI,EACZ,SAAS,GAEP,MAAM,UAFC,EACT,KAAK,GACH,MAAM,MADH,CACI;AACX,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAWL,iBAAiB,IAAI,qBAAqB,EAC1C,gBAAgB,IAAI,oBAAoB,EAGxC,eAAe,IAAI,mBAAmB,EAEtC,QAAQ,IAAI,YAAY,EAUxB,eAAe,IAAI,mBAAmB,EAItC,8BAA8B,IAAI,mCAAmC,EACrE,6BAA6B,IAAI,kCAAkC,EACnE,8BAA8B,IAAI,mCAAmC,GACtE,MAAM,2BAA2B,CAAC;AAUnC,wFAAwF;AACxF,iGAAiG;AACjG,2DAA2D;AAC3D,MAAM,KAAW,KAAK,CAuCrB;AAvCD,WAAiB,KAAK;IAgBP,uBAAiB,GAAG,qBAAqB,CAAC;IAC1C,sBAAgB,GAAG,oBAAoB,CAAC;IAGxC,qBAAe,GAAG,mBAAmB,CAAC;IAEtC,cAAQ,GAAG,YAAY,CAAC;IAUxB,qBAAe,GAAG,mBAAmB,CAAC;IAItC,oCAA8B,GAAG,mCAAmC,CAAC;IACrE,mCAA6B,GAAG,kCAAkC,CAAC;IACnE,oCAA8B,GAAG,mCAAmC,CAAC;AACpF,CAAC,EAvCgB,KAAK,KAAL,KAAK,QAuCrB","sourcesContent":["/* eslint-disable @typescript-eslint/unbound-method */\nimport client from './browser-client-factory';\nexport { createInstance } from './browser-client-factory';\nexport const {\n add,\n extendSession,\n flush,\n getDeviceId,\n getSessionId,\n getUserId,\n groupIdentify,\n identify,\n init,\n logEvent,\n remove,\n reset,\n revenue,\n setDeviceId,\n setGroup,\n setOptOut,\n setSessionId,\n setTransport,\n setUserId,\n track,\n} = client;\nexport { runQueuedFunctions } from './utils/snippet-helper';\nexport { Revenue, Identify } from '@amplitude/analytics-core';\n\nimport {\n AmplitudeReturn as AmplitudeReturnType,\n BaseEvent as BaseEventType,\n EventOptions as EventOptionsType,\n BrowserClient as BrowserClientType,\n AttributionOptions as AttributionOptionsType,\n AutocaptureOptions as AutocaptureOptionsType,\n BrowserOptions as BrowserOptionsType,\n BrowserConfig as BrowserConfigType,\n IConfig as IConfigType,\n Event as EventType,\n IdentifyOperation as IdentifyOperationType,\n SpecialEventType as SpecialEventTypeType,\n IIdentify as IIdentifyType,\n IRevenue as IRevenueType,\n RevenueProperty as RevenuePropertyType,\n ILogger as ILoggerType,\n LogLevel as LogLevelType,\n Plugin as PluginType,\n BeforePlugin as BeforePluginType,\n EnrichmentPlugin as EnrichmentPluginType,\n DestinationPlugin as DestinationPluginType,\n Result as ResultType,\n ServerZoneType as ServerZoneTypeType,\n IdentityStorageType as IdentityStorageTypeType,\n Storage as StorageTypeType,\n TransportType as TransportTypeType,\n OfflineDisabled as OfflineDisabledType,\n Messenger as MessengerType,\n ElementInteractionsOptions as ElementInteractionsOptionsType,\n ActionType as ActionTypeType,\n DEFAULT_CSS_SELECTOR_ALLOWLIST as DEFAULT_CSS_SELECTOR_ALLOWLIST_TYPE,\n DEFAULT_DATA_ATTRIBUTE_PREFIX as DEFAULT_DATA_ATTRIBUTE_PREFIX_TYPE,\n DEFAULT_ACTION_CLICK_ALLOWLIST as DEFAULT_ACTION_CLICK_ALLOWLIST_TYPE,\n} from '@amplitude/analytics-core';\n\nimport {\n Campaign as CampaignType,\n CampaignParser as CampaignParserType,\n ClickIdParameters as ClickIdParametersType,\n ReferrerParameters as ReferrerParametersType,\n UTMParameters as UTMParametersType,\n} from './attribution/campaign';\n\n// Export the following types to maintain backward compatibility with `analytics-types`.\n// In the next major version, only export customer-facing types to reduce the public API surface.\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace Types {\n export type AmplitudeReturn<T> = AmplitudeReturnType<T>;\n export type BaseEvent = BaseEventType;\n export type EventOptions = EventOptionsType;\n export type Campaign = CampaignType;\n export type CampaignParser = CampaignParserType;\n export type ClickIdParameters = ClickIdParametersType;\n export type ReferrerParameters = ReferrerParametersType;\n export type UTMParameters = UTMParametersType;\n export type BrowserClient = BrowserClientType;\n export type AttributionOptions = AttributionOptionsType;\n export type AutocaptureOptions = AutocaptureOptionsType;\n export type BrowserConfig = BrowserConfigType;\n export type BrowserOptions = BrowserOptionsType;\n export type Config = IConfigType;\n export type Event = EventType;\n export const IdentifyOperation = IdentifyOperationType;\n export const SpecialEventType = SpecialEventTypeType;\n export type Identify = IIdentifyType;\n export type Revenue = IRevenueType;\n export const RevenueProperty = RevenuePropertyType;\n export type Logger = ILoggerType;\n export const LogLevel = LogLevelType;\n export type Plugin = PluginType;\n export type BeforePlugin = BeforePluginType;\n export type EnrichmentPlugin = EnrichmentPluginType;\n export type DestinationPlugin = DestinationPluginType;\n export type Result = ResultType;\n export type ServerZoneType = ServerZoneTypeType;\n export type IdentityStorageType = IdentityStorageTypeType;\n export type Storage<T> = StorageTypeType<T>;\n export type TransportType = TransportTypeType;\n export const OfflineDisabled = OfflineDisabledType;\n export type Messenger = MessengerType;\n export type ElementInteractionsOptions = ElementInteractionsOptionsType;\n export type ActionType = ActionTypeType;\n export const DEFAULT_CSS_SELECTOR_ALLOWLIST = DEFAULT_CSS_SELECTOR_ALLOWLIST_TYPE;\n export const DEFAULT_DATA_ATTRIBUTE_PREFIX = DEFAULT_DATA_ATTRIBUTE_PREFIX_TYPE;\n export const DEFAULT_ACTION_CLICK_ALLOWLIST = DEFAULT_ACTION_CLICK_ALLOWLIST_TYPE;\n}\n"]}
|
|
@@ -19,9 +19,9 @@ var Context = /** @class */ (function () {
|
|
|
19
19
|
return Promise.resolve(undefined);
|
|
20
20
|
};
|
|
21
21
|
Context.prototype.execute = function (context) {
|
|
22
|
+
var _a, _b;
|
|
22
23
|
return __awaiter(this, void 0, void 0, function () {
|
|
23
24
|
var time, lastEventId, nextEventId, event;
|
|
24
|
-
var _a, _b;
|
|
25
25
|
return __generator(this, function (_c) {
|
|
26
26
|
time = new Date().getTime();
|
|
27
27
|
lastEventId = (_a = this.config.lastEventId) !== null && _a !== void 0 ? _a : -1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/plugins/context.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAsC,MAAM,2BAA2B,CAAC;AAClG,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,IAAM,gBAAgB,GAAG,KAAK,CAAC;AAC/B,IAAM,UAAU,GAAG,SAAS,CAAC;AAC7B;IAWE;QAVA,SAAI,GAAG,mCAAmC,CAAC;QAC3C,SAAI,GAAG,QAAiB,CAAC;QAOzB,YAAO,GAAG,UAAG,SAAS,cAAI,OAAO,CAAE,CAAC;QAGlC,0BAA0B;QAC1B,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/plugins/context.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAsC,MAAM,2BAA2B,CAAC;AAClG,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,IAAM,gBAAgB,GAAG,KAAK,CAAC;AAC/B,IAAM,UAAU,GAAG,SAAS,CAAC;AAC7B;IAWE;QAVA,SAAI,GAAG,mCAAmC,CAAC;QAC3C,SAAI,GAAG,QAAiB,CAAC;QAOzB,YAAO,GAAG,UAAG,SAAS,cAAI,OAAO,CAAE,CAAC;QAGlC,0BAA0B;QAC1B,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE;YACpC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;SACtC;IACH,CAAC;IAED,uBAAK,GAAL,UAAM,MAAqB;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAEK,yBAAO,GAAb,UAAc,OAAc;;;;;gBACpB,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;gBAC5B,WAAW,GAAG,MAAA,IAAI,CAAC,MAAM,CAAC,WAAW,mCAAI,CAAC,CAAC,CAAC;gBAC5C,WAAW,GAAG,MAAA,OAAO,CAAC,QAAQ,mCAAI,WAAW,GAAG,CAAC,CAAC;gBACxD,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;gBACtC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;oBACjB,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC;iBAClC;gBAEK,KAAK,6EACT,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAC3B,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAC/B,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EACjC,IAAI,MAAA,IACD,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,GACnE,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,GACxE,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,CAAC,GACrE,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,KAChE,SAAS,EAAE,IAAI,EAAE,EACjB,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EACjC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,KACnB,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,IAAI;oBACnC,kBAAkB,EAAE;wBAClB,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,UAAU;wBACrD,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,aAAa;qBAC5D;iBACF,CAAC,GACC,OAAO,KACV,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,UAAU,EAAE,IAAI,CAAC,SAAS,GAC3B,CAAC;gBACF,sBAAO,KAAK,EAAC;;;KACd;IACH,cAAC;AAAD,CAAC,AA1DD,IA0DC","sourcesContent":["import { UUID, getLanguage, Event, BeforePlugin, BrowserConfig } from '@amplitude/analytics-core';\nimport { VERSION } from '../version';\nimport { LIBPREFIX } from '../lib-prefix';\n\nconst BROWSER_PLATFORM = 'Web';\nconst IP_ADDRESS = '$remote';\nexport class Context implements BeforePlugin {\n name = '@amplitude/plugin-context-browser';\n type = 'before' as const;\n\n // this.config is defined in setup() which will always be called first\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n config: BrowserConfig;\n userAgent: string | undefined;\n library = `${LIBPREFIX}/${VERSION}`;\n\n constructor() {\n /* istanbul ignore else */\n if (typeof navigator !== 'undefined') {\n this.userAgent = navigator.userAgent;\n }\n }\n\n setup(config: BrowserConfig): Promise<undefined> {\n this.config = config;\n\n return Promise.resolve(undefined);\n }\n\n async execute(context: Event): Promise<Event> {\n const time = new Date().getTime();\n const lastEventId = this.config.lastEventId ?? -1;\n const nextEventId = context.event_id ?? lastEventId + 1;\n this.config.lastEventId = nextEventId;\n if (!context.time) {\n this.config.lastEventTime = time;\n }\n\n const event: Event = {\n user_id: this.config.userId,\n device_id: this.config.deviceId,\n session_id: this.config.sessionId,\n time,\n ...(this.config.appVersion && { app_version: this.config.appVersion }),\n ...(this.config.trackingOptions.platform && { platform: BROWSER_PLATFORM }),\n ...(this.config.trackingOptions.language && { language: getLanguage() }),\n ...(this.config.trackingOptions.ipAddress && { ip: IP_ADDRESS }),\n insert_id: UUID(),\n partner_id: this.config.partnerId,\n plan: this.config.plan,\n ...(this.config.ingestionMetadata && {\n ingestion_metadata: {\n source_name: this.config.ingestionMetadata.sourceName,\n source_version: this.config.ingestionMetadata.sourceVersion,\n },\n }),\n ...context,\n event_id: nextEventId,\n library: this.library,\n user_agent: this.userAgent,\n };\n return event;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-download-tracking.d.ts","sourceRoot":"","sources":["../../../src/plugins/file-download-tracking.ts"],"names":[],"mappings":"AAEA,OAAO,EAAyB,gBAAgB,EAAiB,MAAM,2BAA2B,CAAC;AAQnG,eAAO,MAAM,oBAAoB,QAAO,
|
|
1
|
+
{"version":3,"file":"file-download-tracking.d.ts","sourceRoot":"","sources":["../../../src/plugins/file-download-tracking.ts"],"names":[],"mappings":"AAEA,OAAO,EAAyB,gBAAgB,EAAiB,MAAM,2BAA2B,CAAC;AAQnG,eAAO,MAAM,oBAAoB,QAAO,gBA4HvC,CAAC"}
|
|
@@ -23,13 +23,9 @@ export var fileDownloadTracking = function () {
|
|
|
23
23
|
var name = '@amplitude/plugin-file-download-tracking-browser';
|
|
24
24
|
var type = 'enrichment';
|
|
25
25
|
var setup = function (config, amplitude) { return __awaiter(void 0, void 0, void 0, function () {
|
|
26
|
-
var
|
|
27
|
-
return __generator(this, function (
|
|
28
|
-
|
|
29
|
-
// after the body is built. When Amplitud gets initialized in a script tag, the body tag is still unavailable. So register this
|
|
30
|
-
// only after the window is loaded
|
|
31
|
-
/* istanbul ignore next */
|
|
32
|
-
(_a = getGlobalScope()) === null || _a === void 0 ? void 0 : _a.addEventListener('load', function () {
|
|
26
|
+
var initializeFileDownloadTracking, window_1;
|
|
27
|
+
return __generator(this, function (_a) {
|
|
28
|
+
initializeFileDownloadTracking = function () {
|
|
33
29
|
/* istanbul ignore if */
|
|
34
30
|
if (!amplitude) {
|
|
35
31
|
// TODO: Add required minimum version of @amplitude/analytics-browser
|
|
@@ -91,7 +87,22 @@ export var fileDownloadTracking = function () {
|
|
|
91
87
|
childList: true,
|
|
92
88
|
});
|
|
93
89
|
}
|
|
94
|
-
}
|
|
90
|
+
};
|
|
91
|
+
// If the document is already loaded, initialize immediately.
|
|
92
|
+
/* istanbul ignore else*/
|
|
93
|
+
if (document.readyState === 'complete') {
|
|
94
|
+
initializeFileDownloadTracking();
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
window_1 = getGlobalScope();
|
|
98
|
+
/* istanbul ignore else*/
|
|
99
|
+
if (window_1) {
|
|
100
|
+
window_1.addEventListener('load', initializeFileDownloadTracking);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
config.loggerProvider.debug('File download tracking is not installed because global is undefined.');
|
|
104
|
+
}
|
|
105
|
+
}
|
|
95
106
|
return [2 /*return*/];
|
|
96
107
|
});
|
|
97
108
|
}); };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-download-tracking.js","sourceRoot":"","sources":["../../../src/plugins/file-download-tracking.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,2BAA2B,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEpH,OAAO,EAAE,cAAc,EAA0C,MAAM,2BAA2B,CAAC;AAQnG,MAAM,CAAC,IAAM,oBAAoB,GAAG;IAClC,IAAI,QAAsC,CAAC;IAC3C,IAAI,cAAc,GAAoB,EAAE,CAAC;IACzC,IAAM,gBAAgB,GAAG,UAAC,OAAgB,EAAE,IAAa,EAAE,OAAmB;QAC5E,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACxC,cAAc,CAAC,IAAI,CAAC;YAClB,OAAO,SAAA;YACP,IAAI,MAAA;YACJ,OAAO,SAAA;SACR,CAAC,CAAC;IACL,CAAC,CAAC;IACF,IAAM,oBAAoB,GAAG;QAC3B,cAAc,CAAC,OAAO,CAAC,UAAC,EAA0B;gBAAxB,OAAO,aAAA,EAAE,IAAI,UAAA,EAAE,OAAO,aAAA;YAC9C,0BAA0B;YAC1B,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QACH,cAAc,GAAG,EAAE,CAAC;IACtB,CAAC,CAAC;IAEF,IAAM,IAAI,GAAG,kDAAkD,CAAC;IAChE,IAAM,IAAI,GAAG,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"file-download-tracking.js","sourceRoot":"","sources":["../../../src/plugins/file-download-tracking.ts"],"names":[],"mappings":"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","sourcesContent":["import { DEFAULT_FILE_DOWNLOAD_EVENT, FILE_EXTENSION, FILE_NAME, LINK_ID, LINK_TEXT, LINK_URL } from '../constants';\nimport { BrowserConfig } from '../config';\nimport { getGlobalScope, Event, EnrichmentPlugin, BrowserClient } from '@amplitude/analytics-core';\n\ninterface EventListener {\n element: Element;\n type: 'click';\n handler: () => void;\n}\n\nexport const fileDownloadTracking = (): EnrichmentPlugin => {\n let observer: MutationObserver | undefined;\n let eventListeners: EventListener[] = [];\n const addEventListener = (element: Element, type: 'click', handler: () => void) => {\n element.addEventListener(type, handler);\n eventListeners.push({\n element,\n type,\n handler,\n });\n };\n const removeClickListeners = () => {\n eventListeners.forEach(({ element, type, handler }) => {\n /* istanbul ignore next */\n element?.removeEventListener(type, handler);\n });\n eventListeners = [];\n };\n\n const name = '@amplitude/plugin-file-download-tracking-browser';\n const type = 'enrichment';\n\n const setup = async (config: BrowserConfig, amplitude: BrowserClient) => {\n const initializeFileDownloadTracking = () => {\n /* istanbul ignore if */\n if (!amplitude) {\n // TODO: Add required minimum version of @amplitude/analytics-browser\n config.loggerProvider.warn(\n 'File download tracking requires a later version of @amplitude/analytics-browser. File download events are not tracked.',\n );\n return;\n }\n\n /* istanbul ignore if */\n if (typeof document === 'undefined') {\n return;\n }\n\n const addFileDownloadListener = (a: HTMLAnchorElement) => {\n let url: URL;\n try {\n // eslint-disable-next-line no-restricted-globals\n url = new URL(a.href, window.location.href);\n } catch {\n /* istanbul ignore next */\n return;\n }\n const result = ext.exec(url.href);\n const fileExtension = result?.[1];\n\n if (fileExtension) {\n addEventListener(a, 'click', () => {\n if (fileExtension) {\n amplitude.track(DEFAULT_FILE_DOWNLOAD_EVENT, {\n [FILE_EXTENSION]: fileExtension,\n [FILE_NAME]: url.pathname,\n [LINK_ID]: a.id,\n [LINK_TEXT]: a.text,\n [LINK_URL]: a.href,\n });\n }\n });\n }\n };\n\n const ext =\n /\\.(pdf|xlsx?|docx?|txt|rtf|csv|exe|key|pp(s|t|tx)|7z|pkg|rar|gz|zip|avi|mov|mp4|mpe?g|wmv|midi?|mp3|wav|wma)(\\?.+)?$/;\n\n // Adds listener to existing anchor tags\n const links = Array.from(document.getElementsByTagName('a'));\n links.forEach(addFileDownloadListener);\n\n // Adds listener to anchor tags added after initial load\n /* istanbul ignore else */\n if (typeof MutationObserver !== 'undefined') {\n observer = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n mutation.addedNodes.forEach((node) => {\n if (node.nodeName === 'A') {\n addFileDownloadListener(node as HTMLAnchorElement);\n }\n if ('querySelectorAll' in node && typeof node.querySelectorAll === 'function') {\n Array.from(node.querySelectorAll('a') as HTMLAnchorElement[]).map(addFileDownloadListener);\n }\n });\n });\n });\n\n observer.observe(document.body, {\n subtree: true,\n childList: true,\n });\n }\n };\n\n // If the document is already loaded, initialize immediately.\n /* istanbul ignore else*/\n if (document.readyState === 'complete') {\n initializeFileDownloadTracking();\n } else {\n // Otherwise, wait for the load event.\n const window = getGlobalScope();\n /* istanbul ignore else*/\n if (window) {\n window.addEventListener('load', initializeFileDownloadTracking);\n } else {\n config.loggerProvider.debug('File download tracking is not installed because global is undefined.');\n }\n }\n };\n\n const execute = async (event: Event) => event;\n const teardown = async () => {\n observer?.disconnect();\n removeClickListeners();\n };\n\n return {\n name,\n type,\n setup,\n execute,\n teardown,\n };\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-interaction-tracking.d.ts","sourceRoot":"","sources":["../../../src/plugins/form-interaction-tracking.ts"],"names":[],"mappings":"AAQA,OAAO,EAAyB,gBAAgB,EAAiB,MAAM,2BAA2B,CAAC;AAQnG,eAAO,MAAM,uBAAuB,QAAO,
|
|
1
|
+
{"version":3,"file":"form-interaction-tracking.d.ts","sourceRoot":"","sources":["../../../src/plugins/form-interaction-tracking.ts"],"names":[],"mappings":"AAQA,OAAO,EAAyB,gBAAgB,EAAiB,MAAM,2BAA2B,CAAC;AAQnG,eAAO,MAAM,uBAAuB,QAAO,gBAkI1C,CAAC;AAEF,eAAO,MAAM,iBAAiB,uDAU7B,CAAC;AAGF,eAAO,MAAM,iBAAiB,SAAU,eAAe,KAAG,MAAM,GAAG,IASlE,CAAC"}
|
|
@@ -23,13 +23,9 @@ export var formInteractionTracking = function () {
|
|
|
23
23
|
var name = '@amplitude/plugin-form-interaction-tracking-browser';
|
|
24
24
|
var type = 'enrichment';
|
|
25
25
|
var setup = function (config, amplitude) { return __awaiter(void 0, void 0, void 0, function () {
|
|
26
|
-
var
|
|
27
|
-
return __generator(this, function (
|
|
28
|
-
|
|
29
|
-
// after the body is built. When Amplitud gets initialized in a script tag, the body tag is still unavailable. So register this
|
|
30
|
-
// only after the window is loaded
|
|
31
|
-
/* istanbul ignore next */
|
|
32
|
-
(_a = getGlobalScope()) === null || _a === void 0 ? void 0 : _a.addEventListener('load', function () {
|
|
26
|
+
var initializeFormTracking, window_1;
|
|
27
|
+
return __generator(this, function (_a) {
|
|
28
|
+
initializeFormTracking = function () {
|
|
33
29
|
/* istanbul ignore if */
|
|
34
30
|
if (!amplitude) {
|
|
35
31
|
// TODO: Add required minimum version of @amplitude/analytics-browser
|
|
@@ -95,7 +91,21 @@ export var formInteractionTracking = function () {
|
|
|
95
91
|
childList: true,
|
|
96
92
|
});
|
|
97
93
|
}
|
|
98
|
-
}
|
|
94
|
+
};
|
|
95
|
+
// If the document is already loaded, initialize immediately.
|
|
96
|
+
if (document.readyState === 'complete') {
|
|
97
|
+
initializeFormTracking();
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
window_1 = getGlobalScope();
|
|
101
|
+
/* istanbul ignore else*/
|
|
102
|
+
if (window_1) {
|
|
103
|
+
window_1.addEventListener('load', initializeFormTracking);
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
config.loggerProvider.debug('Form interaction tracking is not installed because global is undefined.');
|
|
107
|
+
}
|
|
108
|
+
}
|
|
99
109
|
return [2 /*return*/];
|
|
100
110
|
});
|
|
101
111
|
}); };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-interaction-tracking.js","sourceRoot":"","sources":["../../../src/plugins/form-interaction-tracking.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DEFAULT_FORM_START_EVENT,\n DEFAULT_FORM_SUBMIT_EVENT,\n FORM_ID,\n FORM_NAME,\n FORM_DESTINATION,\n} from '../constants';\nimport { BrowserConfig } from '../config';\nimport { getGlobalScope, Event, EnrichmentPlugin, BrowserClient } from '@amplitude/analytics-core';\n\ninterface EventListener {\n element: Element;\n type: 'change' | 'submit';\n handler: () => void;\n}\n\nexport const formInteractionTracking = (): EnrichmentPlugin => {\n let observer: MutationObserver | undefined;\n let eventListeners: EventListener[] = [];\n\n const addEventListener = (element: Element, type: 'change' | 'submit', handler: () => void) => {\n element.addEventListener(type, handler);\n eventListeners.push({\n element,\n type,\n handler,\n });\n };\n\n const removeClickListeners = () => {\n eventListeners.forEach(({ element, type, handler }) => {\n /* istanbul ignore next */\n element?.removeEventListener(type, handler);\n });\n eventListeners = [];\n };\n\n const name = '@amplitude/plugin-form-interaction-tracking-browser';\n const type = 'enrichment';\n const setup = async (config: BrowserConfig, amplitude: BrowserClient) => {\n // The form interaction plugin observes changes in the dom. For this to work correctly, the observer can only be setup\n // after the body is built. When Amplitud gets initialized in a script tag, the body tag is still unavailable. So register this\n // only after the window is loaded\n /* istanbul ignore next */\n getGlobalScope()?.addEventListener('load', function () {\n /* istanbul ignore if */\n if (!amplitude) {\n // TODO: Add required minimum version of @amplitude/analytics-browser\n config.loggerProvider.warn(\n 'Form interaction tracking requires a later version of @amplitude/analytics-browser. Form interaction events are not tracked.',\n );\n return;\n }\n\n /* istanbul ignore if */\n if (typeof document === 'undefined') {\n return;\n }\n\n const addFormInteractionListener = (form: HTMLFormElement) => {\n let hasFormChanged = false;\n\n addEventListener(form, 'change', () => {\n const formDestination = extractFormAction(form);\n if (!hasFormChanged) {\n amplitude.track(DEFAULT_FORM_START_EVENT, {\n [FORM_ID]: stringOrUndefined(form.id),\n [FORM_NAME]: stringOrUndefined(form.name),\n [FORM_DESTINATION]: formDestination,\n });\n }\n hasFormChanged = true;\n });\n\n addEventListener(form, 'submit', () => {\n const formDestination = extractFormAction(form);\n if (!hasFormChanged) {\n amplitude.track(DEFAULT_FORM_START_EVENT, {\n [FORM_ID]: stringOrUndefined(form.id),\n [FORM_NAME]: stringOrUndefined(form.name),\n [FORM_DESTINATION]: formDestination,\n });\n }\n\n amplitude.track(DEFAULT_FORM_SUBMIT_EVENT, {\n [FORM_ID]: stringOrUndefined(form.id),\n [FORM_NAME]: stringOrUndefined(form.name),\n [FORM_DESTINATION]: formDestination,\n });\n hasFormChanged = false;\n });\n };\n\n // Adds listener to existing anchor tags\n const forms = Array.from(document.getElementsByTagName('form'));\n forms.forEach(addFormInteractionListener);\n\n // Adds listener to anchor tags added after initial load\n /* istanbul ignore else */\n if (typeof MutationObserver !== 'undefined') {\n observer = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n mutation.addedNodes.forEach((node) => {\n if (node.nodeName === 'FORM') {\n addFormInteractionListener(node as HTMLFormElement);\n }\n if ('querySelectorAll' in node && typeof node.querySelectorAll === 'function') {\n Array.from(node.querySelectorAll('form') as HTMLFormElement[]).map(addFormInteractionListener);\n }\n });\n });\n });\n\n observer.observe(document.body, {\n subtree: true,\n childList: true,\n });\n }\n });\n };\n const execute = async (event: Event) => event;\n const teardown = async () => {\n observer?.disconnect();\n removeClickListeners();\n };\n\n return {\n name,\n type,\n setup,\n execute,\n teardown,\n };\n};\n\nexport const stringOrUndefined = <T>(name: T): T extends string ? string : undefined => {\n /* istanbul ignore if */\n if (typeof name !== 'string') {\n // We found instances where the value of `name` is an Element and not a string.\n // Elements may have circular references and would throw an error when passed to `JSON.stringify(...)`.\n // If a non-string value is seen, assume there is no value.\n return undefined as T extends string ? string : undefined;\n }\n\n return name as T extends string ? string : undefined;\n};\n\n// Extracts the form action attribute, and normalizes it to a valid URL to preserve the previous behavior of accessing the action property directly.\nexport const extractFormAction = (form: HTMLFormElement): string | null => {\n let formDestination = form.getAttribute('action');\n try {\n // eslint-disable-next-line no-restricted-globals\n formDestination = new URL(encodeURI(formDestination ?? ''), window.location.href).href;\n } catch {\n //\n }\n return formDestination;\n};\n"]}
|
|
1
|
+
{"version":3,"file":"form-interaction-tracking.js","sourceRoot":"","sources":["../../../src/plugins/form-interaction-tracking.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,OAAO,EACP,SAAS,EACT,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,cAAc,EAA0C,MAAM,2BAA2B,CAAC;AAQnG,MAAM,CAAC,IAAM,uBAAuB,GAAG;IACrC,IAAI,QAAsC,CAAC;IAC3C,IAAI,cAAc,GAAoB,EAAE,CAAC;IAEzC,IAAM,gBAAgB,GAAG,UAAC,OAAgB,EAAE,IAAyB,EAAE,OAAmB;QACxF,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACxC,cAAc,CAAC,IAAI,CAAC;YAClB,OAAO,SAAA;YACP,IAAI,MAAA;YACJ,OAAO,SAAA;SACR,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,IAAM,oBAAoB,GAAG;QAC3B,cAAc,CAAC,OAAO,CAAC,UAAC,EAA0B;gBAAxB,OAAO,aAAA,EAAE,IAAI,UAAA,EAAE,OAAO,aAAA;YAC9C,0BAA0B;YAC1B,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QACH,cAAc,GAAG,EAAE,CAAC;IACtB,CAAC,CAAC;IAEF,IAAM,IAAI,GAAG,qDAAqD,CAAC;IACnE,IAAM,IAAI,GAAG,YAAY,CAAC;IAC1B,IAAM,KAAK,GAAG,UAAO,MAAqB,EAAE,SAAwB;;;YAC5D,sBAAsB,GAAG;gBAC7B,wBAAwB;gBACxB,IAAI,CAAC,SAAS,EAAE;oBACd,qEAAqE;oBACrE,MAAM,CAAC,cAAc,CAAC,IAAI,CACxB,8HAA8H,CAC/H,CAAC;oBACF,OAAO;iBACR;gBAED,wBAAwB;gBACxB,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;oBACnC,OAAO;iBACR;gBAED,IAAM,0BAA0B,GAAG,UAAC,IAAqB;oBACvD,IAAI,cAAc,GAAG,KAAK,CAAC;oBAE3B,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE;;wBAC/B,IAAM,eAAe,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;wBAChD,IAAI,CAAC,cAAc,EAAE;4BACnB,SAAS,CAAC,KAAK,CAAC,wBAAwB;gCACtC,GAAC,OAAO,IAAG,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;gCACrC,GAAC,SAAS,IAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;gCACzC,GAAC,gBAAgB,IAAG,eAAe;oCACnC,CAAC;yBACJ;wBACD,cAAc,GAAG,IAAI,CAAC;oBACxB,CAAC,CAAC,CAAC;oBAEH,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE;;wBAC/B,IAAM,eAAe,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;wBAChD,IAAI,CAAC,cAAc,EAAE;4BACnB,SAAS,CAAC,KAAK,CAAC,wBAAwB;gCACtC,GAAC,OAAO,IAAG,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;gCACrC,GAAC,SAAS,IAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;gCACzC,GAAC,gBAAgB,IAAG,eAAe;oCACnC,CAAC;yBACJ;wBAED,SAAS,CAAC,KAAK,CAAC,yBAAyB;4BACvC,GAAC,OAAO,IAAG,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;4BACrC,GAAC,SAAS,IAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;4BACzC,GAAC,gBAAgB,IAAG,eAAe;gCACnC,CAAC;wBACH,cAAc,GAAG,KAAK,CAAC;oBACzB,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC;gBAEF,wCAAwC;gBACxC,IAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;gBAChE,KAAK,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;gBAE1C,wDAAwD;gBACxD,0BAA0B;gBAC1B,IAAI,OAAO,gBAAgB,KAAK,WAAW,EAAE;oBAC3C,QAAQ,GAAG,IAAI,gBAAgB,CAAC,UAAC,SAAS;wBACxC,SAAS,CAAC,OAAO,CAAC,UAAC,QAAQ;4BACzB,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,UAAC,IAAI;gCAC/B,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE;oCAC5B,0BAA0B,CAAC,IAAuB,CAAC,CAAC;iCACrD;gCACD,IAAI,kBAAkB,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,gBAAgB,KAAK,UAAU,EAAE;oCAC7E,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAsB,CAAC,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;iCAChG;4BACH,CAAC,CAAC,CAAC;wBACL,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;oBAEH,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE;wBAC9B,OAAO,EAAE,IAAI;wBACb,SAAS,EAAE,IAAI;qBAChB,CAAC,CAAC;iBACJ;YACH,CAAC,CAAC;YAEF,6DAA6D;YAC7D,IAAI,QAAQ,CAAC,UAAU,KAAK,UAAU,EAAE;gBACtC,sBAAsB,EAAE,CAAC;aAC1B;iBAAM;gBAKC,WAAS,cAAc,EAAE,CAAC;gBAChC,yBAAyB;gBACzB,IAAI,QAAM,EAAE;oBACV,QAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;iBACzD;qBAAM;oBACL,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC;iBACxG;aACF;;;SACF,CAAC;IACF,IAAM,OAAO,GAAG,UAAO,KAAY;QAAK,sBAAA,KAAK,EAAA;aAAA,CAAC;IAC9C,IAAM,QAAQ,GAAG;;YACf,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,EAAE,CAAC;YACvB,oBAAoB,EAAE,CAAC;;;SACxB,CAAC;IAEF,OAAO;QACL,IAAI,MAAA;QACJ,IAAI,MAAA;QACJ,KAAK,OAAA;QACL,OAAO,SAAA;QACP,QAAQ,UAAA;KACT,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,iBAAiB,GAAG,UAAI,IAAO;IAC1C,wBAAwB;IACxB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,+EAA+E;QAC/E,uGAAuG;QACvG,2DAA2D;QAC3D,OAAO,SAAkD,CAAC;KAC3D;IAED,OAAO,IAA6C,CAAC;AACvD,CAAC,CAAC;AAEF,oJAAoJ;AACpJ,MAAM,CAAC,IAAM,iBAAiB,GAAG,UAAC,IAAqB;IACrD,IAAI,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAClD,IAAI;QACF,iDAAiD;QACjD,eAAe,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;KACxF;IAAC,WAAM;QACN,EAAE;KACH;IACD,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC","sourcesContent":["import {\n DEFAULT_FORM_START_EVENT,\n DEFAULT_FORM_SUBMIT_EVENT,\n FORM_ID,\n FORM_NAME,\n FORM_DESTINATION,\n} from '../constants';\nimport { BrowserConfig } from '../config';\nimport { getGlobalScope, Event, EnrichmentPlugin, BrowserClient } from '@amplitude/analytics-core';\n\ninterface EventListener {\n element: Element;\n type: 'change' | 'submit';\n handler: () => void;\n}\n\nexport const formInteractionTracking = (): EnrichmentPlugin => {\n let observer: MutationObserver | undefined;\n let eventListeners: EventListener[] = [];\n\n const addEventListener = (element: Element, type: 'change' | 'submit', handler: () => void) => {\n element.addEventListener(type, handler);\n eventListeners.push({\n element,\n type,\n handler,\n });\n };\n\n const removeClickListeners = () => {\n eventListeners.forEach(({ element, type, handler }) => {\n /* istanbul ignore next */\n element?.removeEventListener(type, handler);\n });\n eventListeners = [];\n };\n\n const name = '@amplitude/plugin-form-interaction-tracking-browser';\n const type = 'enrichment';\n const setup = async (config: BrowserConfig, amplitude: BrowserClient) => {\n const initializeFormTracking = () => {\n /* istanbul ignore if */\n if (!amplitude) {\n // TODO: Add required minimum version of @amplitude/analytics-browser\n config.loggerProvider.warn(\n 'Form interaction tracking requires a later version of @amplitude/analytics-browser. Form interaction events are not tracked.',\n );\n return;\n }\n\n /* istanbul ignore if */\n if (typeof document === 'undefined') {\n return;\n }\n\n const addFormInteractionListener = (form: HTMLFormElement) => {\n let hasFormChanged = false;\n\n addEventListener(form, 'change', () => {\n const formDestination = extractFormAction(form);\n if (!hasFormChanged) {\n amplitude.track(DEFAULT_FORM_START_EVENT, {\n [FORM_ID]: stringOrUndefined(form.id),\n [FORM_NAME]: stringOrUndefined(form.name),\n [FORM_DESTINATION]: formDestination,\n });\n }\n hasFormChanged = true;\n });\n\n addEventListener(form, 'submit', () => {\n const formDestination = extractFormAction(form);\n if (!hasFormChanged) {\n amplitude.track(DEFAULT_FORM_START_EVENT, {\n [FORM_ID]: stringOrUndefined(form.id),\n [FORM_NAME]: stringOrUndefined(form.name),\n [FORM_DESTINATION]: formDestination,\n });\n }\n\n amplitude.track(DEFAULT_FORM_SUBMIT_EVENT, {\n [FORM_ID]: stringOrUndefined(form.id),\n [FORM_NAME]: stringOrUndefined(form.name),\n [FORM_DESTINATION]: formDestination,\n });\n hasFormChanged = false;\n });\n };\n\n // Adds listener to existing anchor tags\n const forms = Array.from(document.getElementsByTagName('form'));\n forms.forEach(addFormInteractionListener);\n\n // Adds listener to anchor tags added after initial load\n /* istanbul ignore else */\n if (typeof MutationObserver !== 'undefined') {\n observer = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n mutation.addedNodes.forEach((node) => {\n if (node.nodeName === 'FORM') {\n addFormInteractionListener(node as HTMLFormElement);\n }\n if ('querySelectorAll' in node && typeof node.querySelectorAll === 'function') {\n Array.from(node.querySelectorAll('form') as HTMLFormElement[]).map(addFormInteractionListener);\n }\n });\n });\n });\n\n observer.observe(document.body, {\n subtree: true,\n childList: true,\n });\n }\n };\n\n // If the document is already loaded, initialize immediately.\n if (document.readyState === 'complete') {\n initializeFormTracking();\n } else {\n // Otherwise, wait for the load event.\n // The form interaction plugin observes changes in the dom. For this to work correctly, the observer can only be setup\n // after the body is built. When Amplitude gets initialized in a script tag, the body tag is still unavailable. So register this\n // only after the window is loaded\n const window = getGlobalScope();\n /* istanbul ignore else*/\n if (window) {\n window.addEventListener('load', initializeFormTracking);\n } else {\n config.loggerProvider.debug('Form interaction tracking is not installed because global is undefined.');\n }\n }\n };\n const execute = async (event: Event) => event;\n const teardown = async () => {\n observer?.disconnect();\n removeClickListeners();\n };\n\n return {\n name,\n type,\n setup,\n execute,\n teardown,\n };\n};\n\nexport const stringOrUndefined = <T>(name: T): T extends string ? string : undefined => {\n /* istanbul ignore if */\n if (typeof name !== 'string') {\n // We found instances where the value of `name` is an Element and not a string.\n // Elements may have circular references and would throw an error when passed to `JSON.stringify(...)`.\n // If a non-string value is seen, assume there is no value.\n return undefined as T extends string ? string : undefined;\n }\n\n return name as T extends string ? string : undefined;\n};\n\n// Extracts the form action attribute, and normalizes it to a valid URL to preserve the previous behavior of accessing the action property directly.\nexport const extractFormAction = (form: HTMLFormElement): string | null => {\n let formDestination = form.getAttribute('action');\n try {\n // eslint-disable-next-line no-restricted-globals\n formDestination = new URL(encodeURI(formDestination ?? ''), window.location.href).href;\n } catch {\n //\n }\n return formDestination;\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network-connectivity-checker.js","sourceRoot":"","sources":["../../../src/plugins/network-connectivity-checker.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAA+B,MAAM,2BAA2B,CAAC;AAQxF,MAAM,CAAC,IAAM,gCAAgC,GAAG;IAC9C,IAAM,IAAI,GAAG,2CAA2C,CAAC;IACzD,IAAM,IAAI,GAAG,QAAiB,CAAC;IAC/B,IAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,IAAI,cAAc,GAAoB,EAAE,CAAC;IAEzC,IAAM,kBAAkB,GAAG,UAAC,IAA0B,EAAE,OAAmB;QACzE,IAAI,WAAW,EAAE
|
|
1
|
+
{"version":3,"file":"network-connectivity-checker.js","sourceRoot":"","sources":["../../../src/plugins/network-connectivity-checker.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAA+B,MAAM,2BAA2B,CAAC;AAQxF,MAAM,CAAC,IAAM,gCAAgC,GAAG;IAC9C,IAAM,IAAI,GAAG,2CAA2C,CAAC;IACzD,IAAM,IAAI,GAAG,QAAiB,CAAC;IAC/B,IAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,IAAI,cAAc,GAAoB,EAAE,CAAC;IAEzC,IAAM,kBAAkB,GAAG,UAAC,IAA0B,EAAE,OAAmB;QACzE,IAAI,WAAW,EAAE;YACf,WAAW,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC5C,cAAc,CAAC,IAAI,CAAC;gBAClB,IAAI,MAAA;gBACJ,OAAO,SAAA;aACR,CAAC,CAAC;SACJ;IACH,CAAC,CAAC;IAEF,IAAM,sBAAsB,GAAG;QAC7B,cAAc,CAAC,OAAO,CAAC,UAAC,EAAiB;gBAAf,IAAI,UAAA,EAAE,OAAO,aAAA;YACrC,IAAI,WAAW,EAAE;gBACf,WAAW,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;aAChD;QACH,CAAC,CAAC,CAAC;QACH,cAAc,GAAG,EAAE,CAAC;IACtB,CAAC,CAAC;IAEF,IAAM,KAAK,GAAG,UAAO,MAAqB,EAAE,SAAwB;;YAClE,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE;gBACpC,MAAM,CAAC,cAAc,CAAC,KAAK,CACzB,qFAAqF,CACtF,CAAC;gBACF,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;gBACvB,sBAAO;aACR;YAED,MAAM,CAAC,OAAO,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC;YAEnC,kBAAkB,CAAC,QAAQ,EAAE;gBAC3B,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;gBACvE,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;gBACvB,mDAAmD;gBACnD,UAAU,CAAC;oBACT,SAAS,CAAC,KAAK,EAAE,CAAC;gBACpB,CAAC,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;YAEH,kBAAkB,CAAC,SAAS,EAAE;gBAC5B,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;gBACxE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;YACxB,CAAC,CAAC,CAAC;;;SACJ,CAAC;IAEF,IAAM,QAAQ,GAAG;;YACf,sBAAsB,EAAE,CAAC;;;SAC1B,CAAC;IAEF,OAAO;QACL,IAAI,MAAA;QACJ,IAAI,MAAA;QACJ,KAAK,OAAA;QACL,QAAQ,UAAA;KACT,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { getGlobalScope, BeforePlugin, BrowserClient } from '@amplitude/analytics-core';\nimport { BrowserConfig } from 'src/config';\n\ninterface EventListener {\n type: 'online' | 'offline';\n handler: () => void;\n}\n\nexport const networkConnectivityCheckerPlugin = (): BeforePlugin => {\n const name = '@amplitude/plugin-network-checker-browser';\n const type = 'before' as const;\n const globalScope = getGlobalScope();\n let eventListeners: EventListener[] = [];\n\n const addNetworkListener = (type: 'online' | 'offline', handler: () => void) => {\n if (globalScope) {\n globalScope.addEventListener(type, handler);\n eventListeners.push({\n type,\n handler,\n });\n }\n };\n\n const removeNetworkListeners = () => {\n eventListeners.forEach(({ type, handler }) => {\n if (globalScope) {\n globalScope.removeEventListener(type, handler);\n }\n });\n eventListeners = [];\n };\n\n const setup = async (config: BrowserConfig, amplitude: BrowserClient) => {\n if (typeof navigator === 'undefined') {\n config.loggerProvider.debug(\n 'Network connectivity checker plugin is disabled because navigator is not available.',\n );\n config.offline = false;\n return;\n }\n\n config.offline = !navigator.onLine;\n\n addNetworkListener('online', () => {\n config.loggerProvider.debug('Network connectivity changed to online.');\n config.offline = false;\n // Flush immediately will cause ERR_NETWORK_CHANGED\n setTimeout(() => {\n amplitude.flush();\n }, config.flushIntervalMillis);\n });\n\n addNetworkListener('offline', () => {\n config.loggerProvider.debug('Network connectivity changed to offline.');\n config.offline = true;\n });\n };\n\n const teardown = async () => {\n removeNetworkListeners();\n };\n\n return {\n name,\n type,\n setup,\n teardown,\n };\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snippet-index.js","sourceRoot":"","sources":["../../src/snippet-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,SAAS,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,yDAAyD;AACzD,CAAC;IACC,IAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,IAAI,CAAC,WAAW,EAAE
|
|
1
|
+
{"version":3,"file":"snippet-index.js","sourceRoot":"","sources":["../../src/snippet-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,SAAS,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,yDAAyD;AACzD,CAAC;IACC,IAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAC/D,OAAO;KACR;IAED,IAAM,mBAAmB,GAAG,UAAC,YAAqB;QAChD,IAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;QAClC,IAAM,WAAW,GAAG,cAAc,EAAE,CAAC;QACrC,IAAI,WAAW,IAAI,WAAW,CAAC,SAAS,IAAI,WAAW,CAAC,SAAS,CAAC,GAAG,IAAI,YAAY,EAAE;YACrF,6DAA6D;YAC7D,aAAa;YACb,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;SACpD;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,WAAW,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,IAAI,EAAE,EAAE,SAAS,EAAE;QAC5E,cAAc,EAAE,mBAAmB;KACpC,CAAC,CAAC;IAEH,IAAI,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE;QACjC,IAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;QACvC,WAAW,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;QAC9B,kBAAkB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAErC,IAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACnE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,IAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YACtC,IAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC;YAC3G,IAAM,OAAK,GAAG,QAAQ,CAAC,EAAE,CAAC;YAC1B,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;YACjB,kBAAkB,CAAC,QAAQ,EAAE,OAAK,CAAC,CAAC;SACrC;KACF;AACH,CAAC,CAAC,EAAE,CAAC","sourcesContent":["import { getGlobalScope } from '@amplitude/analytics-core';\nimport * as amplitude from './index';\nimport { createInstance } from './browser-client-factory';\nimport { runQueuedFunctions } from './utils/snippet-helper';\n\n// https://developer.mozilla.org/en-US/docs/Glossary/IIFE\n(function () {\n const GlobalScope = getGlobalScope();\n\n if (!GlobalScope) {\n console.error('[Amplitude] Error: GlobalScope is not defined');\n return;\n }\n\n const createNamedInstance = (instanceName?: string) => {\n const instance = createInstance();\n const GlobalScope = getGlobalScope();\n if (GlobalScope && GlobalScope.amplitude && GlobalScope.amplitude._iq && instanceName) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n GlobalScope.amplitude._iq[instanceName] = instance;\n }\n return instance;\n };\n\n GlobalScope.amplitude = Object.assign(GlobalScope.amplitude || {}, amplitude, {\n createInstance: createNamedInstance,\n });\n\n if (GlobalScope.amplitude.invoked) {\n const queue = GlobalScope.amplitude._q;\n GlobalScope.amplitude._q = [];\n runQueuedFunctions(amplitude, queue);\n\n const instanceNames = Object.keys(GlobalScope.amplitude._iq) || [];\n for (let i = 0; i < instanceNames.length; i++) {\n const instanceName = instanceNames[i];\n const instance = Object.assign(GlobalScope.amplitude._iq[instanceName], createNamedInstance(instanceName));\n const queue = instance._q;\n instance._q = [];\n runQueuedFunctions(instance, queue);\n }\n }\n})();\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-storage.d.ts","sourceRoot":"","sources":["../../../src/storage/browser-storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAExE,qBAAa,cAAc,CAAC,CAAC,CAAE,YAAW,gBAAgB,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,OAAO,CAAC;gBAAR,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"browser-storage.d.ts","sourceRoot":"","sources":["../../../src/storage/browser-storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAExE,qBAAa,cAAc,CAAC,CAAC,CAAE,YAAW,gBAAgB,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,OAAO,CAAC;gBAAR,OAAO,CAAC,qBAAS;IAE/B,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAqB7B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAcxC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAIhD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAO7B"}
|
|
@@ -64,16 +64,16 @@ var BrowserStorage = /** @class */ (function () {
|
|
|
64
64
|
});
|
|
65
65
|
};
|
|
66
66
|
BrowserStorage.prototype.getRaw = function (key) {
|
|
67
|
+
var _a;
|
|
67
68
|
return __awaiter(this, void 0, void 0, function () {
|
|
68
|
-
var _a;
|
|
69
69
|
return __generator(this, function (_b) {
|
|
70
70
|
return [2 /*return*/, ((_a = this.storage) === null || _a === void 0 ? void 0 : _a.getItem(key)) || undefined];
|
|
71
71
|
});
|
|
72
72
|
});
|
|
73
73
|
};
|
|
74
74
|
BrowserStorage.prototype.set = function (key, value) {
|
|
75
|
+
var _a;
|
|
75
76
|
return __awaiter(this, void 0, void 0, function () {
|
|
76
|
-
var _a;
|
|
77
77
|
return __generator(this, function (_b) {
|
|
78
78
|
try {
|
|
79
79
|
(_a = this.storage) === null || _a === void 0 ? void 0 : _a.setItem(key, JSON.stringify(value));
|
|
@@ -86,8 +86,8 @@ var BrowserStorage = /** @class */ (function () {
|
|
|
86
86
|
});
|
|
87
87
|
};
|
|
88
88
|
BrowserStorage.prototype.remove = function (key) {
|
|
89
|
+
var _a;
|
|
89
90
|
return __awaiter(this, void 0, void 0, function () {
|
|
90
|
-
var _a;
|
|
91
91
|
return __generator(this, function (_b) {
|
|
92
92
|
try {
|
|
93
93
|
(_a = this.storage) === null || _a === void 0 ? void 0 : _a.removeItem(key);
|
|
@@ -100,8 +100,8 @@ var BrowserStorage = /** @class */ (function () {
|
|
|
100
100
|
});
|
|
101
101
|
};
|
|
102
102
|
BrowserStorage.prototype.reset = function () {
|
|
103
|
+
var _a;
|
|
103
104
|
return __awaiter(this, void 0, void 0, function () {
|
|
104
|
-
var _a;
|
|
105
105
|
return __generator(this, function (_b) {
|
|
106
106
|
try {
|
|
107
107
|
(_a = this.storage) === null || _a === void 0 ? void 0 : _a.clear();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-storage.js","sourceRoot":"","sources":["../../../src/storage/browser-storage.ts"],"names":[],"mappings":";AAEA;IACE,wBAAoB,OAAiB;QAAjB,YAAO,GAAP,OAAO,CAAU;IAAG,CAAC;IAEnC,kCAAS,GAAf;;;;;;wBACE,wBAAwB;wBACxB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE
|
|
1
|
+
{"version":3,"file":"browser-storage.js","sourceRoot":"","sources":["../../../src/storage/browser-storage.ts"],"names":[],"mappings":";AAEA;IACE,wBAAoB,OAAiB;QAAjB,YAAO,GAAP,OAAO,CAAU;IAAG,CAAC;IAEnC,kCAAS,GAAf;;;;;;wBACE,wBAAwB;wBACxB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;4BACjB,sBAAO,KAAK,EAAC;yBACd;wBAEK,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;wBAC5B,WAAW,GAAG,IAAI,cAAc,CAAS,IAAI,CAAC,OAAO,CAAC,CAAC;wBACvD,OAAO,GAAG,UAAU,CAAC;;;;wBAEzB,qBAAM,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,EAAA;;wBAAtC,SAAsC,CAAC;wBACzB,qBAAM,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAA;;wBAAtC,KAAK,GAAG,SAA8B;wBAC5C,sBAAO,KAAK,KAAK,MAAM,EAAC;;;wBAExB,0BAA0B;wBAC1B,sBAAO,KAAK,EAAC;4BAEb,qBAAM,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAA;;wBAAjC,SAAiC,CAAC;;;;;;KAErC;IAEK,4BAAG,GAAT,UAAU,GAAW;;;;;;;wBAEH,qBAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAA;;wBAA9B,KAAK,GAAG,SAAsB;wBACpC,IAAI,CAAC,KAAK,EAAE;4BACV,sBAAO,SAAS,EAAC;yBAClB;wBACD,+DAA+D;wBAC/D,sBAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAC;;;wBAEzB,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;wBACrE,sBAAO,SAAS,EAAC;;;;;KAEpB;IAEK,+BAAM,GAAZ,UAAa,GAAW;;;;gBACtB,sBAAO,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,OAAO,CAAC,GAAG,CAAC,KAAI,SAAS,EAAC;;;KAChD;IAEK,4BAAG,GAAT,UAAU,GAAW,EAAE,KAAQ;;;;gBAC7B,IAAI;oBACF,MAAA,IAAI,CAAC,OAAO,0CAAE,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;iBACnD;gBAAC,WAAM;oBACN,EAAE;iBACH;;;;KACF;IAEK,+BAAM,GAAZ,UAAa,GAAW;;;;gBACtB,IAAI;oBACF,MAAA,IAAI,CAAC,OAAO,0CAAE,UAAU,CAAC,GAAG,CAAC,CAAC;iBAC/B;gBAAC,WAAM;oBACN,EAAE;iBACH;;;;KACF;IAEK,8BAAK,GAAX;;;;gBACE,IAAI;oBACF,MAAA,IAAI,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;iBACvB;gBAAC,WAAM;oBACN,EAAE;iBACH;;;;KACF;IACH,qBAAC;AAAD,CAAC,AAjED,IAiEC","sourcesContent":["import { Storage as AmplitudeStorage } from '@amplitude/analytics-core';\n\nexport class BrowserStorage<T> implements AmplitudeStorage<T> {\n constructor(private storage?: Storage) {}\n\n async isEnabled(): Promise<boolean> {\n /* istanbul ignore if */\n if (!this.storage) {\n return false;\n }\n\n const random = String(Date.now());\n const testStorage = new BrowserStorage<string>(this.storage);\n const testKey = 'AMP_TEST';\n try {\n await testStorage.set(testKey, random);\n const value = await testStorage.get(testKey);\n return value === random;\n } catch {\n /* istanbul ignore next */\n return false;\n } finally {\n await testStorage.remove(testKey);\n }\n }\n\n async get(key: string): Promise<T | undefined> {\n try {\n const value = await this.getRaw(key);\n if (!value) {\n return undefined;\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return JSON.parse(value);\n } catch {\n console.error(`[Amplitude] Error: Could not get value from storage`);\n return undefined;\n }\n }\n\n async getRaw(key: string): Promise<string | undefined> {\n return this.storage?.getItem(key) || undefined;\n }\n\n async set(key: string, value: T): Promise<void> {\n try {\n this.storage?.setItem(key, JSON.stringify(value));\n } catch {\n //\n }\n }\n\n async remove(key: string): Promise<void> {\n try {\n this.storage?.removeItem(key);\n } catch {\n //\n }\n }\n\n async reset(): Promise<void> {\n try {\n this.storage?.clear();\n } catch {\n //\n }\n }\n}\n"]}
|
|
@@ -5,15 +5,16 @@ var MAX_ARRAY_LENGTH = 1000;
|
|
|
5
5
|
var LocalStorage = /** @class */ (function (_super) {
|
|
6
6
|
__extends(LocalStorage, _super);
|
|
7
7
|
function LocalStorage(config) {
|
|
8
|
+
var _this = this;
|
|
8
9
|
var _a;
|
|
9
|
-
|
|
10
|
+
_this = _super.call(this, (_a = getGlobalScope()) === null || _a === void 0 ? void 0 : _a.localStorage) || this;
|
|
10
11
|
_this.loggerProvider = config === null || config === void 0 ? void 0 : config.loggerProvider;
|
|
11
12
|
return _this;
|
|
12
13
|
}
|
|
13
14
|
LocalStorage.prototype.set = function (key, value) {
|
|
15
|
+
var _a;
|
|
14
16
|
return __awaiter(this, void 0, void 0, function () {
|
|
15
17
|
var droppedEventsCount;
|
|
16
|
-
var _a;
|
|
17
18
|
return __generator(this, function (_b) {
|
|
18
19
|
switch (_b.label) {
|
|
19
20
|
case 0:
|