@amplitude/plugin-page-view-tracking-browser 0.4.1 → 0.4.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.
@@ -1 +1 @@
1
- {"version":3,"file":"page-view-tracking.d.ts","sourceRoot":"","sources":["../../src/page-view-tracking.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,aAAa,EAEb,gBAAgB,EAMjB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAGvD,eAAO,MAAM,sBAAsB,WAAY,aAAa,YAAW,OAAO,KAAQ,gBAoFrF,CAAC;AA8BF,eAAO,MAAM,0BAA0B,mBACrB,OAAO,CAAC,qBAAqB,CAAC,UACtC,MAAM,UACN,MAAM,KACb,OAOF,CAAC"}
1
+ {"version":3,"file":"page-view-tracking.d.ts","sourceRoot":"","sources":["../../src/page-view-tracking.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,aAAa,EAEb,gBAAgB,EAMjB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAGvD,eAAO,MAAM,sBAAsB,WAAY,aAAa,YAAW,OAAO,KAAQ,gBAqFrF,CAAC;AA8BF,eAAO,MAAM,0BAA0B,mBACrB,OAAO,CAAC,qBAAqB,CAAC,UACtC,MAAM,UACN,MAAM,KACb,OAOF,CAAC"}
@@ -8,6 +8,7 @@ var analytics_client_common_2 = require("@amplitude/analytics-client-common");
8
8
  var utils_1 = require("./utils");
9
9
  var pageViewTrackingPlugin = function (client, options) {
10
10
  if (options === void 0) { options = {}; }
11
+ var globalScope = (0, analytics_client_common_1.getGlobalScope)();
11
12
  var loggerProvider = undefined;
12
13
  var shouldTrackOnPageLoad = function () {
13
14
  return typeof options.trackOn === 'undefined' || (typeof options.trackOn === 'function' && options.trackOn());
@@ -50,9 +51,9 @@ var pageViewTrackingPlugin = function (client, options) {
50
51
  loggerProvider.warn('@amplitude/plugin-page-view-tracking-browser overrides page view tracking behavior defined in @amplitude/analytics-browser');
51
52
  config.attribution.trackPageViews = false;
52
53
  }
53
- if (options.trackHistoryChanges) {
54
+ if (options.trackHistoryChanges && globalScope) {
54
55
  /* istanbul ignore next */
55
- window.addEventListener('popstate', function () {
56
+ globalScope.addEventListener('popstate', function () {
56
57
  void trackHistoryPageView();
57
58
  });
58
59
  /* istanbul ignore next */
@@ -60,7 +61,7 @@ var pageViewTrackingPlugin = function (client, options) {
60
61
  // to modify pushState directly.
61
62
  // https://stackoverflow.com/a/64927639
62
63
  // eslint-disable-next-line @typescript-eslint/unbound-method
63
- window.history.pushState = new Proxy(window.history.pushState, {
64
+ globalScope.history.pushState = new Proxy(globalScope.history.pushState, {
64
65
  apply: function (target, thisArg, _a) {
65
66
  var _b = (0, tslib_1.__read)(_a, 3), state = _b[0], unused = _b[1], url = _b[2];
66
67
  void trackHistoryPageView();
@@ -1 +1 @@
1
- {"version":3,"file":"page-view-tracking.js","sourceRoot":"","sources":["../../src/page-view-tracking.ts"],"names":[],"mappings":"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","sourcesContent":["import { CampaignParser } from '@amplitude/analytics-client-common';\nimport {\n BaseEvent,\n BrowserClient,\n BrowserConfig,\n EnrichmentPlugin,\n Event,\n IdentifyOperation,\n IdentifyUserProperties,\n Logger,\n PluginType,\n} from '@amplitude/analytics-types';\nimport { BASE_CAMPAIGN } from '@amplitude/analytics-client-common';\nimport { Options } from './typings/page-view-tracking';\nimport { omitUndefined } from './utils';\n\nexport const pageViewTrackingPlugin = (client: BrowserClient, options: Options = {}): EnrichmentPlugin => {\n let loggerProvider: Logger | undefined = undefined;\n\n const shouldTrackOnPageLoad = () =>\n typeof options.trackOn === 'undefined' || (typeof options.trackOn === 'function' && options.trackOn());\n\n let previousURL: string | null = null;\n\n const trackHistoryPageView = async (): Promise<void> => {\n const newURL = location.href;\n\n if (shouldTrackHistoryPageView(options.trackHistoryChanges, newURL, previousURL || '') && shouldTrackOnPageLoad()) {\n /* istanbul ignore next */\n loggerProvider?.log('Tracking page view event');\n client.track(await createPageViewEvent());\n }\n previousURL = newURL;\n };\n\n const plugin = {\n name: 'page-view-tracking',\n type: PluginType.ENRICHMENT as const,\n\n setup: async (config: BrowserConfig) => {\n loggerProvider = config.loggerProvider;\n loggerProvider.log('Installing @amplitude/plugin-page-view-tracking-browser');\n\n options.trackOn = config.attribution?.trackPageViews ? 'attribution' : options.trackOn;\n\n // Turn off sending page view event by \"runAttributionStrategy\" function\n if (config.attribution?.trackPageViews) {\n loggerProvider.warn(\n '@amplitude/plugin-page-view-tracking-browser overrides page view tracking behavior defined in @amplitude/analytics-browser',\n );\n config.attribution.trackPageViews = false;\n }\n\n if (options.trackHistoryChanges) {\n /* istanbul ignore next */\n window.addEventListener('popstate', () => {\n void trackHistoryPageView();\n });\n\n /* istanbul ignore next */\n // There is no global browser listener for changes to history, so we have\n // to modify pushState directly.\n // https://stackoverflow.com/a/64927639\n // eslint-disable-next-line @typescript-eslint/unbound-method\n window.history.pushState = new Proxy(window.history.pushState, {\n apply: (target, thisArg, [state, unused, url]) => {\n void trackHistoryPageView();\n\n return target.apply(thisArg, [state, unused, url]);\n },\n });\n }\n\n if (shouldTrackOnPageLoad()) {\n loggerProvider.log('Tracking page view event');\n\n client.track(await createPageViewEvent());\n }\n },\n\n execute: async (event: Event) => {\n if (options.trackOn === 'attribution' && isCampaignEvent(event)) {\n /* istanbul ignore next */ // loggerProvider should be defined by the time execute is invoked\n loggerProvider?.log('Enriching campaign event to page view event with campaign parameters');\n const pageViewEvent = await createPageViewEvent();\n event.event_type = pageViewEvent.event_type;\n event.event_properties = {\n ...event.event_properties,\n ...pageViewEvent.event_properties,\n };\n }\n return event;\n },\n };\n\n // Required for unit tests\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n (plugin as any).__trackHistoryPageView = trackHistoryPageView;\n\n return plugin;\n};\n\nconst getCampaignParams = async () => omitUndefined(await new CampaignParser().parse());\n\nconst createPageViewEvent = async (): Promise<Event> => {\n const pageViewEvent: BaseEvent = {\n event_type: 'Page View',\n event_properties: {\n ...(await getCampaignParams()),\n page_domain: /* istanbul ignore next */ (typeof location !== 'undefined' && location.hostname) || '',\n page_location: /* istanbul ignore next */ (typeof location !== 'undefined' && location.href) || '',\n page_path: /* istanbul ignore next */ (typeof location !== 'undefined' && location.pathname) || '',\n page_title: /* istanbul ignore next */ (typeof document !== 'undefined' && document.title) || '',\n page_url: /* istanbul ignore next */ (typeof location !== 'undefined' && location.href.split('?')[0]) || '',\n },\n };\n return pageViewEvent;\n};\n\nconst isCampaignEvent = (event: Event) => {\n if (event.event_type === '$identify' && event.user_properties) {\n const properties = event.user_properties as IdentifyUserProperties;\n const $set = properties[IdentifyOperation.SET] || {};\n const $unset = properties[IdentifyOperation.UNSET] || {};\n const userProperties = [...Object.keys($set), ...Object.keys($unset)];\n return Object.keys(BASE_CAMPAIGN).every((value) => userProperties.includes(value));\n }\n return false;\n};\n\nexport const shouldTrackHistoryPageView = (\n trackingOption: Options['trackHistoryChanges'],\n newURL: string,\n oldURL: string,\n): boolean => {\n switch (trackingOption) {\n case 'pathOnly':\n return newURL.split('?')[0] !== oldURL.split('?')[0];\n default:\n return newURL !== oldURL;\n }\n};\n"]}
1
+ {"version":3,"file":"page-view-tracking.js","sourceRoot":"","sources":["../../src/page-view-tracking.ts"],"names":[],"mappings":"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","sourcesContent":["import { CampaignParser, getGlobalScope } from '@amplitude/analytics-client-common';\nimport {\n BaseEvent,\n BrowserClient,\n BrowserConfig,\n EnrichmentPlugin,\n Event,\n IdentifyOperation,\n IdentifyUserProperties,\n Logger,\n PluginType,\n} from '@amplitude/analytics-types';\nimport { BASE_CAMPAIGN } from '@amplitude/analytics-client-common';\nimport { Options } from './typings/page-view-tracking';\nimport { omitUndefined } from './utils';\n\nexport const pageViewTrackingPlugin = (client: BrowserClient, options: Options = {}): EnrichmentPlugin => {\n const globalScope = getGlobalScope();\n let loggerProvider: Logger | undefined = undefined;\n\n const shouldTrackOnPageLoad = () =>\n typeof options.trackOn === 'undefined' || (typeof options.trackOn === 'function' && options.trackOn());\n\n let previousURL: string | null = null;\n\n const trackHistoryPageView = async (): Promise<void> => {\n const newURL = location.href;\n\n if (shouldTrackHistoryPageView(options.trackHistoryChanges, newURL, previousURL || '') && shouldTrackOnPageLoad()) {\n /* istanbul ignore next */\n loggerProvider?.log('Tracking page view event');\n client.track(await createPageViewEvent());\n }\n previousURL = newURL;\n };\n\n const plugin = {\n name: 'page-view-tracking',\n type: PluginType.ENRICHMENT as const,\n\n setup: async (config: BrowserConfig) => {\n loggerProvider = config.loggerProvider;\n loggerProvider.log('Installing @amplitude/plugin-page-view-tracking-browser');\n\n options.trackOn = config.attribution?.trackPageViews ? 'attribution' : options.trackOn;\n\n // Turn off sending page view event by \"runAttributionStrategy\" function\n if (config.attribution?.trackPageViews) {\n loggerProvider.warn(\n '@amplitude/plugin-page-view-tracking-browser overrides page view tracking behavior defined in @amplitude/analytics-browser',\n );\n config.attribution.trackPageViews = false;\n }\n\n if (options.trackHistoryChanges && globalScope) {\n /* istanbul ignore next */\n globalScope.addEventListener('popstate', () => {\n void trackHistoryPageView();\n });\n\n /* istanbul ignore next */\n // There is no global browser listener for changes to history, so we have\n // to modify pushState directly.\n // https://stackoverflow.com/a/64927639\n // eslint-disable-next-line @typescript-eslint/unbound-method\n globalScope.history.pushState = new Proxy(globalScope.history.pushState, {\n apply: (target, thisArg, [state, unused, url]) => {\n void trackHistoryPageView();\n\n return target.apply(thisArg, [state, unused, url]);\n },\n });\n }\n\n if (shouldTrackOnPageLoad()) {\n loggerProvider.log('Tracking page view event');\n\n client.track(await createPageViewEvent());\n }\n },\n\n execute: async (event: Event) => {\n if (options.trackOn === 'attribution' && isCampaignEvent(event)) {\n /* istanbul ignore next */ // loggerProvider should be defined by the time execute is invoked\n loggerProvider?.log('Enriching campaign event to page view event with campaign parameters');\n const pageViewEvent = await createPageViewEvent();\n event.event_type = pageViewEvent.event_type;\n event.event_properties = {\n ...event.event_properties,\n ...pageViewEvent.event_properties,\n };\n }\n return event;\n },\n };\n\n // Required for unit tests\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n (plugin as any).__trackHistoryPageView = trackHistoryPageView;\n\n return plugin;\n};\n\nconst getCampaignParams = async () => omitUndefined(await new CampaignParser().parse());\n\nconst createPageViewEvent = async (): Promise<Event> => {\n const pageViewEvent: BaseEvent = {\n event_type: 'Page View',\n event_properties: {\n ...(await getCampaignParams()),\n page_domain: /* istanbul ignore next */ (typeof location !== 'undefined' && location.hostname) || '',\n page_location: /* istanbul ignore next */ (typeof location !== 'undefined' && location.href) || '',\n page_path: /* istanbul ignore next */ (typeof location !== 'undefined' && location.pathname) || '',\n page_title: /* istanbul ignore next */ (typeof document !== 'undefined' && document.title) || '',\n page_url: /* istanbul ignore next */ (typeof location !== 'undefined' && location.href.split('?')[0]) || '',\n },\n };\n return pageViewEvent;\n};\n\nconst isCampaignEvent = (event: Event) => {\n if (event.event_type === '$identify' && event.user_properties) {\n const properties = event.user_properties as IdentifyUserProperties;\n const $set = properties[IdentifyOperation.SET] || {};\n const $unset = properties[IdentifyOperation.UNSET] || {};\n const userProperties = [...Object.keys($set), ...Object.keys($unset)];\n return Object.keys(BASE_CAMPAIGN).every((value) => userProperties.includes(value));\n }\n return false;\n};\n\nexport const shouldTrackHistoryPageView = (\n trackingOption: Options['trackHistoryChanges'],\n newURL: string,\n oldURL: string,\n): boolean => {\n switch (trackingOption) {\n case 'pathOnly':\n return newURL.split('?')[0] !== oldURL.split('?')[0];\n default:\n return newURL !== oldURL;\n }\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"page-view-tracking.d.ts","sourceRoot":"","sources":["../../src/page-view-tracking.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,aAAa,EAEb,gBAAgB,EAMjB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAGvD,eAAO,MAAM,sBAAsB,WAAY,aAAa,YAAW,OAAO,KAAQ,gBAoFrF,CAAC;AA8BF,eAAO,MAAM,0BAA0B,mBACrB,OAAO,CAAC,qBAAqB,CAAC,UACtC,MAAM,UACN,MAAM,KACb,OAOF,CAAC"}
1
+ {"version":3,"file":"page-view-tracking.d.ts","sourceRoot":"","sources":["../../src/page-view-tracking.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,aAAa,EAEb,gBAAgB,EAMjB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAGvD,eAAO,MAAM,sBAAsB,WAAY,aAAa,YAAW,OAAO,KAAQ,gBAqFrF,CAAC;AA8BF,eAAO,MAAM,0BAA0B,mBACrB,OAAO,CAAC,qBAAqB,CAAC,UACtC,MAAM,UACN,MAAM,KACb,OAOF,CAAC"}
@@ -1,10 +1,11 @@
1
1
  import { __assign, __awaiter, __generator, __read, __spreadArray } from "tslib";
2
- import { CampaignParser } from '@amplitude/analytics-client-common';
2
+ import { CampaignParser, getGlobalScope } from '@amplitude/analytics-client-common';
3
3
  import { IdentifyOperation, PluginType, } from '@amplitude/analytics-types';
4
4
  import { BASE_CAMPAIGN } from '@amplitude/analytics-client-common';
5
5
  import { omitUndefined } from './utils';
6
6
  export var pageViewTrackingPlugin = function (client, options) {
7
7
  if (options === void 0) { options = {}; }
8
+ var globalScope = getGlobalScope();
8
9
  var loggerProvider = undefined;
9
10
  var shouldTrackOnPageLoad = function () {
10
11
  return typeof options.trackOn === 'undefined' || (typeof options.trackOn === 'function' && options.trackOn());
@@ -47,9 +48,9 @@ export var pageViewTrackingPlugin = function (client, options) {
47
48
  loggerProvider.warn('@amplitude/plugin-page-view-tracking-browser overrides page view tracking behavior defined in @amplitude/analytics-browser');
48
49
  config.attribution.trackPageViews = false;
49
50
  }
50
- if (options.trackHistoryChanges) {
51
+ if (options.trackHistoryChanges && globalScope) {
51
52
  /* istanbul ignore next */
52
- window.addEventListener('popstate', function () {
53
+ globalScope.addEventListener('popstate', function () {
53
54
  void trackHistoryPageView();
54
55
  });
55
56
  /* istanbul ignore next */
@@ -57,7 +58,7 @@ export var pageViewTrackingPlugin = function (client, options) {
57
58
  // to modify pushState directly.
58
59
  // https://stackoverflow.com/a/64927639
59
60
  // eslint-disable-next-line @typescript-eslint/unbound-method
60
- window.history.pushState = new Proxy(window.history.pushState, {
61
+ globalScope.history.pushState = new Proxy(globalScope.history.pushState, {
61
62
  apply: function (target, thisArg, _a) {
62
63
  var _b = __read(_a, 3), state = _b[0], unused = _b[1], url = _b[2];
63
64
  void trackHistoryPageView();
@@ -1 +1 @@
1
- {"version":3,"file":"page-view-tracking.js","sourceRoot":"","sources":["../../src/page-view-tracking.ts"],"names":[],"mappings":"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","sourcesContent":["import { CampaignParser } from '@amplitude/analytics-client-common';\nimport {\n BaseEvent,\n BrowserClient,\n BrowserConfig,\n EnrichmentPlugin,\n Event,\n IdentifyOperation,\n IdentifyUserProperties,\n Logger,\n PluginType,\n} from '@amplitude/analytics-types';\nimport { BASE_CAMPAIGN } from '@amplitude/analytics-client-common';\nimport { Options } from './typings/page-view-tracking';\nimport { omitUndefined } from './utils';\n\nexport const pageViewTrackingPlugin = (client: BrowserClient, options: Options = {}): EnrichmentPlugin => {\n let loggerProvider: Logger | undefined = undefined;\n\n const shouldTrackOnPageLoad = () =>\n typeof options.trackOn === 'undefined' || (typeof options.trackOn === 'function' && options.trackOn());\n\n let previousURL: string | null = null;\n\n const trackHistoryPageView = async (): Promise<void> => {\n const newURL = location.href;\n\n if (shouldTrackHistoryPageView(options.trackHistoryChanges, newURL, previousURL || '') && shouldTrackOnPageLoad()) {\n /* istanbul ignore next */\n loggerProvider?.log('Tracking page view event');\n client.track(await createPageViewEvent());\n }\n previousURL = newURL;\n };\n\n const plugin = {\n name: 'page-view-tracking',\n type: PluginType.ENRICHMENT as const,\n\n setup: async (config: BrowserConfig) => {\n loggerProvider = config.loggerProvider;\n loggerProvider.log('Installing @amplitude/plugin-page-view-tracking-browser');\n\n options.trackOn = config.attribution?.trackPageViews ? 'attribution' : options.trackOn;\n\n // Turn off sending page view event by \"runAttributionStrategy\" function\n if (config.attribution?.trackPageViews) {\n loggerProvider.warn(\n '@amplitude/plugin-page-view-tracking-browser overrides page view tracking behavior defined in @amplitude/analytics-browser',\n );\n config.attribution.trackPageViews = false;\n }\n\n if (options.trackHistoryChanges) {\n /* istanbul ignore next */\n window.addEventListener('popstate', () => {\n void trackHistoryPageView();\n });\n\n /* istanbul ignore next */\n // There is no global browser listener for changes to history, so we have\n // to modify pushState directly.\n // https://stackoverflow.com/a/64927639\n // eslint-disable-next-line @typescript-eslint/unbound-method\n window.history.pushState = new Proxy(window.history.pushState, {\n apply: (target, thisArg, [state, unused, url]) => {\n void trackHistoryPageView();\n\n return target.apply(thisArg, [state, unused, url]);\n },\n });\n }\n\n if (shouldTrackOnPageLoad()) {\n loggerProvider.log('Tracking page view event');\n\n client.track(await createPageViewEvent());\n }\n },\n\n execute: async (event: Event) => {\n if (options.trackOn === 'attribution' && isCampaignEvent(event)) {\n /* istanbul ignore next */ // loggerProvider should be defined by the time execute is invoked\n loggerProvider?.log('Enriching campaign event to page view event with campaign parameters');\n const pageViewEvent = await createPageViewEvent();\n event.event_type = pageViewEvent.event_type;\n event.event_properties = {\n ...event.event_properties,\n ...pageViewEvent.event_properties,\n };\n }\n return event;\n },\n };\n\n // Required for unit tests\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n (plugin as any).__trackHistoryPageView = trackHistoryPageView;\n\n return plugin;\n};\n\nconst getCampaignParams = async () => omitUndefined(await new CampaignParser().parse());\n\nconst createPageViewEvent = async (): Promise<Event> => {\n const pageViewEvent: BaseEvent = {\n event_type: 'Page View',\n event_properties: {\n ...(await getCampaignParams()),\n page_domain: /* istanbul ignore next */ (typeof location !== 'undefined' && location.hostname) || '',\n page_location: /* istanbul ignore next */ (typeof location !== 'undefined' && location.href) || '',\n page_path: /* istanbul ignore next */ (typeof location !== 'undefined' && location.pathname) || '',\n page_title: /* istanbul ignore next */ (typeof document !== 'undefined' && document.title) || '',\n page_url: /* istanbul ignore next */ (typeof location !== 'undefined' && location.href.split('?')[0]) || '',\n },\n };\n return pageViewEvent;\n};\n\nconst isCampaignEvent = (event: Event) => {\n if (event.event_type === '$identify' && event.user_properties) {\n const properties = event.user_properties as IdentifyUserProperties;\n const $set = properties[IdentifyOperation.SET] || {};\n const $unset = properties[IdentifyOperation.UNSET] || {};\n const userProperties = [...Object.keys($set), ...Object.keys($unset)];\n return Object.keys(BASE_CAMPAIGN).every((value) => userProperties.includes(value));\n }\n return false;\n};\n\nexport const shouldTrackHistoryPageView = (\n trackingOption: Options['trackHistoryChanges'],\n newURL: string,\n oldURL: string,\n): boolean => {\n switch (trackingOption) {\n case 'pathOnly':\n return newURL.split('?')[0] !== oldURL.split('?')[0];\n default:\n return newURL !== oldURL;\n }\n};\n"]}
1
+ {"version":3,"file":"page-view-tracking.js","sourceRoot":"","sources":["../../src/page-view-tracking.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpF,OAAO,EAML,iBAAiB,EAGjB,UAAU,GACX,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,MAAM,CAAC,IAAM,sBAAsB,GAAG,UAAC,MAAqB,EAAE,OAAqB;IAArB,wBAAA,EAAA,YAAqB;IACjF,IAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,IAAI,cAAc,GAAuB,SAAS,CAAC;IAEnD,IAAM,qBAAqB,GAAG;QAC5B,OAAA,OAAO,OAAO,CAAC,OAAO,KAAK,WAAW,IAAI,CAAC,OAAO,OAAO,CAAC,OAAO,KAAK,UAAU,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAAtG,CAAsG,CAAC;IAEzG,IAAI,WAAW,GAAkB,IAAI,CAAC;IAEtC,IAAM,oBAAoB,GAAG;;;;;oBACrB,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;yBAEzB,CAAA,0BAA0B,CAAC,OAAO,CAAC,mBAAmB,EAAE,MAAM,EAAE,WAAW,IAAI,EAAE,CAAC,IAAI,qBAAqB,EAAE,CAAA,EAA7G,wBAA6G;oBAC/G,0BAA0B;oBAC1B,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,GAAG,CAAC,0BAA0B,CAAC,CAAC;oBAChD,KAAA,CAAA,KAAA,MAAM,CAAA,CAAC,KAAK,CAAA;oBAAC,qBAAM,mBAAmB,EAAE,EAAA;;oBAAxC,cAAa,SAA2B,EAAC,CAAC;;;oBAE5C,WAAW,GAAG,MAAM,CAAC;;;;SACtB,CAAC;IAEF,IAAM,MAAM,GAAG;QACb,IAAI,EAAE,oBAAoB;QAC1B,IAAI,EAAE,UAAU,CAAC,UAAmB;QAEpC,KAAK,EAAE,UAAO,MAAqB;;;;;;wBACjC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;wBACvC,cAAc,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;wBAE9E,OAAO,CAAC,OAAO,GAAG,CAAA,MAAA,MAAM,CAAC,WAAW,0CAAE,cAAc,EAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;wBAEvF,wEAAwE;wBACxE,IAAI,MAAA,MAAM,CAAC,WAAW,0CAAE,cAAc,EAAE;4BACtC,cAAc,CAAC,IAAI,CACjB,4HAA4H,CAC7H,CAAC;4BACF,MAAM,CAAC,WAAW,CAAC,cAAc,GAAG,KAAK,CAAC;yBAC3C;wBAED,IAAI,OAAO,CAAC,mBAAmB,IAAI,WAAW,EAAE;4BAC9C,0BAA0B;4BAC1B,WAAW,CAAC,gBAAgB,CAAC,UAAU,EAAE;gCACvC,KAAK,oBAAoB,EAAE,CAAC;4BAC9B,CAAC,CAAC,CAAC;4BAEH,0BAA0B;4BAC1B,yEAAyE;4BACzE,gCAAgC;4BAChC,uCAAuC;4BACvC,6DAA6D;4BAC7D,WAAW,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE;gCACvE,KAAK,EAAE,UAAC,MAAM,EAAE,OAAO,EAAE,EAAoB;wCAApB,KAAA,aAAoB,EAAnB,KAAK,QAAA,EAAE,MAAM,QAAA,EAAE,GAAG,QAAA;oCAC1C,KAAK,oBAAoB,EAAE,CAAC;oCAE5B,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;gCACrD,CAAC;6BACF,CAAC,CAAC;yBACJ;6BAEG,qBAAqB,EAAE,EAAvB,wBAAuB;wBACzB,cAAc,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;wBAE/C,KAAA,CAAA,KAAA,MAAM,CAAA,CAAC,KAAK,CAAA;wBAAC,qBAAM,mBAAmB,EAAE,EAAA;;wBAAxC,cAAa,SAA2B,EAAC,CAAC;;;;;aAE7C;QAED,OAAO,EAAE,UAAO,KAAY;;;;;6BACtB,CAAA,OAAO,CAAC,OAAO,KAAK,aAAa,IAAI,eAAe,CAAC,KAAK,CAAC,CAAA,EAA3D,wBAA2D;wBAC7D,0BAA0B,CAAC,kEAAkE;wBAC7F,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,GAAG,CAAC,sEAAsE,CAAC,CAAC;wBACtE,qBAAM,mBAAmB,EAAE,EAAA;;wBAA3C,aAAa,GAAG,SAA2B;wBACjD,KAAK,CAAC,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC;wBAC5C,KAAK,CAAC,gBAAgB,yBACjB,KAAK,CAAC,gBAAgB,GACtB,aAAa,CAAC,gBAAgB,CAClC,CAAC;;4BAEJ,sBAAO,KAAK,EAAC;;;aACd;KACF,CAAC;IAEF,0BAA0B;IAC1B,sEAAsE;IACrE,MAAc,CAAC,sBAAsB,GAAG,oBAAoB,CAAC;IAE9D,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,IAAM,iBAAiB,GAAG;;;YAAY,KAAA,aAAa,CAAA;YAAC,qBAAM,IAAI,cAAc,EAAE,CAAC,KAAK,EAAE,EAAA;gBAAhD,sBAAA,kBAAc,SAAkC,EAAC,EAAA;;SAAA,CAAC;AAExF,IAAM,mBAAmB,GAAG;;;;;;;oBAExB,UAAU,EAAE,WAAW;;;gBAEjB,qBAAM,iBAAiB,EAAE,EAAA;;gBAH3B,aAAa,IAEjB,mBAAgB,6DACX,CAAC,SAAyB,CAAC,OAC9B,WAAW,EAAE,0BAA0B,CAAC,CAAC,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,EACpG,aAAa,EAAE,0BAA0B,CAAC,CAAC,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAClG,SAAS,EAAE,0BAA0B,CAAC,CAAC,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,EAClG,UAAU,EAAE,0BAA0B,CAAC,CAAC,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,EAChG,QAAQ,EAAE,0BAA0B,CAAC,CAAC,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAC5G;uBACF;gBACD,sBAAO,aAAa,EAAC;;;KACtB,CAAC;AAEF,IAAM,eAAe,GAAG,UAAC,KAAY;IACnC,IAAI,KAAK,CAAC,UAAU,KAAK,WAAW,IAAI,KAAK,CAAC,eAAe,EAAE;QAC7D,IAAM,UAAU,GAAG,KAAK,CAAC,eAAyC,CAAC;QACnE,IAAM,IAAI,GAAG,UAAU,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACrD,IAAM,MAAM,GAAG,UAAU,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACzD,IAAM,gBAAc,0CAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAK,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAC,CAAC;QACtE,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,UAAC,KAAK,IAAK,OAAA,gBAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,EAA9B,CAA8B,CAAC,CAAC;KACpF;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,0BAA0B,GAAG,UACxC,cAA8C,EAC9C,MAAc,EACd,MAAc;IAEd,QAAQ,cAAc,EAAE;QACtB,KAAK,UAAU;YACb,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD;YACE,OAAO,MAAM,KAAK,MAAM,CAAC;KAC5B;AACH,CAAC,CAAC","sourcesContent":["import { CampaignParser, getGlobalScope } from '@amplitude/analytics-client-common';\nimport {\n BaseEvent,\n BrowserClient,\n BrowserConfig,\n EnrichmentPlugin,\n Event,\n IdentifyOperation,\n IdentifyUserProperties,\n Logger,\n PluginType,\n} from '@amplitude/analytics-types';\nimport { BASE_CAMPAIGN } from '@amplitude/analytics-client-common';\nimport { Options } from './typings/page-view-tracking';\nimport { omitUndefined } from './utils';\n\nexport const pageViewTrackingPlugin = (client: BrowserClient, options: Options = {}): EnrichmentPlugin => {\n const globalScope = getGlobalScope();\n let loggerProvider: Logger | undefined = undefined;\n\n const shouldTrackOnPageLoad = () =>\n typeof options.trackOn === 'undefined' || (typeof options.trackOn === 'function' && options.trackOn());\n\n let previousURL: string | null = null;\n\n const trackHistoryPageView = async (): Promise<void> => {\n const newURL = location.href;\n\n if (shouldTrackHistoryPageView(options.trackHistoryChanges, newURL, previousURL || '') && shouldTrackOnPageLoad()) {\n /* istanbul ignore next */\n loggerProvider?.log('Tracking page view event');\n client.track(await createPageViewEvent());\n }\n previousURL = newURL;\n };\n\n const plugin = {\n name: 'page-view-tracking',\n type: PluginType.ENRICHMENT as const,\n\n setup: async (config: BrowserConfig) => {\n loggerProvider = config.loggerProvider;\n loggerProvider.log('Installing @amplitude/plugin-page-view-tracking-browser');\n\n options.trackOn = config.attribution?.trackPageViews ? 'attribution' : options.trackOn;\n\n // Turn off sending page view event by \"runAttributionStrategy\" function\n if (config.attribution?.trackPageViews) {\n loggerProvider.warn(\n '@amplitude/plugin-page-view-tracking-browser overrides page view tracking behavior defined in @amplitude/analytics-browser',\n );\n config.attribution.trackPageViews = false;\n }\n\n if (options.trackHistoryChanges && globalScope) {\n /* istanbul ignore next */\n globalScope.addEventListener('popstate', () => {\n void trackHistoryPageView();\n });\n\n /* istanbul ignore next */\n // There is no global browser listener for changes to history, so we have\n // to modify pushState directly.\n // https://stackoverflow.com/a/64927639\n // eslint-disable-next-line @typescript-eslint/unbound-method\n globalScope.history.pushState = new Proxy(globalScope.history.pushState, {\n apply: (target, thisArg, [state, unused, url]) => {\n void trackHistoryPageView();\n\n return target.apply(thisArg, [state, unused, url]);\n },\n });\n }\n\n if (shouldTrackOnPageLoad()) {\n loggerProvider.log('Tracking page view event');\n\n client.track(await createPageViewEvent());\n }\n },\n\n execute: async (event: Event) => {\n if (options.trackOn === 'attribution' && isCampaignEvent(event)) {\n /* istanbul ignore next */ // loggerProvider should be defined by the time execute is invoked\n loggerProvider?.log('Enriching campaign event to page view event with campaign parameters');\n const pageViewEvent = await createPageViewEvent();\n event.event_type = pageViewEvent.event_type;\n event.event_properties = {\n ...event.event_properties,\n ...pageViewEvent.event_properties,\n };\n }\n return event;\n },\n };\n\n // Required for unit tests\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n (plugin as any).__trackHistoryPageView = trackHistoryPageView;\n\n return plugin;\n};\n\nconst getCampaignParams = async () => omitUndefined(await new CampaignParser().parse());\n\nconst createPageViewEvent = async (): Promise<Event> => {\n const pageViewEvent: BaseEvent = {\n event_type: 'Page View',\n event_properties: {\n ...(await getCampaignParams()),\n page_domain: /* istanbul ignore next */ (typeof location !== 'undefined' && location.hostname) || '',\n page_location: /* istanbul ignore next */ (typeof location !== 'undefined' && location.href) || '',\n page_path: /* istanbul ignore next */ (typeof location !== 'undefined' && location.pathname) || '',\n page_title: /* istanbul ignore next */ (typeof document !== 'undefined' && document.title) || '',\n page_url: /* istanbul ignore next */ (typeof location !== 'undefined' && location.href.split('?')[0]) || '',\n },\n };\n return pageViewEvent;\n};\n\nconst isCampaignEvent = (event: Event) => {\n if (event.event_type === '$identify' && event.user_properties) {\n const properties = event.user_properties as IdentifyUserProperties;\n const $set = properties[IdentifyOperation.SET] || {};\n const $unset = properties[IdentifyOperation.UNSET] || {};\n const userProperties = [...Object.keys($set), ...Object.keys($unset)];\n return Object.keys(BASE_CAMPAIGN).every((value) => userProperties.includes(value));\n }\n return false;\n};\n\nexport const shouldTrackHistoryPageView = (\n trackingOption: Options['trackHistoryChanges'],\n newURL: string,\n oldURL: string,\n): boolean => {\n switch (trackingOption) {\n case 'pathOnly':\n return newURL.split('?')[0] !== oldURL.split('?')[0];\n default:\n return newURL !== oldURL;\n }\n};\n"]}
@@ -1 +1 @@
1
- var pageViewTracking=function(e){"use strict";var t=function(){return t=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},t.apply(this,arguments)};function n(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{u(r.next(e))}catch(e){o(e)}}function c(e){try{u(r.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}u((r=r.apply(e,t||[])).next())}))}function r(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){a.label=o[1];break}if(6===o[0]&&a.label<i[1]){a.label=i[1],i=o;break}if(i&&a.label<i[2]){a.label=i[2],a.ops.push(o);break}i[2]&&a.ops.pop(),a.trys.pop();continue}o=t.call(e,a)}catch(e){o=[6,e],r=0}finally{n=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,c])}}}function i(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,o=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)a.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return a}function o(e,t,n){if(n||2===arguments.length)for(var r,i=0,o=t.length;i<o;i++)!r&&i in t||(r||(r=Array.prototype.slice.call(t,0,i)),r[i]=t[i]);return e.concat(r||Array.prototype.slice.call(t))}var a,c,u,l,d=function(){return"undefined"!=typeof window&&window.location&&window.location.search?window.location.search.substring(1).split("&").filter(Boolean).reduce((function(e,t){var n=t.split("=",2),r=p(n[0]),i=p(n[1]);return i?(e[r]=i,e):e}),{}):{}},p=function(e){void 0===e&&(e="");try{return decodeURIComponent(e)}catch(e){return""}},s={utm_source:void 0,utm_medium:void 0,utm_campaign:void 0,utm_term:void 0,utm_content:void 0,referrer:void 0,referring_domain:void 0,dclid:void 0,gbraid:void 0,gclid:void 0,fbclid:void 0,ko_click_id:void 0,msclkid:void 0,ttclid:void 0,twclid:void 0,wbraid:void 0},f=function(){function e(){}return e.prototype.parse=function(){return n(this,void 0,void 0,(function(){return r(this,(function(e){return[2,t(t(t(t({},s),this.getUtmParam()),this.getReferrer()),this.getClickIds())]}))}))},e.prototype.getUtmParam=function(){var e=d();return{utm_source:e.utm_source,utm_medium:e.utm_medium,utm_campaign:e.utm_campaign,utm_term:e.utm_term,utm_content:e.utm_content}},e.prototype.getReferrer=function(){var e,t,n={referrer:void 0,referring_domain:void 0};try{n.referrer=document.referrer||void 0,n.referring_domain=null!==(t=null===(e=n.referrer)||void 0===e?void 0:e.split("/")[2])&&void 0!==t?t:void 0}catch(e){}return n},e.prototype.getClickIds=function(){var e,t=d();return(e={}).dclid=t.dclid,e.fbclid=t.fbclid,e.gbraid=t.gbraid,e.gclid=t.gclid,e.ko_click_id=t.ko_click_id,e.msclkid=t.msclkid,e.ttclid=t.ttclid,e.twclid=t.twclid,e.wbraid=t.wbraid,e},e}();!function(e){e.SET="$set",e.SET_ONCE="$setOnce",e.ADD="$add",e.APPEND="$append",e.PREPEND="$prepend",e.REMOVE="$remove",e.PREINSERT="$preInsert",e.POSTINSERT="$postInsert",e.UNSET="$unset",e.CLEAR_ALL="$clearAll"}(a||(a={})),function(e){e.REVENUE_PRODUCT_ID="$productId",e.REVENUE_QUANTITY="$quantity",e.REVENUE_PRICE="$price",e.REVENUE_TYPE="$revenueType",e.REVENUE="$revenue"}(c||(c={})),function(e){e.IDENTIFY="$identify",e.GROUP_IDENTIFY="$groupidentify",e.REVENUE="revenue_amount"}(u||(u={})),function(e){e.BEFORE="before",e.ENRICHMENT="enrichment",e.DESTINATION="destination"}(l||(l={}));var v=function(e){var t={};for(var n in e){var r=e[n];r&&(t[n]=r)}return t},y=function(e,o){void 0===o&&(o={});var a=void 0,c=function(){return void 0===o.trackOn||"function"==typeof o.trackOn&&o.trackOn()},u=null,d=function(){return n(void 0,void 0,void 0,(function(){var t,n,i;return r(this,(function(r){switch(r.label){case 0:return t=location.href,m(o.trackHistoryChanges,t,u||"")&&c()?(null==a||a.log("Tracking page view event"),i=(n=e).track,[4,g()]):[3,2];case 1:i.apply(n,[r.sent()]),r.label=2;case 2:return u=t,[2]}}))}))},p={name:"page-view-tracking",type:l.ENRICHMENT,setup:function(t){return n(void 0,void 0,void 0,(function(){var n,u,l,p;return r(this,(function(r){switch(r.label){case 0:return(a=t.loggerProvider).log("Installing @amplitude/plugin-page-view-tracking-browser"),o.trackOn=(null===(l=t.attribution)||void 0===l?void 0:l.trackPageViews)?"attribution":o.trackOn,(null===(p=t.attribution)||void 0===p?void 0:p.trackPageViews)&&(a.warn("@amplitude/plugin-page-view-tracking-browser overrides page view tracking behavior defined in @amplitude/analytics-browser"),t.attribution.trackPageViews=!1),o.trackHistoryChanges&&(window.addEventListener("popstate",(function(){d()})),window.history.pushState=new Proxy(window.history.pushState,{apply:function(e,t,n){var r=i(n,3),o=r[0],a=r[1],c=r[2];return d(),e.apply(t,[o,a,c])}})),c()?(a.log("Tracking page view event"),u=(n=e).track,[4,g()]):[3,2];case 1:u.apply(n,[r.sent()]),r.label=2;case 2:return[2]}}))}))},execute:function(e){return n(void 0,void 0,void 0,(function(){var n;return r(this,(function(r){switch(r.label){case 0:return"attribution"===o.trackOn&&h(e)?(null==a||a.log("Enriching campaign event to page view event with campaign parameters"),[4,g()]):[3,2];case 1:n=r.sent(),e.event_type=n.event_type,e.event_properties=t(t({},e.event_properties),n.event_properties),r.label=2;case 2:return[2,e]}}))}))}};return p.__trackHistoryPageView=d,p},g=function(){return n(void 0,void 0,void 0,(function(){var e,i;return r(this,(function(o){switch(o.label){case 0:return i={event_type:"Page View"},e=[{}],[4,n(void 0,void 0,void 0,(function(){var e;return r(this,(function(t){switch(t.label){case 0:return e=v,[4,(new f).parse()];case 1:return[2,e.apply(void 0,[t.sent()])]}}))}))];case 1:return i.event_properties=t.apply(void 0,[t.apply(void 0,e.concat([o.sent()])),{page_domain:"undefined"!=typeof location&&location.hostname||"",page_location:"undefined"!=typeof location&&location.href||"",page_path:"undefined"!=typeof location&&location.pathname||"",page_title:"undefined"!=typeof document&&document.title||"",page_url:"undefined"!=typeof location&&location.href.split("?")[0]||""}]),[2,i]}}))}))},h=function(e){if("$identify"===e.event_type&&e.user_properties){var t=e.user_properties,n=t[a.SET]||{},r=t[a.UNSET]||{},c=o(o([],i(Object.keys(n)),!1),i(Object.keys(r)),!1);return Object.keys(s).every((function(e){return c.includes(e)}))}return!1},m=function(e,t,n){return"pathOnly"===e?t.split("?")[0]!==n.split("?")[0]:t!==n},w=Object.freeze({__proto__:null});return e.Types=w,e.pageViewTrackingPlugin=y,e.plugin=y,Object.defineProperty(e,"__esModule",{value:!0}),e}({});
1
+ var pageViewTracking=function(e){"use strict";var t=function(){return t=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},t.apply(this,arguments)};function n(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{u(r.next(e))}catch(e){o(e)}}function c(e){try{u(r.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}u((r=r.apply(e,t||[])).next())}))}function r(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){a.label=o[1];break}if(6===o[0]&&a.label<i[1]){a.label=i[1],i=o;break}if(i&&a.label<i[2]){a.label=i[2],a.ops.push(o);break}i[2]&&a.ops.pop(),a.trys.pop();continue}o=t.call(e,a)}catch(e){o=[6,e],r=0}finally{n=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,c])}}}function i(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,o=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)a.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return a}function o(e,t,n){if(n||2===arguments.length)for(var r,i=0,o=t.length;i<o;i++)!r&&i in t||(r||(r=Array.prototype.slice.call(t,0,i)),r[i]=t[i]);return e.concat(r||Array.prototype.slice.call(t))}var a,c,u,l,d=function(){return"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof self?self:"undefined"!=typeof global?global:void 0},p=function(){var e=d();return(null==e?void 0:e.location.search)?e.location.search.substring(1).split("&").filter(Boolean).reduce((function(e,t){var n=t.split("=",2),r=s(n[0]),i=s(n[1]);return i?(e[r]=i,e):e}),{}):{}},s=function(e){void 0===e&&(e="");try{return decodeURIComponent(e)}catch(e){return""}},f={utm_source:void 0,utm_medium:void 0,utm_campaign:void 0,utm_term:void 0,utm_content:void 0,referrer:void 0,referring_domain:void 0,dclid:void 0,gbraid:void 0,gclid:void 0,fbclid:void 0,ko_click_id:void 0,msclkid:void 0,ttclid:void 0,twclid:void 0,wbraid:void 0},v=function(){function e(){}return e.prototype.parse=function(){return n(this,void 0,void 0,(function(){return r(this,(function(e){return[2,t(t(t(t({},f),this.getUtmParam()),this.getReferrer()),this.getClickIds())]}))}))},e.prototype.getUtmParam=function(){var e=p();return{utm_source:e.utm_source,utm_medium:e.utm_medium,utm_campaign:e.utm_campaign,utm_term:e.utm_term,utm_content:e.utm_content}},e.prototype.getReferrer=function(){var e,t,n={referrer:void 0,referring_domain:void 0};try{n.referrer=document.referrer||void 0,n.referring_domain=null!==(t=null===(e=n.referrer)||void 0===e?void 0:e.split("/")[2])&&void 0!==t?t:void 0}catch(e){}return n},e.prototype.getClickIds=function(){var e,t=p();return(e={}).dclid=t.dclid,e.fbclid=t.fbclid,e.gbraid=t.gbraid,e.gclid=t.gclid,e.ko_click_id=t.ko_click_id,e.msclkid=t.msclkid,e.ttclid=t.ttclid,e.twclid=t.twclid,e.wbraid=t.wbraid,e},e}();!function(e){e.SET="$set",e.SET_ONCE="$setOnce",e.ADD="$add",e.APPEND="$append",e.PREPEND="$prepend",e.REMOVE="$remove",e.PREINSERT="$preInsert",e.POSTINSERT="$postInsert",e.UNSET="$unset",e.CLEAR_ALL="$clearAll"}(a||(a={})),function(e){e.REVENUE_PRODUCT_ID="$productId",e.REVENUE_QUANTITY="$quantity",e.REVENUE_PRICE="$price",e.REVENUE_TYPE="$revenueType",e.REVENUE="$revenue"}(c||(c={})),function(e){e.IDENTIFY="$identify",e.GROUP_IDENTIFY="$groupidentify",e.REVENUE="revenue_amount"}(u||(u={})),function(e){e.BEFORE="before",e.ENRICHMENT="enrichment",e.DESTINATION="destination"}(l||(l={}));var y=function(e){var t={};for(var n in e){var r=e[n];r&&(t[n]=r)}return t},g=function(e,o){void 0===o&&(o={});var a=d(),c=void 0,u=function(){return void 0===o.trackOn||"function"==typeof o.trackOn&&o.trackOn()},p=null,s=function(){return n(void 0,void 0,void 0,(function(){var t,n,i;return r(this,(function(r){switch(r.label){case 0:return t=location.href,_(o.trackHistoryChanges,t,p||"")&&u()?(null==c||c.log("Tracking page view event"),i=(n=e).track,[4,h()]):[3,2];case 1:i.apply(n,[r.sent()]),r.label=2;case 2:return p=t,[2]}}))}))},f={name:"page-view-tracking",type:l.ENRICHMENT,setup:function(t){return n(void 0,void 0,void 0,(function(){var n,l,d,p;return r(this,(function(r){switch(r.label){case 0:return(c=t.loggerProvider).log("Installing @amplitude/plugin-page-view-tracking-browser"),o.trackOn=(null===(d=t.attribution)||void 0===d?void 0:d.trackPageViews)?"attribution":o.trackOn,(null===(p=t.attribution)||void 0===p?void 0:p.trackPageViews)&&(c.warn("@amplitude/plugin-page-view-tracking-browser overrides page view tracking behavior defined in @amplitude/analytics-browser"),t.attribution.trackPageViews=!1),o.trackHistoryChanges&&a&&(a.addEventListener("popstate",(function(){s()})),a.history.pushState=new Proxy(a.history.pushState,{apply:function(e,t,n){var r=i(n,3),o=r[0],a=r[1],c=r[2];return s(),e.apply(t,[o,a,c])}})),u()?(c.log("Tracking page view event"),l=(n=e).track,[4,h()]):[3,2];case 1:l.apply(n,[r.sent()]),r.label=2;case 2:return[2]}}))}))},execute:function(e){return n(void 0,void 0,void 0,(function(){var n;return r(this,(function(r){switch(r.label){case 0:return"attribution"===o.trackOn&&m(e)?(null==c||c.log("Enriching campaign event to page view event with campaign parameters"),[4,h()]):[3,2];case 1:n=r.sent(),e.event_type=n.event_type,e.event_properties=t(t({},e.event_properties),n.event_properties),r.label=2;case 2:return[2,e]}}))}))}};return f.__trackHistoryPageView=s,f},h=function(){return n(void 0,void 0,void 0,(function(){var e,i;return r(this,(function(o){switch(o.label){case 0:return i={event_type:"Page View"},e=[{}],[4,n(void 0,void 0,void 0,(function(){var e;return r(this,(function(t){switch(t.label){case 0:return e=y,[4,(new v).parse()];case 1:return[2,e.apply(void 0,[t.sent()])]}}))}))];case 1:return i.event_properties=t.apply(void 0,[t.apply(void 0,e.concat([o.sent()])),{page_domain:"undefined"!=typeof location&&location.hostname||"",page_location:"undefined"!=typeof location&&location.href||"",page_path:"undefined"!=typeof location&&location.pathname||"",page_title:"undefined"!=typeof document&&document.title||"",page_url:"undefined"!=typeof location&&location.href.split("?")[0]||""}]),[2,i]}}))}))},m=function(e){if("$identify"===e.event_type&&e.user_properties){var t=e.user_properties,n=t[a.SET]||{},r=t[a.UNSET]||{},c=o(o([],i(Object.keys(n)),!1),i(Object.keys(r)),!1);return Object.keys(f).every((function(e){return c.includes(e)}))}return!1},_=function(e,t,n){return"pathOnly"===e?t.split("?")[0]!==n.split("?")[0]:t!==n},b=Object.freeze({__proto__:null});return e.Types=b,e.pageViewTrackingPlugin=g,e.plugin=g,Object.defineProperty(e,"__esModule",{value:!0}),e}({});
Binary file
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).amplitude={})}(this,(function(e){"use strict";var t=function(){return t=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},t.apply(this,arguments)};function n(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{u(r.next(e))}catch(e){o(e)}}function c(e){try{u(r.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}u((r=r.apply(e,t||[])).next())}))}function r(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){a.label=o[1];break}if(6===o[0]&&a.label<i[1]){a.label=i[1],i=o;break}if(i&&a.label<i[2]){a.label=i[2],a.ops.push(o);break}i[2]&&a.ops.pop(),a.trys.pop();continue}o=t.call(e,a)}catch(e){o=[6,e],r=0}finally{n=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,c])}}}function i(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,o=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)a.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return a}function o(e,t,n){if(n||2===arguments.length)for(var r,i=0,o=t.length;i<o;i++)!r&&i in t||(r||(r=Array.prototype.slice.call(t,0,i)),r[i]=t[i]);return e.concat(r||Array.prototype.slice.call(t))}var a,c,u,l,d=function(){return"undefined"!=typeof window&&window.location&&window.location.search?window.location.search.substring(1).split("&").filter(Boolean).reduce((function(e,t){var n=t.split("=",2),r=p(n[0]),i=p(n[1]);return i?(e[r]=i,e):e}),{}):{}},p=function(e){void 0===e&&(e="");try{return decodeURIComponent(e)}catch(e){return""}},s={utm_source:void 0,utm_medium:void 0,utm_campaign:void 0,utm_term:void 0,utm_content:void 0,referrer:void 0,referring_domain:void 0,dclid:void 0,gbraid:void 0,gclid:void 0,fbclid:void 0,ko_click_id:void 0,msclkid:void 0,ttclid:void 0,twclid:void 0,wbraid:void 0},f=function(){function e(){}return e.prototype.parse=function(){return n(this,void 0,void 0,(function(){return r(this,(function(e){return[2,t(t(t(t({},s),this.getUtmParam()),this.getReferrer()),this.getClickIds())]}))}))},e.prototype.getUtmParam=function(){var e=d();return{utm_source:e.utm_source,utm_medium:e.utm_medium,utm_campaign:e.utm_campaign,utm_term:e.utm_term,utm_content:e.utm_content}},e.prototype.getReferrer=function(){var e,t,n={referrer:void 0,referring_domain:void 0};try{n.referrer=document.referrer||void 0,n.referring_domain=null!==(t=null===(e=n.referrer)||void 0===e?void 0:e.split("/")[2])&&void 0!==t?t:void 0}catch(e){}return n},e.prototype.getClickIds=function(){var e,t=d();return(e={}).dclid=t.dclid,e.fbclid=t.fbclid,e.gbraid=t.gbraid,e.gclid=t.gclid,e.ko_click_id=t.ko_click_id,e.msclkid=t.msclkid,e.ttclid=t.ttclid,e.twclid=t.twclid,e.wbraid=t.wbraid,e},e}();!function(e){e.SET="$set",e.SET_ONCE="$setOnce",e.ADD="$add",e.APPEND="$append",e.PREPEND="$prepend",e.REMOVE="$remove",e.PREINSERT="$preInsert",e.POSTINSERT="$postInsert",e.UNSET="$unset",e.CLEAR_ALL="$clearAll"}(a||(a={})),function(e){e.REVENUE_PRODUCT_ID="$productId",e.REVENUE_QUANTITY="$quantity",e.REVENUE_PRICE="$price",e.REVENUE_TYPE="$revenueType",e.REVENUE="$revenue"}(c||(c={})),function(e){e.IDENTIFY="$identify",e.GROUP_IDENTIFY="$groupidentify",e.REVENUE="revenue_amount"}(u||(u={})),function(e){e.BEFORE="before",e.ENRICHMENT="enrichment",e.DESTINATION="destination"}(l||(l={}));var v=function(e){var t={};for(var n in e){var r=e[n];r&&(t[n]=r)}return t},y=function(e,o){void 0===o&&(o={});var a=void 0,c=function(){return void 0===o.trackOn||"function"==typeof o.trackOn&&o.trackOn()},u=null,d=function(){return n(void 0,void 0,void 0,(function(){var t,n,i;return r(this,(function(r){switch(r.label){case 0:return t=location.href,m(o.trackHistoryChanges,t,u||"")&&c()?(null==a||a.log("Tracking page view event"),i=(n=e).track,[4,g()]):[3,2];case 1:i.apply(n,[r.sent()]),r.label=2;case 2:return u=t,[2]}}))}))},p={name:"page-view-tracking",type:l.ENRICHMENT,setup:function(t){return n(void 0,void 0,void 0,(function(){var n,u,l,p;return r(this,(function(r){switch(r.label){case 0:return(a=t.loggerProvider).log("Installing @amplitude/plugin-page-view-tracking-browser"),o.trackOn=(null===(l=t.attribution)||void 0===l?void 0:l.trackPageViews)?"attribution":o.trackOn,(null===(p=t.attribution)||void 0===p?void 0:p.trackPageViews)&&(a.warn("@amplitude/plugin-page-view-tracking-browser overrides page view tracking behavior defined in @amplitude/analytics-browser"),t.attribution.trackPageViews=!1),o.trackHistoryChanges&&(window.addEventListener("popstate",(function(){d()})),window.history.pushState=new Proxy(window.history.pushState,{apply:function(e,t,n){var r=i(n,3),o=r[0],a=r[1],c=r[2];return d(),e.apply(t,[o,a,c])}})),c()?(a.log("Tracking page view event"),u=(n=e).track,[4,g()]):[3,2];case 1:u.apply(n,[r.sent()]),r.label=2;case 2:return[2]}}))}))},execute:function(e){return n(void 0,void 0,void 0,(function(){var n;return r(this,(function(r){switch(r.label){case 0:return"attribution"===o.trackOn&&h(e)?(null==a||a.log("Enriching campaign event to page view event with campaign parameters"),[4,g()]):[3,2];case 1:n=r.sent(),e.event_type=n.event_type,e.event_properties=t(t({},e.event_properties),n.event_properties),r.label=2;case 2:return[2,e]}}))}))}};return p.__trackHistoryPageView=d,p},g=function(){return n(void 0,void 0,void 0,(function(){var e,i;return r(this,(function(o){switch(o.label){case 0:return i={event_type:"Page View"},e=[{}],[4,n(void 0,void 0,void 0,(function(){var e;return r(this,(function(t){switch(t.label){case 0:return e=v,[4,(new f).parse()];case 1:return[2,e.apply(void 0,[t.sent()])]}}))}))];case 1:return i.event_properties=t.apply(void 0,[t.apply(void 0,e.concat([o.sent()])),{page_domain:"undefined"!=typeof location&&location.hostname||"",page_location:"undefined"!=typeof location&&location.href||"",page_path:"undefined"!=typeof location&&location.pathname||"",page_title:"undefined"!=typeof document&&document.title||"",page_url:"undefined"!=typeof location&&location.href.split("?")[0]||""}]),[2,i]}}))}))},h=function(e){if("$identify"===e.event_type&&e.user_properties){var t=e.user_properties,n=t[a.SET]||{},r=t[a.UNSET]||{},c=o(o([],i(Object.keys(n)),!1),i(Object.keys(r)),!1);return Object.keys(s).every((function(e){return c.includes(e)}))}return!1},m=function(e,t,n){return"pathOnly"===e?t.split("?")[0]!==n.split("?")[0]:t!==n},w=Object.freeze({__proto__:null});e.Types=w,e.pageViewTrackingPlugin=y,e.plugin=y,Object.defineProperty(e,"__esModule",{value:!0})}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).amplitude={})}(this,(function(e){"use strict";var t=function(){return t=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},t.apply(this,arguments)};function n(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{u(r.next(e))}catch(e){o(e)}}function c(e){try{u(r.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}u((r=r.apply(e,t||[])).next())}))}function r(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){a.label=o[1];break}if(6===o[0]&&a.label<i[1]){a.label=i[1],i=o;break}if(i&&a.label<i[2]){a.label=i[2],a.ops.push(o);break}i[2]&&a.ops.pop(),a.trys.pop();continue}o=t.call(e,a)}catch(e){o=[6,e],r=0}finally{n=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,c])}}}function i(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,o=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)a.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return a}function o(e,t,n){if(n||2===arguments.length)for(var r,i=0,o=t.length;i<o;i++)!r&&i in t||(r||(r=Array.prototype.slice.call(t,0,i)),r[i]=t[i]);return e.concat(r||Array.prototype.slice.call(t))}var a,c,u,l,d=function(){return"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof self?self:"undefined"!=typeof global?global:void 0},f=function(){var e=d();return(null==e?void 0:e.location.search)?e.location.search.substring(1).split("&").filter(Boolean).reduce((function(e,t){var n=t.split("=",2),r=p(n[0]),i=p(n[1]);return i?(e[r]=i,e):e}),{}):{}},p=function(e){void 0===e&&(e="");try{return decodeURIComponent(e)}catch(e){return""}},s={utm_source:void 0,utm_medium:void 0,utm_campaign:void 0,utm_term:void 0,utm_content:void 0,referrer:void 0,referring_domain:void 0,dclid:void 0,gbraid:void 0,gclid:void 0,fbclid:void 0,ko_click_id:void 0,msclkid:void 0,ttclid:void 0,twclid:void 0,wbraid:void 0},v=function(){function e(){}return e.prototype.parse=function(){return n(this,void 0,void 0,(function(){return r(this,(function(e){return[2,t(t(t(t({},s),this.getUtmParam()),this.getReferrer()),this.getClickIds())]}))}))},e.prototype.getUtmParam=function(){var e=f();return{utm_source:e.utm_source,utm_medium:e.utm_medium,utm_campaign:e.utm_campaign,utm_term:e.utm_term,utm_content:e.utm_content}},e.prototype.getReferrer=function(){var e,t,n={referrer:void 0,referring_domain:void 0};try{n.referrer=document.referrer||void 0,n.referring_domain=null!==(t=null===(e=n.referrer)||void 0===e?void 0:e.split("/")[2])&&void 0!==t?t:void 0}catch(e){}return n},e.prototype.getClickIds=function(){var e,t=f();return(e={}).dclid=t.dclid,e.fbclid=t.fbclid,e.gbraid=t.gbraid,e.gclid=t.gclid,e.ko_click_id=t.ko_click_id,e.msclkid=t.msclkid,e.ttclid=t.ttclid,e.twclid=t.twclid,e.wbraid=t.wbraid,e},e}();!function(e){e.SET="$set",e.SET_ONCE="$setOnce",e.ADD="$add",e.APPEND="$append",e.PREPEND="$prepend",e.REMOVE="$remove",e.PREINSERT="$preInsert",e.POSTINSERT="$postInsert",e.UNSET="$unset",e.CLEAR_ALL="$clearAll"}(a||(a={})),function(e){e.REVENUE_PRODUCT_ID="$productId",e.REVENUE_QUANTITY="$quantity",e.REVENUE_PRICE="$price",e.REVENUE_TYPE="$revenueType",e.REVENUE="$revenue"}(c||(c={})),function(e){e.IDENTIFY="$identify",e.GROUP_IDENTIFY="$groupidentify",e.REVENUE="revenue_amount"}(u||(u={})),function(e){e.BEFORE="before",e.ENRICHMENT="enrichment",e.DESTINATION="destination"}(l||(l={}));var y=function(e){var t={};for(var n in e){var r=e[n];r&&(t[n]=r)}return t},g=function(e,o){void 0===o&&(o={});var a=d(),c=void 0,u=function(){return void 0===o.trackOn||"function"==typeof o.trackOn&&o.trackOn()},f=null,p=function(){return n(void 0,void 0,void 0,(function(){var t,n,i;return r(this,(function(r){switch(r.label){case 0:return t=location.href,b(o.trackHistoryChanges,t,f||"")&&u()?(null==c||c.log("Tracking page view event"),i=(n=e).track,[4,h()]):[3,2];case 1:i.apply(n,[r.sent()]),r.label=2;case 2:return f=t,[2]}}))}))},s={name:"page-view-tracking",type:l.ENRICHMENT,setup:function(t){return n(void 0,void 0,void 0,(function(){var n,l,d,f;return r(this,(function(r){switch(r.label){case 0:return(c=t.loggerProvider).log("Installing @amplitude/plugin-page-view-tracking-browser"),o.trackOn=(null===(d=t.attribution)||void 0===d?void 0:d.trackPageViews)?"attribution":o.trackOn,(null===(f=t.attribution)||void 0===f?void 0:f.trackPageViews)&&(c.warn("@amplitude/plugin-page-view-tracking-browser overrides page view tracking behavior defined in @amplitude/analytics-browser"),t.attribution.trackPageViews=!1),o.trackHistoryChanges&&a&&(a.addEventListener("popstate",(function(){p()})),a.history.pushState=new Proxy(a.history.pushState,{apply:function(e,t,n){var r=i(n,3),o=r[0],a=r[1],c=r[2];return p(),e.apply(t,[o,a,c])}})),u()?(c.log("Tracking page view event"),l=(n=e).track,[4,h()]):[3,2];case 1:l.apply(n,[r.sent()]),r.label=2;case 2:return[2]}}))}))},execute:function(e){return n(void 0,void 0,void 0,(function(){var n;return r(this,(function(r){switch(r.label){case 0:return"attribution"===o.trackOn&&m(e)?(null==c||c.log("Enriching campaign event to page view event with campaign parameters"),[4,h()]):[3,2];case 1:n=r.sent(),e.event_type=n.event_type,e.event_properties=t(t({},e.event_properties),n.event_properties),r.label=2;case 2:return[2,e]}}))}))}};return s.__trackHistoryPageView=p,s},h=function(){return n(void 0,void 0,void 0,(function(){var e,i;return r(this,(function(o){switch(o.label){case 0:return i={event_type:"Page View"},e=[{}],[4,n(void 0,void 0,void 0,(function(){var e;return r(this,(function(t){switch(t.label){case 0:return e=y,[4,(new v).parse()];case 1:return[2,e.apply(void 0,[t.sent()])]}}))}))];case 1:return i.event_properties=t.apply(void 0,[t.apply(void 0,e.concat([o.sent()])),{page_domain:"undefined"!=typeof location&&location.hostname||"",page_location:"undefined"!=typeof location&&location.href||"",page_path:"undefined"!=typeof location&&location.pathname||"",page_title:"undefined"!=typeof document&&document.title||"",page_url:"undefined"!=typeof location&&location.href.split("?")[0]||""}]),[2,i]}}))}))},m=function(e){if("$identify"===e.event_type&&e.user_properties){var t=e.user_properties,n=t[a.SET]||{},r=t[a.UNSET]||{},c=o(o([],i(Object.keys(n)),!1),i(Object.keys(r)),!1);return Object.keys(s).every((function(e){return c.includes(e)}))}return!1},b=function(e,t,n){return"pathOnly"===e?t.split("?")[0]!==n.split("?")[0]:t!==n},_=Object.freeze({__proto__:null});e.Types=_,e.pageViewTrackingPlugin=g,e.plugin=g,Object.defineProperty(e,"__esModule",{value:!0})}));
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amplitude/plugin-page-view-tracking-browser",
3
- "version": "0.4.1",
3
+ "version": "0.4.2",
4
4
  "description": "",
5
5
  "author": "Amplitude Inc",
6
6
  "homepage": "https://github.com/amplitude/Amplitude-TypeScript",
@@ -36,12 +36,12 @@
36
36
  "url": "https://github.com/amplitude/Amplitude-TypeScript/issues"
37
37
  },
38
38
  "dependencies": {
39
- "@amplitude/analytics-client-common": "^0.3.1",
39
+ "@amplitude/analytics-client-common": "^0.3.2",
40
40
  "@amplitude/analytics-types": "^0.11.0",
41
41
  "tslib": "^2.3.1"
42
42
  },
43
43
  "devDependencies": {
44
- "@amplitude/analytics-browser": "^1.5.5",
44
+ "@amplitude/analytics-browser": "^1.5.6",
45
45
  "@rollup/plugin-commonjs": "^21.0.2",
46
46
  "@rollup/plugin-node-resolve": "^13.1.3",
47
47
  "@rollup/plugin-typescript": "^8.3.1",
@@ -53,5 +53,5 @@
53
53
  "files": [
54
54
  "lib"
55
55
  ],
56
- "gitHead": "e0e8c340cf94fd182cc313a177d4148ed89f4bd5"
56
+ "gitHead": "7e75f22a1d9a972f627d18ae2e09add8dac2c63f"
57
57
  }