@amplitude/analytics-browser 0.6.0 → 0.7.1

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.
Files changed (102) hide show
  1. package/README.md +1 -1
  2. package/lib/cjs/attribution/campaign-parser.d.ts +2 -2
  3. package/lib/cjs/attribution/campaign-parser.d.ts.map +1 -1
  4. package/lib/cjs/attribution/campaign-parser.js +42 -15
  5. package/lib/cjs/attribution/campaign-parser.js.map +1 -1
  6. package/lib/cjs/attribution/campaign-tracker.d.ts +2 -2
  7. package/lib/cjs/attribution/campaign-tracker.d.ts.map +1 -1
  8. package/lib/cjs/attribution/campaign-tracker.js +29 -7
  9. package/lib/cjs/attribution/campaign-tracker.js.map +1 -1
  10. package/lib/cjs/browser-client.d.ts +21 -9
  11. package/lib/cjs/browser-client.d.ts.map +1 -1
  12. package/lib/cjs/browser-client.js +27 -10
  13. package/lib/cjs/browser-client.js.map +1 -1
  14. package/lib/cjs/config.d.ts +8 -4
  15. package/lib/cjs/config.d.ts.map +1 -1
  16. package/lib/cjs/config.js +198 -79
  17. package/lib/cjs/config.js.map +1 -1
  18. package/lib/cjs/cookie-migration/index.d.ts +1 -1
  19. package/lib/cjs/cookie-migration/index.d.ts.map +1 -1
  20. package/lib/cjs/cookie-migration/index.js +42 -27
  21. package/lib/cjs/cookie-migration/index.js.map +1 -1
  22. package/lib/cjs/index.d.ts +1 -1
  23. package/lib/cjs/index.d.ts.map +1 -1
  24. package/lib/cjs/index.js +2 -1
  25. package/lib/cjs/index.js.map +1 -1
  26. package/lib/cjs/plugins/context.d.ts.map +1 -1
  27. package/lib/cjs/plugins/context.js +21 -16
  28. package/lib/cjs/plugins/context.js.map +1 -1
  29. package/lib/cjs/session-manager.d.ts +11 -3
  30. package/lib/cjs/session-manager.d.ts.map +1 -1
  31. package/lib/cjs/session-manager.js +41 -11
  32. package/lib/cjs/session-manager.js.map +1 -1
  33. package/lib/cjs/storage/cookie.d.ts +6 -6
  34. package/lib/cjs/storage/cookie.d.ts.map +1 -1
  35. package/lib/cjs/storage/cookie.js +122 -67
  36. package/lib/cjs/storage/cookie.js.map +1 -1
  37. package/lib/cjs/storage/local-storage.d.ts +6 -6
  38. package/lib/cjs/storage/local-storage.d.ts.map +1 -1
  39. package/lib/cjs/storage/local-storage.js +95 -50
  40. package/lib/cjs/storage/local-storage.js.map +1 -1
  41. package/lib/cjs/storage/utm-cookie.d.ts +2 -2
  42. package/lib/cjs/storage/utm-cookie.d.ts.map +1 -1
  43. package/lib/cjs/storage/utm-cookie.js +32 -18
  44. package/lib/cjs/storage/utm-cookie.js.map +1 -1
  45. package/lib/cjs/utils/snippet-helper.js.map +1 -1
  46. package/lib/cjs/version.d.ts +1 -1
  47. package/lib/cjs/version.js +1 -1
  48. package/lib/cjs/version.js.map +1 -1
  49. package/lib/esm/attribution/campaign-parser.d.ts +2 -2
  50. package/lib/esm/attribution/campaign-parser.d.ts.map +1 -1
  51. package/lib/esm/attribution/campaign-parser.js +43 -16
  52. package/lib/esm/attribution/campaign-parser.js.map +1 -1
  53. package/lib/esm/attribution/campaign-tracker.d.ts +2 -2
  54. package/lib/esm/attribution/campaign-tracker.d.ts.map +1 -1
  55. package/lib/esm/attribution/campaign-tracker.js +29 -7
  56. package/lib/esm/attribution/campaign-tracker.js.map +1 -1
  57. package/lib/esm/browser-client.d.ts +21 -9
  58. package/lib/esm/browser-client.d.ts.map +1 -1
  59. package/lib/esm/browser-client.js +26 -9
  60. package/lib/esm/browser-client.js.map +1 -1
  61. package/lib/esm/config.d.ts +8 -4
  62. package/lib/esm/config.d.ts.map +1 -1
  63. package/lib/esm/config.js +196 -79
  64. package/lib/esm/config.js.map +1 -1
  65. package/lib/esm/cookie-migration/index.d.ts +1 -1
  66. package/lib/esm/cookie-migration/index.d.ts.map +1 -1
  67. package/lib/esm/cookie-migration/index.js +42 -28
  68. package/lib/esm/cookie-migration/index.js.map +1 -1
  69. package/lib/esm/index.d.ts +1 -1
  70. package/lib/esm/index.d.ts.map +1 -1
  71. package/lib/esm/index.js +1 -1
  72. package/lib/esm/index.js.map +1 -1
  73. package/lib/esm/plugins/context.d.ts.map +1 -1
  74. package/lib/esm/plugins/context.js +22 -17
  75. package/lib/esm/plugins/context.js.map +1 -1
  76. package/lib/esm/session-manager.d.ts +11 -3
  77. package/lib/esm/session-manager.d.ts.map +1 -1
  78. package/lib/esm/session-manager.js +42 -12
  79. package/lib/esm/session-manager.js.map +1 -1
  80. package/lib/esm/storage/cookie.d.ts +6 -6
  81. package/lib/esm/storage/cookie.d.ts.map +1 -1
  82. package/lib/esm/storage/cookie.js +123 -68
  83. package/lib/esm/storage/cookie.js.map +1 -1
  84. package/lib/esm/storage/local-storage.d.ts +6 -6
  85. package/lib/esm/storage/local-storage.d.ts.map +1 -1
  86. package/lib/esm/storage/local-storage.js +95 -50
  87. package/lib/esm/storage/local-storage.js.map +1 -1
  88. package/lib/esm/storage/utm-cookie.d.ts +2 -2
  89. package/lib/esm/storage/utm-cookie.d.ts.map +1 -1
  90. package/lib/esm/storage/utm-cookie.js +33 -19
  91. package/lib/esm/storage/utm-cookie.js.map +1 -1
  92. package/lib/esm/utils/snippet-helper.js.map +1 -1
  93. package/lib/esm/version.d.ts +1 -1
  94. package/lib/esm/version.js +1 -1
  95. package/lib/esm/version.js.map +1 -1
  96. package/lib/scripts/amplitude-min.js +1 -1
  97. package/lib/scripts/amplitude-min.js.gz +0 -0
  98. package/lib/scripts/amplitude-min.umd.js +1 -1
  99. package/lib/scripts/amplitude-min.umd.js.gz +0 -0
  100. package/lib/scripts/amplitude-snippet-instructions.html +1 -1
  101. package/lib/scripts/amplitude-snippet-min.js +1 -1
  102. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/plugins/context.ts"],"names":[],"mappings":"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","sourcesContent":["import { BeforePlugin, BrowserConfig, Event, PluginType } from '@amplitude/analytics-types';\nimport UAParser from '@amplitude/ua-parser-js';\nimport { UUID } from '@amplitude/analytics-core';\nimport { getLanguage } from '../utils/language';\nimport { VERSION } from '../version';\n\nconst BROWSER_PLATFORM = 'Web';\nconst IP_ADDRESS = '$remote';\n\nexport class Context implements BeforePlugin {\n name = 'context';\n type = PluginType.BEFORE as const;\n\n // this.config is defined in setup() which will always be called first\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n config: BrowserConfig;\n eventId = 0;\n uaResult: UAParser.IResult;\n library = `amplitude-ts/${VERSION}`;\n\n constructor() {\n let agent: string | undefined;\n /* istanbul ignore else */\n if (typeof navigator !== 'undefined') {\n agent = navigator.userAgent;\n }\n this.uaResult = new UAParser(agent).getResult();\n }\n\n setup(config: BrowserConfig): Promise<undefined> {\n this.config = config;\n\n return Promise.resolve(undefined);\n }\n\n execute(context: Event): Promise<Event> {\n /**\n * Manages user session triggered by new events\n */\n if (!this.isSessionValid()) {\n // Creates new session\n this.config.sessionId = Date.now();\n } // else use previously creates session\n // Updates last event time to extend time-based session\n this.config.lastEventTime = Date.now();\n const time = new Date().getTime();\n const osName = this.uaResult.browser.name;\n const osVersion = this.uaResult.browser.version;\n const deviceModel = this.uaResult.device.model || this.uaResult.os.name;\n const deviceVendor = this.uaResult.device.vendor;\n const event: Event = {\n user_id: this.config.userId,\n device_id: this.config.deviceId,\n session_id: this.config.sessionId,\n time,\n ...(this.config.appVersion && { app_version: this.config.appVersion }),\n ...(this.config.trackingOptions.platform && { platform: BROWSER_PLATFORM }),\n ...(this.config.trackingOptions.osName && { os_name: osName }),\n ...(this.config.trackingOptions.osVersion && { os_version: osVersion }),\n ...(this.config.trackingOptions.deviceManufacturer && { device_manufacturer: deviceVendor }),\n ...(this.config.trackingOptions.deviceModel && { device_model: deviceModel }),\n ...(this.config.trackingOptions.language && { language: getLanguage() }),\n ...(this.config.trackingOptions.ipAddress && { ip: IP_ADDRESS }),\n insert_id: UUID(),\n partner_id: this.config.partnerId,\n plan: this.config.plan,\n ...context,\n event_id: this.eventId++,\n library: this.library,\n };\n\n return Promise.resolve(event);\n }\n\n isSessionValid() {\n const lastEventTime = this.config.lastEventTime || Date.now();\n const timeSinceLastEvent = Date.now() - lastEventTime;\n return timeSinceLastEvent < this.config.sessionTimeout;\n }\n}\n"]}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/plugins/context.ts"],"names":[],"mappings":"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","sourcesContent":["import { BeforePlugin, BrowserConfig, Event, PluginType } from '@amplitude/analytics-types';\nimport UAParser from '@amplitude/ua-parser-js';\nimport { UUID } from '@amplitude/analytics-core';\nimport { getLanguage } from '../utils/language';\nimport { VERSION } from '../version';\n\nconst BROWSER_PLATFORM = 'Web';\nconst IP_ADDRESS = '$remote';\n\nexport class Context implements BeforePlugin {\n name = 'context';\n type = PluginType.BEFORE as const;\n\n // this.config is defined in setup() which will always be called first\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n config: BrowserConfig;\n eventId = 0;\n uaResult: UAParser.IResult;\n library = `amplitude-ts/${VERSION}`;\n\n constructor() {\n let agent: string | undefined;\n /* istanbul ignore else */\n if (typeof navigator !== 'undefined') {\n agent = navigator.userAgent;\n }\n this.uaResult = new UAParser(agent).getResult();\n }\n\n setup(config: BrowserConfig): Promise<undefined> {\n this.config = config;\n\n return Promise.resolve(undefined);\n }\n\n async execute(context: Event): Promise<Event> {\n /**\n * Manages user session triggered by new events\n */\n if (!this.isSessionValid()) {\n // Creates new session\n this.config.sessionId = Date.now();\n } // else use previously creates session\n // Updates last event time to extend time-based session\n this.config.lastEventTime = Date.now();\n const time = new Date().getTime();\n const osName = this.uaResult.browser.name;\n const osVersion = this.uaResult.browser.version;\n const deviceModel = this.uaResult.device.model || this.uaResult.os.name;\n const deviceVendor = this.uaResult.device.vendor;\n\n const event: Event = {\n user_id: this.config.userId,\n device_id: this.config.deviceId,\n session_id: this.config.sessionId,\n time,\n ...(this.config.appVersion && { app_version: this.config.appVersion }),\n ...(this.config.trackingOptions.platform && { platform: BROWSER_PLATFORM }),\n ...(this.config.trackingOptions.osName && { os_name: osName }),\n ...(this.config.trackingOptions.osVersion && { os_version: osVersion }),\n ...(this.config.trackingOptions.deviceManufacturer && { device_manufacturer: deviceVendor }),\n ...(this.config.trackingOptions.deviceModel && { device_model: deviceModel }),\n ...(this.config.trackingOptions.language && { language: getLanguage() }),\n ...(this.config.trackingOptions.ipAddress && { ip: IP_ADDRESS }),\n insert_id: UUID(),\n partner_id: this.config.partnerId,\n plan: this.config.plan,\n ...context,\n event_id: this.eventId++,\n library: this.library,\n };\n return event;\n }\n\n isSessionValid() {\n const lastEventTime = this.config.lastEventTime || Date.now();\n const timeSinceLastEvent = Date.now() - lastEventTime;\n return timeSinceLastEvent < this.config.sessionTimeout;\n }\n}\n"]}
@@ -1,10 +1,18 @@
1
- import { UserSession, Storage, SessionManager as ISessionManager, SessionManagerOptions } from '@amplitude/analytics-types';
1
+ import { UserSession, Storage, SessionManager as ISessionManager } from '@amplitude/analytics-types';
2
2
  export declare class SessionManager implements ISessionManager {
3
3
  private storage;
4
4
  storageKey: string;
5
- sessionTimeout: number;
6
5
  cache: UserSession;
7
- constructor(storage: Storage<UserSession>, options: SessionManagerOptions);
6
+ isSessionCacheValid: boolean;
7
+ constructor(storage: Storage<UserSession>, apiKey: string);
8
+ /**
9
+ * load() must be called immediately after instantation
10
+ *
11
+ * ```ts
12
+ * await new SessionManager(...).load();
13
+ * ```
14
+ */
15
+ load(): Promise<this>;
8
16
  setSession(session: Partial<UserSession>): void;
9
17
  getSessionId(): number | undefined;
10
18
  setSessionId(sessionId: number): void;
@@ -1 +1 @@
1
- {"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/session-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,OAAO,EACP,cAAc,IAAI,eAAe,EACjC,qBAAqB,EACtB,MAAM,4BAA4B,CAAC;AAGpC,qBAAa,cAAe,YAAW,eAAe;IAKxC,OAAO,CAAC,OAAO;IAJ3B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,WAAW,CAAC;gBAEC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,qBAAqB;IAQjF,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC;IAKxC,YAAY;IAKZ,YAAY,CAAC,SAAS,EAAE,MAAM;IAI9B,WAAW,IAAI,MAAM,GAAG,SAAS;IAIjC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAInC,SAAS,IAAI,MAAM,GAAG,SAAS;IAI/B,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B,gBAAgB;IAIhB,gBAAgB,CAAC,aAAa,EAAE,MAAM;IAItC,SAAS,IAAI,OAAO;IAIpB,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;CAGjC"}
1
+ {"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/session-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,IAAI,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAGrG,qBAAa,cAAe,YAAW,eAAe;IAKxC,OAAO,CAAC,OAAO;IAJ3B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,WAAW,CAAC;IACnB,mBAAmB,UAAQ;gBAEP,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,MAAM;IAKjE;;;;;;OAMG;IACG,IAAI;IAOV,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC;IAKxC,YAAY;IAWZ,YAAY,CAAC,SAAS,EAAE,MAAM;IAM9B,WAAW,IAAI,MAAM,GAAG,SAAS;IAIjC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAInC,SAAS,IAAI,MAAM,GAAG,SAAS;IAI/B,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B,gBAAgB;IAIhB,gBAAgB,CAAC,aAAa,EAAE,MAAM;IAItC,SAAS,IAAI,OAAO;IAIpB,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;CAGjC"}
@@ -3,25 +3,55 @@ exports.SessionManager = void 0;
3
3
  var tslib_1 = require("tslib");
4
4
  var cookie_name_1 = require("./utils/cookie-name");
5
5
  var SessionManager = /** @class */ (function () {
6
- function SessionManager(storage, options) {
7
- var _a;
6
+ function SessionManager(storage, apiKey) {
8
7
  this.storage = storage;
9
- this.storageKey = (0, cookie_name_1.getCookieName)(options.apiKey);
10
- this.sessionTimeout = options.sessionTimeout;
11
- this.cache = (_a = this.storage.get(this.storageKey)) !== null && _a !== void 0 ? _a : {
12
- optOut: false,
13
- };
8
+ this.isSessionCacheValid = true;
9
+ this.storageKey = (0, cookie_name_1.getCookieName)(apiKey);
10
+ this.cache = { optOut: false };
14
11
  }
12
+ /**
13
+ * load() must be called immediately after instantation
14
+ *
15
+ * ```ts
16
+ * await new SessionManager(...).load();
17
+ * ```
18
+ */
19
+ SessionManager.prototype.load = function () {
20
+ var _a;
21
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
22
+ var _b;
23
+ return (0, tslib_1.__generator)(this, function (_c) {
24
+ switch (_c.label) {
25
+ case 0:
26
+ _b = this;
27
+ return [4 /*yield*/, this.storage.get(this.storageKey)];
28
+ case 1:
29
+ _b.cache = (_a = (_c.sent())) !== null && _a !== void 0 ? _a : {
30
+ optOut: false,
31
+ };
32
+ return [2 /*return*/, this];
33
+ }
34
+ });
35
+ });
36
+ };
15
37
  SessionManager.prototype.setSession = function (session) {
16
38
  this.cache = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, this.cache), session);
17
- this.storage.set(this.storageKey, this.cache);
39
+ void this.storage.set(this.storageKey, this.cache);
18
40
  };
19
41
  SessionManager.prototype.getSessionId = function () {
20
- var _a;
21
- // Note: always read directly from storage
22
- return (_a = this.storage.get(this.storageKey)) === null || _a === void 0 ? void 0 : _a.sessionId;
42
+ var _this = this;
43
+ this.isSessionCacheValid = true;
44
+ void this.storage.get(this.storageKey).then(function (userSession) {
45
+ // Checks if session id has been set since the last get
46
+ if (_this.isSessionCacheValid) {
47
+ _this.cache.sessionId = userSession === null || userSession === void 0 ? void 0 : userSession.sessionId;
48
+ }
49
+ });
50
+ return this.cache.sessionId;
23
51
  };
24
52
  SessionManager.prototype.setSessionId = function (sessionId) {
53
+ // Flags session id has been set
54
+ this.isSessionCacheValid = false;
25
55
  this.setSession({ sessionId: sessionId });
26
56
  };
27
57
  SessionManager.prototype.getDeviceId = function () {
@@ -1 +1 @@
1
- {"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/session-manager.ts"],"names":[],"mappings":";;;AAMA,mDAAqE;AAErE;IAKE,wBAAoB,OAA6B,EAAE,OAA8B;;QAA7D,YAAO,GAAP,OAAO,CAAsB;QAC/C,IAAI,CAAC,UAAU,GAAG,IAAA,2BAAa,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,KAAK,GAAG,MAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,mCAAI;YAChD,MAAM,EAAE,KAAK;SACd,CAAC;IACJ,CAAC;IAED,mCAAU,GAAV,UAAW,OAA6B;QACtC,IAAI,CAAC,KAAK,mDAAQ,IAAI,CAAC,KAAK,GAAK,OAAO,CAAE,CAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;IAED,qCAAY,GAAZ;;QACE,0CAA0C;QAC1C,OAAO,MAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,0CAAE,SAAS,CAAC;IACtD,CAAC;IAED,qCAAY,GAAZ,UAAa,SAAiB;QAC5B,IAAI,CAAC,UAAU,CAAC,EAAE,SAAS,WAAA,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,oCAAW,GAAX;QACE,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC7B,CAAC;IAED,oCAAW,GAAX,UAAY,QAAgB;QAC1B,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,kCAAS,GAAT;QACE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED,kCAAS,GAAT,UAAU,MAAc;QACtB,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,QAAA,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,yCAAgB,GAAhB;QACE,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;IAClC,CAAC;IAED,yCAAgB,GAAhB,UAAiB,aAAqB;QACpC,IAAI,CAAC,UAAU,CAAC,EAAE,aAAa,eAAA,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,kCAAS,GAAT;QACE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED,kCAAS,GAAT,UAAU,MAAe;QACvB,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,QAAA,EAAE,CAAC,CAAC;IAC9B,CAAC;IACH,qBAAC;AAAD,CAAC,AA1DD,IA0DC;AA1DY,wCAAc","sourcesContent":["import {\n UserSession,\n Storage,\n SessionManager as ISessionManager,\n SessionManagerOptions,\n} from '@amplitude/analytics-types';\nimport { getCookieName as getStorageKey } from './utils/cookie-name';\n\nexport class SessionManager implements ISessionManager {\n storageKey: string;\n sessionTimeout: number;\n cache: UserSession;\n\n constructor(private storage: Storage<UserSession>, options: SessionManagerOptions) {\n this.storageKey = getStorageKey(options.apiKey);\n this.sessionTimeout = options.sessionTimeout;\n this.cache = this.storage.get(this.storageKey) ?? {\n optOut: false,\n };\n }\n\n setSession(session: Partial<UserSession>) {\n this.cache = { ...this.cache, ...session };\n this.storage.set(this.storageKey, this.cache);\n }\n\n getSessionId() {\n // Note: always read directly from storage\n return this.storage.get(this.storageKey)?.sessionId;\n }\n\n setSessionId(sessionId: number) {\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"]}
1
+ {"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/session-manager.ts"],"names":[],"mappings":";;;AACA,mDAAqE;AAErE;IAKE,wBAAoB,OAA6B,EAAE,MAAc;QAA7C,YAAO,GAAP,OAAO,CAAsB;QAFjD,wBAAmB,GAAG,IAAI,CAAC;QAGzB,IAAI,CAAC,UAAU,GAAG,IAAA,2BAAa,EAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACjC,CAAC;IAED;;;;;;OAMG;IACG,6BAAI,GAAV;;;;;;;wBACE,KAAA,IAAI,CAAA;wBAAU,qBAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,EAAA;;wBAArD,GAAK,KAAK,GAAG,MAAA,CAAC,SAAuC,CAAC,mCAAI;4BACxD,MAAM,EAAE,KAAK;yBACd,CAAC;wBACF,sBAAO,IAAI,EAAC;;;;KACb;IAED,mCAAU,GAAV,UAAW,OAA6B;QACtC,IAAI,CAAC,KAAK,mDAAQ,IAAI,CAAC,KAAK,GAAK,OAAO,CAAE,CAAC;QAC3C,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC;IAED,qCAAY,GAAZ;QAAA,iBASC;QARC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAC,WAAW;YACtD,uDAAuD;YACvD,IAAI,KAAI,CAAC,mBAAmB,EAAE;gBAC5B,KAAI,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,SAAS,CAAC;aAC/C;QACH,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;IAC9B,CAAC;IAED,qCAAY,GAAZ,UAAa,SAAiB;QAC5B,gCAAgC;QAChC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,UAAU,CAAC,EAAE,SAAS,WAAA,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,oCAAW,GAAX;QACE,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC7B,CAAC;IAED,oCAAW,GAAX,UAAY,QAAgB;QAC1B,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,kCAAS,GAAT;QACE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED,kCAAS,GAAT,UAAU,MAAc;QACtB,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,QAAA,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,yCAAgB,GAAhB;QACE,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;IAClC,CAAC;IAED,yCAAgB,GAAhB,UAAiB,aAAqB;QACpC,IAAI,CAAC,UAAU,CAAC,EAAE,aAAa,eAAA,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,kCAAS,GAAT;QACE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED,kCAAS,GAAT,UAAU,MAAe;QACvB,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,QAAA,EAAE,CAAC,CAAC;IAC9B,CAAC;IACH,qBAAC;AAAD,CAAC,AA7ED,IA6EC;AA7EY,wCAAc","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"]}
@@ -2,11 +2,11 @@ import { Storage, CookieStorageOptions } from '@amplitude/analytics-types';
2
2
  export declare class CookieStorage<T> implements Storage<T> {
3
3
  options: CookieStorageOptions;
4
4
  constructor(options?: CookieStorageOptions);
5
- isEnabled(): boolean;
6
- get(key: string): T | undefined;
7
- getRaw(key: string): string | undefined;
8
- set(key: string, value: T | null): void;
9
- remove(key: string): void;
10
- reset(): void;
5
+ isEnabled(): Promise<boolean>;
6
+ get(key: string): Promise<T | undefined>;
7
+ getRaw(key: string): Promise<string | undefined>;
8
+ set(key: string, value: T | null): Promise<void>;
9
+ remove(key: string): Promise<void>;
10
+ reset(): Promise<void>;
11
11
  }
