@truewatchtech/cocos-sdk 0.1.0-alpha.4 → 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.
- package/README.md +49 -1
- package/bin/cli.cjs +48 -18
- package/bin/legacy-asset-hashes.json +32 -0
- package/bin/managed-assets.cjs +67 -0
- package/dist/creator2/core/client.d.ts +55 -7
- package/dist/creator2/core/client.d.ts.map +1 -1
- package/dist/creator2/core/client.js +74 -28
- package/dist/creator2/core/client.js.map +1 -1
- package/dist/creator2/core/index.d.ts +1 -1
- package/dist/creator2/core/index.d.ts.map +1 -1
- package/dist/creator2/core/index.js.map +1 -1
- package/dist/creator2/core/plugin-api.d.ts +15 -0
- package/dist/creator2/core/plugin-api.d.ts.map +1 -0
- package/dist/creator2/core/plugin-api.js +3 -0
- package/dist/creator2/core/plugin-api.js.map +1 -0
- package/dist/creator2/core/transport.d.ts +20 -0
- package/dist/creator2/core/transport.d.ts.map +1 -1
- package/dist/creator2/core/transport.js.map +1 -1
- package/dist/creator2/core/types.d.ts +0 -78
- package/dist/creator2/core/types.d.ts.map +1 -1
- package/dist/creator2/core/validation.d.ts +0 -11
- package/dist/creator2/core/validation.d.ts.map +1 -1
- package/dist/creator2/core/validation.js +0 -63
- package/dist/creator2/core/validation.js.map +1 -1
- package/dist/creator2/core/version.d.ts +1 -1
- package/dist/creator2/core/version.js +1 -1
- package/dist/creator2/creator2/auto.d.ts +1 -3
- package/dist/creator2/creator2/auto.d.ts.map +1 -1
- package/dist/creator2/creator2/auto.js +0 -25
- package/dist/creator2/creator2/auto.js.map +1 -1
- package/dist/creator2/creator2/index.d.ts +0 -7
- package/dist/creator2/creator2/index.d.ts.map +1 -1
- package/dist/creator2/creator2/index.js +1 -13
- package/dist/creator2/creator2/index.js.map +1 -1
- package/dist/creator2/creator2/transport.d.ts +0 -1
- package/dist/creator2/creator2/transport.d.ts.map +1 -1
- package/dist/creator2/creator2/transport.js +0 -4
- package/dist/creator2/creator2/transport.js.map +1 -1
- package/dist/creator3/core/client.d.ts +55 -7
- package/dist/creator3/core/client.d.ts.map +1 -1
- package/dist/creator3/core/client.js +72 -28
- package/dist/creator3/core/client.js.map +1 -1
- package/dist/creator3/core/index.d.ts +1 -1
- package/dist/creator3/core/index.d.ts.map +1 -1
- package/dist/creator3/core/index.js.map +1 -1
- package/dist/creator3/core/plugin-api.d.ts +15 -0
- package/dist/creator3/core/plugin-api.d.ts.map +1 -0
- package/dist/creator3/core/plugin-api.js +2 -0
- package/dist/creator3/core/plugin-api.js.map +1 -0
- package/dist/creator3/core/transport.d.ts +20 -0
- package/dist/creator3/core/transport.d.ts.map +1 -1
- package/dist/creator3/core/transport.js.map +1 -1
- package/dist/creator3/core/types.d.ts +0 -78
- package/dist/creator3/core/types.d.ts.map +1 -1
- package/dist/creator3/core/validation.d.ts +0 -11
- package/dist/creator3/core/validation.d.ts.map +1 -1
- package/dist/creator3/core/validation.js +0 -61
- package/dist/creator3/core/validation.js.map +1 -1
- package/dist/creator3/core/version.d.ts +1 -1
- package/dist/creator3/core/version.js +1 -1
- package/dist/creator3/creator3/auto.d.ts +1 -3
- package/dist/creator3/creator3/auto.d.ts.map +1 -1
- package/dist/creator3/creator3/auto.js +1 -24
- package/dist/creator3/creator3/auto.js.map +1 -1
- package/dist/creator3/creator3/index.d.ts +0 -7
- package/dist/creator3/creator3/index.d.ts.map +1 -1
- package/dist/creator3/creator3/index.js +1 -12
- package/dist/creator3/creator3/index.js.map +1 -1
- package/dist/creator3/creator3/transport.d.ts +0 -1
- package/dist/creator3/creator3/transport.d.ts.map +1 -1
- package/dist/creator3/creator3/transport.js +0 -4
- package/dist/creator3/creator3/transport.js.map +1 -1
- package/extensions/creator2/install-native.cjs +118 -28
- package/extensions/creator2/install-spm.cjs +198 -0
- package/extensions/creator2/legacy-asset-hashes.json +32 -0
- package/extensions/creator2/managed-assets.cjs +67 -0
- package/extensions/creator3/install-native.cjs +118 -28
- package/extensions/creator3/install-spm.cjs +198 -0
- package/extensions/creator3/legacy-asset-hashes.json +32 -0
- package/extensions/creator3/managed-assets.cjs +67 -0
- package/native/android/src/main/java/com/ft/sdk/cocos/FTBridgeTransport.java +85 -0
- package/native/android/src/main/java/com/ft/sdk/cocos/FTCocosBridge.java +2 -192
- package/native/android/src/main/java/com/ft/sdk/cocos/FTCocosBridgeModules.java +9 -0
- package/native/android/src/main/java/com/ft/sdk/cocos/FTCocosBridgeProvider.java +1 -1
- package/native/ios/FTCocosBridge.m +8 -203
- package/native/ios/FTCocosBridge.podspec +3 -4
- package/native/ios/Package.swift +25 -0
- package/native/ios/include/FTCocosBridge.h +2 -0
- package/package.json +10 -5
- package/plugin-api/package.json +4 -0
- package/components/creator2/ReplayPrivacy.ts +0 -23
- package/components/creator3/ReplayPrivacy.ts +0 -25
- package/dist/creator2/core/replay-async-transport.d.ts +0 -4
- package/dist/creator2/core/replay-async-transport.d.ts.map +0 -1
- package/dist/creator2/core/replay-async-transport.js +0 -67
- package/dist/creator2/core/replay-async-transport.js.map +0 -1
- package/dist/creator2/core/replay-budget.d.ts +0 -28
- package/dist/creator2/core/replay-budget.d.ts.map +0 -1
- package/dist/creator2/core/replay-budget.js +0 -113
- package/dist/creator2/core/replay-budget.js.map +0 -1
- package/dist/creator2/core/replay-diagnostics.d.ts +0 -36
- package/dist/creator2/core/replay-diagnostics.d.ts.map +0 -1
- package/dist/creator2/core/replay-diagnostics.js +0 -40
- package/dist/creator2/core/replay-diagnostics.js.map +0 -1
- package/dist/creator2/core/replay-encoding.d.ts +0 -31
- package/dist/creator2/core/replay-encoding.d.ts.map +0 -1
- package/dist/creator2/core/replay-encoding.js +0 -63
- package/dist/creator2/core/replay-encoding.js.map +0 -1
- package/dist/creator2/core/replay-file.d.ts +0 -5
- package/dist/creator2/core/replay-file.d.ts.map +0 -1
- package/dist/creator2/core/replay-file.js +0 -101
- package/dist/creator2/core/replay-file.js.map +0 -1
- package/dist/creator2/core/replay-pixels.d.ts +0 -3
- package/dist/creator2/core/replay-pixels.d.ts.map +0 -1
- package/dist/creator2/core/replay-pixels.js +0 -16
- package/dist/creator2/core/replay-pixels.js.map +0 -1
- package/dist/creator2/core/replay-privacy-nodes.d.ts +0 -14
- package/dist/creator2/core/replay-privacy-nodes.d.ts.map +0 -1
- package/dist/creator2/core/replay-privacy-nodes.js +0 -18
- package/dist/creator2/core/replay-privacy-nodes.js.map +0 -1
- package/dist/creator2/core/replay-privacy.d.ts +0 -15
- package/dist/creator2/core/replay-privacy.d.ts.map +0 -1
- package/dist/creator2/core/replay-privacy.js +0 -36
- package/dist/creator2/core/replay-privacy.js.map +0 -1
- package/dist/creator2/core/replay.d.ts +0 -99
- package/dist/creator2/core/replay.d.ts.map +0 -1
- package/dist/creator2/core/replay.js +0 -611
- package/dist/creator2/core/replay.js.map +0 -1
- package/dist/creator2/creator2/capture.d.ts +0 -17
- package/dist/creator2/creator2/capture.d.ts.map +0 -1
- package/dist/creator2/creator2/capture.js +0 -168
- package/dist/creator2/creator2/capture.js.map +0 -1
- package/dist/creator3/core/replay-async-transport.d.ts +0 -4
- package/dist/creator3/core/replay-async-transport.d.ts.map +0 -1
- package/dist/creator3/core/replay-async-transport.js +0 -16
- package/dist/creator3/core/replay-async-transport.js.map +0 -1
- package/dist/creator3/core/replay-budget.d.ts +0 -28
- package/dist/creator3/core/replay-budget.d.ts.map +0 -1
- package/dist/creator3/core/replay-budget.js +0 -105
- package/dist/creator3/core/replay-budget.js.map +0 -1
- package/dist/creator3/core/replay-diagnostics.d.ts +0 -36
- package/dist/creator3/core/replay-diagnostics.d.ts.map +0 -1
- package/dist/creator3/core/replay-diagnostics.js +0 -36
- package/dist/creator3/core/replay-diagnostics.js.map +0 -1
- package/dist/creator3/core/replay-encoding.d.ts +0 -31
- package/dist/creator3/core/replay-encoding.d.ts.map +0 -1
- package/dist/creator3/core/replay-encoding.js +0 -62
- package/dist/creator3/core/replay-encoding.js.map +0 -1
- package/dist/creator3/core/replay-file.d.ts +0 -5
- package/dist/creator3/core/replay-file.d.ts.map +0 -1
- package/dist/creator3/core/replay-file.js +0 -31
- package/dist/creator3/core/replay-file.js.map +0 -1
- package/dist/creator3/core/replay-pixels.d.ts +0 -3
- package/dist/creator3/core/replay-pixels.d.ts.map +0 -1
- package/dist/creator3/core/replay-pixels.js +0 -13
- package/dist/creator3/core/replay-pixels.js.map +0 -1
- package/dist/creator3/core/replay-privacy-nodes.d.ts +0 -14
- package/dist/creator3/core/replay-privacy-nodes.d.ts.map +0 -1
- package/dist/creator3/core/replay-privacy-nodes.js +0 -15
- package/dist/creator3/core/replay-privacy-nodes.js.map +0 -1
- package/dist/creator3/core/replay-privacy.d.ts +0 -15
- package/dist/creator3/core/replay-privacy.d.ts.map +0 -1
- package/dist/creator3/core/replay-privacy.js +0 -33
- package/dist/creator3/core/replay-privacy.js.map +0 -1
- package/dist/creator3/core/replay.d.ts +0 -99
- package/dist/creator3/core/replay.d.ts.map +0 -1
- package/dist/creator3/core/replay.js +0 -534
- package/dist/creator3/core/replay.js.map +0 -1
- package/dist/creator3/creator3/capture.d.ts +0 -17
- package/dist/creator3/creator3/capture.d.ts.map +0 -1
- package/dist/creator3/creator3/capture.js +0 -112
- package/dist/creator3/creator3/capture.js.map +0 -1
- package/dist/creator3/creator3/replay-render-cycle.d.ts +0 -9
- package/dist/creator3/creator3/replay-render-cycle.d.ts.map +0 -1
- package/dist/creator3/creator3/replay-render-cycle.js +0 -12
- package/dist/creator3/creator3/replay-render-cycle.js.map +0 -1
- package/native/android/src/main/java/com/ft/sdk/cocos/FTCocosReplayImageJobs.java +0 -55
- package/native/ios/FTCocosReplayImageJobs.h +0 -11
- package/native/ios/FTCocosReplayImageJobs.m +0 -54
- package/native/shared/FTReplayFileBridge.h +0 -62
- package/native/shared/FTReplayFileWorker.h +0 -88
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
13
|
-
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.persistReplayFrame = persistReplayFrame;
|
|
40
|
-
exports.disposeReplayFrame = disposeReplayFrame;
|
|
41
|
-
var sequence = 0;
|
|
42
|
-
function bridge() {
|
|
43
|
-
var value = globalThis.__ftCocosReplayFile;
|
|
44
|
-
if (!value)
|
|
45
|
-
throw new Error('Rebuild the native project with the Cocos SDK extension to enable asynchronous Replay storage');
|
|
46
|
-
return value;
|
|
47
|
-
}
|
|
48
|
-
function waitForFile(expected) {
|
|
49
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
50
|
-
var status_1;
|
|
51
|
-
return __generator(this, function (_a) {
|
|
52
|
-
switch (_a.label) {
|
|
53
|
-
case 0: return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, 16); })];
|
|
54
|
-
case 1:
|
|
55
|
-
_a.sent();
|
|
56
|
-
status_1 = bridge().poll();
|
|
57
|
-
if (status_1 === expected)
|
|
58
|
-
return [2 /*return*/];
|
|
59
|
-
if (status_1 !== 'pending')
|
|
60
|
-
throw new Error("Replay file operation failed: ".concat(status_1));
|
|
61
|
-
_a.label = 2;
|
|
62
|
-
case 2: return [3 /*break*/, 0];
|
|
63
|
-
case 3: return [2 /*return*/];
|
|
64
|
-
}
|
|
65
|
-
});
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
/** Copies pixels into native-owned memory; all file operations run off the game thread. */
|
|
69
|
-
function persistReplayFrame(frame, fingerprint, writablePath) {
|
|
70
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
71
|
-
var path;
|
|
72
|
-
return __generator(this, function (_a) {
|
|
73
|
-
switch (_a.label) {
|
|
74
|
-
case 0:
|
|
75
|
-
path = "".concat(writablePath, "cocos-sdk-replay-").concat(Date.now(), "-").concat(++sequence, "-").concat(fingerprint, ".rgba");
|
|
76
|
-
if (!bridge().write(frame.rgba, path))
|
|
77
|
-
throw new Error('Replay file writer is busy');
|
|
78
|
-
return [4 /*yield*/, waitForFile('written')];
|
|
79
|
-
case 1:
|
|
80
|
-
_a.sent();
|
|
81
|
-
return [2 /*return*/, { path: path, width: frame.width, height: frame.height, timestamp: frame.timestamp, fingerprint: fingerprint }];
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
function disposeReplayFrame(frame) {
|
|
87
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
88
|
-
return __generator(this, function (_a) {
|
|
89
|
-
switch (_a.label) {
|
|
90
|
-
case 0:
|
|
91
|
-
if (!bridge().remove(frame.path))
|
|
92
|
-
throw new Error('Replay file writer is busy or the frame has expired');
|
|
93
|
-
return [4 /*yield*/, waitForFile('removed')];
|
|
94
|
-
case 1:
|
|
95
|
-
_a.sent();
|
|
96
|
-
return [2 /*return*/];
|
|
97
|
-
}
|
|
98
|
-
});
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
//# sourceMappingURL=replay-file.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"replay-file.js","sourceRoot":"","sources":["../../../../../src/core/replay-file.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,gDASC;AAED,gDAGC;AA/BD,IAAI,QAAQ,GAAG,CAAC,CAAC;AACjB,SAAS,MAAM;IACb,IAAM,KAAK,GAAI,UAAsE,CAAC,mBAAmB,CAAC;IAC1G,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,+FAA+F,CAAC,CAAC;IAC7H,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAe,WAAW,CAAC,QAA+B;;;;;wBAEtD,qBAAM,IAAI,OAAO,CAAO,UAAC,OAAO,IAAK,OAAA,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,EAAvB,CAAuB,CAAC,EAAA;;oBAA7D,SAA6D,CAAC;oBACxD,WAAS,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;oBAC/B,IAAI,QAAM,KAAK,QAAQ;wBAAE,sBAAO;oBAChC,IAAI,QAAM,KAAK,SAAS;wBAAE,MAAM,IAAI,KAAK,CAAC,wCAAiC,QAAM,CAAE,CAAC,CAAC;;;;;;;CAExF;AAED,2FAA2F;AAC3F,SAAsB,kBAAkB,CACtC,KAAsB,EACtB,WAAmB,EACnB,YAAoB;;;;;;oBAEd,IAAI,GAAG,UAAG,YAAY,8BAAoB,IAAI,CAAC,GAAG,EAAE,cAAI,EAAE,QAAQ,cAAI,WAAW,UAAO,CAAC;oBAC/F,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;wBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;oBACrF,qBAAM,WAAW,CAAC,SAAS,CAAC,EAAA;;oBAA5B,SAA4B,CAAC;oBAC7B,sBAAO,EAAE,IAAI,MAAA,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,WAAW,aAAA,EAAE,EAAC;;;;CACpG;AAED,SAAsB,kBAAkB,CAAC,KAAoB;;;;;oBAC3D,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;wBAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;oBACzG,qBAAM,WAAW,CAAC,SAAS,CAAC,EAAA;;oBAA5B,SAA4B,CAAC;;;;;CAC9B"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,16 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { FTReplayPrivacyMode } from './types.js';
|
|
2
|
-
/** Shape of the ReplayPrivacy editor script installed in the project's assets. */
|
|
3
|
-
interface ReplayPrivacyComponent {
|
|
4
|
-
node: unknown;
|
|
5
|
-
enabledInHierarchy: boolean;
|
|
6
|
-
isValid: boolean;
|
|
7
|
-
readonly replayPrivacyMode: 'mask' | 'hide';
|
|
8
|
-
}
|
|
9
|
-
/** Resolve rules afresh for each capture, including newly instantiated prefabs. */
|
|
10
|
-
export declare function collectReplayPrivacyNodes(overrides: ReadonlyMap<unknown, FTReplayPrivacyMode>, components: ReplayPrivacyComponent[], editBoxes: {
|
|
11
|
-
node: unknown;
|
|
12
|
-
}[]): Map<unknown, FTReplayPrivacyMode>;
|
|
13
|
-
export {};
|
|
14
|
-
//# sourceMappingURL=replay-privacy-nodes.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"replay-privacy-nodes.d.ts","sourceRoot":"","sources":["../../../../../src/core/replay-privacy-nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,kFAAkF;AAClF,UAAU,sBAAsB;IAC9B,IAAI,EAAE,OAAO,CAAC;IACd,kBAAkB,EAAE,OAAO,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7C;AAED,mFAAmF;AACnF,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,WAAW,CAAC,OAAO,EAAE,mBAAmB,CAAC,EACpD,UAAU,EAAE,sBAAsB,EAAE,EACpC,SAAS,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,EAAE,GAC7B,GAAG,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAUnC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.collectReplayPrivacyNodes = collectReplayPrivacyNodes;
|
|
4
|
-
/** Resolve rules afresh for each capture, including newly instantiated prefabs. */
|
|
5
|
-
function collectReplayPrivacyNodes(overrides, components, editBoxes) {
|
|
6
|
-
var nodes = new Map(overrides);
|
|
7
|
-
components.forEach(function (component) {
|
|
8
|
-
if (!component.isValid || !component.enabledInHierarchy || nodes.has(component.node))
|
|
9
|
-
return;
|
|
10
|
-
nodes.set(component.node, component.replayPrivacyMode === 'hide' ? 'hide' : 'mask');
|
|
11
|
-
});
|
|
12
|
-
editBoxes.forEach(function (editBox) {
|
|
13
|
-
if (!nodes.has(editBox.node))
|
|
14
|
-
nodes.set(editBox.node, 'mask');
|
|
15
|
-
});
|
|
16
|
-
return nodes;
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=replay-privacy-nodes.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"replay-privacy-nodes.js","sourceRoot":"","sources":["../../../../../src/core/replay-privacy-nodes.ts"],"names":[],"mappings":";;AAWA,8DAcC;AAfD,mFAAmF;AACnF,SAAgB,yBAAyB,CACvC,SAAoD,EACpD,UAAoC,EACpC,SAA8B;IAE9B,IAAM,KAAK,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IACjC,UAAU,CAAC,OAAO,CAAC,UAAC,SAAS;QAC3B,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,kBAAkB,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;YAAE,OAAO;QAC7F,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,iBAAiB,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;IACH,SAAS,CAAC,OAAO,CAAC,UAAC,OAAO;QACxB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,36 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,99 +0,0 @@
|
|
|
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 | Promise<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 code override, restoring any ReplayPrivacy
|
|
77
|
-
* component rule or default input masking. Code overrides take priority over
|
|
78
|
-
* a component on the same node. The node must belong to the active Cocos scene.
|
|
79
|
-
*
|
|
80
|
-
* @param node - Cocos node whose rendered bounds receive the privacy rule.
|
|
81
|
-
* @param mode - Privacy treatment to apply.
|
|
82
|
-
*/
|
|
83
|
-
setPrivacy(node: unknown, mode: 'mask' | 'hide' | 'unmask'): void;
|
|
84
|
-
private startCapture;
|
|
85
|
-
private stopCapture;
|
|
86
|
-
private schedule;
|
|
87
|
-
private readContext;
|
|
88
|
-
private saveImage;
|
|
89
|
-
private invokeSaveImage;
|
|
90
|
-
private writePendingPointers;
|
|
91
|
-
private scaledPendingPointers;
|
|
92
|
-
private updateRecordCount;
|
|
93
|
-
}
|
|
94
|
-
export declare function normalizeSaveImageV2Result(value: unknown): FTReplaySaveImageV2Result;
|
|
95
|
-
export declare function sampleReplayFrame(rgba: Uint8Array, width: number, height: number, maximumSamples?: number): FTReplayFrameSample;
|
|
96
|
-
export declare function replayFramesLookSimilar(previous: FTReplayFrameSample | undefined, current: FTReplayFrameSample): boolean;
|
|
97
|
-
export declare function frameFingerprint(bytes: Uint8Array): string;
|
|
98
|
-
export declare function applyPrivacyRegions(rgba: Uint8Array, width: number, height: number, regions: FTPrivacyRegion[]): void;
|
|
99
|
-
//# sourceMappingURL=replay.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../../../../../src/core/replay.ts"],"names":[],"mappings":"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"}
|