@multiplayer-app/session-recorder-common 1.0.1-alpha.0 → 1.0.1-alpha.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 (55) hide show
  1. package/dist/esm/SessionRecorderIdGenerator.d.ts +1 -6
  2. package/dist/esm/SessionRecorderIdGenerator.d.ts.map +1 -1
  3. package/dist/esm/SessionRecorderIdGenerator.js +3 -12
  4. package/dist/esm/SessionRecorderIdGenerator.js.map +1 -1
  5. package/dist/esm/index-browser.d.ts +0 -1
  6. package/dist/esm/index-browser.d.ts.map +1 -1
  7. package/dist/esm/index-browser.js +0 -1
  8. package/dist/esm/index-browser.js.map +1 -1
  9. package/dist/esm/index-node.d.ts +0 -1
  10. package/dist/esm/index-node.d.ts.map +1 -1
  11. package/dist/esm/index-node.js +0 -1
  12. package/dist/esm/index-node.js.map +1 -1
  13. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  14. package/dist/esnext/SessionRecorderIdGenerator.d.ts +1 -6
  15. package/dist/esnext/SessionRecorderIdGenerator.d.ts.map +1 -1
  16. package/dist/esnext/SessionRecorderIdGenerator.js +3 -11
  17. package/dist/esnext/SessionRecorderIdGenerator.js.map +1 -1
  18. package/dist/esnext/index-browser.d.ts +0 -1
  19. package/dist/esnext/index-browser.d.ts.map +1 -1
  20. package/dist/esnext/index-browser.js +0 -1
  21. package/dist/esnext/index-browser.js.map +1 -1
  22. package/dist/esnext/index-node.d.ts +0 -1
  23. package/dist/esnext/index-node.d.ts.map +1 -1
  24. package/dist/esnext/index-node.js +0 -1
  25. package/dist/esnext/index-node.js.map +1 -1
  26. package/dist/esnext/tsconfig.esnext.tsbuildinfo +1 -1
  27. package/dist/src/SessionRecorderIdGenerator.d.ts +1 -6
  28. package/dist/src/SessionRecorderIdGenerator.d.ts.map +1 -1
  29. package/dist/src/SessionRecorderIdGenerator.js +1 -9
  30. package/dist/src/SessionRecorderIdGenerator.js.map +1 -1
  31. package/dist/src/index-browser.d.ts +0 -1
  32. package/dist/src/index-browser.d.ts.map +1 -1
  33. package/dist/src/index-browser.js +1 -3
  34. package/dist/src/index-browser.js.map +1 -1
  35. package/dist/src/index-node.d.ts +0 -1
  36. package/dist/src/index-node.d.ts.map +1 -1
  37. package/dist/src/index-node.js +1 -3
  38. package/dist/src/index-node.js.map +1 -1
  39. package/package.json +1 -1
  40. package/src/SessionRecorderIdGenerator.ts +2 -21
  41. package/src/index-browser.ts +0 -1
  42. package/src/index-node.ts +0 -1
  43. package/dist/esm/SessionRecorderJsonTraceSerializer.d.ts +0 -4
  44. package/dist/esm/SessionRecorderJsonTraceSerializer.d.ts.map +0 -1
  45. package/dist/esm/SessionRecorderJsonTraceSerializer.js +0 -94
  46. package/dist/esm/SessionRecorderJsonTraceSerializer.js.map +0 -1
  47. package/dist/esnext/SessionRecorderJsonTraceSerializer.d.ts +0 -4
  48. package/dist/esnext/SessionRecorderJsonTraceSerializer.d.ts.map +0 -1
  49. package/dist/esnext/SessionRecorderJsonTraceSerializer.js +0 -66
  50. package/dist/esnext/SessionRecorderJsonTraceSerializer.js.map +0 -1
  51. package/dist/src/SessionRecorderJsonTraceSerializer.d.ts +0 -4
  52. package/dist/src/SessionRecorderJsonTraceSerializer.d.ts.map +0 -1
  53. package/dist/src/SessionRecorderJsonTraceSerializer.js +0 -69
  54. package/dist/src/SessionRecorderJsonTraceSerializer.js.map +0 -1
  55. package/src/SessionRecorderJsonTraceSerializer.ts +0 -83
@@ -1,15 +1,10 @@
1
1
  import { RandomIdGenerator } from '@opentelemetry/sdk-trace-base';
2
2
  import { SessionType } from './type';
3
- import { SessionRecorderTraceIdRatioBasedSampler } from './SessionRecorderTraceIdRatioBasedSampler';
4
3
  export declare class SessionRecorderIdGenerator extends RandomIdGenerator {
5
4
  sessionShortId: string;
6
5
  sessionType: SessionType;
7
- docSpanSampler: SessionRecorderTraceIdRatioBasedSampler;
8
6
  generateLongId: () => string;
9
- constructor({ autoDocTracesRatio }?: {
10
- autoDocTracesRatio?: number | undefined;
11
- });
7
+ constructor();
12
8
  setSessionId(sessionShortId: string, sessionType?: SessionType): void;
13
- _isDocTrace(traceId: string): boolean;
14
9
  }
15
10
  //# sourceMappingURL=SessionRecorderIdGenerator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SessionRecorderIdGenerator.d.ts","sourceRoot":"","sources":["../../src/SessionRecorderIdGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAElB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,EACL,uCAAuC,EACxC,MAAM,2CAA2C,CAAA;AAQlD,qBAAa,0BAA2B,SAAQ,iBAAiB;IAC/D,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,WAAW,CAAA;IACxB,cAAc,EAAE,uCAAuC,CAAA;IAEvD,cAAc,EAAE,MAAM,MAAM,CAAA;gBAEhB,EAAE,kBAAsB,EAAE;;KAAK;IAmC3C,YAAY,CACV,cAAc,EAAE,MAAM,EACtB,WAAW,GAAE,WAA+B;IAM9C,WAAW,CAAC,OAAO,EAAE,MAAM;CAM5B"}