12
12
  //# sourceMappingURL=cookie.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cookie.d.ts","sourceRoot":"","sources":["../../../src/storage/cookie.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAE3E,qBAAa,aAAa,CAAC,CAAC,CAAE,YAAW,OAAO,CAAC,CAAC,CAAC;IACjD,OAAO,EAAE,oBAAoB,CAAC;gBAElB,OAAO,CAAC,EAAE,oBAAoB;IAI1C,SAAS;IAqBT,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAc/B,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IASvC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IA8BhC,MAAM,CAAC,GAAG,EAAE,MAAM;IAIlB,KAAK;CAGN"}
1
+ {"version":3,"file":"cookie.d.ts","sourceRoot":"","sources":["../../../src/storage/cookie.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAE3E,qBAAa,aAAa,CAAC,CAAC,CAAE,YAAW,OAAO,CAAC,CAAC,CAAC;IACjD,OAAO,EAAE,oBAAoB,CAAC;gBAElB,OAAO,CAAC,EAAE,oBAAoB;IAIpC,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAqB7B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAmBxC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAShD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BhD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
@@ -6,84 +6,139 @@ var CookieStorage = /** @class */ (function () {
6
6
  this.options = (0, tslib_1.__assign)({}, options);
7
7
  }
8
8
  CookieStorage.prototype.isEnabled = function () {
9
- /* istanbul ignore if */
10
- if (typeof window === 'undefined') {
11
- return false;
12
- }
13
- var random = String(Date.now());
14
- var testStrorage = new CookieStorage();
15
- var testKey = 'AMP_TEST';
16
- try {
17
- testStrorage.set(testKey, random);
18
- var value = testStrorage.get(testKey);
19
- return value === random;
20
- }
21
- catch (_a) {
22
- /* istanbul ignore next */
23
- return false;
24
- }
25
- finally {
26
- testStrorage.remove(testKey);
27
- }
9
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
10
+ var random, testStrorage, testKey, value, _a;
11
+ return (0, tslib_1.__generator)(this, function (_b) {
12
+ switch (_b.label) {
13
+ case 0:
14
+ /* istanbul ignore if */
15
+ if (typeof window === 'undefined') {
16
+ return [2 /*return*/, false];
17
+ }
18
+ random = String(Date.now());
19
+ testStrorage = new CookieStorage();
20
+ testKey = 'AMP_TEST';
21
+ _b.label = 1;
22
+ case 1:
23
+ _b.trys.push([1, 4, 5, 7]);
24
+ return [4 /*yield*/, testStrorage.set(testKey, random)];
25
+ case 2:
26
+ _b.sent();
27
+ return [4 /*yield*/, testStrorage.get(testKey)];
28
+ case 3:
29
+ value = _b.sent();
30
+ return [2 /*return*/, value === random];
31
+ case 4:
32
+ _a = _b.sent();
33
+ /* istanbul ignore next */
34
+ return [2 /*return*/, false];
35
+ case 5: return [4 /*yield*/, testStrorage.remove(testKey)];
36
+ case 6:
37
+ _b.sent();
38
+ return [7 /*endfinally*/];
39
+ case 7: return [2 /*return*/];
40
+ }
41
+ });
42
+ });
28
43
  };
29
44
  CookieStorage.prototype.get = function (key) {
30
- var value = this.getRaw(key);
31
- if (!value) {
32
- return undefined;
33
- }
34
- try {
35
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
36
- return JSON.parse(value);
37
- }
38
- catch (_a) {
39
- /* istanbul ignore next */
40
- return undefined;
41
- }
45
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
46
+ var value;
47
+ return (0, tslib_1.__generator)(this, function (_a) {
48
+ switch (_a.label) {
49
+ case 0: return [4 /*yield*/, this.getRaw(key)];
50
+ case 1:
51
+ value = _a.sent();
52
+ if (!value) {
53
+ return [2 /*return*/, undefined];
54
+ }
55
+ try {
56
+ try {
57
+ value = decodeURIComponent(atob(value));
58
+ }
59
+ catch (_b) {
60
+ // value not encoded
61
+ }
62
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
63
+ return [2 /*return*/, JSON.parse(value)];
64
+ }
65
+ catch (_c) {
66
+ /* istanbul ignore next */
67
+ return [2 /*return*/, undefined];
68
+ }
69
+ return [2 /*return*/];
70
+ }
71
+ });
72
+ });
42
73
  };
