@amplitude/analytics-browser 2.21.1 → 2.22.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 (75) hide show
  1. package/README.md +1 -1
  2. package/lib/cjs/browser-client.d.ts +2 -1
  3. package/lib/cjs/browser-client.d.ts.map +1 -1
  4. package/lib/cjs/browser-client.js +68 -50
  5. package/lib/cjs/browser-client.js.map +1 -1
  6. package/lib/cjs/config/joined-config.d.ts +37 -15
  7. package/lib/cjs/config/joined-config.d.ts.map +1 -1
  8. package/lib/cjs/config/joined-config.js +155 -123
  9. package/lib/cjs/config/joined-config.js.map +1 -1
  10. package/lib/cjs/config.d.ts +1 -1
  11. package/lib/cjs/storage/local-storage.d.ts +1 -2
  12. package/lib/cjs/storage/local-storage.d.ts.map +1 -1
  13. package/lib/cjs/storage/local-storage.js +1 -2
  14. package/lib/cjs/storage/local-storage.js.map +1 -1
  15. package/lib/cjs/storage/session-storage.d.ts +1 -1
  16. package/lib/cjs/storage/session-storage.d.ts.map +1 -1
  17. package/lib/cjs/storage/session-storage.js +1 -2
  18. package/lib/cjs/storage/session-storage.js.map +1 -1
  19. package/lib/cjs/version.d.ts +1 -1
  20. package/lib/cjs/version.js +1 -1
  21. package/lib/cjs/version.js.map +1 -1
  22. package/lib/esm/browser-client.d.ts +2 -1
  23. package/lib/esm/browser-client.d.ts.map +1 -1
  24. package/lib/esm/browser-client.js +70 -52
  25. package/lib/esm/browser-client.js.map +1 -1
  26. package/lib/esm/config/joined-config.d.ts +37 -15
  27. package/lib/esm/config/joined-config.d.ts.map +1 -1
  28. package/lib/esm/config/joined-config.js +153 -122
  29. package/lib/esm/config/joined-config.js.map +1 -1
  30. package/lib/esm/config.d.ts +1 -1
  31. package/lib/esm/storage/local-storage.d.ts +1 -2
  32. package/lib/esm/storage/local-storage.d.ts.map +1 -1
  33. package/lib/esm/storage/local-storage.js +1 -2
  34. package/lib/esm/storage/local-storage.js.map +1 -1
  35. package/lib/esm/storage/session-storage.d.ts +1 -1
  36. package/lib/esm/storage/session-storage.d.ts.map +1 -1
  37. package/lib/esm/storage/session-storage.js +1 -2
  38. package/lib/esm/storage/session-storage.js.map +1 -1
  39. package/lib/esm/version.d.ts +1 -1
  40. package/lib/esm/version.js +1 -1
  41. package/lib/esm/version.js.map +1 -1
  42. package/lib/scripts/amplitude-bookmarklet-snippet-min.js +1 -1
  43. package/lib/scripts/amplitude-bookmarklet.html +1 -1
  44. package/lib/scripts/amplitude-gtm-min.js +1 -1
  45. package/lib/scripts/amplitude-gtm-min.js.gz +0 -0
  46. package/lib/scripts/amplitude-gtm-min.js.map +1 -1
  47. package/lib/scripts/amplitude-gtm-snippet-min.js +1 -1
  48. package/lib/scripts/amplitude-min.js +1 -1
  49. package/lib/scripts/amplitude-min.js.gz +0 -0
  50. package/lib/scripts/amplitude-min.js.map +1 -1
  51. package/lib/scripts/amplitude-min.umd.js +1 -1
  52. package/lib/scripts/amplitude-min.umd.js.gz +0 -0
  53. package/lib/scripts/amplitude-snippet-instructions.html +1 -1
  54. package/lib/scripts/amplitude-snippet-min.js +1 -1
  55. package/lib/scripts/browser-client.d.ts +2 -1
  56. package/lib/scripts/browser-client.d.ts.map +1 -1
  57. package/lib/scripts/config/joined-config.d.ts +37 -15
  58. package/lib/scripts/config/joined-config.d.ts.map +1 -1
  59. package/lib/scripts/config.d.ts +1 -1
  60. package/lib/scripts/storage/local-storage.d.ts +1 -2
  61. package/lib/scripts/storage/local-storage.d.ts.map +1 -1
  62. package/lib/scripts/storage/session-storage.d.ts +1 -1
  63. package/lib/scripts/storage/session-storage.d.ts.map +1 -1
  64. package/lib/scripts/version.d.ts +1 -1
  65. package/package.json +7 -7
  66. package/lib/cjs/storage/browser-storage.d.ts +0 -12
  67. package/lib/cjs/storage/browser-storage.d.ts.map +0 -1
  68. package/lib/cjs/storage/browser-storage.js +0 -122
  69. package/lib/cjs/storage/browser-storage.js.map +0 -1
  70. package/lib/esm/storage/browser-storage.d.ts +0 -12
  71. package/lib/esm/storage/browser-storage.d.ts.map +0 -1
  72. package/lib/esm/storage/browser-storage.js +0 -119
  73. package/lib/esm/storage/browser-storage.js.map +0 -1
  74. package/lib/scripts/storage/browser-storage.d.ts +0 -12
  75. package/lib/scripts/storage/browser-storage.d.ts.map +0 -1
Binary file
@@ -1,5 +1,5 @@
1
1
  <script type="text/javascript">