1
+ {"version":3,"file":"SessionRecorderIdGenerator.d.ts","sourceRoot":"","sources":["../../src/SessionRecorderIdGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAOpC,qBAAa,0BAA2B,SAAQ,iBAAiB;IAC/D,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,WAAW,CAAA;IAExB,cAAc,EAAE,MAAM,MAAM,CAAA;;IAiC5B,YAAY,CACV,cAAc,EAAE,MAAM,EACtB,WAAW,GAAE,WAA+B;CAK/C"}
@@ -3,13 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SessionRecorderIdGenerator = void 0;
4
4
  const sdk_trace_base_1 = require("@opentelemetry/sdk-trace-base");
5
5
  const type_1 = require("./type");
6
- const SessionRecorderTraceIdRatioBasedSampler_1 = require("./SessionRecorderTraceIdRatioBasedSampler");
7
6
  const constants_base_1 = require("./constants/constants.base");
8
7
  const sdk_1 = require("./sdk");
9
8
  class SessionRecorderIdGenerator extends sdk_trace_base_1.RandomIdGenerator {
10
- constructor({ autoDocTracesRatio = 0 } = {}) {
9
+ constructor() {
11
10
  super();
12
- this.docSpanSampler = new SessionRecorderTraceIdRatioBasedSampler_1.SessionRecorderTraceIdRatioBasedSampler(autoDocTracesRatio);
13
11
  this.generateLongId = (0, sdk_1.getIdGenerator)(16);
14
12
  this.sessionShortId = '';
15
13
  this.sessionType = type_1.SessionType.PLAIN;
@@ -28,9 +26,6 @@ class SessionRecorderIdGenerator extends sdk_trace_base_1.RandomIdGenerator {
28
26
  const sessionTraceId = `${prefix}${traceId.substring(prefix.length, traceId.length)}`;
29
27
  return sessionTraceId;
30
28
  }
31
- else if (this._isDocTrace(traceId)) {
32
- return `${constants_base_1.MULTIPLAYER_TRACE_DOC_PREFIX}${traceId.slice(constants_base_1.MULTIPLAYER_TRACE_DOC_PREFIX.length, traceId.length)}`;
33
- }
34
29
  return traceId;
35
30
  };
36
31
  }
@@ -38,9 +33,6 @@ class SessionRecorderIdGenerator extends sdk_trace_base_1.RandomIdGenerator {
38
33
  this.sessionShortId = sessionShortId;
39
34
  this.sessionType = sessionType;
40
35
  }
41
- _isDocTrace(traceId) {
42
- return this.docSpanSampler.shouldSample(undefined, traceId).decision === sdk_trace_base_1.SamplingDecision.RECORD_AND_SAMPLED;
43
- }
44
36
  }
45
37
  exports.SessionRecorderIdGenerator = SessionRecorderIdGenerator;
46
38
  //# sourceMappingURL=SessionRecorderIdGenerator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SessionRecorderIdGenerator.js","sourceRoot":"","sources":["../../src/SessionRecorderIdGenerator.ts"],"names":[],"mappings":";;;AAAA,kEAGsC;AACtC,iCAAoC;AACpC,uGAEkD;AAClD,+DAImC;AACnC,+BAAsC;AAEtC,MAAa,0BAA2B,SAAQ,kCAAiB;IAO/D,YAAY,EAAE,kBAAkB,GAAG,CAAC,EAAE,GAAG,EAAE;QACzC,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,cAAc,GAAG,IAAI,iFAAuC,CAAC,kBAAkB,CAAC,CAAA;QAErF,IAAI,CAAC,cAAc,GAAG,IAAA,oBAAc,EAAC,EAAE,CAAC,CAAA;QACxC,IAAI,CAAC,cAAc,GAAG,EAAE,CAAA;QACxB,IAAI,CAAC,WAAW,GAAG,kBAAW,CAAC,KAAK,CAAA;QAEpC,IAAI,CAAC,eAAe,GAAG,GAAG,EAAE;YAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;YAErC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,IAAI,iBAAiB,GAAW,EAAE,CAAA;gBAClC,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC;oBACzB,KAAK,kBAAW,CAAC,UAAU;wBACzB,iBAAiB,GAAG,0DAAyC,CAAA;wBAC7D,MAAK;oBACP;wBACE,iBAAiB,GAAG,+CAA8B,CAAA;gBACtD,CAAC;gBAED,MAAM,MAAM,GAAG,GAAG,iBAAiB,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;gBAE3D,MAAM,cAAc,GAAG,GAAG,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAA;gBAErF,OAAO,cAAc,CAAA;YACvB,CAAC;iBAAM,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;gBACrC,OAAO,GAAG,6CAA4B,GAAG,OAAO,CAAC,KAAK,CAAC,6CAA4B,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAA;YAC/G,CAAC;YAED,OAAO,OAAO,CAAA;QAChB,CAAC,CAAA;IACH,CAAC;IAED,YAAY,CACV,cAAsB,EACtB,cAA2B,kBAAW,CAAC,KAAK;QAE5C,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;QACpC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;IAChC,CAAC;IAED,WAAW,CAAC,OAAe;QACzB,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,CACrC,SAAS,EACT,OAAO,CACR,CAAC,QAAQ,KAAK,iCAAgB,CAAC,kBAAkB,CAAA;IACpD,CAAC;CACF;AAxDD,gEAwDC","sourcesContent":["import {\n RandomIdGenerator,\n SamplingDecision,\n} from '@opentelemetry/sdk-trace-base'\nimport { SessionType } from './type'\nimport {\n SessionRecorderTraceIdRatioBasedSampler,\n} from './SessionRecorderTraceIdRatioBasedSampler'\nimport {\n MULTIPLAYER_TRACE_DEBUG_PREFIX,\n MULTIPLAYER_TRACE_DOC_PREFIX,\n MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX,\n} from './constants/constants.base'\nimport { getIdGenerator } from './sdk'\n\nexport class SessionRecorderIdGenerator extends RandomIdGenerator {\n sessionShortId: string\n sessionType: SessionType\n docSpanSampler: SessionRecorderTraceIdRatioBasedSampler\n\n generateLongId: () => string\n\n constructor({ autoDocTracesRatio = 0 } = {}) {\n super()\n\n this.docSpanSampler = new SessionRecorderTraceIdRatioBasedSampler(autoDocTracesRatio)\n\n this.generateLongId = getIdGenerator(16)\n this.sessionShortId = ''\n this.sessionType = SessionType.PLAIN\n\n this.generateTraceId = () => {\n const traceId = this.generateLongId()\n\n if (this.sessionShortId) {\n let sessionTypePrefix: string = ''\n switch (this.sessionType) {\n case SessionType.CONTINUOUS:\n sessionTypePrefix = MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX\n break\n default:\n sessionTypePrefix = MULTIPLAYER_TRACE_DEBUG_PREFIX\n }\n\n const prefix = `${sessionTypePrefix}${this.sessionShortId}`\n\n const sessionTraceId = `${prefix}${traceId.substring(prefix.length, traceId.length)}`\n\n return sessionTraceId\n } else if (this._isDocTrace(traceId)) {\n return `${MULTIPLAYER_TRACE_DOC_PREFIX}${traceId.slice(MULTIPLAYER_TRACE_DOC_PREFIX.length, traceId.length)}`\n }\n\n return traceId\n }\n }\n\n setSessionId(\n sessionShortId: string,\n sessionType: SessionType = SessionType.PLAIN,\n ) {\n this.sessionShortId = sessionShortId\n this.sessionType = sessionType\n }\n\n _isDocTrace(traceId: string) {\n return this.docSpanSampler.shouldSample(\n undefined,\n traceId,\n ).decision === SamplingDecision.RECORD_AND_SAMPLED\n }\n}\n"]}
1
+ {"version":3,"file":"SessionRecorderIdGenerator.js","sourceRoot":"","sources":["../../src/SessionRecorderIdGenerator.ts"],"names":[],"mappings":";;;AAAA,kEAAiE;AACjE,iCAAoC;AACpC,+DAGmC;AACnC,+BAAsC;AAEtC,MAAa,0BAA2B,SAAQ,kCAAiB;IAM/D;QACE,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,cAAc,GAAG,IAAA,oBAAc,EAAC,EAAE,CAAC,CAAA;QACxC,IAAI,CAAC,cAAc,GAAG,EAAE,CAAA;QACxB,IAAI,CAAC,WAAW,GAAG,kBAAW,CAAC,KAAK,CAAA;QAEpC,IAAI,CAAC,eAAe,GAAG,GAAG,EAAE;YAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;YAErC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,IAAI,iBAAiB,GAAW,EAAE,CAAA;gBAClC,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC;oBACzB,KAAK,kBAAW,CAAC,UAAU;wBACzB,iBAAiB,GAAG,0DAAyC,CAAA;wBAC7D,MAAK;oBACP;wBACE,iBAAiB,GAAG,+CAA8B,CAAA;gBACtD,CAAC;gBAED,MAAM,MAAM,GAAG,GAAG,iBAAiB,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;gBAE3D,MAAM,cAAc,GAAG,GAAG,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAA;gBAErF,OAAO,cAAc,CAAA;YACvB,CAAC;YAED,OAAO,OAAO,CAAA;QAChB,CAAC,CAAA;IACH,CAAC;IAED,YAAY,CACV,cAAsB,EACtB,cAA2B,kBAAW,CAAC,KAAK;QAE5C,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;QACpC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;IAChC,CAAC;CACF;AA5CD,gEA4CC","sourcesContent":["import { RandomIdGenerator } from '@opentelemetry/sdk-trace-base'\nimport { SessionType } from './type'\nimport {\n MULTIPLAYER_TRACE_DEBUG_PREFIX,\n MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX,\n} from './constants/constants.base'\nimport { getIdGenerator } from './sdk'\n\nexport class SessionRecorderIdGenerator extends RandomIdGenerator {\n sessionShortId: string\n sessionType: SessionType\n\n generateLongId: () => string\n\n constructor() {\n super()\n\n this.generateLongId = getIdGenerator(16)\n this.sessionShortId = ''\n this.sessionType = SessionType.PLAIN\n\n this.generateTraceId = () => {\n const traceId = this.generateLongId()\n\n if (this.sessionShortId) {\n let sessionTypePrefix: string = ''\n switch (this.sessionType) {\n case SessionType.CONTINUOUS:\n sessionTypePrefix = MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX\n break\n default:\n sessionTypePrefix = MULTIPLAYER_TRACE_DEBUG_PREFIX\n }\n\n const prefix = `${sessionTypePrefix}${this.sessionShortId}`\n\n const sessionTraceId = `${prefix}${traceId.substring(prefix.length, traceId.length)}`\n\n return sessionTraceId\n }\n\n return traceId\n }\n }\n\n setSessionId(\n sessionShortId: string,\n sessionType: SessionType = SessionType.PLAIN,\n ) {\n this.sessionShortId = sessionShortId\n this.sessionType = sessionType\n }\n}\n"]}
@@ -1,6 +1,5 @@
1
1
  export * from './constants/constants.browser';
2
2
  export { SessionRecorderIdGenerator } from './SessionRecorderIdGenerator';
3
- export { SessionRecorderJsonTraceSerializer } from './SessionRecorderJsonTraceSerializer';
4
3
  export { SessionRecorderTraceIdRatioBasedSampler } from './SessionRecorderTraceIdRatioBasedSampler';
5
4
  export * as SessionRecorderSdk from './sdk';
6
5
  export * from './type';
@@ -1 +1 @@
1
- {"version":3,"file":"index-browser.d.ts","sourceRoot":"","sources":["../../src/index-browser.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAA;AAC7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,EAAE,kCAAkC,EAAE,MAAM,sCAAsC,CAAA;AACzF,OAAO,EAAE,uCAAuC,EAAE,MAAM,2CAA2C,CAAA;AACnG,OAAO,KAAK,kBAAkB,MAAM,OAAO,CAAA;AAC3C,cAAc,QAAQ,CAAA;AACtB,cAAc,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index-browser.d.ts","sourceRoot":"","sources":["../../src/index-browser.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAA;AAC7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,EAAE,uCAAuC,EAAE,MAAM,2CAA2C,CAAA;AACnG,OAAO,KAAK,kBAAkB,MAAM,OAAO,CAAA;AAC3C,cAAc,QAAQ,CAAA;AACtB,cAAc,2BAA2B,CAAA"}
@@ -14,12 +14,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.SessionRecorderSdk = exports.SessionRecorderTraceIdRatioBasedSampler = exports.SessionRecorderJsonTraceSerializer = exports.SessionRecorderIdGenerator = void 0;
17
+ exports.SessionRecorderSdk = exports.SessionRecorderTraceIdRatioBasedSampler = exports.SessionRecorderIdGenerator = void 0;
18
18
  __exportStar(require("./constants/constants.browser"), exports);
19
19
  var SessionRecorderIdGenerator_1 = require("./SessionRecorderIdGenerator");
20
20
  Object.defineProperty(exports, "SessionRecorderIdGenerator", { enumerable: true, get: function () { return SessionRecorderIdGenerator_1.SessionRecorderIdGenerator; } });
21
- var SessionRecorderJsonTraceSerializer_1 = require("./SessionRecorderJsonTraceSerializer");
22
- Object.defineProperty(exports, "SessionRecorderJsonTraceSerializer", { enumerable: true, get: function () { return SessionRecorderJsonTraceSerializer_1.SessionRecorderJsonTraceSerializer; } });
23
21
  var SessionRecorderTraceIdRatioBasedSampler_1 = require("./SessionRecorderTraceIdRatioBasedSampler");
24
22
  Object.defineProperty(exports, "SessionRecorderTraceIdRatioBasedSampler", { enumerable: true, get: function () { return SessionRecorderTraceIdRatioBasedSampler_1.SessionRecorderTraceIdRatioBasedSampler; } });
25
23
  exports.SessionRecorderSdk = require("./sdk");
@@ -1 +1 @@
1
- {"version":3,"file":"index-browser.js","sourceRoot":"","sources":["../../src/index-browser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,gEAA6C;AAC7C,2EAAyE;AAAhE,wIAAA,0BAA0B,OAAA;AACnC,2FAAyF;AAAhF,wJAAA,kCAAkC,OAAA;AAC3C,qGAAmG;AAA1F,kKAAA,uCAAuC,OAAA;AAChD,8CAA2C;AAC3C,yCAAsB;AACtB,4DAAyC","sourcesContent":["export * from './constants/constants.browser'\nexport { SessionRecorderIdGenerator } from './SessionRecorderIdGenerator'\nexport { SessionRecorderJsonTraceSerializer } from './SessionRecorderJsonTraceSerializer'\nexport { SessionRecorderTraceIdRatioBasedSampler } from './SessionRecorderTraceIdRatioBasedSampler'\nexport * as SessionRecorderSdk from './sdk'\nexport * from './type'\nexport * from './exporters/index-browser'\n"]}
1
+ {"version":3,"file":"index-browser.js","sourceRoot":"","sources":["../../src/index-browser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,gEAA6C;AAC7C,2EAAyE;AAAhE,wIAAA,0BAA0B,OAAA;AACnC,qGAAmG;AAA1F,kKAAA,uCAAuC,OAAA;AAChD,8CAA2C;AAC3C,yCAAsB;AACtB,4DAAyC","sourcesContent":["export * from './constants/constants.browser'\nexport { SessionRecorderIdGenerator } from './SessionRecorderIdGenerator'\nexport { SessionRecorderTraceIdRatioBasedSampler } from './SessionRecorderTraceIdRatioBasedSampler'\nexport * as SessionRecorderSdk from './sdk'\nexport * from './type'\nexport * from './exporters/index-browser'\n"]}
@@ -1,7 +1,6 @@
1
1
  export * from './constants/constants.node';
2
2
  export { SessionRecorderHttpInstrumentationHooksNode } from './instrumentations/SessionRecorderHttpInstrumentationHooksNode';
3
3
  export { SessionRecorderIdGenerator } from './SessionRecorderIdGenerator';
4
- export { SessionRecorderJsonTraceSerializer } from './SessionRecorderJsonTraceSerializer';
5
4
  export { SessionRecorderTraceIdRatioBasedSampler } from './SessionRecorderTraceIdRatioBasedSampler';
6
5
  export * as SessionRecorderSdk from './sdk';
7
6
  export * from './type';
@@ -1 +1 @@
1
- {"version":3,"file":"index-node.d.ts","sourceRoot":"","sources":["../../src/index-node.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAA;AAC1C,OAAO,EAAE,2CAA2C,EAAE,MAAM,gEAAgE,CAAA;AAC5H,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,EAAE,kCAAkC,EAAE,MAAM,sCAAsC,CAAA;AACzF,OAAO,EAAE,uCAAuC,EAAE,MAAM,2CAA2C,CAAA;AACnG,OAAO,KAAK,kBAAkB,MAAM,OAAO,CAAA;AAC3C,cAAc,QAAQ,CAAA;AACtB,cAAc,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index-node.d.ts","sourceRoot":"","sources":["../../src/index-node.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAA;AAC1C,OAAO,EAAE,2CAA2C,EAAE,MAAM,gEAAgE,CAAA;AAC5H,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,EAAE,uCAAuC,EAAE,MAAM,2CAA2C,CAAA;AACnG,OAAO,KAAK,kBAAkB,MAAM,OAAO,CAAA;AAC3C,cAAc,QAAQ,CAAA;AACtB,cAAc,wBAAwB,CAAA"}
@@ -14,14 +14,12 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.SessionRecorderSdk = exports.SessionRecorderTraceIdRatioBasedSampler = exports.SessionRecorderJsonTraceSerializer = exports.SessionRecorderIdGenerator = exports.SessionRecorderHttpInstrumentationHooksNode = void 0;
17
+ exports.SessionRecorderSdk = exports.SessionRecorderTraceIdRatioBasedSampler = exports.SessionRecorderIdGenerator = exports.SessionRecorderHttpInstrumentationHooksNode = void 0;
18
18
  __exportStar(require("./constants/constants.node"), exports);
19
19
  var SessionRecorderHttpInstrumentationHooksNode_1 = require("./instrumentations/SessionRecorderHttpInstrumentationHooksNode");
20
20
  Object.defineProperty(exports, "SessionRecorderHttpInstrumentationHooksNode", { enumerable: true, get: function () { return SessionRecorderHttpInstrumentationHooksNode_1.SessionRecorderHttpInstrumentationHooksNode; } });
21
21
  var SessionRecorderIdGenerator_1 = require("./SessionRecorderIdGenerator");
22
22
  Object.defineProperty(exports, "SessionRecorderIdGenerator", { enumerable: true, get: function () { return SessionRecorderIdGenerator_1.SessionRecorderIdGenerator; } });
23
- var SessionRecorderJsonTraceSerializer_1 = require("./SessionRecorderJsonTraceSerializer");
24
- Object.defineProperty(exports, "SessionRecorderJsonTraceSerializer", { enumerable: true, get: function () { return SessionRecorderJsonTraceSerializer_1.SessionRecorderJsonTraceSerializer; } });
25
23
  var SessionRecorderTraceIdRatioBasedSampler_1 = require("./SessionRecorderTraceIdRatioBasedSampler");
26
24
  Object.defineProperty(exports, "SessionRecorderTraceIdRatioBasedSampler", { enumerable: true, get: function () { return SessionRecorderTraceIdRatioBasedSampler_1.SessionRecorderTraceIdRatioBasedSampler; } });
27
25
  exports.SessionRecorderSdk = require("./sdk");
@@ -1 +1 @@
1
- {"version":3,"file":"index-node.js","sourceRoot":"","sources":["../../src/index-node.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6DAA0C;AAC1C,8HAA4H;AAAnH,0KAAA,2CAA2C,OAAA;AACpD,2EAAyE;AAAhE,wIAAA,0BAA0B,OAAA;AACnC,2FAAyF;AAAhF,wJAAA,kCAAkC,OAAA;AAC3C,qGAAmG;AAA1F,kKAAA,uCAAuC,OAAA;AAChD,8CAA2C;AAC3C,yCAAsB;AACtB,yDAAsC","sourcesContent":["export * from './constants/constants.node'\nexport { SessionRecorderHttpInstrumentationHooksNode } from './instrumentations/SessionRecorderHttpInstrumentationHooksNode'\nexport { SessionRecorderIdGenerator } from './SessionRecorderIdGenerator'\nexport { SessionRecorderJsonTraceSerializer } from './SessionRecorderJsonTraceSerializer'\nexport { SessionRecorderTraceIdRatioBasedSampler } from './SessionRecorderTraceIdRatioBasedSampler'\nexport * as SessionRecorderSdk from './sdk'\nexport * from './type'\nexport * from './exporters/index-node'\n"]}
1
+ {"version":3,"file":"index-node.js","sourceRoot":"","sources":["../../src/index-node.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6DAA0C;AAC1C,8HAA4H;AAAnH,0KAAA,2CAA2C,OAAA;AACpD,2EAAyE;AAAhE,wIAAA,0BAA0B,OAAA;AACnC,qGAAmG;AAA1F,kKAAA,uCAAuC,OAAA;AAChD,8CAA2C;AAC3C,yCAAsB;AACtB,yDAAsC","sourcesContent":["export * from './constants/constants.node'\nexport { SessionRecorderHttpInstrumentationHooksNode } from './instrumentations/SessionRecorderHttpInstrumentationHooksNode'\nexport { SessionRecorderIdGenerator } from './SessionRecorderIdGenerator'\nexport { SessionRecorderTraceIdRatioBasedSampler } from './SessionRecorderTraceIdRatioBasedSampler'\nexport * as SessionRecorderSdk from './sdk'\nexport * from './type'\nexport * from './exporters/index-node'\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@multiplayer-app/session-recorder-common",
3
- "version": "1.0.1-alpha.0",
3
+ "version": "1.0.1-alpha.1",
4
4
  "description": "Multiplayer Fullstack Session Recorder - opentelemetry",
5
5
  "author": {
6
6
  "name": "Multiplayer Software, Inc.",
@@ -1,14 +1,7 @@
1
- import {
2
- RandomIdGenerator,
3
- SamplingDecision,
4
- } from '@opentelemetry/sdk-trace-base'
1
+ import { RandomIdGenerator } from '@opentelemetry/sdk-trace-base'
5
2
  import { SessionType } from './type'
6
- import {
7
- SessionRecorderTraceIdRatioBasedSampler,
8
- } from './SessionRecorderTraceIdRatioBasedSampler'
9
3
  import {
10
4
  MULTIPLAYER_TRACE_DEBUG_PREFIX,
11
- MULTIPLAYER_TRACE_DOC_PREFIX,
12
5
  MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX,
13
6
  } from './constants/constants.base'
14
7
  import { getIdGenerator } from './sdk'
@@ -16,15 +9,12 @@ import { getIdGenerator } from './sdk'
16
9
  export class SessionRecorderIdGenerator extends RandomIdGenerator {
17
10
  sessionShortId: string
18
11
  sessionType: SessionType
19
- docSpanSampler: SessionRecorderTraceIdRatioBasedSampler
20
12
 
21
13
  generateLongId: () => string
22
14
 
23
- constructor({ autoDocTracesRatio = 0 } = {}) {
15
+ constructor() {
24
16
  super()
25
17
 
26
- this.docSpanSampler = new SessionRecorderTraceIdRatioBasedSampler(autoDocTracesRatio)
27
-
28
18
  this.generateLongId = getIdGenerator(16)
29
19
  this.sessionShortId = ''
30
20
  this.sessionType = SessionType.PLAIN
@@ -47,8 +37,6 @@ export class SessionRecorderIdGenerator extends RandomIdGenerator {
47
37
  const sessionTraceId = `${prefix}${traceId.substring(prefix.length, traceId.length)}`
48
38
 
49
39
  return sessionTraceId
50
- } else if (this._isDocTrace(traceId)) {
51
- return `${MULTIPLAYER_TRACE_DOC_PREFIX}${traceId.slice(MULTIPLAYER_TRACE_DOC_PREFIX.length, traceId.length)}`
52
40
  }
53
41
 
54
42
  return traceId
@@ -62,11 +50,4 @@ export class SessionRecorderIdGenerator extends RandomIdGenerator {
62
50
  this.sessionShortId = sessionShortId
63
51
  this.sessionType = sessionType
64
52
  }
65
-
66
- _isDocTrace(traceId: string) {
67
- return this.docSpanSampler.shouldSample(
68
- undefined,
69
- traceId,
70
- ).decision === SamplingDecision.RECORD_AND_SAMPLED
71
- }
72
53
  }
@@ -1,6 +1,5 @@
1
1
  export * from './constants/constants.browser'
2
2
  export { SessionRecorderIdGenerator } from './SessionRecorderIdGenerator'
3
- export { SessionRecorderJsonTraceSerializer } from './SessionRecorderJsonTraceSerializer'
4
3
  export { SessionRecorderTraceIdRatioBasedSampler } from './SessionRecorderTraceIdRatioBasedSampler'
5
4
  export * as SessionRecorderSdk from './sdk'
6
5
  export * from './type'
package/src/index-node.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  export * from './constants/constants.node'
2
2
  export { SessionRecorderHttpInstrumentationHooksNode } from './instrumentations/SessionRecorderHttpInstrumentationHooksNode'
3
3
  export { SessionRecorderIdGenerator } from './SessionRecorderIdGenerator'
4
- export { SessionRecorderJsonTraceSerializer } from './SessionRecorderJsonTraceSerializer'
5
4
  export { SessionRecorderTraceIdRatioBasedSampler } from './SessionRecorderTraceIdRatioBasedSampler'
6
5
  export * as SessionRecorderSdk from './sdk'
7
6
  export * from './type'
@@ -1,4 +0,0 @@
1
- import { ReadableSpan } from '@opentelemetry/sdk-trace-base';
2
- import { IExportTraceServiceResponse, ISerializer } from '@opentelemetry/otlp-transformer';
3
- export declare const SessionRecorderJsonTraceSerializer: ISerializer<ReadableSpan[], IExportTraceServiceResponse>;
4
- //# sourceMappingURL=SessionRecorderJsonTraceSerializer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SessionRecorderJsonTraceSerializer.d.ts","sourceRoot":"","sources":["../../src/SessionRecorderJsonTraceSerializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EACL,2BAA2B,EAC3B,WAAW,EACZ,MAAM,iCAAiC,CAAA;AAMxC,eAAO,MAAM,kCAAkC,EAAE,WAAW,CAC5D,YAAY,EAAE,EACd,2BAA2B,CAsE1B,CAAA"}
@@ -1,94 +0,0 @@
1
- var __read = (this && this.__read) || function (o, n) {
2
- var m = typeof Symbol === "function" && o[Symbol.iterator];
3
- if (!m) return o;
4
- var i = m.call(o), r, ar = [], e;
5
- try {
6
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
7
- }
8
- catch (error) { e = { error: error }; }
9
- finally {
10
- try {
11
- if (r && !r.done && (m = i["return"])) m.call(i);
12
- }
13
- finally { if (e) throw e.error; }
14
- }
15
- return ar;
16
- };
17
- import { MULTIPLAYER_TRACE_DEBUG_PREFIX, MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX, } from './constants/constants.base';
18
- export var SessionRecorderJsonTraceSerializer = {
19
- serializeRequest: function (arg) {
20
- var filteredArg = arg.filter(function (span) {
21
- var traceId = span.spanContext().traceId;
22
- if (traceId.startsWith(MULTIPLAYER_TRACE_DEBUG_PREFIX)
23
- || traceId.startsWith(MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX)) {
24
- return true;
25
- }
26
- return false;
27
- });
28
- // Create a simple trace service request structure
29
- var request = {
30
- resourceSpans: filteredArg.map(function (span) { return ({
31
- resource: {
32
- attributes: Object.entries(span.resource.attributes).map(function (_a) {
33
- var _b = __read(_a, 2), key = _b[0], value = _b[1];
34
- return ({
35
- key: key,
36
- value: { stringValue: String(value) },
37
- });
38
- }),
39
- },
40
- scopeSpans: [{
41
- spans: [{
42
- traceId: span.spanContext().traceId,
43
- spanId: span.spanContext().spanId,
44
- parentSpanId: span.spanContext().spanId, // Using spanId as fallback
45
- name: span.name,
46
- kind: span.kind,
47
- startTimeUnixNano: span.startTime[0] * 1e9 + span.startTime[1],
48
- endTimeUnixNano: span.endTime ? span.endTime[0] * 1e9 + span.endTime[1] : undefined,
49
- attributes: Object.entries(span.attributes).map(function (_a) {
50
- var _b = __read(_a, 2), key = _b[0], value = _b[1];
51
- return ({
52
- key: key,
53
- value: { stringValue: String(value) },
54
- });
55
- }),
56
- events: span.events.map(function (event) { return ({
57
- timeUnixNano: event.time[0] * 1e9 + event.time[1],
58
- name: event.name,
59
- attributes: Object.entries(event.attributes || {}).map(function (_a) {
60
- var _b = __read(_a, 2), key = _b[0], value = _b[1];
61
- return ({
62
- key: key,
63
- value: { stringValue: String(value) },
64
- });
65
- }),
66
- }); }),
67
- links: span.links.map(function (link) { return ({
68
- traceId: link.context.traceId,
69
- spanId: link.context.spanId,
70
- attributes: Object.entries(link.attributes || {}).map(function (_a) {
71
- var _b = __read(_a, 2), key = _b[0], value = _b[1];
72
- return ({
73
- key: key,
74
- value: { stringValue: String(value) },
75
- });
76
- }),
77
- }); }),
78
- status: {
79
- code: span.status.code,
80
- message: span.status.message || '',
81
- },
82
- }],
83
- }],
84
- }); }),
85
- };
86
- var encoder = new TextEncoder();
87
- return encoder.encode(JSON.stringify(request));
88
- },
89
- deserializeResponse: function (arg) {
90
- var decoder = new TextDecoder();
91
- return JSON.parse(decoder.decode(arg));
92
- },
93
- };
94
- //# sourceMappingURL=SessionRecorderJsonTraceSerializer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SessionRecorderJsonTraceSerializer.js","sourceRoot":"","sources":["../../src/SessionRecorderJsonTraceSerializer.ts"],"names":[],"mappings":"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","sourcesContent":["import { ReadableSpan } from '@opentelemetry/sdk-trace-base'\nimport {\n IExportTraceServiceResponse,\n ISerializer,\n} from '@opentelemetry/otlp-transformer'\nimport {\n MULTIPLAYER_TRACE_DEBUG_PREFIX,\n MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX,\n} from './constants/constants.base'\n\nexport const SessionRecorderJsonTraceSerializer: ISerializer<\nReadableSpan[],\nIExportTraceServiceResponse\n> = {\n serializeRequest: (arg: ReadableSpan[]) => {\n const filteredArg = arg.filter(span => {\n const traceId = span.spanContext().traceId\n\n if (\n traceId.startsWith(MULTIPLAYER_TRACE_DEBUG_PREFIX)\n || traceId.startsWith(MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX)\n ) {\n return true\n }\n\n return false\n })\n\n // Create a simple trace service request structure\n const request = {\n resourceSpans: filteredArg.map(span => ({\n resource: {\n attributes: Object.entries(span.resource.attributes).map(([key, value]) => ({\n key,\n value: { stringValue: String(value) },\n })),\n },\n scopeSpans: [{\n spans: [{\n traceId: span.spanContext().traceId,\n spanId: span.spanContext().spanId,\n parentSpanId: span.spanContext().spanId, // Using spanId as fallback\n name: span.name,\n kind: span.kind,\n startTimeUnixNano: span.startTime[0] * 1e9 + span.startTime[1],\n endTimeUnixNano: span.endTime ? span.endTime[0] * 1e9 + span.endTime[1] : undefined,\n attributes: Object.entries(span.attributes).map(([key, value]) => ({\n key,\n value: { stringValue: String(value) },\n })),\n events: span.events.map(event => ({\n timeUnixNano: event.time[0] * 1e9 + event.time[1],\n name: event.name,\n attributes: Object.entries(event.attributes || {}).map(([key, value]) => ({\n key,\n value: { stringValue: String(value) },\n })),\n })),\n links: span.links.map(link => ({\n traceId: link.context.traceId,\n spanId: link.context.spanId,\n attributes: Object.entries(link.attributes || {}).map(([key, value]) => ({\n key,\n value: { stringValue: String(value) },\n })),\n })),\n status: {\n code: span.status.code,\n message: span.status.message || '',\n },\n }],\n }],\n })),\n }\n\n const encoder = new TextEncoder()\n return encoder.encode(JSON.stringify(request))\n },\n deserializeResponse: (arg: Uint8Array) => {\n const decoder = new TextDecoder()\n return JSON.parse(decoder.decode(arg)) as IExportTraceServiceResponse\n },\n}\n"]}
@@ -1,4 +0,0 @@
1
- import { ReadableSpan } from '@opentelemetry/sdk-trace-base';
2
- import { IExportTraceServiceResponse, ISerializer } from '@opentelemetry/otlp-transformer';
3
- export declare const SessionRecorderJsonTraceSerializer: ISerializer<ReadableSpan[], IExportTraceServiceResponse>;
4
- //# sourceMappingURL=SessionRecorderJsonTraceSerializer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SessionRecorderJsonTraceSerializer.d.ts","sourceRoot":"","sources":["../../src/SessionRecorderJsonTraceSerializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EACL,2BAA2B,EAC3B,WAAW,EACZ,MAAM,iCAAiC,CAAA;AAMxC,eAAO,MAAM,kCAAkC,EAAE,WAAW,CAC5D,YAAY,EAAE,EACd,2BAA2B,CAsE1B,CAAA"}
@@ -1,66 +0,0 @@
1
- import { MULTIPLAYER_TRACE_DEBUG_PREFIX, MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX, } from './constants/constants.base';
2
- export const SessionRecorderJsonTraceSerializer = {
3
- serializeRequest: (arg) => {
4
- const filteredArg = arg.filter(span => {
5
- const traceId = span.spanContext().traceId;
6
- if (traceId.startsWith(MULTIPLAYER_TRACE_DEBUG_PREFIX)
7
- || traceId.startsWith(MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX)) {
8
- return true;
9
- }
10
- return false;
11
- });
12
- // Create a simple trace service request structure
13
- const request = {
14
- resourceSpans: filteredArg.map(span => ({
15
- resource: {
16
- attributes: Object.entries(span.resource.attributes).map(([key, value]) => ({
17
- key,
18
- value: { stringValue: String(value) },
19
- })),
20
- },
21
- scopeSpans: [{
22
- spans: [{
23
- traceId: span.spanContext().traceId,
24
- spanId: span.spanContext().spanId,
25
- parentSpanId: span.spanContext().spanId, // Using spanId as fallback
26
- name: span.name,
27
- kind: span.kind,
28
- startTimeUnixNano: span.startTime[0] * 1e9 + span.startTime[1],
29
- endTimeUnixNano: span.endTime ? span.endTime[0] * 1e9 + span.endTime[1] : undefined,
30
- attributes: Object.entries(span.attributes).map(([key, value]) => ({
31
- key,
32
- value: { stringValue: String(value) },
33
- })),
34
- events: span.events.map(event => ({
35
- timeUnixNano: event.time[0] * 1e9 + event.time[1],
36
- name: event.name,
37
- attributes: Object.entries(event.attributes || {}).map(([key, value]) => ({
38
- key,
39
- value: { stringValue: String(value) },
40
- })),
41
- })),
42
- links: span.links.map(link => ({
43
- traceId: link.context.traceId,
44
- spanId: link.context.spanId,
45
- attributes: Object.entries(link.attributes || {}).map(([key, value]) => ({
46
- key,
47
- value: { stringValue: String(value) },
48
- })),
49
- })),
50
- status: {
51
- code: span.status.code,
52
- message: span.status.message || '',
53
- },
54
- }],
55
- }],
56
- })),
57
- };
58
- const encoder = new TextEncoder();
59
- return encoder.encode(JSON.stringify(request));
60
- },
61
- deserializeResponse: (arg) => {
62
- const decoder = new TextDecoder();
63
- return JSON.parse(decoder.decode(arg));
64
- },
65
- };
66
- //# sourceMappingURL=SessionRecorderJsonTraceSerializer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SessionRecorderJsonTraceSerializer.js","sourceRoot":"","sources":["../../src/SessionRecorderJsonTraceSerializer.ts"],"names":[],"mappings":"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","sourcesContent":["import { ReadableSpan } from '@opentelemetry/sdk-trace-base'\nimport {\n IExportTraceServiceResponse,\n ISerializer,\n} from '@opentelemetry/otlp-transformer'\nimport {\n MULTIPLAYER_TRACE_DEBUG_PREFIX,\n MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX,\n} from './constants/constants.base'\n\nexport const SessionRecorderJsonTraceSerializer: ISerializer<\nReadableSpan[],\nIExportTraceServiceResponse\n> = {\n serializeRequest: (arg: ReadableSpan[]) => {\n const filteredArg = arg.filter(span => {\n const traceId = span.spanContext().traceId\n\n if (\n traceId.startsWith(MULTIPLAYER_TRACE_DEBUG_PREFIX)\n || traceId.startsWith(MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX)\n ) {\n return true\n }\n\n return false\n })\n\n // Create a simple trace service request structure\n const request = {\n resourceSpans: filteredArg.map(span => ({\n resource: {\n attributes: Object.entries(span.resource.attributes).map(([key, value]) => ({\n key,\n value: { stringValue: String(value) },\n })),\n },\n scopeSpans: [{\n spans: [{\n traceId: span.spanContext().traceId,\n spanId: span.spanContext().spanId,\n parentSpanId: span.spanContext().spanId, // Using spanId as fallback\n name: span.name,\n kind: span.kind,\n startTimeUnixNano: span.startTime[0] * 1e9 + span.startTime[1],\n endTimeUnixNano: span.endTime ? span.endTime[0] * 1e9 + span.endTime[1] : undefined,\n attributes: Object.entries(span.attributes).map(([key, value]) => ({\n key,\n value: { stringValue: String(value) },\n })),\n events: span.events.map(event => ({\n timeUnixNano: event.time[0] * 1e9 + event.time[1],\n name: event.name,\n attributes: Object.entries(event.attributes || {}).map(([key, value]) => ({\n key,\n value: { stringValue: String(value) },\n })),\n })),\n links: span.links.map(link => ({\n traceId: link.context.traceId,\n spanId: link.context.spanId,\n attributes: Object.entries(link.attributes || {}).map(([key, value]) => ({\n key,\n value: { stringValue: String(value) },\n })),\n })),\n status: {\n code: span.status.code,\n message: span.status.message || '',\n },\n }],\n }],\n })),\n }\n\n const encoder = new TextEncoder()\n return encoder.encode(JSON.stringify(request))\n },\n deserializeResponse: (arg: Uint8Array) => {\n const decoder = new TextDecoder()\n return JSON.parse(decoder.decode(arg)) as IExportTraceServiceResponse\n },\n}\n"]}
@@ -1,4 +0,0 @@
1
- import { ReadableSpan } from '@opentelemetry/sdk-trace-base';
2
- import { IExportTraceServiceResponse, ISerializer } from '@opentelemetry/otlp-transformer';
3
- export declare const SessionRecorderJsonTraceSerializer: ISerializer<ReadableSpan[], IExportTraceServiceResponse>;
4
- //# sourceMappingURL=SessionRecorderJsonTraceSerializer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SessionRecorderJsonTraceSerializer.d.ts","sourceRoot":"","sources":["../../src/SessionRecorderJsonTraceSerializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EACL,2BAA2B,EAC3B,WAAW,EACZ,MAAM,iCAAiC,CAAA;AAMxC,eAAO,MAAM,kCAAkC,EAAE,WAAW,CAC5D,YAAY,EAAE,EACd,2BAA2B,CAsE1B,CAAA"}
@@ -1,69 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SessionRecorderJsonTraceSerializer = void 0;
4
- const constants_base_1 = require("./constants/constants.base");
5
- exports.SessionRecorderJsonTraceSerializer = {
6
- serializeRequest: (arg) => {
7
- const filteredArg = arg.filter(span => {
8
- const traceId = span.spanContext().traceId;
9
- if (traceId.startsWith(constants_base_1.MULTIPLAYER_TRACE_DEBUG_PREFIX)
10
- || traceId.startsWith(constants_base_1.MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX)) {
11
- return true;
12
- }
13
- return false;
14
- });
15
- // Create a simple trace service request structure
16
- const request = {
17
- resourceSpans: filteredArg.map(span => ({
18
- resource: {
19
- attributes: Object.entries(span.resource.attributes).map(([key, value]) => ({
20
- key,
21
- value: { stringValue: String(value) },
22
- })),
23
- },
24
- scopeSpans: [{
25
- spans: [{
26
- traceId: span.spanContext().traceId,
27
- spanId: span.spanContext().spanId,
28
- parentSpanId: span.spanContext().spanId, // Using spanId as fallback
29
- name: span.name,
30
- kind: span.kind,
31
- startTimeUnixNano: span.startTime[0] * 1e9 + span.startTime[1],
32
- endTimeUnixNano: span.endTime ? span.endTime[0] * 1e9 + span.endTime[1] : undefined,
33
- attributes: Object.entries(span.attributes).map(([key, value]) => ({
34
- key,
35
- value: { stringValue: String(value) },
36
- })),
37
- events: span.events.map(event => ({
38
- timeUnixNano: event.time[0] * 1e9 + event.time[1],
39
- name: event.name,
40
- attributes: Object.entries(event.attributes || {}).map(([key, value]) => ({
41
- key,
42
- value: { stringValue: String(value) },
43
- })),
44
- })),
45
- links: span.links.map(link => ({
46
- traceId: link.context.traceId,
47
- spanId: link.context.spanId,
48
- attributes: Object.entries(link.attributes || {}).map(([key, value]) => ({
49
- key,
50
- value: { stringValue: String(value) },
51
- })),
52
- })),
53
- status: {
54
- code: span.status.code,
55
- message: span.status.message || '',
56
- },
57
- }],
58
- }],
59
- })),
60
- };
61
- const encoder = new TextEncoder();
62
- return encoder.encode(JSON.stringify(request));
63
- },
64
- deserializeResponse: (arg) => {
65
- const decoder = new TextDecoder();
66
- return JSON.parse(decoder.decode(arg));
67
- },
68
- };
69
- //# sourceMappingURL=SessionRecorderJsonTraceSerializer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SessionRecorderJsonTraceSerializer.js","sourceRoot":"","sources":["../../src/SessionRecorderJsonTraceSerializer.ts"],"names":[],"mappings":";;;AAKA,+DAGmC;AAEtB,QAAA,kCAAkC,GAG3C;IACF,gBAAgB,EAAE,CAAC,GAAmB,EAAE,EAAE;QACxC,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACpC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAA;YAE1C,IACE,OAAO,CAAC,UAAU,CAAC,+CAA8B,CAAC;mBAC/C,OAAO,CAAC,UAAU,CAAC,0DAAyC,CAAC,EAChE,CAAC;gBACD,OAAO,IAAI,CAAA;YACb,CAAC;YAED,OAAO,KAAK,CAAA;QACd,CAAC,CAAC,CAAA;QAEF,kDAAkD;QAClD,MAAM,OAAO,GAAG;YACd,aAAa,EAAE,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACtC,QAAQ,EAAE;oBACR,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;wBAC1E,GAAG;wBACH,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;qBACtC,CAAC,CAAC;iBACJ;gBACD,UAAU,EAAE,CAAC;wBACX,KAAK,EAAE,CAAC;gCACN,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO;gCACnC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM;gCACjC,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,2BAA2B;gCACpE,IAAI,EAAE,IAAI,CAAC,IAAI;gCACf,IAAI,EAAE,IAAI,CAAC,IAAI;gCACf,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;gCAC9D,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;gCACnF,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;oCACjE,GAAG;oCACH,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;iCACtC,CAAC,CAAC;gCACH,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oCAChC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;oCACjD,IAAI,EAAE,KAAK,CAAC,IAAI;oCAChB,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;wCACxE,GAAG;wCACH,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;qCACtC,CAAC,CAAC;iCACJ,CAAC,CAAC;gCACH,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oCAC7B,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;oCAC7B,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;oCAC3B,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;wCACvE,GAAG;wCACH,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;qCACtC,CAAC,CAAC;iCACJ,CAAC,CAAC;gCACH,MAAM,EAAE;oCACN,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;oCACtB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE;iCACnC;6BACF,CAAC;qBACH,CAAC;aACH,CAAC,CAAC;SACJ,CAAA;QAED,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;QACjC,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;IAChD,CAAC;IACD,mBAAmB,EAAE,CAAC,GAAe,EAAE,EAAE;QACvC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;QACjC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAgC,CAAA;IACvE,CAAC;CACF,CAAA","sourcesContent":["import { ReadableSpan } from '@opentelemetry/sdk-trace-base'\nimport {\n IExportTraceServiceResponse,\n ISerializer,\n} from '@opentelemetry/otlp-transformer'\nimport {\n MULTIPLAYER_TRACE_DEBUG_PREFIX,\n MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX,\n} from './constants/constants.base'\n\nexport const SessionRecorderJsonTraceSerializer: ISerializer<\nReadableSpan[],\nIExportTraceServiceResponse\n> = {\n serializeRequest: (arg: ReadableSpan[]) => {\n const filteredArg = arg.filter(span => {\n const traceId = span.spanContext().traceId\n\n if (\n traceId.startsWith(MULTIPLAYER_TRACE_DEBUG_PREFIX)\n || traceId.startsWith(MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX)\n ) {\n return true\n }\n\n return false\n })\n\n // Create a simple trace service request structure\n const request = {\n resourceSpans: filteredArg.map(span => ({\n resource: {\n attributes: Object.entries(span.resource.attributes).map(([key, value]) => ({\n key,\n value: { stringValue: String(value) },\n })),\n },\n scopeSpans: [{\n spans: [{\n traceId: span.spanContext().traceId,\n spanId: span.spanContext().spanId,\n parentSpanId: span.spanContext().spanId, // Using spanId as fallback\n name: span.name,\n kind: span.kind,\n startTimeUnixNano: span.startTime[0] * 1e9 + span.startTime[1],\n endTimeUnixNano: span.endTime ? span.endTime[0] * 1e9 + span.endTime[1] : undefined,\n attributes: Object.entries(span.attributes).map(([key, value]) => ({\n key,\n value: { stringValue: String(value) },\n })),\n events: span.events.map(event => ({\n timeUnixNano: event.time[0] * 1e9 + event.time[1],\n name: event.name,\n attributes: Object.entries(event.attributes || {}).map(([key, value]) => ({\n key,\n value: { stringValue: String(value) },\n })),\n })),\n links: span.links.map(link => ({\n traceId: link.context.traceId,\n spanId: link.context.spanId,\n attributes: Object.entries(link.attributes || {}).map(([key, value]) => ({\n key,\n value: { stringValue: String(value) },\n })),\n })),\n status: {\n code: span.status.code,\n message: span.status.message || '',\n },\n }],\n }],\n })),\n }\n\n const encoder = new TextEncoder()\n return encoder.encode(JSON.stringify(request))\n },\n deserializeResponse: (arg: Uint8Array) => {\n const decoder = new TextDecoder()\n return JSON.parse(decoder.decode(arg)) as IExportTraceServiceResponse\n },\n}\n"]}
@@ -1,83 +0,0 @@
1
- import { ReadableSpan } from '@opentelemetry/sdk-trace-base'
2
- import {
3
- IExportTraceServiceResponse,
4
- ISerializer,
5
- } from '@opentelemetry/otlp-transformer'
6
- import {
7
- MULTIPLAYER_TRACE_DEBUG_PREFIX,
8
- MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX,
9
- } from './constants/constants.base'
10
-
11
- export const SessionRecorderJsonTraceSerializer: ISerializer<
12
- ReadableSpan[],
13
- IExportTraceServiceResponse
14
- > = {
15
- serializeRequest: (arg: ReadableSpan[]) => {
16
- const filteredArg = arg.filter(span => {
17
- const traceId = span.spanContext().traceId
18
-
19
- if (
20
- traceId.startsWith(MULTIPLAYER_TRACE_DEBUG_PREFIX)
21
- || traceId.startsWith(MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX)
22
- ) {
23
- return true
24
- }
25
-
26
- return false
27
- })
28
-
29
- // Create a simple trace service request structure
30
- const request = {
31
- resourceSpans: filteredArg.map(span => ({
32
- resource: {
33
- attributes: Object.entries(span.resource.attributes).map(([key, value]) => ({
34
- key,
35
- value: { stringValue: String(value) },
36
- })),
37
- },
38
- scopeSpans: [{
39
- spans: [{
40
- traceId: span.spanContext().traceId,
41
- spanId: span.spanContext().spanId,
42
- parentSpanId: span.spanContext().spanId, // Using spanId as fallback
43
- name: span.name,
44
- kind: span.kind,
45
- startTimeUnixNano: span.startTime[0] * 1e9 + span.startTime[1],
46
- endTimeUnixNano: span.endTime ? span.endTime[0] * 1e9 + span.endTime[1] : undefined,
47
- attributes: Object.entries(span.attributes).map(([key, value]) => ({
48
- key,
49
- value: { stringValue: String(value) },
50
- })),
51
- events: span.events.map(event => ({
52
- timeUnixNano: event.time[0] * 1e9 + event.time[1],
53
- name: event.name,
54
- attributes: Object.entries(event.attributes || {}).map(([key, value]) => ({
55
- key,
56
- value: { stringValue: String(value) },
57
- })),
58
- })),
59
- links: span.links.map(link => ({
60
- traceId: link.context.traceId,
61
- spanId: link.context.spanId,
62
- attributes: Object.entries(link.attributes || {}).map(([key, value]) => ({
63
- key,
64
- value: { stringValue: String(value) },
65
- })),
66
- })),
67
- status: {
68
- code: span.status.code,
69
- message: span.status.message || '',
70
- },
71
- }],
72
- }],
73
- })),
74
- }
75
-
76
- const encoder = new TextEncoder()
77
- return encoder.encode(JSON.stringify(request))
78
- },
79
- deserializeResponse: (arg: Uint8Array) => {
80
- const decoder = new TextDecoder()
81
- return JSON.parse(decoder.decode(arg)) as IExportTraceServiceResponse
82
- },
83
- }