43
74
  CookieStorage.prototype.getRaw = function (key) {
44
- var cookie = window.document.cookie.split('; ');
45
- var match = cookie.find(function (c) { return c.indexOf(key + '=') === 0; });
46
- if (!match) {
47
- return undefined;
48
- }
49
- return match.substring(key.length + 1);
75
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
76
+ var cookie, match;
77
+ return (0, tslib_1.__generator)(this, function (_a) {
78
+ cookie = window.document.cookie.split('; ');
79
+ match = cookie.find(function (c) { return c.indexOf(key + '=') === 0; });
80
+ if (!match) {
81
+ return [2 /*return*/, undefined];
82
+ }
83
+ return [2 /*return*/, match.substring(key.length + 1)];
84
+ });
85
+ });
50
86
  };
51
87
  CookieStorage.prototype.set = function (key, value) {
52
88
  var _a;
53
- try {
54
- var expirationDays = (_a = this.options.expirationDays) !== null && _a !== void 0 ? _a : 0;
55
- var expires = value !== null ? expirationDays : -1;
56
- var expireDate = undefined;
57
- if (expires) {
58
- var date = new Date();
59
- date.setTime(date.getTime() + expires * 24 * 60 * 60 * 1000);
60
- expireDate = date;
61
- }
62
- var str = "".concat(key, "=").concat(JSON.stringify(value));
63
- if (expireDate) {
64
- str += "; expires=".concat(expireDate.toUTCString());
65
- }
66
- str += '; path=/';
67
- if (this.options.domain) {
68
- str += "; domain=".concat(this.options.domain);
69
- }
70
- if (this.options.secure) {
71
- str += '; Secure';
72
- }
73
- if (this.options.sameSite) {
74
- str += "; SameSite=".concat(this.options.sameSite);
75
- }
76
- window.document.cookie = str;
77
- }
78
- catch (_b) {
79
- //
80
- }
89
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
90
+ var expirationDays, expires, expireDate, date, str;
91
+ return (0, tslib_1.__generator)(this, function (_b) {
92
+ try {
93
+ expirationDays = (_a = this.options.expirationDays) !== null && _a !== void 0 ? _a : 0;
94
+ expires = value !== null ? expirationDays : -1;
95
+ expireDate = undefined;
96
+ if (expires) {
97
+ date = new Date();
98
+ date.setTime(date.getTime() + expires * 24 * 60 * 60 * 1000);
99
+ expireDate = date;
100
+ }
101
+ str = "".concat(key, "=").concat(btoa(encodeURIComponent(JSON.stringify(value))));
102
+ if (expireDate) {
103
+ str += "; expires=".concat(expireDate.toUTCString());
104
+ }
105
+ str += '; path=/';
106
+ if (this.options.domain) {
107
+ str += "; domain=".concat(this.options.domain);
108
+ }
109
+ if (this.options.secure) {
110
+ str += '; Secure';
111
+ }
112
+ if (this.options.sameSite) {
113
+ str += "; SameSite=".concat(this.options.sameSite);
114
+ }
115
+ window.document.cookie = str;
116
+ }
117
+ catch (_c) {
118
+ //
119
+ }
120
+ return [2 /*return*/];
121
+ });
122
+ });
81
123
  };