2
- !function(){"use strict";!function(e,t){var r=e.amplitude||{_q:[],_iq:{}};if(r.invoked)e.console&&console.error&&console.error("Amplitude snippet has been loaded.");else{var n=function(e,t){e.prototype[t]=function(){return this._q.push({name:t,args:Array.prototype.slice.call(arguments,0)}),this}},s=function(e,t,r){return function(n){e._q.push({name:t,args:Array.prototype.slice.call(r,0),resolve:n})}},i=function(e,t,r){e[t]=function(){if(r)return{promise:new Promise(s(e,t,Array.prototype.slice.call(arguments)))};!function(e,t,r){e._q.push({name:t,args:Array.prototype.slice.call(r,0)})}(e,t,Array.prototype.slice.call(arguments))}},o=function(e){for(var t=0;t<y.length;t++)i(e,y[t],!1);for(var r=0;r<m.length;r++)i(e,m[r],!0)};r.invoked=!0;var c=t.createElement("script");c.type="text/javascript",c.integrity="sha384-0YGHXXlwihCXHVsuLY/qwvIp5Cmq5L2iINMXx//A4wCZ0n9TJmQsyr0UtxK2L2FQ",c.crossOrigin="anonymous",c.async=!0,c.src="https://cdn.amplitude.com/libs/analytics-browser-2.21.1-min.js.gz",c.onload=function(){e.amplitude.runQueuedFunctions||console.log("[Amplitude] Error: could not load SDK")};var a=t.getElementsByTagName("script")[0];a.parentNode.insertBefore(c,a);for(var u=function(){return this._q=[],this},p=["add","append","clearAll","prepend","set","setOnce","unset","preInsert","postInsert","remove","getUserProperties"],l=0;l<p.length;l++)n(u,p[l]);r.Identify=u;for(var d=function(){return this._q=[],this},f=["getEventProperties","setProductId","setQuantity","setPrice","setRevenue","setRevenueType","setReceipt","setReceiptSig","setCurrency","setEventProperties"],v=0;v<f.length;v++)n(d,f[v]);r.Revenue=d;var y=["getDeviceId","setDeviceId","getSessionId","setSessionId","getUserId","setUserId","setOptOut","setTransport","reset","extendSession"],m=["init","add","remove","track","logEvent","identify","groupIdentify","setGroup","revenue","flush"];o(r),r.createInstance=function(e){return r._iq[e]={_q:[]},o(r._iq[e]),r._iq[e]},e.amplitude=r}}(window,document)}();
2
+ !function(){"use strict";!function(e,t){var r=e.amplitude||{_q:[],_iq:{}};if(r.invoked)e.console&&console.error&&console.error("Amplitude snippet has been loaded.");else{var n=function(e,t){e.prototype[t]=function(){return this._q.push({name:t,args:Array.prototype.slice.call(arguments,0)}),this}},s=function(e,t,r){return function(n){e._q.push({name:t,args:Array.prototype.slice.call(r,0),resolve:n})}},o=function(e,t,r){e[t]=function(){if(r)return{promise:new Promise(s(e,t,Array.prototype.slice.call(arguments)))};!function(e,t,r){e._q.push({name:t,args:Array.prototype.slice.call(r,0)})}(e,t,Array.prototype.slice.call(arguments))}},i=function(e){for(var t=0;t<v.length;t++)o(e,v[t],!1);for(var r=0;r<g.length;r++)o(e,g[r],!0)};r.invoked=!0;var c=t.createElement("script");c.type="text/javascript",c.integrity="sha384-VDysG3y8O289yWNGGS5ESEU5j/t67M0RoQzTAd8C0RU6oep9uB64PVjIqHkX7O4N",c.crossOrigin="anonymous",c.async=!0,c.src="https://cdn.amplitude.com/libs/analytics-browser-2.22.1-min.js.gz",c.onload=function(){e.amplitude.runQueuedFunctions||console.log("[Amplitude] Error: could not load SDK")};var a=t.getElementsByTagName("script")[0];a.parentNode.insertBefore(c,a);for(var u=function(){return this._q=[],this},p=["add","append","clearAll","prepend","set","setOnce","unset","preInsert","postInsert","remove","getUserProperties"],l=0;l<p.length;l++)n(u,p[l]);r.Identify=u;for(var d=function(){return this._q=[],this},y=["getEventProperties","setProductId","setQuantity","setPrice","setRevenue","setRevenueType","setReceipt","setReceiptSig","setCurrency","setEventProperties"],f=0;f<y.length;f++)n(d,y[f]);r.Revenue=d;var v=["getDeviceId","setDeviceId","getSessionId","setSessionId","getUserId","setUserId","setOptOut","setTransport","reset","extendSession"],g=["init","add","remove","track","logEvent","identify","groupIdentify","setGroup","revenue","flush"];i(r),r.createInstance=function(e){return r._iq[e]={_q:[]},i(r._iq[e]),r._iq[e]},e.amplitude=r}}(window,document)}();
3
3
 
4
4
  amplitude.init("<YOUR_API_KEY>");
5
5
  </script>
