@amplitude/analytics-react-native 0.0.1-dev.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 +0 -0
- package/amplitude-react-native.podspec +21 -0
- package/android/build.gradle +61 -0
- package/android/gradle.properties +3 -0
- package/android/src/main/AndroidManifest.xml +4 -0
- package/android/src/main/java/com/amplitude/reactnative/AmplitudeReactNativeModule.kt +36 -0
- package/android/src/main/java/com/amplitude/reactnative/AmplitudeReactNativePackage.java +28 -0
- package/android/src/main/java/com/amplitude/reactnative/AndroidContextProvider.kt +415 -0
- package/android/src/main/java/com/amplitude/reactnative/AndroidLogger.kt +56 -0
- package/android/src/main/java/com/amplitude/reactnative/Utils.kt +34 -0
- package/ios/AmplitudeReactNative-Bridging-Header.h +5 -0
- package/ios/AmplitudeReactNative.m +7 -0
- package/ios/AmplitudeReactNative.swift +29 -0
- package/ios/AmplitudeReactNative.xcodeproj/project.pbxproj +293 -0
- package/ios/AppleContextProvider.swift +219 -0
- package/lib/commonjs/attribution/campaign-parser.js +74 -0
- package/lib/commonjs/attribution/campaign-parser.js.map +1 -0
- package/lib/commonjs/attribution/campaign-tracker.js +133 -0
- package/lib/commonjs/attribution/campaign-tracker.js.map +1 -0
- package/lib/commonjs/attribution/constants.js +47 -0
- package/lib/commonjs/attribution/constants.js.map +1 -0
- package/lib/commonjs/config.js +257 -0
- package/lib/commonjs/config.js.map +1 -0
- package/lib/commonjs/constants.js +31 -0
- package/lib/commonjs/constants.js.map +1 -0
- package/lib/commonjs/cookie-migration/index.js +74 -0
- package/lib/commonjs/cookie-migration/index.js.map +1 -0
- package/lib/commonjs/index.js +141 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/plugins/context.js +136 -0
- package/lib/commonjs/plugins/context.js.map +1 -0
- package/lib/commonjs/react-native-client.js +362 -0
- package/lib/commonjs/react-native-client.js.map +1 -0
- package/lib/commonjs/session-manager.js +114 -0
- package/lib/commonjs/session-manager.js.map +1 -0
- package/lib/commonjs/storage/cookie.js +124 -0
- package/lib/commonjs/storage/cookie.js.map +1 -0
- package/lib/commonjs/storage/local-storage.js +79 -0
- package/lib/commonjs/storage/local-storage.js.map +1 -0
- package/lib/commonjs/storage/utm-cookie.js +42 -0
- package/lib/commonjs/storage/utm-cookie.js.map +1 -0
- package/lib/commonjs/transports/fetch.js +34 -0
- package/lib/commonjs/transports/fetch.js.map +1 -0
- package/lib/commonjs/transports/send-beacon.js +43 -0
- package/lib/commonjs/transports/send-beacon.js.map +1 -0
- package/lib/commonjs/transports/xhr.js +54 -0
- package/lib/commonjs/transports/xhr.js.map +1 -0
- package/lib/commonjs/typings/browser-snippet.d.js +6 -0
- package/lib/commonjs/typings/browser-snippet.d.js.map +1 -0
- package/lib/commonjs/typings/ua-parser.d.js +2 -0
- package/lib/commonjs/typings/ua-parser.d.js.map +1 -0
- package/lib/commonjs/utils/cookie-name.js +23 -0
- package/lib/commonjs/utils/cookie-name.js.map +1 -0
- package/lib/commonjs/utils/language.js +18 -0
- package/lib/commonjs/utils/language.js.map +1 -0
- package/lib/commonjs/utils/platform.js +21 -0
- package/lib/commonjs/utils/platform.js.map +1 -0
- package/lib/commonjs/utils/query-params.js +36 -0
- package/lib/commonjs/utils/query-params.js.map +1 -0
- package/lib/commonjs/utils/snippet-helper.js +56 -0
- package/lib/commonjs/utils/snippet-helper.js.map +1 -0
- package/lib/commonjs/version.js +9 -0
- package/lib/commonjs/version.js.map +1 -0
- package/lib/module/attribution/campaign-parser.js +62 -0
- package/lib/module/attribution/campaign-parser.js.map +1 -0
- package/lib/module/attribution/campaign-tracker.js +120 -0
- package/lib/module/attribution/campaign-tracker.js.map +1 -0
- package/lib/module/attribution/constants.js +26 -0
- package/lib/module/attribution/constants.js.map +1 -0
- package/lib/module/config.js +217 -0
- package/lib/module/config.js.map +1 -0
- package/lib/module/constants.js +13 -0
- package/lib/module/constants.js.map +1 -0
- package/lib/module/cookie-migration/index.js +56 -0
- package/lib/module/cookie-migration/index.js.map +1 -0
- package/lib/module/index.js +6 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/plugins/context.js +118 -0
- package/lib/module/plugins/context.js.map +1 -0
- package/lib/module/react-native-client.js +329 -0
- package/lib/module/react-native-client.js.map +1 -0
- package/lib/module/session-manager.js +104 -0
- package/lib/module/session-manager.js.map +1 -0
- package/lib/module/storage/cookie.js +114 -0
- package/lib/module/storage/cookie.js.map +1 -0
- package/lib/module/storage/local-storage.js +67 -0
- package/lib/module/storage/local-storage.js.map +1 -0
- package/lib/module/storage/utm-cookie.js +32 -0
- package/lib/module/storage/utm-cookie.js.map +1 -0
- package/lib/module/transports/fetch.js +24 -0
- package/lib/module/transports/fetch.js.map +1 -0
- package/lib/module/transports/send-beacon.js +33 -0
- package/lib/module/transports/send-beacon.js.map +1 -0
- package/lib/module/transports/xhr.js +44 -0
- package/lib/module/transports/xhr.js.map +1 -0
- package/lib/module/typings/browser-snippet.d.js +2 -0
- package/lib/module/typings/browser-snippet.d.js.map +1 -0
- package/lib/module/typings/ua-parser.d.js +2 -0
- package/lib/module/typings/ua-parser.d.js.map +1 -0
- package/lib/module/utils/cookie-name.js +10 -0
- package/lib/module/utils/cookie-name.js.map +1 -0
- package/lib/module/utils/language.js +9 -0
- package/lib/module/utils/language.js.map +1 -0
- package/lib/module/utils/platform.js +8 -0
- package/lib/module/utils/platform.js.map +1 -0
- package/lib/module/utils/query-params.js +26 -0
- package/lib/module/utils/query-params.js.map +1 -0
- package/lib/module/utils/snippet-helper.js +41 -0
- package/lib/module/utils/snippet-helper.js.map +1 -0
- package/lib/module/version.js +2 -0
- package/lib/module/version.js.map +1 -0
- package/lib/typescript/attribution/campaign-parser.d.ts +10 -0
- package/lib/typescript/attribution/campaign-parser.d.ts.map +1 -0
- package/lib/typescript/attribution/campaign-tracker.d.ts +72 -0
- package/lib/typescript/attribution/campaign-tracker.d.ts.map +1 -0
- package/lib/typescript/attribution/constants.d.ts +17 -0
- package/lib/typescript/attribution/constants.d.ts.map +1 -0
- package/lib/typescript/config.d.ts +90 -0
- package/lib/typescript/config.d.ts.map +1 -0
- package/lib/typescript/constants.d.ts +13 -0
- package/lib/typescript/constants.d.ts.map +1 -0
- package/lib/typescript/cookie-migration/index.d.ts +5 -0
- package/lib/typescript/cookie-migration/index.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +6 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/plugins/context.d.ts +31 -0
- package/lib/typescript/plugins/context.d.ts.map +1 -0
- package/lib/typescript/react-native-client.d.ts +209 -0
- package/lib/typescript/react-native-client.d.ts.map +1 -0
- package/lib/typescript/session-manager.d.ts +28 -0
- package/lib/typescript/session-manager.d.ts.map +1 -0
- package/lib/typescript/storage/cookie.d.ts +12 -0
- package/lib/typescript/storage/cookie.d.ts.map +1 -0
- package/lib/typescript/storage/local-storage.d.ts +10 -0
- package/lib/typescript/storage/local-storage.d.ts.map +1 -0
- package/lib/typescript/storage/utm-cookie.d.ts +6 -0
- package/lib/typescript/storage/utm-cookie.d.ts.map +1 -0
- package/lib/typescript/transports/fetch.d.ts +6 -0
- package/lib/typescript/transports/fetch.d.ts.map +1 -0
- package/lib/typescript/transports/send-beacon.d.ts +6 -0
- package/lib/typescript/transports/send-beacon.d.ts.map +1 -0
- package/lib/typescript/transports/xhr.d.ts +7 -0
- package/lib/typescript/transports/xhr.d.ts.map +1 -0
- package/lib/typescript/utils/cookie-name.d.ts +3 -0
- package/lib/typescript/utils/cookie-name.d.ts.map +1 -0
- package/lib/typescript/utils/language.d.ts +2 -0
- package/lib/typescript/utils/language.d.ts.map +1 -0
- package/lib/typescript/utils/platform.d.ts +3 -0
- package/lib/typescript/utils/platform.d.ts.map +1 -0
- package/lib/typescript/utils/query-params.d.ts +2 -0
- package/lib/typescript/utils/query-params.d.ts.map +1 -0
- package/lib/typescript/utils/snippet-helper.d.ts +16 -0
- package/lib/typescript/utils/snippet-helper.d.ts.map +1 -0
- package/lib/typescript/version.d.ts +2 -0
- package/lib/typescript/version.d.ts.map +1 -0
- package/package.json +93 -0
- package/src/attribution/campaign-parser.ts +78 -0
- package/src/attribution/campaign-tracker.ts +112 -0
- package/src/attribution/constants.ts +32 -0
- package/src/config.ts +210 -0
- package/src/constants.ts +14 -0
- package/src/cookie-migration/index.ts +54 -0
- package/src/index.ts +23 -0
- package/src/plugins/context.ts +106 -0
- package/src/react-native-client.ts +349 -0
- package/src/session-manager.ts +81 -0
- package/src/storage/cookie.ts +95 -0
- package/src/storage/local-storage.ts +67 -0
- package/src/storage/utm-cookie.ts +27 -0
- package/src/transports/fetch.ts +23 -0
- package/src/transports/send-beacon.ts +34 -0
- package/src/transports/xhr.ts +36 -0
- package/src/typings/browser-snippet.d.ts +7 -0
- package/src/typings/ua-parser.d.ts +4 -0
- package/src/utils/cookie-name.ts +9 -0
- package/src/utils/language.ts +7 -0
- package/src/utils/platform.ts +9 -0
- package/src/utils/query-params.ts +21 -0
- package/src/utils/snippet-helper.ts +35 -0
- package/src/version.ts +1 -0
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
+
|
|
3
|
+
import { getCookieName as getStorageKey } from './utils/cookie-name';
|
|
4
|
+
export class SessionManager {
|
|
5
|
+
constructor(storage, apiKey) {
|
|
6
|
+
this.storage = storage;
|
|
7
|
+
|
|
8
|
+
_defineProperty(this, "storageKey", void 0);
|
|
9
|
+
|
|
10
|
+
_defineProperty(this, "cache", void 0);
|
|
11
|
+
|
|
12
|
+
_defineProperty(this, "isSessionCacheValid", true);
|
|
13
|
+
|
|
14
|
+
this.storageKey = getStorageKey(apiKey);
|
|
15
|
+
this.cache = {
|
|
16
|
+
optOut: false
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* load() must be called immediately after instantation
|
|
21
|
+
*
|
|
22
|
+
* ```ts
|
|
23
|
+
* await new SessionManager(...).load();
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
async load() {
|
|
29
|
+
var _await$this$storage$g;
|
|
30
|
+
|
|
31
|
+
this.cache = (_await$this$storage$g = await this.storage.get(this.storageKey)) !== null && _await$this$storage$g !== void 0 ? _await$this$storage$g : {
|
|
32
|
+
optOut: false
|
|
33
|
+
};
|
|
34
|
+
return this;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
setSession(session) {
|
|
38
|
+
this.cache = { ...this.cache,
|
|
39
|
+
...session
|
|
40
|
+
};
|
|
41
|
+
void this.storage.set(this.storageKey, this.cache);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
getSessionId() {
|
|
45
|
+
this.isSessionCacheValid = true;
|
|
46
|
+
void this.storage.get(this.storageKey).then(userSession => {
|
|
47
|
+
// Checks if session id has been set since the last get
|
|
48
|
+
if (this.isSessionCacheValid) {
|
|
49
|
+
this.cache.sessionId = userSession === null || userSession === void 0 ? void 0 : userSession.sessionId;
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
return this.cache.sessionId;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
setSessionId(sessionId) {
|
|
56
|
+
// Flags session id has been set
|
|
57
|
+
this.isSessionCacheValid = false;
|
|
58
|
+
this.setSession({
|
|
59
|
+
sessionId
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
getDeviceId() {
|
|
64
|
+
return this.cache.deviceId;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
setDeviceId(deviceId) {
|
|
68
|
+
this.setSession({
|
|
69
|
+
deviceId
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
getUserId() {
|
|
74
|
+
return this.cache.userId;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
setUserId(userId) {
|
|
78
|
+
this.setSession({
|
|
79
|
+
userId
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
getLastEventTime() {
|
|
84
|
+
return this.cache.lastEventTime;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
setLastEventTime(lastEventTime) {
|
|
88
|
+
this.setSession({
|
|
89
|
+
lastEventTime
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
getOptOut() {
|
|
94
|
+
return this.cache.optOut;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
setOptOut(optOut) {
|
|
98
|
+
this.setSession({
|
|
99
|
+
optOut
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=session-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getCookieName","getStorageKey","SessionManager","constructor","storage","apiKey","storageKey","cache","optOut","load","get","setSession","session","set","getSessionId","isSessionCacheValid","then","userSession","sessionId","setSessionId","getDeviceId","deviceId","setDeviceId","getUserId","userId","setUserId","getLastEventTime","lastEventTime","setLastEventTime","getOptOut","setOptOut"],"sources":["session-manager.ts"],"sourcesContent":["import { UserSession, Storage, SessionManager as ISessionManager } from '@amplitude/analytics-types';\nimport { getCookieName as getStorageKey } from './utils/cookie-name';\n\nexport class SessionManager implements ISessionManager {\n storageKey: string;\n cache: UserSession;\n isSessionCacheValid = true;\n\n constructor(private storage: Storage<UserSession>, apiKey: string) {\n this.storageKey = getStorageKey(apiKey);\n this.cache = { optOut: false };\n }\n\n /**\n * load() must be called immediately after instantation\n *\n * ```ts\n * await new SessionManager(...).load();\n * ```\n */\n async load() {\n this.cache = (await this.storage.get(this.storageKey)) ?? {\n optOut: false,\n };\n return this;\n }\n\n setSession(session: Partial<UserSession>) {\n this.cache = { ...this.cache, ...session };\n void this.storage.set(this.storageKey, this.cache);\n }\n\n getSessionId() {\n this.isSessionCacheValid = true;\n void this.storage.get(this.storageKey).then((userSession) => {\n // Checks if session id has been set since the last get\n if (this.isSessionCacheValid) {\n this.cache.sessionId = userSession?.sessionId;\n }\n });\n return this.cache.sessionId;\n }\n\n setSessionId(sessionId: number) {\n // Flags session id has been set\n this.isSessionCacheValid = false;\n this.setSession({ sessionId });\n }\n\n getDeviceId(): string | undefined {\n return this.cache.deviceId;\n }\n\n setDeviceId(deviceId: string): void {\n this.setSession({ deviceId });\n }\n\n getUserId(): string | undefined {\n return this.cache.userId;\n }\n\n setUserId(userId: string): void {\n this.setSession({ userId });\n }\n\n getLastEventTime() {\n return this.cache.lastEventTime;\n }\n\n setLastEventTime(lastEventTime: number) {\n this.setSession({ lastEventTime });\n }\n\n getOptOut(): boolean {\n return this.cache.optOut;\n }\n\n setOptOut(optOut: boolean): void {\n this.setSession({ optOut });\n }\n}\n"],"mappings":";;AACA,SAASA,aAAa,IAAIC,aAA1B,QAA+C,qBAA/C;AAEA,OAAO,MAAMC,cAAN,CAAgD;EAKrDC,WAAW,CAASC,OAAT,EAAwCC,MAAxC,EAAwD;IAAA,KAA/CD,OAA+C,GAA/CA,OAA+C;;IAAA;;IAAA;;IAAA,6CAF7C,IAE6C;;IACjE,KAAKE,UAAL,GAAkBL,aAAa,CAACI,MAAD,CAA/B;IACA,KAAKE,KAAL,GAAa;MAAEC,MAAM,EAAE;IAAV,CAAb;EACD;EAED;AACF;AACA;AACA;AACA;AACA;AACA;;;EACY,MAAJC,IAAI,GAAG;IAAA;;IACX,KAAKF,KAAL,4BAAc,MAAM,KAAKH,OAAL,CAAaM,GAAb,CAAiB,KAAKJ,UAAtB,CAApB,yEAA0D;MACxDE,MAAM,EAAE;IADgD,CAA1D;IAGA,OAAO,IAAP;EACD;;EAEDG,UAAU,CAACC,OAAD,EAAgC;IACxC,KAAKL,KAAL,GAAa,EAAE,GAAG,KAAKA,KAAV;MAAiB,GAAGK;IAApB,CAAb;IACA,KAAK,KAAKR,OAAL,CAAaS,GAAb,CAAiB,KAAKP,UAAtB,EAAkC,KAAKC,KAAvC,CAAL;EACD;;EAEDO,YAAY,GAAG;IACb,KAAKC,mBAAL,GAA2B,IAA3B;IACA,KAAK,KAAKX,OAAL,CAAaM,GAAb,CAAiB,KAAKJ,UAAtB,EAAkCU,IAAlC,CAAwCC,WAAD,IAAiB;MAC3D;MACA,IAAI,KAAKF,mBAAT,EAA8B;QAC5B,KAAKR,KAAL,CAAWW,SAAX,GAAuBD,WAAvB,aAAuBA,WAAvB,uBAAuBA,WAAW,CAAEC,SAApC;MACD;IACF,CALI,CAAL;IAMA,OAAO,KAAKX,KAAL,CAAWW,SAAlB;EACD;;EAEDC,YAAY,CAACD,SAAD,EAAoB;IAC9B;IACA,KAAKH,mBAAL,GAA2B,KAA3B;IACA,KAAKJ,UAAL,CAAgB;MAAEO;IAAF,CAAhB;EACD;;EAEDE,WAAW,GAAuB;IAChC,OAAO,KAAKb,KAAL,CAAWc,QAAlB;EACD;;EAEDC,WAAW,CAACD,QAAD,EAAyB;IAClC,KAAKV,UAAL,CAAgB;MAAEU;IAAF,CAAhB;EACD;;EAEDE,SAAS,GAAuB;IAC9B,OAAO,KAAKhB,KAAL,CAAWiB,MAAlB;EACD;;EAEDC,SAAS,CAACD,MAAD,EAAuB;IAC9B,KAAKb,UAAL,CAAgB;MAAEa;IAAF,CAAhB;EACD;;EAEDE,gBAAgB,GAAG;IACjB,OAAO,KAAKnB,KAAL,CAAWoB,aAAlB;EACD;;EAEDC,gBAAgB,CAACD,aAAD,EAAwB;IACtC,KAAKhB,UAAL,CAAgB;MAAEgB;IAAF,CAAhB;EACD;;EAEDE,SAAS,GAAY;IACnB,OAAO,KAAKtB,KAAL,CAAWC,MAAlB;EACD;;EAEDsB,SAAS,CAACtB,MAAD,EAAwB;IAC/B,KAAKG,UAAL,CAAgB;MAAEH;IAAF,CAAhB;EACD;;AA5EoD"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
+
|
|
3
|
+
import { isNative } from '../utils/platform';
|
|
4
|
+
export class CookieStorage {
|
|
5
|
+
constructor(options) {
|
|
6
|
+
_defineProperty(this, "options", void 0);
|
|
7
|
+
|
|
8
|
+
this.options = { ...options
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
async isEnabled() {
|
|
13
|
+
if (isNative()) {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
/* istanbul ignore if */
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
if (typeof window === 'undefined') {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const random = String(Date.now());
|
|
24
|
+
const testStrorage = new CookieStorage();
|
|
25
|
+
const testKey = 'AMP_TEST';
|
|
26
|
+
|
|
27
|
+
try {
|
|
28
|
+
await testStrorage.set(testKey, random);
|
|
29
|
+
const value = await testStrorage.get(testKey);
|
|
30
|
+
return value === random;
|
|
31
|
+
} catch {
|
|
32
|
+
/* istanbul ignore next */
|
|
33
|
+
return false;
|
|
34
|
+
} finally {
|
|
35
|
+
await testStrorage.remove(testKey);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
async get(key) {
|
|
40
|
+
const value = await this.getRaw(key);
|
|
41
|
+
|
|
42
|
+
if (!value) {
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
try {
|
|
47
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
48
|
+
return JSON.parse(value);
|
|
49
|
+
} catch {
|
|
50
|
+
/* istanbul ignore next */
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
async getRaw(key) {
|
|
56
|
+
const cookie = window.document.cookie.split('; ');
|
|
57
|
+
const match = cookie.find(c => c.indexOf(key + '=') === 0);
|
|
58
|
+
|
|
59
|
+
if (!match) {
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
return match.substring(key.length + 1);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
async set(key, value) {
|
|
67
|
+
try {
|
|
68
|
+
var _this$options$expirat;
|
|
69
|
+
|
|
70
|
+
const expirationDays = (_this$options$expirat = this.options.expirationDays) !== null && _this$options$expirat !== void 0 ? _this$options$expirat : 0;
|
|
71
|
+
const expires = value !== null ? expirationDays : -1;
|
|
72
|
+
let expireDate = undefined;
|
|
73
|
+
|
|
74
|
+
if (expires) {
|
|
75
|
+
const date = new Date();
|
|
76
|
+
date.setTime(date.getTime() + expires * 24 * 60 * 60 * 1000);
|
|
77
|
+
expireDate = date;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
let str = `${key}=${JSON.stringify(value)}`;
|
|
81
|
+
|
|
82
|
+
if (expireDate) {
|
|
83
|
+
str += `; expires=${expireDate.toUTCString()}`;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
str += '; path=/';
|
|
87
|
+
|
|
88
|
+
if (this.options.domain) {
|
|
89
|
+
str += `; domain=${this.options.domain}`;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
if (this.options.secure) {
|
|
93
|
+
str += '; Secure';
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
if (this.options.sameSite) {
|
|
97
|
+
str += `; SameSite=${this.options.sameSite}`;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
window.document.cookie = str;
|
|
101
|
+
} catch {//
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
async remove(key) {
|
|
106
|
+
await this.set(key, null);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
async reset() {
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=cookie.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["isNative","CookieStorage","constructor","options","isEnabled","window","random","String","Date","now","testStrorage","testKey","set","value","get","remove","key","getRaw","undefined","JSON","parse","cookie","document","split","match","find","c","indexOf","substring","length","expirationDays","expires","expireDate","date","setTime","getTime","str","stringify","toUTCString","domain","secure","sameSite","reset"],"sources":["cookie.ts"],"sourcesContent":["import { Storage, CookieStorageOptions } from '@amplitude/analytics-types';\nimport { isNative } from '../utils/platform';\n\nexport class CookieStorage<T> implements Storage<T> {\n options: CookieStorageOptions;\n\n constructor(options?: CookieStorageOptions) {\n this.options = { ...options };\n }\n\n async isEnabled(): Promise<boolean> {\n if (isNative()) {\n return false;\n }\n /* istanbul ignore if */\n if (typeof window === 'undefined') {\n return false;\n }\n\n const random = String(Date.now());\n const testStrorage = new CookieStorage<string>();\n const testKey = 'AMP_TEST';\n try {\n await testStrorage.set(testKey, random);\n const value = await testStrorage.get(testKey);\n return value === random;\n } catch {\n /* istanbul ignore next */\n return false;\n } finally {\n await testStrorage.remove(testKey);\n }\n }\n\n async get(key: string): Promise<T | undefined> {\n const value = await this.getRaw(key);\n if (!value) {\n return undefined;\n }\n try {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return JSON.parse(value);\n } catch {\n /* istanbul ignore next */\n return undefined;\n }\n }\n\n async getRaw(key: string): Promise<string | undefined> {\n const cookie = window.document.cookie.split('; ');\n const match = cookie.find((c) => c.indexOf(key + '=') === 0);\n if (!match) {\n return undefined;\n }\n return match.substring(key.length + 1);\n }\n\n async set(key: string, value: T | null): Promise<void> {\n try {\n const expirationDays = this.options.expirationDays ?? 0;\n const expires = value !== null ? expirationDays : -1;\n let expireDate: Date | undefined = undefined;\n if (expires) {\n const date = new Date();\n date.setTime(date.getTime() + expires * 24 * 60 * 60 * 1000);\n expireDate = date;\n }\n let str = `${key}=${JSON.stringify(value)}`;\n if (expireDate) {\n str += `; expires=${expireDate.toUTCString()}`;\n }\n str += '; path=/';\n if (this.options.domain) {\n str += `; domain=${this.options.domain}`;\n }\n if (this.options.secure) {\n str += '; Secure';\n }\n if (this.options.sameSite) {\n str += `; SameSite=${this.options.sameSite}`;\n }\n window.document.cookie = str;\n } catch {\n //\n }\n }\n\n async remove(key: string): Promise<void> {\n await this.set(key, null);\n }\n\n async reset(): Promise<void> {\n return;\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import AsyncStorage from '@react-native-async-storage/async-storage';
|
|
2
|
+
export class LocalStorage {
|
|
3
|
+
async isEnabled() {
|
|
4
|
+
/* istanbul ignore if */
|
|
5
|
+
if (typeof window === 'undefined') {
|
|
6
|
+
return false;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
const random = String(Date.now());
|
|
10
|
+
const testStorage = new LocalStorage();
|
|
11
|
+
const testKey = 'AMP_TEST';
|
|
12
|
+
|
|
13
|
+
try {
|
|
14
|
+
await testStorage.set(testKey, random);
|
|
15
|
+
const value = await testStorage.get(testKey);
|
|
16
|
+
return value === random;
|
|
17
|
+
} catch {
|
|
18
|
+
/* istanbul ignore next */
|
|
19
|
+
return false;
|
|
20
|
+
} finally {
|
|
21
|
+
await testStorage.remove(testKey);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
async get(key) {
|
|
26
|
+
try {
|
|
27
|
+
const value = await this.getRaw(key);
|
|
28
|
+
|
|
29
|
+
if (!value) {
|
|
30
|
+
return undefined;
|
|
31
|
+
} // eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
return JSON.parse(value);
|
|
35
|
+
} catch {
|
|
36
|
+
/* istanbul ignore next */
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
async getRaw(key) {
|
|
42
|
+
return (await AsyncStorage.getItem(key)) || undefined;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
async set(key, value) {
|
|
46
|
+
try {
|
|
47
|
+
await AsyncStorage.setItem(key, JSON.stringify(value));
|
|
48
|
+
} catch {//
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
async remove(key) {
|
|
53
|
+
try {
|
|
54
|
+
await AsyncStorage.removeItem(key);
|
|
55
|
+
} catch {//
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
async reset() {
|
|
60
|
+
try {
|
|
61
|
+
await AsyncStorage.clear();
|
|
62
|
+
} catch {//
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=local-storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["AsyncStorage","LocalStorage","isEnabled","window","random","String","Date","now","testStorage","testKey","set","value","get","remove","key","getRaw","undefined","JSON","parse","getItem","setItem","stringify","removeItem","reset","clear"],"sources":["local-storage.ts"],"sourcesContent":["import { Storage } from '@amplitude/analytics-types';\nimport AsyncStorage from '@react-native-async-storage/async-storage';\n\nexport class LocalStorage<T> implements Storage<T> {\n async isEnabled(): Promise<boolean> {\n /* istanbul ignore if */\n if (typeof window === 'undefined') {\n return false;\n }\n\n const random = String(Date.now());\n const testStorage = new LocalStorage<string>();\n const testKey = 'AMP_TEST';\n try {\n await testStorage.set(testKey, random);\n const value = await testStorage.get(testKey);\n return value === random;\n } catch {\n /* istanbul ignore next */\n return false;\n } finally {\n await testStorage.remove(testKey);\n }\n }\n\n async get(key: string): Promise<T | undefined> {\n try {\n const value = await this.getRaw(key);\n if (!value) {\n return undefined;\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return JSON.parse(value);\n } catch {\n /* istanbul ignore next */\n return undefined;\n }\n }\n\n async getRaw(key: string): Promise<string | undefined> {\n return (await AsyncStorage.getItem(key)) || undefined;\n }\n\n async set(key: string, value: T): Promise<void> {\n try {\n await AsyncStorage.setItem(key, JSON.stringify(value));\n } catch {\n //\n }\n }\n\n async remove(key: string): Promise<void> {\n try {\n await AsyncStorage.removeItem(key);\n } catch {\n //\n }\n }\n\n async reset(): Promise<void> {\n try {\n await AsyncStorage.clear();\n } catch {\n //\n }\n }\n}\n"],"mappings":"AACA,OAAOA,YAAP,MAAyB,2CAAzB;AAEA,OAAO,MAAMC,YAAN,CAA4C;EAClC,MAATC,SAAS,GAAqB;IAClC;IACA,IAAI,OAAOC,MAAP,KAAkB,WAAtB,EAAmC;MACjC,OAAO,KAAP;IACD;;IAED,MAAMC,MAAM,GAAGC,MAAM,CAACC,IAAI,CAACC,GAAL,EAAD,CAArB;IACA,MAAMC,WAAW,GAAG,IAAIP,YAAJ,EAApB;IACA,MAAMQ,OAAO,GAAG,UAAhB;;IACA,IAAI;MACF,MAAMD,WAAW,CAACE,GAAZ,CAAgBD,OAAhB,EAAyBL,MAAzB,CAAN;MACA,MAAMO,KAAK,GAAG,MAAMH,WAAW,CAACI,GAAZ,CAAgBH,OAAhB,CAApB;MACA,OAAOE,KAAK,KAAKP,MAAjB;IACD,CAJD,CAIE,MAAM;MACN;MACA,OAAO,KAAP;IACD,CAPD,SAOU;MACR,MAAMI,WAAW,CAACK,MAAZ,CAAmBJ,OAAnB,CAAN;IACD;EACF;;EAEQ,MAAHG,GAAG,CAACE,GAAD,EAAsC;IAC7C,IAAI;MACF,MAAMH,KAAK,GAAG,MAAM,KAAKI,MAAL,CAAYD,GAAZ,CAApB;;MACA,IAAI,CAACH,KAAL,EAAY;QACV,OAAOK,SAAP;MACD,CAJC,CAKF;;;MACA,OAAOC,IAAI,CAACC,KAAL,CAAWP,KAAX,CAAP;IACD,CAPD,CAOE,MAAM;MACN;MACA,OAAOK,SAAP;IACD;EACF;;EAEW,MAAND,MAAM,CAACD,GAAD,EAA2C;IACrD,OAAO,CAAC,MAAMd,YAAY,CAACmB,OAAb,CAAqBL,GAArB,CAAP,KAAqCE,SAA5C;EACD;;EAEQ,MAAHN,GAAG,CAACI,GAAD,EAAcH,KAAd,EAAuC;IAC9C,IAAI;MACF,MAAMX,YAAY,CAACoB,OAAb,CAAqBN,GAArB,EAA0BG,IAAI,CAACI,SAAL,CAAeV,KAAf,CAA1B,CAAN;IACD,CAFD,CAEE,MAAM,CACN;IACD;EACF;;EAEW,MAANE,MAAM,CAACC,GAAD,EAA6B;IACvC,IAAI;MACF,MAAMd,YAAY,CAACsB,UAAb,CAAwBR,GAAxB,CAAN;IACD,CAFD,CAEE,MAAM,CACN;IACD;EACF;;EAEU,MAALS,KAAK,GAAkB;IAC3B,IAAI;MACF,MAAMvB,YAAY,CAACwB,KAAb,EAAN;IACD,CAFD,CAEE,MAAM,CACN;IACD;EACF;;AA9DgD"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { CookieStorage } from './cookie';
|
|
2
|
+
export class UTMCookie extends CookieStorage {
|
|
3
|
+
async get(key) {
|
|
4
|
+
try {
|
|
5
|
+
const value = await this.getRaw(key);
|
|
6
|
+
|
|
7
|
+
if (!value) {
|
|
8
|
+
return undefined;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const entries = value.split('.').splice(-1)[0].split('|');
|
|
12
|
+
return entries.reduce((acc, curr) => {
|
|
13
|
+
const [key, value = ''] = curr.split('=', 2);
|
|
14
|
+
|
|
15
|
+
if (!value) {
|
|
16
|
+
return acc;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
acc[key] = decodeURIComponent(value);
|
|
20
|
+
return acc;
|
|
21
|
+
}, {});
|
|
22
|
+
} catch {
|
|
23
|
+
return undefined;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
async set() {
|
|
28
|
+
return undefined;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=utm-cookie.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CookieStorage","UTMCookie","get","key","value","getRaw","undefined","entries","split","splice","reduce","acc","curr","decodeURIComponent","set"],"sources":["utm-cookie.ts"],"sourcesContent":["import { CookieStorage } from './cookie';\n\nexport class UTMCookie extends CookieStorage<Record<string, string | undefined>> {\n async get(key: string): Promise<Record<string, string | undefined> | undefined> {\n try {\n const value = await this.getRaw(key);\n if (!value) {\n return undefined;\n }\n const entries = value.split('.').splice(-1)[0].split('|');\n return entries.reduce<Record<string, string | undefined>>((acc, curr) => {\n const [key, value = ''] = curr.split('=', 2);\n if (!value) {\n return acc;\n }\n acc[key] = decodeURIComponent(value);\n return acc;\n }, {});\n } catch {\n return undefined;\n }\n }\n\n async set(): Promise<void> {\n return undefined;\n }\n}\n"],"mappings":"AAAA,SAASA,aAAT,QAA8B,UAA9B;AAEA,OAAO,MAAMC,SAAN,SAAwBD,aAAxB,CAA0E;EACtE,MAAHE,GAAG,CAACC,GAAD,EAAuE;IAC9E,IAAI;MACF,MAAMC,KAAK,GAAG,MAAM,KAAKC,MAAL,CAAYF,GAAZ,CAApB;;MACA,IAAI,CAACC,KAAL,EAAY;QACV,OAAOE,SAAP;MACD;;MACD,MAAMC,OAAO,GAAGH,KAAK,CAACI,KAAN,CAAY,GAAZ,EAAiBC,MAAjB,CAAwB,CAAC,CAAzB,EAA4B,CAA5B,EAA+BD,KAA/B,CAAqC,GAArC,CAAhB;MACA,OAAOD,OAAO,CAACG,MAAR,CAAmD,CAACC,GAAD,EAAMC,IAAN,KAAe;QACvE,MAAM,CAACT,GAAD,EAAMC,KAAK,GAAG,EAAd,IAAoBQ,IAAI,CAACJ,KAAL,CAAW,GAAX,EAAgB,CAAhB,CAA1B;;QACA,IAAI,CAACJ,KAAL,EAAY;UACV,OAAOO,GAAP;QACD;;QACDA,GAAG,CAACR,GAAD,CAAH,GAAWU,kBAAkB,CAACT,KAAD,CAA7B;QACA,OAAOO,GAAP;MACD,CAPM,EAOJ,EAPI,CAAP;IAQD,CAdD,CAcE,MAAM;MACN,OAAOL,SAAP;IACD;EACF;;EAEQ,MAAHQ,GAAG,GAAkB;IACzB,OAAOR,SAAP;EACD;;AAvB8E"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { BaseTransport } from '@amplitude/analytics-core';
|
|
2
|
+
export class FetchTransport extends BaseTransport {
|
|
3
|
+
async send(serverUrl, payload) {
|
|
4
|
+
/* istanbul ignore if */
|
|
5
|
+
if (typeof fetch === 'undefined') {
|
|
6
|
+
throw new Error('FetchTransport is not supported');
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
const options = {
|
|
10
|
+
headers: {
|
|
11
|
+
'Content-Type': 'application/json',
|
|
12
|
+
Accept: '*/*'
|
|
13
|
+
},
|
|
14
|
+
body: JSON.stringify(payload),
|
|
15
|
+
method: 'POST'
|
|
16
|
+
};
|
|
17
|
+
const response = await fetch(serverUrl, options); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
18
|
+
|
|
19
|
+
const responsePayload = await response.json();
|
|
20
|
+
return this.buildResponse(responsePayload);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=fetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["BaseTransport","FetchTransport","send","serverUrl","payload","fetch","Error","options","headers","Accept","body","JSON","stringify","method","response","responsePayload","json","buildResponse"],"sources":["fetch.ts"],"sourcesContent":["import { BaseTransport } from '@amplitude/analytics-core';\nimport { Payload, Response, Transport } from '@amplitude/analytics-types';\n\nexport class FetchTransport extends BaseTransport implements Transport {\n async send(serverUrl: string, payload: Payload): Promise<Response | null> {\n /* istanbul ignore if */\n if (typeof fetch === 'undefined') {\n throw new Error('FetchTransport is not supported');\n }\n const options: RequestInit = {\n headers: {\n 'Content-Type': 'application/json',\n Accept: '*/*',\n },\n body: JSON.stringify(payload),\n method: 'POST',\n };\n const response = await fetch(serverUrl, options);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const responsePayload: Record<string, any> = await response.json();\n return this.buildResponse(responsePayload);\n }\n}\n"],"mappings":"AAAA,SAASA,aAAT,QAA8B,2BAA9B;AAGA,OAAO,MAAMC,cAAN,SAA6BD,aAA7B,CAAgE;EAC3D,MAAJE,IAAI,CAACC,SAAD,EAAoBC,OAApB,EAAgE;IACxE;IACA,IAAI,OAAOC,KAAP,KAAiB,WAArB,EAAkC;MAChC,MAAM,IAAIC,KAAJ,CAAU,iCAAV,CAAN;IACD;;IACD,MAAMC,OAAoB,GAAG;MAC3BC,OAAO,EAAE;QACP,gBAAgB,kBADT;QAEPC,MAAM,EAAE;MAFD,CADkB;MAK3BC,IAAI,EAAEC,IAAI,CAACC,SAAL,CAAeR,OAAf,CALqB;MAM3BS,MAAM,EAAE;IANmB,CAA7B;IAQA,MAAMC,QAAQ,GAAG,MAAMT,KAAK,CAACF,SAAD,EAAYI,OAAZ,CAA5B,CAbwE,CAcxE;;IACA,MAAMQ,eAAoC,GAAG,MAAMD,QAAQ,CAACE,IAAT,EAAnD;IACA,OAAO,KAAKC,aAAL,CAAmBF,eAAnB,CAAP;EACD;;AAlBoE"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { BaseTransport } from '@amplitude/analytics-core';
|
|
2
|
+
export class SendBeaconTransport extends BaseTransport {
|
|
3
|
+
async send(serverUrl, payload) {
|
|
4
|
+
return new Promise((resolve, reject) => {
|
|
5
|
+
/* istanbul ignore if */
|
|
6
|
+
if (typeof window === 'undefined' || typeof window.navigator === 'undefined' || typeof window.navigator.sendBeacon === 'undefined') {
|
|
7
|
+
throw new Error('SendBeaconTransport is not supported');
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
try {
|
|
11
|
+
const data = JSON.stringify(payload);
|
|
12
|
+
const success = window.navigator.sendBeacon(serverUrl, JSON.stringify(payload));
|
|
13
|
+
|
|
14
|
+
if (success) {
|
|
15
|
+
return resolve(this.buildResponse({
|
|
16
|
+
code: 200,
|
|
17
|
+
events_ingested: payload.events.length,
|
|
18
|
+
payload_size_bytes: data.length,
|
|
19
|
+
server_upload_time: Date.now()
|
|
20
|
+
}));
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
return resolve(this.buildResponse({
|
|
24
|
+
code: 500
|
|
25
|
+
}));
|
|
26
|
+
} catch (e) {
|
|
27
|
+
reject(e);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=send-beacon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["BaseTransport","SendBeaconTransport","send","serverUrl","payload","Promise","resolve","reject","window","navigator","sendBeacon","Error","data","JSON","stringify","success","buildResponse","code","events_ingested","events","length","payload_size_bytes","server_upload_time","Date","now","e"],"sources":["send-beacon.ts"],"sourcesContent":["import { BaseTransport } from '@amplitude/analytics-core';\nimport { Payload, Response, Transport } from '@amplitude/analytics-types';\n\nexport class SendBeaconTransport extends BaseTransport implements Transport {\n async send(serverUrl: string, payload: Payload): Promise<Response | null> {\n return new Promise((resolve, reject) => {\n /* istanbul ignore if */\n if (\n typeof window === 'undefined' ||\n typeof window.navigator === 'undefined' ||\n typeof window.navigator.sendBeacon === 'undefined'\n ) {\n throw new Error('SendBeaconTransport is not supported');\n }\n try {\n const data = JSON.stringify(payload);\n const success = window.navigator.sendBeacon(serverUrl, JSON.stringify(payload));\n if (success) {\n return resolve(\n this.buildResponse({\n code: 200,\n events_ingested: payload.events.length,\n payload_size_bytes: data.length,\n server_upload_time: Date.now(),\n }),\n );\n }\n return resolve(this.buildResponse({ code: 500 }));\n } catch (e) {\n reject(e);\n }\n });\n }\n}\n"],"mappings":"AAAA,SAASA,aAAT,QAA8B,2BAA9B;AAGA,OAAO,MAAMC,mBAAN,SAAkCD,aAAlC,CAAqE;EAChE,MAAJE,IAAI,CAACC,SAAD,EAAoBC,OAApB,EAAgE;IACxE,OAAO,IAAIC,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;MACtC;MACA,IACE,OAAOC,MAAP,KAAkB,WAAlB,IACA,OAAOA,MAAM,CAACC,SAAd,KAA4B,WAD5B,IAEA,OAAOD,MAAM,CAACC,SAAP,CAAiBC,UAAxB,KAAuC,WAHzC,EAIE;QACA,MAAM,IAAIC,KAAJ,CAAU,sCAAV,CAAN;MACD;;MACD,IAAI;QACF,MAAMC,IAAI,GAAGC,IAAI,CAACC,SAAL,CAAeV,OAAf,CAAb;QACA,MAAMW,OAAO,GAAGP,MAAM,CAACC,SAAP,CAAiBC,UAAjB,CAA4BP,SAA5B,EAAuCU,IAAI,CAACC,SAAL,CAAeV,OAAf,CAAvC,CAAhB;;QACA,IAAIW,OAAJ,EAAa;UACX,OAAOT,OAAO,CACZ,KAAKU,aAAL,CAAmB;YACjBC,IAAI,EAAE,GADW;YAEjBC,eAAe,EAAEd,OAAO,CAACe,MAAR,CAAeC,MAFf;YAGjBC,kBAAkB,EAAET,IAAI,CAACQ,MAHR;YAIjBE,kBAAkB,EAAEC,IAAI,CAACC,GAAL;UAJH,CAAnB,CADY,CAAd;QAQD;;QACD,OAAOlB,OAAO,CAAC,KAAKU,aAAL,CAAmB;UAAEC,IAAI,EAAE;QAAR,CAAnB,CAAD,CAAd;MACD,CAdD,CAcE,OAAOQ,CAAP,EAAU;QACVlB,MAAM,CAACkB,CAAD,CAAN;MACD;IACF,CA1BM,CAAP;EA2BD;;AA7ByE"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
+
|
|
3
|
+
import { BaseTransport } from '@amplitude/analytics-core';
|
|
4
|
+
export class XHRTransport extends BaseTransport {
|
|
5
|
+
constructor() {
|
|
6
|
+
super(...arguments);
|
|
7
|
+
|
|
8
|
+
_defineProperty(this, "state", {
|
|
9
|
+
done: 4
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
async send(serverUrl, payload) {
|
|
14
|
+
return new Promise((resolve, reject) => {
|
|
15
|
+
/* istanbul ignore if */
|
|
16
|
+
if (typeof XMLHttpRequest === 'undefined') {
|
|
17
|
+
reject(new Error('XHRTransport is not supported.'));
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const xhr = new XMLHttpRequest();
|
|
21
|
+
xhr.open('POST', serverUrl, true);
|
|
22
|
+
|
|
23
|
+
xhr.onreadystatechange = () => {
|
|
24
|
+
if (xhr.readyState === this.state.done) {
|
|
25
|
+
try {
|
|
26
|
+
const responsePayload = xhr.responseText; // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
27
|
+
|
|
28
|
+
const parsedResponsePayload = JSON.parse(responsePayload);
|
|
29
|
+
const result = this.buildResponse(parsedResponsePayload);
|
|
30
|
+
resolve(result);
|
|
31
|
+
} catch (e) {
|
|
32
|
+
reject(e);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
xhr.setRequestHeader('Content-Type', 'application/json');
|
|
38
|
+
xhr.setRequestHeader('Accept', '*/*');
|
|
39
|
+
xhr.send(JSON.stringify(payload));
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=xhr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["BaseTransport","XHRTransport","done","send","serverUrl","payload","Promise","resolve","reject","XMLHttpRequest","Error","xhr","open","onreadystatechange","readyState","state","responsePayload","responseText","parsedResponsePayload","JSON","parse","result","buildResponse","e","setRequestHeader","stringify"],"sources":["xhr.ts"],"sourcesContent":["import { BaseTransport } from '@amplitude/analytics-core';\nimport { Payload, Response, Transport } from '@amplitude/analytics-types';\n\nexport class XHRTransport extends BaseTransport implements Transport {\n private state = {\n done: 4,\n };\n\n async send(serverUrl: string, payload: Payload): Promise<Response | null> {\n return new Promise((resolve, reject) => {\n /* istanbul ignore if */\n if (typeof XMLHttpRequest === 'undefined') {\n reject(new Error('XHRTransport is not supported.'));\n }\n\n const xhr = new XMLHttpRequest();\n xhr.open('POST', serverUrl, true);\n xhr.onreadystatechange = () => {\n if (xhr.readyState === this.state.done) {\n try {\n const responsePayload = xhr.responseText;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const parsedResponsePayload: Record<string, any> = JSON.parse(responsePayload);\n const result = this.buildResponse(parsedResponsePayload);\n resolve(result);\n } catch (e) {\n reject(e);\n }\n }\n };\n xhr.setRequestHeader('Content-Type', 'application/json');\n xhr.setRequestHeader('Accept', '*/*');\n xhr.send(JSON.stringify(payload));\n });\n }\n}\n"],"mappings":";;AAAA,SAASA,aAAT,QAA8B,2BAA9B;AAGA,OAAO,MAAMC,YAAN,SAA2BD,aAA3B,CAA8D;EAAA;IAAA;;IAAA,+BACnD;MACdE,IAAI,EAAE;IADQ,CADmD;EAAA;;EAKzD,MAAJC,IAAI,CAACC,SAAD,EAAoBC,OAApB,EAAgE;IACxE,OAAO,IAAIC,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;MACtC;MACA,IAAI,OAAOC,cAAP,KAA0B,WAA9B,EAA2C;QACzCD,MAAM,CAAC,IAAIE,KAAJ,CAAU,gCAAV,CAAD,CAAN;MACD;;MAED,MAAMC,GAAG,GAAG,IAAIF,cAAJ,EAAZ;MACAE,GAAG,CAACC,IAAJ,CAAS,MAAT,EAAiBR,SAAjB,EAA4B,IAA5B;;MACAO,GAAG,CAACE,kBAAJ,GAAyB,MAAM;QAC7B,IAAIF,GAAG,CAACG,UAAJ,KAAmB,KAAKC,KAAL,CAAWb,IAAlC,EAAwC;UACtC,IAAI;YACF,MAAMc,eAAe,GAAGL,GAAG,CAACM,YAA5B,CADE,CAEF;;YACA,MAAMC,qBAA0C,GAAGC,IAAI,CAACC,KAAL,CAAWJ,eAAX,CAAnD;YACA,MAAMK,MAAM,GAAG,KAAKC,aAAL,CAAmBJ,qBAAnB,CAAf;YACAX,OAAO,CAACc,MAAD,CAAP;UACD,CAND,CAME,OAAOE,CAAP,EAAU;YACVf,MAAM,CAACe,CAAD,CAAN;UACD;QACF;MACF,CAZD;;MAaAZ,GAAG,CAACa,gBAAJ,CAAqB,cAArB,EAAqC,kBAArC;MACAb,GAAG,CAACa,gBAAJ,CAAqB,QAArB,EAA+B,KAA/B;MACAb,GAAG,CAACR,IAAJ,CAASgB,IAAI,CAACM,SAAL,CAAepB,OAAf,CAAT;IACD,CAxBM,CAAP;EAyBD;;AA/BkE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["browser-snippet.d.ts"],"sourcesContent":["import { InstanceProxy } from '@amplitude/analytics-types';\n\ndeclare global {\n // globalThis only includes `var` declarations\n // eslint-disable-next-line no-var\n var amplitude: InstanceProxy & { invoked: boolean };\n}\n"],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["ua-parser.d.ts"],"sourcesContent":["declare module '@amplitude/ua-parser-js' {\n import UAParser from 'ua-parser-js';\n export = UAParser;\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AMPLITUDE_PREFIX } from '@amplitude/analytics-core';
|
|
2
|
+
export const getCookieName = function (apiKey) {
|
|
3
|
+
let postKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
4
|
+
let limit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10;
|
|
5
|
+
return [AMPLITUDE_PREFIX, postKey, apiKey.substring(0, limit)].filter(Boolean).join('_');
|
|
6
|
+
};
|
|
7
|
+
export const getOldCookieName = apiKey => {
|
|
8
|
+
return `${AMPLITUDE_PREFIX.toLowerCase()}_${apiKey.substring(0, 6)}`;
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=cookie-name.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["AMPLITUDE_PREFIX","getCookieName","apiKey","postKey","limit","substring","filter","Boolean","join","getOldCookieName","toLowerCase"],"sources":["cookie-name.ts"],"sourcesContent":["import { AMPLITUDE_PREFIX } from '@amplitude/analytics-core';\n\nexport const getCookieName = (apiKey: string, postKey = '', limit = 10) => {\n return [AMPLITUDE_PREFIX, postKey, apiKey.substring(0, limit)].filter(Boolean).join('_');\n};\n\nexport const getOldCookieName = (apiKey: string) => {\n return `${AMPLITUDE_PREFIX.toLowerCase()}_${apiKey.substring(0, 6)}`;\n};\n"],"mappings":"AAAA,SAASA,gBAAT,QAAiC,2BAAjC;AAEA,OAAO,MAAMC,aAAa,GAAG,UAACC,MAAD,EAA8C;EAAA,IAA7BC,OAA6B,uEAAnB,EAAmB;EAAA,IAAfC,KAAe,uEAAP,EAAO;EACzE,OAAO,CAACJ,gBAAD,EAAmBG,OAAnB,EAA4BD,MAAM,CAACG,SAAP,CAAiB,CAAjB,EAAoBD,KAApB,CAA5B,EAAwDE,MAAxD,CAA+DC,OAA/D,EAAwEC,IAAxE,CAA6E,GAA7E,CAAP;AACD,CAFM;AAIP,OAAO,MAAMC,gBAAgB,GAAIP,MAAD,IAAoB;EAClD,OAAQ,GAAEF,gBAAgB,CAACU,WAAjB,EAA+B,IAAGR,MAAM,CAACG,SAAP,CAAiB,CAAjB,EAAoB,CAApB,CAAuB,EAAnE;AACD,CAFM"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export const getLanguage = () => {
|
|
2
|
+
var _ref, _ref2, _navigator$languages$, _navigator$languages;
|
|
3
|
+
|
|
4
|
+
if (typeof navigator === 'undefined') return ''; // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
5
|
+
|
|
6
|
+
const userLanguage = navigator.userLanguage;
|
|
7
|
+
return (_ref = (_ref2 = (_navigator$languages$ = (_navigator$languages = navigator.languages) === null || _navigator$languages === void 0 ? void 0 : _navigator$languages[0]) !== null && _navigator$languages$ !== void 0 ? _navigator$languages$ : navigator.language) !== null && _ref2 !== void 0 ? _ref2 : userLanguage) !== null && _ref !== void 0 ? _ref : '';
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=language.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getLanguage","navigator","userLanguage","languages","language"],"sources":["language.ts"],"sourcesContent":["export const getLanguage = (): string => {\n if (typeof navigator === 'undefined') return '';\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const userLanguage = (navigator as any).userLanguage as string | undefined;\n\n return navigator.languages?.[0] ?? navigator.language ?? userLanguage ?? '';\n};\n"],"mappings":"AAAA,OAAO,MAAMA,WAAW,GAAG,MAAc;EAAA;;EACvC,IAAI,OAAOC,SAAP,KAAqB,WAAzB,EAAsC,OAAO,EAAP,CADC,CAEvC;;EACA,MAAMC,YAAY,GAAID,SAAD,CAAmBC,YAAxC;EAEA,yEAAOD,SAAS,CAACE,SAAjB,yDAAO,qBAAsB,CAAtB,CAAP,yEAAmCF,SAAS,CAACG,QAA7C,yCAAyDF,YAAzD,uCAAyE,EAAzE;AACD,CANM"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Platform","isWeb","OS","isNative"],"sources":["platform.ts"],"sourcesContent":["import { Platform } from 'react-native';\n\nexport const isWeb = (): boolean => {\n return Platform.OS === 'web';\n};\n\nexport const isNative = (): boolean => {\n return !isWeb();\n};\n"],"mappings":"AAAA,SAASA,QAAT,QAAyB,cAAzB;AAEA,OAAO,MAAMC,KAAK,GAAG,MAAe;EAClC,OAAOD,QAAQ,CAACE,EAAT,KAAgB,KAAvB;AACD,CAFM;AAIP,OAAO,MAAMC,QAAQ,GAAG,MAAe;EACrC,OAAO,CAACF,KAAK,EAAb;AACD,CAFM"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { isNative } from './platform';
|
|
2
|
+
export const getQueryParams = () => {
|
|
3
|
+
if (isNative()) {
|
|
4
|
+
return {};
|
|
5
|
+
}
|
|
6
|
+
/* istanbul ignore if */
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
if (typeof window === 'undefined') {
|
|
10
|
+
return {};
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const pairs = window.location.search.substring(1).split('&').filter(Boolean);
|
|
14
|
+
const params = pairs.reduce((acc, curr) => {
|
|
15
|
+
const [key, value = ''] = curr.split('=', 2);
|
|
16
|
+
|
|
17
|
+
if (!value) {
|
|
18
|
+
return acc;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
acc[decodeURIComponent(key)] = decodeURIComponent(value);
|
|
22
|
+
return acc;
|
|
23
|
+
}, {});
|
|
24
|
+
return params;
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=query-params.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["isNative","getQueryParams","window","pairs","location","search","substring","split","filter","Boolean","params","reduce","acc","curr","key","value","decodeURIComponent"],"sources":["query-params.ts"],"sourcesContent":["import { isNative } from './platform';\n\nexport const getQueryParams = (): Record<string, string | undefined> => {\n if (isNative()) {\n return {};\n }\n /* istanbul ignore if */\n if (typeof window === 'undefined') {\n return {};\n }\n const pairs = window.location.search.substring(1).split('&').filter(Boolean);\n const params = pairs.reduce<Record<string, string | undefined>>((acc, curr) => {\n const [key, value = ''] = curr.split('=', 2);\n if (!value) {\n return acc;\n }\n acc[decodeURIComponent(key)] = decodeURIComponent(value);\n return acc;\n }, {});\n return params;\n};\n"],"mappings":"AAAA,SAASA,QAAT,QAAyB,YAAzB;AAEA,OAAO,MAAMC,cAAc,GAAG,MAA0C;EACtE,IAAID,QAAQ,EAAZ,EAAgB;IACd,OAAO,EAAP;EACD;EACD;;;EACA,IAAI,OAAOE,MAAP,KAAkB,WAAtB,EAAmC;IACjC,OAAO,EAAP;EACD;;EACD,MAAMC,KAAK,GAAGD,MAAM,CAACE,QAAP,CAAgBC,MAAhB,CAAuBC,SAAvB,CAAiC,CAAjC,EAAoCC,KAApC,CAA0C,GAA1C,EAA+CC,MAA/C,CAAsDC,OAAtD,CAAd;EACA,MAAMC,MAAM,GAAGP,KAAK,CAACQ,MAAN,CAAiD,CAACC,GAAD,EAAMC,IAAN,KAAe;IAC7E,MAAM,CAACC,GAAD,EAAMC,KAAK,GAAG,EAAd,IAAoBF,IAAI,CAACN,KAAL,CAAW,GAAX,EAAgB,CAAhB,CAA1B;;IACA,IAAI,CAACQ,KAAL,EAAY;MACV,OAAOH,GAAP;IACD;;IACDA,GAAG,CAACI,kBAAkB,CAACF,GAAD,CAAnB,CAAH,GAA+BE,kBAAkB,CAACD,KAAD,CAAjD;IACA,OAAOH,GAAP;EACD,CAPc,EAOZ,EAPY,CAAf;EAQA,OAAOF,MAAP;AACD,CAlBM"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Applies the proxied functions on the proxied amplitude snippet to an instance of the real object.
|
|
3
|
+
* @ignore
|
|
4
|
+
*/
|
|
5
|
+
export const runQueuedFunctions = (instance, queue) => {
|
|
6
|
+
convertProxyObjectToRealObject(instance, queue);
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Applies the proxied functions on the proxied object to an instance of the real object.
|
|
10
|
+
* Used to convert proxied Identify and Revenue objects.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
export const convertProxyObjectToRealObject = (instance, queue) => {
|
|
14
|
+
for (let i = 0; i < queue.length; i++) {
|
|
15
|
+
const {
|
|
16
|
+
name,
|
|
17
|
+
args,
|
|
18
|
+
resolve
|
|
19
|
+
} = queue[i];
|
|
20
|
+
const fn = instance && instance[name];
|
|
21
|
+
|
|
22
|
+
if (typeof fn === 'function') {
|
|
23
|
+
const result = fn.apply(instance, args);
|
|
24
|
+
|
|
25
|
+
if (typeof resolve === 'function') {
|
|
26
|
+
resolve(result === null || result === void 0 ? void 0 : result.promise);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
return instance;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Check if the param is snippet proxy
|
|
35
|
+
*/
|
|
36
|
+
|
|
37
|
+
export const isInstanceProxy = instance => {
|
|
38
|
+
const instanceProxy = instance;
|
|
39
|
+
return instanceProxy && instanceProxy._q !== undefined;
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=snippet-helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["runQueuedFunctions","instance","queue","convertProxyObjectToRealObject","i","length","name","args","resolve","fn","result","apply","promise","isInstanceProxy","instanceProxy","_q","undefined"],"sources":["snippet-helper.ts"],"sourcesContent":["import { AmplitudeReturn, InstanceProxy, QueueProxy, Result } from '@amplitude/analytics-types';\n\n/**\n * Applies the proxied functions on the proxied amplitude snippet to an instance of the real object.\n * @ignore\n */\nexport const runQueuedFunctions = (instance: object, queue: QueueProxy) => {\n convertProxyObjectToRealObject(instance, queue);\n};\n\n/**\n * Applies the proxied functions on the proxied object to an instance of the real object.\n * Used to convert proxied Identify and Revenue objects.\n */\nexport const convertProxyObjectToRealObject = <T>(instance: T, queue: QueueProxy): T => {\n for (let i = 0; i < queue.length; i++) {\n const { name, args, resolve } = queue[i];\n const fn = instance && instance[name as keyof T];\n if (typeof fn === 'function') {\n const result = fn.apply(instance, args) as AmplitudeReturn<Result>;\n if (typeof resolve === 'function') {\n resolve(result?.promise);\n }\n }\n }\n return instance;\n};\n\n/**\n * Check if the param is snippet proxy\n */\nexport const isInstanceProxy = (instance: unknown): instance is InstanceProxy => {\n const instanceProxy = instance as InstanceProxy;\n return instanceProxy && instanceProxy._q !== undefined;\n};\n"],"mappings":"AAEA;AACA;AACA;AACA;AACA,OAAO,MAAMA,kBAAkB,GAAG,CAACC,QAAD,EAAmBC,KAAnB,KAAyC;EACzEC,8BAA8B,CAACF,QAAD,EAAWC,KAAX,CAA9B;AACD,CAFM;AAIP;AACA;AACA;AACA;;AACA,OAAO,MAAMC,8BAA8B,GAAG,CAAIF,QAAJ,EAAiBC,KAAjB,KAA0C;EACtF,KAAK,IAAIE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,KAAK,CAACG,MAA1B,EAAkCD,CAAC,EAAnC,EAAuC;IACrC,MAAM;MAAEE,IAAF;MAAQC,IAAR;MAAcC;IAAd,IAA0BN,KAAK,CAACE,CAAD,CAArC;IACA,MAAMK,EAAE,GAAGR,QAAQ,IAAIA,QAAQ,CAACK,IAAD,CAA/B;;IACA,IAAI,OAAOG,EAAP,KAAc,UAAlB,EAA8B;MAC5B,MAAMC,MAAM,GAAGD,EAAE,CAACE,KAAH,CAASV,QAAT,EAAmBM,IAAnB,CAAf;;MACA,IAAI,OAAOC,OAAP,KAAmB,UAAvB,EAAmC;QACjCA,OAAO,CAACE,MAAD,aAACA,MAAD,uBAACA,MAAM,CAAEE,OAAT,CAAP;MACD;IACF;EACF;;EACD,OAAOX,QAAP;AACD,CAZM;AAcP;AACA;AACA;;AACA,OAAO,MAAMY,eAAe,GAAIZ,QAAD,IAAkD;EAC/E,MAAMa,aAAa,GAAGb,QAAtB;EACA,OAAOa,aAAa,IAAIA,aAAa,CAACC,EAAd,KAAqBC,SAA7C;AACD,CAHM"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["VERSION"],"sources":["version.ts"],"sourcesContent":["export const VERSION = '0.0.1-dev.0';\n"],"mappings":"AAAA,OAAO,MAAMA,OAAO,GAAG,aAAhB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { UTMCookie } from '../storage/utm-cookie';
|
|
2
|
+
import { Campaign, CampaignParser as ICampaignParser, ClickIdParameters, ReferrerParameters, UTMParameters } from '@amplitude/analytics-types';
|
|
3
|
+
export declare class CampaignParser implements ICampaignParser {
|
|
4
|
+
utmCookieStorage: UTMCookie;
|
|
5
|
+
parse(): Promise<Campaign>;
|
|
6
|
+
getUtmParam(): Promise<UTMParameters>;
|
|
7
|
+
getReferrer(): ReferrerParameters;
|
|
8
|
+
getClickIds(): ClickIdParameters;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=campaign-parser.d.ts.map
|