@cloudcare/cocos-session-replay 0.1.0-alpha.6 → 0.1.0-alpha.7

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 (66) hide show
  1. package/README.md +51 -0
  2. package/dist/creator2/core/client.d.ts +57 -0
  3. package/dist/creator2/core/client.d.ts.map +1 -1
  4. package/dist/creator2/core/client.js +57 -0
  5. package/dist/creator2/core/client.js.map +1 -1
  6. package/dist/creator2/core/replay-diagnostics.d.ts +3 -5
  7. package/dist/creator2/core/replay-diagnostics.d.ts.map +1 -1
  8. package/dist/creator2/core/replay-diagnostics.js.map +1 -1
  9. package/dist/creator2/core/replay-encoding.d.ts +2 -0
  10. package/dist/creator2/core/replay-encoding.d.ts.map +1 -1
  11. package/dist/creator2/core/replay-encoding.js +4 -1
  12. package/dist/creator2/core/replay-encoding.js.map +1 -1
  13. package/dist/creator2/core/replay.d.ts +3 -2
  14. package/dist/creator2/core/replay.d.ts.map +1 -1
  15. package/dist/creator2/core/replay.js +53 -46
  16. package/dist/creator2/core/replay.js.map +1 -1
  17. package/dist/creator2/core/types.d.ts +5 -9
  18. package/dist/creator2/core/types.d.ts.map +1 -1
  19. package/dist/creator2/core/validation.d.ts +0 -2
  20. package/dist/creator2/core/validation.d.ts.map +1 -1
  21. package/dist/creator2/core/validation.js +1 -14
  22. package/dist/creator2/core/validation.js.map +1 -1
  23. package/dist/creator2/core/version.d.ts +1 -1
  24. package/dist/creator2/core/version.js +1 -1
  25. package/dist/creator3/core/client.d.ts +57 -0
  26. package/dist/creator3/core/client.d.ts.map +1 -1
  27. package/dist/creator3/core/client.js +57 -0
  28. package/dist/creator3/core/client.js.map +1 -1
  29. package/dist/creator3/core/replay-diagnostics.d.ts +3 -5
  30. package/dist/creator3/core/replay-diagnostics.d.ts.map +1 -1
  31. package/dist/creator3/core/replay-diagnostics.js.map +1 -1
  32. package/dist/creator3/core/replay-encoding.d.ts +2 -0
  33. package/dist/creator3/core/replay-encoding.d.ts.map +1 -1
  34. package/dist/creator3/core/replay-encoding.js +4 -1
  35. package/dist/creator3/core/replay-encoding.js.map +1 -1
  36. package/dist/creator3/core/replay.d.ts +3 -2
  37. package/dist/creator3/core/replay.d.ts.map +1 -1
  38. package/dist/creator3/core/replay.js +72 -60
  39. package/dist/creator3/core/replay.js.map +1 -1
  40. package/dist/creator3/core/types.d.ts +5 -9
  41. package/dist/creator3/core/types.d.ts.map +1 -1
  42. package/dist/creator3/core/validation.d.ts +0 -2
  43. package/dist/creator3/core/validation.d.ts.map +1 -1
  44. package/dist/creator3/core/validation.js +1 -14
  45. package/dist/creator3/core/validation.js.map +1 -1
  46. package/dist/creator3/core/version.d.ts +1 -1
  47. package/dist/creator3/core/version.js +1 -1
  48. package/dist/creator3/creator3/capture.d.ts +8 -0
  49. package/dist/creator3/creator3/capture.d.ts.map +1 -1
  50. package/dist/creator3/creator3/capture.js +171 -40
  51. package/dist/creator3/creator3/capture.js.map +1 -1
  52. package/dist/creator3/creator3/pointer.d.ts +3 -1
  53. package/dist/creator3/creator3/pointer.d.ts.map +1 -1
  54. package/dist/creator3/creator3/pointer.js +63 -8
  55. package/dist/creator3/creator3/pointer.js.map +1 -1
  56. package/native/ios/FTCocosReplayBridge.podspec +1 -1
  57. package/native-integration.json +2 -2
  58. package/package.json +2 -2
  59. package/dist/creator2/core/replay-budget.d.ts +0 -28
  60. package/dist/creator2/core/replay-budget.d.ts.map +0 -1
  61. package/dist/creator2/core/replay-budget.js +0 -126
  62. package/dist/creator2/core/replay-budget.js.map +0 -1
  63. package/dist/creator3/core/replay-budget.d.ts +0 -28
  64. package/dist/creator3/core/replay-budget.d.ts.map +0 -1
  65. package/dist/creator3/core/replay-budget.js +0 -118
  66. package/dist/creator3/core/replay-budget.js.map +0 -1
@@ -5,16 +5,12 @@ export type FTReplayPrivacyMode = 'mask' | 'hide' | 'unmask';
5
5
  export type FTReplayTouchPrivacy = 'show' | 'hide';
6
6
  /** Image quality preset used by Cocos Session Replay. */
7
7
  export type FTReplayQuality = 'low' | 'medium' | 'high';
