@amplitude/analytics-client-common 2.2.3 → 2.2.5-featureremoteconfig.0

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.
@@ -1,9 +1,18 @@
1
- import { AttributionOptions, BrowserOptions, DefaultTrackingOptions, PageTrackingOptions } from '@amplitude/analytics-types';
2
- export declare const isAttributionTrackingEnabled: (defaultTracking: DefaultTrackingOptions | boolean | undefined) => boolean;
3
- export declare const isFileDownloadTrackingEnabled: (defaultTracking: DefaultTrackingOptions | boolean | undefined) => boolean;
4
- export declare const isFormInteractionTrackingEnabled: (defaultTracking: DefaultTrackingOptions | boolean | undefined) => boolean;
5
- export declare const isPageViewTrackingEnabled: (defaultTracking: DefaultTrackingOptions | boolean | undefined) => boolean;
6
- export declare const isSessionTrackingEnabled: (defaultTracking: DefaultTrackingOptions | boolean | undefined) => boolean;
1
+ import { AttributionOptions, AutocaptureOptions, BrowserOptions, PageTrackingOptions, ElementInteractionsOptions } from '@amplitude/analytics-types';
2
+ export declare const isAttributionTrackingEnabled: (autocapture: AutocaptureOptions | boolean | undefined) => boolean;
3
+ export declare const isFileDownloadTrackingEnabled: (autocapture: AutocaptureOptions | boolean | undefined) => boolean;
4
+ export declare const isFormInteractionTrackingEnabled: (autocapture: AutocaptureOptions | boolean | undefined) => boolean;
5
+ export declare const isPageViewTrackingEnabled: (autocapture: AutocaptureOptions | boolean | undefined) => boolean;
6
+ export declare const isSessionTrackingEnabled: (autocapture: AutocaptureOptions | boolean | undefined) => boolean;
7
+ /**
8
+ * Returns true if
9
+ * 1. autocapture === true
10
+ * 2. if autocapture.elementInteractions === true
11
+ * 3. if autocapture.elementInteractions === object
12
+ * otherwise returns false
13
+ */
14
+ export declare const isElementInteractionsEnabled: (autocapture: AutocaptureOptions | boolean | undefined) => boolean;
15
+ export declare const getElementInteractionsConfig: (config: BrowserOptions) => ElementInteractionsOptions | undefined;
7
16
  export declare const getPageViewTrackingConfig: (config: BrowserOptions) => PageTrackingOptions;
8
17
  export declare const getAttributionTrackingConfig: (config: BrowserOptions) => AttributionOptions;
9
18
  //# sourceMappingURL=default-tracking.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"default-tracking.d.ts","sourceRoot":"","sources":["../../src/default-tracking.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,sBAAsB,EAEtB,mBAAmB,EAEpB,MAAM,4BAA4B,CAAC;AAqBpC,eAAO,MAAM,4BAA4B,oBAAqB,sBAAsB,GAAG,OAAO,GAAG,SAAS,YACvD,CAAC;AAEpD,eAAO,MAAM,6BAA6B,oBAAqB,sBAAsB,GAAG,OAAO,GAAG,SAAS,YACtD,CAAC;AAEtD,eAAO,MAAM,gCAAgC,oBAAqB,sBAAsB,GAAG,OAAO,GAAG,SAAS,YACtD,CAAC;AAEzD,eAAO,MAAM,yBAAyB,oBAAqB,sBAAsB,GAAG,OAAO,GAAG,SAAS,YACtD,CAAC;AAElD,eAAO,MAAM,wBAAwB,oBAAqB,sBAAsB,GAAG,OAAO,GAAG,SAAS,YACtD,CAAC;AAEjD,eAAO,MAAM,yBAAyB,WAAY,cAAc,KAAG,mBAqClE,CAAC;AAEF,eAAO,MAAM,4BAA4B,WAAY,cAAc,KAAG,kBAcrE,CAAC"}
