@amplitude/session-replay-browser 1.2.0 → 1.2.2

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 (69) hide show
  1. package/lib/cjs/config.d.ts +0 -3
  2. package/lib/cjs/config.d.ts.map +1 -1
  3. package/lib/cjs/config.js +0 -9
  4. package/lib/cjs/config.js.map +1 -1
  5. package/lib/cjs/identifiers.d.ts +9 -0
  6. package/lib/cjs/identifiers.d.ts.map +1 -0
  7. package/lib/cjs/identifiers.js +18 -0
  8. package/lib/cjs/identifiers.js.map +1 -0
  9. package/lib/cjs/index.d.ts +1 -1
  10. package/lib/cjs/index.d.ts.map +1 -1
  11. package/lib/cjs/session-idb-store.d.ts +15 -0
  12. package/lib/cjs/session-idb-store.d.ts.map +1 -0
  13. package/lib/cjs/session-idb-store.js +107 -0
  14. package/lib/cjs/session-idb-store.js.map +1 -0
  15. package/lib/cjs/session-replay.d.ts +6 -23
  16. package/lib/cjs/session-replay.d.ts.map +1 -1
  17. package/lib/cjs/session-replay.js +62 -312
  18. package/lib/cjs/session-replay.js.map +1 -1
  19. package/lib/cjs/track-destination.d.ts +28 -0
  20. package/lib/cjs/track-destination.d.ts.map +1 -0
  21. package/lib/cjs/track-destination.js +204 -0
  22. package/lib/cjs/track-destination.js.map +1 -0
  23. package/lib/cjs/typings/session-replay.d.ts +28 -8
  24. package/lib/cjs/typings/session-replay.d.ts.map +1 -1
  25. package/lib/cjs/typings/session-replay.js.map +1 -1
  26. package/lib/esm/config.d.ts +0 -3
  27. package/lib/esm/config.d.ts.map +1 -1
  28. package/lib/esm/config.js +0 -9
  29. package/lib/esm/config.js.map +1 -1
  30. package/lib/esm/identifiers.d.ts +9 -0
  31. package/lib/esm/identifiers.d.ts.map +1 -0
  32. package/lib/esm/identifiers.js +16 -0
  33. package/lib/esm/identifiers.js.map +1 -0
  34. package/lib/esm/index.d.ts +1 -1
  35. package/lib/esm/index.d.ts.map +1 -1
  36. package/lib/esm/session-idb-store.d.ts +15 -0
  37. package/lib/esm/session-idb-store.d.ts.map +1 -0
  38. package/lib/esm/session-idb-store.js +105 -0
  39. package/lib/esm/session-idb-store.js.map +1 -0
  40. package/lib/esm/session-replay.d.ts +6 -23
  41. package/lib/esm/session-replay.d.ts.map +1 -1
  42. package/lib/esm/session-replay.js +66 -316
  43. package/lib/esm/session-replay.js.map +1 -1
  44. package/lib/esm/track-destination.d.ts +28 -0
  45. package/lib/esm/track-destination.d.ts.map +1 -0
  46. package/lib/esm/track-destination.js +202 -0
  47. package/lib/esm/track-destination.js.map +1 -0
  48. package/lib/esm/typings/session-replay.d.ts +28 -8
  49. package/lib/esm/typings/session-replay.d.ts.map +1 -1
  50. package/lib/esm/typings/session-replay.js.map +1 -1
  51. package/lib/scripts/amplitude-min.js +1 -1
  52. package/lib/scripts/amplitude-min.js.gz +0 -0
  53. package/lib/scripts/amplitude-min.umd.js +1 -1
  54. package/lib/scripts/amplitude-min.umd.js.gz +0 -0
  55. package/lib/scripts/config.d.ts +0 -3
  56. package/lib/scripts/config.d.ts.map +1 -1
  57. package/lib/scripts/identifiers.d.ts +9 -0
  58. package/lib/scripts/identifiers.d.ts.map +1 -0
  59. package/lib/scripts/index.d.ts +1 -1
  60. package/lib/scripts/index.d.ts.map +1 -1
  61. package/lib/scripts/session-idb-store.d.ts +15 -0
  62. package/lib/scripts/session-idb-store.d.ts.map +1 -0
  63. package/lib/scripts/session-replay.d.ts +6 -23
  64. package/lib/scripts/session-replay.d.ts.map +1 -1
  65. package/lib/scripts/track-destination.d.ts +28 -0
  66. package/lib/scripts/track-destination.d.ts.map +1 -0
  67. package/lib/scripts/typings/session-replay.d.ts +28 -8
  68. package/lib/scripts/typings/session-replay.d.ts.map +1 -1
  69. package/package.json +2 -2
