@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.
Files changed (136) hide show
  1. package/README.md +35 -6
  2. package/bin/cli.cjs +42 -5
  3. package/bin/project-configuration.cjs +135 -0
  4. package/bin/web-assets.cjs +32 -0
  5. package/dist/creator2/core/auto-tracking.js.map +1 -1
  6. package/dist/creator2/core/client.d.ts +1 -0
  7. package/dist/creator2/core/client.d.ts.map +1 -1
  8. package/dist/creator2/core/client.js +13 -0
  9. package/dist/creator2/core/client.js.map +1 -1
  10. package/dist/creator2/core/index.js.map +1 -1
  11. package/dist/creator2/core/modules.js.map +1 -1
  12. package/dist/creator2/core/platform-client.d.ts +46 -0
  13. package/dist/creator2/core/platform-client.d.ts.map +1 -0
  14. package/dist/creator2/core/platform-client.js +195 -0
  15. package/dist/creator2/core/platform-client.js.map +1 -0
  16. package/dist/creator2/core/platform-options.d.ts +30 -0
  17. package/dist/creator2/core/platform-options.d.ts.map +1 -0
  18. package/dist/creator2/core/platform-options.js +3 -0
  19. package/dist/creator2/core/platform-options.js.map +1 -0
  20. package/dist/creator2/core/platform-runtime.d.ts +59 -0
  21. package/dist/creator2/core/platform-runtime.d.ts.map +1 -0
  22. package/dist/creator2/core/platform-runtime.js +36 -0
  23. package/dist/creator2/core/platform-runtime.js.map +1 -0
  24. package/dist/creator2/core/plugin-api.d.ts +1 -1
  25. package/dist/creator2/core/plugin-api.d.ts.map +1 -1
  26. package/dist/creator2/core/plugin-api.js.map +1 -1
  27. package/dist/creator2/core/transport.d.ts +1 -1
  28. package/dist/creator2/core/transport.d.ts.map +1 -1
  29. package/dist/creator2/core/transport.js.map +1 -1
  30. package/dist/creator2/core/types.js.map +1 -1
  31. package/dist/creator2/core/validation.js.map +1 -1
  32. package/dist/creator2/core/version.d.ts +1 -1
  33. package/dist/creator2/core/version.js +1 -1
  34. package/dist/creator2/core/version.js.map +1 -1
  35. package/dist/creator2/creator2/auto.js.map +1 -1
  36. package/dist/creator2/creator2/index.d.ts +6 -3
  37. package/dist/creator2/creator2/index.d.ts.map +1 -1
  38. package/dist/creator2/creator2/index.js +12 -8
  39. package/dist/creator2/creator2/index.js.map +1 -1
  40. package/dist/creator2/creator2/transport.js.map +1 -1
  41. package/dist/creator2/native/bootstrap.d.ts +2 -0
  42. package/dist/creator2/native/bootstrap.d.ts.map +1 -0
  43. package/dist/creator2/native/bootstrap.js +34 -0
  44. package/dist/creator2/native/bootstrap.js.map +1 -0
  45. package/dist/creator2/web/bootstrap.d.ts +3 -0
  46. package/dist/creator2/web/bootstrap.d.ts.map +1 -0
  47. package/dist/creator2/web/bootstrap.js +15 -0
  48. package/dist/creator2/web/bootstrap.js.map +1 -0
  49. package/dist/creator2/web/client.d.ts +60 -0
  50. package/dist/creator2/web/client.d.ts.map +1 -0
  51. package/dist/creator2/web/client.js +293 -0
  52. package/dist/creator2/web/client.js.map +1 -0
  53. package/dist/creator2/web/creator2.d.ts +5 -0
  54. package/dist/creator2/web/creator2.d.ts.map +1 -0
  55. package/dist/creator2/web/creator2.js +27 -0
  56. package/dist/creator2/web/creator2.js.map +1 -0
  57. package/dist/creator2/web/privacy.d.ts +3 -0
  58. package/dist/creator2/web/privacy.d.ts.map +1 -0
  59. package/dist/creator2/web/privacy.js +39 -0
  60. package/dist/creator2/web/privacy.js.map +1 -0
  61. package/dist/creator2/web/runtime.d.ts +23 -0
  62. package/dist/creator2/web/runtime.d.ts.map +1 -0
  63. package/dist/creator2/web/runtime.js +265 -0
  64. package/dist/creator2/web/runtime.js.map +1 -0
  65. package/dist/creator2/web/types.d.ts +91 -0
  66. package/dist/creator2/web/types.d.ts.map +1 -0
  67. package/dist/creator2/web/types.js +3 -0
  68. package/dist/creator2/web/types.js.map +1 -0
  69. package/dist/creator3/core/client.d.ts +1 -0
  70. package/dist/creator3/core/client.d.ts.map +1 -1
  71. package/dist/creator3/core/client.js +5 -0
  72. package/dist/creator3/core/client.js.map +1 -1
  73. package/dist/creator3/core/platform-client.d.ts +46 -0
  74. package/dist/creator3/core/platform-client.d.ts.map +1 -0
  75. package/dist/creator3/core/platform-client.js +135 -0
  76. package/dist/creator3/core/platform-client.js.map +1 -0
  77. package/dist/creator3/core/platform-options.d.ts +30 -0
  78. package/dist/creator3/core/platform-options.d.ts.map +1 -0
  79. package/dist/creator3/core/platform-options.js +2 -0
  80. package/dist/creator3/core/platform-options.js.map +1 -0
  81. package/dist/creator3/core/platform-runtime.d.ts +59 -0
  82. package/dist/creator3/core/platform-runtime.d.ts.map +1 -0
  83. package/dist/creator3/core/platform-runtime.js +29 -0
  84. package/dist/creator3/core/platform-runtime.js.map +1 -0
  85. package/dist/creator3/core/plugin-api.d.ts +1 -1
  86. package/dist/creator3/core/plugin-api.d.ts.map +1 -1
  87. package/dist/creator3/core/transport.d.ts +1 -1
  88. package/dist/creator3/core/transport.d.ts.map +1 -1
  89. package/dist/creator3/core/version.d.ts +1 -1
  90. package/dist/creator3/core/version.js +1 -1
  91. package/dist/creator3/creator3/index.d.ts +6 -3
  92. package/dist/creator3/creator3/index.d.ts.map +1 -1
  93. package/dist/creator3/creator3/index.js +13 -8
  94. package/dist/creator3/creator3/index.js.map +1 -1
  95. package/dist/creator3/native/bootstrap.d.ts +2 -0
  96. package/dist/creator3/native/bootstrap.d.ts.map +1 -0
  97. package/dist/creator3/native/bootstrap.js +32 -0
  98. package/dist/creator3/native/bootstrap.js.map +1 -0
  99. package/dist/creator3/web/bootstrap.d.ts +3 -0
  100. package/dist/creator3/web/bootstrap.d.ts.map +1 -0
  101. package/dist/creator3/web/bootstrap.js +11 -0
  102. package/dist/creator3/web/bootstrap.js.map +1 -0
  103. package/dist/creator3/web/client.d.ts +60 -0
  104. package/dist/creator3/web/client.d.ts.map +1 -0
  105. package/dist/creator3/web/client.js +255 -0
  106. package/dist/creator3/web/client.js.map +1 -0
  107. package/dist/creator3/web/creator3.d.ts +5 -0
  108. package/dist/creator3/web/creator3.d.ts.map +1 -0
  109. package/dist/creator3/web/creator3.js +11 -0
  110. package/dist/creator3/web/creator3.js.map +1 -0
  111. package/dist/creator3/web/privacy.d.ts +3 -0
  112. package/dist/creator3/web/privacy.d.ts.map +1 -0
  113. package/dist/creator3/web/privacy.js +26 -0
  114. package/dist/creator3/web/privacy.js.map +1 -0
  115. package/dist/creator3/web/runtime.d.ts +23 -0
  116. package/dist/creator3/web/runtime.d.ts.map +1 -0
  117. package/dist/creator3/web/runtime.js +267 -0
  118. package/dist/creator3/web/runtime.js.map +1 -0
  119. package/dist/creator3/web/types.d.ts +91 -0
  120. package/dist/creator3/web/types.d.ts.map +1 -0
  121. package/dist/creator3/web/types.js +2 -0
  122. package/dist/creator3/web/types.js.map +1 -0
  123. package/extensions/creator2/install-web.cjs +69 -0
  124. package/extensions/creator2/main.js +19 -2
  125. package/extensions/creator2/project-configuration.cjs +135 -0
  126. package/extensions/creator3/dist/hooks.js +13 -0
  127. package/extensions/creator3/install-web.cjs +69 -0
  128. package/extensions/creator3/project-configuration.cjs +135 -0
  129. package/native/ios/FTCocosBridge.podspec +1 -1
  130. package/package.json +19 -3
  131. package/runtime/native.js +1191 -0
  132. package/web/bootstrap/package.json +4 -0
  133. package/web/bootstrap.js +1042 -0
  134. package/web/bootstrap.js.map +7 -0
  135. package/web/creator2/package.json +4 -0
  136. package/web/creator3/package.json +4 -0