1
+ {"version":3,"file":"default-tracking.d.ts","sourceRoot":"","sources":["../../src/default-tracking.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EAEd,mBAAmB,EAEnB,0BAA0B,EAC3B,MAAM,4BAA4B,CAAC;AAkBpC,eAAO,MAAM,4BAA4B,gBAAiB,kBAAkB,GAAG,OAAO,GAAG,SAAS,YACnD,CAAC;AAEhD,eAAO,MAAM,6BAA6B,gBAAiB,kBAAkB,GAAG,OAAO,GAAG,SAAS,YAClD,CAAC;AAElD,eAAO,MAAM,gCAAgC,gBAAiB,kBAAkB,GAAG,OAAO,GAAG,SAAS,YAClD,CAAC;AAErD,eAAO,MAAM,yBAAyB,gBAAiB,kBAAkB,GAAG,OAAO,GAAG,SAAS,YAClD,CAAC;AAE9C,eAAO,MAAM,wBAAwB,gBAAiB,kBAAkB,GAAG,OAAO,GAAG,SAAS,YAClD,CAAC;AAE7C;;;;;;GAMG;AACH,eAAO,MAAM,4BAA4B,gBAAiB,kBAAkB,GAAG,OAAO,GAAG,SAAS,KAAG,OAapG,CAAC;AAEF,eAAO,MAAM,4BAA4B,WAAY,cAAc,KAAG,0BAA0B,GAAG,SASlG,CAAC;AAEF,eAAO,MAAM,yBAAyB,WAAY,cAAc,KAAG,mBAqClE,CAAC;AAEF,eAAO,MAAM,4BAA4B,WAAY,cAAc,KAAG,kBAcrE,CAAC"}
@@ -1,39 +1,66 @@
1
1
  Object.defineProperty(exports, "__esModule", { value: true });
2
- exports.getAttributionTrackingConfig = exports.getPageViewTrackingConfig = exports.isSessionTrackingEnabled = exports.isPageViewTrackingEnabled = exports.isFormInteractionTrackingEnabled = exports.isFileDownloadTrackingEnabled = exports.isAttributionTrackingEnabled = void 0;
2
+ exports.getAttributionTrackingConfig = exports.getPageViewTrackingConfig = exports.getElementInteractionsConfig = exports.isElementInteractionsEnabled = exports.isSessionTrackingEnabled = exports.isPageViewTrackingEnabled = exports.isFormInteractionTrackingEnabled = exports.isFileDownloadTrackingEnabled = exports.isAttributionTrackingEnabled = void 0;
3
3
  var tslib_1 = require("tslib");
4
4
  /**
5
- * Returns false if defaultTracking === false or if defaultTracking[event],
5
+ * Returns false if autocapture === false or if autocapture[event],
6
6
  * otherwise returns true
7
7
  */
8
- var isTrackingEnabled = function (defaultTracking, event) {
9
- if (typeof defaultTracking === 'boolean') {
10
- return defaultTracking;
8
+ var isTrackingEnabled = function (autocapture, event) {
9
+ if (typeof autocapture === 'boolean') {
10
+ return autocapture;
11
11
  }
12
- if ((defaultTracking === null || defaultTracking === void 0 ? void 0 : defaultTracking[event]) === false) {
12
+ if ((autocapture === null || autocapture === void 0 ? void 0 : autocapture[event]) === false) {
13
13
  return false;
14
14
  }
15
15
  return true;
16
16
  };
17
- var isAttributionTrackingEnabled = function (defaultTracking) {
18
- return isTrackingEnabled(defaultTracking, 'attribution');
17
+ var isAttributionTrackingEnabled = function (autocapture) {
18
+ return isTrackingEnabled(autocapture, 'attribution');
19
19
  };
20
20
  exports.isAttributionTrackingEnabled = isAttributionTrackingEnabled;
21
- var isFileDownloadTrackingEnabled = function (defaultTracking) {
22
- return isTrackingEnabled(defaultTracking, 'fileDownloads');
21
+ var isFileDownloadTrackingEnabled = function (autocapture) {
22
+ return isTrackingEnabled(autocapture, 'fileDownloads');
23
23
  };
24
24
  exports.isFileDownloadTrackingEnabled = isFileDownloadTrackingEnabled;
25
- var isFormInteractionTrackingEnabled = function (defaultTracking) {
26
- return isTrackingEnabled(defaultTracking, 'formInteractions');
25
+ var isFormInteractionTrackingEnabled = function (autocapture) {
26
+ return isTrackingEnabled(autocapture, 'formInteractions');
27
27
  };
28
28
  exports.isFormInteractionTrackingEnabled = isFormInteractionTrackingEnabled;
29
- var isPageViewTrackingEnabled = function (defaultTracking) {
30
- return isTrackingEnabled(defaultTracking, 'pageViews');
29
+ var isPageViewTrackingEnabled = function (autocapture) {
30
+ return isTrackingEnabled(autocapture, 'pageViews');
31
31
  };
32
32
  exports.isPageViewTrackingEnabled = isPageViewTrackingEnabled;
33
- var isSessionTrackingEnabled = function (defaultTracking) {
34
- return isTrackingEnabled(defaultTracking, 'sessions');
33
+ var isSessionTrackingEnabled = function (autocapture) {
34
+ return isTrackingEnabled(autocapture, 'sessions');
35
35
  };
36
36
  exports.isSessionTrackingEnabled = isSessionTrackingEnabled;
37
+ /**
38
+ * Returns true if
39
+ * 1. autocapture === true
40
+ * 2. if autocapture.elementInteractions === true
41
+ * 3. if autocapture.elementInteractions === object
42
+ * otherwise returns false
43
+ */
44
+ var isElementInteractionsEnabled = function (autocapture) {
45
+ if (typeof autocapture === 'boolean') {
46
+ return autocapture;
47
+ }
48
+ if (typeof autocapture === 'object' &&
49
+ (autocapture.elementInteractions === true || typeof autocapture.elementInteractions === 'object')) {
50
+ return true;
51
+ }
52
+ return false;
53
+ };
54
+ exports.isElementInteractionsEnabled = isElementInteractionsEnabled;
55
+ var getElementInteractionsConfig = function (config) {
56
+ if ((0, exports.isElementInteractionsEnabled)(config.autocapture) &&
57
+ typeof config.autocapture === 'object' &&
58
+ typeof config.autocapture.elementInteractions === 'object') {
59
+ return config.autocapture.elementInteractions;
60
+ }
61
+ return undefined;
62
+ };
63
+ exports.getElementInteractionsConfig = getElementInteractionsConfig;
37
64
  var getPageViewTrackingConfig = function (config) {
38
65
  var trackOn = function () { return false; };
39
66
  var trackHistoryChanges = undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"default-tracking.js","sourceRoot":"","sources":["../../src/default-tracking.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AttributionOptions,\n BrowserOptions,\n DefaultTrackingOptions,\n PageTrackingHistoryChanges,\n PageTrackingOptions,\n PageTrackingTrackOn,\n} from '@amplitude/analytics-types';\n\n/**\n * Returns false if defaultTracking === false or if defaultTracking[event],\n * otherwise returns true\n */\nconst isTrackingEnabled = (\n defaultTracking: DefaultTrackingOptions | boolean | undefined,\n event: keyof DefaultTrackingOptions,\n) => {\n if (typeof defaultTracking === 'boolean') {\n return defaultTracking;\n }\n\n if (defaultTracking?.[event] === false) {\n return false;\n }\n\n return true;\n};\n\nexport const isAttributionTrackingEnabled = (defaultTracking: DefaultTrackingOptions | boolean | undefined) =>\n isTrackingEnabled(defaultTracking, 'attribution');\n\nexport const isFileDownloadTrackingEnabled = (defaultTracking: DefaultTrackingOptions | boolean | undefined) =>\n isTrackingEnabled(defaultTracking, 'fileDownloads');\n\nexport const isFormInteractionTrackingEnabled = (defaultTracking: DefaultTrackingOptions | boolean | undefined) =>\n isTrackingEnabled(defaultTracking, 'formInteractions');\n\nexport const isPageViewTrackingEnabled = (defaultTracking: DefaultTrackingOptions | boolean | undefined) =>\n isTrackingEnabled(defaultTracking, 'pageViews');\n\nexport const isSessionTrackingEnabled = (defaultTracking: DefaultTrackingOptions | boolean | undefined) =>\n isTrackingEnabled(defaultTracking, 'sessions');\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
+ {"version":3,"file":"default-tracking.js","sourceRoot":"","sources":["../../src/default-tracking.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AttributionOptions,\n AutocaptureOptions,\n BrowserOptions,\n PageTrackingHistoryChanges,\n PageTrackingOptions,\n PageTrackingTrackOn,\n ElementInteractionsOptions,\n} from '@amplitude/analytics-types';\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"]}
@@ -13,5 +13,5 @@ export { getAnalyticsConnector, setConnectorDeviceId, setConnectorUserId } from
13
13
  export { IdentityEventSender } from './plugins/identity';
14
14
  export { getLanguage } from './language';
15
15
  export { getGlobalScope } from './global-scope';
16
- export { getPageViewTrackingConfig, getAttributionTrackingConfig, isAttributionTrackingEnabled, isFileDownloadTrackingEnabled, isFormInteractionTrackingEnabled, isPageViewTrackingEnabled, isSessionTrackingEnabled, } from './default-tracking';
16
+ export { getPageViewTrackingConfig, getAttributionTrackingConfig, getElementInteractionsConfig, isAttributionTrackingEnabled, isFileDownloadTrackingEnabled, isFormInteractionTrackingEnabled, isPageViewTrackingEnabled, isSessionTrackingEnabled, isElementInteractionsEnabled, } from './default-tracking';
17
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EACL,OAAO,EACP,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACxG,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,4BAA4B,EAC5B,6BAA6B,EAC7B,gCAAgC,EAChC,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EACL,OAAO,EACP,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACxG,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,4BAA4B,EAC5B,4BAA4B,EAC5B,6BAA6B,EAC7B,gCAAgC,EAChC,yBAAyB,EACzB,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC"}
package/lib/cjs/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, "__esModule", { value: true });
2
- exports.isSessionTrackingEnabled = exports.isPageViewTrackingEnabled = exports.isFormInteractionTrackingEnabled = exports.isFileDownloadTrackingEnabled = exports.isAttributionTrackingEnabled = exports.getAttributionTrackingConfig = exports.getPageViewTrackingConfig = exports.getGlobalScope = exports.getLanguage = exports.IdentityEventSender = exports.setConnectorUserId = exports.setConnectorDeviceId = exports.getAnalyticsConnector = exports.FetchTransport = exports.CookieStorage = exports.getStorageKey = exports.getOldCookieName = exports.getCookieName = exports.isNewSession = exports.getQueryParams = exports.BASE_CAMPAIGN = exports.WebAttribution = exports.getDefaultExcludedReferrers = exports.createCampaignEvent = exports.isExcludedReferrer = exports.isNewCampaign = exports.CampaignTracker = exports.CampaignParser = void 0;
2
+ exports.isElementInteractionsEnabled = exports.isSessionTrackingEnabled = exports.isPageViewTrackingEnabled = exports.isFormInteractionTrackingEnabled = exports.isFileDownloadTrackingEnabled = exports.isAttributionTrackingEnabled = exports.getElementInteractionsConfig = exports.getAttributionTrackingConfig = exports.getPageViewTrackingConfig = exports.getGlobalScope = exports.getLanguage = exports.IdentityEventSender = exports.setConnectorUserId = exports.setConnectorDeviceId = exports.getAnalyticsConnector = exports.FetchTransport = exports.CookieStorage = exports.getStorageKey = exports.getOldCookieName = exports.getCookieName = exports.isNewSession = exports.getQueryParams = exports.BASE_CAMPAIGN = exports.WebAttribution = exports.getDefaultExcludedReferrers = exports.createCampaignEvent = exports.isExcludedReferrer = exports.isNewCampaign = exports.CampaignTracker = exports.CampaignParser = void 0;
3
3
  var campaign_parser_1 = require("./attribution/campaign-parser");
4
4
  Object.defineProperty(exports, "CampaignParser", { enumerable: true, get: function () { return campaign_parser_1.CampaignParser; } });
5
5
  var campaign_tracker_1 = require("./attribution/campaign-tracker");
@@ -39,9 +39,11 @@ Object.defineProperty(exports, "getGlobalScope", { enumerable: true, get: functi
39
39
  var default_tracking_1 = require("./default-tracking");
40
40
  Object.defineProperty(exports, "getPageViewTrackingConfig", { enumerable: true, get: function () { return default_tracking_1.getPageViewTrackingConfig; } });
41
41
  Object.defineProperty(exports, "getAttributionTrackingConfig", { enumerable: true, get: function () { return default_tracking_1.getAttributionTrackingConfig; } });
42
+ Object.defineProperty(exports, "getElementInteractionsConfig", { enumerable: true, get: function () { return default_tracking_1.getElementInteractionsConfig; } });
42
43
  Object.defineProperty(exports, "isAttributionTrackingEnabled", { enumerable: true, get: function () { return default_tracking_1.isAttributionTrackingEnabled; } });
43
44
  Object.defineProperty(exports, "isFileDownloadTrackingEnabled", { enumerable: true, get: function () { return default_tracking_1.isFileDownloadTrackingEnabled; } });
44
45
  Object.defineProperty(exports, "isFormInteractionTrackingEnabled", { enumerable: true, get: function () { return default_tracking_1.isFormInteractionTrackingEnabled; } });
45
46
  Object.defineProperty(exports, "isPageViewTrackingEnabled", { enumerable: true, get: function () { return default_tracking_1.isPageViewTrackingEnabled; } });
46
47
  Object.defineProperty(exports, "isSessionTrackingEnabled", { enumerable: true, get: function () { return default_tracking_1.isSessionTrackingEnabled; } });
48
+ Object.defineProperty(exports, "isElementInteractionsEnabled", { enumerable: true, get: function () { return default_tracking_1.isElementInteractionsEnabled; } });
47
49
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;AAAA,iEAA+D;AAAtD,iHAAA,cAAc,OAAA;AACvB,mEAAiE;AAAxD,mHAAA,eAAe,OAAA;AACxB,iDAM+B;AAJ7B,wGAAA,aAAa,OAAA;AACb,6GAAA,kBAAkB,OAAA;AAClB,8GAAA,mBAAmB,OAAA;AACnB,sHAAA,2BAA2B,OAAA;AAE7B,iEAA+D;AAAtD,iHAAA,cAAc,OAAA;AACvB,qDAAwD;AAA/C,0GAAA,aAAa,OAAA;AACtB,+CAAgD;AAAvC,8GAAA,cAAc,OAAA;AACvB,qCAAyC;AAAhC,uGAAA,YAAY,OAAA;AACrB,6CAAgE;AAAvD,4GAAA,aAAa,OAAA;AAAE,+GAAA,gBAAgB,OAAA;AACxC,6CAAkD;AAAzC,wGAAA,aAAa,OAAA;AACtB,2CAAiD;AAAxC,uGAAA,aAAa,OAAA;AACtB,4CAAoD;AAA3C,uGAAA,cAAc,OAAA;AACvB,6DAAwG;AAA/F,4HAAA,qBAAqB,OAAA;AAAE,2HAAA,oBAAoB,OAAA;AAAE,yHAAA,kBAAkB,OAAA;AACxE,+CAAyD;AAAhD,+GAAA,mBAAmB,OAAA;AAC5B,uCAAyC;AAAhC,uGAAA,WAAW,OAAA;AACpB,+CAAgD;AAAvC,8GAAA,cAAc,OAAA;AACvB,uDAQ4B;AAP1B,6HAAA,yBAAyB,OAAA;AACzB,gIAAA,4BAA4B,OAAA;AAC5B,gIAAA,4BAA4B,OAAA;AAC5B,iIAAA,6BAA6B,OAAA;AAC7B,oIAAA,gCAAgC,OAAA;AAChC,6HAAA,yBAAyB,OAAA;AACzB,4HAAA,wBAAwB,OAAA","sourcesContent":["export { CampaignParser } from './attribution/campaign-parser';\nexport { CampaignTracker } from './attribution/campaign-tracker';\nexport {\n Options,\n isNewCampaign,\n isExcludedReferrer,\n createCampaignEvent,\n getDefaultExcludedReferrers,\n} from './attribution/helpers';\nexport { WebAttribution } from './attribution/web-attribution';\nexport { BASE_CAMPAIGN } from './attribution/constants';\nexport { getQueryParams } from './query-params';\nexport { isNewSession } from './session';\nexport { getCookieName, getOldCookieName } from './cookie-name';\nexport { getStorageKey } from './storage/helpers';\nexport { CookieStorage } from './storage/cookie';\nexport { FetchTransport } from './transports/fetch';\nexport { getAnalyticsConnector, setConnectorDeviceId, setConnectorUserId } from './analytics-connector';\nexport { IdentityEventSender } from './plugins/identity';\nexport { getLanguage } from './language';\nexport { getGlobalScope } from './global-scope';\nexport {\n getPageViewTrackingConfig,\n getAttributionTrackingConfig,\n isAttributionTrackingEnabled,\n isFileDownloadTrackingEnabled,\n isFormInteractionTrackingEnabled,\n isPageViewTrackingEnabled,\n isSessionTrackingEnabled,\n} from './default-tracking';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;AAAA,iEAA+D;AAAtD,iHAAA,cAAc,OAAA;AACvB,mEAAiE;AAAxD,mHAAA,eAAe,OAAA;AACxB,iDAM+B;AAJ7B,wGAAA,aAAa,OAAA;AACb,6GAAA,kBAAkB,OAAA;AAClB,8GAAA,mBAAmB,OAAA;AACnB,sHAAA,2BAA2B,OAAA;AAE7B,iEAA+D;AAAtD,iHAAA,cAAc,OAAA;AACvB,qDAAwD;AAA/C,0GAAA,aAAa,OAAA;AACtB,+CAAgD;AAAvC,8GAAA,cAAc,OAAA;AACvB,qCAAyC;AAAhC,uGAAA,YAAY,OAAA;AACrB,6CAAgE;AAAvD,4GAAA,aAAa,OAAA;AAAE,+GAAA,gBAAgB,OAAA;AACxC,6CAAkD;AAAzC,wGAAA,aAAa,OAAA;AACtB,2CAAiD;AAAxC,uGAAA,aAAa,OAAA;AACtB,4CAAoD;AAA3C,uGAAA,cAAc,OAAA;AACvB,6DAAwG;AAA/F,4HAAA,qBAAqB,OAAA;AAAE,2HAAA,oBAAoB,OAAA;AAAE,yHAAA,kBAAkB,OAAA;AACxE,+CAAyD;AAAhD,+GAAA,mBAAmB,OAAA;AAC5B,uCAAyC;AAAhC,uGAAA,WAAW,OAAA;AACpB,+CAAgD;AAAvC,8GAAA,cAAc,OAAA;AACvB,uDAU4B;AAT1B,6HAAA,yBAAyB,OAAA;AACzB,gIAAA,4BAA4B,OAAA;AAC5B,gIAAA,4BAA4B,OAAA;AAC5B,gIAAA,4BAA4B,OAAA;AAC5B,iIAAA,6BAA6B,OAAA;AAC7B,oIAAA,gCAAgC,OAAA;AAChC,6HAAA,yBAAyB,OAAA;AACzB,4HAAA,wBAAwB,OAAA;AACxB,gIAAA,4BAA4B,OAAA","sourcesContent":["export { CampaignParser } from './attribution/campaign-parser';\nexport { CampaignTracker } from './attribution/campaign-tracker';\nexport {\n Options,\n isNewCampaign,\n isExcludedReferrer,\n createCampaignEvent,\n getDefaultExcludedReferrers,\n} from './attribution/helpers';\nexport { WebAttribution } from './attribution/web-attribution';\nexport { BASE_CAMPAIGN } from './attribution/constants';\nexport { getQueryParams } from './query-params';\nexport { isNewSession } from './session';\nexport { getCookieName, getOldCookieName } from './cookie-name';\nexport { getStorageKey } from './storage/helpers';\nexport { CookieStorage } from './storage/cookie';\nexport { FetchTransport } from './transports/fetch';\nexport { getAnalyticsConnector, setConnectorDeviceId, setConnectorUserId } from './analytics-connector';\nexport { IdentityEventSender } from './plugins/identity';\nexport { getLanguage } from './language';\nexport { getGlobalScope } from './global-scope';\nexport {\n getPageViewTrackingConfig,\n getAttributionTrackingConfig,\n getElementInteractionsConfig,\n isAttributionTrackingEnabled,\n isFileDownloadTrackingEnabled,\n isFormInteractionTrackingEnabled,\n isPageViewTrackingEnabled,\n isSessionTrackingEnabled,\n isElementInteractionsEnabled,\n} from './default-tracking';\n"]}
@@ -43,25 +43,25 @@ var CookieStorage = /** @class */ (function () {
43
43
  });
44
44
  };
45
45
  CookieStorage.prototype.get = function (key) {
46
+ var _a;
46
47
  return tslib_1.__awaiter(this, void 0, void 0, function () {
47
- var value;
48
- return tslib_1.__generator(this, function (_a) {
49
- switch (_a.label) {
48
+ var value, decodedValue;
49
+ return tslib_1.__generator(this, function (_b) {
50
+ switch (_b.label) {
50
51
  case 0: return [4 /*yield*/, this.getRaw(key)];
51
52
  case 1:
52
- value = _a.sent();
53
+ value = _b.sent();
53
54
  if (!value) {
54
55
  return [2 /*return*/, undefined];
55
56
  }
56
57
  try {
57
- try {
58
- value = decodeURIComponent(atob(value));
59
- }
60
- catch (_b) {
58
+ decodedValue = (_a = decodeCookiesAsDefault(value)) !== null && _a !== void 0 ? _a : decodeCookiesWithDoubleUrlEncoding(value);
59
+ if (decodedValue === undefined) {
61
60
  console.error("Amplitude Logger [Error]: Failed to decode cookie value for key: ".concat(key, ", value: ").concat(value));
61
+ return [2 /*return*/, undefined];
62
62
  }
63
63
  // eslint-disable-next-line @typescript-eslint/no-unsafe-return
64
- return [2 /*return*/, JSON.parse(value)];
64
+ return [2 /*return*/, JSON.parse(decodedValue)];
65
65
  }
66
66
  catch (_c) {
67
67
  console.error("Amplitude Logger [Error]: Failed to parse cookie value for key: ".concat(key, ", value: ").concat(value));
@@ -150,4 +150,22 @@ var CookieStorage = /** @class */ (function () {
150
150
  return CookieStorage;
151
151
  }());
152
152
  exports.CookieStorage = CookieStorage;
153
+ var decodeCookiesAsDefault = function (value) {
154
+ try {
155
+ return decodeURIComponent(atob(value));
156
+ }
157
+ catch (_a) {
158
+ return undefined;
159
+ }
160
+ };
161
+ var decodeCookiesWithDoubleUrlEncoding = function (value) {
162
+ // Modern Ruby (v7+) automatically encodes cookies with URL encoding by
163
+ // https://api.rubyonrails.org/classes/ActionDispatch/Cookies.html
164
+ try {
165
+ return decodeURIComponent(atob(decodeURIComponent(value)));
166
+ }
167
+ catch (_a) {
168
+ return undefined;
169
+ }
170
+ };
153
171
  //# sourceMappingURL=cookie.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cookie.js","sourceRoot":"","sources":["../../../src/storage/cookie.ts"],"names":[],"mappings":"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","sourcesContent":["import { Storage, CookieStorageOptions } from '@amplitude/analytics-types';\nimport { getGlobalScope } from '../global-scope';\n\nexport class CookieStorage<T> implements Storage<T> {\n options: CookieStorageOptions;\n private static testValue: undefined | string;\n\n constructor(options?: CookieStorageOptions) {\n this.options = { ...options };\n }\n\n async isEnabled(): Promise<boolean> {\n /* istanbul ignore if */\n if (!getGlobalScope()) {\n return false;\n }\n\n CookieStorage.testValue = String(Date.now());\n const testStrorage = new CookieStorage<string>(this.options);\n const testKey = 'AMP_TEST';\n try {\n await testStrorage.set(testKey, CookieStorage.testValue);\n const value = await testStrorage.get(testKey);\n return value === CookieStorage.testValue;\n } catch {\n /* istanbul ignore next */\n return false;\n } finally {\n await testStrorage.remove(testKey);\n }\n }\n\n async get(key: string): Promise<T | undefined> {\n let value = await this.getRaw(key);\n if (!value) {\n return undefined;\n }\n try {\n try {\n value = decodeURIComponent(atob(value));\n } catch {\n console.error(`Amplitude Logger [Error]: Failed to decode cookie value for key: ${key}, value: ${value}`);\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return JSON.parse(value);\n } catch {\n console.error(`Amplitude Logger [Error]: Failed to parse cookie value for key: ${key}, value: ${value}`);\n return undefined;\n }\n }\n\n async getRaw(key: string): Promise<string | undefined> {\n const globalScope = getGlobalScope();\n const cookie = globalScope?.document?.cookie.split('; ') ?? [];\n const match = cookie.find((c) => c.indexOf(key + '=') === 0);\n if (!match) {\n return undefined;\n }\n return match.substring(key.length + 1);\n }\n\n async set(key: string, value: T | null): Promise<void> {\n try {\n const expirationDays = this.options.expirationDays ?? 0;\n const expires = value !== null ? expirationDays : -1;\n let expireDate: Date | undefined = undefined;\n if (expires) {\n const date = new Date();\n date.setTime(date.getTime() + expires * 24 * 60 * 60 * 1000);\n expireDate = date;\n }\n let str = `${key}=${btoa(encodeURIComponent(JSON.stringify(value)))}`;\n if (expireDate) {\n str += `; expires=${expireDate.toUTCString()}`;\n }\n str += '; path=/';\n if (this.options.domain) {\n str += `; domain=${this.options.domain}`;\n }\n if (this.options.secure) {\n str += '; Secure';\n }\n if (this.options.sameSite) {\n str += `; SameSite=${this.options.sameSite}`;\n }\n const globalScope = getGlobalScope();\n if (globalScope) {\n globalScope.document.cookie = str;\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n console.error(`Amplitude Logger [Error]: Failed to set cookie for key: ${key}. Error: ${errorMessage}`);\n }\n }\n\n async remove(key: string): Promise<void> {\n await this.set(key, null);\n }\n\n async reset(): Promise<void> {\n return;\n }\n}\n"]}
1
+ {"version":3,"file":"cookie.js","sourceRoot":"","sources":["../../../src/storage/cookie.ts"],"names":[],"mappings":"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","sourcesContent":["import { Storage, CookieStorageOptions } from '@amplitude/analytics-types';\nimport { getGlobalScope } from '../global-scope';\n\nexport class CookieStorage<T> implements Storage<T> {\n options: CookieStorageOptions;\n private static testValue: undefined | string;\n\n constructor(options?: CookieStorageOptions) {\n this.options = { ...options };\n }\n\n async isEnabled(): Promise<boolean> {\n /* istanbul ignore if */\n if (!getGlobalScope()) {\n return false;\n }\n\n CookieStorage.testValue = String(Date.now());\n const testStrorage = new CookieStorage<string>(this.options);\n const testKey = 'AMP_TEST';\n try {\n await testStrorage.set(testKey, CookieStorage.testValue);\n const value = await testStrorage.get(testKey);\n return value === CookieStorage.testValue;\n } catch {\n /* istanbul ignore next */\n return false;\n } finally {\n await testStrorage.remove(testKey);\n }\n }\n\n async get(key: string): Promise<T | undefined> {\n const value = await this.getRaw(key);\n if (!value) {\n return undefined;\n }\n try {\n const decodedValue = decodeCookiesAsDefault(value) ?? decodeCookiesWithDoubleUrlEncoding(value);\n if (decodedValue === undefined) {\n console.error(`Amplitude Logger [Error]: Failed to decode cookie value for key: ${key}, value: ${value}`);\n return undefined;\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return JSON.parse(decodedValue);\n } catch {\n console.error(`Amplitude Logger [Error]: Failed to parse cookie value for key: ${key}, value: ${value}`);\n return undefined;\n }\n }\n\n async getRaw(key: string): Promise<string | undefined> {\n const globalScope = getGlobalScope();\n const cookie = globalScope?.document?.cookie.split('; ') ?? [];\n const match = cookie.find((c) => c.indexOf(key + '=') === 0);\n if (!match) {\n return undefined;\n }\n return match.substring(key.length + 1);\n }\n\n async set(key: string, value: T | null): Promise<void> {\n try {\n const expirationDays = this.options.expirationDays ?? 0;\n const expires = value !== null ? expirationDays : -1;\n let expireDate: Date | undefined = undefined;\n if (expires) {\n const date = new Date();\n date.setTime(date.getTime() + expires * 24 * 60 * 60 * 1000);\n expireDate = date;\n }\n let str = `${key}=${btoa(encodeURIComponent(JSON.stringify(value)))}`;\n if (expireDate) {\n str += `; expires=${expireDate.toUTCString()}`;\n }\n str += '; path=/';\n if (this.options.domain) {\n str += `; domain=${this.options.domain}`;\n }\n if (this.options.secure) {\n str += '; Secure';\n }\n if (this.options.sameSite) {\n str += `; SameSite=${this.options.sameSite}`;\n }\n const globalScope = getGlobalScope();\n if (globalScope) {\n globalScope.document.cookie = str;\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n console.error(`Amplitude Logger [Error]: Failed to set cookie for key: ${key}. Error: ${errorMessage}`);\n }\n }\n\n async remove(key: string): Promise<void> {\n await this.set(key, null);\n }\n\n async reset(): Promise<void> {\n return;\n }\n}\n\nconst decodeCookiesAsDefault = (value: string): string | undefined => {\n try {\n return decodeURIComponent(atob(value));\n } catch {\n return undefined;\n }\n};\n\nconst decodeCookiesWithDoubleUrlEncoding = (value: string): string | undefined => {\n // Modern Ruby (v7+) automatically encodes cookies with URL encoding by\n // https://api.rubyonrails.org/classes/ActionDispatch/Cookies.html\n try {\n return decodeURIComponent(atob(decodeURIComponent(value)));\n } catch {\n return undefined;\n }\n};\n"]}
@@ -1,9 +1,18 @@
1
- import { AttributionOptions, BrowserOptions, DefaultTrackingOptions, PageTrackingOptions } from '@amplitude/analytics-types';
2
- export declare const isAttributionTrackingEnabled: (defaultTracking: DefaultTrackingOptions | boolean | undefined) => boolean;
3
- export declare const isFileDownloadTrackingEnabled: (defaultTracking: DefaultTrackingOptions | boolean | undefined) => boolean;
4
- export declare const isFormInteractionTrackingEnabled: (defaultTracking: DefaultTrackingOptions | boolean | undefined) => boolean;
5
- export declare const isPageViewTrackingEnabled: (defaultTracking: DefaultTrackingOptions | boolean | undefined) => boolean;
6
- export declare const isSessionTrackingEnabled: (defaultTracking: DefaultTrackingOptions | boolean | undefined) => boolean;
1
+ import { AttributionOptions, AutocaptureOptions, BrowserOptions, PageTrackingOptions, ElementInteractionsOptions } from '@amplitude/analytics-types';
2
+ export declare const isAttributionTrackingEnabled: (autocapture: AutocaptureOptions | boolean | undefined) => boolean;
3
+ export declare const isFileDownloadTrackingEnabled: (autocapture: AutocaptureOptions | boolean | undefined) => boolean;
4
+ export declare const isFormInteractionTrackingEnabled: (autocapture: AutocaptureOptions | boolean | undefined) => boolean;
5
+ export declare const isPageViewTrackingEnabled: (autocapture: AutocaptureOptions | boolean | undefined) => boolean;
6
+ export declare const isSessionTrackingEnabled: (autocapture: AutocaptureOptions | boolean | undefined) => boolean;
7
+ /**
8
+ * Returns true if
9
+ * 1. autocapture === true
10
+ * 2. if autocapture.elementInteractions === true
11
+ * 3. if autocapture.elementInteractions === object
12
+ * otherwise returns false
13
+ */
14
+ export declare const isElementInteractionsEnabled: (autocapture: AutocaptureOptions | boolean | undefined) => boolean;
15
+ export declare const getElementInteractionsConfig: (config: BrowserOptions) => ElementInteractionsOptions | undefined;
7
16
  export declare const getPageViewTrackingConfig: (config: BrowserOptions) => PageTrackingOptions;
8
17
  export declare const getAttributionTrackingConfig: (config: BrowserOptions) => AttributionOptions;
9
18
  //# sourceMappingURL=default-tracking.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"default-tracking.d.ts","sourceRoot":"","sources":["../../src/default-tracking.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,sBAAsB,EAEtB,mBAAmB,EAEpB,MAAM,4BAA4B,CAAC;AAqBpC,eAAO,MAAM,4BAA4B,oBAAqB,sBAAsB,GAAG,OAAO,GAAG,SAAS,YACvD,CAAC;AAEpD,eAAO,MAAM,6BAA6B,oBAAqB,sBAAsB,GAAG,OAAO,GAAG,SAAS,YACtD,CAAC;AAEtD,eAAO,MAAM,gCAAgC,oBAAqB,sBAAsB,GAAG,OAAO,GAAG,SAAS,YACtD,CAAC;AAEzD,eAAO,MAAM,yBAAyB,oBAAqB,sBAAsB,GAAG,OAAO,GAAG,SAAS,YACtD,CAAC;AAElD,eAAO,MAAM,wBAAwB,oBAAqB,sBAAsB,GAAG,OAAO,GAAG,SAAS,YACtD,CAAC;AAEjD,eAAO,MAAM,yBAAyB,WAAY,cAAc,KAAG,mBAqClE,CAAC;AAEF,eAAO,MAAM,4BAA4B,WAAY,cAAc,KAAG,kBAcrE,CAAC"}
1
+ {"version":3,"file":"default-tracking.d.ts","sourceRoot":"","sources":["../../src/default-tracking.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EAEd,mBAAmB,EAEnB,0BAA0B,EAC3B,MAAM,4BAA4B,CAAC;AAkBpC,eAAO,MAAM,4BAA4B,gBAAiB,kBAAkB,GAAG,OAAO,GAAG,SAAS,YACnD,CAAC;AAEhD,eAAO,MAAM,6BAA6B,gBAAiB,kBAAkB,GAAG,OAAO,GAAG,SAAS,YAClD,CAAC;AAElD,eAAO,MAAM,gCAAgC,gBAAiB,kBAAkB,GAAG,OAAO,GAAG,SAAS,YAClD,CAAC;AAErD,eAAO,MAAM,yBAAyB,gBAAiB,kBAAkB,GAAG,OAAO,GAAG,SAAS,YAClD,CAAC;AAE9C,eAAO,MAAM,wBAAwB,gBAAiB,kBAAkB,GAAG,OAAO,GAAG,SAAS,YAClD,CAAC;AAE7C;;;;;;GAMG;AACH,eAAO,MAAM,4BAA4B,gBAAiB,kBAAkB,GAAG,OAAO,GAAG,SAAS,KAAG,OAapG,CAAC;AAEF,eAAO,MAAM,4BAA4B,WAAY,cAAc,KAAG,0BAA0B,GAAG,SASlG,CAAC;AAEF,eAAO,MAAM,yBAAyB,WAAY,cAAc,KAAG,mBAqClE,CAAC;AAEF,eAAO,MAAM,4BAA4B,WAAY,cAAc,KAAG,kBAcrE,CAAC"}
@@ -1,31 +1,56 @@
1
1
  import { __assign } from "tslib";
2
2
  /**
3
- * Returns false if defaultTracking === false or if defaultTracking[event],
3
+ * Returns false if autocapture === false or if autocapture[event],
4
4
  * otherwise returns true
5
5
  */
6
- var isTrackingEnabled = function (defaultTracking, event) {
7
- if (typeof defaultTracking === 'boolean') {
8
- return defaultTracking;
6
+ var isTrackingEnabled = function (autocapture, event) {
7
+ if (typeof autocapture === 'boolean') {
8
+ return autocapture;
9
9
  }
10
- if ((defaultTracking === null || defaultTracking === void 0 ? void 0 : defaultTracking[event]) === false) {
10
+ if ((autocapture === null || autocapture === void 0 ? void 0 : autocapture[event]) === false) {
11
11
  return false;
12
12
  }
13
13
  return true;
14
14
  };
15
- export var isAttributionTrackingEnabled = function (defaultTracking) {
16
- return isTrackingEnabled(defaultTracking, 'attribution');
15
+ export var isAttributionTrackingEnabled = function (autocapture) {
16
+ return isTrackingEnabled(autocapture, 'attribution');
17
17
  };
18
- export var isFileDownloadTrackingEnabled = function (defaultTracking) {
19
- return isTrackingEnabled(defaultTracking, 'fileDownloads');
18
+ export var isFileDownloadTrackingEnabled = function (autocapture) {
19
+ return isTrackingEnabled(autocapture, 'fileDownloads');
20
20
  };
21
- export var isFormInteractionTrackingEnabled = function (defaultTracking) {
22
- return isTrackingEnabled(defaultTracking, 'formInteractions');
21
+ export var isFormInteractionTrackingEnabled = function (autocapture) {
22
+ return isTrackingEnabled(autocapture, 'formInteractions');
23
23
  };
24
- export var isPageViewTrackingEnabled = function (defaultTracking) {
25
- return isTrackingEnabled(defaultTracking, 'pageViews');
24
+ export var isPageViewTrackingEnabled = function (autocapture) {
25
+ return isTrackingEnabled(autocapture, 'pageViews');
26
26
  };
27
- export var isSessionTrackingEnabled = function (defaultTracking) {
28
- return isTrackingEnabled(defaultTracking, 'sessions');
27
+ export var isSessionTrackingEnabled = function (autocapture) {
28
+ return isTrackingEnabled(autocapture, 'sessions');
29
+ };
30
+ /**
31
+ * Returns true if
32
+ * 1. autocapture === true
33
+ * 2. if autocapture.elementInteractions === true
34
+ * 3. if autocapture.elementInteractions === object
35
+ * otherwise returns false
36
+ */
37
+ export var isElementInteractionsEnabled = function (autocapture) {
38
+ if (typeof autocapture === 'boolean') {
39
+ return autocapture;
40
+ }
41
+ if (typeof autocapture === 'object' &&
42
+ (autocapture.elementInteractions === true || typeof autocapture.elementInteractions === 'object')) {
43
+ return true;
44
+ }
45
+ return false;
46
+ };
47
+ export var getElementInteractionsConfig = function (config) {
48
+ if (isElementInteractionsEnabled(config.autocapture) &&
49
+ typeof config.autocapture === 'object' &&
50
+ typeof config.autocapture.elementInteractions === 'object') {
51
+ return config.autocapture.elementInteractions;
52
+ }
53
+ return undefined;
29
54
  };
30
55
  export var getPageViewTrackingConfig = function (config) {
31
56
  var trackOn = function () { return false; };
@@ -1 +1 @@
1
- {"version":3,"file":"default-tracking.js","sourceRoot":"","sources":["../../src/default-tracking.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AttributionOptions,\n BrowserOptions,\n DefaultTrackingOptions,\n PageTrackingHistoryChanges,\n PageTrackingOptions,\n PageTrackingTrackOn,\n} from '@amplitude/analytics-types';\n\n/**\n * Returns false if defaultTracking === false or if defaultTracking[event],\n * otherwise returns true\n */\nconst isTrackingEnabled = (\n defaultTracking: DefaultTrackingOptions | boolean | undefined,\n event: keyof DefaultTrackingOptions,\n) => {\n if (typeof defaultTracking === 'boolean') {\n return defaultTracking;\n }\n\n if (defaultTracking?.[event] === false) {\n return false;\n }\n\n return true;\n};\n\nexport const isAttributionTrackingEnabled = (defaultTracking: DefaultTrackingOptions | boolean | undefined) =>\n isTrackingEnabled(defaultTracking, 'attribution');\n\nexport const isFileDownloadTrackingEnabled = (defaultTracking: DefaultTrackingOptions | boolean | undefined) =>\n isTrackingEnabled(defaultTracking, 'fileDownloads');\n\nexport const isFormInteractionTrackingEnabled = (defaultTracking: DefaultTrackingOptions | boolean | undefined) =>\n isTrackingEnabled(defaultTracking, 'formInteractions');\n\nexport const isPageViewTrackingEnabled = (defaultTracking: DefaultTrackingOptions | boolean | undefined) =>\n isTrackingEnabled(defaultTracking, 'pageViews');\n\nexport const isSessionTrackingEnabled = (defaultTracking: DefaultTrackingOptions | boolean | undefined) =>\n isTrackingEnabled(defaultTracking, 'sessions');\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
+ {"version":3,"file":"default-tracking.js","sourceRoot":"","sources":["../../src/default-tracking.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AttributionOptions,\n AutocaptureOptions,\n BrowserOptions,\n PageTrackingHistoryChanges,\n PageTrackingOptions,\n PageTrackingTrackOn,\n ElementInteractionsOptions,\n} from '@amplitude/analytics-types';\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"]}
@@ -13,5 +13,5 @@ export { getAnalyticsConnector, setConnectorDeviceId, setConnectorUserId } from
13
13
  export { IdentityEventSender } from './plugins/identity';
14
14
  export { getLanguage } from './language';
15
15
  export { getGlobalScope } from './global-scope';
16
- export { getPageViewTrackingConfig, getAttributionTrackingConfig, isAttributionTrackingEnabled, isFileDownloadTrackingEnabled, isFormInteractionTrackingEnabled, isPageViewTrackingEnabled, isSessionTrackingEnabled, } from './default-tracking';
16
+ export { getPageViewTrackingConfig, getAttributionTrackingConfig, getElementInteractionsConfig, isAttributionTrackingEnabled, isFileDownloadTrackingEnabled, isFormInteractionTrackingEnabled, isPageViewTrackingEnabled, isSessionTrackingEnabled, isElementInteractionsEnabled, } from './default-tracking';
17
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EACL,OAAO,EACP,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACxG,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,4BAA4B,EAC5B,6BAA6B,EAC7B,gCAAgC,EAChC,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EACL,OAAO,EACP,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACxG,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,4BAA4B,EAC5B,4BAA4B,EAC5B,6BAA6B,EAC7B,gCAAgC,EAChC,yBAAyB,EACzB,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC"}
package/lib/esm/index.js CHANGED
@@ -13,5 +13,5 @@ export { getAnalyticsConnector, setConnectorDeviceId, setConnectorUserId } from
13
13
  export { IdentityEventSender } from './plugins/identity';
14
14
  export { getLanguage } from './language';
15
15
  export { getGlobalScope } from './global-scope';
16
- export { getPageViewTrackingConfig, getAttributionTrackingConfig, isAttributionTrackingEnabled, isFileDownloadTrackingEnabled, isFormInteractionTrackingEnabled, isPageViewTrackingEnabled, isSessionTrackingEnabled, } from './default-tracking';
16
+ export { getPageViewTrackingConfig, getAttributionTrackingConfig, getElementInteractionsConfig, isAttributionTrackingEnabled, isFileDownloadTrackingEnabled, isFormInteractionTrackingEnabled, isPageViewTrackingEnabled, isSessionTrackingEnabled, isElementInteractionsEnabled, } from './default-tracking';
17
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAEL,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACxG,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,4BAA4B,EAC5B,6BAA6B,EAC7B,gCAAgC,EAChC,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC","sourcesContent":["export { CampaignParser } from './attribution/campaign-parser';\nexport { CampaignTracker } from './attribution/campaign-tracker';\nexport {\n Options,\n isNewCampaign,\n isExcludedReferrer,\n createCampaignEvent,\n getDefaultExcludedReferrers,\n} from './attribution/helpers';\nexport { WebAttribution } from './attribution/web-attribution';\nexport { BASE_CAMPAIGN } from './attribution/constants';\nexport { getQueryParams } from './query-params';\nexport { isNewSession } from './session';\nexport { getCookieName, getOldCookieName } from './cookie-name';\nexport { getStorageKey } from './storage/helpers';\nexport { CookieStorage } from './storage/cookie';\nexport { FetchTransport } from './transports/fetch';\nexport { getAnalyticsConnector, setConnectorDeviceId, setConnectorUserId } from './analytics-connector';\nexport { IdentityEventSender } from './plugins/identity';\nexport { getLanguage } from './language';\nexport { getGlobalScope } from './global-scope';\nexport {\n getPageViewTrackingConfig,\n getAttributionTrackingConfig,\n isAttributionTrackingEnabled,\n isFileDownloadTrackingEnabled,\n isFormInteractionTrackingEnabled,\n isPageViewTrackingEnabled,\n isSessionTrackingEnabled,\n} from './default-tracking';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAEL,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACxG,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,4BAA4B,EAC5B,4BAA4B,EAC5B,6BAA6B,EAC7B,gCAAgC,EAChC,yBAAyB,EACzB,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC","sourcesContent":["export { CampaignParser } from './attribution/campaign-parser';\nexport { CampaignTracker } from './attribution/campaign-tracker';\nexport {\n Options,\n isNewCampaign,\n isExcludedReferrer,\n createCampaignEvent,\n getDefaultExcludedReferrers,\n} from './attribution/helpers';\nexport { WebAttribution } from './attribution/web-attribution';\nexport { BASE_CAMPAIGN } from './attribution/constants';\nexport { getQueryParams } from './query-params';\nexport { isNewSession } from './session';\nexport { getCookieName, getOldCookieName } from './cookie-name';\nexport { getStorageKey } from './storage/helpers';\nexport { CookieStorage } from './storage/cookie';\nexport { FetchTransport } from './transports/fetch';\nexport { getAnalyticsConnector, setConnectorDeviceId, setConnectorUserId } from './analytics-connector';\nexport { IdentityEventSender } from './plugins/identity';\nexport { getLanguage } from './language';\nexport { getGlobalScope } from './global-scope';\nexport {\n getPageViewTrackingConfig,\n getAttributionTrackingConfig,\n getElementInteractionsConfig,\n isAttributionTrackingEnabled,\n isFileDownloadTrackingEnabled,\n isFormInteractionTrackingEnabled,\n isPageViewTrackingEnabled,\n isSessionTrackingEnabled,\n isElementInteractionsEnabled,\n} from './default-tracking';\n"]}
@@ -41,25 +41,25 @@ var CookieStorage = /** @class */ (function () {
41
41
  });
42
42
  };
43
43
  CookieStorage.prototype.get = function (key) {
44
+ var _a;
44
45
  return __awaiter(this, void 0, void 0, function () {
45
- var value;
46
- return __generator(this, function (_a) {
47
- switch (_a.label) {
46
+ var value, decodedValue;
47
+ return __generator(this, function (_b) {
48
+ switch (_b.label) {
48
49
  case 0: return [4 /*yield*/, this.getRaw(key)];
49
50
  case 1:
50
- value = _a.sent();
51
+ value = _b.sent();
51
52
  if (!value) {
52
53
  return [2 /*return*/, undefined];
53
54
  }
54
55
  try {
55
- try {
56
- value = decodeURIComponent(atob(value));
57
- }
58
- catch (_b) {
56
+ decodedValue = (_a = decodeCookiesAsDefault(value)) !== null && _a !== void 0 ? _a : decodeCookiesWithDoubleUrlEncoding(value);
57
+ if (decodedValue === undefined) {
59
58
  console.error("Amplitude Logger [Error]: Failed to decode cookie value for key: ".concat(key, ", value: ").concat(value));
59
+ return [2 /*return*/, undefined];
60
60
  }
61
61
  // eslint-disable-next-line @typescript-eslint/no-unsafe-return
62
- return [2 /*return*/, JSON.parse(value)];
62
+ return [2 /*return*/, JSON.parse(decodedValue)];
63
63
  }
64
64
  catch (_c) {
65
65
  console.error("Amplitude Logger [Error]: Failed to parse cookie value for key: ".concat(key, ", value: ").concat(value));
@@ -148,4 +148,22 @@ var CookieStorage = /** @class */ (function () {
148
148
  return CookieStorage;
149
149
  }());
150
150
  export { CookieStorage };
151
+ var decodeCookiesAsDefault = function (value) {
152
+ try {
153
+ return decodeURIComponent(atob(value));
154
+ }
155
+ catch (_a) {
156
+ return undefined;
157
+ }
158
+ };
159
+ var decodeCookiesWithDoubleUrlEncoding = function (value) {
160
+ // Modern Ruby (v7+) automatically encodes cookies with URL encoding by
161
+ // https://api.rubyonrails.org/classes/ActionDispatch/Cookies.html
162
+ try {
163
+ return decodeURIComponent(atob(decodeURIComponent(value)));
164
+ }
165
+ catch (_a) {
166
+ return undefined;
167
+ }
168
+ };
151
169
  //# sourceMappingURL=cookie.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cookie.js","sourceRoot":"","sources":["../../../src/storage/cookie.ts"],"names":[],"mappings":"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","sourcesContent":["import { Storage, CookieStorageOptions } from '@amplitude/analytics-types';\nimport { getGlobalScope } from '../global-scope';\n\nexport class CookieStorage<T> implements Storage<T> {\n options: CookieStorageOptions;\n private static testValue: undefined | string;\n\n constructor(options?: CookieStorageOptions) {\n this.options = { ...options };\n }\n\n async isEnabled(): Promise<boolean> {\n /* istanbul ignore if */\n if (!getGlobalScope()) {\n return false;\n }\n\n CookieStorage.testValue = String(Date.now());\n const testStrorage = new CookieStorage<string>(this.options);\n const testKey = 'AMP_TEST';\n try {\n await testStrorage.set(testKey, CookieStorage.testValue);\n const value = await testStrorage.get(testKey);\n return value === CookieStorage.testValue;\n } catch {\n /* istanbul ignore next */\n return false;\n } finally {\n await testStrorage.remove(testKey);\n }\n }\n\n async get(key: string): Promise<T | undefined> {\n let value = await this.getRaw(key);\n if (!value) {\n return undefined;\n }\n try {\n try {\n value = decodeURIComponent(atob(value));\n } catch {\n console.error(`Amplitude Logger [Error]: Failed to decode cookie value for key: ${key}, value: ${value}`);\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return JSON.parse(value);\n } catch {\n console.error(`Amplitude Logger [Error]: Failed to parse cookie value for key: ${key}, value: ${value}`);\n return undefined;\n }\n }\n\n async getRaw(key: string): Promise<string | undefined> {\n const globalScope = getGlobalScope();\n const cookie = globalScope?.document?.cookie.split('; ') ?? [];\n const match = cookie.find((c) => c.indexOf(key + '=') === 0);\n if (!match) {\n return undefined;\n }\n return match.substring(key.length + 1);\n }\n\n async set(key: string, value: T | null): Promise<void> {\n try {\n const expirationDays = this.options.expirationDays ?? 0;\n const expires = value !== null ? expirationDays : -1;\n let expireDate: Date | undefined = undefined;\n if (expires) {\n const date = new Date();\n date.setTime(date.getTime() + expires * 24 * 60 * 60 * 1000);\n expireDate = date;\n }\n let str = `${key}=${btoa(encodeURIComponent(JSON.stringify(value)))}`;\n if (expireDate) {\n str += `; expires=${expireDate.toUTCString()}`;\n }\n str += '; path=/';\n if (this.options.domain) {\n str += `; domain=${this.options.domain}`;\n }\n if (this.options.secure) {\n str += '; Secure';\n }\n if (this.options.sameSite) {\n str += `; SameSite=${this.options.sameSite}`;\n }\n const globalScope = getGlobalScope();\n if (globalScope) {\n globalScope.document.cookie = str;\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n console.error(`Amplitude Logger [Error]: Failed to set cookie for key: ${key}. Error: ${errorMessage}`);\n }\n }\n\n async remove(key: string): Promise<void> {\n await this.set(key, null);\n }\n\n async reset(): Promise<void> {\n return;\n }\n}\n"]}
1
+ {"version":3,"file":"cookie.js","sourceRoot":"","sources":["../../../src/storage/cookie.ts"],"names":[],"mappings":"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","sourcesContent":["import { Storage, CookieStorageOptions } from '@amplitude/analytics-types';\nimport { getGlobalScope } from '../global-scope';\n\nexport class CookieStorage<T> implements Storage<T> {\n options: CookieStorageOptions;\n private static testValue: undefined | string;\n\n constructor(options?: CookieStorageOptions) {\n this.options = { ...options };\n }\n\n async isEnabled(): Promise<boolean> {\n /* istanbul ignore if */\n if (!getGlobalScope()) {\n return false;\n }\n\n CookieStorage.testValue = String(Date.now());\n const testStrorage = new CookieStorage<string>(this.options);\n const testKey = 'AMP_TEST';\n try {\n await testStrorage.set(testKey, CookieStorage.testValue);\n const value = await testStrorage.get(testKey);\n return value === CookieStorage.testValue;\n } catch {\n /* istanbul ignore next */\n return false;\n } finally {\n await testStrorage.remove(testKey);\n }\n }\n\n async get(key: string): Promise<T | undefined> {\n const value = await this.getRaw(key);\n if (!value) {\n return undefined;\n }\n try {\n const decodedValue = decodeCookiesAsDefault(value) ?? decodeCookiesWithDoubleUrlEncoding(value);\n if (decodedValue === undefined) {\n console.error(`Amplitude Logger [Error]: Failed to decode cookie value for key: ${key}, value: ${value}`);\n return undefined;\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return JSON.parse(decodedValue);\n } catch {\n console.error(`Amplitude Logger [Error]: Failed to parse cookie value for key: ${key}, value: ${value}`);\n return undefined;\n }\n }\n\n async getRaw(key: string): Promise<string | undefined> {\n const globalScope = getGlobalScope();\n const cookie = globalScope?.document?.cookie.split('; ') ?? [];\n const match = cookie.find((c) => c.indexOf(key + '=') === 0);\n if (!match) {\n return undefined;\n }\n return match.substring(key.length + 1);\n }\n\n async set(key: string, value: T | null): Promise<void> {\n try {\n const expirationDays = this.options.expirationDays ?? 0;\n const expires = value !== null ? expirationDays : -1;\n let expireDate: Date | undefined = undefined;\n if (expires) {\n const date = new Date();\n date.setTime(date.getTime() + expires * 24 * 60 * 60 * 1000);\n expireDate = date;\n }\n let str = `${key}=${btoa(encodeURIComponent(JSON.stringify(value)))}`;\n if (expireDate) {\n str += `; expires=${expireDate.toUTCString()}`;\n }\n str += '; path=/';\n if (this.options.domain) {\n str += `; domain=${this.options.domain}`;\n }\n if (this.options.secure) {\n str += '; Secure';\n }\n if (this.options.sameSite) {\n str += `; SameSite=${this.options.sameSite}`;\n }\n const globalScope = getGlobalScope();\n if (globalScope) {\n globalScope.document.cookie = str;\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n console.error(`Amplitude Logger [Error]: Failed to set cookie for key: ${key}. Error: ${errorMessage}`);\n }\n }\n\n async remove(key: string): Promise<void> {\n await this.set(key, null);\n }\n\n async reset(): Promise<void> {\n return;\n }\n}\n\nconst decodeCookiesAsDefault = (value: string): string | undefined => {\n try {\n return decodeURIComponent(atob(value));\n } catch {\n return undefined;\n }\n};\n\nconst decodeCookiesWithDoubleUrlEncoding = (value: string): string | undefined => {\n // Modern Ruby (v7+) automatically encodes cookies with URL encoding by\n // https://api.rubyonrails.org/classes/ActionDispatch/Cookies.html\n try {\n return decodeURIComponent(atob(decodeURIComponent(value)));\n } catch {\n return undefined;\n }\n};\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amplitude/analytics-client-common",
3
- "version": "2.2.3",
3
+ "version": "2.2.5-featureremoteconfig.0",
4
4
  "description": "",
5
5
  "author": "Amplitude Inc",
6
6
  "homepage": "https://github.com/amplitude/Amplitude-TypeScript",
@@ -36,12 +36,12 @@
36
36
  },
37
37
  "dependencies": {
38
38
  "@amplitude/analytics-connector": "^1.4.8",
39
- "@amplitude/analytics-core": "^2.3.0",
40
- "@amplitude/analytics-types": "^2.6.0",
39
+ "@amplitude/analytics-core": "^2.4.0-featureremoteconfig.0",
40
+ "@amplitude/analytics-types": "^2.7.0-featureremoteconfig.0",
41
41
  "tslib": "^2.4.1"
42
42
  },
43
43
  "files": [
44
44
  "lib"
45
45
  ],
46
- "gitHead": "58f78b288db20dec13ef0c4381d14916ad4d4811"
46
+ "gitHead": "bb0d8e6aadf87baa76ba5b1c3a7268d13d1d2978"
47
47
  }