@cloudcare/cocos-sdk 0.1.1-alpha.1 → 0.1.1-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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.d.ts +3 -1
- package/dist/creator2/core/auto-tracking.d.ts.map +1 -1
- package/dist/creator2/core/auto-tracking.js +60 -7
- 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 +14 -3
- package/dist/creator2/core/client.js.map +1 -1
- package/dist/creator2/core/index.js.map +1 -1
- package/dist/creator2/core/modules.d.ts.map +1 -1
- package/dist/creator2/core/modules.js +2 -2
- package/dist/creator2/core/modules.js.map +1 -1
- package/dist/creator2/core/observation.d.ts +25 -0
- package/dist/creator2/core/observation.d.ts.map +1 -0
- package/dist/creator2/core/observation.js +93 -0
- package/dist/creator2/core/observation.js.map +1 -0
- 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 +60 -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.d.ts +9 -0
- package/dist/creator2/core/types.d.ts.map +1 -1
- package/dist/creator2/core/types.js.map +1 -1
- package/dist/creator2/core/validation.d.ts +1 -0
- package/dist/creator2/core/validation.d.ts.map +1 -1
- package/dist/creator2/core/validation.js +13 -0
- package/dist/creator2/core/validation.js.map +1 -1
- package/dist/creator2/core/version.d.ts +1 -3
- package/dist/creator2/core/version.d.ts.map +1 -1
- package/dist/creator2/core/version.js +2 -4
- 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 +35 -0
- package/dist/creator2/native/bootstrap.js.map +1 -0
- package/dist/creator2/native/error-bootstrap.d.ts +2 -0
- package/dist/creator2/native/error-bootstrap.d.ts.map +1 -0
- package/dist/creator2/native/error-bootstrap.js +7 -0
- package/dist/creator2/native/error-bootstrap.js.map +1 -0
- package/dist/creator2/native/jsb-errors.d.ts +21 -0
- package/dist/creator2/native/jsb-errors.d.ts.map +1 -0
- package/dist/creator2/native/jsb-errors.js +91 -0
- package/dist/creator2/native/jsb-errors.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 +264 -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/auto-tracking.d.ts +3 -1
- package/dist/creator3/core/auto-tracking.d.ts.map +1 -1
- package/dist/creator3/core/auto-tracking.js +60 -7
- package/dist/creator3/core/auto-tracking.js.map +1 -1
- 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 +6 -3
- package/dist/creator3/core/client.js.map +1 -1
- package/dist/creator3/core/modules.d.ts.map +1 -1
- package/dist/creator3/core/modules.js +4 -9
- package/dist/creator3/core/modules.js.map +1 -1
- package/dist/creator3/core/observation.d.ts +25 -0
- package/dist/creator3/core/observation.d.ts.map +1 -0
- package/dist/creator3/core/observation.js +84 -0
- package/dist/creator3/core/observation.js.map +1 -0
- 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 +60 -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/types.d.ts +9 -0
- package/dist/creator3/core/types.d.ts.map +1 -1
- package/dist/creator3/core/validation.d.ts +1 -0
- package/dist/creator3/core/validation.d.ts.map +1 -1
- package/dist/creator3/core/validation.js +11 -0
- package/dist/creator3/core/validation.js.map +1 -1
- package/dist/creator3/core/version.d.ts +1 -3
- package/dist/creator3/core/version.d.ts.map +1 -1
- package/dist/creator3/core/version.js +1 -3
- package/dist/creator3/core/version.js.map +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/native/error-bootstrap.d.ts +2 -0
- package/dist/creator3/native/error-bootstrap.d.ts.map +1 -0
- package/dist/creator3/native/error-bootstrap.js +5 -0
- package/dist/creator3/native/error-bootstrap.js.map +1 -0
- package/dist/creator3/native/jsb-errors.d.ts +21 -0
- package/dist/creator3/native/jsb-errors.d.ts.map +1 -0
- package/dist/creator3/native/jsb-errors.js +82 -0
- package/dist/creator3/native/jsb-errors.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 +266 -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-native.cjs +19 -1
- 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-native.cjs +19 -1
- package/extensions/creator3/install-web.cjs +69 -0
- package/extensions/creator3/project-configuration.cjs +135 -0
- package/native/android/src/main/java/com/ft/sdk/cocos/FTCocosBridge.java +7 -10
- package/native/ios/FTCocosBridge.m +6 -4
- package/native/ios/FTCocosBridge.podspec +1 -1
- package/native/jsb-errors.js +266 -0
- package/package.json +19 -3
- package/runtime/native.js +1351 -0
- package/web/bootstrap/package.json +4 -0
- package/web/bootstrap.js +1053 -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,11 +1,12 @@
|
|
|
1
1
|
import { FTLogger, FTRUM, FTTrace } from './modules.js';
|
|
2
2
|
import type { FTAutoTrackingController, FTAutoTrackingScope } from './client.js';
|
|
3
3
|
import type { FTAutoTrackingConfig, FTAttributes } from './types.js';
|
|
4
|
+
import type { FTJsbErrorGlobal } from '../native/jsb-errors.js';
|
|
4
5
|
export interface FTEngineTrackingHooks {
|
|
5
6
|
onSceneChanged(callback: (name: string) => void, includeCurrent?: boolean): () => void;
|
|
6
7
|
onAction(callback: (name: string, attributes?: FTAttributes) => void): () => void;
|
|
7
8
|
}
|
|
8
|
-
interface FTGlobalWithFetch {
|
|
9
|
+
interface FTGlobalWithFetch extends FTJsbErrorGlobal {
|
|
9
10
|
fetch?: typeof fetch;
|
|
10
11
|
XMLHttpRequest?: typeof XMLHttpRequest;
|
|
11
12
|
console?: Console;
|
|
@@ -21,6 +22,7 @@ export declare class FTDefaultAutoTracking implements FTAutoTrackingController {
|
|
|
21
22
|
private stops;
|
|
22
23
|
private networkStops;
|
|
23
24
|
private activeView;
|
|
25
|
+
private readonly observations;
|
|
24
26
|
constructor(rum: FTRUM, logger: FTLogger, trace: FTTrace, hooks: FTEngineTrackingHooks, target?: FTGlobalWithFetch);
|
|
25
27
|
start(config: FTAutoTrackingConfig, viewName?: string, scope?: FTAutoTrackingScope): void;
|
|
26
28
|
stop(scope?: FTAutoTrackingScope): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-tracking.d.ts","sourceRoot":"","sources":["../../../../../src/core/auto-tracking.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"auto-tracking.d.ts","sourceRoot":"","sources":["../../../../../src/core/auto-tracking.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,MAAM,WAAW,qBAAqB;IACpC,cAAc,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,IAAI,CAAC;IACvF,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,YAAY,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CACnF;AAED,UAAU,iBAAkB,SAAQ,gBAAgB;IAClD,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,cAAc,CAAC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,OAAO,UAAU,CAAC,gBAAgB,CAAC;IACtD,mBAAmB,CAAC,EAAE,OAAO,UAAU,CAAC,mBAAmB,CAAC;CAC7D;AAED,qBAAa,qBAAsB,YAAW,wBAAwB;IAOlE,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAVzB,OAAO,CAAC,KAAK,CAAyB;IACtC,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;gBAG/B,GAAG,EAAE,KAAK,EACV,MAAM,EAAE,QAAQ,EAChB,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,qBAAqB,EAC5B,MAAM,GAAE,iBAA8B;IAKzD,KAAK,CAAC,MAAM,EAAE,oBAAoB,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,mBAA2B,GAAG,IAAI;IAoBhG,IAAI,CAAC,KAAK,GAAE,mBAA2B,GAAG,IAAI;IAiB9C,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,oBAAoB;IA6C5B,OAAO,CAAC,sBAAsB;IAiD9B,OAAO,CAAC,oBAAoB;IAwC5B,OAAO,CAAC,kBAAkB;CAkE3B"}
|
|
@@ -57,6 +57,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
57
57
|
};
|
|
58
58
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
59
59
|
exports.FTDefaultAutoTracking = void 0;
|
|
60
|
+
var observation_js_1 = require("./observation.js");
|
|
60
61
|
var FTDefaultAutoTracking = /** @class */ (function () {
|
|
61
62
|
function FTDefaultAutoTracking(rum, logger, trace, hooks, target) {
|
|
62
63
|
if (target === void 0) { target = globalThis; }
|
|
@@ -67,6 +68,7 @@ var FTDefaultAutoTracking = /** @class */ (function () {
|
|
|
67
68
|
this.target = target;
|
|
68
69
|
this.stops = [];
|
|
69
70
|
this.networkStops = [];
|
|
71
|
+
this.observations = new observation_js_1.FTObservationQueue(target);
|
|
70
72
|
}
|
|
71
73
|
FTDefaultAutoTracking.prototype.start = function (config, viewName, scope) {
|
|
72
74
|
if (scope === void 0) { scope = 'all'; }
|
|
@@ -113,6 +115,7 @@ var FTDefaultAutoTracking = /** @class */ (function () {
|
|
|
113
115
|
if (scope !== 'page')
|
|
114
116
|
this.networkStops.splice(0).reverse().forEach(cleanup);
|
|
115
117
|
if (scope !== 'network') {
|
|
118
|
+
this.observations.stop();
|
|
116
119
|
this.stops.splice(0).reverse().forEach(cleanup);
|
|
117
120
|
if (this.activeView) {
|
|
118
121
|
cleanup(function () { return _this.rum.stopView(); });
|
|
@@ -140,6 +143,29 @@ var FTDefaultAutoTracking = /** @class */ (function () {
|
|
|
140
143
|
};
|
|
141
144
|
FTDefaultAutoTracking.prototype.installErrorTracking = function () {
|
|
142
145
|
var _this = this;
|
|
146
|
+
var _a;
|
|
147
|
+
var nativeErrors = this.target.__FT_COCOS_JSB_ERRORS__;
|
|
148
|
+
if ((nativeErrors === null || nativeErrors === void 0 ? void 0 : nativeErrors.protocol) === 2) {
|
|
149
|
+
this.stops.push(nativeErrors.subscribe(function (location, message, stack) {
|
|
150
|
+
var _a;
|
|
151
|
+
// Creator 2 also reports promise bookkeeping notifications through onError.
|
|
152
|
+
if (message === 'handlerAddedAfterPromiseRejected' || message === 'rejectAfterPromiseResolved'
|
|
153
|
+
|| message === 'resolveAfterPromiseResolved')
|
|
154
|
+
return;
|
|
155
|
+
var rejection = message === 'unhandledRejectedPromise';
|
|
156
|
+
var reason = rejection ? (_a = stack.split(/\r?\n/, 1)[0]) === null || _a === void 0 ? void 0 : _a.replace(/^Error:\s*/, '') : message;
|
|
157
|
+
var errorMessage = reason || message || 'Uncaught JavaScript error';
|
|
158
|
+
var errorStack = stack || location || '';
|
|
159
|
+
var type = rejection ? 'unhandled_promise_rejection' : 'cocos_error';
|
|
160
|
+
_this.observations.enqueue(function () {
|
|
161
|
+
_this.rum.addError(errorMessage, errorStack, type);
|
|
162
|
+
}, 2 * (location.length + message.length + stack.length));
|
|
163
|
+
}));
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
if (nativeErrors || typeof ((_a = this.target.jsb) === null || _a === void 0 ? void 0 : _a.onError) === 'function') {
|
|
167
|
+
throw new Error('Cocos native error bootstrap is missing. Rerun the SDK installer and rebuild the native project.');
|
|
168
|
+
}
|
|
143
169
|
if (!this.target.addEventListener || !this.target.removeEventListener)
|
|
144
170
|
return;
|
|
145
171
|
var errorListener = function (event) {
|
|
@@ -170,24 +196,51 @@ var FTDefaultAutoTracking = /** @class */ (function () {
|
|
|
170
196
|
'warn',
|
|
171
197
|
'error',
|
|
172
198
|
];
|
|
199
|
+
var observations = this.observations;
|
|
200
|
+
var state = (0, observation_js_1.observationState)(this.target);
|
|
173
201
|
var originals = new Map();
|
|
202
|
+
var wrappers = new Map();
|
|
203
|
+
var active = true;
|
|
174
204
|
methods.forEach(function (method) {
|
|
175
|
-
var original = consoleObject[method]
|
|
205
|
+
var original = consoleObject[method];
|
|
176
206
|
originals.set(method, original);
|
|
177
|
-
|
|
207
|
+
var logger = _this.logger;
|
|
208
|
+
consoleObject[method] = function () {
|
|
178
209
|
var args = [];
|
|
179
210
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
180
211
|
args[_i] = arguments[_i];
|
|
181
212
|
}
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
213
|
+
var snapshot;
|
|
214
|
+
try {
|
|
215
|
+
if (active && !state.reporting)
|
|
216
|
+
snapshot = { timestampMs: Date.now(), values: args.slice(0, 16) };
|
|
217
|
+
}
|
|
218
|
+
catch ( /* Snapshot failures cannot prevent the original console call. */_a) { /* Snapshot failures cannot prevent the original console call. */ }
|
|
219
|
+
// Keep the original receiver, result and thrown value. No SDK work can
|
|
220
|
+
// escape this finally block and replace the original console outcome.
|
|
221
|
+
try {
|
|
222
|
+
return original.apply(this, args);
|
|
223
|
+
}
|
|
224
|
+
finally {
|
|
225
|
+
try {
|
|
226
|
+
if (active && snapshot) {
|
|
227
|
+
var timestampMs_1 = snapshot.timestampMs, values_1 = snapshot.values;
|
|
228
|
+
observations.enqueue(function () {
|
|
229
|
+
var level = method === 'warn' ? 'warning' : method === 'error' ? 'error' : 'info';
|
|
230
|
+
logger.log(values_1.map(stringifyLogValue).join(' '), level, { cocos_observed_at_ms: timestampMs_1 });
|
|
231
|
+
}, values_1.reduce(function (size, value) { return size + (typeof value === 'string' ? value.length * 2 : 64); }, 0));
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
catch ( /* Logging must never change application console behavior. */_b) { /* Logging must never change application console behavior. */ }
|
|
235
|
+
}
|
|
236
|
+
};
|
|
237
|
+
wrappers.set(method, consoleObject[method]);
|
|
186
238
|
});
|
|
187
239
|
this.stops.push(function () {
|
|
240
|
+
active = false;
|
|
188
241
|
methods.forEach(function (method) {
|
|
189
242
|
var original = originals.get(method);
|
|
190
|
-
if (original)
|
|
243
|
+
if (original && consoleObject[method] === wrappers.get(method))
|
|
191
244
|
consoleObject[method] = original;
|
|
192
245
|
});
|
|
193
246
|
});
|
|
@@ -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';\nimport type { FTJsbErrorGlobal } from '../native/jsb-errors.js';\nimport { FTObservationQueue, observationState } from './observation.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 extends FTJsbErrorGlobal {\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 private readonly observations: FTObservationQueue;\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 this.observations = new FTObservationQueue(target);\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.observations.stop();\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 const nativeErrors = this.target.__FT_COCOS_JSB_ERRORS__;\n if (nativeErrors?.protocol === 2) {\n this.stops.push(nativeErrors.subscribe((location, message, stack) => {\n // Creator 2 also reports promise bookkeeping notifications through onError.\n if (message === 'handlerAddedAfterPromiseRejected' || message === 'rejectAfterPromiseResolved'\n || message === 'resolveAfterPromiseResolved') return;\n const rejection = message === 'unhandledRejectedPromise';\n const reason = rejection ? stack.split(/\\r?\\n/, 1)[0]?.replace(/^Error:\\s*/, '') : message;\n const errorMessage = reason || message || 'Uncaught JavaScript error';\n const errorStack = stack || location || '';\n const type = rejection ? 'unhandled_promise_rejection' : 'cocos_error';\n this.observations.enqueue(() => {\n this.rum.addError(errorMessage, errorStack, type);\n }, 2 * (location.length + message.length + stack.length));\n }));\n return;\n }\n if (nativeErrors || typeof this.target.jsb?.onError === 'function') {\n throw new Error('Cocos native error bootstrap is missing. Rerun the SDK installer and rebuild the native project.');\n }\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 observations = this.observations;\n const state = observationState(this.target);\n const originals = new Map<string, (...args: unknown[]) => void>();\n const wrappers = new Map<string, (...args: unknown[]) => unknown>();\n let active = true;\n methods.forEach((method) => {\n const original = consoleObject[method];\n originals.set(method, original);\n const logger = this.logger;\n consoleObject[method] = function (this: unknown, ...args: unknown[]): unknown {\n let snapshot: { timestampMs: number; values: unknown[] } | undefined;\n try {\n if (active && !state.reporting) snapshot = { timestampMs: Date.now(), values: args.slice(0, 16) };\n } catch { /* Snapshot failures cannot prevent the original console call. */ }\n // Keep the original receiver, result and thrown value. No SDK work can\n // escape this finally block and replace the original console outcome.\n try { return original.apply(this, args); }\n finally {\n try {\n if (active && snapshot) {\n const { timestampMs, values } = snapshot;\n observations.enqueue(() => {\n const level = method === 'warn' ? 'warning' : method === 'error' ? 'error' : 'info';\n logger.log(values.map(stringifyLogValue).join(' '), level, { cocos_observed_at_ms: timestampMs });\n }, values.reduce<number>((size, value) => size + (typeof value === 'string' ? value.length * 2 : 64), 0));\n }\n } catch { /* Logging must never change application console behavior. */ }\n }\n } as Console[typeof method];\n wrappers.set(method, consoleObject[method]);\n });\n this.stops.push(() => {\n active = false;\n methods.forEach((method) => {\n const original = originals.get(method);\n if (original && consoleObject[method] === wrappers.get(method)) 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;IA4B9C;;;;;;;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) {
|
|
@@ -106,9 +119,7 @@ var FTCocosSDK = /** @class */ (function () {
|
|
|
106
119
|
this.ownership.claimNativeHost();
|
|
107
120
|
try {
|
|
108
121
|
(_c = (_a = this.extension) === null || _a === void 0 ? void 0 : (_b = _a.lifecycle).beforeAttach) === null || _c === void 0 ? void 0 : _c.call(_b);
|
|
109
|
-
this.transport.invoke('hybrid.attach'
|
|
110
|
-
sdkVersion: version_js_1.FT_COCOS_SDK_VERSION,
|
|
111
|
-
});
|
|
122
|
+
this.transport.invoke('hybrid.attach');
|
|
112
123
|
if ((_d = config.autoTrack) === null || _d === void 0 ? void 0 : _d.network) {
|
|
113
124
|
(_e = this.autoTracking) === null || _e === void 0 ? void 0 : _e.start({ network: true }, undefined, 'network');
|
|
114
125
|
}
|