@truewatchtech/cocos-sdk 0.1.0-alpha.3
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.
- package/LICENSE +202 -0
- package/README.md +51 -0
- package/THIRD_PARTY_NOTICES +5 -0
- package/bin/cli.cjs +130 -0
- package/creator2/package.json +4 -0
- package/creator3/package.json +5 -0
- package/dist/creator2/core/auto-tracking.d.ts +35 -0
- package/dist/creator2/core/auto-tracking.d.ts.map +1 -0
- package/dist/creator2/core/auto-tracking.js +337 -0
- package/dist/creator2/core/auto-tracking.js.map +1 -0
- package/dist/creator2/core/client.d.ts +74 -0
- package/dist/creator2/core/client.d.ts.map +1 -0
- package/dist/creator2/core/client.js +176 -0
- package/dist/creator2/core/client.js.map +1 -0
- package/dist/creator2/core/index.d.ts +3 -0
- package/dist/creator2/core/index.d.ts.map +1 -0
- package/dist/creator2/core/index.js +6 -0
- package/dist/creator2/core/index.js.map +1 -0
- package/dist/creator2/core/modules.d.ts +159 -0
- package/dist/creator2/core/modules.d.ts.map +1 -0
- package/dist/creator2/core/modules.js +319 -0
- package/dist/creator2/core/modules.js.map +1 -0
- package/dist/creator2/core/replay-budget.d.ts +28 -0
- package/dist/creator2/core/replay-budget.d.ts.map +1 -0
- package/dist/creator2/core/replay-budget.js +113 -0
- package/dist/creator2/core/replay-budget.js.map +1 -0
- package/dist/creator2/core/replay-diagnostics.d.ts +36 -0
- package/dist/creator2/core/replay-diagnostics.d.ts.map +1 -0
- package/dist/creator2/core/replay-diagnostics.js +40 -0
- package/dist/creator2/core/replay-diagnostics.js.map +1 -0
- package/dist/creator2/core/replay-encoding.d.ts +31 -0
- package/dist/creator2/core/replay-encoding.d.ts.map +1 -0
- package/dist/creator2/core/replay-encoding.js +63 -0
- package/dist/creator2/core/replay-encoding.js.map +1 -0
- package/dist/creator2/core/replay-pixels.d.ts +3 -0
- package/dist/creator2/core/replay-pixels.d.ts.map +1 -0
- package/dist/creator2/core/replay-pixels.js +16 -0
- package/dist/creator2/core/replay-pixels.js.map +1 -0
- package/dist/creator2/core/replay-privacy.d.ts +15 -0
- package/dist/creator2/core/replay-privacy.d.ts.map +1 -0
- package/dist/creator2/core/replay-privacy.js +36 -0
- package/dist/creator2/core/replay-privacy.js.map +1 -0
- package/dist/creator2/core/replay.d.ts +97 -0
- package/dist/creator2/core/replay.d.ts.map +1 -0
- package/dist/creator2/core/replay.js +578 -0
- package/dist/creator2/core/replay.js.map +1 -0
- package/dist/creator2/core/transport.d.ts +16 -0
- package/dist/creator2/core/transport.d.ts.map +1 -0
- package/dist/creator2/core/transport.js +33 -0
- package/dist/creator2/core/transport.js.map +1 -0
- package/dist/creator2/core/types.d.ts +260 -0
- package/dist/creator2/core/types.d.ts.map +1 -0
- package/dist/creator2/core/types.js +3 -0
- package/dist/creator2/core/types.js.map +1 -0
- package/dist/creator2/core/validation.d.ts +14 -0
- package/dist/creator2/core/validation.d.ts.map +1 -0
- package/dist/creator2/core/validation.js +81 -0
- package/dist/creator2/core/validation.js.map +1 -0
- package/dist/creator2/core/version.d.ts +9 -0
- package/dist/creator2/core/version.d.ts.map +1 -0
- package/dist/creator2/core/version.js +14 -0
- package/dist/creator2/core/version.js.map +1 -0
- package/dist/creator2/creator2/auto.d.ts +9 -0
- package/dist/creator2/creator2/auto.d.ts.map +1 -0
- package/dist/creator2/creator2/auto.js +65 -0
- package/dist/creator2/creator2/auto.js.map +1 -0
- package/dist/creator2/creator2/capture.d.ts +17 -0
- package/dist/creator2/creator2/capture.d.ts.map +1 -0
- package/dist/creator2/creator2/capture.js +175 -0
- package/dist/creator2/creator2/capture.js.map +1 -0
- package/dist/creator2/creator2/index.d.ts +12 -0
- package/dist/creator2/creator2/index.d.ts.map +1 -0
- package/dist/creator2/creator2/index.js +41 -0
- package/dist/creator2/creator2/index.js.map +1 -0
- package/dist/creator2/creator2/transport.d.ts +7 -0
- package/dist/creator2/creator2/transport.d.ts.map +1 -0
- package/dist/creator2/creator2/transport.js +34 -0
- package/dist/creator2/creator2/transport.js.map +1 -0
- package/dist/creator3/core/auto-tracking.d.ts +35 -0
- package/dist/creator3/core/auto-tracking.d.ts.map +1 -0
- package/dist/creator3/core/auto-tracking.js +247 -0
- package/dist/creator3/core/auto-tracking.js.map +1 -0
- package/dist/creator3/core/client.d.ts +74 -0
- package/dist/creator3/core/client.d.ts.map +1 -0
- package/dist/creator3/core/client.js +158 -0
- package/dist/creator3/core/client.js.map +1 -0
- package/dist/creator3/core/index.d.ts +3 -0
- package/dist/creator3/core/index.d.ts.map +1 -0
- package/dist/creator3/core/index.js +2 -0
- package/dist/creator3/core/index.js.map +1 -0
- package/dist/creator3/core/modules.d.ts +159 -0
- package/dist/creator3/core/modules.d.ts.map +1 -0
- package/dist/creator3/core/modules.js +293 -0
- package/dist/creator3/core/modules.js.map +1 -0
- package/dist/creator3/core/replay-budget.d.ts +28 -0
- package/dist/creator3/core/replay-budget.d.ts.map +1 -0
- package/dist/creator3/core/replay-budget.js +105 -0
- package/dist/creator3/core/replay-budget.js.map +1 -0
- package/dist/creator3/core/replay-diagnostics.d.ts +36 -0
- package/dist/creator3/core/replay-diagnostics.d.ts.map +1 -0
- package/dist/creator3/core/replay-diagnostics.js +36 -0
- package/dist/creator3/core/replay-diagnostics.js.map +1 -0
- package/dist/creator3/core/replay-encoding.d.ts +31 -0
- package/dist/creator3/core/replay-encoding.d.ts.map +1 -0
- package/dist/creator3/core/replay-encoding.js +62 -0
- package/dist/creator3/core/replay-encoding.js.map +1 -0
- package/dist/creator3/core/replay-pixels.d.ts +3 -0
- package/dist/creator3/core/replay-pixels.d.ts.map +1 -0
- package/dist/creator3/core/replay-pixels.js +13 -0
- package/dist/creator3/core/replay-pixels.js.map +1 -0
- package/dist/creator3/core/replay-privacy.d.ts +15 -0
- package/dist/creator3/core/replay-privacy.d.ts.map +1 -0
- package/dist/creator3/core/replay-privacy.js +33 -0
- package/dist/creator3/core/replay-privacy.js.map +1 -0
- package/dist/creator3/core/replay.d.ts +97 -0
- package/dist/creator3/core/replay.d.ts.map +1 -0
- package/dist/creator3/core/replay.js +520 -0
- package/dist/creator3/core/replay.js.map +1 -0
- package/dist/creator3/core/transport.d.ts +16 -0
- package/dist/creator3/core/transport.d.ts.map +1 -0
- package/dist/creator3/core/transport.js +27 -0
- package/dist/creator3/core/transport.js.map +1 -0
- package/dist/creator3/core/types.d.ts +260 -0
- package/dist/creator3/core/types.d.ts.map +1 -0
- package/dist/creator3/core/types.js +2 -0
- package/dist/creator3/core/types.js.map +1 -0
- package/dist/creator3/core/validation.d.ts +14 -0
- package/dist/creator3/core/validation.d.ts.map +1 -0
- package/dist/creator3/core/validation.js +75 -0
- package/dist/creator3/core/validation.js.map +1 -0
- package/dist/creator3/core/version.d.ts +9 -0
- package/dist/creator3/core/version.d.ts.map +1 -0
- package/dist/creator3/core/version.js +11 -0
- package/dist/creator3/core/version.js.map +1 -0
- package/dist/creator3/creator3/auto.d.ts +9 -0
- package/dist/creator3/creator3/auto.d.ts.map +1 -0
- package/dist/creator3/creator3/auto.js +73 -0
- package/dist/creator3/creator3/auto.js.map +1 -0
- package/dist/creator3/creator3/capture.d.ts +17 -0
- package/dist/creator3/creator3/capture.d.ts.map +1 -0
- package/dist/creator3/creator3/capture.js +119 -0
- package/dist/creator3/creator3/capture.js.map +1 -0
- package/dist/creator3/creator3/index.d.ts +12 -0
- package/dist/creator3/creator3/index.d.ts.map +1 -0
- package/dist/creator3/creator3/index.js +23 -0
- package/dist/creator3/creator3/index.js.map +1 -0
- package/dist/creator3/creator3/replay-render-cycle.d.ts +9 -0
- package/dist/creator3/creator3/replay-render-cycle.d.ts.map +1 -0
- package/dist/creator3/creator3/replay-render-cycle.js +12 -0
- package/dist/creator3/creator3/replay-render-cycle.js.map +1 -0
- package/dist/creator3/creator3/transport.d.ts +8 -0
- package/dist/creator3/creator3/transport.d.ts.map +1 -0
- package/dist/creator3/creator3/transport.js +24 -0
- package/dist/creator3/creator3/transport.js.map +1 -0
- package/dist/creator3/package.json +1 -0
- package/extensions/creator2/install-native.cjs +333 -0
- package/extensions/creator2/main.js +23 -0
- package/extensions/creator2/package.json +6 -0
- package/extensions/creator3/dist/builder.js +9 -0
- package/extensions/creator3/dist/hooks.js +70 -0
- package/extensions/creator3/dist/main.js +4 -0
- package/extensions/creator3/install-native.cjs +333 -0
- package/extensions/creator3/package.json +10 -0
- package/native/android/src/main/java/com/ft/sdk/cocos/FTCocosBridge.java +532 -0
- package/native/android/src/main/java/com/ft/sdk/cocos/FTCocosBridgeProvider.java +70 -0
- package/native/ios/FTCocosBridge.h +10 -0
- package/native/ios/FTCocosBridge.m +470 -0
- package/native/ios/FTCocosBridge.podspec +18 -0
- package/package.json +60 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export type FTReplaySkipReason = 'dedupe' | 'approx_static' | 'throttle' | 'budget' | 'busy' | 'error';
|
|
2
|
+
export type FTReplayDiagnosticEvent = {
|
|
3
|
+
type: 'capture_attempt';
|
|
4
|
+
timestamp: number;
|
|
5
|
+
usedBytes: number;
|
|
6
|
+
maxBytesPerMinute: number;
|
|
7
|
+
} | {
|
|
8
|
+
type: 'capture_skipped';
|
|
9
|
+
timestamp: number;
|
|
10
|
+
reason: FTReplaySkipReason;
|
|
11
|
+
} | {
|
|
12
|
+
type: 'image_saved';
|
|
13
|
+
timestamp: number;
|
|
14
|
+
byteSize: number;
|
|
15
|
+
width: number;
|
|
16
|
+
height: number;
|
|
17
|
+
mimeType?: string;
|
|
18
|
+
priority: boolean;
|
|
19
|
+
byteSizeSource: 'native' | 'frame_limit_estimate';
|
|
20
|
+
} | {
|
|
21
|
+
type: 'segment_encoded';
|
|
22
|
+
timestamp: number;
|
|
23
|
+
byteSize: number;
|
|
24
|
+
recordCount: number;
|
|
25
|
+
pointerRecordCount: number;
|
|
26
|
+
hasImage: boolean;
|
|
27
|
+
} | {
|
|
28
|
+
type: 'pointer_received';
|
|
29
|
+
timestamp: number;
|
|
30
|
+
eventType: 'down' | 'up' | 'move';
|
|
31
|
+
} | {
|
|
32
|
+
type: 'replay_stopped';
|
|
33
|
+
timestamp: number;
|
|
34
|
+
};
|
|
35
|
+
export declare function replayUtf8ByteLength(value: string): number;
|
|
36
|
+
//# sourceMappingURL=replay-diagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replay-diagnostics.d.ts","sourceRoot":"","sources":["../../../../../src/core/replay-diagnostics.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAC1B,QAAQ,GACR,eAAe,GACf,UAAU,GACV,QAAQ,GACR,MAAM,GACN,OAAO,CAAC;AAEZ,MAAM,MAAM,uBAAuB,GAC/B;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,GAC5F;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,kBAAkB,CAAA;CAAE,GAC1E;IACA,IAAI,EAAE,aAAa,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,QAAQ,GAAG,sBAAsB,CAAC;CACnD,GACC;IACA,IAAI,EAAE,iBAAiB,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,OAAO,CAAC;CACnB,GACC;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAAA;CAAE,GAClF;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAmBlD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAiB1D"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.emitReplayDiagnostic = emitReplayDiagnostic;
|
|
4
|
+
exports.replayUtf8ByteLength = replayUtf8ByteLength;
|
|
5
|
+
/** @internal Benchmark-only observer hook. Production builds leave it unset. */
|
|
6
|
+
function emitReplayDiagnostic(event) {
|
|
7
|
+
var observer = globalThis.__FT_COCOS_REPLAY_BENCHMARK_OBSERVER__;
|
|
8
|
+
if (typeof observer !== 'function')
|
|
9
|
+
return;
|
|
10
|
+
try {
|
|
11
|
+
observer(event);
|
|
12
|
+
}
|
|
13
|
+
catch (_a) {
|
|
14
|
+
// Diagnostics must never affect capture, storage, or upload behavior.
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function replayUtf8ByteLength(value) {
|
|
18
|
+
var bytes = 0;
|
|
19
|
+
for (var index = 0; index < value.length; index += 1) {
|
|
20
|
+
var code = value.charCodeAt(index);
|
|
21
|
+
if (code < 0x80)
|
|
22
|
+
bytes += 1;
|
|
23
|
+
else if (code < 0x800)
|
|
24
|
+
bytes += 2;
|
|
25
|
+
else if (code >= 0xd800 && code <= 0xdbff && index + 1 < value.length) {
|
|
26
|
+
var low = value.charCodeAt(index + 1);
|
|
27
|
+
if (low >= 0xdc00 && low <= 0xdfff) {
|
|
28
|
+
bytes += 4;
|
|
29
|
+
index += 1;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
bytes += 3;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
else
|
|
36
|
+
bytes += 3;
|
|
37
|
+
}
|
|
38
|
+
return bytes;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=replay-diagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replay-diagnostics.js","sourceRoot":"","sources":["../../../../../src/core/replay-diagnostics.ts"],"names":[],"mappings":";;AAuCA,oDAQC;AAED,oDAiBC;AA5BD,gFAAgF;AAChF,SAAgB,oBAAoB,CAAC,KAA8B;IACjE,IAAM,QAAQ,GAAI,UAAuC,CAAC,sCAAsC,CAAC;IACjG,IAAI,OAAO,QAAQ,KAAK,UAAU;QAAE,OAAO;IAC3C,IAAI,CAAC;QACH,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC;IAAC,WAAM,CAAC;QACP,sEAAsE;IACxE,CAAC;AACH,CAAC;AAED,SAAgB,oBAAoB,CAAC,KAAa;IAChD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,IAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,IAAI,GAAG,IAAI;YAAE,KAAK,IAAI,CAAC,CAAC;aACvB,IAAI,IAAI,GAAG,KAAK;YAAE,KAAK,IAAI,CAAC,CAAC;aAC7B,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YACtE,IAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YACxC,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC;gBACnC,KAAK,IAAI,CAAC,CAAC;gBACX,KAAK,IAAI,CAAC,CAAC;YACb,CAAC;iBAAM,CAAC;gBACN,KAAK,IAAI,CAAC,CAAC;YACb,CAAC;QACH,CAAC;;YAAM,KAAK,IAAI,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { FTRUMContext } from './types.js';
|
|
2
|
+
export interface FTReplayImageRecord {
|
|
3
|
+
context: FTRUMContext;
|
|
4
|
+
resourceId: string;
|
|
5
|
+
width: number;
|
|
6
|
+
height: number;
|
|
7
|
+
mimeType?: `image/${string}`;
|
|
8
|
+
timestamp: number;
|
|
9
|
+
contextChanged: boolean;
|
|
10
|
+
pointerEvents?: FTReplayPointerRecord[];
|
|
11
|
+
}
|
|
12
|
+
export interface FTReplayPointerRecord {
|
|
13
|
+
eventType: 'down' | 'up' | 'move';
|
|
14
|
+
pointerId: number;
|
|
15
|
+
x: number;
|
|
16
|
+
y: number;
|
|
17
|
+
timestamp: number;
|
|
18
|
+
}
|
|
19
|
+
export interface FTReplayPointerRecords {
|
|
20
|
+
context: FTRUMContext;
|
|
21
|
+
pointerEvents: FTReplayPointerRecord[];
|
|
22
|
+
}
|
|
23
|
+
export declare function encodeReplayImageRecord(input: FTReplayImageRecord): {
|
|
24
|
+
segment: string;
|
|
25
|
+
recordCount: number;
|
|
26
|
+
};
|
|
27
|
+
export declare function encodeReplayPointerRecords(input: FTReplayPointerRecords): {
|
|
28
|
+
segment: string;
|
|
29
|
+
recordCount: number;
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=replay-encoding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replay-encoding.d.ts","sourceRoot":"","sources":["../../../../../src/core/replay-encoding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,YAAY,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,qBAAqB,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,YAAY,CAAC;IACtB,aAAa,EAAE,qBAAqB,EAAE,CAAC;CACxC;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,mBAAmB,GAAG;IACnE,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB,CAiCA;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,sBAAsB,GAAG;IACzE,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB,CAMA"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.encodeReplayImageRecord = encodeReplayImageRecord;
|
|
15
|
+
exports.encodeReplayPointerRecords = encodeReplayPointerRecords;
|
|
16
|
+
function encodeReplayImageRecord(input) {
|
|
17
|
+
var _a;
|
|
18
|
+
var wireframe = __assign(__assign({ id: 1, type: 'image', x: 0, y: 0, width: input.width, height: input.height, base64: null, border: null, clip: null, isEmpty: false }, (input.mimeType ? { mimeType: input.mimeType } : {})), { resourceId: input.resourceId, shapeStyle: null });
|
|
19
|
+
var records = [];
|
|
20
|
+
if (input.contextChanged) {
|
|
21
|
+
records.push({ type: 4, data: { width: input.width, height: input.height }, timestamp: input.timestamp }, { type: 6, data: { has_focus: true }, timestamp: input.timestamp });
|
|
22
|
+
}
|
|
23
|
+
records.push({
|
|
24
|
+
type: 10,
|
|
25
|
+
data: { wireframes: [wireframe] },
|
|
26
|
+
timestamp: input.timestamp,
|
|
27
|
+
});
|
|
28
|
+
records.push.apply(records, ((_a = input.pointerEvents) === null || _a === void 0 ? void 0 : _a.map(pointerRecord)) || []);
|
|
29
|
+
return {
|
|
30
|
+
segment: encodeEnvelope(input.context, records),
|
|
31
|
+
recordCount: records.length,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
function encodeReplayPointerRecords(input) {
|
|
35
|
+
var records = input.pointerEvents.map(pointerRecord);
|
|
36
|
+
return {
|
|
37
|
+
segment: encodeEnvelope(input.context, records),
|
|
38
|
+
recordCount: records.length,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
function pointerRecord(pointer) {
|
|
42
|
+
return {
|
|
43
|
+
type: 11,
|
|
44
|
+
data: {
|
|
45
|
+
source: 9,
|
|
46
|
+
pointerEventType: pointer.eventType,
|
|
47
|
+
pointerType: 'touch',
|
|
48
|
+
pointerId: pointer.pointerId,
|
|
49
|
+
x: pointer.x,
|
|
50
|
+
y: pointer.y,
|
|
51
|
+
},
|
|
52
|
+
timestamp: pointer.timestamp,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
function encodeEnvelope(context, records) {
|
|
56
|
+
return JSON.stringify({
|
|
57
|
+
records: records,
|
|
58
|
+
applicationID: context.applicationId,
|
|
59
|
+
sessionID: context.sessionId,
|
|
60
|
+
viewID: context.viewId,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=replay-encoding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replay-encoding.js","sourceRoot":"","sources":["../../../../../src/core/replay-encoding.ts"],"names":[],"mappings":";;;;;;;;;;;;;AA0BA,0DAoCC;AAED,gEASC;AA/CD,SAAgB,uBAAuB,CAAC,KAA0B;;IAIhE,IAAM,SAAS,uBACb,EAAE,EAAE,CAAC,EACL,IAAI,EAAE,OAAO,EACb,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,CAAC,EACJ,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,MAAM,EAAE,IAAI,EACZ,MAAM,EAAE,IAAI,EACZ,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,KAAK,IACX,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KACvD,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,UAAU,EAAE,IAAI,GACjB,CAAC;IACF,IAAM,OAAO,GAAc,EAAE,CAAC;IAC9B,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CACV,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,EAC3F,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CACnE,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,IAAI,CAAC;QACX,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;QACjC,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,CAAC,CAAC;IACH,OAAO,CAAC,IAAI,OAAZ,OAAO,EAAS,CAAA,MAAA,KAAK,CAAC,aAAa,0CAAE,GAAG,CAAC,aAAa,CAAC,KAAI,EAAE,EAAE;IAC/D,OAAO;QACL,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC;QAC/C,WAAW,EAAE,OAAO,CAAC,MAAM;KAC5B,CAAC;AACJ,CAAC;AAED,SAAgB,0BAA0B,CAAC,KAA6B;IAItE,IAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACvD,OAAO;QACL,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC;QAC/C,WAAW,EAAE,OAAO,CAAC,MAAM;KAC5B,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,OAA8B;IACnD,OAAO;QACL,IAAI,EAAE,EAAE;QACR,IAAI,EAAE;YACJ,MAAM,EAAE,CAAC;YACT,gBAAgB,EAAE,OAAO,CAAC,SAAS;YACnC,WAAW,EAAE,OAAO;YACpB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,CAAC,EAAE,OAAO,CAAC,CAAC;YACZ,CAAC,EAAE,OAAO,CAAC,CAAC;SACb;QACD,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,OAAqB,EAAE,OAAkB;IAC/D,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,OAAO,SAAA;QACP,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replay-pixels.d.ts","sourceRoot":"","sources":["../../../../../src/core/replay-pixels.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAUnF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.flipRgbaRows = flipRgbaRows;
|
|
4
|
+
/** Converts tightly packed RGBA pixels from bottom-left to top-left row order. */
|
|
5
|
+
function flipRgbaRows(bytes, width, height) {
|
|
6
|
+
var rowSize = width * 4;
|
|
7
|
+
var swap = new Uint8Array(rowSize);
|
|
8
|
+
for (var top_1 = 0, bottom = height - 1; top_1 < bottom; top_1 += 1, bottom -= 1) {
|
|
9
|
+
var topOffset = top_1 * rowSize;
|
|
10
|
+
var bottomOffset = bottom * rowSize;
|
|
11
|
+
swap.set(bytes.subarray(topOffset, topOffset + rowSize));
|
|
12
|
+
bytes.copyWithin(topOffset, bottomOffset, bottomOffset + rowSize);
|
|
13
|
+
bytes.set(swap, bottomOffset);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=replay-pixels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replay-pixels.js","sourceRoot":"","sources":["../../../../../src/core/replay-pixels.ts"],"names":[],"mappings":";;AACA,oCAUC;AAXD,kFAAkF;AAClF,SAAgB,YAAY,CAAC,KAAiB,EAAE,KAAa,EAAE,MAAc;IAC3E,IAAM,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC;IAC1B,IAAM,IAAI,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;IACrC,KAAK,IAAI,KAAG,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE,KAAG,GAAG,MAAM,EAAE,KAAG,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC;QAC3E,IAAM,SAAS,GAAG,KAAG,GAAG,OAAO,CAAC;QAChC,IAAM,YAAY,GAAG,MAAM,GAAG,OAAO,CAAC;QACtC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC;QACzD,KAAK,CAAC,UAAU,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC;QAClE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAChC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { FTPrivacyRegion } from './types.js';
|
|
2
|
+
interface FTPoint {
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
}
|
|
6
|
+
interface FTRect {
|
|
7
|
+
x: number;
|
|
8
|
+
y: number;
|
|
9
|
+
width: number;
|
|
10
|
+
height: number;
|
|
11
|
+
}
|
|
12
|
+
/** Projects a world-space node rectangle into a top-left-origin Replay frame. */
|
|
13
|
+
export declare function projectPrivacyBounds(bounds: FTRect, frameWidth: number, frameHeight: number, screenWidth: number, screenHeight: number, project: (x: number, y: number) => FTPoint | undefined): Omit<FTPrivacyRegion, 'mode'> | undefined;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=replay-privacy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replay-privacy.d.ts","sourceRoot":"","sources":["../../../../../src/core/replay-privacy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,UAAU,OAAO;IACf,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,UAAU,MAAM;IACd,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,iFAAiF;AACjF,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,GAAG,SAAS,GACrD,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,GAAG,SAAS,CA6B3C"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.projectPrivacyBounds = projectPrivacyBounds;
|
|
4
|
+
/** Projects a world-space node rectangle into a top-left-origin Replay frame. */
|
|
5
|
+
function projectPrivacyBounds(bounds, frameWidth, frameHeight, screenWidth, screenHeight, project) {
|
|
6
|
+
if ([frameWidth, frameHeight, screenWidth, screenHeight].some(function (size) { return !Number.isFinite(size) || size <= 0; })) {
|
|
7
|
+
return undefined;
|
|
8
|
+
}
|
|
9
|
+
var points = [
|
|
10
|
+
project(bounds.x, bounds.y),
|
|
11
|
+
project(bounds.x + bounds.width, bounds.y),
|
|
12
|
+
project(bounds.x, bounds.y + bounds.height),
|
|
13
|
+
project(bounds.x + bounds.width, bounds.y + bounds.height),
|
|
14
|
+
];
|
|
15
|
+
if (points.some(function (point) { return !point || !Number.isFinite(point.x) || !Number.isFinite(point.y); })) {
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
var projected = points;
|
|
19
|
+
var minimumX = Math.min.apply(Math, projected.map(function (point) { return point.x; }));
|
|
20
|
+
var maximumX = Math.max.apply(Math, projected.map(function (point) { return point.x; }));
|
|
21
|
+
var minimumY = Math.min.apply(Math, projected.map(function (point) { return point.y; }));
|
|
22
|
+
var maximumY = Math.max.apply(Math, projected.map(function (point) { return point.y; }));
|
|
23
|
+
// A native projection can reject its input without throwing and return a
|
|
24
|
+
// zero vector. Do not treat its zero-area result as a valid privacy mask.
|
|
25
|
+
if (maximumX <= minimumX || maximumY <= minimumY)
|
|
26
|
+
return undefined;
|
|
27
|
+
var scaleX = frameWidth / screenWidth;
|
|
28
|
+
var scaleY = frameHeight / screenHeight;
|
|
29
|
+
return {
|
|
30
|
+
x: minimumX * scaleX,
|
|
31
|
+
y: (screenHeight - maximumY) * scaleY,
|
|
32
|
+
width: (maximumX - minimumX) * scaleX,
|
|
33
|
+
height: (maximumY - minimumY) * scaleY,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=replay-privacy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replay-privacy.js","sourceRoot":"","sources":["../../../../../src/core/replay-privacy.ts"],"names":[],"mappings":";;AAeA,oDAoCC;AArCD,iFAAiF;AACjF,SAAgB,oBAAoB,CAClC,MAAc,EACd,UAAkB,EAClB,WAAmB,EACnB,WAAmB,EACnB,YAAoB,EACpB,OAAsD;IAEtD,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,UAAC,IAAI,IAAK,OAAA,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAnC,CAAmC,CAAC,EAAE,CAAC;QAC7G,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAM,MAAM,GAAG;QACb,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QAC3B,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QAC1C,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QAC3C,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;KAC3D,CAAC;IACF,IAAI,MAAM,CAAC,IAAI,CAAC,UAAC,KAAK,IAAK,OAAA,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAhE,CAAgE,CAAC,EAAE,CAAC;QAC7F,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAM,SAAS,GAAG,MAAmB,CAAC;IACtC,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,OAAR,IAAI,EAAQ,SAAS,CAAC,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,CAAC,EAAP,CAAO,CAAC,CAAC,CAAC;IAChE,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,OAAR,IAAI,EAAQ,SAAS,CAAC,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,CAAC,EAAP,CAAO,CAAC,CAAC,CAAC;IAChE,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,OAAR,IAAI,EAAQ,SAAS,CAAC,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,CAAC,EAAP,CAAO,CAAC,CAAC,CAAC;IAChE,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,OAAR,IAAI,EAAQ,SAAS,CAAC,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,CAAC,EAAP,CAAO,CAAC,CAAC,CAAC;IAChE,yEAAyE;IACzE,0EAA0E;IAC1E,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ;QAAE,OAAO,SAAS,CAAC;IACnE,IAAM,MAAM,GAAG,UAAU,GAAG,WAAW,CAAC;IACxC,IAAM,MAAM,GAAG,WAAW,GAAG,YAAY,CAAC;IAC1C,OAAO;QACL,CAAC,EAAE,QAAQ,GAAG,MAAM;QACpB,CAAC,EAAE,CAAC,YAAY,GAAG,QAAQ,CAAC,GAAG,MAAM;QACrC,KAAK,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,MAAM;QACrC,MAAM,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,MAAM;KACvC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import type { FTNativeTransport } from './transport.js';
|
|
2
|
+
import type { FTCapturedFrame, FTPrivacyRegion, FTSessionReplayConfig, FTStoredFrame } from './types.js';
|
|
3
|
+
export interface FTCanvasCapture {
|
|
4
|
+
getViewportSize?(): {
|
|
5
|
+
width: number;
|
|
6
|
+
height: number;
|
|
7
|
+
} | undefined;
|
|
8
|
+
capture(maxImageDimension: number): Promise<FTCapturedFrame | undefined>;
|
|
9
|
+
persist(frame: FTCapturedFrame, fingerprint: string): Promise<FTStoredFrame>;
|
|
10
|
+
disposeStoredFrame(frame: FTStoredFrame): void;
|
|
11
|
+
setPrivacy(node: unknown, mode: 'mask' | 'hide' | 'unmask'): void;
|
|
12
|
+
}
|
|
13
|
+
export interface FTReplayPointerEvent {
|
|
14
|
+
eventType: 'down' | 'up' | 'move';
|
|
15
|
+
pointerId: number;
|
|
16
|
+
normalizedX: number;
|
|
17
|
+
normalizedY: number;
|
|
18
|
+
timestamp: number;
|
|
19
|
+
}
|
|
20
|
+
export interface FTReplayPointerSource {
|
|
21
|
+
onReplayPointer(callback: (event: FTReplayPointerEvent) => void): () => void;
|
|
22
|
+
}
|
|
23
|
+
export interface FTReplaySaveImageV2Result {
|
|
24
|
+
resourceId: string;
|
|
25
|
+
byteSize: number;
|
|
26
|
+
width: number;
|
|
27
|
+
height: number;
|
|
28
|
+
mimeType?: `image/${string}`;
|
|
29
|
+
}
|
|
30
|
+
export interface FTReplayFrameSample {
|
|
31
|
+
width: number;
|
|
32
|
+
height: number;
|
|
33
|
+
luminance: Uint8Array;
|
|
34
|
+
}
|
|
35
|
+
/** Cocos canvas Session Replay controls. */
|
|
36
|
+
export declare class FTSessionReplay {
|
|
37
|
+
private readonly transport;
|
|
38
|
+
private readonly capture;
|
|
39
|
+
private readonly pointerSource?;
|
|
40
|
+
private timer;
|
|
41
|
+
private busy;
|
|
42
|
+
private running;
|
|
43
|
+
private mode;
|
|
44
|
+
private hybridReplayEnabled;
|
|
45
|
+
private captureGeneration;
|
|
46
|
+
private config;
|
|
47
|
+
private imagePolicy;
|
|
48
|
+
private budget;
|
|
49
|
+
private lastFingerprint;
|
|
50
|
+
private lastContextKey;
|
|
51
|
+
private lastPrivacyKey;
|
|
52
|
+
private lastFrameSample;
|
|
53
|
+
private lastImageSize;
|
|
54
|
+
private lastViewportSize;
|
|
55
|
+
private imagePolicyEnabled;
|
|
56
|
+
private supportsSaveImageV2;
|
|
57
|
+
private recordCounts;
|
|
58
|
+
private recordTouches;
|
|
59
|
+
private pendingPointerEvents;
|
|
60
|
+
private stopPointerTracking;
|
|
61
|
+
constructor(transport: FTNativeTransport, capture: FTCanvasCapture, pointerSource?: FTReplayPointerSource | undefined);
|
|
62
|
+
/**
|
|
63
|
+
* Enables native Session Replay and starts Cocos canvas capture for a
|
|
64
|
+
* standalone application.
|
|
65
|
+
*
|
|
66
|
+
* @param config - Replay sampling, capture, and touch-privacy settings.
|
|
67
|
+
*/
|
|
68
|
+
start(config?: FTSessionReplayConfig): void;
|
|
69
|
+
private configureCapture;
|
|
70
|
+
/** Stops standalone Cocos canvas capture and native Session Replay. */
|
|
71
|
+
stop(): void;
|
|
72
|
+
/**
|
|
73
|
+
* Changes the Session Replay privacy treatment for a Cocos node.
|
|
74
|
+
*
|
|
75
|
+
* `mask` obscures the node, `hide` removes the region from the replay, and
|
|
76
|
+
* `unmask` clears an earlier override. The node must belong to the active
|
|
77
|
+
* Cocos scene.
|
|
78
|
+
*
|
|
79
|
+
* @param node - Cocos node whose rendered bounds receive the privacy rule.
|
|
80
|
+
* @param mode - Privacy treatment to apply.
|
|
81
|
+
*/
|
|
82
|
+
setPrivacy(node: unknown, mode: 'mask' | 'hide' | 'unmask'): void;
|
|
83
|
+
private startCapture;
|
|
84
|
+
private stopCapture;
|
|
85
|
+
private schedule;
|
|
86
|
+
private readContext;
|
|
87
|
+
private saveImage;
|
|
88
|
+
private writePendingPointers;
|
|
89
|
+
private scaledPendingPointers;
|
|
90
|
+
private updateRecordCount;
|
|
91
|
+
}
|
|
92
|
+
export declare function normalizeSaveImageV2Result(value: unknown): FTReplaySaveImageV2Result;
|
|
93
|
+
export declare function sampleReplayFrame(rgba: Uint8Array, width: number, height: number, maximumSamples?: number): FTReplayFrameSample;
|
|
94
|
+
export declare function replayFramesLookSimilar(previous: FTReplayFrameSample | undefined, current: FTReplayFrameSample): boolean;
|
|
95
|
+
export declare function frameFingerprint(bytes: Uint8Array): string;
|
|
96
|
+
export declare function applyPrivacyRegions(rgba: Uint8Array, width: number, height: number, regions: FTPrivacyRegion[]): void;
|
|
97
|
+
//# sourceMappingURL=replay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../../../../../src/core/replay.ts"],"names":[],"mappings":"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"}
|