{"version":3,"file":"static/js/ajs-destination.00fe0587.chunk.js","mappings":"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","sources":["../node_modules/@customerio/cdp-analytics-browser/src/lib/is-plan-event-enabled.ts","../node_modules/@customerio/cdp-analytics-browser/src/plugins/ajs-destination/loader.ts","../node_modules/@customerio/cdp-analytics-browser/src/plugins/ajs-destination/utils.ts","../node_modules/@customerio/cdp-analytics-browser/src/plugins/ajs-destination/index.ts","../node_modules/@customerio/cdp-analytics-core/src/validation/helpers.ts","../node_modules/@segment/analytics-next/src/lib/is-plan-event-enabled.ts","../node_modules/@segment/analytics-next/src/plugins/ajs-destination/loader.ts","../node_modules/@segment/analytics-next/src/plugins/ajs-destination/utils.ts","../node_modules/@segment/analytics-next/src/plugins/ajs-destination/index.ts"],"sourcesContent":["import { PlanEvent, TrackPlan } from '../core/events/interfaces'\n\n/**\n * Determines whether a track event is allowed to be sent based on the\n * user's tracking plan.\n * If the user does not have a tracking plan or the event is allowed based\n * on the tracking plan configuration, returns true.\n */\nexport function isPlanEventEnabled(\n plan: TrackPlan | undefined,\n planEvent: PlanEvent | undefined\n): boolean {\n // Always prioritize the event's `enabled` status\n if (typeof planEvent?.enabled === 'boolean') {\n return planEvent.enabled\n }\n\n // Assume absence of a tracking plan means events are enabled\n return plan?.__default?.enabled ?? true\n}\n","import { Analytics } from '../../core/analytics'\nimport { LegacyIntegrationConfiguration } from '../../browser'\nimport { getNextIntegrationsURL } from '../../lib/parse-cdn'\nimport { Context } from '../../core/context'\nimport { User } from '../../core/user'\nimport { loadScript, unloadScript } from '../../lib/load-script'\nimport {\n LegacyIntegration,\n ClassicIntegrationBuilder,\n ClassicIntegrationSource,\n} from './types'\n\nfunction normalizeName(name: string): string {\n return name.toLowerCase().replace('.', '').replace(/\\s+/g, '-')\n}\n\nfunction obfuscatePathName(pathName: string, obfuscate = false): string | void {\n return obfuscate ? btoa(pathName).replace(/=/g, '') : undefined\n}\n\nexport function resolveIntegrationNameFromSource(\n integrationSource: ClassicIntegrationSource\n) {\n return (\n 'Integration' in integrationSource\n ? integrationSource.Integration\n : integrationSource\n ).prototype.name\n}\n\nfunction recordLoadMetrics(fullPath: string, ctx: Context, name: string): void {\n try {\n const [metric] =\n window?.performance?.getEntriesByName(fullPath, 'resource') ?? []\n // we assume everything that took under 100ms is cached\n metric &&\n ctx.stats.gauge('legacy_destination_time', Math.round(metric.duration), [\n name,\n ...(metric.duration < 100 ? ['cached'] : []),\n ])\n } catch (_) {\n // not available\n }\n}\n\nexport function buildIntegration(\n integrationSource: ClassicIntegrationSource,\n integrationSettings: { [key: string]: any },\n analyticsInstance: Analytics\n): LegacyIntegration {\n let integrationCtr: ClassicIntegrationBuilder\n // GA and Appcues use a different interface to instantiating integrations\n if ('Integration' in integrationSource) {\n const analyticsStub = {\n user: (): User => analyticsInstance.user(),\n addIntegration: (): void => {},\n }\n\n integrationSource(analyticsStub)\n integrationCtr = integrationSource.Integration\n } else {\n integrationCtr = integrationSource\n }\n\n const integration = new integrationCtr(integrationSettings)\n integration.analytics = analyticsInstance\n return integration\n}\n\nexport async function loadIntegration(\n ctx: Context,\n name: string,\n version: string,\n obfuscate?: boolean\n): Promise {\n const pathName = normalizeName(name)\n const obfuscatedPathName = obfuscatePathName(pathName, obfuscate)\n const path = getNextIntegrationsURL()\n\n const fullPath = `${path}/${obfuscatedPathName ?? pathName\n }.js?version=${version}`\n\n try {\n await loadScript(fullPath)\n recordLoadMetrics(fullPath, ctx, name)\n } catch (err) {\n ctx.stats.gauge('legacy_destination_time', -1, [`plugin:${name}`, `failed`])\n throw err\n }\n\n // @ts-ignore\n const deps: string[] = window[`${pathName}Deps`]\n await Promise.all(deps.map((dep) => loadScript(path + dep + '.gz')))\n\n // @ts-ignore\n window[`${pathName}Loader`]()\n\n return window[\n // @ts-ignore\n `${pathName}Integration`\n ] as ClassicIntegrationSource\n}\n\nexport async function unloadIntegration(\n name: string,\n version: string,\n obfuscate?: boolean\n): Promise {\n const path = getNextIntegrationsURL()\n const pathName = normalizeName(name)\n const obfuscatedPathName = obfuscatePathName(name, obfuscate)\n\n const fullPath = `${path}/${obfuscatedPathName ?? pathName\n }.js?version=${version}`\n\n return unloadScript(fullPath)\n}\n\nexport function resolveVersion(\n settings?: LegacyIntegrationConfiguration\n): string {\n return (\n settings?.versionSettings?.override ??\n settings?.versionSettings?.version ??\n 'latest'\n )\n}\n","import { Integrations } from '@customerio/cdp-analytics-core'\nimport { LegacyIntegrationConfiguration } from '../..'\n\nexport const isInstallableIntegration = (\n name: string,\n integrationSettings: LegacyIntegrationConfiguration\n) => {\n const { type, bundlingStatus, versionSettings } = integrationSettings\n // We use `!== 'unbundled'` (versus `=== 'bundled'`) to be inclusive of\n // destinations without a defined value for `bundlingStatus`\n const deviceMode =\n bundlingStatus !== 'unbundled' &&\n (type === 'browser' || versionSettings?.componentTypes?.includes('browser'))\n\n // checking for iterable is a quick fix we need in place to prevent\n // errors showing Iterable as a failed destiantion. Ideally, we should\n // fix the Iterable metadata instead, but that's a longer process.\n return (\n name !== 'Customer.io Data Pipelines' && name !== 'Iterable' && deviceMode\n )\n}\n\nexport const isDisabledIntegration = (\n integrationName: string,\n globalIntegrations: Integrations\n) => {\n const allDisableAndNotDefined =\n globalIntegrations.All === false &&\n globalIntegrations[integrationName] === undefined\n\n return (\n globalIntegrations[integrationName] === false || allDisableAndNotDefined\n )\n}\n","import { Integrations, JSONObject } from '../../core/events'\nimport { Alias, Facade, Group, Identify, Page, Track } from '@segment/facade'\nimport { Analytics, InitOptions } from '../../core/analytics'\nimport { LegacySettings } from '../../browser'\nimport { isOffline, isOnline } from '../../core/connection'\nimport { Context, ContextCancelation } from '../../core/context'\nimport { isServer } from '../../core/environment'\nimport { DestinationPlugin, Plugin } from '../../core/plugin'\nimport { attempt } from '@customerio/cdp-analytics-core'\nimport { isPlanEventEnabled } from '../../lib/is-plan-event-enabled'\nimport { mergedOptions } from '../../lib/merged-options'\nimport { pWhile } from '../../lib/p-while'\nimport { PriorityQueue } from '../../lib/priority-queue'\nimport { PersistedPriorityQueue } from '../../lib/priority-queue/persisted'\nimport {\n applyDestinationMiddleware,\n DestinationMiddlewareFunction,\n} from '../middleware'\nimport {\n buildIntegration,\n loadIntegration,\n resolveIntegrationNameFromSource,\n resolveVersion,\n unloadIntegration,\n} from './loader'\nimport { LegacyIntegration, ClassicIntegrationSource } from './types'\nimport { isPlainObject } from '@customerio/cdp-analytics-core'\nimport {\n isDisabledIntegration as shouldSkipIntegration,\n isInstallableIntegration,\n} from './utils'\n\nexport type ClassType = new (...args: unknown[]) => T\n\nasync function flushQueue(\n xt: Plugin,\n queue: PriorityQueue\n): Promise> {\n const failedQueue: Context[] = []\n\n if (isOffline()) {\n return queue\n }\n\n await pWhile(\n () => queue.length > 0 && isOnline(),\n async () => {\n const ctx = queue.pop()\n if (!ctx) {\n return\n }\n\n const result = await attempt(ctx, xt)\n const success = result instanceof Context\n if (!success) {\n failedQueue.push(ctx)\n }\n }\n )\n\n // re-add failed tasks\n failedQueue.map((failed) => queue.pushWithBackoff(failed))\n return queue\n}\n\nexport class LegacyDestination implements DestinationPlugin {\n name: string\n version: string\n settings: JSONObject\n options: InitOptions = {}\n type: Plugin['type'] = 'destination'\n middleware: DestinationMiddlewareFunction[] = []\n\n private _ready = false\n private _initialized = false\n private onReady: Promise | undefined\n private onInitialize: Promise | undefined\n private disableAutoISOConversion: boolean\n\n integrationSource?: ClassicIntegrationSource\n integration: LegacyIntegration | undefined\n\n buffer: PriorityQueue\n flushing = false\n\n constructor(\n name: string,\n version: string,\n settings: JSONObject = {},\n options: InitOptions,\n integrationSource?: ClassicIntegrationSource\n ) {\n this.name = name\n this.version = version\n this.settings = { ...settings }\n this.disableAutoISOConversion = options.disableAutoISOConversion || false\n this.integrationSource = integrationSource\n\n // AJS-Renderer sets an extraneous `type` setting that clobbers\n // existing type defaults. We need to remove it if it's present\n if (this.settings['type'] && this.settings['type'] === 'browser') {\n delete this.settings['type']\n }\n\n this.options = options\n this.buffer = options.disableClientPersistence\n ? new PriorityQueue(4, [])\n : new PersistedPriorityQueue(4, `dest-${name}`)\n\n this.scheduleFlush()\n }\n\n isLoaded(): boolean {\n return this._ready\n }\n\n ready(): Promise {\n return this.onReady ?? Promise.resolve()\n }\n\n async load(ctx: Context, analyticsInstance: Analytics): Promise {\n if (this._ready || this.onReady !== undefined) {\n return\n }\n\n const integrationSource =\n this.integrationSource ??\n (await loadIntegration(\n ctx,\n this.name,\n this.version,\n this.options.obfuscate\n ))\n\n this.integration = buildIntegration(\n integrationSource,\n this.settings,\n analyticsInstance\n )\n\n this.onReady = new Promise((resolve) => {\n const onReadyFn = (): void => {\n this._ready = true\n resolve(true)\n }\n\n this.integration!.once('ready', onReadyFn)\n })\n\n this.onInitialize = new Promise((resolve) => {\n const onInit = (): void => {\n this._initialized = true\n resolve(true)\n }\n\n this.integration!.on('initialize', onInit)\n })\n\n try {\n ctx.stats.increment('analytics_js.integration.invoke', 1, [\n `method:initialize`,\n `integration_name:${this.name}`,\n ])\n\n this.integration.initialize()\n } catch (error) {\n ctx.stats.increment('analytics_js.integration.invoke.error', 1, [\n `method:initialize`,\n `integration_name:${this.name}`,\n ])\n\n throw error\n }\n }\n\n unload(_ctx: Context, _analyticsInstance: Analytics): Promise {\n return unloadIntegration(this.name, this.version, this.options.obfuscate)\n }\n\n addMiddleware(...fn: DestinationMiddlewareFunction[]): void {\n this.middleware = this.middleware.concat(...fn)\n }\n\n shouldBuffer(ctx: Context): boolean {\n return (\n // page events can't be buffered because of destinations that automatically add page views\n ctx.event.type !== 'page' &&\n (isOffline() || this._ready === false || this._initialized === false)\n )\n }\n\n private async send(\n ctx: Context,\n clz: ClassType,\n eventType: 'track' | 'identify' | 'page' | 'alias' | 'group'\n ): Promise {\n if (this.shouldBuffer(ctx)) {\n this.buffer.push(ctx)\n this.scheduleFlush()\n return ctx\n }\n\n const plan = this.options?.plan?.track\n const ev = ctx.event.event\n\n if (plan && ev && this.name !== 'Customer.io Data Pipelines') {\n const planEvent = plan[ev]\n if (!isPlanEventEnabled(plan, planEvent)) {\n ctx.updateEvent('integrations', {\n ...ctx.event.integrations,\n All: false,\n 'Customer.io Data Pipelines': true,\n })\n ctx.cancel(\n new ContextCancelation({\n retry: false,\n reason: `Event ${ev} disabled for integration ${this.name} in tracking plan`,\n type: 'Dropped by plan',\n })\n )\n return ctx\n } else {\n ctx.updateEvent('integrations', {\n ...ctx.event.integrations,\n ...planEvent?.integrations,\n })\n }\n\n if (planEvent?.enabled && planEvent?.integrations![this.name] === false) {\n ctx.cancel(\n new ContextCancelation({\n retry: false,\n reason: `Event ${ev} disabled for integration ${this.name} in tracking plan`,\n type: 'Dropped by plan',\n })\n )\n return ctx\n }\n }\n\n const afterMiddleware = await applyDestinationMiddleware(\n this.name,\n ctx.event,\n this.middleware\n )\n\n if (afterMiddleware === null) {\n return ctx\n }\n\n const event = new clz(afterMiddleware, {\n traverse: !this.disableAutoISOConversion,\n })\n\n ctx.stats.increment('analytics_js.integration.invoke', 1, [\n `method:${eventType}`,\n `integration_name:${this.name}`,\n ])\n\n try {\n if (this.integration) {\n await this.integration.invoke.call(this.integration, eventType, event)\n }\n } catch (err) {\n ctx.stats.increment('analytics_js.integration.invoke.error', 1, [\n `method:${eventType}`,\n `integration_name:${this.name}`,\n ])\n throw err\n }\n\n return ctx\n }\n\n async track(ctx: Context): Promise {\n return this.send(ctx, Track as ClassType, 'track')\n }\n\n async page(ctx: Context): Promise {\n if (this.integration?._assumesPageview && !this._initialized) {\n this.integration.initialize()\n }\n\n return this.onInitialize!.then(() => {\n return this.send(ctx, Page as ClassType, 'page')\n })\n }\n\n async identify(ctx: Context): Promise {\n return this.send(ctx, Identify as ClassType, 'identify')\n }\n\n async alias(ctx: Context): Promise {\n return this.send(ctx, Alias as ClassType, 'alias')\n }\n\n async group(ctx: Context): Promise {\n return this.send(ctx, Group as ClassType, 'group')\n }\n\n private scheduleFlush(): void {\n if (this.flushing) {\n return\n }\n\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n setTimeout(async () => {\n this.flushing = true\n this.buffer = await flushQueue(this, this.buffer)\n this.flushing = false\n\n if (this.buffer.todo > 0) {\n this.scheduleFlush()\n }\n }, Math.random() * 5000)\n }\n}\n\nexport function ajsDestinations(\n settings: LegacySettings,\n globalIntegrations: Integrations = {},\n options: InitOptions = {},\n routingMiddleware?: DestinationMiddlewareFunction,\n legacyIntegrationSources?: ClassicIntegrationSource[]\n): LegacyDestination[] {\n if (isServer()) {\n return []\n }\n\n if (settings.plan) {\n options = options ?? {}\n options.plan = settings.plan\n }\n\n const routingRules = settings.middlewareSettings?.routingRules ?? []\n const remoteIntegrationsConfig = settings.integrations\n const localIntegrationsConfig = options.integrations\n // merged remote CDN settings with user provided options\n const integrationOptions = mergedOptions(settings, options ?? {}) as Record<\n string,\n JSONObject\n >\n\n const adhocIntegrationSources = legacyIntegrationSources?.reduce(\n (acc, integrationSource) => ({\n ...acc,\n [resolveIntegrationNameFromSource(integrationSource)]: integrationSource,\n }),\n {} as Record\n )\n\n const installableIntegrations = new Set([\n // Remotely configured installable integrations\n ...Object.keys(remoteIntegrationsConfig).filter((name) =>\n isInstallableIntegration(name, remoteIntegrationsConfig[name])\n ),\n\n // Directly provided integration sources are only installable if settings for them are available\n ...Object.keys(adhocIntegrationSources || {}).filter(\n (name) =>\n isPlainObject(remoteIntegrationsConfig[name]) ||\n isPlainObject(localIntegrationsConfig?.[name])\n ),\n ])\n\n return Array.from(installableIntegrations)\n .filter((name) => !shouldSkipIntegration(name, globalIntegrations))\n .map((name) => {\n const integrationSettings = remoteIntegrationsConfig[name]\n const version = resolveVersion(integrationSettings)\n const destination = new LegacyDestination(\n name,\n version,\n integrationOptions[name],\n options,\n adhocIntegrationSources?.[name]\n )\n\n const routing = routingRules.filter(\n (rule) => rule.destinationName === name\n )\n if (routing.length > 0 && routingMiddleware) {\n destination.addMiddleware(routingMiddleware)\n }\n\n return destination\n })\n}\n","import { CoreCustomerioEvent } from '../events'\n\nexport function isString(obj: unknown): obj is string {\n return typeof obj === 'string'\n}\n\nexport function isNumber(obj: unknown): obj is number {\n return typeof obj === 'number'\n}\n\nexport function isFunction(obj: unknown): obj is Function {\n return typeof obj === 'function'\n}\n\nexport function isPlainObject(\n obj: unknown\n): obj is Record {\n return (\n Object.prototype.toString.call(obj).slice(8, -1).toLowerCase() === 'object'\n )\n}\n\nexport function hasUser(event: CoreCustomerioEvent): boolean {\n const id =\n event.userId ?? event.anonymousId ?? event.groupId ?? event.previousId\n return isString(id)\n}\n","import { PlanEvent, TrackPlan } from '../core/events/interfaces'\n\n/**\n * Determines whether a track event is allowed to be sent based on the\n * user's tracking plan.\n * If the user does not have a tracking plan or the event is allowed based\n * on the tracking plan configuration, returns true.\n */\nexport function isPlanEventEnabled(\n plan: TrackPlan | undefined,\n planEvent: PlanEvent | undefined\n): boolean {\n // Always prioritize the event's `enabled` status\n if (typeof planEvent?.enabled === 'boolean') {\n return planEvent.enabled\n }\n\n // Assume absence of a tracking plan means events are enabled\n return plan?.__default?.enabled ?? true\n}\n","import { Analytics } from '../../core/analytics'\nimport { LegacyIntegrationConfiguration } from '../../browser'\nimport { getNextIntegrationsURL } from '../../lib/parse-cdn'\nimport { Context } from '../../core/context'\nimport { User } from '../../core/user'\nimport { loadScript, unloadScript } from '../../lib/load-script'\nimport {\n LegacyIntegration,\n ClassicIntegrationBuilder,\n ClassicIntegrationSource,\n} from './types'\n\nfunction normalizeName(name: string): string {\n return name.toLowerCase().replace('.', '').replace(/\\s+/g, '-')\n}\n\nfunction obfuscatePathName(pathName: string, obfuscate = false): string | void {\n return obfuscate ? btoa(pathName).replace(/=/g, '') : undefined\n}\n\nexport function resolveIntegrationNameFromSource(\n integrationSource: ClassicIntegrationSource\n) {\n return (\n 'Integration' in integrationSource\n ? integrationSource.Integration\n : integrationSource\n ).prototype.name\n}\n\nfunction recordLoadMetrics(fullPath: string, ctx: Context, name: string): void {\n try {\n const [metric] =\n window?.performance?.getEntriesByName(fullPath, 'resource') ?? []\n // we assume everything that took under 100ms is cached\n metric &&\n ctx.stats.gauge('legacy_destination_time', Math.round(metric.duration), [\n name,\n ...(metric.duration < 100 ? ['cached'] : []),\n ])\n } catch (_) {\n // not available\n }\n}\n\nexport function buildIntegration(\n integrationSource: ClassicIntegrationSource,\n integrationSettings: { [key: string]: any },\n analyticsInstance: Analytics\n): LegacyIntegration {\n let integrationCtr: ClassicIntegrationBuilder\n // GA and Appcues use a different interface to instantiating integrations\n if ('Integration' in integrationSource) {\n const analyticsStub = {\n user: (): User => analyticsInstance.user(),\n addIntegration: (): void => {},\n }\n\n integrationSource(analyticsStub)\n integrationCtr = integrationSource.Integration\n } else {\n integrationCtr = integrationSource\n }\n\n const integration = new integrationCtr(integrationSettings)\n integration.analytics = analyticsInstance\n return integration\n}\n\nexport async function loadIntegration(\n ctx: Context,\n name: string,\n version: string,\n obfuscate?: boolean\n): Promise {\n const pathName = normalizeName(name)\n const obfuscatedPathName = obfuscatePathName(pathName, obfuscate)\n const path = getNextIntegrationsURL()\n\n const fullPath = `${path}/integrations/${\n obfuscatedPathName ?? pathName\n }/${version}/${obfuscatedPathName ?? pathName}.dynamic.js.gz`\n\n try {\n await loadScript(fullPath)\n recordLoadMetrics(fullPath, ctx, name)\n } catch (err) {\n ctx.stats.gauge('legacy_destination_time', -1, [`plugin:${name}`, `failed`])\n throw err\n }\n\n // @ts-ignore\n const deps: string[] = window[`${pathName}Deps`]\n await Promise.all(deps.map((dep) => loadScript(path + dep + '.gz')))\n\n // @ts-ignore\n window[`${pathName}Loader`]()\n\n return window[\n // @ts-ignore\n `${pathName}Integration`\n ] as ClassicIntegrationSource\n}\n\nexport async function unloadIntegration(\n name: string,\n version: string,\n obfuscate?: boolean\n): Promise {\n const path = getNextIntegrationsURL()\n const pathName = normalizeName(name)\n const obfuscatedPathName = obfuscatePathName(name, obfuscate)\n\n const fullPath = `${path}/integrations/${\n obfuscatedPathName ?? pathName\n }/${version}/${obfuscatedPathName ?? pathName}.dynamic.js.gz`\n\n return unloadScript(fullPath)\n}\n\nexport function resolveVersion(\n settings?: LegacyIntegrationConfiguration\n): string {\n return (\n settings?.versionSettings?.override ??\n settings?.versionSettings?.version ??\n 'latest'\n )\n}\n","import { Integrations } from '@segment/analytics-core'\nimport { LegacyIntegrationConfiguration } from '../..'\n\nexport const isInstallableIntegration = (\n name: string,\n integrationSettings: LegacyIntegrationConfiguration\n) => {\n const { type, bundlingStatus, versionSettings } = integrationSettings\n // We use `!== 'unbundled'` (versus `=== 'bundled'`) to be inclusive of\n // destinations without a defined value for `bundlingStatus`\n const deviceMode =\n bundlingStatus !== 'unbundled' &&\n (type === 'browser' || versionSettings?.componentTypes?.includes('browser'))\n\n // checking for iterable is a quick fix we need in place to prevent\n // errors showing Iterable as a failed destiantion. Ideally, we should\n // fix the Iterable metadata instead, but that's a longer process.\n return !name.startsWith('Segment') && name !== 'Iterable' && deviceMode\n}\n\nexport const isDisabledIntegration = (\n integrationName: string,\n globalIntegrations: Integrations\n) => {\n const allDisableAndNotDefined =\n globalIntegrations.All === false &&\n globalIntegrations[integrationName] === undefined\n\n return (\n globalIntegrations[integrationName] === false || allDisableAndNotDefined\n )\n}\n","import { Integrations, JSONObject } from '../../core/events'\nimport { Alias, Facade, Group, Identify, Page, Track } from '@segment/facade'\nimport { Analytics, InitOptions } from '../../core/analytics'\nimport { LegacySettings } from '../../browser'\nimport { isOffline, isOnline } from '../../core/connection'\nimport { Context, ContextCancelation } from '../../core/context'\nimport { isServer } from '../../core/environment'\nimport { DestinationPlugin, Plugin } from '../../core/plugin'\nimport { attempt } from '@segment/analytics-core'\nimport { isPlanEventEnabled } from '../../lib/is-plan-event-enabled'\nimport { mergedOptions } from '../../lib/merged-options'\nimport { pWhile } from '../../lib/p-while'\nimport { PriorityQueue } from '../../lib/priority-queue'\nimport { PersistedPriorityQueue } from '../../lib/priority-queue/persisted'\nimport {\n applyDestinationMiddleware,\n DestinationMiddlewareFunction,\n} from '../middleware'\nimport {\n buildIntegration,\n loadIntegration,\n resolveIntegrationNameFromSource,\n resolveVersion,\n unloadIntegration,\n} from './loader'\nimport { LegacyIntegration, ClassicIntegrationSource } from './types'\nimport { isPlainObject } from '@segment/analytics-core'\nimport {\n isDisabledIntegration as shouldSkipIntegration,\n isInstallableIntegration,\n} from './utils'\n\nexport type ClassType = new (...args: unknown[]) => T\n\nasync function flushQueue(\n xt: Plugin,\n queue: PriorityQueue\n): Promise> {\n const failedQueue: Context[] = []\n\n if (isOffline()) {\n return queue\n }\n\n await pWhile(\n () => queue.length > 0 && isOnline(),\n async () => {\n const ctx = queue.pop()\n if (!ctx) {\n return\n }\n\n const result = await attempt(ctx, xt)\n const success = result instanceof Context\n if (!success) {\n failedQueue.push(ctx)\n }\n }\n )\n\n // re-add failed tasks\n failedQueue.map((failed) => queue.pushWithBackoff(failed))\n return queue\n}\n\nexport class LegacyDestination implements DestinationPlugin {\n name: string\n version: string\n settings: JSONObject\n options: InitOptions = {}\n type: Plugin['type'] = 'destination'\n middleware: DestinationMiddlewareFunction[] = []\n\n private _ready = false\n private _initialized = false\n private onReady: Promise | undefined\n private onInitialize: Promise | undefined\n private disableAutoISOConversion: boolean\n\n integrationSource?: ClassicIntegrationSource\n integration: LegacyIntegration | undefined\n\n buffer: PriorityQueue\n flushing = false\n\n constructor(\n name: string,\n version: string,\n writeKey: string,\n settings: JSONObject = {},\n options: InitOptions,\n integrationSource?: ClassicIntegrationSource\n ) {\n this.name = name\n this.version = version\n this.settings = { ...settings }\n this.disableAutoISOConversion = options.disableAutoISOConversion || false\n this.integrationSource = integrationSource\n\n // AJS-Renderer sets an extraneous `type` setting that clobbers\n // existing type defaults. We need to remove it if it's present\n if (this.settings['type'] && this.settings['type'] === 'browser') {\n delete this.settings['type']\n }\n\n this.options = options\n this.buffer = options.disableClientPersistence\n ? new PriorityQueue(4, [])\n : new PersistedPriorityQueue(4, `${writeKey}:dest-${name}`)\n\n this.scheduleFlush()\n }\n\n isLoaded(): boolean {\n return this._ready\n }\n\n ready(): Promise {\n return this.onReady ?? Promise.resolve()\n }\n\n async load(ctx: Context, analyticsInstance: Analytics): Promise {\n if (this._ready || this.onReady !== undefined) {\n return\n }\n\n const integrationSource =\n this.integrationSource ??\n (await loadIntegration(\n ctx,\n this.name,\n this.version,\n this.options.obfuscate\n ))\n\n this.integration = buildIntegration(\n integrationSource,\n this.settings,\n analyticsInstance\n )\n\n this.onReady = new Promise((resolve) => {\n const onReadyFn = (): void => {\n this._ready = true\n resolve(true)\n }\n\n this.integration!.once('ready', onReadyFn)\n })\n\n this.onInitialize = new Promise((resolve) => {\n const onInit = (): void => {\n this._initialized = true\n resolve(true)\n }\n\n this.integration!.on('initialize', onInit)\n })\n\n try {\n ctx.stats.increment('analytics_js.integration.invoke', 1, [\n `method:initialize`,\n `integration_name:${this.name}`,\n ])\n\n this.integration.initialize()\n } catch (error) {\n ctx.stats.increment('analytics_js.integration.invoke.error', 1, [\n `method:initialize`,\n `integration_name:${this.name}`,\n ])\n\n throw error\n }\n }\n\n unload(_ctx: Context, _analyticsInstance: Analytics): Promise {\n return unloadIntegration(this.name, this.version, this.options.obfuscate)\n }\n\n addMiddleware(...fn: DestinationMiddlewareFunction[]): void {\n this.middleware = this.middleware.concat(...fn)\n }\n\n shouldBuffer(ctx: Context): boolean {\n return (\n // page events can't be buffered because of destinations that automatically add page views\n ctx.event.type !== 'page' &&\n (isOffline() || this._ready === false || this._initialized === false)\n )\n }\n\n private async send(\n ctx: Context,\n clz: ClassType,\n eventType: 'track' | 'identify' | 'page' | 'alias' | 'group'\n ): Promise {\n if (this.shouldBuffer(ctx)) {\n this.buffer.push(ctx)\n this.scheduleFlush()\n return ctx\n }\n\n const plan = this.options?.plan?.track\n const ev = ctx.event.event\n\n if (plan && ev && this.name !== 'Segment.io') {\n // events are always sent to segment (legacy behavior)\n const planEvent = plan[ev]\n if (!isPlanEventEnabled(plan, planEvent)) {\n ctx.updateEvent('integrations', {\n ...ctx.event.integrations,\n All: false,\n 'Segment.io': true,\n })\n ctx.cancel(\n new ContextCancelation({\n retry: false,\n reason: `Event ${ev} disabled for integration ${this.name} in tracking plan`,\n type: 'Dropped by plan',\n })\n )\n return ctx\n } else {\n ctx.updateEvent('integrations', {\n ...ctx.event.integrations,\n ...planEvent?.integrations,\n })\n }\n\n if (planEvent?.enabled && planEvent?.integrations![this.name] === false) {\n ctx.cancel(\n new ContextCancelation({\n retry: false,\n reason: `Event ${ev} disabled for integration ${this.name} in tracking plan`,\n type: 'Dropped by plan',\n })\n )\n return ctx\n }\n }\n\n const afterMiddleware = await applyDestinationMiddleware(\n this.name,\n ctx.event,\n this.middleware\n )\n\n if (afterMiddleware === null) {\n return ctx\n }\n\n const event = new clz(afterMiddleware, {\n traverse: !this.disableAutoISOConversion,\n })\n\n ctx.stats.increment('analytics_js.integration.invoke', 1, [\n `method:${eventType}`,\n `integration_name:${this.name}`,\n ])\n\n try {\n if (this.integration) {\n await this.integration.invoke.call(this.integration, eventType, event)\n }\n } catch (err) {\n ctx.stats.increment('analytics_js.integration.invoke.error', 1, [\n `method:${eventType}`,\n `integration_name:${this.name}`,\n ])\n throw err\n }\n\n return ctx\n }\n\n async track(ctx: Context): Promise {\n return this.send(ctx, Track as ClassType, 'track')\n }\n\n async page(ctx: Context): Promise {\n if (this.integration?._assumesPageview && !this._initialized) {\n this.integration.initialize()\n }\n\n return this.onInitialize!.then(() => {\n return this.send(ctx, Page as ClassType, 'page')\n })\n }\n\n async identify(ctx: Context): Promise {\n return this.send(ctx, Identify as ClassType, 'identify')\n }\n\n async alias(ctx: Context): Promise {\n return this.send(ctx, Alias as ClassType, 'alias')\n }\n\n async group(ctx: Context): Promise {\n return this.send(ctx, Group as ClassType, 'group')\n }\n\n private scheduleFlush(): void {\n if (this.flushing) {\n return\n }\n\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n setTimeout(async () => {\n this.flushing = true\n this.buffer = await flushQueue(this, this.buffer)\n this.flushing = false\n\n if (this.buffer.todo > 0) {\n this.scheduleFlush()\n }\n }, Math.random() * 5000)\n }\n}\n\nexport function ajsDestinations(\n writeKey: string,\n settings: LegacySettings,\n globalIntegrations: Integrations = {},\n options: InitOptions = {},\n routingMiddleware?: DestinationMiddlewareFunction,\n legacyIntegrationSources?: ClassicIntegrationSource[]\n): LegacyDestination[] {\n if (isServer()) {\n return []\n }\n\n if (settings.plan) {\n options = options ?? {}\n options.plan = settings.plan\n }\n\n const routingRules = settings.middlewareSettings?.routingRules ?? []\n const remoteIntegrationsConfig = settings.integrations\n const localIntegrationsConfig = options.integrations\n // merged remote CDN settings with user provided options\n const integrationOptions = mergedOptions(settings, options ?? {}) as Record<\n string,\n JSONObject\n >\n\n const adhocIntegrationSources = legacyIntegrationSources?.reduce(\n (acc, integrationSource) => ({\n ...acc,\n [resolveIntegrationNameFromSource(integrationSource)]: integrationSource,\n }),\n {} as Record\n )\n\n const installableIntegrations = new Set([\n // Remotely configured installable integrations\n ...Object.keys(remoteIntegrationsConfig).filter((name) =>\n isInstallableIntegration(name, remoteIntegrationsConfig[name])\n ),\n\n // Directly provided integration sources are only installable if settings for them are available\n ...Object.keys(adhocIntegrationSources || {}).filter(\n (name) =>\n isPlainObject(remoteIntegrationsConfig[name]) ||\n isPlainObject(localIntegrationsConfig?.[name])\n ),\n ])\n\n return Array.from(installableIntegrations)\n .filter((name) => !shouldSkipIntegration(name, globalIntegrations))\n .map((name) => {\n const integrationSettings = remoteIntegrationsConfig[name]\n const version = resolveVersion(integrationSettings)\n const destination = new LegacyDestination(\n name,\n version,\n writeKey,\n integrationOptions[name],\n options,\n adhocIntegrationSources?.[name]\n )\n\n const routing = routingRules.filter(\n (rule) => rule.destinationName === name\n )\n if (routing.length > 0 && routingMiddleware) {\n destination.addMiddleware(routingMiddleware)\n }\n\n return destination\n })\n}\n"],"names":["isPlanEventEnabled","plan","planEvent","enabled","_b","_a","__default","normalizeName","name","toLowerCase","replace","obfuscatePathName","pathName","obfuscate","btoa","undefined","loadIntegration","ctx","version","obfuscatedPathName","path","getNextIntegrationsURL","fullPath","concat","loadScript","sent","metric","window","performance","getEntriesByName","stats","gauge","Math","round","duration","__spreadArray","_","recordLoadMetrics","err_1","deps","Promise","all","map","dep","isInstallableIntegration","integrationSettings","type","bundlingStatus","versionSettings","deviceMode","componentTypes","includes","isDisabledIntegration","integrationName","globalIntegrations","allDisableAndNotDefined","All","flushQueue","xt","queue","failedQueue","isOffline","pWhile","length","isOnline","__awaiter","_this","pop","attempt","result","Context","push","failed","pushWithBackoff","LegacyDestination","settings","options","integrationSource","middleware","_ready","_initialized","flushing","this","__assign","disableAutoISOConversion","buffer","disableClientPersistence","PriorityQueue","PersistedPriorityQueue","scheduleFlush","prototype","isLoaded","ready","onReady","resolve","load","analyticsInstance","_c","integration","integrationCtr","user","addIntegration","Integration","analytics","buildIntegration","once","onInitialize","on","increment","initialize","error","unload","_ctx","_analyticsInstance","unloadScript","unloadIntegration","addMiddleware","fn","_i","arguments","apply","shouldBuffer","event","send","clz","eventType","track","ev","updateEvent","integrations","cancel","ContextCancelation","retry","reason","applyDestinationMiddleware","afterMiddleware","traverse","invoke","call","Track","page","_assumesPageview","then","Page","identify","Identify","alias","Alias","group","Group","setTimeout","todo","random","ajsDestinations","routingMiddleware","legacyIntegrationSources","isServer","routingRules","middlewareSettings","remoteIntegrationsConfig","localIntegrationsConfig","integrationOptions","mergedOptions","adhocIntegrationSources","reduce","acc","resolveIntegrationNameFromSource","installableIntegrations","Set","Object","keys","filter","isPlainObject","Array","from","shouldSkipIntegration","_d","override","resolveVersion","destination","rule","destinationName","obj","toString","slice","startsWith","writeKey"],"sourceRoot":""}