@amplitude/analytics-browser 0.5.1 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/lib/cjs/attribution/campaign-parser.d.ts +10 -0
- package/lib/cjs/attribution/campaign-parser.d.ts.map +1 -0
- package/lib/cjs/attribution/campaign-parser.js +83 -0
- package/lib/cjs/attribution/campaign-parser.js.map +1 -0
- package/lib/cjs/attribution/campaign-tracker.d.ts +72 -0
- package/lib/cjs/attribution/campaign-tracker.d.ts.map +1 -0
- package/lib/cjs/attribution/campaign-tracker.js +113 -0
- package/lib/cjs/attribution/campaign-tracker.js.map +1 -0
- package/lib/cjs/{constants.d.ts → attribution/constants.d.ts} +4 -0
- package/lib/cjs/attribution/constants.d.ts.map +1 -0
- package/lib/cjs/attribution/constants.js +28 -0
- package/lib/cjs/attribution/constants.js.map +1 -0
- package/lib/cjs/browser-client.d.ts +16 -4
- package/lib/cjs/browser-client.d.ts.map +1 -1
- package/lib/cjs/browser-client.js +62 -34
- package/lib/cjs/browser-client.js.map +1 -1
- package/lib/cjs/config.d.ts +19 -20
- package/lib/cjs/config.d.ts.map +1 -1
- package/lib/cjs/config.js +204 -91
- package/lib/cjs/config.js.map +1 -1
- package/lib/cjs/cookie-migration/index.d.ts +1 -1
- package/lib/cjs/cookie-migration/index.d.ts.map +1 -1
- package/lib/cjs/cookie-migration/index.js +43 -28
- package/lib/cjs/cookie-migration/index.js.map +1 -1
- package/lib/cjs/index.d.ts +1 -1
- package/lib/cjs/index.d.ts.map +1 -1
- package/lib/cjs/index.js +2 -1
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/plugins/context.d.ts +1 -0
- package/lib/cjs/plugins/context.d.ts.map +1 -1
- package/lib/cjs/plugins/context.js +25 -12
- package/lib/cjs/plugins/context.js.map +1 -1
- package/lib/cjs/session-manager.d.ts +27 -5
- package/lib/cjs/session-manager.d.ts.map +1 -1
- package/lib/cjs/session-manager.js +81 -33
- package/lib/cjs/session-manager.js.map +1 -1
- package/lib/cjs/storage/cookie.d.ts +6 -6
- package/lib/cjs/storage/cookie.d.ts.map +1 -1
- package/lib/cjs/storage/cookie.js +116 -67
- package/lib/cjs/storage/cookie.js.map +1 -1
- package/lib/cjs/storage/local-storage.d.ts +6 -6
- package/lib/cjs/storage/local-storage.d.ts.map +1 -1
- package/lib/cjs/storage/local-storage.js +95 -50
- package/lib/cjs/storage/local-storage.js.map +1 -1
- package/lib/cjs/storage/utm-cookie.d.ts +2 -2
- package/lib/cjs/storage/utm-cookie.d.ts.map +1 -1
- package/lib/cjs/storage/utm-cookie.js +32 -18
- package/lib/cjs/storage/utm-cookie.js.map +1 -1
- package/lib/cjs/utils/cookie-name.d.ts +3 -0
- package/lib/cjs/utils/cookie-name.d.ts.map +1 -0
- package/lib/cjs/utils/cookie-name.js +14 -0
- package/lib/cjs/utils/cookie-name.js.map +1 -0
- package/lib/cjs/version.d.ts +1 -1
- package/lib/cjs/version.js +1 -1
- package/lib/cjs/version.js.map +1 -1
- package/lib/esm/attribution/campaign-parser.d.ts +10 -0
- package/lib/esm/attribution/campaign-parser.d.ts.map +1 -0
- package/lib/esm/attribution/campaign-parser.js +81 -0
- package/lib/esm/attribution/campaign-parser.js.map +1 -0
- package/lib/esm/attribution/campaign-tracker.d.ts +72 -0
- package/lib/esm/attribution/campaign-tracker.d.ts.map +1 -0
- package/lib/esm/attribution/campaign-tracker.js +111 -0
- package/lib/esm/attribution/campaign-tracker.js.map +1 -0
- package/lib/esm/{constants.d.ts → attribution/constants.d.ts} +4 -0
- package/lib/esm/attribution/constants.d.ts.map +1 -0
- package/lib/esm/{constants.js → attribution/constants.js} +13 -0
- package/lib/esm/attribution/constants.js.map +1 -0
- package/lib/esm/browser-client.d.ts +16 -4
- package/lib/esm/browser-client.d.ts.map +1 -1
- package/lib/esm/browser-client.js +63 -35
- package/lib/esm/browser-client.js.map +1 -1
- package/lib/esm/config.d.ts +19 -20
- package/lib/esm/config.d.ts.map +1 -1
- package/lib/esm/config.js +202 -90
- package/lib/esm/config.js.map +1 -1
- package/lib/esm/cookie-migration/index.d.ts +1 -1
- package/lib/esm/cookie-migration/index.d.ts.map +1 -1
- package/lib/esm/cookie-migration/index.js +43 -29
- package/lib/esm/cookie-migration/index.js.map +1 -1
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.d.ts.map +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/plugins/context.d.ts +1 -0
- package/lib/esm/plugins/context.d.ts.map +1 -1
- package/lib/esm/plugins/context.js +26 -13
- package/lib/esm/plugins/context.js.map +1 -1
- package/lib/esm/session-manager.d.ts +27 -5
- package/lib/esm/session-manager.d.ts.map +1 -1
- package/lib/esm/session-manager.js +80 -28
- package/lib/esm/session-manager.js.map +1 -1
- package/lib/esm/storage/cookie.d.ts +6 -6
- package/lib/esm/storage/cookie.d.ts.map +1 -1
- package/lib/esm/storage/cookie.js +117 -68
- package/lib/esm/storage/cookie.js.map +1 -1
- package/lib/esm/storage/local-storage.d.ts +6 -6
- package/lib/esm/storage/local-storage.d.ts.map +1 -1
- package/lib/esm/storage/local-storage.js +95 -50
- package/lib/esm/storage/local-storage.js.map +1 -1
- package/lib/esm/storage/utm-cookie.d.ts +2 -2
- package/lib/esm/storage/utm-cookie.d.ts.map +1 -1
- package/lib/esm/storage/utm-cookie.js +33 -19
- package/lib/esm/storage/utm-cookie.js.map +1 -1
- package/lib/esm/utils/cookie-name.d.ts +3 -0
- package/lib/esm/utils/cookie-name.d.ts.map +1 -0
- package/lib/esm/utils/cookie-name.js +10 -0
- package/lib/esm/utils/cookie-name.js.map +1 -0
- package/lib/esm/version.d.ts +1 -1
- package/lib/esm/version.js +1 -1
- package/lib/esm/version.js.map +1 -1
- package/lib/scripts/amplitude-min.js +1 -1
- package/lib/scripts/amplitude-min.js.gz +0 -0
- package/lib/scripts/amplitude-min.umd.js +1 -1
- package/lib/scripts/amplitude-min.umd.js.gz +0 -0
- package/lib/scripts/amplitude-snippet-instructions.html +1 -1
- package/lib/scripts/amplitude-snippet-min.js +1 -1
- package/package.json +4 -4
- package/lib/cjs/attribution.d.ts +0 -11
- package/lib/cjs/attribution.d.ts.map +0 -1
- package/lib/cjs/attribution.js +0 -64
- package/lib/cjs/attribution.js.map +0 -1
- package/lib/cjs/constants.d.ts.map +0 -1
- package/lib/cjs/constants.js +0 -15
- package/lib/cjs/constants.js.map +0 -1
- package/lib/esm/attribution.d.ts +0 -11
- package/lib/esm/attribution.d.ts.map +0 -1
- package/lib/esm/attribution.js +0 -57
- package/lib/esm/attribution.js.map +0 -1
- package/lib/esm/constants.d.ts.map +0 -1
- package/lib/esm/constants.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-client.js","sourceRoot":"","sources":["../../src/browser-client.ts"],"names":[],"mappings":"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","sourcesContent":["import { AmplitudeCore, Destination, Identify, Revenue, returnWrapper } from '@amplitude/analytics-core';\nimport {\n BrowserConfig,\n BrowserOptions,\n EventOptions,\n Identify as IIdentify,\n Result,\n Revenue as IRevenue,\n TransportType,\n} from '@amplitude/analytics-types';\nimport { convertProxyObjectToRealObject, isInstanceProxy } from './utils/snippet-helper';\nimport { Context } from './plugins/context';\nimport { useBrowserConfig, createTransport, createDeviceId } from './config';\nimport { getAttributions } from './attribution';\nimport { updateCookies } from './session-manager';\nimport { parseOldCookies } from './cookie-migration';\n\nexport class AmplitudeBrowser extends AmplitudeCore<BrowserConfig> {\n async init(apiKey: string, userId?: string, options?: BrowserOptions) {\n // Step 1: Read cookies stored by old SDK\n const oldCookies = parseOldCookies(apiKey, options);\n\n // Step 2: Create browser config\n const browserOptions = useBrowserConfig(apiKey, userId || oldCookies.userId, {\n ...options,\n deviceId: oldCookies.deviceId ?? options?.deviceId,\n sessionId: oldCookies.sessionId ?? options?.sessionId,\n optOut: options?.optOut ?? oldCookies.optOut,\n });\n await super.init(undefined, undefined, browserOptions);\n\n // Step 3: Store user session in cookie storage\n updateCookies(this.config, oldCookies.lastEventTime);\n\n // Step 4: Install plugins\n await this.add(new Context());\n await this.add(new Destination());\n\n // Step 4: Track attributions\n void this.trackAttributions();\n }\n\n getUserId() {\n return this.config.userId;\n }\n\n setUserId(userId: string | undefined) {\n this.config.userId = userId;\n updateCookies(this.config);\n }\n\n getDeviceId() {\n return this.config.deviceId;\n }\n\n setDeviceId(deviceId: string) {\n this.config.deviceId = deviceId;\n updateCookies(this.config);\n }\n\n regenerateDeviceId() {\n const deviceId = createDeviceId();\n this.setDeviceId(deviceId);\n }\n\n getSessionId() {\n return this.config.sessionId;\n }\n\n setSessionId(sessionId: number) {\n this.config.sessionId = sessionId;\n updateCookies(this.config);\n }\n\n setOptOut(optOut: boolean) {\n super.setOptOut(optOut);\n updateCookies(this.config);\n }\n\n setTransport(transport: TransportType) {\n this.config.transportProvider = createTransport(transport);\n }\n\n identify(identify: IIdentify, eventOptions?: EventOptions): Promise<Result> {\n if (isInstanceProxy(identify)) {\n const queue = identify._q;\n identify._q = [];\n identify = convertProxyObjectToRealObject(new Identify(), queue);\n }\n return super.identify(identify, eventOptions);\n }\n\n groupIdentify(\n groupType: string,\n groupName: string | string[],\n identify: IIdentify,\n eventOptions?: EventOptions,\n ): Promise<Result> {\n if (isInstanceProxy(identify)) {\n const queue = identify._q;\n identify._q = [];\n identify = convertProxyObjectToRealObject(new Identify(), queue);\n }\n return super.groupIdentify(groupType, groupName, identify, eventOptions);\n }\n\n revenue(revenue: IRevenue, eventOptions?: EventOptions) {\n if (isInstanceProxy(revenue)) {\n const queue = revenue._q;\n revenue._q = [];\n revenue = convertProxyObjectToRealObject(new Revenue(), queue);\n }\n return super.revenue(revenue, eventOptions);\n }\n\n trackAttributions() {\n const attributions = getAttributions(this.config);\n if (Object.keys(attributions).length === 0) {\n return;\n }\n const id = new Identify();\n Object.entries(attributions).forEach(([key, value]: [string, string]) => {\n if (value) {\n id.setOnce(`initial_${key}`, value);\n id.set(key, value);\n }\n });\n return this.identify(id);\n }\n}\n\nconst client = new AmplitudeBrowser();\n\n/**\n * Initializes the Amplitude SDK with your apiKey, userId and optional configurations.\n * This method must be called before any other operations.\n *\n * ```typescript\n * await init(API_KEY, USER_ID, options).promise;\n * ```\n */\nexport const init = returnWrapper(client.init.bind(client));\n\n/**\n * Adds a new plugin.\n *\n * ```typescript\n * const plugin = {...};\n * amplitude.add(plugin);\n * ```\n */\nexport const add = returnWrapper(client.add.bind(client));\n\n/**\n * Removes a plugin.\n *\n * ```typescript\n * amplitude.remove('myPlugin');\n * ```\n */\nexport const remove = returnWrapper(client.remove.bind(client));\n\n/**\n * Tracks user-defined event, with specified type, optional event properties and optional overwrites.\n *\n * ```typescript\n * // event tracking with event type only\n * track('Page Load');\n *\n * // event tracking with event type and additional event properties\n * track('Page Load', { loadTime: 1000 });\n *\n * // event tracking with event type, additional event properties, and overwritten event options\n * track('Page Load', { loadTime: 1000 }, { sessionId: -1 });\n *\n * // alternatively, this tracking method is awaitable\n * const result = await track('Page Load').promise;\n * console.log(result.event); // {...}\n * console.log(result.code); // 200\n * console.log(result.message); // \"Event tracked successfully\"\n * ```\n */\nexport const track = returnWrapper(client.track.bind(client));\n\n/**\n * Alias for track()\n */\nexport const logEvent = returnWrapper(client.logEvent.bind(client));\n\n/**\n * Sends an identify event containing user property operations\n *\n * ```typescript\n * const id = new Identify();\n * id.set('colors', ['rose', 'gold']);\n * identify(id);\n *\n * // alternatively, this tracking method is awaitable\n * const result = await identify(id).promise;\n * console.log(result.event); // {...}\n * console.log(result.code); // 200\n * console.log(result.message); // \"Event tracked successfully\"\n * ```\n */\nexport const identify = returnWrapper(client.identify.bind(client));\n\n/**\n * Sends a group identify event containing group property operations.\n *\n * ```typescript\n * const id = new Identify();\n * id.set('skills', ['js', 'ts']);\n * const groupType = 'org';\n * const groupName = 'engineering';\n * groupIdentify(groupType, groupName, id);\n *\n * // alternatively, this tracking method is awaitable\n * const result = await groupIdentify(groupType, groupName, id).promise;\n * console.log(result.event); // {...}\n * console.log(result.code); // 200\n * console.log(result.message); // \"Event tracked successfully\"\n * ```\n */\nexport const groupIdentify = returnWrapper(client.groupIdentify.bind(client));\nexport const setGroup = returnWrapper(client.setGroup.bind(client));\n\n/**\n * Sends a revenue event containing revenue property operations.\n *\n * ```typescript\n * const rev = new Revenue();\n * rev.setRevenue(100);\n * revenue(rev);\n *\n * // alternatively, this tracking method is awaitable\n * const result = await revenue(rev).promise;\n * console.log(result.event); // {...}\n * console.log(result.code); // 200\n * console.log(result.message); // \"Event tracked successfully\"\n * ```\n */\nexport const revenue = returnWrapper(client.revenue.bind(client));\n\n/**\n * Returns current user ID.\n *\n * ```typescript\n * const userId = getUserId();\n * ```\n */\nexport const getUserId = client.getUserId.bind(client);\n\n/**\n * Sets a new user ID.\n *\n * ```typescript\n * setUserId('userId');\n * ```\n */\nexport const setUserId = client.setUserId.bind(client);\n\n/**\n * Returns current device ID.\n *\n * ```typescript\n * const deviceId = getDeviceId();\n * ```\n */\nexport const getDeviceId = client.getDeviceId.bind(client);\n\n/**\n * Sets a new device ID.\n * When setting a custom device ID, make sure the value is sufficiently unique.\n * A uuid is recommended.\n *\n * ```typescript\n * setDeviceId('deviceId');\n * ```\n */\nexport const setDeviceId = client.setDeviceId.bind(client);\n\n/**\n * Regenerates a new random deviceId for current user. Note: this is not recommended unless you know what you\n * are doing. This can be used in conjunction with `setUserId(undefined)` to anonymize users after they log out.\n * With an `unefined` userId and a completely new deviceId, the current user would appear as a brand new user in dashboard.\n *\n * ```typescript\n * regenerateDeviceId();\n * ```\n */\nexport const regenerateDeviceId = client.regenerateDeviceId.bind(client);\n\n/**\n * Returns current session ID.\n *\n * ```typescript\n * const sessionId = getSessionId();\n * ```\n */\nexport const getSessionId = client.getSessionId.bind(client);\n\n/**\n * Sets a new session ID.\n * When settign a custom session ID, make sure the value is in milliseconds since epoch (Unix Timestamp).\n *\n * ```typescript\n * setSessionId(Date.now());\n * ```\n */\nexport const setSessionId = client.setSessionId.bind(client);\n\n/**\n * Sets a new optOut config value. This toggles event tracking on/off.\n *\n *```typescript\n * // Stops tracking\n * setOptOut(true);\n *\n * // Starts/resumes tracking\n * setOptOut(false);\n * ```\n */\nexport const setOptOut = client.setOptOut.bind(client);\n\n/**\n * Sets the network transport type for events.\n *\n * ```typescript\n * // Use Fetch API\n * setTransport('fetch');\n *\n * // Use XMLHttpRequest API\n * setTransport('xhr');\n *\n * // Use navigator.sendBeacon API\n * setTransport('beacon');\n * ```\n */\nexport const setTransport = client.setTransport.bind(client);\n"]}
|
|
1
|
+
{"version":3,"file":"browser-client.js","sourceRoot":"","sources":["../../src/browser-client.ts"],"names":[],"mappings":"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","sourcesContent":["import { AmplitudeCore, Destination, Identify, Revenue, returnWrapper } from '@amplitude/analytics-core';\nimport {\n AdditionalBrowserOptions,\n AttributionBrowserOptions,\n BrowserConfig,\n BrowserOptions,\n Campaign,\n EventOptions,\n Identify as IIdentify,\n Result,\n Revenue as IRevenue,\n TransportType,\n} from '@amplitude/analytics-types';\nimport { convertProxyObjectToRealObject, isInstanceProxy } from './utils/snippet-helper';\nimport { Context } from './plugins/context';\nimport { useBrowserConfig, createTransport, createDeviceId, createFlexibleStorage } from './config';\nimport { parseOldCookies } from './cookie-migration';\nimport { CampaignTracker } from './attribution/campaign-tracker';\n\nexport class AmplitudeBrowser extends AmplitudeCore<BrowserConfig> {\n async init(apiKey: string, userId?: string, options?: BrowserOptions & AdditionalBrowserOptions) {\n // Step 1: Read cookies stored by old SDK\n const oldCookies = await parseOldCookies(apiKey, options);\n\n // Step 2: Create browser config\n const browserOptions = await useBrowserConfig(apiKey, userId || oldCookies.userId, {\n ...options,\n deviceId: oldCookies.deviceId ?? options?.deviceId,\n sessionId: oldCookies.sessionId ?? options?.sessionId,\n optOut: options?.optOut ?? oldCookies.optOut,\n lastEventTime: oldCookies.lastEventTime,\n });\n await super.init(undefined, undefined, browserOptions);\n\n // Step 3: Manage session\n let isNewSession = false;\n if (\n !this.config.sessionId ||\n (this.config.lastEventTime && Date.now() - this.config.lastEventTime > this.config.sessionTimeout)\n ) {\n // Either\n // 1) No previous session; or\n // 2) Previous session expired\n this.config.sessionId = Date.now();\n isNewSession = true;\n }\n\n // Step 4: Install plugins\n // Do not track any events before this\n await this.add(new Context());\n await this.add(new Destination());\n\n // Step 5: Track attributions\n await this.runAttributionStrategy(options?.attribution, isNewSession);\n }\n\n async runAttributionStrategy(attributionConfig?: AttributionBrowserOptions, isNewSession = false) {\n const track = this.track.bind(this);\n const onNewCampaign = this.setSessionId.bind(this, Date.now());\n\n const storage = await createFlexibleStorage<Campaign>(this.config);\n const campaignTracker = new CampaignTracker(this.config.apiKey, {\n ...attributionConfig,\n storage,\n track,\n onNewCampaign,\n });\n\n await campaignTracker.send(isNewSession);\n }\n\n getUserId() {\n return this.config.userId;\n }\n\n setUserId(userId: string | undefined) {\n this.config.userId = userId;\n }\n\n getDeviceId() {\n return this.config.deviceId;\n }\n\n setDeviceId(deviceId: string) {\n this.config.deviceId = deviceId;\n }\n\n regenerateDeviceId() {\n const deviceId = createDeviceId();\n this.setDeviceId(deviceId);\n }\n\n getSessionId() {\n return this.config.sessionId;\n }\n\n setSessionId(sessionId: number) {\n this.config.sessionId = sessionId;\n }\n\n setOptOut(optOut: boolean) {\n this.config.optOut = optOut;\n }\n\n setTransport(transport: TransportType) {\n this.config.transportProvider = createTransport(transport);\n }\n\n identify(identify: IIdentify, eventOptions?: EventOptions): Promise<Result> {\n if (isInstanceProxy(identify)) {\n const queue = identify._q;\n identify._q = [];\n identify = convertProxyObjectToRealObject(new Identify(), queue);\n }\n return super.identify(identify, eventOptions);\n }\n\n groupIdentify(\n groupType: string,\n groupName: string | string[],\n identify: IIdentify,\n eventOptions?: EventOptions,\n ): Promise<Result> {\n if (isInstanceProxy(identify)) {\n const queue = identify._q;\n identify._q = [];\n identify = convertProxyObjectToRealObject(new Identify(), queue);\n }\n return super.groupIdentify(groupType, groupName, identify, eventOptions);\n }\n\n revenue(revenue: IRevenue, eventOptions?: EventOptions) {\n if (isInstanceProxy(revenue)) {\n const queue = revenue._q;\n revenue._q = [];\n revenue = convertProxyObjectToRealObject(new Revenue(), queue);\n }\n return super.revenue(revenue, eventOptions);\n }\n}\n\nconst client = new AmplitudeBrowser();\n\n/**\n * Initializes the Amplitude SDK with your apiKey, userId and optional configurations.\n * This method must be called before any other operations.\n *\n * ```typescript\n * await init(API_KEY, USER_ID, options).promise;\n * ```\n */\nexport const init = returnWrapper(client.init.bind(client));\n\n/**\n * Adds a new plugin.\n *\n * ```typescript\n * const plugin = {...};\n * amplitude.add(plugin);\n * ```\n */\nexport const add = returnWrapper(client.add.bind(client));\n\n/**\n * Removes a plugin.\n *\n * ```typescript\n * amplitude.remove('myPlugin');\n * ```\n */\nexport const remove = returnWrapper(client.remove.bind(client));\n\n/**\n * Tracks user-defined event, with specified type, optional event properties and optional overwrites.\n *\n * ```typescript\n * // event tracking with event type only\n * track('Page Load');\n *\n * // event tracking with event type and additional event properties\n * track('Page Load', { loadTime: 1000 });\n *\n * // event tracking with event type, additional event properties, and overwritten event options\n * track('Page Load', { loadTime: 1000 }, { sessionId: -1 });\n *\n * // alternatively, this tracking method is awaitable\n * const result = await track('Page Load').promise;\n * console.log(result.event); // {...}\n * console.log(result.code); // 200\n * console.log(result.message); // \"Event tracked successfully\"\n * ```\n */\nexport const track = returnWrapper(client.track.bind(client));\n\n/**\n * Alias for track()\n */\nexport const logEvent = returnWrapper(client.logEvent.bind(client));\n\n/**\n * Sends an identify event containing user property operations\n *\n * ```typescript\n * const id = new Identify();\n * id.set('colors', ['rose', 'gold']);\n * identify(id);\n *\n * // alternatively, this tracking method is awaitable\n * const result = await identify(id).promise;\n * console.log(result.event); // {...}\n * console.log(result.code); // 200\n * console.log(result.message); // \"Event tracked successfully\"\n * ```\n */\nexport const identify = returnWrapper(client.identify.bind(client));\n\n/**\n * Sends a group identify event containing group property operations.\n *\n * ```typescript\n * const id = new Identify();\n * id.set('skills', ['js', 'ts']);\n * const groupType = 'org';\n * const groupName = 'engineering';\n * groupIdentify(groupType, groupName, id);\n *\n * // alternatively, this tracking method is awaitable\n * const result = await groupIdentify(groupType, groupName, id).promise;\n * console.log(result.event); // {...}\n * console.log(result.code); // 200\n * console.log(result.message); // \"Event tracked successfully\"\n * ```\n */\nexport const groupIdentify = returnWrapper(client.groupIdentify.bind(client));\nexport const setGroup = returnWrapper(client.setGroup.bind(client));\n\n/**\n * Sends a revenue event containing revenue property operations.\n *\n * ```typescript\n * const rev = new Revenue();\n * rev.setRevenue(100);\n * revenue(rev);\n *\n * // alternatively, this tracking method is awaitable\n * const result = await revenue(rev).promise;\n * console.log(result.event); // {...}\n * console.log(result.code); // 200\n * console.log(result.message); // \"Event tracked successfully\"\n * ```\n */\nexport const revenue = returnWrapper(client.revenue.bind(client));\n\n/**\n * Returns current user ID.\n *\n * ```typescript\n * const userId = getUserId();\n * ```\n */\nexport const getUserId = client.getUserId.bind(client);\n\n/**\n * Sets a new user ID.\n *\n * ```typescript\n * setUserId('userId');\n * ```\n */\nexport const setUserId = client.setUserId.bind(client);\n\n/**\n * Returns current device ID.\n *\n * ```typescript\n * const deviceId = getDeviceId();\n * ```\n */\nexport const getDeviceId = client.getDeviceId.bind(client);\n\n/**\n * Sets a new device ID.\n * When setting a custom device ID, make sure the value is sufficiently unique.\n * A uuid is recommended.\n *\n * ```typescript\n * setDeviceId('deviceId');\n * ```\n */\nexport const setDeviceId = client.setDeviceId.bind(client);\n\n/**\n * Regenerates a new random deviceId for current user. Note: this is not recommended unless you know what you\n * are doing. This can be used in conjunction with `setUserId(undefined)` to anonymize users after they log out.\n * With an `unefined` userId and a completely new deviceId, the current user would appear as a brand new user in dashboard.\n *\n * ```typescript\n * regenerateDeviceId();\n * ```\n */\nexport const regenerateDeviceId = client.regenerateDeviceId.bind(client);\n\n/**\n * Returns current session ID.\n *\n * ```typescript\n * const sessionId = getSessionId();\n * ```\n */\nexport const getSessionId = client.getSessionId.bind(client);\n\n/**\n * Sets a new session ID.\n * When settign a custom session ID, make sure the value is in milliseconds since epoch (Unix Timestamp).\n *\n * ```typescript\n * setSessionId(Date.now());\n * ```\n */\nexport const setSessionId = client.setSessionId.bind(client);\n\n/**\n * Sets a new optOut config value. This toggles event tracking on/off.\n *\n *```typescript\n * // Stops tracking\n * setOptOut(true);\n *\n * // Starts/resumes tracking\n * setOptOut(false);\n * ```\n */\nexport const setOptOut = client.setOptOut.bind(client);\n\n/**\n * Sets the network transport type for events.\n *\n * ```typescript\n * // Use Fetch API\n * setTransport('fetch');\n *\n * // Use XMLHttpRequest API\n * setTransport('xhr');\n *\n * // Use navigator.sendBeacon API\n * setTransport('beacon');\n * ```\n */\nexport const setTransport = client.setTransport.bind(client);\n\n/**\n * Flush and send all the events which haven't been sent.\n *\n *```typescript\n * // Send all the unsent events\n * flush();\n *\n * // alternatively, this tracking method is awaitable\n * await flush().promise;\n * ```\n */\nexport const flush = returnWrapper(client.flush.bind(client));\n"]}
|
package/lib/cjs/config.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { Event, BrowserOptions, BrowserConfig as IBrowserConfig, Storage, TrackingOptions, TransportType, UserSession } from '@amplitude/analytics-types';
|
|
1
|
+
import { Event, BrowserOptions, BrowserConfig as IBrowserConfig, Storage, TrackingOptions, TransportType, UserSession, SessionManager as ISessionManager } from '@amplitude/analytics-types';
|
|
2
2
|
import { Config, MemoryStorage } from '@amplitude/analytics-core';
|
|
3
3
|
import { FetchTransport } from './transports/fetch';
|
|
4
4
|
import { XHRTransport } from './transports/xhr';
|
|
5
5
|
import { SendBeaconTransport } from './transports/send-beacon';
|
|
6
|
+
import { SessionManager } from './session-manager';
|
|
6
7
|
export declare const getDefaultConfig: () => {
|
|
7
8
|
cookieExpiration: number;
|
|
8
9
|
cookieSameSite: string;
|
|
@@ -10,10 +11,7 @@ export declare const getDefaultConfig: () => {
|
|
|
10
11
|
cookieStorage: MemoryStorage<UserSession>;
|
|
11
12
|
disableCookies: boolean;
|
|
12
13
|
domain: string;
|
|
13
|
-
|
|
14
|
-
includeFbclid: boolean;
|
|
15
|
-
includeReferrer: boolean;
|
|
16
|
-
includeUtm: boolean;
|
|
14
|
+
sessionManager: SessionManager;
|
|
17
15
|
sessionTimeout: number;
|
|
18
16
|
storageProvider: MemoryStorage<Event[]>;
|
|
19
17
|
trackingOptions: {
|
|
@@ -39,21 +37,25 @@ export declare class BrowserConfig extends Config implements IBrowserConfig {
|
|
|
39
37
|
cookieSameSite: string;
|
|
40
38
|
cookieSecure: boolean;
|
|
41
39
|
cookieStorage: Storage<UserSession>;
|
|
42
|
-
deviceId?: string;
|
|
43
40
|
disableCookies: boolean;
|
|
44
41
|
domain: string;
|
|
45
|
-
includeGclid: boolean;
|
|
46
|
-
includeFbclid: boolean;
|
|
47
|
-
includeReferrer: boolean;
|
|
48
|
-
includeUtm: boolean;
|
|
49
42
|
partnerId?: string;
|
|
50
|
-
sessionId?: number;
|
|
51
43
|
sessionTimeout: number;
|
|
52
44
|
trackingOptions: TrackingOptions;
|
|
53
|
-
|
|
45
|
+
sessionManager: ISessionManager;
|
|
54
46
|
constructor(apiKey: string, userId?: string, options?: BrowserOptions);
|
|
47
|
+
get deviceId(): string | undefined;
|
|
48
|
+
set deviceId(deviceId: string | undefined);
|
|
49
|
+
get userId(): string | undefined;
|
|
50
|
+
set userId(userId: string | undefined);
|
|
51
|
+
get sessionId(): number | undefined;
|
|
52
|
+
set sessionId(sessionId: number | undefined);
|
|
53
|
+
get optOut(): boolean;
|
|
54
|
+
set optOut(optOut: boolean);
|
|
55
|
+
get lastEventTime(): number | undefined;
|
|
56
|
+
set lastEventTime(lastEventTime: number | undefined);
|
|
55
57
|
}
|
|
56
|
-
export declare const useBrowserConfig: (apiKey: string, userId?: string | undefined, options?: BrowserOptions | undefined) => IBrowserConfig
|
|
58
|
+
export declare const useBrowserConfig: (apiKey: string, userId?: string | undefined, options?: BrowserOptions | undefined) => Promise<IBrowserConfig>;
|
|
57
59
|
export declare const createCookieStorage: (overrides?: BrowserOptions | undefined, baseConfig?: {
|
|
58
60
|
cookieExpiration: number;
|
|
59
61
|
cookieSameSite: string;
|
|
@@ -61,10 +63,7 @@ export declare const createCookieStorage: (overrides?: BrowserOptions | undefine
|
|
|
61
63
|
cookieStorage: MemoryStorage<UserSession>;
|
|
62
64
|
disableCookies: boolean;
|
|
63
65
|
domain: string;
|
|
64
|
-
|
|
65
|
-
includeFbclid: boolean;
|
|
66
|
-
includeReferrer: boolean;
|
|
67
|
-
includeUtm: boolean;
|
|
66
|
+
sessionManager: SessionManager;
|
|
68
67
|
sessionTimeout: number;
|
|
69
68
|
storageProvider: MemoryStorage<Event[]>;
|
|
70
69
|
trackingOptions: {
|
|
@@ -83,9 +82,9 @@ export declare const createCookieStorage: (overrides?: BrowserOptions | undefine
|
|
|
83
82
|
versionName: boolean;
|
|
84
83
|
};
|
|
85
84
|
transportProvider: FetchTransport;
|
|
86
|
-
}) => Storage<UserSession
|
|
87
|
-
export declare const
|
|
85
|
+
}) => Promise<Storage<UserSession>>;
|
|
86
|
+
export declare const createFlexibleStorage: <T>(options: BrowserOptions) => Promise<Storage<T>>;
|
|
87
|
+
export declare const createEventsStorage: (overrides?: BrowserOptions | undefined) => Promise<Storage<Event[]>>;
|
|
88
88
|
export declare const createDeviceId: (idFromCookies?: string | undefined, idFromOptions?: string | undefined, idFromQueryParams?: string | undefined) => string;
|
|
89
|
-
export declare const createSessionId: (idFromCookies: number | undefined, idFromOptions: number | undefined, lastEventTime: number | undefined, sessionTimeout: number) => number;
|
|
90
89
|
export declare const createTransport: (transport?: TransportType | undefined) => FetchTransport | XHRTransport | SendBeaconTransport;
|
|
91
90
|
//# sourceMappingURL=config.d.ts.map
|
package/lib/cjs/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,cAAc,EACd,aAAa,IAAI,cAAc,EAC/B,OAAO,EACP,eAAe,EACf,aAAa,EACb,WAAW,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,cAAc,EACd,aAAa,IAAI,cAAc,EAC/B,OAAO,EACP,eAAe,EACf,aAAa,EACb,WAAW,EACX,cAAc,IAAI,eAAe,EAClC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAQ,MAAM,2BAA2B,CAAC;AAGxE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIpD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;CA6B5B,CAAC;AAEF,qBAAa,aAAc,SAAQ,MAAO,YAAW,cAAc;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IACpC,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,eAAe,CAAC;IACjC,cAAc,EAAE,eAAe,CAAC;gBAEpB,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc;IA2BrE,IAAI,QAAQ,IAIW,MAAM,GAAG,SAAS,CAFxC;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAExC;IAED,IAAI,MAAM,IAIS,MAAM,GAAG,SAAS,CAFpC;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAEpC;IAED,IAAI,SAAS,IAIY,MAAM,GAAG,SAAS,CAF1C;IAED,IAAI,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAE1C;IAED,IAAI,MAAM,IAIS,OAAO,CAFzB;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,EAEzB;IAED,IAAI,aAAa,IAIgB,MAAM,GAAG,SAAS,CAFlD;IAED,IAAI,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,EAElD;CACF;AAED,eAAO,MAAM,gBAAgB,WACnB,MAAM,wEAGb,QAAQ,cAAc,CAmBxB,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;MAG7B,QAAQ,QAAQ,WAAW,CAAC,CAO9B,CAAC;AAEF,eAAO,MAAM,qBAAqB,eAAsB,cAAc,wBAcrE,CAAC;AAEF,eAAO,MAAM,mBAAmB,8CAAuC,QAAQ,QAAQ,KAAK,EAAE,CAAC,CAS9F,CAAC;AAEF,eAAO,MAAM,cAAc,4HAE1B,CAAC;AAEF,eAAO,MAAM,eAAe,gGAQ3B,CAAC"}
|
package/lib/cjs/config.js
CHANGED
|
@@ -1,132 +1,245 @@
|
|
|
1
|
+
var _this = this;
|
|
1
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
|
-
exports.createTransport = exports.
|
|
3
|
+
exports.createTransport = exports.createDeviceId = exports.createEventsStorage = exports.createFlexibleStorage = exports.createCookieStorage = exports.useBrowserConfig = exports.BrowserConfig = exports.getDefaultConfig = void 0;
|
|
3
4
|
var tslib_1 = require("tslib");
|
|
4
5
|
var analytics_types_1 = require("@amplitude/analytics-types");
|
|
5
6
|
var analytics_core_1 = require("@amplitude/analytics-core");
|
|
6
7
|
var cookie_1 = require("./storage/cookie");
|
|
7
8
|
var fetch_1 = require("./transports/fetch");
|
|
8
9
|
var local_storage_1 = require("./storage/local-storage");
|
|
9
|
-
var
|
|
10
|
+
var cookie_name_1 = require("./utils/cookie-name");
|
|
10
11
|
var query_params_1 = require("./utils/query-params");
|
|
11
12
|
var xhr_1 = require("./transports/xhr");
|
|
12
13
|
var send_beacon_1 = require("./transports/send-beacon");
|
|
13
|
-
var
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
}
|
|
14
|
+
var session_manager_1 = require("./session-manager");
|
|
15
|
+
var getDefaultConfig = function () {
|
|
16
|
+
var cookieStorage = new analytics_core_1.MemoryStorage();
|
|
17
|
+
return {
|
|
18
|
+
cookieExpiration: 365,
|
|
19
|
+
cookieSameSite: 'Lax',
|
|
20
|
+
cookieSecure: false,
|
|
21
|
+
cookieStorage: cookieStorage,
|
|
22
|
+
disableCookies: false,
|
|
23
|
+
domain: '',
|
|
24
|
+
sessionManager: new session_manager_1.SessionManager(cookieStorage, ''),
|
|
25
|
+
sessionTimeout: 30 * 60 * 1000,
|
|
26
|
+
storageProvider: new analytics_core_1.MemoryStorage(),
|
|
27
|
+
trackingOptions: {
|
|
28
|
+
city: true,
|
|
29
|
+
country: true,
|
|
30
|
+
carrier: true,
|
|
31
|
+
deviceManufacturer: true,
|
|
32
|
+
deviceModel: true,
|
|
33
|
+
dma: true,
|
|
34
|
+
ipAddress: true,
|
|
35
|
+
language: true,
|
|
36
|
+
osName: true,
|
|
37
|
+
osVersion: true,
|
|
38
|
+
platform: true,
|
|
39
|
+
region: true,
|
|
40
|
+
versionName: true,
|
|
41
|
+
},
|
|
42
|
+
transportProvider: new fetch_1.FetchTransport(),
|
|
43
|
+
};
|
|
44
|
+
};
|
|
43
45
|
exports.getDefaultConfig = getDefaultConfig;
|
|
44
46
|
var BrowserConfig = /** @class */ (function (_super) {
|
|
45
47
|
(0, tslib_1.__extends)(BrowserConfig, _super);
|
|
46
48
|
function BrowserConfig(apiKey, userId, options) {
|
|
47
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m
|
|
49
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
48
50
|
var _this = this;
|
|
49
51
|
var defaultConfig = (0, exports.getDefaultConfig)();
|
|
50
|
-
_this = _super.call(this, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, options), { apiKey: apiKey,
|
|
52
|
+
_this = _super.call(this, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, options), { apiKey: apiKey, storageProvider: (_a = options === null || options === void 0 ? void 0 : options.storageProvider) !== null && _a !== void 0 ? _a : defaultConfig.storageProvider, transportProvider: (_b = options === null || options === void 0 ? void 0 : options.transportProvider) !== null && _b !== void 0 ? _b : defaultConfig.transportProvider })) || this;
|
|
53
|
+
_this.cookieStorage = (_c = options === null || options === void 0 ? void 0 : options.cookieStorage) !== null && _c !== void 0 ? _c : defaultConfig.cookieStorage;
|
|
54
|
+
_this.sessionManager = (_d = options === null || options === void 0 ? void 0 : options.sessionManager) !== null && _d !== void 0 ? _d : defaultConfig.sessionManager;
|
|
55
|
+
_this.sessionTimeout = (_e = options === null || options === void 0 ? void 0 : options.sessionTimeout) !== null && _e !== void 0 ? _e : defaultConfig.sessionTimeout;
|
|
51
56
|
_this.appVersion = options === null || options === void 0 ? void 0 : options.appVersion;
|
|
52
|
-
_this.cookieExpiration = (
|
|
53
|
-
_this.cookieSameSite = (
|
|
54
|
-
_this.cookieSecure = (
|
|
55
|
-
_this.cookieStorage = (_f = options === null || options === void 0 ? void 0 : options.cookieStorage) !== null && _f !== void 0 ? _f : defaultConfig.cookieStorage;
|
|
57
|
+
_this.cookieExpiration = (_f = options === null || options === void 0 ? void 0 : options.cookieExpiration) !== null && _f !== void 0 ? _f : defaultConfig.cookieExpiration;
|
|
58
|
+
_this.cookieSameSite = (_g = options === null || options === void 0 ? void 0 : options.cookieSameSite) !== null && _g !== void 0 ? _g : defaultConfig.cookieSameSite;
|
|
59
|
+
_this.cookieSecure = (_h = options === null || options === void 0 ? void 0 : options.cookieSecure) !== null && _h !== void 0 ? _h : defaultConfig.cookieSecure;
|
|
56
60
|
_this.deviceId = options === null || options === void 0 ? void 0 : options.deviceId;
|
|
57
|
-
_this.disableCookies = (
|
|
58
|
-
_this.domain = (
|
|
59
|
-
_this.
|
|
60
|
-
_this.
|
|
61
|
-
_this.includeReferrer = (_l = options === null || options === void 0 ? void 0 : options.includeReferrer) !== null && _l !== void 0 ? _l : defaultConfig.includeReferrer;
|
|
62
|
-
_this.includeUtm = (_m = options === null || options === void 0 ? void 0 : options.includeUtm) !== null && _m !== void 0 ? _m : defaultConfig.includeUtm;
|
|
61
|
+
_this.disableCookies = (_j = options === null || options === void 0 ? void 0 : options.disableCookies) !== null && _j !== void 0 ? _j : defaultConfig.disableCookies;
|
|
62
|
+
_this.domain = (_k = options === null || options === void 0 ? void 0 : options.domain) !== null && _k !== void 0 ? _k : defaultConfig.domain;
|
|
63
|
+
_this.lastEventTime = (_l = _this.lastEventTime) !== null && _l !== void 0 ? _l : options === null || options === void 0 ? void 0 : options.lastEventTime;
|
|
64
|
+
_this.optOut = Boolean(options === null || options === void 0 ? void 0 : options.optOut);
|
|
63
65
|
_this.partnerId = options === null || options === void 0 ? void 0 : options.partnerId;
|
|
64
66
|
_this.sessionId = options === null || options === void 0 ? void 0 : options.sessionId;
|
|
65
|
-
_this.
|
|
66
|
-
_this.trackingOptions = (_p = options === null || options === void 0 ? void 0 : options.trackingOptions) !== null && _p !== void 0 ? _p : defaultConfig.trackingOptions;
|
|
67
|
+
_this.trackingOptions = (_m = options === null || options === void 0 ? void 0 : options.trackingOptions) !== null && _m !== void 0 ? _m : defaultConfig.trackingOptions;
|
|
67
68
|
_this.userId = userId;
|
|
68
69
|
return _this;
|
|
69
70
|
}
|
|
71
|
+
Object.defineProperty(BrowserConfig.prototype, "deviceId", {
|
|
72
|
+
get: function () {
|
|
73
|
+
return this.sessionManager.getDeviceId();
|
|
74
|
+
},
|
|
75
|
+
set: function (deviceId) {
|
|
76
|
+
this.sessionManager.setDeviceId(deviceId);
|
|
77
|
+
},
|
|
78
|
+
enumerable: false,
|
|
79
|
+
configurable: true
|
|
80
|
+
});
|
|
81
|
+
Object.defineProperty(BrowserConfig.prototype, "userId", {
|
|
82
|
+
get: function () {
|
|
83
|
+
return this.sessionManager.getUserId();
|
|
84
|
+
},
|
|
85
|
+
set: function (userId) {
|
|
86
|
+
this.sessionManager.setUserId(userId);
|
|
87
|
+
},
|
|
88
|
+
enumerable: false,
|
|
89
|
+
configurable: true
|
|
90
|
+
});
|
|
91
|
+
Object.defineProperty(BrowserConfig.prototype, "sessionId", {
|
|
92
|
+
get: function () {
|
|
93
|
+
return this.sessionManager.getSessionId();
|
|
94
|
+
},
|
|
95
|
+
set: function (sessionId) {
|
|
96
|
+
this.sessionManager.setSessionId(sessionId);
|
|
97
|
+
},
|
|
98
|
+
enumerable: false,
|
|
99
|
+
configurable: true
|
|
100
|
+
});
|
|
101
|
+
Object.defineProperty(BrowserConfig.prototype, "optOut", {
|
|
102
|
+
get: function () {
|
|
103
|
+
return this.sessionManager.getOptOut();
|
|
104
|
+
},
|
|
105
|
+
set: function (optOut) {
|
|
106
|
+
var _a;
|
|
107
|
+
(_a = this.sessionManager) === null || _a === void 0 ? void 0 : _a.setOptOut(Boolean(optOut));
|
|
108
|
+
},
|
|
109
|
+
enumerable: false,
|
|
110
|
+
configurable: true
|
|
111
|
+
});
|
|
112
|
+
Object.defineProperty(BrowserConfig.prototype, "lastEventTime", {
|
|
113
|
+
get: function () {
|
|
114
|
+
return this.sessionManager.getLastEventTime();
|
|
115
|
+
},
|
|
116
|
+
set: function (lastEventTime) {
|
|
117
|
+
this.sessionManager.setLastEventTime(lastEventTime);
|
|
118
|
+
},
|
|
119
|
+
enumerable: false,
|
|
120
|
+
configurable: true
|
|
121
|
+
});
|
|
70
122
|
return BrowserConfig;
|
|
71
123
|
}(analytics_core_1.Config));
|
|
72
124
|
exports.BrowserConfig = BrowserConfig;
|
|
73
|
-
var useBrowserConfig = function (apiKey, userId, options) {
|
|
74
|
-
var _a, _b, _c;
|
|
75
|
-
var
|
|
76
|
-
var
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
125
|
+
var useBrowserConfig = function (apiKey, userId, options) { return (0, tslib_1.__awaiter)(_this, void 0, void 0, function () {
|
|
126
|
+
var defaultConfig, cookieStorage, cookieName, cookies, queryParams, sessionManager, _a, _b, _c;
|
|
127
|
+
var _d;
|
|
128
|
+
var _e, _f, _g, _h;
|
|
129
|
+
return (0, tslib_1.__generator)(this, function (_j) {
|
|
130
|
+
switch (_j.label) {
|
|
131
|
+
case 0:
|
|
132
|
+
defaultConfig = (0, exports.getDefaultConfig)();
|
|
133
|
+
return [4 /*yield*/, (0, exports.createCookieStorage)(options)];
|
|
134
|
+
case 1:
|
|
135
|
+
cookieStorage = _j.sent();
|
|
136
|
+
cookieName = (0, cookie_name_1.getCookieName)(apiKey);
|
|
137
|
+
return [4 /*yield*/, cookieStorage.get(cookieName)];
|
|
138
|
+
case 2:
|
|
139
|
+
cookies = _j.sent();
|
|
140
|
+
queryParams = (0, query_params_1.getQueryParams)();
|
|
141
|
+
return [4 /*yield*/, new session_manager_1.SessionManager(cookieStorage, apiKey).load()];
|
|
142
|
+
case 3:
|
|
143
|
+
sessionManager = _j.sent();
|
|
144
|
+
_a = BrowserConfig.bind;
|
|
145
|
+
_b = [void 0, apiKey, userId !== null && userId !== void 0 ? userId : cookies === null || cookies === void 0 ? void 0 : cookies.userId];
|
|
146
|
+
_c = [(0, tslib_1.__assign)({}, options)];
|
|
147
|
+
_d = { cookieStorage: cookieStorage, sessionManager: sessionManager, deviceId: (0, exports.createDeviceId)(cookies === null || cookies === void 0 ? void 0 : cookies.deviceId, options === null || options === void 0 ? void 0 : options.deviceId, queryParams.deviceId), optOut: (_e = options === null || options === void 0 ? void 0 : options.optOut) !== null && _e !== void 0 ? _e : Boolean(cookies === null || cookies === void 0 ? void 0 : cookies.optOut) };
|
|
148
|
+
return [4 /*yield*/, cookieStorage.get(cookieName)];
|
|
149
|
+
case 4:
|
|
150
|
+
_d.sessionId = (_g = (_f = (_j.sent())) === null || _f === void 0 ? void 0 : _f.sessionId) !== null && _g !== void 0 ? _g : options === null || options === void 0 ? void 0 : options.sessionId;
|
|
151
|
+
return [4 /*yield*/, (0, exports.createEventsStorage)(options)];
|
|
152
|
+
case 5: return [2 /*return*/, new (_a.apply(BrowserConfig, _b.concat([tslib_1.__assign.apply(void 0, _c.concat([(_d.storageProvider = _j.sent(), _d.trackingOptions = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, defaultConfig.trackingOptions), options === null || options === void 0 ? void 0 : options.trackingOptions), _d.transportProvider = (_h = options === null || options === void 0 ? void 0 : options.transportProvider) !== null && _h !== void 0 ? _h : (0, exports.createTransport)(options === null || options === void 0 ? void 0 : options.transport), _d)]))])))()];
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
}); };
|
|
83
156
|
exports.useBrowserConfig = useBrowserConfig;
|
|
84
157
|
var createCookieStorage = function (overrides, baseConfig) {
|
|
85
158
|
if (baseConfig === void 0) { baseConfig = (0, exports.getDefaultConfig)(); }
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
159
|
+
return (0, tslib_1.__awaiter)(_this, void 0, void 0, function () {
|
|
160
|
+
var options, cookieStorage, _a;
|
|
161
|
+
return (0, tslib_1.__generator)(this, function (_b) {
|
|
162
|
+
switch (_b.label) {
|
|
163
|
+
case 0:
|
|
164
|
+
options = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, baseConfig), overrides);
|
|
165
|
+
cookieStorage = overrides === null || overrides === void 0 ? void 0 : overrides.cookieStorage;
|
|
166
|
+
_a = !cookieStorage;
|
|
167
|
+
if (_a) return [3 /*break*/, 2];
|
|
168
|
+
return [4 /*yield*/, cookieStorage.isEnabled()];
|
|
169
|
+
case 1:
|
|
170
|
+
_a = !(_b.sent());
|
|
171
|
+
_b.label = 2;
|
|
172
|
+
case 2:
|
|
173
|
+
if (_a) {
|
|
174
|
+
return [2 /*return*/, (0, exports.createFlexibleStorage)(options)];
|
|
175
|
+
}
|
|
176
|
+
return [2 /*return*/, cookieStorage];
|
|
99
177
|
}
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
return cookieStorage;
|
|
178
|
+
});
|
|
179
|
+
});
|
|
103
180
|
};
|
|
104
181
|
exports.createCookieStorage = createCookieStorage;
|
|
105
|
-
var
|
|
106
|
-
var
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
182
|
+
var createFlexibleStorage = function (options) { return (0, tslib_1.__awaiter)(_this, void 0, void 0, function () {
|
|
183
|
+
var storage, _a;
|
|
184
|
+
return (0, tslib_1.__generator)(this, function (_b) {
|
|
185
|
+
switch (_b.label) {
|
|
186
|
+
case 0:
|
|
187
|
+
storage = new cookie_1.CookieStorage({
|
|
188
|
+
domain: options.domain,
|
|
189
|
+
expirationDays: options.cookieExpiration,
|
|
190
|
+
sameSite: options.cookieSameSite,
|
|
191
|
+
secure: options.cookieSecure,
|
|
192
|
+
});
|
|
193
|
+
_a = options.disableCookies;
|
|
194
|
+
if (_a) return [3 /*break*/, 2];
|
|
195
|
+
return [4 /*yield*/, storage.isEnabled()];
|
|
196
|
+
case 1:
|
|
197
|
+
_a = !(_b.sent());
|
|
198
|
+
_b.label = 2;
|
|
199
|
+
case 2:
|
|
200
|
+
if (!_a) return [3 /*break*/, 4];
|
|
201
|
+
storage = new local_storage_1.LocalStorage();
|
|
202
|
+
return [4 /*yield*/, storage.isEnabled()];
|
|
203
|
+
case 3:
|
|
204
|
+
if (!(_b.sent())) {
|
|
205
|
+
storage = new analytics_core_1.MemoryStorage();
|
|
206
|
+
}
|
|
207
|
+
_b.label = 4;
|
|
208
|
+
case 4: return [2 /*return*/, storage];
|
|
111
209
|
}
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
|
|
210
|
+
});
|
|
211
|
+
}); };
|
|
212
|
+
exports.createFlexibleStorage = createFlexibleStorage;
|
|
213
|
+
var createEventsStorage = function (overrides) { return (0, tslib_1.__awaiter)(_this, void 0, void 0, function () {
|
|
214
|
+
var eventsStorage, _a;
|
|
215
|
+
return (0, tslib_1.__generator)(this, function (_b) {
|
|
216
|
+
switch (_b.label) {
|
|
217
|
+
case 0:
|
|
218
|
+
eventsStorage = overrides === null || overrides === void 0 ? void 0 : overrides.storageProvider;
|
|
219
|
+
_a = !eventsStorage;
|
|
220
|
+
if (_a) return [3 /*break*/, 2];
|
|
221
|
+
return [4 /*yield*/, eventsStorage.isEnabled()];
|
|
222
|
+
case 1:
|
|
223
|
+
_a = !(_b.sent());
|
|
224
|
+
_b.label = 2;
|
|
225
|
+
case 2:
|
|
226
|
+
if (!_a) return [3 /*break*/, 4];
|
|
227
|
+
eventsStorage = new local_storage_1.LocalStorage();
|
|
228
|
+
return [4 /*yield*/, eventsStorage.isEnabled()];
|
|
229
|
+
case 3:
|
|
230
|
+
if (!(_b.sent())) {
|
|
231
|
+
eventsStorage = new analytics_core_1.MemoryStorage();
|
|
232
|
+
}
|
|
233
|
+
_b.label = 4;
|
|
234
|
+
case 4: return [2 /*return*/, eventsStorage];
|
|
235
|
+
}
|
|
236
|
+
});
|
|
237
|
+
}); };
|
|
115
238
|
exports.createEventsStorage = createEventsStorage;
|
|
116
239
|
var createDeviceId = function (idFromCookies, idFromOptions, idFromQueryParams) {
|
|
117
240
|
return idFromOptions || idFromQueryParams || idFromCookies || (0, analytics_core_1.UUID)();
|
|
118
241
|
};
|
|
119
242
|
exports.createDeviceId = createDeviceId;
|
|
120
|
-
var createSessionId = function (idFromCookies, idFromOptions, lastEventTime, sessionTimeout) {
|
|
121
|
-
if (idFromCookies === void 0) { idFromCookies = 0; }
|
|
122
|
-
if (idFromOptions === void 0) { idFromOptions = 0; }
|
|
123
|
-
if (lastEventTime === void 0) { lastEventTime = 0; }
|
|
124
|
-
if (idFromCookies && Date.now() - lastEventTime < sessionTimeout) {
|
|
125
|
-
return idFromCookies;
|
|
126
|
-
}
|
|
127
|
-
return idFromOptions ? idFromOptions : Date.now();
|
|
128
|
-
};
|
|
129
|
-
exports.createSessionId = createSessionId;
|
|
130
243
|
var createTransport = function (transport) {
|
|
131
244
|
if (transport === analytics_types_1.TransportType.XHR) {
|
|
132
245
|
return new xhr_1.XHRTransport();
|
package/lib/cjs/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Event,\n BrowserOptions,\n BrowserConfig as IBrowserConfig,\n Storage,\n TrackingOptions,\n TransportType,\n UserSession,\n} from '@amplitude/analytics-types';\nimport { Config, MemoryStorage, UUID } from '@amplitude/analytics-core';\n\nimport { CookieStorage } from './storage/cookie';\nimport { FetchTransport } from './transports/fetch';\nimport { LocalStorage } from './storage/local-storage';\nimport { getCookieName } from './session-manager';\nimport { getQueryParams } from './utils/query-params';\nimport { XHRTransport } from './transports/xhr';\nimport { SendBeaconTransport } from './transports/send-beacon';\n\nexport const getDefaultConfig = () => ({\n cookieExpiration: 365,\n cookieSameSite: 'Lax',\n cookieSecure: false,\n cookieStorage: new MemoryStorage<UserSession>(),\n disableCookies: false,\n domain: '',\n includeGclid: true,\n includeFbclid: true,\n includeReferrer: true,\n includeUtm: true,\n sessionTimeout: 30 * 60 * 1000,\n storageProvider: new MemoryStorage<Event[]>(),\n trackingOptions: {\n city: true,\n country: true,\n carrier: true,\n deviceManufacturer: true,\n deviceModel: true,\n dma: true,\n ipAddress: true,\n language: true,\n osName: true,\n osVersion: true,\n platform: true,\n region: true,\n versionName: true,\n },\n transportProvider: new FetchTransport(),\n});\n\nexport class BrowserConfig extends Config implements IBrowserConfig {\n appVersion?: string;\n cookieExpiration: number;\n cookieSameSite: string;\n cookieSecure: boolean;\n cookieStorage: Storage<UserSession>;\n deviceId?: string;\n disableCookies: boolean;\n domain: string;\n includeGclid: boolean;\n includeFbclid: boolean;\n includeReferrer: boolean;\n includeUtm: boolean;\n partnerId?: string;\n sessionId?: number;\n sessionTimeout: number;\n trackingOptions: TrackingOptions;\n userId?: string;\n\n constructor(apiKey: string, userId?: string, options?: BrowserOptions) {\n const defaultConfig = getDefaultConfig();\n super({\n ...options,\n apiKey,\n optOut: Boolean(options?.optOut),\n storageProvider: options?.storageProvider ?? defaultConfig.storageProvider,\n transportProvider: options?.transportProvider ?? defaultConfig.transportProvider,\n });\n\n this.appVersion = options?.appVersion;\n this.cookieExpiration = options?.cookieExpiration ?? defaultConfig.cookieExpiration;\n this.cookieSameSite = options?.cookieSameSite ?? defaultConfig.cookieSameSite;\n this.cookieSecure = options?.cookieSecure ?? defaultConfig.cookieSecure;\n this.cookieStorage = options?.cookieStorage ?? defaultConfig.cookieStorage;\n this.deviceId = options?.deviceId;\n this.disableCookies = options?.disableCookies ?? defaultConfig.disableCookies;\n this.domain = options?.domain ?? defaultConfig.domain;\n this.includeGclid = options?.includeGclid ?? defaultConfig.includeGclid;\n this.includeFbclid = options?.includeFbclid ?? defaultConfig.includeFbclid;\n this.includeReferrer = options?.includeReferrer ?? defaultConfig.includeReferrer;\n this.includeUtm = options?.includeUtm ?? defaultConfig.includeUtm;\n this.partnerId = options?.partnerId;\n this.sessionId = options?.sessionId;\n this.sessionTimeout = options?.sessionTimeout ?? defaultConfig.sessionTimeout;\n this.trackingOptions = options?.trackingOptions ?? defaultConfig.trackingOptions;\n this.userId = userId;\n }\n}\n\nexport const useBrowserConfig = (apiKey: string, userId?: string, options?: BrowserOptions): IBrowserConfig => {\n const defaultConfig = getDefaultConfig();\n const cookieStorage = createCookieStorage(options);\n const cookieName = getCookieName(apiKey);\n const cookies = cookieStorage.get(cookieName);\n const queryParams = getQueryParams();\n const sessionTimeout = options?.sessionTimeout ?? defaultConfig.sessionTimeout;\n\n return new BrowserConfig(apiKey, userId ?? cookies?.userId, {\n ...options,\n cookieStorage,\n sessionTimeout,\n deviceId: createDeviceId(cookies?.deviceId, options?.deviceId, queryParams.deviceId),\n optOut: options?.optOut ?? Boolean(cookies?.optOut),\n sessionId: createSessionId(cookies?.sessionId, options?.sessionId, cookies?.lastEventTime, sessionTimeout),\n storageProvider: createEventsStorage(options),\n trackingOptions: { ...defaultConfig.trackingOptions, ...options?.trackingOptions },\n transportProvider: options?.transportProvider ?? createTransport(options?.transport),\n });\n};\n\nexport const createCookieStorage = (overrides?: BrowserOptions, baseConfig = getDefaultConfig()) => {\n const options = { ...baseConfig, ...overrides };\n let cookieStorage = overrides?.cookieStorage;\n if (!cookieStorage || !cookieStorage.isEnabled()) {\n cookieStorage = new CookieStorage({\n domain: options.domain,\n expirationDays: options.cookieExpiration,\n sameSite: options.cookieSameSite,\n secure: options.cookieSecure,\n });\n if (options.disableCookies || !cookieStorage.isEnabled()) {\n cookieStorage = new LocalStorage();\n if (!cookieStorage.isEnabled()) {\n cookieStorage = new MemoryStorage();\n }\n }\n }\n return cookieStorage;\n};\n\nexport const createEventsStorage = (overrides?: BrowserOptions) => {\n let eventsStorage = overrides?.storageProvider;\n if (!eventsStorage || !eventsStorage.isEnabled()) {\n eventsStorage = new LocalStorage();\n if (!eventsStorage.isEnabled()) {\n eventsStorage = new MemoryStorage();\n }\n }\n return eventsStorage;\n};\n\nexport const createDeviceId = (idFromCookies?: string, idFromOptions?: string, idFromQueryParams?: string) => {\n return idFromOptions || idFromQueryParams || idFromCookies || UUID();\n};\n\nexport const createSessionId = (idFromCookies = 0, idFromOptions = 0, lastEventTime = 0, sessionTimeout: number) => {\n if (idFromCookies && Date.now() - lastEventTime < sessionTimeout) {\n return idFromCookies;\n }\n return idFromOptions ? idFromOptions : Date.now();\n};\n\nexport const createTransport = (transport?: TransportType) => {\n if (transport === TransportType.XHR) {\n return new XHRTransport();\n }\n if (transport === TransportType.SendBeacon) {\n return new SendBeaconTransport();\n }\n return getDefaultConfig().transportProvider;\n};\n"]}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Event,\n BrowserOptions,\n BrowserConfig as IBrowserConfig,\n Storage,\n TrackingOptions,\n TransportType,\n UserSession,\n SessionManager as ISessionManager,\n} from '@amplitude/analytics-types';\nimport { Config, MemoryStorage, UUID } from '@amplitude/analytics-core';\n\nimport { CookieStorage } from './storage/cookie';\nimport { FetchTransport } from './transports/fetch';\nimport { LocalStorage } from './storage/local-storage';\nimport { getCookieName } from './utils/cookie-name';\nimport { getQueryParams } from './utils/query-params';\nimport { XHRTransport } from './transports/xhr';\nimport { SendBeaconTransport } from './transports/send-beacon';\nimport { SessionManager } from './session-manager';\n\nexport const getDefaultConfig = () => {\n const cookieStorage = new MemoryStorage<UserSession>();\n return {\n cookieExpiration: 365,\n cookieSameSite: 'Lax',\n cookieSecure: false,\n cookieStorage,\n disableCookies: false,\n domain: '',\n sessionManager: new SessionManager(cookieStorage, ''),\n sessionTimeout: 30 * 60 * 1000,\n storageProvider: new MemoryStorage<Event[]>(),\n trackingOptions: {\n city: true,\n country: true,\n carrier: true,\n deviceManufacturer: true,\n deviceModel: true,\n dma: true,\n ipAddress: true,\n language: true,\n osName: true,\n osVersion: true,\n platform: true,\n region: true,\n versionName: true,\n },\n transportProvider: new FetchTransport(),\n };\n};\n\nexport class BrowserConfig extends Config implements IBrowserConfig {\n appVersion?: string;\n cookieExpiration: number;\n cookieSameSite: string;\n cookieSecure: boolean;\n cookieStorage: Storage<UserSession>;\n disableCookies: boolean;\n domain: string;\n partnerId?: string;\n sessionTimeout: number;\n trackingOptions: TrackingOptions;\n sessionManager: ISessionManager;\n\n constructor(apiKey: string, userId?: string, options?: BrowserOptions) {\n const defaultConfig = getDefaultConfig();\n super({\n ...options,\n apiKey,\n storageProvider: options?.storageProvider ?? defaultConfig.storageProvider,\n transportProvider: options?.transportProvider ?? defaultConfig.transportProvider,\n });\n this.cookieStorage = options?.cookieStorage ?? defaultConfig.cookieStorage;\n this.sessionManager = options?.sessionManager ?? defaultConfig.sessionManager;\n this.sessionTimeout = options?.sessionTimeout ?? defaultConfig.sessionTimeout;\n\n this.appVersion = options?.appVersion;\n this.cookieExpiration = options?.cookieExpiration ?? defaultConfig.cookieExpiration;\n this.cookieSameSite = options?.cookieSameSite ?? defaultConfig.cookieSameSite;\n this.cookieSecure = options?.cookieSecure ?? defaultConfig.cookieSecure;\n this.deviceId = options?.deviceId;\n this.disableCookies = options?.disableCookies ?? defaultConfig.disableCookies;\n this.domain = options?.domain ?? defaultConfig.domain;\n this.lastEventTime = this.lastEventTime ?? options?.lastEventTime;\n this.optOut = Boolean(options?.optOut);\n this.partnerId = options?.partnerId;\n this.sessionId = options?.sessionId;\n this.trackingOptions = options?.trackingOptions ?? defaultConfig.trackingOptions;\n this.userId = userId;\n }\n\n get deviceId() {\n return this.sessionManager.getDeviceId();\n }\n\n set deviceId(deviceId: string | undefined) {\n this.sessionManager.setDeviceId(deviceId);\n }\n\n get userId() {\n return this.sessionManager.getUserId();\n }\n\n set userId(userId: string | undefined) {\n this.sessionManager.setUserId(userId);\n }\n\n get sessionId() {\n return this.sessionManager.getSessionId();\n }\n\n set sessionId(sessionId: number | undefined) {\n this.sessionManager.setSessionId(sessionId);\n }\n\n get optOut() {\n return this.sessionManager.getOptOut();\n }\n\n set optOut(optOut: boolean) {\n this.sessionManager?.setOptOut(Boolean(optOut));\n }\n\n get lastEventTime() {\n return this.sessionManager.getLastEventTime();\n }\n\n set lastEventTime(lastEventTime: number | undefined) {\n this.sessionManager.setLastEventTime(lastEventTime);\n }\n}\n\nexport const useBrowserConfig = async (\n apiKey: string,\n userId?: string,\n options?: BrowserOptions,\n): Promise<IBrowserConfig> => {\n const defaultConfig = getDefaultConfig();\n const cookieStorage = await createCookieStorage(options);\n const cookieName = getCookieName(apiKey);\n const cookies = await cookieStorage.get(cookieName);\n const queryParams = getQueryParams();\n const sessionManager = await new SessionManager(cookieStorage, apiKey).load();\n\n return new BrowserConfig(apiKey, userId ?? cookies?.userId, {\n ...options,\n cookieStorage,\n sessionManager,\n deviceId: createDeviceId(cookies?.deviceId, options?.deviceId, queryParams.deviceId),\n optOut: options?.optOut ?? Boolean(cookies?.optOut),\n sessionId: (await cookieStorage.get(cookieName))?.sessionId ?? options?.sessionId,\n storageProvider: await createEventsStorage(options),\n trackingOptions: { ...defaultConfig.trackingOptions, ...options?.trackingOptions },\n transportProvider: options?.transportProvider ?? createTransport(options?.transport),\n });\n};\n\nexport const createCookieStorage = async (\n overrides?: BrowserOptions,\n baseConfig = getDefaultConfig(),\n): Promise<Storage<UserSession>> => {\n const options = { ...baseConfig, ...overrides };\n const cookieStorage = overrides?.cookieStorage;\n if (!cookieStorage || !(await cookieStorage.isEnabled())) {\n return createFlexibleStorage<UserSession>(options);\n }\n return cookieStorage;\n};\n\nexport const createFlexibleStorage = async <T>(options: BrowserOptions): Promise<Storage<T>> => {\n let storage: Storage<T> = new CookieStorage({\n domain: options.domain,\n expirationDays: options.cookieExpiration,\n sameSite: options.cookieSameSite,\n secure: options.cookieSecure,\n });\n if (options.disableCookies || !(await storage.isEnabled())) {\n storage = new LocalStorage();\n if (!(await storage.isEnabled())) {\n storage = new MemoryStorage();\n }\n }\n return storage;\n};\n\nexport const createEventsStorage = async (overrides?: BrowserOptions): Promise<Storage<Event[]>> => {\n let eventsStorage = overrides?.storageProvider;\n if (!eventsStorage || !(await eventsStorage.isEnabled())) {\n eventsStorage = new LocalStorage();\n if (!(await eventsStorage.isEnabled())) {\n eventsStorage = new MemoryStorage();\n }\n }\n return eventsStorage;\n};\n\nexport const createDeviceId = (idFromCookies?: string, idFromOptions?: string, idFromQueryParams?: string) => {\n return idFromOptions || idFromQueryParams || idFromCookies || UUID();\n};\n\nexport const createTransport = (transport?: TransportType) => {\n if (transport === TransportType.XHR) {\n return new XHRTransport();\n }\n if (transport === TransportType.SendBeacon) {\n return new SendBeaconTransport();\n }\n return getDefaultConfig().transportProvider;\n};\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BrowserOptions, UserSession } from '@amplitude/analytics-types';
|
|
2
|
-
export declare const parseOldCookies: (apiKey: string, options?: BrowserOptions | undefined) => UserSession
|
|
2
|
+
export declare const parseOldCookies: (apiKey: string, options?: BrowserOptions | undefined) => Promise<UserSession>;
|
|
3
3
|
export declare const parseTime: (num: string) => number | undefined;
|
|
4
4
|
export declare const decode: (value?: string | undefined) => string | undefined;
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cookie-migration/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAW,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAKlF,eAAO,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cookie-migration/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAW,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAKlF,eAAO,MAAM,eAAe,WAAkB,MAAM,2CAA6B,QAAQ,WAAW,CA6BnG,CAAC;AAEF,eAAO,MAAM,SAAS,QAAS,MAAM,uBAMpC,CAAC;AAEF,eAAO,MAAM,MAAM,kCAAqB,MAAM,GAAG,SAShD,CAAC"}
|