@@ -0,0 +1,46 @@
1
+ import type { FTCocosSDK, FTSDKExtension } from './client.js';
2
+ import type { FTCocosConfig, FTCocosEnterOptions } from './types.js';
3
+ import type { FTCocosWebAttachConfig, FTCocosWebConfig } from '../web/types.js';
4
+ import type { FTNativeReplayConfig } from './platform-options.js';
5
+ import { type FTPlatformContext, type FTPlatformGlobal } from './platform-runtime.js';
6
+ export type FTCocosPlatformConfig = (FTCocosConfig & {
7
+ replay?: FTNativeReplayConfig;
8
+ }) | FTCocosWebConfig;
9
+ /** Stable engine entry. Build assets select implementations and install project configuration. */
10
+ export declare class FTCocosPlatformSDK {
11
+ readonly engine: 'creator2' | 'creator3';
12
+ private readonly context;
13
+ private readonly target?;
14
+ readonly extensionProtocol = 1;
15
+ private get mode();
16
+ private record;
17
+ private get nativeReplay();
18
+ private set nativeReplay(value);
19
+ private get replayConfig();
20
+ private set replayConfig(value);
21
+ readonly replay: {
22
+ /** Starts recording using the settings selected at initialization. */
23
+ start: () => void;
24
+ /** Stops recording while leaving base tracking active. */
25
+ stop: () => void;
26
+ };
27
+ constructor(engine: 'creator2' | 'creator3', context: () => FTPlatformContext, target?: FTPlatformGlobal | undefined);
28
+ get platform(): FTPlatformContext['platform'];
29
+ get mobile(): FTCocosSDK['mobile'];
30
+ get rum(): FTCocosSDK['rum'];
31
+ get logger(): FTCocosSDK['logger'];
32
+ get trace(): FTCocosSDK['trace'];
33
+ /** Uses installed project settings when no explicit configuration is supplied. */
34
+ start(config?: FTCocosPlatformConfig): void;
35
+ attach(config?: FTCocosWebAttachConfig): void;
36
+ enterCocos(options?: FTCocosEnterOptions): void;
37
+ leaveCocos(): void;
38
+ detach(): void;
39
+ shutdown(): void;
40
+ /** Stops this Cocos instance. Web page collectors and native host-owned SDKs retain their lifecycle. */
41
+ stop(): void;
42
+ registerExtension<T>(id: string, version: string, engine: string, factory: () => FTSDKExtension<T>): T;
43
+ private composeReplay;
44
+ private implementation;
45
+ }
46
+ //# sourceMappingURL=platform-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-client.d.ts","sourceRoot":"","sources":["../../../../../src/core/platform-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,KAAK,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEhF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAAqG,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzL,MAAM,MAAM,qBAAqB,GAAG,CAAC,aAAa,GAAG;IAAE,MAAM,CAAC,EAAE,oBAAoB,CAAA;CAAE,CAAC,GAAG,gBAAgB,CAAC;AAE3G,kGAAkG;AAClG,qBAAa,kBAAkB;IA8B3B,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IA/B1B,QAAQ,CAAC,iBAAiB,KAAK;IAC/B,OAAO,KAAK,IAAI,GAAmG;IACnH,OAAO,CAAC,MAAM;IAId,OAAO,KAAK,YAAY,GAAmC;IAC3D,OAAO,KAAK,YAAY,QAA2E;IACnG,OAAO,KAAK,YAAY,GAAyC;IACjE,OAAO,KAAK,YAAY,QAAiF;IACzG,QAAQ,CAAC,MAAM;QACb,sEAAsE;qBAC3D,IAAI;QAQf,0DAA0D;oBAChD,IAAI;MAMd;gBAES,MAAM,EAAE,UAAU,GAAG,UAAU,EACvB,OAAO,EAAE,MAAM,iBAAiB,EAChC,MAAM,CAAC,EAAE,gBAAgB,YAAA;IAE5C,IAAI,QAAQ,IAAI,iBAAiB,CAAC,UAAU,CAAC,CAAoC;IACjF,IAAI,MAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAyC;IAC3E,IAAI,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAsC;IAClE,IAAI,MAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAyC;IAC3E,IAAI,KAAK,IAAI,UAAU,CAAC,OAAO,CAAC,CAAwC;IAExE,kFAAkF;IAClF,KAAK,CAAC,MAAM,CAAC,EAAE,qBAAqB,GAAG,IAAI;IAqB3C,MAAM,CAAC,MAAM,CAAC,EAAE,sBAAsB,GAAG,IAAI;IAW7C,UAAU,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,IAAI;IAC/C,UAAU,IAAI,IAAI;IAClB,MAAM,IAAI,IAAI;IACd,QAAQ,IAAI,IAAI;IAChB,wGAAwG;IACxG,IAAI,IAAI,IAAI;IAMZ,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;IAKtG,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,cAAc;CACvB"}
@@ -0,0 +1,135 @@
1
+ import { FT_COCOS_SDK_VERSION } from './version.js';
2
+ import { existingPlatformImplementation, platformGlobal, platformImplementation } from './platform-runtime.js';
3
+ /** Stable engine entry. Build assets select implementations and install project configuration. */
4
+ export class FTCocosPlatformSDK {
5
+ get mode() { var _a; return ((_a = existingPlatformImplementation(this.context(), this.target)) === null || _a === void 0 ? void 0 : _a.lifecycleMode) || 'idle'; }
6
+ record() {
7
+ this.implementation();
8
+ return (this.target || platformGlobal()).__FT_COCOS_INSTANCES__[this.engine + ':' + this.platform];
9
+ }
10
+ get nativeReplay() { return this.record().replay; }
11
+ set nativeReplay(value) { this.record().replay = value; }
12
+ get replayConfig() { return this.record().replayConfig; }
13
+ set replayConfig(value) { this.record().replayConfig = value; }
14
+ constructor(engine, context, target) {
15
+ this.engine = engine;
16
+ this.context = context;
17
+ this.target = target;
18
+ this.extensionProtocol = 1;
19
+ this.replay = {
20
+ /** Starts recording using the settings selected at initialization. */
21
+ start: () => {
22
+ if (this.mode === 'idle')
23
+ throw new Error('Start or attach the Cocos SDK before starting Replay');
24
+ if (!this.implementation().isCocosEntered)
25
+ throw new Error('Call enterCocos() before starting Hybrid Replay');
26
+ if (this.platform === 'web') {
27
+ this.implementation().replay.start();
28
+ return;
29
+ }
30
+ if (!this.nativeReplay || !this.replayConfig)
31
+ throw new Error('Enable Replay in cocos-sdk.config.json before starting the SDK');
32
+ if (this.mode === 'hybrid')
33
+ this.nativeReplay.replay.enterHybrid();
34
+ else
35
+ this.nativeReplay.replay.start(this.replayConfig);
36
+ },
37
+ /** Stops recording while leaving base tracking active. */
38
+ stop: () => {
39
+ var _a, _b;
40
+ if (this.mode === 'idle')
41
+ return;
42
+ if (this.platform === 'web') {
43
+ this.implementation().replay.stop();
44
+ return;
45
+ }
46
+ if (this.mode === 'hybrid')
47
+ (_a = this.nativeReplay) === null || _a === void 0 ? void 0 : _a.replay.leaveHybrid();
48
+ else
49
+ (_b = this.nativeReplay) === null || _b === void 0 ? void 0 : _b.replay.stop();
50
+ },
51
+ };
52
+ }
53
+ get platform() { return this.context().platform; }
54
+ get mobile() { return this.implementation().mobile; }
55
+ get rum() { return this.implementation().rum; }
56
+ get logger() { return this.implementation().logger; }
57
+ get trace() { return this.implementation().trace; }
58
+ /** Uses installed project settings when no explicit configuration is supplied. */
59
+ start(config) {
60
+ if (this.mode !== 'idle')
61
+ throw new Error('Cocos SDK already started or attached');
62
+ if (this.platform === 'web') {
63
+ this.implementation().start(config);
64
+ return;
65
+ }
66
+ const settings = config || (this.target || platformGlobal()).__FT_COCOS_CONFIGURATION__;
67
+ if (!(settings === null || settings === void 0 ? void 0 : settings.sdk))
68
+ throw new Error('Native start() requires sdk configuration; configure configuration.sdk in cocos-sdk.config.json');
69
+ const replay = 'replay' in settings ? settings.replay : undefined;
70
+ const sdk = this.implementation();
71
+ const facade = replay ? this.composeReplay(sdk) : undefined;
72
+ this.replayConfig = replay;
73
+ // Native initialization may partially succeed. Keep stop() available for cleanup.
74
+ try {
75
+ if (facade)
76
+ facade.start(settings);
77
+ else
78
+ sdk.start(settings);
79
+ }
80
+ catch (error) {
81
+ try {
82
+ sdk.shutdown();
83
+ }
84
+ catch ( /* Preserve startup error; stop() can retry cleanup. */_a) { /* Preserve startup error; stop() can retry cleanup. */ }
85
+ throw error;
86
+ }
87
+ }
88
+ attach(config) {
89
+ if (this.mode === 'standalone')
90
+ throw new Error('start() and attach() are mutually exclusive');
91
+ if (this.mode === 'hybrid')
92
+ return;
93
+ // Explicit attach settings preserve legacy withSessionReplay() ownership of its configuration.
94
+ const settings = config === undefined ? (this.target || platformGlobal()).__FT_COCOS_CONFIGURATION__ : undefined;
95
+ if (this.platform !== 'web' && (settings === null || settings === void 0 ? void 0 : settings.replay)) {
96
+ const { sessionReplaySamplingRate: _rate, sessionReplayOnErrorSamplingRate: _errorRate, ...capture } = settings.replay;
97
+ this.composeReplay(this.implementation()).attach({ autoTrack: settings.autoTrack, ...config, replay: capture });
98
+ this.replayConfig = settings.replay;
99
+ }
100
+ else
101
+ this.implementation().attach(config || (this.platform !== 'web' && settings ? { autoTrack: settings.autoTrack } : undefined));
102
+ }
103
+ enterCocos(options) { this.implementation().enterCocos(options); }
104
+ leaveCocos() { var _a; (_a = existingPlatformImplementation(this.context(), this.target)) === null || _a === void 0 ? void 0 : _a.leaveCocos(); }
105
+ detach() { var _a; (_a = existingPlatformImplementation(this.context(), this.target)) === null || _a === void 0 ? void 0 : _a.detach(); }
106
+ shutdown() { var _a; (_a = existingPlatformImplementation(this.context(), this.target)) === null || _a === void 0 ? void 0 : _a.shutdown(); }
107
+ /** Stops this Cocos instance. Web page collectors and native host-owned SDKs retain their lifecycle. */
108
+ stop() {
109
+ if (this.mode === 'idle')
110
+ return;
111
+ if (this.platform === 'web' || this.mode === 'hybrid')
112
+ this.detach();
113
+ else
114
+ this.shutdown();
115
+ this.replayConfig = undefined;
116
+ }
117
+ registerExtension(id, version, engine, factory) {
118
+ if (engine !== this.engine)
119
+ throw new Error('SDK extension Creator engine does not match the base SDK');
120
+ if (this.platform === 'web')
121
+ throw new Error('Native SDK extensions are unavailable on Web; configure Web Replay at page bootstrap.');
122
+ return this.implementation().registerExtension(id, version, engine, factory);
123
+ }
124
+ composeReplay(sdk) {
125
+ if (this.nativeReplay)
126
+ return this.nativeReplay;
127
+ const factory = (this.target || platformGlobal()).__FT_COCOS_REPLAY_FACTORY__;
128
+ if (!factory || factory.protocol !== 1 || factory.version !== FT_COCOS_SDK_VERSION || factory.engine !== this.engine) {
129
+ throw new Error('Native Replay runtime is missing or incompatible. Install the matching Replay package and rerun the installer with --replay');
130
+ }
131
+ return this.nativeReplay = factory.create(sdk, this.context());
132
+ }
133
+ implementation() { return platformImplementation(this.context(), this.target); }
134
+ }
135
+ //# sourceMappingURL=platform-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-client.js","sourceRoot":"","sources":["../../../../../src/core/platform-client.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,8BAA8B,EAAE,cAAc,EAAE,sBAAsB,EAA4E,MAAM,uBAAuB,CAAC;AAIzL,kGAAkG;AAClG,MAAM,OAAO,kBAAkB;IAE7B,IAAY,IAAI,aAAK,OAAO,CAAA,MAAA,8BAA8B,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,0CAAE,aAAa,KAAI,MAAM,CAAC,CAAC,CAAC;IAC3G,MAAM;QACZ,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC,CAAC,sBAAuB,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAE,CAAC;IACvG,CAAC;IACD,IAAY,YAAY,KAAK,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3D,IAAY,YAAY,CAAC,KAAuC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;IACnG,IAAY,YAAY,KAAK,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IACjE,IAAY,YAAY,CAAC,KAAuC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC;IAmBzG,YACW,MAA+B,EACvB,OAAgC,EAChC,MAAyB;QAFjC,WAAM,GAAN,MAAM,CAAyB;QACvB,YAAO,GAAP,OAAO,CAAyB;QAChC,WAAM,GAAN,MAAM,CAAmB;QA/BnC,sBAAiB,GAAG,CAAC,CAAC;QAUtB,WAAM,GAAG;YAChB,sEAAsE;YACtE,KAAK,EAAE,GAAS,EAAE;gBAChB,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;oBAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;gBAClG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,cAAc;oBAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;gBAC9G,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;oBAAE,IAAI,CAAC,cAAc,EAAoB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;oBAAC,OAAO;gBAAC,CAAC;gBACjG,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,YAAY;oBAAE,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;gBAChI,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;oBAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;;oBAC9D,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACzD,CAAC;YACD,0DAA0D;YAC1D,IAAI,EAAE,GAAS,EAAE;;gBACf,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;oBAAE,OAAO;gBACjC,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;oBAAE,IAAI,CAAC,cAAc,EAAoB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;oBAAC,OAAO;gBAAC,CAAC;gBAChG,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;oBAAE,MAAA,IAAI,CAAC,YAAY,0CAAE,MAAM,CAAC,WAAW,EAAE,CAAC;;oBAC/D,MAAA,IAAI,CAAC,YAAY,0CAAE,MAAM,CAAC,IAAI,EAAE,CAAC;YACxC,CAAC;SACF,CAAC;IAKC,CAAC;IACJ,IAAI,QAAQ,KAAoC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjF,IAAI,MAAM,KAA2B,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3E,IAAI,GAAG,KAAwB,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAClE,IAAI,MAAM,KAA2B,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3E,IAAI,KAAK,KAA0B,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAExE,kFAAkF;IAClF,KAAK,CAAC,MAA8B;QAClC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QACnF,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,cAAc,EAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACvD,OAAO;QACT,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC,CAAC,0BAA0B,CAAC;QACxF,IAAI,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,GAAG,CAAA;YAAE,MAAM,IAAI,KAAK,CAAC,iGAAiG,CAAC,CAAC;QACvI,MAAM,MAAM,GAAG,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QAClE,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,EAAgB,CAAC;QAChD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5D,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;QAC3B,kFAAkF;QAClF,IAAI,CAAC;YACH,IAAI,MAAM;gBAAE,MAAM,CAAC,KAAK,CAAC,QAA6D,CAAC,CAAC;;gBACnF,GAAG,CAAC,KAAK,CAAC,QAAyB,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC;gBAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAAC,CAAC;YAAC,QAAQ,uDAAuD,IAAzD,CAAC,CAAC,uDAAuD,CAAC,CAAC;YACzF,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IACD,MAAM,CAAC,MAA+B;QACpC,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY;YAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QAC/F,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO;QACnC,+FAA+F;QAC/F,MAAM,QAAQ,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,SAAS,CAAC;QACjH,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,KAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,CAAA,EAAE,CAAC;YAChD,MAAM,EAAE,yBAAyB,EAAE,KAAK,EAAE,gCAAgC,EAAE,UAAU,EAAE,GAAG,OAAO,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC;YACvH,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,EAAgB,CAAC,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YAC9H,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC;QACtC,CAAC;;YAAM,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACvI,CAAC;IACD,UAAU,CAAC,OAA6B,IAAU,IAAI,CAAC,cAAc,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9F,UAAU,aAAW,MAAA,8BAA8B,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,0CAAE,UAAU,EAAE,CAAC,CAAC,CAAC;IACjG,MAAM,aAAW,MAAA,8BAA8B,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,0CAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACzF,QAAQ,aAAW,MAAA,8BAA8B,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,0CAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC7F,wGAAwG;IACxG,IAAI;QACF,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO;QACjC,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;YAAE,IAAI,CAAC,MAAM,EAAE,CAAC;;YAChE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;IAChC,CAAC;IACD,iBAAiB,CAAI,EAAU,EAAE,OAAe,EAAE,MAAc,EAAE,OAAgC;QAChG,IAAI,MAAM,KAAK,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;QACxG,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,uFAAuF,CAAC,CAAC;QACtI,OAAQ,IAAI,CAAC,cAAc,EAAiB,CAAC,iBAAiB,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/F,CAAC;IACO,aAAa,CAAC,GAAe;QACnC,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC,YAAY,CAAC;QAChD,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC,CAAC,2BAA2B,CAAC;QAC9E,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,KAAK,oBAAoB,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YACrH,MAAM,IAAI,KAAK,CAAC,6HAA6H,CAAC,CAAC;QACjJ,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC;IACO,cAAc,KAAK,OAAO,sBAAsB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;CACzF"}
@@ -0,0 +1,30 @@
1
+ import type { FTCocosConfig } from './types.js';
2
+ import type { FTCocosWebConfig, FTWebReplayConfig } from '../web/types.js';
3
+ /** Native Replay options; Web encoding and privacy settings use FTWebReplayConfig. */
4
+ export interface FTNativeReplayConfig {
5
+ sessionReplaySamplingRate?: number;
6
+ sessionReplayOnErrorSamplingRate?: number;
7
+ captureFps?: number;
8
+ maxImageDimension?: number;
9
+ imagePolicy?: {
10
+ quality?: 'low' | 'medium' | 'high';
11
+ maxFrameBytes?: number;
12
+ };
13
+ touchPrivacy?: 'show' | 'hide';
14
+ }
15
+ /** SDK-owned sections of cocos-sdk.config.json; build-tool sections may coexist. */
16
+ export interface FTCocosProjectConfiguration {
17
+ configuration?: FTCocosConfig;
18
+ replay?: {
19
+ enabled?: boolean;
20
+ sessionReplaySamplingRate?: number;
21
+ sessionReplayOnErrorSamplingRate?: number;
22
+ native?: Omit<FTNativeReplayConfig, 'sessionReplaySamplingRate' | 'sessionReplayOnErrorSamplingRate'> | false;
23
+ web?: Omit<FTWebReplayConfig, 'enabled' | 'sessionReplaySamplingRate' | 'sessionReplayOnErrorSamplingRate'> | false;
24
+ };
25
+ web?: {
26
+ enabled?: boolean;
27
+ configuration?: Partial<FTCocosWebConfig>;
28
+ };
29
+ }
30
+ //# sourceMappingURL=platform-options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-options.d.ts","sourceRoot":"","sources":["../../../../../src/core/platform-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAE3E,sFAAsF;AACtF,MAAM,WAAW,oBAAoB;IACnC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,gCAAgC,CAAC,EAAE,MAAM,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9E,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAChC;AAED,oFAAoF;AACpF,MAAM,WAAW,2BAA2B;IAC1C,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,MAAM,CAAC,EAAE;QACP,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,yBAAyB,CAAC,EAAE,MAAM,CAAC;QACnC,gCAAgC,CAAC,EAAE,MAAM,CAAC;QAC1C,MAAM,CAAC,EAAE,IAAI,CAAC,oBAAoB,EAAE,2BAA2B,GAAG,kCAAkC,CAAC,GAAG,KAAK,CAAC;QAC9G,GAAG,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,SAAS,GAAG,2BAA2B,GAAG,kCAAkC,CAAC,GAAG,KAAK,CAAC;KACrH,CAAC;IACF,GAAG,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,aAAa,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;KAAE,CAAC;CACxE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=platform-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-options.js","sourceRoot":"","sources":["../../../../../src/core/platform-options.ts"],"names":[],"mappings":""}
@@ -0,0 +1,59 @@
1
+ import type { FTEngineTrackingHooks } from './auto-tracking.js';
2
+ import type { FTCocosConfig, FTCocosHybridConfig } from './types.js';
3
+ import type { FTNativeReplayConfig } from './platform-options.js';
4
+ import type { FTCocosSDK } from './client.js';
5
+ import type { FTCocosWebSDK } from '../web/client.js';
6
+ export interface FTPlatformContext {
7
+ engine: 'creator2' | 'creator3';
8
+ platform: 'android' | 'ios' | 'unsupported' | 'web';
9
+ hooks: FTEngineTrackingHooks;
10
+ canvasIsPublic: () => boolean;
11
+ engineApi?: unknown;
12
+ reflection?: {
13
+ callStaticMethod(...args: string[]): unknown;
14
+ };
15
+ }
16
+ export type FTPlatformImplementation = FTCocosSDK | FTCocosWebSDK;
17
+ export interface FTPlatformFactory {
18
+ protocol: 1;
19
+ version: string;
20
+ create(context: FTPlatformContext, target: FTPlatformGlobal): FTPlatformImplementation;
21
+ }
22
+ export interface FTNativeReplayFacade {
23
+ start(config: FTCocosConfig & {
24
+ replay?: FTNativeReplayConfig;
25
+ }): void;
26
+ attach(config: FTCocosHybridConfig & {
27
+ replay?: FTNativeReplayConfig;
28
+ }): void;
29
+ replay: {
30
+ start(config?: FTNativeReplayConfig): void;
31
+ stop(): void;
32
+ enterHybrid(): void;
33
+ leaveHybrid(): void;
34
+ };
35
+ }
36
+ export interface FTPlatformGlobal {
37
+ __FT_COCOS_CONFIGURATION__?: FTCocosConfig & {
38
+ replay?: FTNativeReplayConfig;
39
+ };
40
+ __FT_COCOS_REPLAY_FACTORY__?: {
41
+ protocol: 1;
42
+ version: string;
43
+ engine: string;
44
+ create(base: FTCocosSDK, context: FTPlatformContext): FTNativeReplayFacade;
45
+ };
46
+ __FT_COCOS_NATIVE_FACTORY__?: FTPlatformFactory;
47
+ __FT_COCOS_WEB_FACTORY__?: FTPlatformFactory;
48
+ __FT_COCOS_INSTANCES__?: Record<string, {
49
+ version: string;
50
+ sdk: FTPlatformImplementation;
51
+ replay?: FTNativeReplayFacade;
52
+ replayConfig?: FTNativeReplayConfig;
53
+ }>;
54
+ }
55
+ export declare function platformGlobal(): FTPlatformGlobal;
56
+ export declare function existingPlatformImplementation(context: FTPlatformContext, target?: FTPlatformGlobal): FTPlatformImplementation | undefined;
57
+ /** The engine module graph contains no platform implementation. Build assets supply factories. */
58
+ export declare function platformImplementation(context: FTPlatformContext, target?: FTPlatformGlobal, create?: () => FTPlatformImplementation): FTPlatformImplementation;
59
+ //# sourceMappingURL=platform-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-runtime.d.ts","sourceRoot":"","sources":["../../../../../src/core/platform-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGtD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC;IAChC,QAAQ,EAAE,SAAS,GAAG,KAAK,GAAG,aAAa,GAAG,KAAK,CAAC;IACpD,KAAK,EAAE,qBAAqB,CAAC;IAC7B,cAAc,EAAE,MAAM,OAAO,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE;QAAE,gBAAgB,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;KAAE,CAAC;CAC/D;AACD,MAAM,MAAM,wBAAwB,GAAG,UAAU,GAAG,aAAa,CAAC;AAClE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,CAAC,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,gBAAgB,GAAG,wBAAwB,CAAC;CACxF;AACD,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,MAAM,EAAE,aAAa,GAAG;QAAE,MAAM,CAAC,EAAE,oBAAoB,CAAA;KAAE,GAAG,IAAI,CAAC;IACvE,MAAM,CAAC,MAAM,EAAE,mBAAmB,GAAG;QAAE,MAAM,CAAC,EAAE,oBAAoB,CAAA;KAAE,GAAG,IAAI,CAAC;IAC9E,MAAM,EAAE;QACN,KAAK,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;QAC3C,IAAI,IAAI,IAAI,CAAC;QACb,WAAW,IAAI,IAAI,CAAC;QACpB,WAAW,IAAI,IAAI,CAAC;KACrB,CAAC;CACH;AACD,MAAM,WAAW,gBAAgB;IAC/B,0BAA0B,CAAC,EAAE,aAAa,GAAG;QAAE,MAAM,CAAC,EAAE,oBAAoB,CAAA;KAAE,CAAC;IAC/E,2BAA2B,CAAC,EAAE;QAC5B,QAAQ,EAAE,CAAC,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAC7C,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,iBAAiB,GAAG,oBAAoB,CAAC;KAC5E,CAAC;IACF,2BAA2B,CAAC,EAAE,iBAAiB,CAAC;IAChD,wBAAwB,CAAC,EAAE,iBAAiB,CAAC;IAC7C,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,wBAAwB,CAAC;QAAC,MAAM,CAAC,EAAE,oBAAoB,CAAC;QAAC,YAAY,CAAC,EAAE,oBAAoB,CAAA;KAAE,CAAC,CAAC;CACjK;AACD,wBAAgB,cAAc,IAAI,gBAAgB,CAEjD;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,GAAG,wBAAwB,GAAG,SAAS,CAI1I;AAED,kGAAkG;AAClG,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,EAAE,MAAM,CAAC,EAAE,MAAM,wBAAwB,GAAG,wBAAwB,CAc/J"}
@@ -0,0 +1,29 @@
1
+ import { FT_COCOS_SDK_VERSION } from './version.js';
2
+ export function platformGlobal() {
3
+ return (typeof window !== 'undefined' ? window : globalThis);
4
+ }
5
+ export function existingPlatformImplementation(context, target = platformGlobal()) {
6
+ var _a;
7
+ const previous = (_a = target.__FT_COCOS_INSTANCES__) === null || _a === void 0 ? void 0 : _a[context.engine + ':' + context.platform];
8
+ if (previous && previous.version !== FT_COCOS_SDK_VERSION)
9
+ throw new Error('Cocos SDK versions must match on the same page');
10
+ return previous === null || previous === void 0 ? void 0 : previous.sdk;
11
+ }
12
+ /** The engine module graph contains no platform implementation. Build assets supply factories. */
13
+ export function platformImplementation(context, target = platformGlobal(), create) {
14
+ const key = context.engine + ':' + context.platform;
15
+ const instances = target.__FT_COCOS_INSTANCES__ || (target.__FT_COCOS_INSTANCES__ = {});
16
+ const previous = existingPlatformImplementation(context, target);
17
+ if (previous)
18
+ return previous;
19
+ const factory = context.platform === 'web' ? target.__FT_COCOS_WEB_FACTORY__ : target.__FT_COCOS_NATIVE_FACTORY__;
20
+ if (!create && (!factory || factory.protocol !== 1 || factory.version !== FT_COCOS_SDK_VERSION)) {
21
+ throw new Error(context.platform === 'web'
22
+ ? 'Cocos Web runtime is missing or incompatible. Run the installer with --web and rebuild, or load /web/bootstrap before game scripts.'
23
+ : 'Cocos native runtime is missing or incompatible. Rerun the SDK installer and rebuild the project.');
24
+ }
25
+ const sdk = create ? create() : factory.create(context, target);
26
+ instances[key] = { version: FT_COCOS_SDK_VERSION, sdk };
27
+ return sdk;
28
+ }
29
+ //# sourceMappingURL=platform-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-runtime.js","sourceRoot":"","sources":["../../../../../src/core/platform-runtime.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAoCpD,MAAM,UAAU,cAAc;IAC5B,OAAO,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAqB,CAAC;AACnF,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,OAA0B,EAAE,MAAM,GAAG,cAAc,EAAE;;IAClG,MAAM,QAAQ,GAAG,MAAA,MAAM,CAAC,sBAAsB,0CAAG,OAAO,CAAC,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1F,IAAI,QAAQ,IAAI,QAAQ,CAAC,OAAO,KAAK,oBAAoB;QAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IAC7H,OAAO,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,GAAG,CAAC;AACvB,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,sBAAsB,CAAC,OAA0B,EAAE,MAAM,GAAG,cAAc,EAAE,EAAE,MAAuC;IACnI,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;IACpD,MAAM,SAAS,GAAG,MAAM,CAAC,sBAAsB,IAAI,CAAC,MAAM,CAAC,sBAAsB,GAAG,EAAE,CAAC,CAAC;IACxF,MAAM,QAAQ,GAAG,8BAA8B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACjE,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,MAAM,CAAC,2BAA2B,CAAC;IAClH,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,KAAK,oBAAoB,CAAC,EAAE,CAAC;QAChG,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,KAAK,KAAK;YACxC,CAAC,CAAC,qIAAqI;YACvI,CAAC,CAAC,mGAAmG,CAAC,CAAC;IAC3G,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,OAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACjE,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,oBAAoB,EAAE,GAAG,EAAE,CAAC;IACxD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -6,7 +6,7 @@ type Public<T> = {
6
6
  [K in keyof T]: T[K];