8
- /** Image traffic controls for Cocos Session Replay. */
8
+ /** Per-image encoding controls for Cocos Session Replay. */
9
9
  export interface FTReplayImagePolicy {
10
- /** Compression, size, and traffic preset. @defaultValue `'medium'` */
10
+ /** Compression, dimension, and per-image size preset. @defaultValue `'medium'` */
11
11
  quality?: FTReplayQuality;
12
- /** Maximum encoded bytes for a normal image resource. */
12
+ /** Maximum encoded bytes for every image, including the first frame of a view. Accepts 1024 to 1048576. Requires the native V2 image encoder. */
13
13
  maxFrameBytes?: number;
14
- /** Maximum encoded image bytes retained in a rolling 60-second window. */
15
- maxBytesPerMinute?: number;
16
- /** Paces captures to the image budget and adapts quality and size as it fills. @defaultValue `true` */
17
- adaptiveCapture?: boolean;
18
14
  }
19
15
  /** Session Replay configuration for standalone Cocos applications. */
20
16
  export interface FTSessionReplayConfig {
@@ -26,7 +22,7 @@ export interface FTSessionReplayConfig {
26
22
  captureFps?: number;
27
23
  /** Maximum width or height of a captured frame. Accepts `1` to `2048`. @defaultValue `720` */
28
24
  maxImageDimension?: number;
29
- /** Image compression and rolling traffic-budget controls. */
25
+ /** Enables per-image compression and size limits. Requires the native V2 image encoder; no rolling traffic limit is applied. */
30
26
  imagePolicy?: FTReplayImagePolicy;
31
27
  /** Whether captured replays include touch positions. @defaultValue `'hide'` */
32
28
  touchPrivacy?: FTReplayTouchPrivacy;
@@ -37,7 +33,7 @@ export interface FTHybridSessionReplayConfig {
37
33
  captureFps?: number;
38
34
  /** Maximum width or height of a captured frame. Accepts `1` to `2048`. @defaultValue `720` */
39
35
  maxImageDimension?: number;
40
- /** Image compression and rolling traffic-budget controls. */
36
+ /** Enables per-image compression and size limits. Requires the native V2 image encoder; no rolling traffic limit is applied. */
41
37
  imagePolicy?: FTReplayImagePolicy;
42
38
  /** Whether captured replays include touch positions. @defaultValue `'hide'` */
43
39
  touchPrivacy?: FTReplayTouchPrivacy;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/session-replay/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAExG,yDAAyD;AACzD,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE7D,sDAAsD;AACtD,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,MAAM,CAAC;AAEnD,yDAAyD;AACzD,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAExD,uDAAuD;AACvD,MAAM,WAAW,mBAAmB;IAClC,sEAAsE;IACtE,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uGAAuG;IACvG,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,sEAAsE;AACtE,MAAM,WAAW,qBAAqB;IACpC,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wFAAwF;IACxF,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,oGAAoG;IACpG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8FAA8F;IAC9F,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,6DAA6D;IAC7D,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,+EAA+E;IAC/E,YAAY,CAAC,EAAE,oBAAoB,CAAC;CACrC;AAED,uFAAuF;AACvF,MAAM,WAAW,2BAA2B;IAC1C,oGAAoG;IACpG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8FAA8F;IAC9F,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,6DAA6D;IAC7D,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,+EAA+E;IAC/E,YAAY,CAAC,EAAE,oBAAoB,CAAC;CACrC;AAED,mEAAmE;AACnE,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,YAAY,CAAC;CAC9B;AAED,kEAAkE;AAClE,MAAM,WAAW,eAAe;IAC9B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;CAC9C;AAED,mEAAmE;AACnE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,eAAe,EAAE,CAAC;CACpC;AAED,mEAAmE;AACnE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IAAG,MAAM,CAAC,EAAE,qBAAqB,CAAC;CAAE;AAC9F,MAAM,WAAW,yBAA0B,SAAQ,mBAAmB;IAAG,MAAM,CAAC,EAAE,2BAA2B,CAAC;CAAE"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/session-replay/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAExG,yDAAyD;AACzD,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE7D,sDAAsD;AACtD,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,MAAM,CAAC;AAEnD,yDAAyD;AACzD,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAExD,4DAA4D;AAC5D,MAAM,WAAW,mBAAmB;IAClC,kFAAkF;IAClF,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,iJAAiJ;IACjJ,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,sEAAsE;AACtE,MAAM,WAAW,qBAAqB;IACpC,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wFAAwF;IACxF,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,oGAAoG;IACpG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8FAA8F;IAC9F,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gIAAgI;IAChI,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,+EAA+E;IAC/E,YAAY,CAAC,EAAE,oBAAoB,CAAC;CACrC;AAED,uFAAuF;AACvF,MAAM,WAAW,2BAA2B;IAC1C,oGAAoG;IACpG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8FAA8F;IAC9F,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gIAAgI;IAChI,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,+EAA+E;IAC/E,YAAY,CAAC,EAAE,oBAAoB,CAAC;CACrC;AAED,mEAAmE;AACnE,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,YAAY,CAAC;CAC9B;AAED,kEAAkE;AAClE,MAAM,WAAW,eAAe;IAC9B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;CAC9C;AAED,mEAAmE;AACnE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,eAAe,EAAE,CAAC;CACpC;AAED,mEAAmE;AACnE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IAAG,MAAM,CAAC,EAAE,qBAAqB,CAAC;CAAE;AAC9F,MAAM,WAAW,yBAA0B,SAAQ,mBAAmB;IAAG,MAAM,CAAC,EAAE,2BAA2B,CAAC;CAAE"}
@@ -6,8 +6,6 @@ export interface FTResolvedReplayImagePolicy {
6
6
  compressionQuality: number;
7
7
  maxImageDimension: number;
8
8
  maxFrameBytes: number;
9
- maxBytesPerMinute: number;
10
- adaptiveCapture: boolean;
11
9
  }
12
10
  export declare function replayImagePolicy(config: FTHybridSessionReplayConfig): FTResolvedReplayImagePolicy;
13
11
  //# sourceMappingURL=validation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../../src/session-replay/core/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,2BAA2B,EAC3B,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAMxF;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAM5D;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,eAAe,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;CAC1B;AAuBD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,2BAA2B,GAAG,2BAA2B,CA2BlG"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../../src/session-replay/core/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,2BAA2B,EAC3B,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAMxF;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAM5D;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,eAAe,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;CACvB;AAoBD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,2BAA2B,GAAG,2BAA2B,CAiBlG"}
@@ -18,48 +18,35 @@ const REPLAY_IMAGE_PRESETS = {
18
18
  compressionQuality: 0.35,
19
19
  maxImageDimension: 480,
20
20
  maxFrameBytes: 20 * 1024,
21
- maxBytesPerMinute: Math.round(0.6 * 1024 * 1024),
22
21
  },
23
22
  medium: {
24
23
  compressionQuality: 0.45,
25
24
  maxImageDimension: 720,
26
25
  maxFrameBytes: 40 * 1024,
27
- maxBytesPerMinute: Math.round(1.5 * 1024 * 1024),
28
26
  },
29
27
  high: {
30
28
  compressionQuality: 0.6,
31
29
  maxImageDimension: 960,
32
30
  maxFrameBytes: 80 * 1024,
33
- maxBytesPerMinute: 4 * 1024 * 1024,
34
31
  },
35
32
  };
36
33
  export function replayImagePolicy(config) {
37
- var _a, _b, _c, _d, _e;
34
+ var _a, _b, _c;
38
35
  const policy = config.imagePolicy || {};
39
36
  const quality = (_a = policy.quality) !== null && _a !== void 0 ? _a : 'medium';
40
37
  if (!(quality in REPLAY_IMAGE_PRESETS)) {
41
38
  throw new TypeError("imagePolicy.quality must be 'low', 'medium', or 'high'");
42
39
  }
43
- if (policy.adaptiveCapture !== undefined && typeof policy.adaptiveCapture !== 'boolean') {
44
- throw new TypeError('imagePolicy.adaptiveCapture must be a boolean');
45
- }
46
40
  const preset = REPLAY_IMAGE_PRESETS[quality];
47
41
  const maxImageDimension = (_b = config.maxImageDimension) !== null && _b !== void 0 ? _b : preset.maxImageDimension;
48
42
  integerInRange(maxImageDimension, 1, 2048, 'maxImageDimension');
49
43
  const maxFrameBytes = (_c = policy.maxFrameBytes) !== null && _c !== void 0 ? _c : preset.maxFrameBytes;
50
44
  integerInRange(maxFrameBytes, 1024, 1024 * 1024, 'imagePolicy.maxFrameBytes');
51
- const maxBytesPerMinute = (_d = policy.maxBytesPerMinute) !== null && _d !== void 0 ? _d : preset.maxBytesPerMinute;
52
- integerInRange(maxBytesPerMinute, 16 * 1024, 64 * 1024 * 1024, 'imagePolicy.maxBytesPerMinute');
53
- if (maxFrameBytes > maxBytesPerMinute) {
54
- throw new RangeError('imagePolicy.maxFrameBytes must not exceed maxBytesPerMinute');
55
- }
56
45
  return {
57
46
  quality,
58
47
  compressionQuality: preset.compressionQuality,
59
48
  maxImageDimension,
60
49
  maxFrameBytes,
61
- maxBytesPerMinute,
62
- adaptiveCapture: (_e = policy.adaptiveCapture) !== null && _e !== void 0 ? _e : true,
63
50
  };
64
51
  }
65
52
  function integerInRange(value, minimum, maximum, name) {
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../../../src/session-replay/core/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../../../src/session-replay/core/validation.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,YAAY,CAAC,KAAyB,EAAE,IAAY;IAClE,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,UAAU,CAAC,GAAG,IAAI,0BAA0B,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAyB;IAClD,MAAM,GAAG,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC5C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,UAAU,CAAC,+CAA+C,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AASD,MAAM,oBAAoB,GAA0E;IAClG,GAAG,EAAE;QACH,kBAAkB,EAAE,IAAI;QACxB,iBAAiB,EAAE,GAAG;QACtB,aAAa,EAAE,EAAE,GAAG,IAAI;KACzB;IACD,MAAM,EAAE;QACN,kBAAkB,EAAE,IAAI;QACxB,iBAAiB,EAAE,GAAG;QACtB,aAAa,EAAE,EAAE,GAAG,IAAI;KACzB;IACD,IAAI,EAAE;QACJ,kBAAkB,EAAE,GAAG;QACvB,iBAAiB,EAAE,GAAG;QACtB,aAAa,EAAE,EAAE,GAAG,IAAI;KACzB;CACF,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAAC,MAAmC;;IACnE,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,MAAA,MAAM,CAAC,OAAO,mCAAI,QAAQ,CAAC;IAC3C,IAAI,CAAC,CAAC,OAAO,IAAI,oBAAoB,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,SAAS,CAAC,wDAAwD,CAAC,CAAC;IAChF,CAAC;IACD,MAAM,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,iBAAiB,GAAG,MAAA,MAAM,CAAC,iBAAiB,mCAAI,MAAM,CAAC,iBAAiB,CAAC;IAC/E,cAAc,CAAC,iBAAiB,EAAE,CAAC,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC;IAChE,MAAM,aAAa,GAAG,MAAA,MAAM,CAAC,aAAa,mCAAI,MAAM,CAAC,aAAa,CAAC;IACnE,cAAc,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,2BAA2B,CAAC,CAAC;IAC9E,OAAO;QACL,OAAO;QACP,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;QAC7C,iBAAiB;QACjB,aAAa;KACd,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,KAAa,EAAE,OAAe,EAAE,OAAe,EAAE,IAAY;IACnF,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,OAAO,IAAI,KAAK,GAAG,OAAO,EAAE,CAAC;QACnE,MAAM,IAAI,UAAU,CAAC,GAAG,IAAI,+BAA+B,OAAO,QAAQ,OAAO,EAAE,CAAC,CAAC;IACvF,CAAC;AACH,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare const FT_COCOS_REPLAY_VERSION = "0.1.0-alpha.6";
1
+ export declare const FT_COCOS_REPLAY_VERSION = "0.1.0-alpha.7";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,2 +1,2 @@
1
- export const FT_COCOS_REPLAY_VERSION = '0.1.0-alpha.6';
1
+ export const FT_COCOS_REPLAY_VERSION = '0.1.0-alpha.7';
2
2
  //# sourceMappingURL=version.js.map
@@ -3,6 +3,9 @@ import type { FTCapturedFrame, FTReplayPrivacyMode, FTStoredFrame } from '../cor
3
3
  export declare class FTCreator3CanvasCapture implements FTCanvasCapture {
4
4
  private camera;
5
5
  private privacy;
6
+ private resources;
7
+ private cancelDraw;
8
+ private capturing;
6
9
  setCamera(camera: unknown): void;
7
10
  setPrivacy(node: unknown, mode: FTReplayPrivacyMode): void;
8
11
  getViewportSize(): {
@@ -10,6 +13,11 @@ export declare class FTCreator3CanvasCapture implements FTCanvasCapture {
10
13
  height: number;
11
14
  } | undefined;
12
15
  capture(maxImageDimension: number): Promise<FTCapturedFrame | undefined>;
16
+ /** Releases reusable GPU resources and settles a capture even if drawing stops. */
17
+ dispose(): void;
18
+ private prepareResources;
19
+ private isCurrent;
20
+ private completeDrawCycle;
13
21
  persist(frame: FTCapturedFrame, fingerprint?: string): Promise<FTStoredFrame>;
14
22
  disposeStoredFrame(frame: FTStoredFrame): Promise<void>;
15
23
  private collectPrivacyRegions;
@@ -1 +1 @@
1
- {"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../../../../../src/session-replay/creator3/capture.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAmB,mBAAmB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAO7G,qBAAa,uBAAwB,YAAW,eAAe;IAC7D,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,OAAO,CAA2C;IAE1D,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAIhC,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,GAAG,IAAI;IAK1D,eAAe,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS;IAK1D,OAAO,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAqCxE,OAAO,CAAC,KAAK,EAAE,eAAe,EAAE,WAAW,SAA+B,GAAG,OAAO,CAAC,aAAa,CAAC;IAIzG,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD,OAAO,CAAC,qBAAqB;CA6B9B"}
1
+ {"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../../../../../src/session-replay/creator3/capture.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAmB,mBAAmB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAoB7G,qBAAa,uBAAwB,YAAW,eAAe;IAC7D,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,OAAO,CAA2C;IAC1D,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,SAAS,CAAS;IAE1B,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAMhC,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,GAAG,IAAI;IAK1D,eAAe,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS;IAK1D,OAAO,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAwC9E,mFAAmF;IACnF,OAAO,IAAI,IAAI;IAgBf,OAAO,CAAC,gBAAgB;IAkDxB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,iBAAiB;IA2BnB,OAAO,CAAC,KAAK,EAAE,eAAe,EAAE,WAAW,SAA+B,GAAG,OAAO,CAAC,aAAa,CAAC;IAIzG,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD,OAAO,CAAC,qBAAqB;CA8B9B"}
@@ -1,14 +1,19 @@
1
- import { Camera, Director, EditBox, RenderTexture, UITransform, Vec3, director, native, sys, view } from 'cc';
1
+ import { Camera, Director, EditBox, Node, RenderTexture, UITransform, Vec3, director, isValid, native, sys, view } from 'cc';
2
2
  import { frameFingerprint } from '../core/replay.js';
3
3
  import { persistReplayFrame, disposeReplayFrame } from '../core/replay-file.js';
4
4
  import { projectPrivacyBounds } from '../core/replay-privacy.js';
5
5
  import { collectReplayPrivacyNodes } from '../core/replay-privacy-nodes.js';
6
6
  import { waitForRenderTextureReadback } from './replay-render-cycle.js';
7
+ const CAPTURE_CANCELLED = Symbol('Replay capture cancelled');
7
8
  export class FTCreator3CanvasCapture {
8
9
  constructor() {
9
10
  this.privacy = new Map();
11
+ this.capturing = false;
10
12
  }
11
13
  setCamera(camera) {
14
+ if (camera === this.camera)
15
+ return;
16
+ this.dispose();
12
17
  this.camera = camera;
13
18
  }
14
19
  setPrivacy(node, mode) {
@@ -23,47 +28,166 @@ export class FTCreator3CanvasCapture {
23
28
  return visible ? { width: visible.width, height: visible.height } : undefined;
24
29
  }
25
30
  async capture(maxImageDimension) {
26
- var _a, _b;
27
- const camera = this.camera || ((_a = director.getScene()) === null || _a === void 0 ? void 0 : _a.getComponentInChildren(Camera));
28
- if (!camera)
31
+ var _a;
32
+ if (this.capturing)
33
+ return undefined;
34
+ const scene = director.getScene();
35
+ const camera = this.camera || (scene === null || scene === void 0 ? void 0 : scene.getComponentsInChildren(Camera).find((candidate) => { var _a; return candidate !== ((_a = this.resources) === null || _a === void 0 ? void 0 : _a.camera) && isValid(candidate, true) && candidate.enabledInHierarchy; }));
36
+ if (!camera || !isValid(camera, true) || !camera.enabledInHierarchy || camera.node.scene !== scene) {
37
+ this.dispose();
29
38
  return undefined;
39
+ }
30
40
  const visible = this.getViewportSize();
31
41
  if (!visible)
32
42
  return undefined;
33
43
  const scale = Math.min(1, maxImageDimension / Math.max(visible.width, visible.height));
34
44
  const width = Math.max(1, Math.round(visible.width * scale));
35
45
  const height = Math.max(1, Math.round(visible.height * scale));
46
+ this.capturing = true;
47
+ let resources;
48
+ try {
49
+ resources = this.prepareResources(camera, scene, width, height);
50
+ const target = resources;
51
+ await waitForRenderTextureReadback(() => this.completeDrawCycle(target));
52
+ if (!this.isCurrent(target))
53
+ throw CAPTURE_CANCELLED;
54
+ // Creator 3.8 native JSB allocates the result and ignores the optional
55
+ // caller buffer. Do not allocate another full-size buffer alongside it.
56
+ const pixels = target.texture.readPixels(0, 0, width, height);
57
+ if (!pixels)
58
+ return undefined;
59
+ // Project through the offscreen camera, whose viewport matches the image.
60
+ const privacyRegions = this.collectPrivacyRegions(target.camera, width, height);
61
+ // Metal returns top-down pixels on iOS. Other native targets need row reversal.
62
+ if (sys.os !== ((_a = sys.OS) === null || _a === void 0 ? void 0 : _a.IOS))
63
+ flipRows(pixels, width, height, target.row);
64
+ return { rgba: pixels, width, height, timestamp: Date.now(), privacyRegions };
65
+ }
66
+ catch (error) {
67
+ this.dispose();
68
+ if (error === CAPTURE_CANCELLED)
69
+ return undefined;
70
+ throw error;
71
+ }
72
+ finally {
73
+ if (resources && isValid(resources.camera, true))
74
+ resources.camera.enabled = false;
75
+ this.capturing = false;
76
+ }
77
+ }
78
+ /** Releases reusable GPU resources and settles a capture even if drawing stops. */
79
+ dispose() {
80
+ var _a;
81
+ (_a = this.cancelDraw) === null || _a === void 0 ? void 0 : _a.call(this);
82
+ const target = this.resources;
83
+ this.resources = undefined;
84
+ if (!target)
85
+ return;
86
+ if (isValid(target.camera, true)) {
87
+ target.camera.enabled = false;
88
+ target.camera.targetTexture = null;
89
+ }
90
+ if (isValid(target.node, true)) {
91
+ target.node.active = false;
92
+ target.node.destroy();
93
+ }
94
+ target.texture.destroy();
95
+ }
96
+ prepareResources(source, scene, width, height) {
97
+ var _a;
98
+ const current = this.resources;
99
+ // A camera that preserves its framebuffer must not accumulate previous
100
+ // replay snapshots in a reused target (for example, moving overlay UI).
101
+ const clearsTarget = (source.clearFlags & Camera.ClearFlag.SOLID_COLOR) === Camera.ClearFlag.SOLID_COLOR;
102
+ if (current && this.isCurrent(current) && current.source === source
103
+ && current.width === width && current.height === height) {
104
+ // Native GLES3 repeated readback of one target can read the screen FBO
105
+ // instead. Keep the isolated camera, but use a fresh target outside iOS;
106
+ // Metal reuse is covered by native screenshot regression checks.
107
+ if (sys.os !== ((_a = sys.OS) === null || _a === void 0 ? void 0 : _a.IOS) || !clearsTarget || !sameViewport(source.rect, current.camera.rect)) {
108
+ const texture = new RenderTexture();
109
+ try {
110
+ texture.reset({ width, height });
111
+ current.camera.targetTexture = texture;
112
+ }
113
+ catch (error) {
114
+ texture.destroy();
115
+ throw error;
116
+ }
117
+ current.texture.destroy();
118
+ current.texture = texture;
119
+ }
120
+ return current;
121
+ }
122
+ this.dispose();
36
123
  const texture = new RenderTexture();
37
- texture.reset({ width, height });
38
- const previous = camera.targetTexture;
39
- let pixels;
40
- let privacyRegions = [];
124
+ const node = new Node('FTSessionReplayCamera');
41
125
  try {
126
+ texture.reset({ width, height });
127
+ // Create disabled and attach only after assigning the offscreen target.
128
+ // An identity child follows the source pose without touching Canvas or
129
+ // changing the business camera's target, projection, or resize listeners.
130
+ node.active = false;
131
+ const camera = node.addComponent(Camera);
132
+ camera.enabled = false;
42
133
  camera.targetTexture = texture;
43
- await waitForRenderTextureReadback(completeDrawCycle);
44
- pixels = texture.readPixels(0, 0, width, height);
45
- // worldToScreen uses the active render target dimensions. Keep the
46
- // capture target attached so projection and pixels share one viewport.
47
- if (pixels)
48
- privacyRegions = this.collectPrivacyRegions(camera, width, height);
134
+ node.parent = source.node;
135
+ node.active = true;
136
+ this.resources = {
137
+ source, scene, node, camera, texture, width, height,
138
+ row: new Uint8Array(width * 4),
139
+ };
140
+ return this.resources;
49
141
  }
50
- finally {
51
- camera.targetTexture = previous;
142
+ catch (error) {
143
+ node.destroy();
52
144
  texture.destroy();
145
+ throw error;
53
146
  }
54
- if (!pixels)
55
- return undefined;
56
- // Metal returns top-down pixels on iOS. OpenGL/Vulkan-backed native
57
- // targets use a bottom-left origin and need row reversal for PNG output.
58
- if (sys.os !== ((_b = sys.OS) === null || _b === void 0 ? void 0 : _b.IOS))
59
- flipRows(pixels, width, height);
60
- return {
61
- rgba: pixels,
62
- width,
63
- height,
64
- timestamp: Date.now(),
65
- privacyRegions,
66
- };
147
+ }
148
+ isCurrent(target) {
149
+ return this.resources === target && director.getScene() === target.scene
150
+ && isValid(target.source, true) && isValid(target.camera, true)
151
+ && isValid(target.node, true) && target.source.enabledInHierarchy
152
+ && target.source.node.scene === target.scene;
153
+ }
154
+ completeDrawCycle(target) {
155
+ return new Promise((resolve, reject) => {
156
+ const finish = (error) => {
157
+ director.off(Director.EVENT_BEFORE_DRAW, before);
158
+ director.off(Director.EVENT_AFTER_DRAW, after);
159
+ if (this.cancelDraw === cancel)
160
+ this.cancelDraw = undefined;
161
+ if (error !== undefined)
162
+ reject(error);
163
+ else
164
+ resolve();
165
+ };
166
+ const cancel = () => finish(CAPTURE_CANCELLED);
167
+ const after = () => finish();
168
+ const before = () => {
169
+ try {
170
+ if (!this.isCurrent(target)) {
171
+ cancel();
172
+ return;
173
+ }
174
+ syncCamera(target.source, target.camera);
175
+ target.camera.enabled = true;
176
+ director.once(Director.EVENT_AFTER_DRAW, after);
177
+ }
178
+ catch (error) {
179
+ finish(error);
180
+ }
181
+ };
182
+ if (!this.isCurrent(target)) {
183
+ cancel();
184
+ return;
185
+ }
186
+ this.cancelDraw = cancel;
187
+ // Synchronize inside BEFORE_DRAW, before the render graph is prepared,
188
+ // so camera movement and projection changes match this rendered frame.
189
+ director.once(Director.EVENT_BEFORE_DRAW, before);
190
+ });
67
191
  }
68
192
  async persist(frame, fingerprint = frameFingerprint(frame.rgba)) {
69
193
  return persistReplayFrame(frame, fingerprint, native.fileUtils.getWritablePath());
@@ -73,7 +197,9 @@ export class FTCreator3CanvasCapture {
73
197
  }
74
198
  collectPrivacyRegions(camera, width, height) {
75
199
  const scene = director.getScene();
76
- const nodes = collectReplayPrivacyNodes(this.privacy, (scene === null || scene === void 0 ? void 0 : scene.getComponentsInChildren('ReplayPrivacy')) || [], (scene === null || scene === void 0 ? void 0 : scene.getComponentsInChildren(EditBox)) || []);
200
+ const nodes = collectReplayPrivacyNodes(this.privacy,
201
+ // The engine's string lookup cannot express the editor script's custom getter.
202
+ ((scene === null || scene === void 0 ? void 0 : scene.getComponentsInChildren('ReplayPrivacy')) || []), (scene === null || scene === void 0 ? void 0 : scene.getComponentsInChildren(EditBox)) || []);
77
203
  const regions = [];
78
204
  nodes.forEach((mode, node) => {
79
205
  var _a, _b, _c, _d;
@@ -89,18 +215,23 @@ export class FTCreator3CanvasCapture {
89
215
  return regions;
90
216
  }
91
217
  }
92
- async function completeDrawCycle() {
93
- // capture() may run after the current frame's render graph has already been
94
- // prepared. Waiting only for EVENT_AFTER_DRAW can then read the newly bound
95
- // RenderTexture before the camera has rendered into it, producing a black
96
- // FullSnapshot at a Native -> Cocos boundary. Start at the next draw boundary
97
- // so the target texture is guaranteed to participate in a complete frame.
98
- await new Promise((resolve) => director.once(Director.EVENT_BEFORE_DRAW, resolve));
99
- await new Promise((resolve) => director.once(Director.EVENT_AFTER_DRAW, resolve));
218
+ function syncCamera(source, target) {
219
+ // Set fovAxis before fov: Creator adjusts fov when the axis changes.
220
+ for (const key of [
221
+ 'projection', 'fovAxis', 'fov', 'orthoHeight', 'near', 'far',
222
+ 'visibility', 'priority', 'clearFlags', 'clearColor', 'clearDepth', 'clearStencil',
223
+ 'aperture', 'shutter', 'iso', 'usePostProcess', 'postProcess',
224
+ ]) {
225
+ if (source[key] !== undefined)
226
+ target[key] = source[key];
227
+ }
228
+ target.rect = source.rect.clone();
229
+ }
230
+ function sameViewport(left, right) {
231
+ return left.x === right.x && left.y === right.y && left.width === right.width && left.height === right.height;
100
232
  }
101
- function flipRows(bytes, width, height) {
233
+ function flipRows(bytes, width, height, swap) {
102
234
  const rowSize = width * 4;
103
- const swap = new Uint8Array(rowSize);
104
235
  for (let top = 0, bottom = height - 1; top < bottom; top += 1, bottom -= 1) {
105
236
  const topOffset = top * rowSize;
106
237
  const bottomOffset = bottom * rowSize;
@@ -1 +1 @@
1
- {"version":3,"file":"capture.js","sourceRoot":"","sources":["../../../../../src/session-replay/creator3/capture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capture.js","sourceRoot":"","sources":["../../../../../src/session-replay/creator3/capture.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  import type { FTReplayPointerEvent, FTReplayPointerSource } from '../core/replay.js';
2
+ type PointerCallback = (event: FTReplayPointerEvent) => void;
2
3
  export declare class FTCreator3PointerSource implements FTReplayPointerSource {
3
- onReplayPointer(callback: (event: FTReplayPointerEvent) => void): () => void;
4
+ onReplayPointer(callback: PointerCallback): () => void;
4
5
  }
6
+ export {};
5
7
  //# sourceMappingURL=pointer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pointer.d.ts","sourceRoot":"","sources":["../../../../../src/session-replay/creator3/pointer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAErF,qBAAa,uBAAwB,YAAW,qBAAqB;IACnE,eAAe,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,GAAG,MAAM,IAAI;CAY7E"}
1
+ {"version":3,"file":"pointer.d.ts","sourceRoot":"","sources":["../../../../../src/session-replay/creator3/pointer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAErF,KAAK,eAAe,GAAG,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;AAM7D,qBAAa,uBAAwB,YAAW,qBAAqB;IACnE,eAAe,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,IAAI;CAkDvD"}
@@ -1,18 +1,73 @@
1
1
  import { Input, input, view } from 'cc';
2
+ // Creator has no dispatcher removal API. Install one passive observer per input
3
+ // instance and release all recording callbacks when replay stops.
4
+ const observers = new WeakMap();
2
5
  export class FTCreator3PointerSource {
3
6
  onReplayPointer(callback) {
4
- const onStart = (event) => callback(replayPointer(event, 'down'));
5
- const onEnd = (event) => callback(replayPointer(event, 'up'));
6
- input.on(Input.EventType.TOUCH_START, onStart);
7
- input.on(Input.EventType.TOUCH_END, onEnd);
8
- input.on(Input.EventType.TOUCH_CANCEL, onEnd);
7
+ const engineInput = input;
8
+ if (typeof engineInput._registerEventDispatcher === 'function') {
9
+ let callbacks = observers.get(engineInput);
10
+ if (!callbacks) {
11
+ callbacks = new Set();
12
+ const active = callbacks;
13
+ // This engine-internal hook is also used by Creator's UI dispatcher.
14
+ // Observe before UI consumption without adding hit-testable nodes,
15
+ // changing event flags, or interfering with the business input chain.
16
+ engineInput._registerEventDispatcher({
17
+ priority: Number.MAX_SAFE_INTEGER,
18
+ dispatchEvent(event) {
19
+ if (active.size > 0) {
20
+ const eventType = pointerType(event.type);
21
+ if (eventType) {
22
+ for (const listener of active)
23
+ deliverPointer(listener, event, eventType);
24
+ }
25
+ }
26
+ return true;
27
+ },
28
+ onThrowException() { },
29
+ });
30
+ observers.set(engineInput, callbacks);
31
+ }
32
+ callbacks.add(callback);
33
+ return () => { callbacks.delete(callback); };
34
+ }
35
+ // Older engines without the dispatcher hook retain global input tracking.
36
+ const listeners = [
37
+ [Input.EventType.TOUCH_START, 'down'],
38
+ [Input.EventType.TOUCH_MOVE, 'move'],
39
+ [Input.EventType.TOUCH_END, 'up'],
40
+ [Input.EventType.TOUCH_CANCEL, 'up'],
41
+ ].map(([type, eventType]) => ({
42
+ type,
43
+ handler: (event) => deliverPointer(callback, event, eventType),
44
+ }));
45
+ for (const { type, handler } of listeners)
46
+ input.on(type, handler);
9
47
  return () => {
10
- input.off(Input.EventType.TOUCH_START, onStart);
11
- input.off(Input.EventType.TOUCH_END, onEnd);
12
- input.off(Input.EventType.TOUCH_CANCEL, onEnd);
48
+ for (const { type, handler } of listeners)
49
+ input.off(type, handler);
13
50
  };
14
51
  }
15
52
  }
53
+ function pointerType(type) {
54
+ if (type === Input.EventType.TOUCH_START)
55
+ return 'down';
56
+ if (type === Input.EventType.TOUCH_MOVE)
57
+ return 'move';
58
+ if (type === Input.EventType.TOUCH_END || type === Input.EventType.TOUCH_CANCEL)
59
+ return 'up';
60
+ return undefined;
61
+ }
62
+ function deliverPointer(callback, event, eventType) {
63
+ try {
64
+ callback(replayPointer(event, eventType));
65
+ }
66
+ catch (error) {
67
+ // A replay failure must never abort Creator's remaining input dispatchers.
68
+ console.error('[cocos-sdk] Session Replay pointer dropped:', error);
69
+ }
70
+ }
16
71
  function replayPointer(event, eventType) {
17
72
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
18
73
  const location = ((_a = event.getUILocation) === null || _a === void 0 ? void 0 : _a.call(event)) || ((_b = event.getLocation) === null || _b === void 0 ? void 0 : _b.call(event)) || { x: 0, y: 0 };
@@ -1 +1 @@
1
- {"version":3,"file":"pointer.js","sourceRoot":"","sources":["../../../../../src/session-replay/creator3/pointer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAGxC,MAAM,OAAO,uBAAuB;IAClC,eAAe,CAAC,QAA+C;QAC7D,MAAM,OAAO,GAAG,CAAC,KAAU,EAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QAC7E,MAAM,KAAK,GAAG,CAAC,KAAU,EAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QACzE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC/C,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC3C,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAC9C,OAAO,GAAG,EAAE;YACV,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAChD,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC5C,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC,CAAC;IACJ,CAAC;CACF;AAED,SAAS,aAAa,CAAC,KAAU,EAAE,SAAwB;;IACzD,MAAM,QAAQ,GAAG,CAAA,MAAA,KAAK,CAAC,aAAa,qDAAI,MAAI,MAAA,KAAK,CAAC,WAAW,qDAAI,CAAA,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACpF,MAAM,IAAI,GAAG,CAAA,MAAA,IAAI,CAAC,cAAc,oDAAI,KAAI,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IAChE,MAAM,MAAM,GAAG,CAAA,MAAA,IAAI,CAAC,gBAAgB,oDAAI,KAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IAC3D,OAAO;QACL,SAAS;QACT,SAAS,EAAE,MAAA,MAAA,MAAA,KAAK,CAAC,KAAK,qDAAI,mCAAI,MAAA,MAAA,KAAK,CAAC,KAAK,0CAAE,KAAK,kDAAI,mCAAI,CAAC;QACzD,WAAW,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACtE,WAAW,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"pointer.js","sourceRoot":"","sources":["../../../../../src/session-replay/creator3/pointer.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  Pod::Spec.new do |s|
2
2
  s.name = 'FTCocosReplayBridge'
3
- s.version = '0.1.0-alpha.6'
3
+ s.version = '0.1.0-alpha.7'
4
4
  s.summary = 'CloudCare Mobile SDK native bridge for Cocos Creator.'
5
5
  s.homepage = 'https://github.com/GuanceCloud/datakit-cocos'
6
6
  s.license = { :type => 'Apache-2.0' }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "name": "@cloudcare/cocos-session-replay",
4
- "version": "0.1.0-alpha.6",
5
- "baseVersion": "0.1.0-alpha.6",
4
+ "version": "0.1.0-alpha.7",
5
+ "baseVersion": "0.1.0-alpha.7",
6
6
  "iosSdkVersion": "1.6.8-alpha.5",
7
7
  "androidReplay": "com.cloudcare.ft.mobile.sdk.tracker.agent:ft-session-replay:0.1.9-alpha03",
8
8
  "androidFragment": "androidx.fragment:fragment:1.8.0"