@@ -11,9 +11,6 @@ export declare const getDefaultConfig: () => {
11
11
  export declare class SessionReplayConfig extends Config implements ISessionReplayConfig {
12
12
  apiKey: string;
13
13
  sampleRate: number;
14
- deviceId?: string | undefined;
15
- sessionId?: number | undefined;
16
- sessionReplayId?: string | undefined;
17
14
  privacyConfig?: SessionReplayPrivacyConfig;
18
15
  debugMode?: boolean;
19
16
  constructor(apiKey: string, options: SessionReplayOptions);
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EACL,mBAAmB,IAAI,oBAAoB,EAC3C,oBAAoB,EACpB,0BAA0B,EAC3B,MAAM,0BAA0B,CAAC;AAIlC,eAAO,MAAM,gBAAgB;;;;;CAK3B,CAAC;AAEH,qBAAa,mBAAoB,SAAQ,MAAO,YAAW,oBAAoB;IAC7E,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,aAAa,CAAC,EAAE,0BAA0B,CAAC;IAC3C,SAAS,CAAC,EAAE,OAAO,CAAC;gBAER,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB;CAgC1D"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,OAAO,EACL,mBAAmB,IAAI,oBAAoB,EAC3C,oBAAoB,EACpB,0BAA0B,EAC3B,MAAM,0BAA0B,CAAC;AAElC,eAAO,MAAM,gBAAgB;;;;;CAK3B,CAAC;AAEH,qBAAa,mBAAoB,SAAQ,MAAO,YAAW,oBAAoB;IAC7E,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,0BAA0B,CAAC;IAC3C,SAAS,CAAC,EAAE,OAAO,CAAC;gBAER,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB;CAwB1D"}
package/lib/cjs/config.js CHANGED
@@ -5,7 +5,6 @@ var analytics_client_common_1 = require("@amplitude/analytics-client-common");
5
5
  var analytics_core_1 = require("@amplitude/analytics-core");
6
6
  var analytics_types_1 = require("@amplitude/analytics-types");
7
7
  var constants_1 = require("./constants");
8
- var helpers_1 = require("./helpers");
9
8
  var getDefaultConfig = function () { return ({
10
9
  flushMaxRetries: 2,
11
10
  logLevel: analytics_types_1.LogLevel.Warn,
@@ -25,15 +24,7 @@ var SessionReplayConfig = /** @class */ (function (_super) {
25
24
  : defaultConfig.flushMaxRetries;
26
25
  _this.apiKey = apiKey;
27
26
  _this.sampleRate = options.sampleRate || constants_1.DEFAULT_SAMPLE_RATE;
28
- _this.deviceId = options.deviceId;
29
- _this.sessionId = options.sessionId;
30
27
  _this.serverZone = options.serverZone || constants_1.DEFAULT_SERVER_ZONE;
31
- if (options.sessionId && options.deviceId) {
32
- _this.sessionReplayId = (0, helpers_1.generateSessionReplayId)(options.sessionId, options.deviceId);
33
- }
34
- else {
35
- _this.loggerProvider.error('Please provide both sessionId and deviceId.');
36
- }
37
28
  if (options.privacyConfig) {
38
29
  _this.privacyConfig = options.privacyConfig;
39
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":";;;AAAA,8EAAoE;AACpE,4DAA2D;AAC3D,8DAAsD;AAMtD,yCAAuE;AACvE,qCAAoD;AAE7C,IAAM,gBAAgB,GAAG,cAAM,OAAA,CAAC;IACrC,eAAe,EAAE,CAAC;IAClB,QAAQ,EAAE,0BAAQ,CAAC,IAAI;IACvB,cAAc,EAAE,IAAI,uBAAM,EAAE;IAC5B,iBAAiB,EAAE,IAAI,wCAAc,EAAE;CACxC,CAAC,EALoC,CAKpC,CAAC;AALU,QAAA,gBAAgB,oBAK1B;AAEH;IAAyC,+CAAM;IAS7C,6BAAY,MAAc,EAAE,OAA6B;QAAzD,iBA+BC;QA9BC,IAAM,aAAa,GAAG,IAAA,wBAAgB,GAAE,CAAC;gBACzC,sDACE,iBAAiB,EAAE,aAAa,CAAC,iBAAiB,IAC/C,OAAO,KACV,MAAM,QAAA,IACN;QACF,KAAI,CAAC,eAAe;YAClB,OAAO,CAAC,eAAe,KAAK,SAAS,IAAI,OAAO,CAAC,eAAe,IAAI,aAAa,CAAC,eAAe;gBAC/F,CAAC,CAAC,OAAO,CAAC,eAAe;gBACzB,CAAC,CAAC,aAAa,CAAC,eAAe,CAAC;QAEpC,KAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,KAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,+BAAmB,CAAC;QAC5D,KAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,KAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,KAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,+BAAmB,CAAC;QAE5D,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,QAAQ,EAAE;YACzC,KAAI,CAAC,eAAe,GAAG,IAAA,iCAAuB,EAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;SACrF;aAAM;YACL,KAAI,CAAC,cAAc,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;SAC1E;QAED,IAAI,OAAO,CAAC,aAAa,EAAE;YACzB,KAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;SAC5C;QAED,IAAI,OAAO,CAAC,SAAS,EAAE;YACrB,KAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;SACpC;;IACH,CAAC;IACH,0BAAC;AAAD,CAAC,AAzCD,CAAyC,uBAAM,GAyC9C;AAzCY,kDAAmB","sourcesContent":["import { FetchTransport } from '@amplitude/analytics-client-common';\nimport { Config, Logger } from '@amplitude/analytics-core';\nimport { LogLevel } from '@amplitude/analytics-types';\nimport {\n SessionReplayConfig as ISessionReplayConfig,\n SessionReplayOptions,\n SessionReplayPrivacyConfig,\n} from './typings/session-replay';\nimport { DEFAULT_SAMPLE_RATE, DEFAULT_SERVER_ZONE } from './constants';\nimport { generateSessionReplayId } from './helpers';\n\nexport const getDefaultConfig = () => ({\n flushMaxRetries: 2,\n logLevel: LogLevel.Warn,\n loggerProvider: new Logger(),\n transportProvider: new FetchTransport(),\n});\n\nexport class SessionReplayConfig extends Config implements ISessionReplayConfig {\n apiKey: string;\n sampleRate: number;\n deviceId?: string | undefined;\n sessionId?: number | undefined;\n sessionReplayId?: string | undefined;\n privacyConfig?: SessionReplayPrivacyConfig;\n debugMode?: boolean;\n\n constructor(apiKey: string, options: SessionReplayOptions) {\n const defaultConfig = getDefaultConfig();\n super({\n transportProvider: defaultConfig.transportProvider,\n ...options,\n apiKey,\n });\n this.flushMaxRetries =\n options.flushMaxRetries !== undefined && options.flushMaxRetries <= defaultConfig.flushMaxRetries\n ? options.flushMaxRetries\n : defaultConfig.flushMaxRetries;\n\n this.apiKey = apiKey;\n this.sampleRate = options.sampleRate || DEFAULT_SAMPLE_RATE;\n this.deviceId = options.deviceId;\n this.sessionId = options.sessionId;\n this.serverZone = options.serverZone || DEFAULT_SERVER_ZONE;\n\n if (options.sessionId && options.deviceId) {\n this.sessionReplayId = generateSessionReplayId(options.sessionId, options.deviceId);\n } else {\n this.loggerProvider.error('Please provide both sessionId and deviceId.');\n }\n\n if (options.privacyConfig) {\n this.privacyConfig = options.privacyConfig;\n }\n\n if (options.debugMode) {\n this.debugMode = options.debugMode;\n }\n }\n}\n"]}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":";;;AAAA,8EAAoE;AACpE,4DAA2D;AAC3D,8DAAsD;AACtD,yCAAuE;AAOhE,IAAM,gBAAgB,GAAG,cAAM,OAAA,CAAC;IACrC,eAAe,EAAE,CAAC;IAClB,QAAQ,EAAE,0BAAQ,CAAC,IAAI;IACvB,cAAc,EAAE,IAAI,uBAAM,EAAE;IAC5B,iBAAiB,EAAE,IAAI,wCAAc,EAAE;CACxC,CAAC,EALoC,CAKpC,CAAC;AALU,QAAA,gBAAgB,oBAK1B;AAEH;IAAyC,+CAAM;IAM7C,6BAAY,MAAc,EAAE,OAA6B;QAAzD,iBAuBC;QAtBC,IAAM,aAAa,GAAG,IAAA,wBAAgB,GAAE,CAAC;gBACzC,sDACE,iBAAiB,EAAE,aAAa,CAAC,iBAAiB,IAC/C,OAAO,KACV,MAAM,QAAA,IACN;QACF,KAAI,CAAC,eAAe;YAClB,OAAO,CAAC,eAAe,KAAK,SAAS,IAAI,OAAO,CAAC,eAAe,IAAI,aAAa,CAAC,eAAe;gBAC/F,CAAC,CAAC,OAAO,CAAC,eAAe;gBACzB,CAAC,CAAC,aAAa,CAAC,eAAe,CAAC;QAEpC,KAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,KAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,+BAAmB,CAAC;QAC5D,KAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,+BAAmB,CAAC;QAE5D,IAAI,OAAO,CAAC,aAAa,EAAE;YACzB,KAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;SAC5C;QAED,IAAI,OAAO,CAAC,SAAS,EAAE;YACrB,KAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;SACpC;;IACH,CAAC;IACH,0BAAC;AAAD,CAAC,AA9BD,CAAyC,uBAAM,GA8B9C;AA9BY,kDAAmB","sourcesContent":["import { FetchTransport } from '@amplitude/analytics-client-common';\nimport { Config, Logger } from '@amplitude/analytics-core';\nimport { LogLevel } from '@amplitude/analytics-types';\nimport { DEFAULT_SAMPLE_RATE, DEFAULT_SERVER_ZONE } from './constants';\nimport {\n SessionReplayConfig as ISessionReplayConfig,\n SessionReplayOptions,\n SessionReplayPrivacyConfig,\n} from './typings/session-replay';\n\nexport const getDefaultConfig = () => ({\n flushMaxRetries: 2,\n logLevel: LogLevel.Warn,\n loggerProvider: new Logger(),\n transportProvider: new FetchTransport(),\n});\n\nexport class SessionReplayConfig extends Config implements ISessionReplayConfig {\n apiKey: string;\n sampleRate: number;\n privacyConfig?: SessionReplayPrivacyConfig;\n debugMode?: boolean;\n\n constructor(apiKey: string, options: SessionReplayOptions) {\n const defaultConfig = getDefaultConfig();\n super({\n transportProvider: defaultConfig.transportProvider,\n ...options,\n apiKey,\n });\n this.flushMaxRetries =\n options.flushMaxRetries !== undefined && options.flushMaxRetries <= defaultConfig.flushMaxRetries\n ? options.flushMaxRetries\n : defaultConfig.flushMaxRetries;\n\n this.apiKey = apiKey;\n this.sampleRate = options.sampleRate || DEFAULT_SAMPLE_RATE;\n this.serverZone = options.serverZone || DEFAULT_SERVER_ZONE;\n\n if (options.privacyConfig) {\n this.privacyConfig = options.privacyConfig;\n }\n\n if (options.debugMode) {\n this.debugMode = options.debugMode;\n }\n }\n}\n"]}
@@ -0,0 +1,9 @@
1
+ import { Logger as ILogger } from '@amplitude/analytics-types';
2
+ import { SessionIdentifiers as ISessionIdentifiers, SessionReplayOptions } from './typings/session-replay';
3
+ export declare class SessionIdentifiers implements ISessionIdentifiers {
4
+ deviceId?: string | undefined;
5
+ sessionId?: number | undefined;
6
+ sessionReplayId?: string | undefined;
7
+ constructor(options: SessionReplayOptions, loggerProvider: ILogger);
8
+ }
9
+ //# sourceMappingURL=identifiers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identifiers.d.ts","sourceRoot":"","sources":["../../src/identifiers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,EAAE,kBAAkB,IAAI,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAE3G,qBAAa,kBAAmB,YAAW,mBAAmB;IAC5D,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;gBAEzB,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,OAAO;CAUnE"}
@@ -0,0 +1,18 @@
1
+ Object.defineProperty(exports, "__esModule", { value: true });
2
+ exports.SessionIdentifiers = void 0;
3
+ var helpers_1 = require("./helpers");
4
+ var SessionIdentifiers = /** @class */ (function () {
5
+ function SessionIdentifiers(options, loggerProvider) {
6
+ this.deviceId = options.deviceId;
7
+ this.sessionId = options.sessionId;
8
+ if (options.sessionId && options.deviceId) {
9
+ this.sessionReplayId = (0, helpers_1.generateSessionReplayId)(options.sessionId, options.deviceId);
10
+ }
11
+ else {
12
+ loggerProvider.error('Please provide both sessionId and deviceId.');
13
+ }
14
+ }
15
+ return SessionIdentifiers;
16
+ }());
17
+ exports.SessionIdentifiers = SessionIdentifiers;
18
+ //# sourceMappingURL=identifiers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identifiers.js","sourceRoot":"","sources":["../../src/identifiers.ts"],"names":[],"mappings":";;AACA,qCAAoD;AAGpD;IAKE,4BAAY,OAA6B,EAAE,cAAuB;QAChE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAEnC,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,QAAQ,EAAE;YACzC,IAAI,CAAC,eAAe,GAAG,IAAA,iCAAuB,EAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;SACrF;aAAM;YACL,cAAc,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;SACrE;IACH,CAAC;IACH,yBAAC;AAAD,CAAC,AAfD,IAeC;AAfY,gDAAkB","sourcesContent":["import { Logger as ILogger } from '@amplitude/analytics-types';\nimport { generateSessionReplayId } from './helpers';\nimport { SessionIdentifiers as ISessionIdentifiers, SessionReplayOptions } from './typings/session-replay';\n\nexport class SessionIdentifiers implements ISessionIdentifiers {\n deviceId?: string | undefined;\n sessionId?: number | undefined;\n sessionReplayId?: string | undefined;\n\n constructor(options: SessionReplayOptions, loggerProvider: ILogger) {\n this.deviceId = options.deviceId;\n this.sessionId = options.sessionId;\n\n if (options.sessionId && options.deviceId) {\n this.sessionReplayId = generateSessionReplayId(options.sessionId, options.deviceId);\n } else {\n loggerProvider.error('Please provide both sessionId and deviceId.');\n }\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- export declare const init: (apiKey: string, options: import("./typings/session-replay").SessionReplayOptions) => import("@amplitude/analytics-types").AmplitudeReturn<void>, setSessionId: (sessionId: number) => void, getSessionId: () => number | undefined, getSessionReplayProperties: () => {
1
+ export declare const init: (apiKey: string, options: import("./typings/session-replay").SessionReplayOptions) => import("@amplitude/analytics-types").AmplitudeReturn<void>, setSessionId: (sessionId: number, deviceId?: string | undefined) => void, getSessionId: () => number | undefined, getSessionReplayProperties: () => {
2
2
  [key: string]: string | boolean | null;
3
3
  }, flush: (useRetry: boolean) => Promise<void>, shutdown: () => void;
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,eAAO,MAAQ,IAAI,oJAAE,YAAY,+BAAE,YAAY,4BAAE,0BAA0B;;GAAE,KAAK,wCAAE,QAAQ,YAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,eAAO,MAAQ,IAAI,oJAAE,YAAY,8DAAE,YAAY,4BAAE,0BAA0B;;GAAE,KAAK,wCAAE,QAAQ,YAAkB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { Logger as ILogger } from '@amplitude/analytics-types';
2
+ import { SessionReplaySessionIDBStore as AmplitudeSessionReplaySessionIDBStore, Events, IDBStore } from './typings/session-replay';
3
+ export declare class SessionReplaySessionIDBStore implements AmplitudeSessionReplaySessionIDBStore {
4
+ apiKey: string | undefined;
5
+ storageKey: string;
6
+ loggerProvider: ILogger;
7
+ constructor({ apiKey, loggerProvider }: {
8
+ apiKey: string;
9
+ loggerProvider: ILogger;
10
+ });
11
+ getAllSessionDataFromStore: () => Promise<IDBStore | undefined>;
12
+ storeEventsForSession: (events: Events, sequenceId: number, sessionId: number) => Promise<void>;
13
+ cleanUpSessionEventsStore: (sessionId: number, sequenceId: number) => Promise<void>;
14
+ }
15
+ //# sourceMappingURL=session-idb-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-idb-store.d.ts","sourceRoot":"","sources":["../../src/session-idb-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAI/D,OAAO,EACL,4BAA4B,IAAI,qCAAqC,EACrE,MAAM,EACN,QAAQ,EAGT,MAAM,0BAA0B,CAAC;AAElC,qBAAa,4BAA6B,YAAW,qCAAqC;IACxF,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,UAAU,SAAM;IAChB,cAAc,EAAE,OAAO,CAAC;gBACZ,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,OAAO,CAAA;KAAE;IAKnF,0BAA0B,sCASxB;IAEF,qBAAqB,+BAAsC,MAAM,aAAa,MAAM,mBAyBlF;IAEF,yBAAyB,cAAqB,MAAM,cAAc,MAAM,mBAiCtE;CACH"}
@@ -0,0 +1,107 @@
1
+ Object.defineProperty(exports, "__esModule", { value: true });
2
+ exports.SessionReplaySessionIDBStore = void 0;
3
+ var tslib_1 = require("tslib");
4
+ var IDBKeyVal = tslib_1.__importStar(require("idb-keyval"));
5
+ var constants_1 = require("./constants");
6
+ var messages_1 = require("./messages");
7
+ var session_replay_1 = require("./typings/session-replay");
8
+ var SessionReplaySessionIDBStore = /** @class */ (function () {
9
+ function SessionReplaySessionIDBStore(_a) {
10
+ var apiKey = _a.apiKey, loggerProvider = _a.loggerProvider;
11
+ var _this = this;
12
+ this.storageKey = '';
13
+ this.getAllSessionDataFromStore = function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
14
+ var storedReplaySessionContexts, e_1;
15
+ return tslib_1.__generator(this, function (_a) {
16
+ switch (_a.label) {
17
+ case 0:
18
+ _a.trys.push([0, 2, , 3]);
19
+ return [4 /*yield*/, IDBKeyVal.get(this.storageKey)];
20
+ case 1:
21
+ storedReplaySessionContexts = _a.sent();
22
+ return [2 /*return*/, storedReplaySessionContexts];
23
+ case 2:
24
+ e_1 = _a.sent();
25
+ this.loggerProvider.warn("".concat(messages_1.STORAGE_FAILURE, ": ").concat(e_1));
26
+ return [3 /*break*/, 3];
27
+ case 3: return [2 /*return*/, undefined];
28
+ }
29
+ });
30
+ }); };
31
+ this.storeEventsForSession = function (events, sequenceId, sessionId) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
32
+ var e_2;
33
+ return tslib_1.__generator(this, function (_a) {
34
+ switch (_a.label) {
35
+ case 0:
36
+ _a.trys.push([0, 2, , 3]);
37
+ return [4 /*yield*/, IDBKeyVal.update(this.storageKey, function (sessionMap) {
38
+ var _a, _b;
39
+ if (sessionMap === void 0) { sessionMap = {}; }
40
+ var session = sessionMap[sessionId] || tslib_1.__assign({}, constants_1.defaultSessionStore);
41
+ session.currentSequenceId = sequenceId;
42
+ var currentSequence = (session.sessionSequences && session.sessionSequences[sequenceId]) || {};
43
+ currentSequence.events = events;
44
+ currentSequence.status = session_replay_1.RecordingStatus.RECORDING;
45
+ return tslib_1.__assign(tslib_1.__assign({}, sessionMap), (_a = {}, _a[sessionId] = tslib_1.__assign(tslib_1.__assign({}, session), { sessionSequences: tslib_1.__assign(tslib_1.__assign({}, session.sessionSequences), (_b = {}, _b[sequenceId] = currentSequence, _b)) }), _a));
46
+ })];
47
+ case 1:
48
+ _a.sent();
49
+ return [3 /*break*/, 3];
50
+ case 2:
51
+ e_2 = _a.sent();
52
+ this.loggerProvider.warn("".concat(messages_1.STORAGE_FAILURE, ": ").concat(e_2));
53
+ return [3 /*break*/, 3];
54
+ case 3: return [2 /*return*/];
55
+ }
56
+ });
57
+ }); };
58
+ this.cleanUpSessionEventsStore = function (sessionId, sequenceId) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
59
+ var e_3;
60
+ return tslib_1.__generator(this, function (_a) {
61
+ switch (_a.label) {
62
+ case 0:
63
+ _a.trys.push([0, 2, , 3]);
64
+ return [4 /*yield*/, IDBKeyVal.update(this.storageKey, function (sessionMap) {
65
+ if (sessionMap === void 0) { sessionMap = {}; }
66
+ var session = sessionMap[sessionId];
67
+ var sequenceToUpdate = (session === null || session === void 0 ? void 0 : session.sessionSequences) && session.sessionSequences[sequenceId];
68
+ if (!sequenceToUpdate) {
69
+ return sessionMap;
70
+ }
71
+ sequenceToUpdate.events = [];
72
+ sequenceToUpdate.status = session_replay_1.RecordingStatus.SENT;
73
+ // Delete sent sequences for current session
74
+ Object.entries(session.sessionSequences).forEach(function (_a) {
75
+ var _b = tslib_1.__read(_a, 2), storedSeqId = _b[0], sequence = _b[1];
76
+ var numericStoredSeqId = parseInt(storedSeqId, 10);
77
+ if (sequence.status === session_replay_1.RecordingStatus.SENT && sequenceId !== numericStoredSeqId) {
78
+ delete session.sessionSequences[numericStoredSeqId];
79
+ }
80
+ });
81
+ // Delete any sessions that are older than 3 days
82
+ Object.keys(sessionMap).forEach(function (sessionId) {
83
+ var numericSessionId = parseInt(sessionId, 10);
84
+ if (Date.now() - numericSessionId >= constants_1.MAX_IDB_STORAGE_LENGTH) {
85
+ delete sessionMap[numericSessionId];
86
+ }
87
+ });
88
+ return sessionMap;
89
+ })];
90
+ case 1:
91
+ _a.sent();
92
+ return [3 /*break*/, 3];
93
+ case 2:
94
+ e_3 = _a.sent();
95
+ this.loggerProvider.warn("".concat(messages_1.STORAGE_FAILURE, ": ").concat(e_3));
96
+ return [3 /*break*/, 3];
97
+ case 3: return [2 /*return*/];
98
+ }
99
+ });
100
+ }); };
101
+ this.loggerProvider = loggerProvider;
102
+ this.storageKey = "".concat(constants_1.STORAGE_PREFIX, "_").concat(apiKey.substring(0, 10));
103
+ }
104
+ return SessionReplaySessionIDBStore;
105
+ }());
106
+ exports.SessionReplaySessionIDBStore = SessionReplaySessionIDBStore;
107
+ //# sourceMappingURL=session-idb-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-idb-store.js","sourceRoot":"","sources":["../../src/session-idb-store.ts"],"names":[],"mappings":"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","sourcesContent":["import { Logger as ILogger } from '@amplitude/analytics-types';\nimport * as IDBKeyVal from 'idb-keyval';\nimport { MAX_IDB_STORAGE_LENGTH, STORAGE_PREFIX, defaultSessionStore } from './constants';\nimport { STORAGE_FAILURE } from './messages';\nimport {\n SessionReplaySessionIDBStore as AmplitudeSessionReplaySessionIDBStore,\n Events,\n IDBStore,\n IDBStoreSession,\n RecordingStatus,\n} from './typings/session-replay';\n\nexport class SessionReplaySessionIDBStore implements AmplitudeSessionReplaySessionIDBStore {\n apiKey: string | undefined;\n storageKey = '';\n loggerProvider: ILogger;\n constructor({ apiKey, loggerProvider }: { apiKey: string; loggerProvider: ILogger }) {\n this.loggerProvider = loggerProvider;\n this.storageKey = `${STORAGE_PREFIX}_${apiKey.substring(0, 10)}`;\n }\n\n getAllSessionDataFromStore = async () => {\n try {\n const storedReplaySessionContexts: IDBStore | undefined = await IDBKeyVal.get(this.storageKey);\n\n return storedReplaySessionContexts;\n } catch (e) {\n this.loggerProvider.warn(`${STORAGE_FAILURE}: ${e as string}`);\n }\n return undefined;\n };\n\n storeEventsForSession = async (events: Events, sequenceId: number, sessionId: number) => {\n try {\n await IDBKeyVal.update(this.storageKey, (sessionMap: IDBStore = {}): IDBStore => {\n const session: IDBStoreSession = sessionMap[sessionId] || { ...defaultSessionStore };\n session.currentSequenceId = sequenceId;\n\n const currentSequence = (session.sessionSequences && session.sessionSequences[sequenceId]) || {};\n\n currentSequence.events = events;\n currentSequence.status = RecordingStatus.RECORDING;\n\n return {\n ...sessionMap,\n [sessionId]: {\n ...session,\n sessionSequences: {\n ...session.sessionSequences,\n [sequenceId]: currentSequence,\n },\n },\n };\n });\n } catch (e) {\n this.loggerProvider.warn(`${STORAGE_FAILURE}: ${e as string}`);\n }\n };\n\n cleanUpSessionEventsStore = async (sessionId: number, sequenceId: number) => {\n try {\n await IDBKeyVal.update(this.storageKey, (sessionMap: IDBStore = {}): IDBStore => {\n const session: IDBStoreSession = sessionMap[sessionId];\n const sequenceToUpdate = session?.sessionSequences && session.sessionSequences[sequenceId];\n if (!sequenceToUpdate) {\n return sessionMap;\n }\n\n sequenceToUpdate.events = [];\n sequenceToUpdate.status = RecordingStatus.SENT;\n\n // Delete sent sequences for current session\n Object.entries(session.sessionSequences).forEach(([storedSeqId, sequence]) => {\n const numericStoredSeqId = parseInt(storedSeqId, 10);\n if (sequence.status === RecordingStatus.SENT && sequenceId !== numericStoredSeqId) {\n delete session.sessionSequences[numericStoredSeqId];\n }\n });\n\n // Delete any sessions that are older than 3 days\n Object.keys(sessionMap).forEach((sessionId: string) => {\n const numericSessionId = parseInt(sessionId, 10);\n if (Date.now() - numericSessionId >= MAX_IDB_STORAGE_LENGTH) {\n delete sessionMap[numericSessionId];\n }\n });\n\n return sessionMap;\n });\n } catch (e) {\n this.loggerProvider.warn(`${STORAGE_FAILURE}: ${e as string}`);\n }\n };\n}\n"]}
@@ -1,16 +1,15 @@
1
1
  import { Logger as ILogger } from '@amplitude/analytics-types';