7
7
  };
8
8
  /** Structural contract shared by the CommonJS and ES module engine builds. */
9
- export type FTCocosSDK = Omit<Public<SDK>, 'mobile' | 'rum' | 'logger' | 'trace'> & {
9
+ export type FTCocosSDK = Omit<Public<SDK>, 'mobile' | 'rum' | 'logger' | 'trace' | 'lifecycleMode' | 'isCocosEntered'> & {
10
10
  mobile: Public<SDK['mobile']>;
11
11
  rum: Public<SDK['rum']>;
12
12
  logger: Public<SDK['logger']>;
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-api.d.ts","sourceRoot":"","sources":["../../../../../src/core/plugin-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,IAAI,GAAG,EAAE,MAAM,aAAa,CAAC;AACrD,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAEjH,KAAK,MAAM,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC;AAE1C,8EAA8E;AAC9E,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC,GAAG;IAClF,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9B,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;CAC7B,CAAC"}
1
+ {"version":3,"file":"plugin-api.d.ts","sourceRoot":"","sources":["../../../../../src/core/plugin-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,IAAI,GAAG,EAAE,MAAM,aAAa,CAAC;AACrD,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAEjH,KAAK,MAAM,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC;AAE1C,8EAA8E;AAC9E,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,eAAe,GAAG,gBAAgB,CAAC,GAAG;IACvH,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9B,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;CAC7B,CAAC"}
@@ -5,7 +5,7 @@ export interface FTTransportResponse<T = FTValue> {
5
5
  error?: string;
6
6
  }
7
7
  export interface FTNativeTransport {
8
- readonly platform: 'android' | 'ios' | 'unsupported';
8
+ readonly platform: 'android' | 'ios' | 'web' | 'unsupported';
9
9
  /**
10
10
  * Calls a native bridge operation synchronously and decodes its response.
11
11
  *
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../../../src/core/transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,WAAW,mBAAmB,CAAC,CAAC,GAAG,OAAO;IAC9C,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,SAAS,GAAG,KAAK,GAAG,aAAa,CAAC;IACrD;;;;;;;;;OASG;IACH,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,CAAC,GAAG,SAAS,CAAC;IACtE;;;;;;;;;OASG;IACH,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;CACtF;AAED,qBAAa,eAAgB,YAAW,iBAAiB;IACvD,QAAQ,CAAC,QAAQ,EAAG,aAAa,CAAU;IAE3C,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,CAAC,GAAG,SAAS;CAGxE;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,GAAG,CAAC,GAAG,SAAS,CAcrE"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../../../src/core/transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,WAAW,mBAAmB,CAAC,CAAC,GAAG,OAAO;IAC9C,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,aAAa,CAAC;IAC7D;;;;;;;;;OASG;IACH,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,CAAC,GAAG,SAAS,CAAC;IACtE;;;;;;;;;OASG;IACH,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;CACtF;AAED,qBAAa,eAAgB,YAAW,iBAAiB;IACvD,QAAQ,CAAC,QAAQ,EAAG,aAAa,CAAU;IAE3C,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,CAAC,GAAG,SAAS;CAGxE;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,GAAG,CAAC,GAAG,SAAS,CAcrE"}
@@ -1,5 +1,5 @@
1
1
  /** Version of the installed Cocos SDK package. */
2
- export declare const FT_COCOS_SDK_VERSION = "0.1.1-alpha.1";
2
+ export declare const FT_COCOS_SDK_VERSION = "0.1.1-alpha.2";
3
3
  /** Global-context key used to report the Cocos SDK package version. */
4
4
  export declare const FT_COCOS_SDK_VERSION_KEY = "sdk_package_cocos";
5
5
  /** Event attribute used to identify data emitted through a framework bridge. */
@@ -1,5 +1,5 @@
1
1
  /** Version of the installed Cocos SDK package. */
2
- export const FT_COCOS_SDK_VERSION = '0.1.1-alpha.1';
2
+ export const FT_COCOS_SDK_VERSION = '0.1.1-alpha.2';
3
3
  /** Global-context key used to report the Cocos SDK package version. */
4
4
  export const FT_COCOS_SDK_VERSION_KEY = 'sdk_package_cocos';
5
5
  /** Event attribute used to identify data emitted through a framework bridge. */
@@ -1,5 +1,8 @@
1
- import { FTCocosSDK } from '../core/client.js';
2
- /** Shared SDK entry point for Cocos Creator 3.x applications. */
3
- export declare const guanceSdk: FTCocosSDK;
1
+ import { FTCocosPlatformSDK } from '../core/platform-client.js';
2
+ /** Shared native and Web entry point for Cocos Creator 3.x applications. */
3
+ export declare const guanceSdk: FTCocosPlatformSDK;
4
4
  export * from '../core/index.js';
5
+ export type { FTCocosPlatformConfig } from '../core/platform-client.js';
6
+ export type { FTCocosWebConfig, FTWebConfig, FTWebReplayConfig } from '../web/types.js';
7
+ export type { FTNativeReplayConfig, FTCocosProjectConfiguration } from '../core/platform-options.js';
5
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/creator3/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAc/C,iEAAiE;AACjE,eAAO,MAAM,SAAS,YAAsD,CAAC;AAE7E,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/creator3/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAKhE,4EAA4E;AAC5E,eAAO,MAAM,SAAS,oBAOnB,CAAC;AACJ,cAAc,kBAAkB,CAAC;AACjC,YAAY,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACxF,YAAY,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC"}
@@ -1,12 +1,17 @@
1
- import { FTDefaultAutoTracking } from '../core/auto-tracking.js';
2
- import { FTCocosSDK } from '../core/client.js';
3
- import { FTLogger, FTRUM, FTTrace } from '../core/modules.js';
1
+ import { Camera, Director, EditBox, Input, Node, RenderTexture, UITransform, Vec3, director, input, isValid, native, sys, view } from 'cc';
2
+ import { EDITOR, NATIVE } from 'cc/env';
3
+ import { FTCocosPlatformSDK } from '../core/platform-client.js';
4
4
  import { FTCreator3TrackingHooks } from './auto.js';
5
- import { FTCreator3Transport } from './transport.js';
6
- const transport = new FTCreator3Transport();
5
+ import { isScenePublic } from '../web/privacy.js';
7
6
  const hooks = new FTCreator3TrackingHooks();
8
- const autoTracking = new FTDefaultAutoTracking(new FTRUM(transport), new FTLogger(transport), new FTTrace(transport), hooks);
9
- /** Shared SDK entry point for Cocos Creator 3.x applications. */
10
- export const guanceSdk = new FTCocosSDK(transport, autoTracking, 'creator3');
7
+ /** Shared native and Web entry point for Cocos Creator 3.x applications. */
8
+ export const guanceSdk = new FTCocosPlatformSDK('creator3', () => ({
9
+ engine: 'creator3',
10
+ platform: EDITOR ? 'unsupported' : !NATIVE ? 'web' : sys.os === sys.OS.ANDROID ? 'android' : sys.os === sys.OS.IOS ? 'ios' : 'unsupported',
11
+ reflection: NATIVE ? native.reflection : undefined,
12
+ hooks,
13
+ engineApi: { Camera, Director, EditBox, Input, Node, RenderTexture, UITransform, Vec3, director, input, isValid, native, sys, view },
14
+ canvasIsPublic: () => isScenePublic(director.getScene()),
15
+ }));
11
16
  export * from '../core/index.js';
12
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/creator3/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD,MAAM,SAAS,GAAG,IAAI,mBAAmB,EAAE,CAAC;AAC5C,MAAM,KAAK,GAAG,IAAI,uBAAuB,EAAE,CAAC;AAC5C,MAAM,YAAY,GAAG,IAAI,qBAAqB,CAC5C,IAAI,KAAK,CAAC,SAAS,CAAC,EACpB,IAAI,QAAQ,CAAC,SAAS,CAAC,EACvB,IAAI,OAAO,CAAC,SAAS,CAAC,EACtB,KAAK,CACN,CAAC;AAEF,iEAAiE;AACjE,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;AAE7E,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/creator3/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC3I,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,KAAK,GAAG,IAAI,uBAAuB,EAAE,CAAC;AAC5C,4EAA4E;AAC5E,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,kBAAkB,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;IACjE,MAAM,EAAE,UAAU;IAClB,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa;IAC1I,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;IAClD,KAAK;IACL,SAAS,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;IACpI,cAAc,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;CACzD,CAAC,CAAC,CAAC;AACJ,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=bootstrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../../../../src/native/bootstrap.ts"],"names":[],"mappings":""}
@@ -0,0 +1,32 @@
1
+ import { FTDefaultAutoTracking } from '../core/auto-tracking.js';
2
+ import { FTCocosSDK } from '../core/client.js';
3
+ import { FTLogger, FTRUM, FTTrace } from '../core/modules.js';
4
+ import { parseTransportResponse } from '../core/transport.js';
5
+ import { platformGlobal } from '../core/platform-runtime.js';
6
+ import { FT_COCOS_SDK_VERSION } from '../core/version.js';
7
+ /** Installed as a native/Editor plugin script; never imported by the game's module graph. */
8
+ platformGlobal().__FT_COCOS_NATIVE_FACTORY__ = {
9
+ protocol: 1,
10
+ version: FT_COCOS_SDK_VERSION,
11
+ create(context) {
12
+ if (context.platform === 'web')
13
+ throw new Error('Native runtime cannot serve a Web application');
14
+ const transport = {
15
+ platform: context.platform,
16
+ invoke(method, payload) {
17
+ if (context.platform === 'unsupported')
18
+ return undefined;
19
+ if (!context.reflection)
20
+ throw new Error('Cocos native reflection is unavailable');
21
+ const json = payload === undefined ? '{}' : JSON.stringify(payload);
22
+ const raw = context.platform === 'android'
23
+ ? context.reflection.callStaticMethod('com/ft/sdk/cocos/FTCocosBridge', 'invoke', '(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;', method, json)
24
+ : context.reflection.callStaticMethod('FTCocosBridge', 'invoke:payload:', method, json);
25
+ return parseTransportResponse(raw);
26
+ },
27
+ };
28
+ const tracking = new FTDefaultAutoTracking(new FTRUM(transport), new FTLogger(transport), new FTTrace(transport), context.hooks);
29
+ return new FTCocosSDK(transport, tracking, context.engine);
30
+ },
31
+ };
32
+ //# sourceMappingURL=bootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../../../src/native/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAA0B,MAAM,sBAAsB,CAAC;AACtF,OAAO,EAAE,cAAc,EAA0B,MAAM,6BAA6B,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,6FAA6F;AAC7F,cAAc,EAAE,CAAC,2BAA2B,GAAG;IAC7C,QAAQ,EAAE,CAAC;IACX,OAAO,EAAE,oBAAoB;IAC7B,MAAM,CAAC,OAA0B;QAC/B,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACjG,MAAM,SAAS,GAAsB;YACnC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,MAAM,CAAI,MAAc,EAAE,OAAiB;gBACzC,IAAI,OAAO,CAAC,QAAQ,KAAK,aAAa;oBAAE,OAAO,SAAS,CAAC;gBACzD,IAAI,CAAC,OAAO,CAAC,UAAU;oBAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;gBACnF,MAAM,IAAI,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBACpE,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,KAAK,SAAS;oBACxC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,gCAAgC,EAAE,QAAQ,EAAE,0DAA0D,EAAE,MAAM,EAAE,IAAI,CAAC;oBAC3J,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,eAAe,EAAE,iBAAiB,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;gBAC1F,OAAO,sBAAsB,CAAI,GAAG,CAAC,CAAC;YACxC,CAAC;SACF,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,qBAAqB,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACjI,OAAO,IAAI,UAAU,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { bootstrapWeb } from './runtime.js';
2
+ export type { FTCocosWebConfig, FTWebConfig, FTWebReplayConfig } from './types.js';
3
+ //# sourceMappingURL=bootstrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../../../../src/web/bootstrap.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { FTCocosWebSDK } from './client.js';
2
+ import { platformGlobal } from '../core/platform-runtime.js';
3
+ import { FT_COCOS_SDK_VERSION } from '../core/version.js';
4
+ /** Available before game modules, with Browser collectors initialized by bootstrapWeb(). */
5
+ platformGlobal().__FT_COCOS_WEB_FACTORY__ = {
6
+ protocol: 1,
7
+ version: FT_COCOS_SDK_VERSION,
8
+ create: (context, target) => new FTCocosWebSDK(context.hooks, context.canvasIsPublic, target),
9
+ };
10
+ export { bootstrapWeb } from './runtime.js';
11
+ //# sourceMappingURL=bootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../../../src/web/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG1D,4FAA4F;AAC5F,cAAc,EAAE,CAAC,wBAAwB,GAAG;IAC1C,QAAQ,EAAE,CAAC;IACX,OAAO,EAAE,oBAAoB;IAC7B,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,cAAc,EAAE,MAAqB,CAAC;CAC7G,CAAC;AACF,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,60 @@
1
+ import { FTLogger, FTMobileAgent, FTRUM, FTTrace } from '../core/modules.js';
2
+ import type { FTEngineTrackingHooks } from '../core/auto-tracking.js';
3
+ import type { FTCocosConfig, FTCocosEnterOptions } from '../core/types.js';
4
+ import type { FTCocosWebAttachConfig, FTCocosWebConfig, FTWebWindow } from './types.js';
5
+ /** Web facade. Browser owns page-wide collectors; detach only removes Cocos instrumentation. */
6
+ export declare class FTCocosWebSDK {
7
+ private readonly hooks;
8
+ private readonly canvasIsPublic;
9
+ private readonly target;
10
+ private readonly consoleObject;
11
+ readonly platform: "web";
12
+ readonly capabilities: {
13
+ readonly timedActions: false;
14
+ readonly manualResourceTiming: false;
15
+ readonly manualLongTasks: false;
16
+ readonly manualTraceHeaders: false;
17
+ readonly shutdown: false;
18
+ readonly nodeReplayMasks: false;
19
+ };
20
+ readonly mobile: FTMobileAgent;
21
+ readonly rum: FTRUM;
22
+ readonly logger: FTLogger;
23
+ readonly trace: FTTrace;
24
+ private runtime;
25
+ private tracking;
26
+ private state;
27
+ private stops;
28
+ private activeView;
29
+ private readonly privateNodes;
30
+ get lifecycleMode(): 'idle' | 'standalone' | 'hybrid';
31
+ get isCocosEntered(): boolean;
32
+ readonly replay: {
33
+ /** Recording settings belong to the pre-engine Web bootstrap. */
34
+ start: () => void;
35
+ stop: () => void;
36
+ isRecording: () => boolean;
37
+ /** Any protected node blocks the entire Cocos canvas; Browser Replay cannot render node masks. */
38
+ setPrivacy: (node: unknown, mode: "mask" | "hide" | "unmask") => void;
39
+ };
40
+ constructor(hooks: FTEngineTrackingHooks, canvasIsPublic: () => boolean, target?: FTWebWindow, consoleObject?: Console);
41
+ /** Starts standalone Cocos tracking, reusing pre-engine configuration when installed. */
42
+ start(config?: FTCocosWebConfig | FTCocosConfig): void;
43
+ /** Attaches to bootstrapWeb(), without initializing Browser collectors a second time. */
44
+ attach(config?: FTCocosWebAttachConfig): void;
45
+ enterCocos(options?: FTCocosEnterOptions): void;
46
+ /** Transitions to web.outsideViewName (CocosInactive by default). Browser session/network collection continues. */
47
+ leaveCocos(): void;
48
+ /** Releases Cocos hooks and Replay. Browser page collectors remain initialized until navigation/unload. */
49
+ detach(): void;
50
+ /** Stops this Cocos instance while retaining the page runtime. */
51
+ stop(): void;
52
+ shutdown(): never;
53
+ setReplayCamera(_camera: unknown): never;
54
+ private bind;
55
+ private startPage;
56
+ private stopPage;
57
+ private requireRuntime;
58
+ private trackConsole;
59
+ }
60
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../../src/web/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEtE,OAAO,KAAK,EAAwB,aAAa,EAAE,mBAAmB,EAAW,MAAM,kBAAkB,CAAC;AAE1G,OAAO,KAAK,EAAE,sBAAsB,EAAE,gBAAgB,EAAoB,WAAW,EAAE,MAAM,YAAY,CAAC;AAE1G,gGAAgG;AAChG,qBAAa,aAAa;IAmCtB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa;IArChC,QAAQ,CAAC,QAAQ,EAAG,KAAK,CAAU;IACnC,QAAQ,CAAC,YAAY;;;;;;;MAGV;IACX,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,KAAK,CAA0D;IACvE,OAAO,CAAC,KAAK,CAAyB;IACtC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA8B;IAC3D,IAAI,aAAa,IAAI,MAAM,GAAG,YAAY,GAAG,QAAQ,CAEpD;IACD,IAAI,cAAc,IAAI,OAAO,CAAoE;IACjG,QAAQ,CAAC,MAAM;QACb,iEAAiE;qBACtD,IAAI;oBACL,IAAI;2BACG,OAAO;QACxB,kGAAkG;2BAC/E,OAAO,QAAQ,MAAM,GAAG,MAAM,GAAG,QAAQ,KAAG,IAAI;MAMnE;gBAGiB,KAAK,EAAE,qBAAqB,EAC5B,cAAc,EAAE,MAAM,OAAO,EAC7B,MAAM,GAAE,WAAmC,EAC3C,aAAa,GAAE,OAAiB;IAYnD,yFAAyF;IACzF,KAAK,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,aAAa,GAAG,IAAI;IAoBtD,yFAAyF;IACzF,MAAM,CAAC,MAAM,GAAE,sBAA2B,GAAG,IAAI;IAejD,UAAU,CAAC,OAAO,GAAE,mBAAwB,GAAG,IAAI;IAWnD,mHAAmH;IACnH,UAAU,IAAI,IAAI;IAKlB,2GAA2G;IAC3G,MAAM,IAAI,IAAI;IAQd,kEAAkE;IAClE,IAAI,IAAI,IAAI;IACZ,QAAQ,IAAI,KAAK;IAGjB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,KAAK;IAIxC,OAAO,CAAC,IAAI;IAOZ,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,YAAY;CAcrB"}