82
124
  CookieStorage.prototype.remove = function (key) {
83
- this.set(key, null);
125
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
126
+ return (0, tslib_1.__generator)(this, function (_a) {
127
+ switch (_a.label) {
128
+ case 0: return [4 /*yield*/, this.set(key, null)];
129
+ case 1:
130
+ _a.sent();
131
+ return [2 /*return*/];
132
+ }
133
+ });
134
+ });
84
135
  };
85
136
  CookieStorage.prototype.reset = function () {
86
- return;
137
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
138
+ return (0, tslib_1.__generator)(this, function (_a) {
139
+ return [2 /*return*/];
140
+ });
141
+ });
87
142
  };
88
143
  return CookieStorage;
89
144
  }());
@@ -1 +1 @@
1
- {"version":3,"file":"cookie.js","sourceRoot":"","sources":["../../../src/storage/cookie.ts"],"names":[],"mappings":"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","sourcesContent":["import { Storage, CookieStorageOptions } from '@amplitude/analytics-types';\n\nexport class CookieStorage<T> implements Storage<T> {\n options: CookieStorageOptions;\n\n constructor(options?: CookieStorageOptions) {\n this.options = { ...options };\n }\n\n isEnabled() {\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 testStrorage.set(testKey, random);\n const value = testStrorage.get(testKey);\n return value === random;\n } catch {\n /* istanbul ignore next */\n return false;\n } finally {\n testStrorage.remove(testKey);\n }\n }\n\n get(key: string): T | undefined {\n const value = 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 getRaw(key: string): 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 set(key: string, value: T | null) {\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 remove(key: string) {\n this.set(key, null);\n }\n\n reset() {\n return;\n }\n}\n"]}
1
+ {"version":3,"file":"cookie.js","sourceRoot":"","sources":["../../../src/storage/cookie.ts"],"names":[],"mappings":"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","sourcesContent":["import { Storage, CookieStorageOptions } from '@amplitude/analytics-types';\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 /* 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 let value = await this.getRaw(key);\n if (!value) {\n return undefined;\n }\n try {\n try {\n value = decodeURIComponent(atob(value));\n } catch {\n // value not encoded\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 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}=${btoa(encodeURIComponent(JSON.stringify(value)))}`;\n if (expireDate) {\n str += `; expires=${expireDate.toUTCString()}`;\n }\n str += '; path=/';\n if (this.options.domain) {\n str += `; domain=${this.options.domain}`;\n }\n if (this.options.secure) {\n str += '; Secure';\n }\n if (this.options.sameSite) {\n str += `; SameSite=${this.options.sameSite}`;\n }\n 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"]}
@@ -1,10 +1,10 @@
1
1
  import { Storage } from '@amplitude/analytics-types';