2
2
  import { record } from '@amplitude/rrweb';
3
- import { AmplitudeSessionReplay, Events, IDBStore, SessionReplayConfig as ISessionReplayConfig, SessionReplayContext, SessionReplayOptions } from './typings/session-replay';
3
+ import { AmplitudeSessionReplay, SessionReplaySessionIDBStore as AmplitudeSessionReplaySessionIDBStore, SessionReplayTrackDestination as AmplitudeSessionReplayTrackDestination, Events, IDBStore, SessionIdentifiers as ISessionIdentifiers, SessionReplayConfig as ISessionReplayConfig, SessionReplayOptions } from './typings/session-replay';
4
4
  export declare class SessionReplay implements AmplitudeSessionReplay {
5
5
  name: string;
6
6
  config: ISessionReplayConfig | undefined;
7
+ identifiers: ISessionIdentifiers | undefined;
8
+ trackDestination: AmplitudeSessionReplayTrackDestination;
9
+ sessionIDBStore: AmplitudeSessionReplaySessionIDBStore | undefined;
7
10
  loggerProvider: ILogger;
8
- storageKey: string;
9
- retryTimeout: number;
10
11
  events: Events;
11
12
  currentSequenceId: number;
12
- private scheduled;
13
- queue: SessionReplayContext[];
14
13
  stopRecordingEvents: ReturnType<typeof record> | null;
15
14
  maxPersistedEventsSize: number;
16
15
  interval: number;
@@ -21,7 +20,7 @@ export declare class SessionReplay implements AmplitudeSessionReplay {
21
20
  setSessionId(sessionId: number, deviceId?: string): void;
22
21
  getSessionReplayDebugPropertyValue(): string;
23
22
  getSessionReplayProperties(): {
24
- [x: string]: string | null;
23
+ [key: string]: string | null;
25
24
  };
26
25
  blurListener: () => void;
27
26
  focusListener: () => void;
@@ -44,25 +43,9 @@ export declare class SessionReplay implements AmplitudeSessionReplay {
44
43
  sequenceId: number;
45
44
  sessionId: number;
46
45
  }): void;
47
- addToQueue(...list: SessionReplayContext[]): void;
48
- schedule(timeout: number): void;
49
- flush(useRetry?: boolean): Promise<void>;
50
- getSampleRate(): number;
51
- getServerUrl(): "https://api-sr.amplitude.com/sessions/v2/track" | "https://api-sr.eu.amplitude.com/sessions/v2/track" | "https://api-sr.stag2.amplitude.com//sessions/v2/track";
52
46
  getDeviceId(): string | undefined;
53
47
  getSessionId(): number | undefined;
54
- send(context: SessionReplayContext, useRetry?: boolean): Promise<void>;
55
- handleReponse(status: number, context: SessionReplayContext): void;
56
- handleSuccessResponse(context: SessionReplayContext): void;
57
- handleOtherResponse(context: SessionReplayContext): void;
58
- getAllSessionEventsFromStore(): Promise<IDBStore | undefined>;
59
- storeEventsForSession(events: Events, sequenceId: number, sessionId: number): Promise<void>;
60
- cleanUpSessionEventsStore(sessionId: number, sequenceId: number): Promise<void>;
61
- completeRequest({ context, err, success }: {
62
- context: SessionReplayContext;
63
- err?: string;
64
- success?: string;
65
- }): void;
48
+ flush(useRetry?: boolean): Promise<void>;
66
49
  shutdown(): void;
67
50
  }
