@cloudcare/cocos-sdk 0.1.1-alpha.1 → 0.1.1-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +35 -6
- package/bin/cli.cjs +42 -5
- package/bin/project-configuration.cjs +135 -0
- package/bin/web-assets.cjs +32 -0
- package/dist/creator2/core/auto-tracking.js.map +1 -1
- package/dist/creator2/core/client.d.ts +1 -0
- package/dist/creator2/core/client.d.ts.map +1 -1
- package/dist/creator2/core/client.js +13 -0
- package/dist/creator2/core/client.js.map +1 -1
- package/dist/creator2/core/index.js.map +1 -1
- package/dist/creator2/core/modules.js.map +1 -1
- package/dist/creator2/core/platform-client.d.ts +46 -0
- package/dist/creator2/core/platform-client.d.ts.map +1 -0
- package/dist/creator2/core/platform-client.js +195 -0
- package/dist/creator2/core/platform-client.js.map +1 -0
- package/dist/creator2/core/platform-options.d.ts +30 -0
- package/dist/creator2/core/platform-options.d.ts.map +1 -0
- package/dist/creator2/core/platform-options.js +3 -0
- package/dist/creator2/core/platform-options.js.map +1 -0
- package/dist/creator2/core/platform-runtime.d.ts +59 -0
- package/dist/creator2/core/platform-runtime.d.ts.map +1 -0
- package/dist/creator2/core/platform-runtime.js +36 -0
- package/dist/creator2/core/platform-runtime.js.map +1 -0
- package/dist/creator2/core/plugin-api.d.ts +1 -1
- package/dist/creator2/core/plugin-api.d.ts.map +1 -1
- package/dist/creator2/core/plugin-api.js.map +1 -1
- package/dist/creator2/core/transport.d.ts +1 -1
- package/dist/creator2/core/transport.d.ts.map +1 -1
- package/dist/creator2/core/transport.js.map +1 -1
- package/dist/creator2/core/types.js.map +1 -1
- 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/core/version.js.map +1 -1
- package/dist/creator2/creator2/auto.js.map +1 -1
- package/dist/creator2/creator2/index.d.ts +6 -3
- package/dist/creator2/creator2/index.d.ts.map +1 -1
- package/dist/creator2/creator2/index.js +12 -8
- package/dist/creator2/creator2/index.js.map +1 -1
- package/dist/creator2/creator2/transport.js.map +1 -1
- package/dist/creator2/native/bootstrap.d.ts +2 -0
- package/dist/creator2/native/bootstrap.d.ts.map +1 -0
- package/dist/creator2/native/bootstrap.js +34 -0
- package/dist/creator2/native/bootstrap.js.map +1 -0
- package/dist/creator2/web/bootstrap.d.ts +3 -0
- package/dist/creator2/web/bootstrap.d.ts.map +1 -0
- package/dist/creator2/web/bootstrap.js +15 -0
- package/dist/creator2/web/bootstrap.js.map +1 -0
- package/dist/creator2/web/client.d.ts +60 -0
- package/dist/creator2/web/client.d.ts.map +1 -0
- package/dist/creator2/web/client.js +293 -0
- package/dist/creator2/web/client.js.map +1 -0
- package/dist/creator2/web/creator2.d.ts +5 -0
- package/dist/creator2/web/creator2.d.ts.map +1 -0
- package/dist/creator2/web/creator2.js +27 -0
- package/dist/creator2/web/creator2.js.map +1 -0
- package/dist/creator2/web/privacy.d.ts +3 -0
- package/dist/creator2/web/privacy.d.ts.map +1 -0
- package/dist/creator2/web/privacy.js +39 -0
- package/dist/creator2/web/privacy.js.map +1 -0
- package/dist/creator2/web/runtime.d.ts +23 -0
- package/dist/creator2/web/runtime.d.ts.map +1 -0
- package/dist/creator2/web/runtime.js +265 -0
- package/dist/creator2/web/runtime.js.map +1 -0
- package/dist/creator2/web/types.d.ts +91 -0
- package/dist/creator2/web/types.d.ts.map +1 -0
- package/dist/creator2/web/types.js +3 -0
- package/dist/creator2/web/types.js.map +1 -0
- package/dist/creator3/core/client.d.ts +1 -0
- package/dist/creator3/core/client.d.ts.map +1 -1
- package/dist/creator3/core/client.js +5 -0
- package/dist/creator3/core/client.js.map +1 -1
- package/dist/creator3/core/platform-client.d.ts +46 -0
- package/dist/creator3/core/platform-client.d.ts.map +1 -0
- package/dist/creator3/core/platform-client.js +135 -0
- package/dist/creator3/core/platform-client.js.map +1 -0
- package/dist/creator3/core/platform-options.d.ts +30 -0
- package/dist/creator3/core/platform-options.d.ts.map +1 -0
- package/dist/creator3/core/platform-options.js +2 -0
- package/dist/creator3/core/platform-options.js.map +1 -0
- package/dist/creator3/core/platform-runtime.d.ts +59 -0
- package/dist/creator3/core/platform-runtime.d.ts.map +1 -0
- package/dist/creator3/core/platform-runtime.js +29 -0
- package/dist/creator3/core/platform-runtime.js.map +1 -0
- package/dist/creator3/core/plugin-api.d.ts +1 -1
- package/dist/creator3/core/plugin-api.d.ts.map +1 -1
- package/dist/creator3/core/transport.d.ts +1 -1
- package/dist/creator3/core/transport.d.ts.map +1 -1
- package/dist/creator3/core/version.d.ts +1 -1
- package/dist/creator3/core/version.js +1 -1
- package/dist/creator3/creator3/index.d.ts +6 -3
- package/dist/creator3/creator3/index.d.ts.map +1 -1
- package/dist/creator3/creator3/index.js +13 -8
- package/dist/creator3/creator3/index.js.map +1 -1
- package/dist/creator3/native/bootstrap.d.ts +2 -0
- package/dist/creator3/native/bootstrap.d.ts.map +1 -0
- package/dist/creator3/native/bootstrap.js +32 -0
- package/dist/creator3/native/bootstrap.js.map +1 -0
- package/dist/creator3/web/bootstrap.d.ts +3 -0
- package/dist/creator3/web/bootstrap.d.ts.map +1 -0
- package/dist/creator3/web/bootstrap.js +11 -0
- package/dist/creator3/web/bootstrap.js.map +1 -0
- package/dist/creator3/web/client.d.ts +60 -0
- package/dist/creator3/web/client.d.ts.map +1 -0
- package/dist/creator3/web/client.js +255 -0
- package/dist/creator3/web/client.js.map +1 -0
- package/dist/creator3/web/creator3.d.ts +5 -0
- package/dist/creator3/web/creator3.d.ts.map +1 -0
- package/dist/creator3/web/creator3.js +11 -0
- package/dist/creator3/web/creator3.js.map +1 -0
- package/dist/creator3/web/privacy.d.ts +3 -0
- package/dist/creator3/web/privacy.d.ts.map +1 -0
- package/dist/creator3/web/privacy.js +26 -0
- package/dist/creator3/web/privacy.js.map +1 -0
- package/dist/creator3/web/runtime.d.ts +23 -0
- package/dist/creator3/web/runtime.d.ts.map +1 -0
- package/dist/creator3/web/runtime.js +267 -0
- package/dist/creator3/web/runtime.js.map +1 -0
- package/dist/creator3/web/types.d.ts +91 -0
- package/dist/creator3/web/types.d.ts.map +1 -0
- package/dist/creator3/web/types.js +2 -0
- package/dist/creator3/web/types.js.map +1 -0
- package/extensions/creator2/install-web.cjs +69 -0
- package/extensions/creator2/main.js +19 -2
- package/extensions/creator2/project-configuration.cjs +135 -0
- package/extensions/creator3/dist/hooks.js +13 -0
- package/extensions/creator3/install-web.cjs +69 -0
- package/extensions/creator3/project-configuration.cjs +135 -0
- package/native/ios/FTCocosBridge.podspec +1 -1
- package/package.json +19 -3
- package/runtime/native.js +1191 -0
- package/web/bootstrap/package.json +4 -0
- package/web/bootstrap.js +1042 -0
- package/web/bootstrap.js.map +7 -0
- package/web/creator2/package.json +4 -0
- package/web/creator3/package.json +4 -0
package/README.md
CHANGED
|
@@ -7,16 +7,45 @@
|
|
|
7
7
|
|
|
8
8
|
## Introduction
|
|
9
9
|
|
|
10
|
-
Guance Cloud Application Monitoring collects and analyzes RUM, Log, and Trace data from Cocos Creator applications. The SDK supports native Android and iOS builds for Cocos Creator 2.4 and 3.x.
|
|
10
|
+
Guance Cloud Application Monitoring collects and analyzes RUM, Log, and Trace data from Cocos Creator applications. The SDK supports native Android and iOS builds, plus Web Mobile and Web Desktop builds, for Cocos Creator 2.4 and 3.x.
|
|
11
11
|
|
|
12
12
|
## Supported Scope
|
|
13
13
|
|
|
14
|
-
| Package entry | Supported Cocos Creator |
|
|
14
|
+
| Package entry | Supported Cocos Creator | Supported targets |
|
|
15
15
|
| --- | --- | --- |
|
|
16
|
-
| `@cloudcare/cocos-sdk/creator2` | 2.4.5–2.4.15 | Android API 21+, iOS 15
|
|
17
|
-
| `@cloudcare/cocos-sdk/creator3` | 3.6.3–3.8.x | Android API 21+, iOS 15
|
|
18
|
-
|
|
19
|
-
Cocos Creator 3.0–3.6.2 is supported on a best-effort basis because the stable native build extension API starts at 3.6.3.
|
|
16
|
+
| `@cloudcare/cocos-sdk/creator2` | 2.4.5–2.4.15 | Android API 21+, iOS 15+, Web Mobile / Web Desktop |
|
|
17
|
+
| `@cloudcare/cocos-sdk/creator3` | 3.6.3–3.8.x | Android API 21+, iOS 15+, Web Mobile / Web Desktop |
|
|
18
|
+
|
|
19
|
+
Cocos Creator 3.0–3.6.2 is supported on a best-effort basis because the stable native build extension API starts at 3.6.3. Mini-game and native desktop targets are not currently supported.
|
|
20
|
+
|
|
21
|
+
## Web integration
|
|
22
|
+
|
|
23
|
+
Configure Web reporting separately in `cocos-sdk.config.json`; native Android/iOS
|
|
24
|
+
application IDs and reporting endpoints are not reused. See the
|
|
25
|
+
[unified configuration example](https://github.com/GuanceCloud/datakit-cocos/blob/dev/examples/unified/cocos-sdk.config.example.json).
|
|
26
|
+
Install Browser RUM `3.3.22` and/or Browser Logs `3.3.22` according to the enabled
|
|
27
|
+
collectors; Web Replay also requires Browser WebGL `3.3.8`. Then run
|
|
28
|
+
`npx guance-cocos install --web`, reopen Creator, and rebuild the Web project.
|
|
29
|
+
|
|
30
|
+
Use the same `/creator2` or `/creator3` base SDK entry and call `guanceSdk.start()`
|
|
31
|
+
to apply project settings. The build extension initializes Browser collectors
|
|
32
|
+
before the engine. Configure Replay through `replay.enabled`, shared sampling,
|
|
33
|
+
and `replay.web`; set `replay.native: false` for Web-only Replay to avoid requiring
|
|
34
|
+
the native Replay package. Native `withSessionReplay(...)` composition is not
|
|
35
|
+
supported on Web.
|
|
36
|
+
|
|
37
|
+
Web canvas recording requires explicit `canvasPrivacy: "allow"`. Protected nodes
|
|
38
|
+
and input fields block the whole canvas; native node-level masking is unavailable.
|
|
39
|
+
Web also does not support timed Actions, manual Resource timing, manual Long Tasks,
|
|
40
|
+
manual trace-header generation, or shutting down page-wide Browser collectors.
|
|
41
|
+
|
|
42
|
+
Without Web configuration, importing the base SDK does not start collection.
|
|
43
|
+
Calling initialization or instrumentation APIs without the Web runtime throws an
|
|
44
|
+
error. Native-only integrations must guard SDK calls and native Replay composition
|
|
45
|
+
with a platform check when building for Web.
|
|
46
|
+
|
|
47
|
+
After upgrading, rerun the installer and rebuild native projects as well,
|
|
48
|
+
including base-only integrations, to install the matching platform runtime.
|
|
20
49
|
|
|
21
50
|
## Sampling configuration
|
|
22
51
|
|
package/bin/cli.cjs
CHANGED
|
@@ -36,12 +36,19 @@ if (manager !== undefined && !['spm', 'cocoapods'].includes(manager)) {
|
|
|
36
36
|
}
|
|
37
37
|
const configFile = path.join(projectRoot, 'cocos-sdk.config.json');
|
|
38
38
|
const config = readJson(configFile) || {};
|
|
39
|
+
const projectConfiguration = require('./project-configuration.cjs');
|
|
39
40
|
if (rawArguments.includes('--replay') && rawArguments.includes('--no-replay')) fail('Choose either --replay or --no-replay.');
|
|
41
|
+
if (rawArguments.includes('--web') && rawArguments.includes('--no-web')) fail('Choose either --web or --no-web.');
|
|
42
|
+
const webEnabled = rawArguments.includes('--web') ? true : rawArguments.includes('--no-web') ? false : config.web?.enabled === true;
|
|
40
43
|
const replayEnabled = rawArguments.includes('--replay') ? true
|
|
41
44
|
: rawArguments.includes('--no-replay') ? false : config.replay?.enabled === true;
|
|
45
|
+
const effectiveConfig = { ...config, web: { ...config.web, enabled: webEnabled }, replay: { ...config.replay, enabled: replayEnabled } };
|
|
46
|
+
const nativeReplayEnabled = projectConfiguration.nativeReplayEnabled(effectiveConfig);
|
|
47
|
+
const nativeConfiguration = projectConfiguration.resolveNativeConfiguration(effectiveConfig);
|
|
48
|
+
const webConfiguration = projectConfiguration.resolveWebConfiguration(effectiveConfig);
|
|
42
49
|
let replayRoot;
|
|
43
50
|
let replayDescriptor;
|
|
44
|
-
if (
|
|
51
|
+
if (nativeReplayEnabled) {
|
|
45
52
|
try {
|
|
46
53
|
const projectRequire = createRequire(path.join(projectRoot, 'package.json'));
|
|
47
54
|
replayRoot = path.dirname(projectRequire.resolve('@cloudcare/cocos-session-replay/package.json'));
|
|
@@ -58,10 +65,33 @@ if (replayEnabled) {
|
|
|
58
65
|
const sources = [{ root: extensionSource }, { root: path.join(packageRoot, 'native'), prefix: 'native/' }];
|
|
59
66
|
if (replayRoot) sources.push({ root: path.join(replayRoot, 'native'), prefix: 'replay-native/' });
|
|
60
67
|
const generated = {
|
|
61
|
-
'sdk-integration.json': JSON.stringify({ schemaVersion: 1, version: metadata.version, replay:
|
|
68
|
+
'sdk-integration.json': JSON.stringify({ schemaVersion: 1, version: metadata.version, replay: nativeReplayEnabled }, null, 2) + '\n',
|
|
62
69
|
};
|
|
70
|
+
if (webEnabled) {
|
|
71
|
+
try { Object.assign(generated, require('./web-assets.cjs').webAssets(projectRoot, packageRoot, webConfiguration)); }
|
|
72
|
+
catch (error) { fail(error.message); }
|
|
73
|
+
}
|
|
63
74
|
if (replayDescriptor) generated['replay-integration.json'] = JSON.stringify(replayDescriptor, null, 2) + '\n';
|
|
64
75
|
syncManagedDirectory(destination, sources, generated);
|
|
76
|
+
// Install once with platform metadata; switching build targets never rewrites game imports.
|
|
77
|
+
const nativePluginFlags = { isPlugin: true, loadPluginInWeb: false, loadPluginInNative: true, loadPluginInEditor: true, ...(creatorMajor === 3 ? { loadPluginInMiniGame: false } : {}) };
|
|
78
|
+
const nativePluginMeta = creatorMajor === 2
|
|
79
|
+
? { ver: '1.0.8', uuid: '22890dac-cd02-4da1-817a-f4eb4468a2c3', importer: 'javascript', ...nativePluginFlags, subMetas: {} }
|
|
80
|
+
: { ver: '4.0.24', uuid: '22890dac-cd02-4da1-817a-f4eb4468a2c3', importer: 'javascript', imported: true, files: [], subMetas: {}, userData: { ...nativePluginFlags, simulateGlobals: [] } };
|
|
81
|
+
const runtimeDirectory = path.join(projectRoot, 'assets', 'guance-cocos-sdk-runtime');
|
|
82
|
+
const nativeMetaFile = path.join(runtimeDirectory, 'native.js.meta');
|
|
83
|
+
// Creator upgrades metadata versions and adds importer fields. Preserve those edits and the asset UUID.
|
|
84
|
+
const existingMeta = readJson(nativeMetaFile);
|
|
85
|
+
const existingFlags = creatorMajor === 2 ? existingMeta : existingMeta?.userData;
|
|
86
|
+
if (existingMeta && Object.entries(nativePluginFlags).some(([key, value]) => existingFlags?.[key] !== value)) {
|
|
87
|
+
fail('The SDK native runtime must remain a plugin loaded only on native platforms and in the Editor. Restore its import settings before reinstalling.');
|
|
88
|
+
}
|
|
89
|
+
syncManagedDirectory(runtimeDirectory, [], {
|
|
90
|
+
'native.js': fs.readFileSync(path.join(packageRoot, 'runtime', 'native.js'), 'utf8')
|
|
91
|
+
+ (replayRoot ? fs.readFileSync(path.join(replayRoot, 'runtime', `creator${creatorMajor}.js`), 'utf8') : '')
|
|
92
|
+
+ projectConfiguration.nativeConfigurationScript(nativeConfiguration),
|
|
93
|
+
});
|
|
94
|
+
if (!existingMeta) fs.writeFileSync(nativeMetaFile, JSON.stringify(nativePluginMeta, null, 2) + '\n');
|
|
65
95
|
const componentDestination = path.join(projectRoot, 'assets', 'guance-cocos-sdk');
|
|
66
96
|
if (replayRoot) syncManagedDirectory(componentDestination, [{ root: path.join(replayRoot, 'components', `creator${creatorMajor}`) }]);
|
|
67
97
|
// Keep existing component scripts and .meta files when disabling Replay: scenes may reference them.
|
|
@@ -69,13 +99,15 @@ if (manager !== undefined) config.ios = { ...config.ios, dependencyManager: mana
|
|
|
69
99
|
if (rawArguments.includes('--replay') || rawArguments.includes('--no-replay') || config.replay) {
|
|
70
100
|
config.replay = { ...config.replay, enabled: replayEnabled };
|
|
71
101
|
}
|
|
72
|
-
if (
|
|
102
|
+
if (rawArguments.includes('--web') || rawArguments.includes('--no-web')) config.web = { ...config.web, enabled: webEnabled };
|
|
103
|
+
if (manager !== undefined || ['--replay', '--no-replay', '--web', '--no-web'].some(flag => rawArguments.includes(flag))) {
|
|
73
104
|
fs.writeFileSync(configFile, `${JSON.stringify(config, null, 2)}\n`);
|
|
74
105
|
}
|
|
75
106
|
process.stdout.write(
|
|
76
107
|
`Installed ${metadata.name} for Cocos Creator ${creatorMajor} at ${destination} (Replay: ${replayEnabled ? 'enabled' : 'disabled'})\n`
|
|
77
|
-
+ (
|
|
78
|
-
+
|
|
108
|
+
+ (replayRoot ? `Installed ReplayPrivacy at ${componentDestination}. Add it through Session Replay/ReplayPrivacy in the component menu.\n` : '')
|
|
109
|
+
+ (webEnabled ? 'Web: import @cloudcare/cocos-sdk/creator' + creatorMajor + ' and call start() to use project settings.\n' : '')
|
|
110
|
+
+ 'Re-open Cocos Creator, enable the guance-cocos-sdk extension, and rebuild the project.\n',
|
|
79
111
|
);
|
|
80
112
|
if (fs.existsSync(legacyDestination)) {
|
|
81
113
|
process.stderr.write(
|
|
@@ -146,11 +178,16 @@ function printHelp() {
|
|
|
146
178
|
'Options:',
|
|
147
179
|
' --project <path> Cocos project root (defaults to the current directory)',
|
|
148
180
|
' --creator <2|3> Override automatic Cocos Creator version detection',
|
|
181
|
+
' --web Install Browser bundles using cocos-sdk.config.json',
|
|
182
|
+
' --no-web Disable Web bootstrap integration',
|
|
149
183
|
' --replay Include the separately installed Session Replay package',
|
|
150
184
|
' --no-replay Remove SDK-managed Replay native integration on rebuild',
|
|
151
185
|
' --ios-dependency-manager <spm|cocoapods> Save the iOS dependency manager in cocos-sdk.config.json',
|
|
152
186
|
' -h, --help Show this help',
|
|
153
187
|
'',
|
|
188
|
+
'Project settings: configuration supplies native/shared settings; web.configuration supplies Web connection settings.',
|
|
189
|
+
'Replay settings: replay.enabled, shared sampling, replay.native and replay.web. Call the SDK start() method to use them.',
|
|
190
|
+
'',
|
|
154
191
|
].join('\n'));
|
|
155
192
|
}
|
|
156
193
|
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const fs = require('fs');
|
|
4
|
+
const path = require('path');
|
|
5
|
+
const NATIVE = ['captureFps', 'maxImageDimension', 'imagePolicy', 'touchPrivacy'];
|
|
6
|
+
const WEB = ['captureFps', 'maxImageDimension', 'quality', 'maxFrameBytes', 'canvasPrivacy', 'canvasId'];
|
|
7
|
+
const SAMPLING = ['sessionReplaySamplingRate', 'sessionReplayOnErrorSamplingRate'];
|
|
8
|
+
function object(value, name) {
|
|
9
|
+
if (!value || typeof value !== 'object' || Array.isArray(value)) throw new Error(`${name} must be an object`);
|
|
10
|
+
}
|
|
11
|
+
function keys(value, allowed, name) {
|
|
12
|
+
object(value, name);
|
|
13
|
+
for (const key of Object.keys(value)) if (!allowed.includes(key)) throw new Error(`Unsupported ${name}.${key}`);
|
|
14
|
+
}
|
|
15
|
+
function number(value, min, max, name, integer = true) {
|
|
16
|
+
if (value !== undefined && (typeof value !== 'number' || !Number.isFinite(value) || value < min || value > max || integer && !Number.isInteger(value))) {
|
|
17
|
+
throw new Error(`${name} must be ${integer ? 'an integer' : 'a number'} between ${min} and ${max}`);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
function validateReplay(replay) {
|
|
21
|
+
if (replay === undefined) return;
|
|
22
|
+
keys(replay, ['enabled', ...SAMPLING, 'native', 'web'], 'replay');
|
|
23
|
+
if (replay.enabled !== undefined && typeof replay.enabled !== 'boolean') throw new Error('replay.enabled must be boolean');
|
|
24
|
+
for (const field of SAMPLING) number(replay[field], 0, 100, `replay.${field}`, false);
|
|
25
|
+
for (const platform of ['native', 'web']) {
|
|
26
|
+
const options = replay[platform];
|
|
27
|
+
if (options === undefined || options === false) continue;
|
|
28
|
+
keys(options, platform === 'native' ? NATIVE : WEB, `replay.${platform}`);
|
|
29
|
+
number(options.captureFps, 1, 5, `replay.${platform}.captureFps`);
|
|
30
|
+
number(options.maxImageDimension, 1, 2048, `replay.${platform}.maxImageDimension`);
|
|
31
|
+
if (platform === 'native') {
|
|
32
|
+
if (options.touchPrivacy !== undefined && !['hide', 'show'].includes(options.touchPrivacy)) throw new Error('replay.native.touchPrivacy must be hide or show');
|
|
33
|
+
if (options.imagePolicy !== undefined) {
|
|
34
|
+
keys(options.imagePolicy, ['quality', 'maxFrameBytes'], 'replay.native.imagePolicy');
|
|
35
|
+
if (options.imagePolicy.quality !== undefined && !['low', 'medium', 'high'].includes(options.imagePolicy.quality)) throw new Error('replay.native.imagePolicy.quality must be low, medium, or high');
|
|
36
|
+
number(options.imagePolicy.maxFrameBytes, 1024, 1048576, 'replay.native.imagePolicy.maxFrameBytes');
|
|
37
|
+
}
|
|
38
|
+
} else {
|
|
39
|
+
if (options.canvasPrivacy !== undefined && !['block', 'allow'].includes(options.canvasPrivacy)) throw new Error('replay.web.canvasPrivacy must be block or allow');
|
|
40
|
+
if (options.canvasId !== undefined && (typeof options.canvasId !== 'string' || !options.canvasId.trim())) throw new Error('replay.web.canvasId must be a nonempty string');
|
|
41
|
+
if (options.quality !== undefined && !['low', 'medium', 'high'].includes(options.quality)) number(options.quality, 0, 1, 'replay.web.quality', false);
|
|
42
|
+
number(options.maxFrameBytes, 1024, 1048576, 'replay.web.maxFrameBytes');
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function unified(project) {
|
|
47
|
+
return project.configuration !== undefined || Object.keys(project.replay || {}).some(key => key !== 'enabled');
|
|
48
|
+
}
|
|
49
|
+
function replayOptions(project, platform) {
|
|
50
|
+
validateReplay(project.replay);
|
|
51
|
+
const replay = project.replay;
|
|
52
|
+
if (!replay?.enabled || replay[platform] === false) return undefined;
|
|
53
|
+
return {
|
|
54
|
+
sessionReplaySamplingRate: replay.sessionReplaySamplingRate ?? 100,
|
|
55
|
+
sessionReplayOnErrorSamplingRate: replay.sessionReplayOnErrorSamplingRate ?? 0,
|
|
56
|
+
...(replay[platform] || {}),
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
function nativeReplayEnabled(project) { validateReplay(project.replay); return project.replay?.enabled === true && project.replay.native !== false; }
|
|
60
|
+
function resolveNativeConfiguration(project) {
|
|
61
|
+
validateReplay(project.replay);
|
|
62
|
+
if (project.configuration === undefined) return undefined;
|
|
63
|
+
object(project.configuration, 'configuration');
|
|
64
|
+
const config = JSON.parse(JSON.stringify(project.configuration));
|
|
65
|
+
keys(config, ['sdk', 'rum', 'logger', 'trace', 'autoTrack'], 'configuration');
|
|
66
|
+
object(config.sdk, 'configuration.sdk');
|
|
67
|
+
const replay = replayOptions(project, 'native');
|
|
68
|
+
if (replay) {
|
|
69
|
+
if (!config.rum) throw new Error('Native Replay requires configuration.rum');
|
|
70
|
+
config.replay = replay;
|
|
71
|
+
}
|
|
72
|
+
return config;
|
|
73
|
+
}
|
|
74
|
+
function resolveWebConfiguration(project) {
|
|
75
|
+
validateReplay(project.replay);
|
|
76
|
+
if (project.web?.enabled !== true) return undefined;
|
|
77
|
+
const override = project.web.configuration || {};
|
|
78
|
+
object(override, 'web.configuration');
|
|
79
|
+
if (!unified(project)) return override;
|
|
80
|
+
const native = resolveNativeConfiguration(project) || {};
|
|
81
|
+
// Copy only shared Browser settings. Native endpoints and application IDs stay out of Web artifacts.
|
|
82
|
+
const fields = {
|
|
83
|
+
sdk: ['serviceName', 'env', 'globalContext'],
|
|
84
|
+
rum: ['sessionSamplingRate', 'sampleRate', 'sessionOnErrorSamplingRate', 'sessionOnErrorSampleRate', 'globalContext'],
|
|
85
|
+
logger: ['logSamplingRate', 'sampleRate', 'enableCustomLog', 'logLevelFilters', 'globalContext'],
|
|
86
|
+
trace: ['traceSamplingRate', 'sampleRate', 'traceType'],
|
|
87
|
+
};
|
|
88
|
+
const config = {};
|
|
89
|
+
for (const [group, names] of Object.entries(fields)) {
|
|
90
|
+
if (native[group] !== undefined) config[group] = Object.fromEntries(names.filter(key => native[group][key] !== undefined).map(key => [key, native[group][key]]));
|
|
91
|
+
if (override[group] !== undefined) config[group] = { ...config[group], ...override[group] };
|
|
92
|
+
}
|
|
93
|
+
if (native.autoTrack || override.autoTrack) config.autoTrack = { ...native.autoTrack, ...override.autoTrack };
|
|
94
|
+
config.web = { ...override.web };
|
|
95
|
+
if (config.web.replay !== undefined) throw new Error('Configure Replay once at replay.web; remove web.configuration.web.replay');
|
|
96
|
+
const replay = replayOptions(project, 'web');
|
|
97
|
+
if (replay) {
|
|
98
|
+
if (!config.rum) throw new Error('Web Replay requires configuration.rum or web.configuration.rum');
|
|
99
|
+
config.web.replay = { enabled: true, ...replay };
|
|
100
|
+
}
|
|
101
|
+
return config;
|
|
102
|
+
}
|
|
103
|
+
function readProject(extensionRoot) {
|
|
104
|
+
const file = path.resolve(extensionRoot, '..', '..', 'cocos-sdk.config.json');
|
|
105
|
+
return fs.existsSync(file) ? JSON.parse(fs.readFileSync(file, 'utf8')) : {};
|
|
106
|
+
}
|
|
107
|
+
function nativeConfigurationScript(configuration) {
|
|
108
|
+
return '\n/* COCOS_PROJECT_CONFIGURATION_BEGIN */\n'
|
|
109
|
+
+ '(typeof window !== "undefined" ? window : globalThis).__FT_COCOS_CONFIGURATION__ = '
|
|
110
|
+
+ (configuration ? JSON.stringify(configuration).replace(/</g, '\\u003c') : 'undefined')
|
|
111
|
+
+ ';\n/* COCOS_PROJECT_CONFIGURATION_END */\n';
|
|
112
|
+
}
|
|
113
|
+
function configureNativeBuild(buildRoot, extensionRoot) {
|
|
114
|
+
if (!buildRoot || !fs.existsSync(buildRoot)) return;
|
|
115
|
+
const config = resolveNativeConfiguration(readProject(extensionRoot));
|
|
116
|
+
let found = false;
|
|
117
|
+
function visit(directory, depth) {
|
|
118
|
+
if (depth > 12) return;
|
|
119
|
+
for (const entry of fs.readdirSync(directory, { withFileTypes: true })) {
|
|
120
|
+
if (['node_modules', '.git', 'library', 'temp', 'cocos-sdk-native'].includes(entry.name)) continue;
|
|
121
|
+
const file = path.join(directory, entry.name);
|
|
122
|
+
if (entry.isDirectory()) visit(file, depth + 1);
|
|
123
|
+
else if (entry.isFile() && entry.name.endsWith('.js')) {
|
|
124
|
+
const source = fs.readFileSync(file, 'utf8');
|
|
125
|
+
if (!source.includes('__FT_COCOS_NATIVE_FACTORY__')) continue;
|
|
126
|
+
if (config?.replay && !source.includes('__FT_COCOS_REPLAY_FACTORY__')) throw new Error('Replay was enabled after installation. Rerun the installer with --replay and rebuild.');
|
|
127
|
+
const clean = source.replace(/\n?\/\* COCOS_PROJECT_CONFIGURATION_BEGIN \*\/[\s\S]*?\/\* COCOS_PROJECT_CONFIGURATION_END \*\/\n?/g, '');
|
|
128
|
+
fs.writeFileSync(file, clean + nativeConfigurationScript(config)); found = true;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
visit(path.resolve(buildRoot), 0);
|
|
133
|
+
if (config && !found) throw new Error('Native SDK runtime was not included in the build. Rerun the installer and rebuild.');
|
|
134
|
+
}
|
|
135
|
+
module.exports = { resolveNativeConfiguration, resolveWebConfiguration, nativeReplayEnabled, readProject, nativeConfigurationScript, configureNativeBuild };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const fs = require('fs');
|
|
4
|
+
const path = require('path');
|
|
5
|
+
const { createRequire } = require('module');
|
|
6
|
+
|
|
7
|
+
// Validated published bundle contracts. Native consumers do not install these packages.
|
|
8
|
+
const BUNDLES = [
|
|
9
|
+
['@cloudcare/browser-rum', '3.3.22', 'dataflux-rum.js', 'rum.js'],
|
|
10
|
+
['@cloudcare/browser-logs', '3.3.22', 'dataflux-logs.js', 'logs.js'],
|
|
11
|
+
['@cloudcare/browser-rum-webgl', '3.3.8', 'dataflux-rum-webgl.js', 'webgl.js'],
|
|
12
|
+
];
|
|
13
|
+
function webAssets(projectRoot, packageRoot, configuration) {
|
|
14
|
+
const resolve = createRequire(path.join(projectRoot, 'package.json'));
|
|
15
|
+
const files = {
|
|
16
|
+
'web/bootstrap.js': fs.readFileSync(path.join(packageRoot, 'web/bootstrap.js')),
|
|
17
|
+
'web/bootstrap.js.map': fs.readFileSync(path.join(packageRoot, 'web/bootstrap.js.map')),
|
|
18
|
+
};
|
|
19
|
+
const selected = BUNDLES.filter((_, i) => i === 0 ? configuration?.rum : i === 1 ? configuration?.logger : configuration?.web?.replay);
|
|
20
|
+
if (!selected.length) throw new Error('Configure web.configuration with rum or logger before installing --web');
|
|
21
|
+
selected.forEach(([name, version, source, target]) => {
|
|
22
|
+
let root;
|
|
23
|
+
try { root = path.dirname(resolve.resolve(`${name}/package.json`)); }
|
|
24
|
+
catch { throw new Error(`Install ${name}@${version} in the Cocos project before running --web`); }
|
|
25
|
+
if (JSON.parse(fs.readFileSync(path.join(root, 'package.json'), 'utf8')).version !== version) {
|
|
26
|
+
throw new Error(`The Web integration requires ${name}@${version}`);
|
|
27
|
+
}
|
|
28
|
+
files[`web/${target}`] = fs.readFileSync(path.join(root, 'bundle', source));
|
|
29
|
+
});
|
|
30
|
+
return files;
|
|
31
|
+
}
|
|
32
|
+
module.exports = { webAssets };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-tracking.js","sourceRoot":"","sources":["../../../../../src/core/auto-tracking.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auto-tracking.js","sourceRoot":"","sources":["../../../../../src/core/auto-tracking.ts"],"names":[],"mappings":"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","sourcesContent":["import { FTLogger, FTRUM, FTTrace } from './modules.js';\nimport type { FTAutoTrackingController, FTAutoTrackingScope } from './client.js';\nimport type { FTAutoTrackingConfig, FTAttributes } from './types.js';\n\nexport interface FTEngineTrackingHooks {\n onSceneChanged(callback: (name: string) => void, includeCurrent?: boolean): () => void;\n onAction(callback: (name: string, attributes?: FTAttributes) => void): () => void;\n}\n\ninterface FTGlobalWithFetch {\n fetch?: typeof fetch;\n XMLHttpRequest?: typeof XMLHttpRequest;\n console?: Console;\n addEventListener?: typeof globalThis.addEventListener;\n removeEventListener?: typeof globalThis.removeEventListener;\n}\n\nexport class FTDefaultAutoTracking implements FTAutoTrackingController {\n private stops: Array<() => void> = [];\n private networkStops: Array<() => void> = [];\n private activeView: string | undefined;\n\n constructor(\n private readonly rum: FTRUM,\n private readonly logger: FTLogger,\n private readonly trace: FTTrace,\n private readonly hooks: FTEngineTrackingHooks,\n private readonly target: FTGlobalWithFetch = globalThis,\n ) {}\n\n start(config: FTAutoTrackingConfig, viewName?: string, scope: FTAutoTrackingScope = 'all'): void {\n this.stop(scope);\n try {\n if (scope !== 'network') {\n if (viewName) this.switchView(viewName);\n if (config.scenes) this.installSceneTracking(viewName === undefined);\n if (config.actions) this.installActionTracking();\n if (config.errors) this.installErrorTracking();\n if (config.console) this.installConsoleTracking();\n }\n if (scope !== 'page' && config.network) {\n this.installFetchTracking();\n this.installXhrTracking();\n }\n } catch (error) {\n try { this.stop(scope); } catch { /* Preserve the installation error. */ }\n throw error;\n }\n }\n\n stop(scope: FTAutoTrackingScope = 'all'): void {\n let failure: unknown;\n const cleanup = (stop: () => void): void => {\n try { stop(); } catch (error) { if (failure === undefined) failure = error; }\n };\n if (scope !== 'page') this.networkStops.splice(0).reverse().forEach(cleanup);\n if (scope !== 'network') {\n this.stops.splice(0).reverse().forEach(cleanup);\n if (this.activeView) {\n cleanup(() => this.rum.stopView());\n this.activeView = undefined;\n }\n }\n if (failure !== undefined) throw failure;\n }\n\n private installSceneTracking(includeCurrent: boolean): void {\n this.stops.push(\n this.hooks.onSceneChanged((name) => {\n this.switchView(name);\n }, includeCurrent),\n );\n }\n\n private switchView(name: string): void {\n if (this.activeView) this.rum.stopView();\n this.activeView = name;\n this.rum.startView(name);\n }\n\n private installActionTracking(): void {\n this.stops.push(\n this.hooks.onAction((name, attributes) => this.rum.startAction(name, 'click', attributes)),\n );\n }\n\n private installErrorTracking(): void {\n if (!this.target.addEventListener || !this.target.removeEventListener) return;\n const errorListener = (event: Event): void => {\n const errorEvent = event as ErrorEvent;\n this.rum.addError(\n errorEvent.message || 'Uncaught JavaScript error',\n errorEvent.error?.stack || `${errorEvent.filename || ''}:${errorEvent.lineno || 0}`,\n );\n };\n const rejectionListener = (event: Event): void => {\n const reason = (event as PromiseRejectionEvent).reason;\n this.rum.addError(\n reason instanceof Error ? reason.message : String(reason),\n reason instanceof Error ? reason.stack || '' : '',\n 'unhandled_promise_rejection',\n );\n };\n this.target.addEventListener('error', errorListener);\n this.target.addEventListener('unhandledrejection', rejectionListener);\n this.stops.push(() => {\n this.target.removeEventListener?.('error', errorListener);\n this.target.removeEventListener?.('unhandledrejection', rejectionListener);\n });\n }\n\n private installConsoleTracking(): void {\n const consoleObject = this.target.console;\n if (!consoleObject) return;\n const methods: Array<keyof Pick<Console, 'log' | 'info' | 'warn' | 'error'>> = [\n 'log',\n 'info',\n 'warn',\n 'error',\n ];\n const originals = new Map<string, (...args: unknown[]) => void>();\n methods.forEach((method) => {\n const original = consoleObject[method].bind(consoleObject) as (...args: unknown[]) => void;\n originals.set(method, original);\n consoleObject[method] = ((...args: unknown[]) => {\n original(...args);\n const level = method === 'warn' ? 'warning' : method === 'error' ? 'error' : 'info';\n this.logger.log(args.map(stringifyLogValue).join(' '), level);\n }) as Console[typeof method];\n });\n this.stops.push(() => {\n methods.forEach((method) => {\n const original = originals.get(method);\n if (original) consoleObject[method] = original as Console[typeof method];\n });\n });\n }\n\n private installFetchTracking(): void {\n const original = this.target.fetch;\n if (!original) return;\n const tracked = (async (input: RequestInfo | URL, init?: RequestInit): Promise<Response> => {\n const inputObject = typeof input === 'object' ? input as { url?: string; method?: string; headers?: HeadersInit } : undefined;\n const url = typeof input === 'string' ? input : inputObject?.url || String(input);\n const method = init?.method || inputObject?.method || 'GET';\n const key = resourceKey();\n const headers = createHeaders(init?.headers || inputObject?.headers);\n forEachOwn(this.trace.getHeaders(url, key), (name, value) => setHeader(headers, name, value));\n this.rum.startResource(key);\n const start = nowNs();\n try {\n const response = await original(input, { ...init, headers });\n const end = nowNs();\n this.rum.stopResource(key);\n this.rum.addResource(\n key,\n {\n url,\n httpMethod: method,\n requestHeaders: headersToObject(headers),\n responseHeaders: headersToObject(response.headers),\n statusCode: response.status,\n },\n { fetchStartTime: start, responseStartTime: end, responseEndTime: end },\n );\n return response;\n } catch (error) {\n this.rum.stopResource(key);\n this.rum.addError(String(error), error instanceof Error ? error.stack || '' : '', 'network_error');\n throw error;\n }\n }) as typeof fetch;\n this.networkStops.push(() => {\n this.target.fetch = original;\n });\n this.target.fetch = tracked;\n }\n\n private installXhrTracking(): void {\n const Xhr = this.target.XMLHttpRequest;\n if (!Xhr) return;\n const open = Xhr.prototype.open;\n const send = Xhr.prototype.send;\n const setRequestHeader = Xhr.prototype.setRequestHeader;\n const metadata = new WeakMap<XMLHttpRequest, { key: string; method: string; url: string; headers: Record<string, string> }>();\n const rum = this.rum;\n const trace = this.trace;\n\n // Register each restore before assignment so partial installation can roll back.\n this.networkStops.push(() => { Xhr.prototype.open = open; });\n\n Xhr.prototype.open = function trackedOpen(this: XMLHttpRequest, method: string, url: string | URL, ...rest: unknown[]): void {\n metadata.set(this, { key: resourceKey(), method, url: String(url), headers: {} });\n (open as (...args: unknown[]) => void).call(this, method, url, ...rest);\n } as typeof open;\n this.networkStops.push(() => { Xhr.prototype.setRequestHeader = setRequestHeader; });\n Xhr.prototype.setRequestHeader = function trackedHeader(this: XMLHttpRequest, name: string, value: string): void {\n const data = metadata.get(this);\n if (data) data.headers[name] = value;\n setRequestHeader.call(this, name, value);\n };\n this.networkStops.push(() => { Xhr.prototype.send = send; });\n Xhr.prototype.send = function trackedSend(this: XMLHttpRequest, body?: Document | XMLHttpRequestBodyInit | null): void {\n const data = metadata.get(this);\n if (!data) return send.call(this, body);\n forEachOwn(trace.getHeaders(data.url, data.key), (name, value) => {\n data.headers[name] = value;\n setRequestHeader.call(this, name, value);\n });\n const started = nowNs();\n rum.startResource(data.key);\n let completed = false;\n const report = (): void => {\n if (completed) return;\n completed = true;\n const ended = nowNs();\n rum.stopResource(data.key);\n rum.addResource(\n data.key,\n {\n url: data.url,\n httpMethod: data.method,\n requestHeaders: data.headers,\n responseHeaders: parseXhrHeaders(this.getAllResponseHeaders()),\n statusCode: this.status,\n },\n { fetchStartTime: started, responseStartTime: ended, responseEndTime: ended },\n );\n };\n const originalLoadEnd = this.onloadend;\n this.addEventListener('loadend', report, { once: true });\n // Creator 2 JSB implements addEventListener by assigning the on* property.\n // Preserve the business handler there; DOM runtimes already keep both listeners.\n if (this.onloadend === report) {\n const xhr = this;\n const handler: NonNullable<XMLHttpRequest['onloadend']> = function (event): void {\n if (xhr.onloadend === handler) xhr.onloadend = originalLoadEnd;\n try { originalLoadEnd?.call(xhr, event); } finally { report(); }\n };\n this.onloadend = handler;\n }\n send.call(this, body);\n };\n }\n}\n\nfunction nowNs(): number {\n return Date.now() * 1_000_000;\n}\n\nlet resourceSequence = 0;\nfunction resourceKey(): string {\n resourceSequence = (resourceSequence + 1) % Number.MAX_SAFE_INTEGER;\n return `cocos-${Date.now().toString(36)}-${resourceSequence.toString(36)}`;\n}\n\nfunction createHeaders(source?: HeadersInit): Headers | Record<string, string> {\n const HeadersConstructor = (globalThis as unknown as { Headers?: typeof Headers }).Headers;\n if (HeadersConstructor) return new HeadersConstructor(source);\n const result: Record<string, string> = {};\n if (Array.isArray(source)) {\n source.forEach(([name, value]) => { result[name] = String(value); });\n } else if (source && typeof (source as Headers).forEach === 'function') {\n (source as Headers).forEach((value, name) => { result[name] = value; });\n } else if (source) {\n forEachOwn(source as Record<string, string>, (name, value) => { result[name] = String(value); });\n }\n return result;\n}\n\nfunction setHeader(headers: Headers | Record<string, string>, name: string, value: string): void {\n if (typeof (headers as Headers).set === 'function') (headers as Headers).set(name, value);\n else (headers as Record<string, string>)[name] = value;\n}\n\nfunction headersToObject(headers: Headers | Record<string, string>): Record<string, string> {\n const result: Record<string, string> = {};\n if (typeof (headers as Headers).forEach === 'function') {\n (headers as Headers).forEach((value, key) => { result[key] = value; });\n } else {\n forEachOwn(headers as Record<string, string>, (key, value) => { result[key] = value; });\n }\n return result;\n}\n\nfunction forEachOwn<T>(value: Record<string, T>, callback: (key: string, item: T) => void): void {\n Object.keys(value).forEach((key) => callback(key, value[key] as T));\n}\n\nfunction parseXhrHeaders(raw: string): Record<string, string> {\n const result: Record<string, string> = {};\n raw.trim().split(/[\\r\\n]+/).forEach((line) => {\n const index = line.indexOf(':');\n if (index > 0) result[line.slice(0, index).trim()] = line.slice(index + 1).trim();\n });\n return result;\n}\n\nfunction stringifyLogValue(value: unknown): string {\n if (typeof value === 'string') return value;\n if (value instanceof Error) return `${value.message}\\n${value.stack || ''}`;\n try {\n return JSON.stringify(value);\n } catch {\n return String(value);\n }\n}\n"]}
|
|
@@ -76,6 +76,7 @@ export declare class FTCocosSDK {
|
|
|
76
76
|
private hybridAutoTracking;
|
|
77
77
|
private readonly ownership;
|
|
78
78
|
constructor(transport: FTNativeTransport, autoTracking?: FTAutoTrackingController | undefined, engine?: 'creator2' | 'creator3');
|
|
79
|
+
get isCocosEntered(): boolean;
|
|
79
80
|
/** Attaches an optional package before SDK initialization. */
|
|
80
81
|
registerExtension<T>(id: string, version: string, engine: string, factory: () => FTSDKExtension<T>): T;
|
|
81
82
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../../src/core/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAkB,OAAO,EAAE,MAAM,cAAc,CAAC;AACvF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EACV,oBAAoB,EACpB,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAGpB,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;AAE7D,MAAM,WAAW,wBAAwB;IACvC,KAAK,CAAC,MAAM,EAAE,oBAAoB,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC1F,IAAI,CAAC,KAAK,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,WAAW,CAAC,IAAI,IAAI,CAAC;IACrB;;;;OAIG;IACH,UAAU,CAAC,IAAI,IAAI,CAAC;IACpB;;;OAGG;IACH,YAAY,CAAC,IAAI,IAAI,CAAC;IACtB;;;;OAIG;IACH,cAAc,CAAC,IAAI,IAAI,CAAC;IACxB;;;OAGG;IACH,KAAK,CAAC,IAAI,IAAI,CAAC;IACf;;;;OAIG;IACH,KAAK,CAAC,IAAI,IAAI,CAAC;IACf,oFAAoF;IACpF,MAAM,CAAC,IAAI,IAAI,CAAC;IAChB;;;;OAIG;IACH,QAAQ,CAAC,IAAI,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,KAAK,EAAE,CAAC,CAAC;IACT,SAAS,EAAE,cAAc,CAAC;CAC3B;AAID;;;GAGG;AACH,qBAAa,UAAU;IAkBnB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU;IAnB1C,sDAAsD;IACtD,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,uCAAuC;IACvC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC;IACpB,0BAA0B;IAC1B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,sCAAsC;IACtC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,iBAAiB,KAAK;IAC/B,OAAO,CAAC,SAAS,CAAsC;IACvD,OAAO,CAAC,WAAW,CAAqB;IAExC,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,kBAAkB,CAA4B;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwB;gBAG/B,SAAS,EAAE,iBAAiB,EAC5B,YAAY,CAAC,EAAE,wBAAwB,YAAA,EAC/C,MAAM,GAAE,UAAU,GAAG,UAAuB;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../../src/core/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAkB,OAAO,EAAE,MAAM,cAAc,CAAC;AACvF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EACV,oBAAoB,EACpB,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAGpB,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;AAE7D,MAAM,WAAW,wBAAwB;IACvC,KAAK,CAAC,MAAM,EAAE,oBAAoB,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC1F,IAAI,CAAC,KAAK,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,WAAW,CAAC,IAAI,IAAI,CAAC;IACrB;;;;OAIG;IACH,UAAU,CAAC,IAAI,IAAI,CAAC;IACpB;;;OAGG;IACH,YAAY,CAAC,IAAI,IAAI,CAAC;IACtB;;;;OAIG;IACH,cAAc,CAAC,IAAI,IAAI,CAAC;IACxB;;;OAGG;IACH,KAAK,CAAC,IAAI,IAAI,CAAC;IACf;;;;OAIG;IACH,KAAK,CAAC,IAAI,IAAI,CAAC;IACf,oFAAoF;IACpF,MAAM,CAAC,IAAI,IAAI,CAAC;IAChB;;;;OAIG;IACH,QAAQ,CAAC,IAAI,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,KAAK,EAAE,CAAC,CAAC;IACT,SAAS,EAAE,cAAc,CAAC;CAC3B;AAID;;;GAGG;AACH,qBAAa,UAAU;IAkBnB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU;IAnB1C,sDAAsD;IACtD,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,uCAAuC;IACvC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC;IACpB,0BAA0B;IAC1B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,sCAAsC;IACtC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,iBAAiB,KAAK;IAC/B,OAAO,CAAC,SAAS,CAAsC;IACvD,OAAO,CAAC,WAAW,CAAqB;IAExC,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,kBAAkB,CAA4B;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwB;gBAG/B,SAAS,EAAE,iBAAiB,EAC5B,YAAY,CAAC,EAAE,wBAAwB,YAAA,EAC/C,MAAM,GAAE,UAAU,GAAG,UAAuB;IAYvD,IAAI,cAAc,IAAI,OAAO,CAA2E;IAExG,8DAA8D;IAC9D,iBAAiB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC;IAetG;;;;;;;;;;OAUG;IACH,KAAK,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAiBlC;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,MAAM,GAAE,mBAAwB,GAAG,IAAI;IA8B9C;;;;;;;OAOG;IACH,UAAU,CAAC,OAAO,GAAE,mBAAwB,GAAG,IAAI;IA6BnD;;;OAGG;IACH,UAAU,IAAI,IAAI;IAclB;;;;OAIG;IACH,MAAM,IAAI,IAAI;IAgBd;;;;;OAKG;IACH,QAAQ,IAAI,IAAI;CAcjB"}
|
|
@@ -33,6 +33,19 @@ var FTCocosSDK = /** @class */ (function () {
|
|
|
33
33
|
this.logger = new modules_js_1.FTLogger(transport, this.ownership);
|
|
34
34
|
this.trace = new modules_js_1.FTTrace(transport, this.ownership);
|
|
35
35
|
}
|
|
36
|
+
Object.defineProperty(FTCocosSDK.prototype, "lifecycleMode", {
|
|
37
|
+
/** @internal Ownership state used by the platform facade. */
|
|
38
|
+
get: function () {
|
|
39
|
+
return this.state === 'standalone' ? 'standalone' : this.state === 'hybrid-attached' || this.state === 'hybrid-entered' ? 'hybrid' : 'idle';
|
|
40
|
+
},
|
|
41
|
+
enumerable: false,
|
|
42
|
+
configurable: true
|
|
43
|
+
});
|
|
44
|
+
Object.defineProperty(FTCocosSDK.prototype, "isCocosEntered", {
|
|
45
|
+
get: function () { return this.state === 'standalone' || this.state === 'hybrid-entered'; },
|
|
46
|
+
enumerable: false,
|
|
47
|
+
configurable: true
|
|
48
|
+
});
|
|
36
49
|
/** Attaches an optional package before SDK initialization. */
|
|
37
50
|
FTCocosSDK.prototype.registerExtension = function (id, version, engine, factory) {
|
|
38
51
|
if (version !== version_js_1.FT_COCOS_SDK_VERSION || engine !== this.engine) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../../src/core/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../../src/core/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { FTLogger, FTMobileAgent, FTRUM, FTSDKOwnership, FTTrace } from './modules.js';\nimport type { FTNativeTransport } from './transport.js';\nimport type {\n FTAutoTrackingConfig,\n FTCocosConfig,\n FTCocosEnterOptions,\n FTCocosHybridConfig,\n} from './types.js';\nimport { FT_COCOS_SDK_VERSION } from './version.js';\n\nexport type FTAutoTrackingScope = 'all' | 'page' | 'network';\n\nexport interface FTAutoTrackingController {\n start(config: FTAutoTrackingConfig, viewName?: string, scope?: FTAutoTrackingScope): void;\n stop(scope?: FTAutoTrackingScope): void;\n}\n\nexport interface FTSDKLifecycle {\n /**\n * Validates or prepares the extension before standalone native SDK initialization.\n * Throwing aborts startup before the base SDK is initialized.\n */\n beforeStart?(): void;\n /**\n * Starts the extension after the base SDK and configured modules initialize,\n * but before Cocos automatic tracking starts. If this hook throws, the native\n * SDK remains initialized; startup is not automatically rolled back.\n */\n afterStart?(): void;\n /**\n * Prepares the extension before the native Hybrid attachment call.\n * The native host already owns SDK initialization at this point.\n */\n beforeAttach?(): void;\n /**\n * Undoes extension preparation if beforeAttach or the native attachment call\n * fails. Must tolerate partial preparation; errors from this hook are ignored\n * so the original attachment error can be rethrown.\n */\n rollbackAttach?(): void;\n /**\n * Starts extension activity when entering Cocos in Hybrid mode, before Cocos\n * automatic tracking starts. A failure triggers the leave hook for cleanup.\n */\n enter?(): void;\n /**\n * Stops extension activity when leaving Cocos in Hybrid mode, after automatic\n * tracking cleanup is attempted. Also runs if entering Cocos fails, so it must\n * tolerate partial startup. The native host SDK must remain running.\n */\n leave?(): void;\n /** Releases Hybrid extension bindings without shutting down the native host SDK. */\n detach?(): void;\n /**\n * Releases standalone extension resources after automatic tracking cleanup is\n * attempted and before the base native SDK shuts down. Base SDK shutdown is\n * still attempted if this hook throws. Not called for Hybrid applications.\n */\n shutdown?(): void;\n}\n\nexport interface FTSDKExtension<T> {\n value: T;\n lifecycle: FTSDKLifecycle;\n}\n\ntype FTCocosSDKState = 'idle' | 'standalone' | 'hybrid-attached' | 'hybrid-entered' | 'hybrid-detached';\n\n/**\n * Cocos SDK facade exposed through the platform entry point's SDK\n * singleton. Do not construct this class directly.\n */\nexport class FTCocosSDK {\n /** Base SDK lifecycle and user-binding operations. */\n readonly mobile: FTMobileAgent;\n /** Real User Monitoring operations. */\n readonly rum: FTRUM;\n /** Logging operations. */\n readonly logger: FTLogger;\n /** Distributed-tracing operations. */\n readonly trace: FTTrace;\n readonly extensionProtocol = 1;\n private extension: FTSDKExtension<unknown> | undefined;\n private extensionId: string | undefined;\n\n private state: FTCocosSDKState = 'idle';\n private hybridAutoTracking: FTAutoTrackingConfig = {};\n private readonly ownership = new FTSDKOwnership();\n\n constructor(\n private readonly transport: FTNativeTransport,\n private readonly autoTracking?: FTAutoTrackingController,\n readonly engine: 'creator2' | 'creator3' = 'creator3',\n ) {\n this.mobile = new FTMobileAgent(transport, this.ownership);\n this.rum = new FTRUM(transport, this.ownership);\n this.logger = new FTLogger(transport, this.ownership);\n this.trace = new FTTrace(transport, this.ownership);\n }\n\n /** @internal Ownership state used by the platform facade. */\n get lifecycleMode(): 'idle' | 'standalone' | 'hybrid' {\n return this.state === 'standalone' ? 'standalone' : this.state === 'hybrid-attached' || this.state === 'hybrid-entered' ? 'hybrid' : 'idle';\n }\n get isCocosEntered(): boolean { return this.state === 'standalone' || this.state === 'hybrid-entered'; }\n\n /** Attaches an optional package before SDK initialization. */\n registerExtension<T>(id: string, version: string, engine: string, factory: () => FTSDKExtension<T>): T {\n if (version !== FT_COCOS_SDK_VERSION || engine !== this.engine) {\n throw new Error('SDK extension version or Creator engine does not match the base SDK');\n }\n if (this.extension) {\n if (id !== this.extensionId) throw new Error('A different SDK extension is already installed');\n return this.extension.value as T;\n }\n if (this.state !== 'idle') throw new Error('Install SDK extensions before start() or attach()');\n const extension = factory();\n this.extension = extension;\n this.extensionId = id;\n return extension.value;\n }\n\n /**\n * Initializes the native SDK and the configured modules for a standalone\n * Cocos application.\n *\n * Call this once during application startup. Do not combine it with\n * {@link attach}, which is reserved for Hybrid applications initialized by\n * a native host.\n *\n * @param config - Base SDK settings and optional module configurations.\n * @throws If the SDK is already started or attached.\n */\n start(config: FTCocosConfig): void {\n rejectReplayConfig(config);\n if (this.state !== 'idle') {\n throw new Error('start() and attach() are mutually exclusive');\n }\n this.extension?.lifecycle.beforeStart?.();\n this.mobile.start(config.sdk);\n // Base SDK installation already belongs to this Cocos runtime after the\n // first bridge call succeeds, even if a later optional module fails.\n this.state = 'standalone';\n if (config.rum) this.rum.start(config.rum);\n if (config.logger) this.logger.start(config.logger);\n if (config.trace) this.trace.start(config.trace);\n this.extension?.lifecycle.afterStart?.();\n if (config.autoTrack) this.autoTracking?.start(config.autoTrack);\n }\n\n /**\n * Attaches Cocos instrumentation to an SDK instance initialized by the\n * native host application.\n *\n * Call this once before the first {@link enterCocos}. This method does not\n * initialize or shut down the native SDK. Network tracking starts here and\n * remains active across page transitions until {@link detach}. Repeated calls\n * while attached do not update configuration.\n *\n * @param config - Cocos tracking settings for the SDK owned by the native host.\n * @throws If standalone initialization has already started.\n */\n attach(config: FTCocosHybridConfig = {}): void {\n rejectReplayConfig(config);\n if (this.state === 'standalone') {\n throw new Error('start() and attach() are mutually exclusive');\n }\n if (this.state === 'hybrid-attached' || this.state === 'hybrid-entered') return;\n\n this.ownership.claimNativeHost();\n try {\n this.extension?.lifecycle.beforeAttach?.();\n this.transport.invoke('hybrid.attach', {\n sdkVersion: FT_COCOS_SDK_VERSION,\n });\n if (config.autoTrack?.network) {\n this.autoTracking?.start({ network: true }, undefined, 'network');\n }\n } catch (error) {\n try { this.autoTracking?.stop('network'); } catch { /* Preserve attachment error. */ }\n try { this.extension?.lifecycle.rollbackAttach?.(); } catch { /* Preserve attachment error. */ }\n if (this.state === 'hybrid-detached') {\n try { this.extension?.lifecycle.detach?.(); } catch { /* Preserve attachment error. */ }\n } else {\n this.ownership.releaseNativeHost();\n }\n throw error;\n }\n this.hybridAutoTracking = { ...(config.autoTrack || {}) };\n this.state = 'hybrid-attached';\n }\n\n /**\n * Starts page automatic tracking and registered extensions in Hybrid mode.\n * Network tracking remains active independently of page visibility.\n *\n * @param options - Options for the Cocos view being entered.\n * @throws If {@link attach} has not been called, or if `viewName` is omitted\n * while automatic scene tracking is disabled.\n */\n enterCocos(options: FTCocosEnterOptions = {}): void {\n if (this.state === 'standalone') {\n throw new Error('enterCocos() is only available after attach()');\n }\n if (this.state === 'idle' || this.state === 'hybrid-detached') {\n throw new Error('Call attach() before enterCocos()');\n }\n if (this.state === 'hybrid-entered') return;\n\n const viewName = nonEmptyText(options.viewName);\n if (!this.hybridAutoTracking.scenes && !viewName) {\n throw new TypeError('enterCocos.viewName is required when scene tracking is disabled');\n }\n\n try {\n this.extension?.lifecycle.enter?.();\n this.autoTracking?.start(this.hybridAutoTracking, viewName, 'page');\n this.state = 'hybrid-entered';\n } catch (error) {\n try { this.autoTracking?.stop('page'); } catch { /* Preserve the entry error. */ }\n try {\n this.extension?.lifecycle.leave?.();\n } catch {\n // Preserve the error that prevented entering Cocos.\n }\n throw error;\n }\n }\n\n /**\n * Stops page automatic tracking and registered extensions in Hybrid mode.\n * Network tracking and the native host SDK remain running.\n */\n leaveCocos(): void {\n if (this.state === 'standalone') {\n throw new Error('leaveCocos() is only available after attach()');\n }\n if (this.state !== 'hybrid-entered') return;\n\n try {\n this.autoTracking?.stop('page');\n } finally {\n this.extension?.lifecycle.leave?.();\n this.state = 'hybrid-attached';\n }\n }\n\n /**\n * Removes Hybrid page and network instrumentation without shutting down the\n * native SDK. Requests already tracked may still finish reporting. Call attach()\n * again to resume with new configuration; native SDK ownership stays with the host.\n */\n detach(): void {\n if (this.state === 'standalone') throw new Error('detach() is only available after attach()');\n if (this.state === 'idle' || this.state === 'hybrid-detached') return;\n let failure: unknown;\n const cleanup = (operation: () => void): void => {\n try { operation(); } catch (error) { if (failure === undefined) failure = error; }\n };\n cleanup(() => this.leaveCocos());\n cleanup(() => this.autoTracking?.stop());\n // Keep the binding retryable if leaving failed (for example recorder restoration).\n if (failure !== undefined) throw failure;\n this.extension?.lifecycle.detach?.();\n this.hybridAutoTracking = {};\n this.state = 'hybrid-detached';\n }\n\n /**\n * Stops a standalone SDK instance and releases its Cocos instrumentation.\n *\n * Hybrid applications should call {@link leaveCocos} instead because the\n * native host owns SDK shutdown.\n */\n shutdown(): void {\n if (this.state === 'hybrid-attached' || this.state === 'hybrid-entered' || this.state === 'hybrid-detached') {\n throw new Error('The native host owns the native SDK; call leaveCocos() instead of shutdown()');\n }\n if (this.state === 'idle') return;\n let failure: unknown;\n const cleanup = (operation: () => void): void => {\n try { operation(); } catch (error) { if (failure === undefined) failure = error; }\n };\n cleanup(() => this.autoTracking?.stop());\n cleanup(() => this.extension?.lifecycle.shutdown?.());\n cleanup(() => { this.mobile.shutdown(); this.state = 'idle'; });\n if (failure !== undefined) throw failure;\n }\n}\n\nfunction nonEmptyText(value: string | undefined): string | undefined {\n return typeof value === 'string' && value.trim().length > 0 ? value : undefined;\n}\n\nfunction rejectReplayConfig(config: object): void {\n if ('replay' in config) {\n throw new Error('Session Replay requires @cloudcare/cocos-session-replay. Install the package and use withSessionReplay() before passing replay configuration.');\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/index.ts"],"names":[],"mappings":";;;AAoBA,2CAAoD;AAA3C,kHAAA,oBAAoB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/index.ts"],"names":[],"mappings":";;;AAoBA,2CAAoD;AAA3C,kHAAA,oBAAoB,OAAA","sourcesContent":["export type {\n FTAttributes,\n FTAutoTrackingConfig,\n FTCocosConfig,\n FTCocosEnterOptions,\n FTCocosHybridConfig,\n FTEnvironment,\n FTLoggerConfig,\n FTLogLevel,\n FTPrimitive,\n FTResourceContent,\n FTResourceMetrics,\n FTRUMConfig,\n FTSDKConfig,\n FTTraceConfig,\n FTTraceType,\n FTUserData,\n FTValue,\n} from './types.js';\n\nexport { FT_COCOS_SDK_VERSION } from './version.js';\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modules.js","sourceRoot":"","sources":["../../../../../src/core/modules.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"modules.js","sourceRoot":"","sources":["../../../../../src/core/modules.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FTNativeTransport } from './transport.js';\nimport type {\n FTAttributes,\n FTLogLevel,\n FTLoggerConfig,\n FTResourceContent,\n FTResourceMetrics,\n FTRUMConfig,\n FTSDKConfig,\n FTTraceConfig,\n FTUserData,\n} from './types.js';\nimport { requireText, validatedSamplingConfig } from './validation.js';\nimport {\n FT_COCOS_SDK_BRIDGE_INFO,\n FT_COCOS_SDK_BRIDGE_INFO_KEY,\n FT_COCOS_SDK_VERSION,\n FT_COCOS_SDK_VERSION_KEY,\n} from './version.js';\n\nexport class FTSDKOwnership {\n private mode: 'unclaimed' | 'standalone' | 'native-host' = 'unclaimed';\n\n claimStandalone(): void {\n if (this.mode === 'native-host') {\n throw new Error('The native host owns SDK initialization in Hybrid mode');\n }\n this.mode = 'standalone';\n }\n\n claimNativeHost(): void {\n if (this.mode === 'standalone') {\n throw new Error('Standalone initialization and native-host attachment are mutually exclusive');\n }\n this.mode = 'native-host';\n }\n\n releaseNativeHost(): void {\n if (this.mode === 'native-host') this.mode = 'unclaimed';\n }\n\n releaseStandalone(): void {\n if (this.mode === 'standalone') this.mode = 'unclaimed';\n }\n\n assertNativeHostDoesNotOwnSDK(): void {\n if (this.mode === 'native-host') {\n throw new Error('The native host owns the native SDK in Hybrid mode');\n }\n }\n}\n\nfunction compact<T extends object>(value: T): T {\n const source = value as Record<string, unknown>;\n const result: Record<string, unknown> = {};\n Object.keys(value).forEach((key) => {\n if (source[key] !== undefined) result[key] = source[key];\n });\n return result as T;\n}\n\nfunction withBridgeInfo(attributes?: FTAttributes): FTAttributes {\n return {\n [FT_COCOS_SDK_BRIDGE_INFO_KEY]: FT_COCOS_SDK_BRIDGE_INFO,\n ...(attributes || {}),\n };\n}\n\n/** Base SDK lifecycle and user identity operations. */\nexport class FTMobileAgent {\n constructor(\n private readonly transport: FTNativeTransport,\n private readonly ownership = new FTSDKOwnership(),\n ) {}\n\n /**\n * Initializes the native SDK connection.\n *\n * Supply either `datakitUrl`, or both `datawayUrl` and `clientToken`.\n *\n * @param config - Base SDK connection and service settings.\n */\n start(config: FTSDKConfig): void {\n if (!config.datakitUrl && !(config.datawayUrl && config.clientToken)) {\n throw new TypeError('Configure datakitUrl or datawayUrl with clientToken');\n }\n this.ownership.claimStandalone();\n this.transport.invoke('sdk.configure', compact({\n ...config,\n globalContext: {\n ...(config.globalContext || {}),\n [FT_COCOS_SDK_VERSION_KEY]: FT_COCOS_SDK_VERSION,\n },\n }));\n }\n\n /**\n * Binds a user identity to data collected after this call.\n *\n * @param user - A user ID or a structured user record.\n */\n bindUser(user: FTUserData | string): void {\n this.transport.invoke(\n 'sdk.bindUser',\n typeof user === 'string' ? { userId: requireText(user, 'userId') } : user,\n );\n }\n\n /** Removes the currently bound user identity. */\n unbindUser(): void {\n this.transport.invoke('sdk.unbindUser');\n }\n\n /** Shuts down a standalone native SDK instance. */\n shutdown(): void {\n this.ownership.assertNativeHostDoesNotOwnSDK();\n this.transport.invoke('sdk.shutdown');\n this.ownership.releaseStandalone();\n }\n}\n\n/** Manual Real User Monitoring operations. */\nexport class FTRUM {\n constructor(\n private readonly transport: FTNativeTransport,\n private readonly ownership = new FTSDKOwnership(),\n ) {}\n\n /**\n * Enables RUM with the supplied native and Cocos settings.\n *\n * @param config - RUM application IDs, sampling, and native tracking options.\n */\n start(config: FTRUMConfig): void {\n const payload = validatedSamplingConfig(config, 'rum', [\n ['sessionSamplingRate', 'sampleRate'],\n ['sessionOnErrorSamplingRate', 'sessionOnErrorSampleRate'],\n ]);\n this.ownership.claimStandalone();\n this.transport.invoke('rum.configure', compact(payload));\n }\n\n /**\n * Starts a RUM view.\n *\n * @param name - Application-defined view name.\n * @param attributes - Optional attributes attached to the view.\n */\n startView(name: string, attributes?: FTAttributes): void {\n this.transport.invoke('rum.startView', {\n name: requireText(name, 'view name'),\n attributes: withBridgeInfo(attributes),\n });\n }\n\n /**\n * Stops the currently active RUM view.\n *\n * @param attributes - Optional attributes attached when the view stops.\n */\n stopView(attributes?: FTAttributes): void {\n this.transport.invoke('rum.stopView', { attributes: withBridgeInfo(attributes) });\n }\n\n /**\n * Records a completed RUM action.\n *\n * @param name - Application-defined action name.\n * @param type - Action category. @defaultValue `'click'`\n * @param attributes - Optional attributes attached to the action.\n */\n addAction(name: string, type = 'click', attributes?: FTAttributes): void {\n this.transport.invoke('rum.addAction', {\n name: requireText(name, 'action name'),\n type: requireText(type, 'action type'),\n attributes: withBridgeInfo(attributes),\n });\n }\n\n /**\n * Starts a RUM action whose completion is detected by the native SDK.\n *\n * @param name - Application-defined action name.\n * @param type - Action category. @defaultValue `'click'`\n * @param attributes - Optional attributes attached to the action.\n */\n startAction(name: string, type = 'click', attributes?: FTAttributes): void {\n this.transport.invoke('rum.startAction', {\n name: requireText(name, 'action name'),\n type: requireText(type, 'action type'),\n attributes: withBridgeInfo(attributes),\n });\n }\n\n /**\n * Records an application error.\n *\n * @param message - Human-readable error message.\n * @param stack - Error stack or diagnostic details.\n * @param type - Application-defined error category. @defaultValue `'cocos_error'`\n * @param state - Application state when the error occurred. @defaultValue `'run'`\n * @param attributes - Optional attributes attached to the error.\n */\n addError(\n message: string,\n stack: string,\n type = 'cocos_error',\n state: 'run' | 'startup' | 'unknown' = 'run',\n attributes?: FTAttributes,\n ): void {\n this.transport.invoke('rum.addError', {\n message,\n stack,\n type,\n state,\n attributes: withBridgeInfo(attributes),\n });\n }\n\n /**\n * Records a long task.\n *\n * @param stack - Stack or diagnostic details for the task.\n * @param durationNs - Task duration in nanoseconds.\n * @param attributes - Optional attributes attached to the task.\n */\n addLongTask(stack: string, durationNs: number, attributes?: FTAttributes): void {\n this.transport.invoke('rum.addLongTask', {\n stack,\n durationNs,\n attributes: withBridgeInfo(attributes),\n });\n }\n\n /**\n * Starts tracking a resource using an application-defined correlation key.\n *\n * @param key - Key reused by subsequent calls for this resource.\n * @param attributes - Optional attributes attached to the resource.\n */\n startResource(key: string, attributes?: FTAttributes): void {\n this.transport.invoke('rum.startResource', {\n key: requireText(key, 'resource key'),\n attributes: withBridgeInfo(attributes),\n });\n }\n\n /**\n * Stops timing a resource previously started with {@link startResource}.\n *\n * @param key - Key passed to {@link startResource}.\n * @param attributes - Optional attributes attached when timing stops.\n */\n stopResource(key: string, attributes?: FTAttributes): void {\n this.transport.invoke('rum.stopResource', {\n key: requireText(key, 'resource key'),\n attributes: withBridgeInfo(attributes),\n });\n }\n\n /**\n * Adds request, response, and optional timing details to a tracked resource.\n *\n * @param key - Key passed to {@link startResource} and {@link stopResource}.\n * @param content - Request and response details safe to collect.\n * @param metrics - Optional network timing metrics.\n */\n addResource(\n key: string,\n content: FTResourceContent,\n metrics?: FTResourceMetrics,\n ): void {\n this.transport.invoke('rum.addResource', {\n key: requireText(key, 'resource key'),\n content,\n metrics,\n });\n }\n}\n\n/** Manual logging operations. */\nexport class FTLogger {\n constructor(\n private readonly transport: FTNativeTransport,\n private readonly ownership = new FTSDKOwnership(),\n ) {}\n\n /**\n * Enables the native logger.\n *\n * @param config - Logger sampling, filtering, and cache settings.\n */\n start(config: FTLoggerConfig): void {\n const payload = validatedSamplingConfig(config, 'logger', [\n ['logSamplingRate', 'sampleRate'],\n ]);\n this.ownership.claimStandalone();\n this.transport.invoke('logger.configure', compact(payload));\n }\n\n /**\n * Writes a custom log entry.\n *\n * @param content - Log message.\n * @param level - Log severity. @defaultValue `'info'`\n * @param attributes - Optional attributes attached to the log.\n */\n log(content: string, level: FTLogLevel = 'info', attributes?: FTAttributes): void {\n this.transport.invoke('logger.log', {\n content,\n level,\n attributes: withBridgeInfo(attributes),\n });\n }\n}\n\n/** Distributed-tracing operations. */\nexport class FTTrace {\n constructor(\n private readonly transport: FTNativeTransport,\n private readonly ownership = new FTSDKOwnership(),\n ) {}\n\n /**\n * Enables distributed tracing.\n *\n * @param config - Trace sampling and propagation settings.\n */\n start(config: FTTraceConfig): void {\n const payload = validatedSamplingConfig(config, 'trace', [\n ['traceSamplingRate', 'sampleRate'],\n ]);\n this.ownership.claimStandalone();\n this.transport.invoke('trace.configure', compact(payload));\n }\n\n /**\n * Returns propagation headers for an outgoing request.\n *\n * Pass the same `resourceKey` used for manual RUM resource tracking to link\n * the request with its trace.\n *\n * @param url - Absolute outgoing request URL.\n * @param resourceKey - Optional key used for manual RUM resource tracking.\n * @returns Headers to merge into the outgoing request.\n */\n getHeaders(url: string, resourceKey?: string): Record<string, string> {\n return (\n this.transport.invoke('trace.getHeaders', {\n url: requireText(url, 'url'),\n resourceKey,\n }) as Record<string, string> | undefined\n ) || {};\n }\n}\n"]}
|