2
2
  export declare class LocalStorage<T> implements Storage<T> {
3
- isEnabled(): boolean;
4
- get(key: string): T | undefined;
5
- getRaw(key: string): string | undefined;
6
- set(key: string, value: T): void;
7
- remove(key: string): void;
8
- reset(): void;
3
+ isEnabled(): Promise<boolean>;
4
+ get(key: string): Promise<T | undefined>;
5
+ getRaw(key: string): Promise<string | undefined>;
6
+ set(key: string, value: T): Promise<void>;
7
+ remove(key: string): Promise<void>;
8
+ reset(): Promise<void>;
9
9
  }
10
10
  //# sourceMappingURL=local-storage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"local-storage.d.ts","sourceRoot":"","sources":["../../../src/storage/local-storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAErD,qBAAa,YAAY,CAAC,CAAC,CAAE,YAAW,OAAO,CAAC,CAAC,CAAC;IAChD,SAAS,IAAI,OAAO;IAqBpB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAc/B,MAAM,CAAC,GAAG,EAAE,MAAM;IAIlB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAQzB,MAAM,CAAC,GAAG,EAAE,MAAM;IAQlB,KAAK;CAON"}
1
+ {"version":3,"file":"local-storage.d.ts","sourceRoot":"","sources":["../../../src/storage/local-storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAErD,qBAAa,YAAY,CAAC,CAAC,CAAE,YAAW,OAAO,CAAC,CAAC,CAAC;IAC1C,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAqB7B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAcxC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAIhD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAO7B"}
@@ -1,69 +1,114 @@
1
1
  Object.defineProperty(exports, "__esModule", { value: true });
2
2
  exports.LocalStorage = void 0;
3
+ var tslib_1 = require("tslib");
3
4
  var LocalStorage = /** @class */ (function () {
4
5
  function LocalStorage() {
5
6
  }
6
7
  LocalStorage.prototype.isEnabled = function () {
7
- /* istanbul ignore if */
8
- if (typeof window === 'undefined') {
9
- return false;
10
- }
11
- var random = String(Date.now());
12
- var testStrorage = new LocalStorage();
13
- var testKey = 'AMP_TEST';
14
- try {
15
- testStrorage.set(testKey, random);
16
- var value = testStrorage.get(testKey);
17
- return value === random;
18
- }
19
- catch (_a) {
20
- /* istanbul ignore next */
21
- return false;
22
- }
23
- finally {
24
- testStrorage.remove(testKey);
25
- }
8
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
9
+ var random, testStorage, testKey, value, _a;
10
+ return (0, tslib_1.__generator)(this, function (_b) {
11
+ switch (_b.label) {
12
+ case 0:
13
+ /* istanbul ignore if */
14
+ if (typeof window === 'undefined') {
15
+ return [2 /*return*/, false];
16
+ }
17
+ random = String(Date.now());
18
+ testStorage = new LocalStorage();
19
+ testKey = 'AMP_TEST';
20
+ _b.label = 1;
21
+ case 1:
22
+ _b.trys.push([1, 4, 5, 7]);
23
+ return [4 /*yield*/, testStorage.set(testKey, random)];
24
+ case 2:
25
+ _b.sent();
26
+ return [4 /*yield*/, testStorage.get(testKey)];
27
+ case 3:
28
+ value = _b.sent();
29
+ return [2 /*return*/, value === random];
30
+ case 4:
31
+ _a = _b.sent();
32
+ /* istanbul ignore next */
33
+ return [2 /*return*/, false];
34
+ case 5: return [4 /*yield*/, testStorage.remove(testKey)];
35
+ case 6:
36
+ _b.sent();
37
+ return [7 /*endfinally*/];
38
+ case 7: return [2 /*return*/];
39
+ }
40
+ });
41
+ });
26
42
  };
27
43
  LocalStorage.prototype.get = function (key) {
28
- try {
29
- var value = this.getRaw(key);
30
- if (!value) {
31
- return undefined;
32
- }
33
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
34
- return JSON.parse(value);
35
- }
36
- catch (_a) {
37
- /* istanbul ignore next */
38
- return undefined;
39
- }
44
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
45
+ var value, _a;
46
+ return (0, tslib_1.__generator)(this, function (_b) {
47
+ switch (_b.label) {
48
+ case 0:
49
+ _b.trys.push([0, 2, , 3]);
50
+ return [4 /*yield*/, this.getRaw(key)];
51
+ case 1:
52
+ value = _b.sent();
53
+ if (!value) {
54
+ return [2 /*return*/, undefined];
55
+ }
56
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
57
+ return [2 /*return*/, JSON.parse(value)];
58
+ case 2:
59
+ _a = _b.sent();
60
+ /* istanbul ignore next */
61
+ return [2 /*return*/, undefined];
62
+ case 3: return [2 /*return*/];
63
+ }
64
+ });
65
+ });
40
66
  };