@@ -1 +1 @@
1
- !function(){"use strict";!function(e,t){var r=e.amplitude||{_q:[],_iq:{}};if(r.invoked)e.console&&console.error&&console.error("Amplitude snippet has been loaded.");else{var n=function(e,t){e.prototype[t]=function(){return this._q.push({name:t,args:Array.prototype.slice.call(arguments,0)}),this}},s=function(e,t,r){return function(n){e._q.push({name:t,args:Array.prototype.slice.call(r,0),resolve:n})}},i=function(e,t,r){e[t]=function(){if(r)return{promise:new Promise(s(e,t,Array.prototype.slice.call(arguments)))};!function(e,t,r){e._q.push({name:t,args:Array.prototype.slice.call(r,0)})}(e,t,Array.prototype.slice.call(arguments))}},o=function(e){for(var t=0;t<y.length;t++)i(e,y[t],!1);for(var r=0;r<m.length;r++)i(e,m[r],!0)};r.invoked=!0;var c=t.createElement("script");c.type="text/javascript",c.integrity="sha384-0YGHXXlwihCXHVsuLY/qwvIp5Cmq5L2iINMXx//A4wCZ0n9TJmQsyr0UtxK2L2FQ",c.crossOrigin="anonymous",c.async=!0,c.src="https://cdn.amplitude.com/libs/analytics-browser-2.21.1-min.js.gz",c.onload=function(){e.amplitude.runQueuedFunctions||console.log("[Amplitude] Error: could not load SDK")};var a=t.getElementsByTagName("script")[0];a.parentNode.insertBefore(c,a);for(var u=function(){return this._q=[],this},p=["add","append","clearAll","prepend","set","setOnce","unset","preInsert","postInsert","remove","getUserProperties"],l=0;l<p.length;l++)n(u,p[l]);r.Identify=u;for(var d=function(){return this._q=[],this},f=["getEventProperties","setProductId","setQuantity","setPrice","setRevenue","setRevenueType","setReceipt","setReceiptSig","setCurrency","setEventProperties"],v=0;v<f.length;v++)n(d,f[v]);r.Revenue=d;var y=["getDeviceId","setDeviceId","getSessionId","setSessionId","getUserId","setUserId","setOptOut","setTransport","reset","extendSession"],m=["init","add","remove","track","logEvent","identify","groupIdentify","setGroup","revenue","flush"];o(r),r.createInstance=function(e){return r._iq[e]={_q:[]},o(r._iq[e]),r._iq[e]},e.amplitude=r}}(window,document)}();
1
+ !function(){"use strict";!function(e,t){var r=e.amplitude||{_q:[],_iq:{}};if(r.invoked)e.console&&console.error&&console.error("Amplitude snippet has been loaded.");else{var n=function(e,t){e.prototype[t]=function(){return this._q.push({name:t,args:Array.prototype.slice.call(arguments,0)}),this}},s=function(e,t,r){return function(n){e._q.push({name:t,args:Array.prototype.slice.call(r,0),resolve:n})}},o=function(e,t,r){e[t]=function(){if(r)return{promise:new Promise(s(e,t,Array.prototype.slice.call(arguments)))};!function(e,t,r){e._q.push({name:t,args:Array.prototype.slice.call(r,0)})}(e,t,Array.prototype.slice.call(arguments))}},i=function(e){for(var t=0;t<v.length;t++)o(e,v[t],!1);for(var r=0;r<g.length;r++)o(e,g[r],!0)};r.invoked=!0;var c=t.createElement("script");c.type="text/javascript",c.integrity="sha384-VDysG3y8O289yWNGGS5ESEU5j/t67M0RoQzTAd8C0RU6oep9uB64PVjIqHkX7O4N",c.crossOrigin="anonymous",c.async=!0,c.src="https://cdn.amplitude.com/libs/analytics-browser-2.22.1-min.js.gz",c.onload=function(){e.amplitude.runQueuedFunctions||console.log("[Amplitude] Error: could not load SDK")};var a=t.getElementsByTagName("script")[0];a.parentNode.insertBefore(c,a);for(var u=function(){return this._q=[],this},p=["add","append","clearAll","prepend","set","setOnce","unset","preInsert","postInsert","remove","getUserProperties"],l=0;l<p.length;l++)n(u,p[l]);r.Identify=u;for(var d=function(){return this._q=[],this},y=["getEventProperties","setProductId","setQuantity","setPrice","setRevenue","setRevenueType","setReceipt","setReceiptSig","setCurrency","setEventProperties"],f=0;f<y.length;f++)n(d,y[f]);r.Revenue=d;var v=["getDeviceId","setDeviceId","getSessionId","setSessionId","getUserId","setUserId","setOptOut","setTransport","reset","extendSession"],g=["init","add","remove","track","logEvent","identify","groupIdentify","setGroup","revenue","flush"];i(r),r.createInstance=function(e){return r._iq[e]={_q:[]},i(r._iq[e]),r._iq[e]},e.amplitude=r}}(window,document)}();
@@ -1,4 +1,4 @@
1
- import { AmplitudeCore, Event, EventOptions, IIdentify, IRevenue, TransportType, Result, BrowserOptions, BrowserConfig, BrowserClient, AnalyticsClient } from '@amplitude/analytics-core';
1
+ import { AmplitudeCore, Event, EventOptions, IIdentify, IRevenue, TransportType, Result, BrowserOptions, BrowserConfig, BrowserClient, AnalyticsClient, IRemoteConfigClient } from '@amplitude/analytics-core';
2
2
  import { WebAttribution } from './attribution/web-attribution';