68
51
  //# sourceMappingURL=session-replay.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-replay.d.ts","sourceRoot":"","sources":["../../src/session-replay.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,IAAI,OAAO,EAAsB,MAAM,4BAA4B,CAAC;AACnF,OAAO,EAAQ,MAAM,EAAE,MAAM,kBAAkB,CAAC;AA6BhD,OAAO,EACL,sBAAsB,EACtB,MAAM,EACN,QAAQ,EAER,mBAAmB,IAAI,oBAAoB,EAE3C,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAGlC,qBAAa,aAAc,YAAW,sBAAsB;IAC1D,IAAI,SAAuC;IAC3C,MAAM,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACzC,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,SAAM;IAChB,YAAY,SAAQ;IACpB,MAAM,EAAE,MAAM,CAAM;IACpB,iBAAiB,SAAK;IACtB,OAAO,CAAC,SAAS,CAA8C;IAC/D,KAAK,EAAE,oBAAoB,EAAE,CAAM;IACnC,mBAAmB,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,GAAG,IAAI,CAAQ;IAC7D,sBAAsB,SAAgC;IACtD,QAAQ,SAAgB;IACxB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;;IAMrC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB;cAIlC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB;IAmBnE,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAyBjD,kCAAkC;IAUlC,0BAA0B;;;IAwB1B,YAAY,aAEV;IAEF,aAAa,aAEX;IAEF,0BAA0B,CAAC,SAAS,CAAC,EAAE,MAAM;IAmBvC,UAAU,CAAC,sBAAsB,UAAQ;IAgC/C,YAAY;IAUZ,eAAe,CAAC,WAAW,UAAQ;IA8BnC,iBAAiB,IAAI,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS;IAIlD,gBAAgB,CAAC,oBAAoB,EAAE,QAAQ;IAqB/C,YAAY;IA6CZ;;;;;OAKG;IACH,qBAAqB,oBAAqB,MAAM,KAAG,OAAO,CAYxD;IAEF,cAAc,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IAU7G,UAAU,CAAC,GAAG,IAAI,EAAE,oBAAoB,EAAE;IA0B1C,QAAQ,CAAC,OAAO,EAAE,MAAM;IAWlB,KAAK,CAAC,QAAQ,UAAQ;IAc5B,aAAa;IAIb,YAAY;IAYZ,WAAW;IAUX,YAAY;IAIN,IAAI,CAAC,OAAO,EAAE,oBAAoB,EAAE,QAAQ,UAAO;IA0DzD,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB;IAc3D,qBAAqB,CAAC,OAAO,EAAE,oBAAoB;IAInD,mBAAmB,CAAC,OAAO,EAAE,oBAAoB;IAO3C,4BAA4B;IAW5B,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IA2B3E,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAmCrE,eAAe,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;QAAE,OAAO,EAAE,oBAAoB,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;IAS5G,QAAQ;CAST"}