41
67
  LocalStorage.prototype.getRaw = function (key) {
42
- return window.localStorage.getItem(key) || undefined;
68
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
69
+ return (0, tslib_1.__generator)(this, function (_a) {
70
+ return [2 /*return*/, window.localStorage.getItem(key) || undefined];
71
+ });
72
+ });
43
73
  };
44
74
  LocalStorage.prototype.set = function (key, value) {
45
- try {
46
- window.localStorage.setItem(key, JSON.stringify(value));
47
- }
48
- catch (_a) {
49
- //
50
- }
75
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
76
+ return (0, tslib_1.__generator)(this, function (_a) {
77
+ try {
78
+ window.localStorage.setItem(key, JSON.stringify(value));
79
+ }
80
+ catch (_b) {
81
+ //
82
+ }
83
+ return [2 /*return*/];
84
+ });
85
+ });
51
86
  };
52
87
  LocalStorage.prototype.remove = function (key) {
53
- try {
54
- window.localStorage.removeItem(key);
55
- }
56
- catch (_a) {
57
- //
58
- }
88
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
89
+ return (0, tslib_1.__generator)(this, function (_a) {
90
+ try {
91
+ window.localStorage.removeItem(key);
92
+ }
93
+ catch (_b) {
94
+ //
95
+ }
96
+ return [2 /*return*/];
97
+ });
98
+ });
59
99
  };
60
100
  LocalStorage.prototype.reset = function () {
61
- try {
62
- window.localStorage.clear();
63
- }
64
- catch (_a) {
65
- //
66
- }
101
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
102
+ return (0, tslib_1.__generator)(this, function (_a) {
103
+ try {
104
+ window.localStorage.clear();
105
+ }
106
+ catch (_b) {
107
+ //
108
+ }
109
+ return [2 /*return*/];
110
+ });
111
+ });
67
112
  };
68
113
  return LocalStorage;
69
114
  }());