3
3
  /**
4
4
  * Exported for `@amplitude/unified` or integration with blade plugins.
@@ -12,6 +12,7 @@ export declare class AmplitudeBrowser extends AmplitudeCore implements BrowserCl
12
12
  userProperties: {
13
13
  [key: string]: any;
14
14
  } | undefined;
15
+ remoteConfigClient: IRemoteConfigClient | undefined;
15
16
  init(apiKey?: string, userIdOrOptions?: string | BrowserOptions, maybeOptions?: BrowserOptions): import("@amplitude/analytics-core").AmplitudeReturn<void>;
16
17
  protected _init(options: BrowserOptions & {
17
18
  apiKey: string;
@@ -1 +1 @@
1
- {"version":3,"file":"browser-client.d.ts","sourceRoot":"","sources":["../../src/browser-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAYb,KAAK,EACL,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,aAAa,EAEb,MAAM,EACN,cAAc,EACd,aAAa,EACb,aAAa,EAEb,eAAe,EAChB,MAAM,2BAA2B,CAAC;AA8BnC,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,aAAc,YAAW,aAAa,EAAE,eAAe;IAG3F,MAAM,EAAE,aAAa,CAAC;IACtB,uBAAuB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,qBAAqB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,cAAc,EAAE,cAAc,GAAG,SAAS,CAAC;IAC3C,cAAc,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,SAAS,CAAC;IAEnD,IAAI,CAAC,MAAM,SAAK,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,cAAc,EAAE,YAAY,CAAC,EAAE,cAAc;cAkB1E,KAAK,CAAC,OAAO,EAAE,cAAc,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE;IA8GlE,SAAS;IAIT,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;IAcpC,WAAW;IAIX,WAAW,CAAC,QAAQ,EAAE,MAAM;IAc5B,KAAK;IAKL,WAAW;;;;;;;IAQX,SAAS,IAAI,OAAO,GAAG,SAAS;IAIhC,YAAY;IAIZ,YAAY,CAAC,SAAS,EAAE,MAAM;IA6D9B,aAAa;IAQb,YAAY,CAAC,SAAS,EAAE,aAAa;IAQrC,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,YAAY;IAezD,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,YAAY;IAS/G,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,YAAY;IAStD,OAAO,CAAC,0BAA0B;IAe5B,OAAO,CAAC,KAAK,EAAE,KAAK;IA+B1B,OAAO,CAAC,iBAAiB;CAY1B"}
1
+ {"version":3,"file":"browser-client.d.ts","sourceRoot":"","sources":["../../src/browser-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAYb,KAAK,EACL,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,aAAa,EAEb,MAAM,EACN,cAAc,EACd,aAAa,EACb,aAAa,EAEb,eAAe,EACf,mBAAmB,EAIpB,MAAM,2BAA2B,CAAC;AA8BnC,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,aAAc,YAAW,aAAa,EAAE,eAAe;IAG3F,MAAM,EAAE,aAAa,CAAC;IACtB,uBAAuB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,qBAAqB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,cAAc,EAAE,cAAc,GAAG,SAAS,CAAC;IAC3C,cAAc,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,SAAS,CAAC;IACnD,kBAAkB,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAEpD,IAAI,CAAC,MAAM,SAAK,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,cAAc,EAAE,YAAY,CAAC,EAAE,cAAc;cAkB1E,KAAK,CAAC,OAAO,EAAE,cAAc,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE;IAmJlE,SAAS;IAIT,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;IAcpC,WAAW;IAIX,WAAW,CAAC,QAAQ,EAAE,MAAM;IAc5B,KAAK;IAKL,WAAW;;;;;;;IAQX,SAAS,IAAI,OAAO,GAAG,SAAS;IAIhC,YAAY;IAIZ,YAAY,CAAC,SAAS,EAAE,MAAM;IA6D9B,aAAa;IAQb,YAAY,CAAC,SAAS,EAAE,aAAa;IAQrC,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,YAAY;IAezD,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,YAAY;IAS/G,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,YAAY;IAStD,OAAO,CAAC,0BAA0B;IAe5B,OAAO,CAAC,KAAK,EAAE,KAAK;IA+B1B,OAAO,CAAC,iBAAiB;CAY1B"}
@@ -1,5 +1,4 @@
1
- import { RemoteConfigFetch } from '@amplitude/analytics-remote-config';
2
- import { BrowserConfig as IBrowserConfig, AutocaptureOptions, type ElementInteractionsOptions } from '@amplitude/analytics-core';
1
+ import { AutocaptureOptions, type ElementInteractionsOptions, BrowserConfig, RemoteConfig } from '@amplitude/analytics-core';
3
2
  export interface AutocaptureOptionsRemoteConfig extends AutocaptureOptions {
4
3
  elementInteractions?: boolean | ElementInteractionsOptionsRemoteConfig;
5
4
  }
@@ -9,17 +8,40 @@ export interface ElementInteractionsOptionsRemoteConfig extends ElementInteracti
9
8
  */
10
9
  pageUrlAllowlistRegex?: string[];
11
10
  }
12
- export type BrowserRemoteConfig = {
13
- browserSDK: {
14
- autocapture?: AutocaptureOptionsRemoteConfig | boolean;
15
- };
16
- };
17
- export declare class BrowserJoinedConfigGenerator {
18
- config: IBrowserConfig;
19
- remoteConfigFetch: RemoteConfigFetch<BrowserRemoteConfig> | undefined;
20
- constructor(localConfig: IBrowserConfig);
21
- initialize(): Promise<void>;
22
- generateJoinedConfig(): Promise<IBrowserConfig>;
23
- }
24
- export declare const createBrowserJoinedConfigGenerator: (localConfig: IBrowserConfig) => Promise<BrowserJoinedConfigGenerator>;
11
+ /**
12
+ * Performs a deep transformation of a remote config object so that
13
+ * it matches the expected schema of the local config.
14
+ *
15
+ * Specifically, it normalizes nested `enabled` flags into concise union types.
16
+ *
17
+ * ### Transformation Rules:
18
+ * - If an object has `enabled: true`, it is replaced by the same object without the `enabled` field.
19
+ * - If it has only `enabled: true`, it is replaced with `true`.
20
+ * - If it has `enabled: false`, it is replaced with `false` regardless of other fields.
21
+ *
22
+ * ### Examples:
23
+ * Input: { prop: { enabled: true, hello: 'world' }}
24
+ * Output: { prop: { hello: 'world' } }
25
+ *
26
+ * Input: { prop: { enabled: true }}
27
+ * Output: { prop: true }
28
+ *
29
+ * Input: { prop: { enabled: false, hello: 'world' }}
30
+ * Output: { prop: false }
31
+ *
32
+ * Input: { prop: { hello: 'world' }}
33
+ * Output: { prop: { hello: 'world' } } // No change
34
+ *
35
+ * @param config Remote config object to be transformed
36
+ * @returns Transformed config object compatible with local schema
37
+ */
38
+ export declare function translateRemoteConfigToLocal(config?: Record<string, any>): void;
39
+ /**
40
+ * Updates the browser config in place by applying remote configuration settings.
41
+ * Primarily merges autocapture settings from the remote config into the browser config.
42
+ *
43
+ * @param remoteConfig - The remote configuration to apply, or null if none available
44
+ * @param browserConfig - The browser config object to update (modified in place)
45
+ */
46
+ export declare function updateBrowserConfigWithRemoteConfig(remoteConfig: RemoteConfig | null, browserConfig: BrowserConfig): void;
25
47
  //# sourceMappingURL=joined-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"joined-config.d.ts","sourceRoot":"","sources":["../../../src/config/joined-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAChG,OAAO,EAEL,aAAa,IAAI,cAAc,EAC/B,kBAAkB,EAClB,KAAK,0BAA0B,EAChC,MAAM,2BAA2B,CAAC;AAEnC,MAAM,WAAW,8BAA+B,SAAQ,kBAAkB;IACxE,mBAAmB,CAAC,EAAE,OAAO,GAAG,sCAAsC,CAAC;CACxE;AACD,MAAM,WAAW,sCAAuC,SAAQ,0BAA0B;IACxF;;OAEG;IACH,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;CAClC;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,UAAU,EAAE;QACV,WAAW,CAAC,EAAE,8BAA8B,GAAG,OAAO,CAAC;KACxD,CAAC;CACH,CAAC;AAEF,qBAAa,4BAA4B;IAGvC,MAAM,EAAE,cAAc,CAAC;IACvB,iBAAiB,EAAE,iBAAiB,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAC;gBAE1D,WAAW,EAAE,cAAc;IAQjC,UAAU;IAOV,oBAAoB,IAAI,OAAO,CAAC,cAAc,CAAC;CA+FtD;AAED,eAAO,MAAM,kCAAkC,gBAAuB,cAAc,0CAInF,CAAC"}