1
+ {"version":3,"file":"session-replay.d.ts","sourceRoot":"","sources":["../../src/session-replay.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAQ,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAehD,OAAO,EACL,sBAAsB,EACtB,4BAA4B,IAAI,qCAAqC,EACrE,6BAA6B,IAAI,sCAAsC,EACvE,MAAM,EACN,QAAQ,EACR,kBAAkB,IAAI,mBAAmB,EACzC,mBAAmB,IAAI,oBAAoB,EAE3C,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAElC,qBAAa,aAAc,YAAW,sBAAsB;IAC1D,IAAI,SAAuC;IAC3C,MAAM,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACzC,WAAW,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAC7C,gBAAgB,EAAE,sCAAsC,CAAC;IACzD,eAAe,EAAE,qCAAqC,GAAG,SAAS,CAAC;IACnE,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,MAAM,CAAM;IACpB,iBAAiB,SAAK;IACtB,mBAAmB,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,GAAG,IAAI,CAAQ;IAC7D,sBAAsB,SAAgC;IACtD,QAAQ,SAAgB;IACxB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;;IAOrC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB;cAIlC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB;IAyBnE,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAyBjD,kCAAkC;IAUlC,0BAA0B;;;IAwB1B,YAAY,aAEV;IAEF,aAAa,aAEX;IAEF,0BAA0B,CAAC,SAAS,CAAC,EAAE,MAAM;IAmBvC,UAAU,CAAC,sBAAsB,UAAQ;IAgC/C,YAAY;IAUZ,eAAe,CAAC,WAAW,UAAQ;IA8BnC,iBAAiB,IAAI,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS;IAIlD,gBAAgB,CAAC,oBAAoB,EAAE,QAAQ;IAsB/C,YAAY;IA8CZ;;;;;OAKG;IACH,qBAAqB,oBAAqB,MAAM,KAAG,OAAO,CAYxD;IAEF,cAAc,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IAkB7G,WAAW;IAUX,YAAY;IAIN,KAAK,CAAC,QAAQ,UAAQ;IAM5B,QAAQ;CAST"}