1
+ {"version":3,"file":"joined-config.d.ts","sourceRoot":"","sources":["../../../src/config/joined-config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,KAAK,0BAA0B,EAC/B,aAAa,EACb,YAAY,EACb,MAAM,2BAA2B,CAAC;AAEnC,MAAM,WAAW,8BAA+B,SAAQ,kBAAkB;IACxE,mBAAmB,CAAC,EAAE,OAAO,GAAG,sCAAsC,CAAC;CACxE;AACD,MAAM,WAAW,sCAAuC,SAAQ,0BAA0B;IACxF;;OAEG;IACH,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;CAClC;AAOD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QA2CxE;AAED;;;;;;GAMG;AACH,wBAAgB,mCAAmC,CACjD,YAAY,EAAE,YAAY,GAAG,IAAI,EACjC,aAAa,EAAE,aAAa,GAC3B,IAAI,CA2FN"}
@@ -31,7 +31,7 @@ export declare class BrowserConfig extends Config implements IBrowserConfig {
31
31
  useBatch: boolean;
32
32
  fetchRemoteConfig: boolean;
33
33
  networkTrackingOptions?: NetworkTrackingOptions | undefined;
34
- readonly version = "2.21.1";
34
+ readonly version = "2.22.1";
35
35
  protected _cookieStorage: Storage<UserSession>;
36
36
  protected _deviceId?: string;
37
37
  protected _lastEventId?: number;
@@ -1,5 +1,4 @@
1
- import { ILogger } from '@amplitude/analytics-core';
2
- import { BrowserStorage } from './browser-storage';
1
+ import { ILogger, BrowserStorage } from '@amplitude/analytics-core';
3
2
  interface LocalStorageOptions {
4
3
  loggerProvider?: ILogger;
5
4
  }
@@ -1 +1 @@
1
- {"version":3,"file":"local-storage.d.ts","sourceRoot":"","sources":["../../../src/storage/local-storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAInD,UAAU,mBAAmB;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AACD,qBAAa,YAAY,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;IACpD,cAAc,CAAC,EAAE,OAAO,CAAC;gBAEb,MAAM,CAAC,EAAE,mBAAmB;IAalC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAWhD"}
1
+ {"version":3,"file":"local-storage.d.ts","sourceRoot":"","sources":["../../../src/storage/local-storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAIpF,UAAU,mBAAmB;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AACD,qBAAa,YAAY,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;IACpD,cAAc,CAAC,EAAE,OAAO,CAAC;gBAEb,MAAM,CAAC,EAAE,mBAAmB;IAalC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAWhD"}
@@ -1,4 +1,4 @@
1
- import { BrowserStorage } from './browser-storage';
1
+ import { BrowserStorage } from '@amplitude/analytics-core';
2
2
  export declare class SessionStorage<T> extends BrowserStorage<T> {
3
3
  constructor();
4
4
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session-storage.d.ts","sourceRoot":"","sources":["../../../src/storage/session-storage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,qBAAa,cAAc,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;;CAIvD"}
1
+ {"version":3,"file":"session-storage.d.ts","sourceRoot":"","sources":["../../../src/storage/session-storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3E,qBAAa,cAAc,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;;CAIvD"}
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "2.21.1";
1
+ export declare const VERSION = "2.22.1";
2
2
  //# sourceMappingURL=version.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amplitude/analytics-browser",
3
- "version": "2.21.1",
3
+ "version": "2.22.1",
4
4
  "description": "Official Amplitude SDK for Web",
5
5
  "keywords": [
6
6
  "analytics",
@@ -47,12 +47,12 @@
47
47
  "url": "https://github.com/amplitude/Amplitude-TypeScript/issues"
48
48
  },
49
49
  "dependencies": {
50
- "@amplitude/analytics-core": "^2.19.0",
50
+ "@amplitude/analytics-core": "^2.20.1",
51
51
  "@amplitude/analytics-remote-config": "^0.4.0",
52
- "@amplitude/plugin-autocapture-browser": "^1.8.1",
53
- "@amplitude/plugin-network-capture-browser": "^1.4.2",
54
- "@amplitude/plugin-page-view-tracking-browser": "^2.3.37",
55
- "@amplitude/plugin-web-vitals-browser": "^0.1.0-beta.12",
52
+ "@amplitude/plugin-autocapture-browser": "^1.8.3",
53
+ "@amplitude/plugin-network-capture-browser": "^1.4.4",
54
+ "@amplitude/plugin-page-view-tracking-browser": "^2.3.39",
55
+ "@amplitude/plugin-web-vitals-browser": "^0.1.0-beta.14",
56
56
  "tslib": "^2.4.1"
57
57
  },
58
58
  "devDependencies": {
@@ -71,5 +71,5 @@
71
71
  "files": [
72
72
  "lib"
73
73
  ],
74
- "gitHead": "cb749fa47f0849982ef9e499fb982674d851e1c0"
74
+ "gitHead": "f8a56543f6156b759d4be1411573e216eb359e77"
75
75
  }
@@ -1,12 +0,0 @@
1
- import { Storage as AmplitudeStorage } from '@amplitude/analytics-core';
2
- export declare class BrowserStorage<T> implements AmplitudeStorage<T> {
3
- private storage?;
4
- constructor(storage?: Storage | undefined);
5
- isEnabled(): Promise<boolean>;
6
- get(key: string): Promise<T | undefined>;
7
- getRaw(key: string): Promise<string | undefined>;
8
- set(key: string, value: T): Promise<void>;
9
- remove(key: string): Promise<void>;
10
- reset(): Promise<void>;
11
- }
12
- //# sourceMappingURL=browser-storage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"browser-storage.d.ts","sourceRoot":"","sources":["../../../src/storage/browser-storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAExE,qBAAa,cAAc,CAAC,CAAC,CAAE,YAAW,gBAAgB,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,OAAO,CAAC;gBAAR,OAAO,CAAC,qBAAS;IAE/B,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,122 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BrowserStorage = void 0;
4
- var tslib_1 = require("tslib");
5
- var BrowserStorage = /** @class */ (function () {
6
- function BrowserStorage(storage) {
7
- this.storage = storage;
8
- }
9
- BrowserStorage.prototype.isEnabled = function () {
10
- return tslib_1.__awaiter(this, void 0, void 0, function () {
11
- var random, testStorage, testKey, value, _a;
12
- return tslib_1.__generator(this, function (_b) {
13
- switch (_b.label) {
14
- case 0:
15
- /* istanbul ignore if */
16
- if (!this.storage) {
17
- return [2 /*return*/, false];
18
- }
19
- random = String(Date.now());
20
- testStorage = new BrowserStorage(this.storage);
21
- testKey = 'AMP_TEST';
22
- _b.label = 1;
23
- case 1:
24
- _b.trys.push([1, 4, 5, 7]);
25
- return [4 /*yield*/, testStorage.set(testKey, random)];
26
- case 2:
27
- _b.sent();
28
- return [4 /*yield*/, testStorage.get(testKey)];
29
- case 3:
30
- value = _b.sent();
31
- return [2 /*return*/, value === random];
32
- case 4:
33
- _a = _b.sent();
34
- /* istanbul ignore next */
35
- return [2 /*return*/, false];
36
- case 5: return [4 /*yield*/, testStorage.remove(testKey)];
37
- case 6:
38
- _b.sent();
39
- return [7 /*endfinally*/];
40
- case 7: return [2 /*return*/];
41
- }
42
- });
43
- });
44
- };
45
- BrowserStorage.prototype.get = function (key) {
46
- return tslib_1.__awaiter(this, void 0, void 0, function () {
47
- var value, _a;
48
- return tslib_1.__generator(this, function (_b) {
49
- switch (_b.label) {
50
- case 0:
51
- _b.trys.push([0, 2, , 3]);
52
- return [4 /*yield*/, this.getRaw(key)];
53
- case 1:
54
- value = _b.sent();
55
- if (!value) {
56
- return [2 /*return*/, undefined];
57
- }
58
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
59
- return [2 /*return*/, JSON.parse(value)];
60
- case 2:
61
- _a = _b.sent();
62
- console.error("[Amplitude] Error: Could not get value from storage");
63
- return [2 /*return*/, undefined];
64
- case 3: return [2 /*return*/];
65
- }
66
- });
67
- });
68
- };
69
- BrowserStorage.prototype.getRaw = function (key) {
70
- var _a;
71
- return tslib_1.__awaiter(this, void 0, void 0, function () {
72
- return tslib_1.__generator(this, function (_b) {
73
- return [2 /*return*/, ((_a = this.storage) === null || _a === void 0 ? void 0 : _a.getItem(key)) || undefined];
74
- });
75
- });
76
- };
77
- BrowserStorage.prototype.set = function (key, value) {
78
- var _a;
79
- return tslib_1.__awaiter(this, void 0, void 0, function () {
80
- return tslib_1.__generator(this, function (_b) {
81
- try {
82
- (_a = this.storage) === null || _a === void 0 ? void 0 : _a.setItem(key, JSON.stringify(value));
83
- }
84
- catch (_c) {
85
- //
86
- }
87
- return [2 /*return*/];
88
- });
89
- });
90
- };
91
- BrowserStorage.prototype.remove = function (key) {
92
- var _a;
93
- return tslib_1.__awaiter(this, void 0, void 0, function () {
94
- return tslib_1.__generator(this, function (_b) {
95
- try {
96
- (_a = this.storage) === null || _a === void 0 ? void 0 : _a.removeItem(key);
97
- }
98
- catch (_c) {
99
- //
100
- }
101
- return [2 /*return*/];
102
- });
103
- });
104
- };
105
- BrowserStorage.prototype.reset = function () {
106
- var _a;
107
- return tslib_1.__awaiter(this, void 0, void 0, function () {
108
- return tslib_1.__generator(this, function (_b) {
109
- try {
110
- (_a = this.storage) === null || _a === void 0 ? void 0 : _a.clear();
111
- }
112
- catch (_c) {
113
- //
114
- }
115
- return [2 /*return*/];
116
- });
117
- });
118
- };
119
- return BrowserStorage;
120
- }());
121
- exports.BrowserStorage = BrowserStorage;
122
- //# sourceMappingURL=browser-storage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"browser-storage.js","sourceRoot":"","sources":["../../../src/storage/browser-storage.ts"],"names":[],"mappings":";;;;AAEA;IACE,wBAAoB,OAAiB;QAAjB,YAAO,GAAP,OAAO,CAAU;IAAG,CAAC;IAEnC,kCAAS,GAAf;;;;;;wBACE,wBAAwB;wBACxB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;4BACjB,sBAAO,KAAK,EAAC;yBACd;wBAEK,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;wBAC5B,WAAW,GAAG,IAAI,cAAc,CAAS,IAAI,CAAC,OAAO,CAAC,CAAC;wBACvD,OAAO,GAAG,UAAU,CAAC;;;;wBAEzB,qBAAM,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,EAAA;;wBAAtC,SAAsC,CAAC;wBACzB,qBAAM,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAA;;wBAAtC,KAAK,GAAG,SAA8B;wBAC5C,sBAAO,KAAK,KAAK,MAAM,EAAC;;;wBAExB,0BAA0B;wBAC1B,sBAAO,KAAK,EAAC;4BAEb,qBAAM,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAA;;wBAAjC,SAAiC,CAAC;;;;;;KAErC;IAEK,4BAAG,GAAT,UAAU,GAAW;;;;;;;wBAEH,qBAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAA;;wBAA9B,KAAK,GAAG,SAAsB;wBACpC,IAAI,CAAC,KAAK,EAAE;4BACV,sBAAO,SAAS,EAAC;yBAClB;wBACD,+DAA+D;wBAC/D,sBAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAC;;;wBAEzB,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;wBACrE,sBAAO,SAAS,EAAC;;;;;KAEpB;IAEK,+BAAM,GAAZ,UAAa,GAAW;;;;gBACtB,sBAAO,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,OAAO,CAAC,GAAG,CAAC,KAAI,SAAS,EAAC;;;KAChD;IAEK,4BAAG,GAAT,UAAU,GAAW,EAAE,KAAQ;;;;gBAC7B,IAAI;oBACF,MAAA,IAAI,CAAC,OAAO,0CAAE,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;iBACnD;gBAAC,WAAM;oBACN,EAAE;iBACH;;;;KACF;IAEK,+BAAM,GAAZ,UAAa,GAAW;;;;gBACtB,IAAI;oBACF,MAAA,IAAI,CAAC,OAAO,0CAAE,UAAU,CAAC,GAAG,CAAC,CAAC;iBAC/B;gBAAC,WAAM;oBACN,EAAE;iBACH;;;;KACF;IAEK,8BAAK,GAAX;;;;gBACE,IAAI;oBACF,MAAA,IAAI,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;iBACvB;gBAAC,WAAM;oBACN,EAAE;iBACH;;;;KACF;IACH,qBAAC;AAAD,CAAC,AAjED,IAiEC;AAjEY,wCAAc","sourcesContent":["import { Storage as AmplitudeStorage } from '@amplitude/analytics-core';\n\nexport class BrowserStorage<T> implements AmplitudeStorage<T> {\n constructor(private storage?: Storage) {}\n\n async isEnabled(): Promise<boolean> {\n /* istanbul ignore if */\n if (!this.storage) {\n return false;\n }\n\n const random = String(Date.now());\n const testStorage = new BrowserStorage<string>(this.storage);\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 console.error(`[Amplitude] Error: Could not get value from storage`);\n return undefined;\n }\n }\n\n async getRaw(key: string): Promise<string | undefined> {\n return this.storage?.getItem(key) || undefined;\n }\n\n async set(key: string, value: T): Promise<void> {\n try {\n this.storage?.setItem(key, JSON.stringify(value));\n } catch {\n //\n }\n }\n\n async remove(key: string): Promise<void> {\n try {\n this.storage?.removeItem(key);\n } catch {\n //\n }\n }\n\n async reset(): Promise<void> {\n try {\n this.storage?.clear();\n } catch {\n //\n }\n }\n}\n"]}
@@ -1,12 +0,0 @@
1
- import { Storage as AmplitudeStorage } from '@amplitude/analytics-core';
2
- export declare class BrowserStorage<T> implements AmplitudeStorage<T> {
3
- private storage?;
4
- constructor(storage?: Storage | undefined);
5
- isEnabled(): Promise<boolean>;
6
- get(key: string): Promise<T | undefined>;
7
- getRaw(key: string): Promise<string | undefined>;
8
- set(key: string, value: T): Promise<void>;
9
- remove(key: string): Promise<void>;
10
- reset(): Promise<void>;
11
- }
12
- //# sourceMappingURL=browser-storage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"browser-storage.d.ts","sourceRoot":"","sources":["../../../src/storage/browser-storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAExE,qBAAa,cAAc,CAAC,CAAC,CAAE,YAAW,gBAAgB,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,OAAO,CAAC;gBAAR,OAAO,CAAC,qBAAS;IAE/B,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,119 +0,0 @@
1
- import { __awaiter, __generator } from "tslib";
2
- var BrowserStorage = /** @class */ (function () {
3
- function BrowserStorage(storage) {
4
- this.storage = storage;
5
- }
6
- BrowserStorage.prototype.isEnabled = function () {
7
- return __awaiter(this, void 0, void 0, function () {
8
- var random, testStorage, testKey, value, _a;
9
- return __generator(this, function (_b) {
10
- switch (_b.label) {
11
- case 0:
12
- /* istanbul ignore if */
13
- if (!this.storage) {
14
- return [2 /*return*/, false];
15
- }
16
- random = String(Date.now());
17
- testStorage = new BrowserStorage(this.storage);
18
- testKey = 'AMP_TEST';
19
- _b.label = 1;
20
- case 1:
21
- _b.trys.push([1, 4, 5, 7]);
22
- return [4 /*yield*/, testStorage.set(testKey, random)];
23
- case 2:
24
- _b.sent();
25
- return [4 /*yield*/, testStorage.get(testKey)];
26
- case 3:
27
- value = _b.sent();
28
- return [2 /*return*/, value === random];
29
- case 4:
30
- _a = _b.sent();
31
- /* istanbul ignore next */
32
- return [2 /*return*/, false];
33
- case 5: return [4 /*yield*/, testStorage.remove(testKey)];
34
- case 6:
35
- _b.sent();
36
- return [7 /*endfinally*/];
37
- case 7: return [2 /*return*/];
38
- }
39
- });
40
- });
41
- };
42
- BrowserStorage.prototype.get = function (key) {
43
- return __awaiter(this, void 0, void 0, function () {
44
- var value, _a;
45
- return __generator(this, function (_b) {
46
- switch (_b.label) {
47
- case 0:
48
- _b.trys.push([0, 2, , 3]);
49
- return [4 /*yield*/, this.getRaw(key)];
50
- case 1:
51
- value = _b.sent();
52
- if (!value) {
53
- return [2 /*return*/, undefined];
54
- }
55
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
56
- return [2 /*return*/, JSON.parse(value)];
57
- case 2:
58
- _a = _b.sent();
59
- console.error("[Amplitude] Error: Could not get value from storage");
60
- return [2 /*return*/, undefined];
61
- case 3: return [2 /*return*/];
62
- }
63
- });
64
- });
65
- };
66
- BrowserStorage.prototype.getRaw = function (key) {
67
- var _a;
68
- return __awaiter(this, void 0, void 0, function () {
69
- return __generator(this, function (_b) {
70
- return [2 /*return*/, ((_a = this.storage) === null || _a === void 0 ? void 0 : _a.getItem(key)) || undefined];
71
- });
72
- });
73
- };
74
- BrowserStorage.prototype.set = function (key, value) {
75
- var _a;
76
- return __awaiter(this, void 0, void 0, function () {
77
- return __generator(this, function (_b) {
78
- try {
79
- (_a = this.storage) === null || _a === void 0 ? void 0 : _a.setItem(key, JSON.stringify(value));
80
- }
81
- catch (_c) {
82
- //
83
- }
84
- return [2 /*return*/];
85
- });
86
- });
87
- };
88
- BrowserStorage.prototype.remove = function (key) {
89
- var _a;
90
- return __awaiter(this, void 0, void 0, function () {
91
- return __generator(this, function (_b) {
92
- try {
93
- (_a = this.storage) === null || _a === void 0 ? void 0 : _a.removeItem(key);
94
- }
95
- catch (_c) {
96
- //
97
- }
98
- return [2 /*return*/];
99
- });
100
- });
101
- };
102
- BrowserStorage.prototype.reset = function () {
103
- var _a;
104
- return __awaiter(this, void 0, void 0, function () {
105
- return __generator(this, function (_b) {
106
- try {
107
- (_a = this.storage) === null || _a === void 0 ? void 0 : _a.clear();
108
- }
109
- catch (_c) {
110
- //
111
- }
112
- return [2 /*return*/];
113
- });
114
- });
115
- };
116
- return BrowserStorage;
117
- }());
118
- export { BrowserStorage };
119
- //# sourceMappingURL=browser-storage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"browser-storage.js","sourceRoot":"","sources":["../../../src/storage/browser-storage.ts"],"names":[],"mappings":";AAEA;IACE,wBAAoB,OAAiB;QAAjB,YAAO,GAAP,OAAO,CAAU;IAAG,CAAC;IAEnC,kCAAS,GAAf;;;;;;wBACE,wBAAwB;wBACxB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;4BACjB,sBAAO,KAAK,EAAC;yBACd;wBAEK,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;wBAC5B,WAAW,GAAG,IAAI,cAAc,CAAS,IAAI,CAAC,OAAO,CAAC,CAAC;wBACvD,OAAO,GAAG,UAAU,CAAC;;;;wBAEzB,qBAAM,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,EAAA;;wBAAtC,SAAsC,CAAC;wBACzB,qBAAM,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAA;;wBAAtC,KAAK,GAAG,SAA8B;wBAC5C,sBAAO,KAAK,KAAK,MAAM,EAAC;;;wBAExB,0BAA0B;wBAC1B,sBAAO,KAAK,EAAC;4BAEb,qBAAM,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAA;;wBAAjC,SAAiC,CAAC;;;;;;KAErC;IAEK,4BAAG,GAAT,UAAU,GAAW;;;;;;;wBAEH,qBAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAA;;wBAA9B,KAAK,GAAG,SAAsB;wBACpC,IAAI,CAAC,KAAK,EAAE;4BACV,sBAAO,SAAS,EAAC;yBAClB;wBACD,+DAA+D;wBAC/D,sBAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAC;;;wBAEzB,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;wBACrE,sBAAO,SAAS,EAAC;;;;;KAEpB;IAEK,+BAAM,GAAZ,UAAa,GAAW;;;;gBACtB,sBAAO,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,OAAO,CAAC,GAAG,CAAC,KAAI,SAAS,EAAC;;;KAChD;IAEK,4BAAG,GAAT,UAAU,GAAW,EAAE,KAAQ;;;;gBAC7B,IAAI;oBACF,MAAA,IAAI,CAAC,OAAO,0CAAE,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;iBACnD;gBAAC,WAAM;oBACN,EAAE;iBACH;;;;KACF;IAEK,+BAAM,GAAZ,UAAa,GAAW;;;;gBACtB,IAAI;oBACF,MAAA,IAAI,CAAC,OAAO,0CAAE,UAAU,CAAC,GAAG,CAAC,CAAC;iBAC/B;gBAAC,WAAM;oBACN,EAAE;iBACH;;;;KACF;IAEK,8BAAK,GAAX;;;;gBACE,IAAI;oBACF,MAAA,IAAI,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;iBACvB;gBAAC,WAAM;oBACN,EAAE;iBACH;;;;KACF;IACH,qBAAC;AAAD,CAAC,AAjED,IAiEC","sourcesContent":["import { Storage as AmplitudeStorage } from '@amplitude/analytics-core';\n\nexport class BrowserStorage<T> implements AmplitudeStorage<T> {\n constructor(private storage?: Storage) {}\n\n async isEnabled(): Promise<boolean> {\n /* istanbul ignore if */\n if (!this.storage) {\n return false;\n }\n\n const random = String(Date.now());\n const testStorage = new BrowserStorage<string>(this.storage);\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 console.error(`[Amplitude] Error: Could not get value from storage`);\n return undefined;\n }\n }\n\n async getRaw(key: string): Promise<string | undefined> {\n return this.storage?.getItem(key) || undefined;\n }\n\n async set(key: string, value: T): Promise<void> {\n try {\n this.storage?.setItem(key, JSON.stringify(value));\n } catch {\n //\n }\n }\n\n async remove(key: string): Promise<void> {\n try {\n this.storage?.removeItem(key);\n } catch {\n //\n }\n }\n\n async reset(): Promise<void> {\n try {\n this.storage?.clear();\n } catch {\n //\n }\n }\n}\n"]}
@@ -1,12 +0,0 @@
1
- import { Storage as AmplitudeStorage } from '@amplitude/analytics-core';
2
- export declare class BrowserStorage<T> implements AmplitudeStorage<T> {
3
- private storage?;
4
- constructor(storage?: Storage | undefined);
5
- isEnabled(): Promise<boolean>;
6
- get(key: string): Promise<T | undefined>;
7
- getRaw(key: string): Promise<string | undefined>;
8
- set(key: string, value: T): Promise<void>;
9
- remove(key: string): Promise<void>;
10
- reset(): Promise<void>;
11
- }
12
- //# sourceMappingURL=browser-storage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"browser-storage.d.ts","sourceRoot":"","sources":["../../../src/storage/browser-storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAExE,qBAAa,cAAc,CAAC,CAAC,CAAE,YAAW,gBAAgB,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,OAAO,CAAC;gBAAR,OAAO,CAAC,qBAAS;IAE/B,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"}