(node:65752) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:65752) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/adapters/native/invite-clipboard.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ invite paste keeps native signatures and strips non-digits without truncating (1.5688ms)
✔ redemption paste preserves letters, punctuation, whitespace and leading zeroes (1.1048ms)
(node:60472) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:60472) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/config/sources/defaults.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ one host sample supplies frozen account and device without rewriting account cache (4.2025ms)
✔ undefined city omits ip and retains generated province and city (0.803ms)
✔ malformed host input fails and leaves no device (1.5774ms)
✔ machine cache is persisted and reused across source instances without now or random (1.389ms)
✔ damaged machine records fail without replacing the stored value (1.6143ms)
✔ machine generation validates timestamp and random boundaries (1.4132ms)
✔ machine storage and generation failures preserve the original cause (1.2193ms)
✔ concurrent prepares merge and reset conflicts in both directions (0.8723ms)
✔ reset invalidates device and changes account while preserving the machine key (0.5875ms)
✔ prepare starts by invalidating prior device and failure cannot expose it (0.6953ms)
✔ active-session reset rejects and invalidates the device without overwriting account (0.5802ms)
(node:45560) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:45560) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/config/sources/defaults.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ concurrent account reads share one generated frozen identity and one write (2.3985ms)
✔ random boundaries select first and last valid values (0.7858ms)
✔ rejects every invalid random sample without writing (1.2156ms)
✔ reuses only an exact schema record and never randomizes it (0.3043ms)
✔ rejects malformed cached records with key and field path without rewriting or leaking text (1.0952ms)
✔ preserves dependency failures as causes and keeps old storage on generation failure (0.5417ms)
✔ scope isolates identity types, ignores version, and serializes the server configuration (0.748ms)
✔ reset is isolated, refuses active sessions, and refuses overlap with getAccount (0.6865ms)
(node:28044) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:28044) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/adapters/native/owned-room-history.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ owned rooms use legacy cache, order, and server outcome lifecycle (2.9048ms)
✔ confirmed break removes only returned roomcode and absent roomcode leaves cache intact (0.3966ms)
(node:64720) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:64720) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/app/composition/game-definitions.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ each registration binds its own route, rules, presentation and chat (0.9641ms)
✔ public Cocos code cannot import a concrete game or application registry (41.3584ms)
✔ games cannot inherit another game implementation (14.3728ms)
✔ every modern framework file is transitively isolated from the exact legacy compatibility island (4163.3316ms)
✔ obsolete SDK identifier inventory stays within explicit negative tests and one legacy comment (73.8941ms)
✔ compatibility graph catches static imports, re-exports, and import types through barrels (100.6517ms)
✔ compatibility graph reports direct and ordinary transitive dependency paths (35.7607ms)
✔ compatibility graph catches string and no-substitution-template dynamic imports (14.5594ms)
✔ compatibility graph treats literal require calls as static dependencies (29.4554ms)
✔ compatibility graph resolves tsconfig path aliases to canonical files (12.2489ms)
✔ compatibility graph fails closed on a reachable non-static dynamic import (5.9837ms)
✔ compatibility graph fails closed on reachable non-static require calls (29.3607ms)
✔ compatibility graph applies the same isolation to a future platform/runtime.ts entry (18.119ms)
✔ platform/runtime.ts cannot import any former startup owner directly (37.4509ms)
✔ scanner rejects sdk contracts importing a framework platform path (27.8562ms)
✔ scanner rejects every sdk runtime dependency on framework implementation layers (146.665ms)
✔ scanner resolves and rejects an sdk runtime path alias into framework implementation (21.6143ms)
✔ scanner resolves and rejects a nested sdk CommonJS path alias into framework implementation (26.6298ms)
✔ scanner resolves and rejects a TypeScript import-equals sdk path alias (19.4857ms)
✔ scanner resolves and rejects a no-substitution-template dynamic sdk path alias (31.3558ms)
✔ scanner rejects Cocos imports throughout sdk runtime (40.7738ms)
✔ scanner rejects a no-substitution-template dynamic Cocos import in nested sdk code (10.4561ms)
✔ scanner rejects a CommonJS Cocos import in nested sdk code (30.121ms)
✔ sdk public barrel has no exemptions for any former migration dependency (14.2902ms)
✔ former active-game file has no exemption from obsolete SDK name checks (20.3916ms)
✔ obsolete SDK names are rejected in destructured CommonJS and dynamic imports and named re-exports (58.5664ms)
✔ scanner permits sdk-internal relatives and ordinary external pure dependencies (19.0214ms)
✔ scanner rejects game imports of framework net internals (7.9207ms)
✔ scanner rejects multiline game imports of framework net internals (17.7816ms)
✔ scanner rejects multiline sdk contract imports outside their sibling directory (9.6625ms)
✔ scanner permits a game import of the public sdk barrel (16.0347ms)
✔ scanner rejects games importing migration-only sdk declarations (7.9818ms)
✔ scanner rejects cc imports in sdk contracts (11.5269ms)
✔ scanner rejects non-relative imports in sdk contracts (8.7944ms)
✔ scanner rejects import-type leaks from sdk contracts (5.5407ms)
✔ scanner rejects export-star leaks from sdk contracts (5.3954ms)
✔ scanner rejects named re-export leaks from sdk contracts (5.2382ms)
✔ scanner permits cc imports in game code (10.9676ms)
✔ scanner rejects framework imports resolving under games (6.7243ms)
✔ scanner rejects framework production imports of migration-only sdk declarations (5.2233ms)
✔ scanner rejects alias imports of migration-only sdk declarations (8.8457ms)
✔ scanner rejects new production imports of a quarantined legacy runtime (6.1058ms)
✔ scanner rejects CommonJS imports of a quarantined legacy runtime (16.6392ms)
✔ scanner rejects string-literal dynamic imports that cross a boundary (6.2436ms)
✔ caught technical exceptions cannot be passed directly to player tip callbacks (301.4431ms)
✔ presentation boundary recognizes forbidden production imports (1.1563ms)
✔ presentation AST distinguishes pure type contracts from runtime dependencies (10.7752ms)
✔ every real presentation source satisfies the value-dependency boundary (90.4911ms)
✔ SDK public barrel exports contracts only (0.6472ms)
✔ SDK contracts-only gate rejects a local exported declaration (0.5442ms)
✔ SDK contracts-only gate requires exactly one contracts re-export (0.3727ms)
✔ SDK contracts-only gate rejects alternate exports and import-type leaks (0.8352ms)
✔ general architecture scanner keeps presentation internal to framework and out of SDK (438.5375ms)
✔ static definition extraction reads the authoritative object without executing game factories (5.8926ms)
✔ script UUID compression agrees with an actual serialized component and inherited page metadata (0.8349ms)
✔ current template and erqiwang assets have unique pages and matching composition references (2.9673ms)
✔ duplicate template component on erqiwang prefab is rejected (38.9945ms)
✔ wrong game page and missing page are rejected (52.7136ms)
✔ serialized composition reference cannot point to another game or a missing resource (35.9074ms)
✔ unknown configured game, unresolved script and duplicate room views are rejected (40.5493ms)
✔ inheritance resolves the erqiwang room view through its shared public base (0.2194ms)
✔ component on a child node cannot satisfy the platform root lookup (40.6567ms)
✔ an orphan component record cannot satisfy the platform root lookup (33.2758ms)
(node:66824) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:66824) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/config/profiles.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ resolveBootstrap：显式 hostKind 透传严格 RuntimeConfig，并保留 profile 元数据 (2.5783ms)
✔ facade forwards the entire injected source and derives its compatibility label (1.1729ms)
(node:34384) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:34384) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/config/identity.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ BUILD_IDENTITY 含全部字段且 gameid 为固定 token (1.9973ms)
✔ resolveIdentity：后面的 source 覆盖前面的 (0.5009ms)
✔ resolveIdentity：undefined / null / 空串 不覆盖 (0.4084ms)
✔ resolveIdentity：marketid=0 是有效值，应覆盖 (0.2396ms)
(node:66112) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:66112) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/config/remote-config.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ launchWaitTime follows legacy default, hall own field and truthy hierarchy precedence (1.1505ms)
(node:30060) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:30060) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/config/remote-config.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ config logging emits the parsed object and is silent when disabled (87.1986ms)
✔ project txt parses JSON and releases the asset after every load (9.0997ms)
✔ release build never loads local txt; missing or malformed assets expose source errors (21.741ms)
(node:66512) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:66512) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/config/sources/defaults.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ local debug fetches remote config before choosing authoritative local servers (2.998ms)
✔ rejects non-local startup modes and hosts before fetching (1.0351ms)
✔ ignores conflicting and duplicate mode/profile queries (0.6016ms)
✔ rejects gameconfig and ambiguous identity controls before fetching (0.4924ms)
✔ permits query identity overrides except gameid and validates numeric version (0.5024ms)
✔ context validator rejects forged config fields and malformed identity (0.6651ms)
✔ context validator names identity when a forged context omits the identity object (0.3977ms)
✔ connection target must be a valid URL from the authoritative local profile (0.4708ms)
✔ local consumers validate the injected source snapshot and its exact targets (0.6385ms)
✔ local startup validates the selected project txt source (0.4631ms)
(node:12940) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:12940) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/config/profiles.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ decodeGameConfig：按旧协议把 -/# 解码为远程 txt URL (1.2146ms)
✔ resolveGameServer：空 gameconfig 使用配置源，非空值使用解码后的注入源 (0.2609ms)
✔ one frozen source defines the complete default startup configuration (0.9862ms)
✔ source validation rejects malformed configuration without defaults (1.148ms)
✔ config source and local resource paths are explicit and local is debug only (0.35ms)
(node:67076) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:67076) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/config/profiles.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
[Config REMOTE] https://config.example/file.txt?existing=1?123 { player_server_tcp: '10.0.0.1:3088' }
[Config REMOTE] https://tsgames.daoqi88.cn/config_test/update_jsonv2.txt?123 { player_server_tcp: '10.0.0.1:3088' }
[Config REMOTE] https://config.example/file.txt?123 { parseError: 'Invalid JSON', raw: 'not-json' }
✔ HttpConfigFetcher：POST 空 body，并无条件以 ? 拼接 cache bust (31.8525ms)
✔ resolveRuntimeConfig：把 cacheBust 注入唯一的 HTTP 请求构造点 (1.7537ms)
✔ HttpConfigFetcher：非法 JSON 显式抛 ConfigParseError (0.9615ms)
✔ HttpConfigFetcher：非 200 响应即使 body 是合法 JSON 也拒绝 (0.5685ms)
(node:57164) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:57164) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/config/remote-config.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ get_paravalue is the shared legacy-compatible reader, including an absent data wrapper (3.5749ms)
✔ memory view agrees with actual legacy function across all five scopes and preserves raw objects (22.3209ms)
✔ falsy root values remain null and missing identity levels stop inheritance (0.2199ms)
✔ invalid root and present hierarchy fail explicitly (0.7383ms)
✔ server selection prefers scoped game then player and preserves order and duplicates (0.6356ms)
✔ missing or invalid chosen servers never fall back to obsolete envelope or player candidates (0.4944ms)
✔ WebSocket fragments including an empty trailing marker fail at the config boundary (0.2462ms)
(node:13484) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:13484) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/config/profiles.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
[NativeCall] {
  channel: 'settings',
  method: 'getothername',
  args: [ 'agent' ],
  available: true
}
[NativeCall] {
  channel: 'settings',
  method: 'getchannelName',
  args: [],
  available: true
}
[NativeCall] {
  channel: 'settings',
  method: 'getmarketname',
  args: [],
  available: true
}
[NativeCall] {
  channel: 'settings',
  method: 'getothername',
  args: [ 'gameconfig' ],
  available: true
}
[NativeCall] {
  channel: 'settings',
  method: 'getothername',
  args: [ 'agent' ],
  available: false
}
[NativeCall] {
  channel: 'settings',
  method: 'getchannelName',
  args: [],
  available: false
}
[NativeCall] {
  channel: 'settings',
  method: 'getmarketname',
  args: [],
  available: false
}
✔ h5：只读 query 身份，不访问原生宿主，并生成严格 remote 配置 (3.1091ms)
✔ native-settings：使用四个原生方法，gameconfig 是唯一 gameserver 注入名 (1.368ms)
✔ uAgent_3：只读 app_<name>，settings 不参与身份或 gameserver (0.327ms)
✔ native-settings：不完整最终身份显式拒绝，不拿 build identity 兜底 (1.0898ms)
✔ uAgent_3：所有允许 number 的身份字段都拒绝 NaN 和无穷值 (0.5589ms)
✔ uAgent_3：拒绝宿主提供的非法身份字段类型 (0.3653ms)
✔ 显式 local debug：远程配置保留内存，连接服务器来自 profile (0.4282ms)
✔ 远程抓取失败显式报错，不降级 direct (0.3496ms)
✔ release ignores local profile but still fetches and selects remote servers (0.3195ms)
✔ JSON parse errors retain their classification through the runtime boundary (0.9821ms)
✔ local consumes explicit loopback targets after valid remote JSON even when remote candidates are absent (0.2892ms)
✔ remote profiles reject missing game/player addresses without selecting visitor (0.3143ms)
✔ independent source debug/true ignores URL selectors (0.2685ms)
✔ independent source debug/false ignores URL selectors (0.1771ms)
✔ independent source release/true ignores URL selectors (0.1008ms)
✔ independent source release/false ignores URL selectors (0.1263ms)
✔ default runtime starts without query configuration (0.1407ms)
✔ invalid source fails before remote fetch, including null and missing fields (1.3282ms)
✔ remote failure never falls back debug/true (0.1806ms)
✔ remote failure never falls back debug/false (0.0725ms)
✔ remote failure never falls back release/true (0.0555ms)
✔ remote failure never falls back release/false (0.051ms)
✔ local txt selects one source, ignores gameconfig and preserves scoped values (0.1439ms)
✔ local txt errors never fall back to remote, release rejects before I/O (0.2572ms)
✔ local txt and socket target are independent; remote mode never touches local loader (0.214ms)
(node:51080) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:51080) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/config/runtime-mode.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ runtime mode is an explicit pure reader without environment defaults (1.1034ms)
(node:43620) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:43620) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/config/sources/native-settings.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
[NativeCall] {
  channel: 'settings',
  method: 'getothername',
  args: [ 'gameconfig' ],
  available: true
}
[NativeCall] {
  channel: 'settings',
  method: 'getchannelName',
  args: [],
  available: true
}
[NativeCall] {
  channel: 'settings',
  method: 'getchannelName',
  args: [],
  available: true
}
[NativeCall] {
  channel: 'settings',
  method: 'getchannelName',
  args: [],
  available: true
}
[NativeCall] {
  channel: 'settings',
  method: 'getchannelName',
  args: [],
  available: true
}
[NativeCall] {
  channel: 'settings',
  method: 'getmarketname',
  args: [],
  available: true
}
[NativeCall] {
  channel: 'settings',
  method: 'getmarketname',
  args: [],
  available: true
}
[NativeCall] {
  channel: 'settings',
  method: 'getmarketname',
  args: [],
  available: true
}
[NativeCall] {
  channel: 'settings',
  method: 'getothername',
  args: [ 'agent' ],
  available: true
}
[NativeCall] {
  channel: 'settings',
  method: 'getchannelName',
  args: [],
  available: true
}
[NativeCall] {
  channel: 'settings',
  method: 'getmarketname',
  args: [],
  available: true
}
✔ 非 uAgent_3 getothername 调 settings，异常只在源边界转换为空串 (3.1632ms)
✔ getchannelName 返回 truthy settings 结果，否则按宿主执行旧缺省语义 (1.1174ms)
✔ getmarketname 返回 settings 结果；异常按宿主执行旧缺省语义 (0.7427ms)
✔ uAgent_3 getothername 只读 app_<name>，不调用 settings (0.1806ms)
✔ nativeIdentitySource 仅返回所选宿主提供的原生身份字段 (0.5343ms)
(node:58532) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:58532) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/config/sources/query-string.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ 解析 agentid/channelid/marketid/version (1.4833ms)
✔ 缺省键不出现在结果里 (0.3368ms)
✔ 空 query → 空对象 (0.2371ms)
✔ 不含前导 ? 也能解析 (0.1932ms)
(node:51148) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:51148) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/core/constants.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ 框架常量与 docs/protocol 对齐 (0.851ms)
(node:48320) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:48320) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/core/events.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
[EventBus] handler error: Error: boom
    at <anonymous> (G:\Works\YouleGamesCocosCreator\cocoscreator_projects\framework-tests\core\events.test.ts:36:32)
    at EventBus.emit (G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\assets\framework\core\events.ts:26:13)
    at TestContext.<anonymous> (G:\Works\YouleGamesCocosCreator\cocoscreator_projects\framework-tests\core\events.test.ts:38:7)
    at Test.runInAsyncScope (node:async_hooks:227:14)
    at Test.run (node:internal/test_runner/test:1382:25)
    at Test.processPendingSubtests (node:internal/test_runner/test:960:18)
    at Test.postRun (node:internal/test_runner/test:1522:19)
    at Test.run (node:internal/test_runner/test:1447:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async Test.processPendingSubtests (node:internal/test_runner/test:960:7)
✔ on/emit 传递参数 (1.1334ms)
✔ off 取消订阅 (0.2842ms)
✔ once 只触发一次 (0.219ms)
✔ 一个事件订阅者抛错不影响其它订阅者 (2.9345ms)
(node:59376) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:59376) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/core/seat.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ toView：自己永远是视图 0 号位 (1.0397ms)
✔ toView：他人按环形相对自己排布 (0.2975ms)
✔ fromView 是 toView 的逆运算 (0.2507ms)
(node:53540) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:53540) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/config/profiles.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ real local resolution and visitor sources build the login envelope with query identity and omitted optional fields (5.2851ms)
✔ one host sample overrides province and city in the real envelope without changing the visitor cache (1.4664ms)
✔ a version upgrade reuses stored account and machine but sends the newly resolved numeric version (1.5582ms)
▶ corrupt and unknown cached account records stop before the real builder and invalidate the prepared device
  ✔ corrupt JSON (0.9164ms)
  ✔ unknown schema (0.6238ms)
  ✔ unknown account field (0.5768ms)
  ✔ missing identity (0.3716ms)
✔ corrupt and unknown cached account records stop before the real builder and invalidate the prepared device (3.6177ms)
(node:66300) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:66300) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/config/profiles.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://agent',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:49.328Z'
}
[收发包] 发送 { server: 'ws://agent', time: '2026-09-08T12:07:49.332Z' } {"app":"youle","route":"agent","rpc":"player_login","data":{"agentid":"A","gameid":"41","openid":"o","nickname":"n","avatar":"a","sex":0,"province":"","city":"","unionid":"u","version":1,"channelid":"C","marketid":4,"location":null,"machineid":"machine","machineroom":"install"}}
[收发包] 接收 { server: 'ws://agent', time: '2026-09-08T12:07:49.333Z' } {"route":"agent","rpc":"self_join_room","data":{"state":0,"roomcode":"100001","seat":1,"isowner":1,"roomtype":[1,4,1,2,2,[1,1,[1,2000,10],null,null,1],[1,0,5]],"asetcount":8,"makewar":4,"players":[null,{"playerid":430511,"nickname":"测试号","avatar":"http://a","sex":0,"bean":0,"isprepare":1,"onstate":1},null,null],"roommode":0,"beanlimit":0,"needprepare":1,"infinite":0,"rebateNumber":0,"rebateMode":0,"rebateType":0,"deskwar":1,"deskinfo":{"round":3,"cards":[1,2,3]}}}
[连接状态] 登录回包超时，请求重连 {
  reason: 'login-response-timeout',
  timeoutMs: 4000,
  time: '2026-09-08T12:07:49.334Z'
}
[连接状态] 已断开 {
  event: 'close',
  server: 'ws://agent',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:49.334Z'
}
[连接状态] 正在重连 {
  event: 'reconnecting',
  server: 'ws://agent',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:49.334Z',
  retryAfterMs: 10000
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://agent',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:49.334Z'
}
[收发包] 发送 { server: 'ws://agent', time: '2026-09-08T12:07:49.334Z' } {"app":"youle","route":"agent","rpc":"player_login","data":{"agentid":"A","gameid":"41","openid":"o","nickname":"n","avatar":"a","sex":0,"province":"","city":"","unionid":"u","version":1,"channelid":"C","marketid":4,"location":null,"machineid":"machine","machineroom":"install"}}
[收发包] 接收 { server: 'ws://agent', time: '2026-09-08T12:07:49.335Z' } {"route":"agent","rpc":"player_login","data":{"state":0,"playerid":430511,"agentid":"veRa0qrBf","channelid":"FtJf073aa","nickname":"测试号","avatar":"http://a","openid":"o1","sex":0,"unionid":"test_unionid","roomcard":3,"bean":0,"score":0,"invitecode":null,"advanced":0,"taskstate":1,"ip":"127.0.0.1","bankpower":1,"bank":0,"sign":null,"tel":null,"initCard":"3","initBean":"0","bankpwd":0,"agentname":"进贤","agentmode":2,"gameversion":41}}
[连接状态] 已断开 {
  event: 'close',
  server: 'ws://agent',
  connected: false,
  stopped: true,
  time: '2026-09-08T12:07:49.337Z'
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://agent',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:49.338Z'
}
[收发包] 发送 { server: 'ws://agent', time: '2026-09-08T12:07:49.338Z' } {"app":"youle","route":"agent","rpc":"player_login","data":{"agentid":"A","gameid":"41","openid":"o","nickname":"n","avatar":"a","sex":0,"province":"","city":"","unionid":"u","version":1,"channelid":"C","marketid":4,"location":null,"machineid":"machine","machineroom":"install"}}
[收发包] 接收 { server: 'ws://agent', time: '2026-09-08T12:07:49.338Z' } {"route":"agent","rpc":"player_login","data":{"state":0,"playerid":430511,"agentid":"veRa0qrBf","channelid":"FtJf073aa","nickname":"测试号","avatar":"http://a","openid":"o1","sex":0,"unionid":"test_unionid","roomcard":3,"bean":0,"score":0,"invitecode":null,"advanced":0,"taskstate":1,"ip":"127.0.0.1","bankpower":1,"bank":0,"sign":null,"tel":null,"initCard":"3","initBean":"0","bankpwd":0,"agentname":"进贤","agentmode":2,"gameversion":41,"roomcode":"100001","seat":1,"isowner":1,"roomtype":[1,4,1,2,2,[1,1,[1,2000,10],null,null,1],[1,0,5]],"asetcount":8,"isbattle":1,"makewar":4,"players":[null,{"playerid":430511,"nickname":"测试号","avatar":"http://a","sex":0,"bean":0,"isprepare":1,"onstate":1},null,null],"roommode":0,"beanlimit":0,"needprepare":1,"infinite":0,"rebateNumber":0,"rebateMode":0,"rebateType":0}}
[连接状态] 已断开 {
  event: 'close',
  server: 'ws://agent',
  connected: false,
  stopped: true,
  time: '2026-09-08T12:07:49.341Z'
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://agent',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:49.342Z'
}
[收发包] 发送 { server: 'ws://agent', time: '2026-09-08T12:07:49.343Z' } {"app":"youle","route":"agent","rpc":"player_login","data":{"agentid":"A","gameid":"41","openid":"o","nickname":"n","avatar":"a","sex":0,"province":"","city":"","unionid":"u","version":1,"channelid":"C","marketid":4,"location":null,"machineid":"machine","machineroom":"install"}}
[收发包] 接收 { server: 'ws://agent', time: '2026-09-08T12:07:49.343Z' } {"route":"agent","rpc":"player_login","data":{"state":0,"playerid":430511,"agentid":"veRa0qrBf","channelid":"FtJf073aa","nickname":"测试号","avatar":"http://a","openid":"o1","sex":0,"unionid":"test_unionid","roomcard":3,"bean":0,"score":0,"invitecode":null,"advanced":0,"taskstate":1,"ip":"127.0.0.1","bankpower":1,"bank":0,"sign":null,"tel":null,"initCard":"3","initBean":"0","bankpwd":0,"agentname":"进贤","agentmode":2,"gameversion":41,"roomcode":"100001","seat":1,"isowner":1,"roomtype":[1,4,1,2,2,[1,1,[1,2000,10],null,null,1],[1,0,5]],"asetcount":8,"isbattle":1,"makewar":4,"players":[null,{"playerid":430511,"nickname":"测试号","avatar":"http://a","sex":0,"bean":0,"isprepare":1,"onstate":1},null,null],"roommode":0,"beanlimit":0,"needprepare":1,"infinite":0,"rebateNumber":0,"rebateMode":0,"rebateType":0,"deskinfo":null}}
[连接状态] 已断开 {
  event: 'close',
  server: 'ws://agent',
  connected: false,
  stopped: true,
  time: '2026-09-08T12:07:49.343Z'
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://agent',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:49.344Z'
}
[收发包] 发送 { server: 'ws://agent', time: '2026-09-08T12:07:49.344Z' } {"app":"youle","route":"agent","rpc":"player_login","data":{"agentid":"A","gameid":"41","openid":"o","nickname":"n","avatar":"a","sex":0,"province":"","city":"","unionid":"u","version":1,"channelid":"C","marketid":4,"location":null,"machineid":"machine","machineroom":"install"}}
[收发包] 接收 { server: 'ws://agent', time: '2026-09-08T12:07:49.344Z' } {"route":"agent","rpc":"player_login","data":{"state":0,"playerid":430511,"agentid":"veRa0qrBf","channelid":"FtJf073aa","nickname":"测试号","avatar":"http://a","openid":"o1","sex":0,"unionid":"test_unionid","roomcard":3,"bean":0,"score":0,"invitecode":null,"advanced":0,"taskstate":1,"ip":"127.0.0.1","bankpower":1,"bank":0,"sign":null,"tel":null,"initCard":"3","initBean":"0","bankpwd":0,"agentname":"进贤","agentmode":2,"gameversion":41,"roomcode":"100001","seat":1,"isowner":1,"roomtype":[1,4,1,2,2,[1,1,[1,2000,10],null,null,1],[1,0,5]],"asetcount":8,"isbattle":1,"makewar":4,"players":[null,{"playerid":430511,"nickname":"测试号","avatar":"http://a","sex":0,"bean":0,"isprepare":1,"onstate":1},null,null],"roommode":0,"beanlimit":0,"needprepare":1,"infinite":0,"rebateNumber":0,"rebateMode":0,"rebateType":0,"deskinfo":false}}
[连接状态] 已断开 {
  event: 'close',
  server: 'ws://agent',
  connected: false,
  stopped: true,
  time: '2026-09-08T12:07:49.344Z'
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://agent',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:49.345Z'
}
[收发包] 发送 { server: 'ws://agent', time: '2026-09-08T12:07:49.345Z' } {"app":"youle","route":"agent","rpc":"player_login","data":{"agentid":"A","gameid":"41","openid":"o","nickname":"n","avatar":"a","sex":0,"province":"","city":"","unionid":"u","version":1,"channelid":"C","marketid":4,"location":null,"machineid":"machine","machineroom":"install"}}
[收发包] 接收 { server: 'ws://agent', time: '2026-09-08T12:07:49.345Z' } {"route":"agent","rpc":"player_login","data":{"state":0,"playerid":430511,"agentid":"veRa0qrBf","channelid":"FtJf073aa","nickname":"测试号","avatar":"http://a","openid":"o1","sex":0,"unionid":"test_unionid","roomcard":3,"bean":0,"score":0,"invitecode":null,"advanced":0,"taskstate":1,"ip":"127.0.0.1","bankpower":1,"bank":0,"sign":null,"tel":null,"initCard":"3","initBean":"0","bankpwd":0,"agentname":"进贤","agentmode":2,"gameversion":41,"roomcode":"100001","seat":1,"isowner":1,"roomtype":[1,4,1,2,2,[1,1,[1,2000,10],null,null,1],[1,0,5]],"asetcount":8,"isbattle":1,"makewar":4,"players":[null,{"playerid":430511,"nickname":"测试号","avatar":"http://a","sex":0,"bean":0,"isprepare":1,"onstate":1},null,null],"roommode":0,"beanlimit":0,"needprepare":1,"infinite":0,"rebateNumber":0,"rebateMode":0,"rebateType":0,"deskinfo":0}}
[连接状态] 已断开 {
  event: 'close',
  server: 'ws://agent',
  connected: false,
  stopped: true,
  time: '2026-09-08T12:07:49.346Z'
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://agent',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:49.346Z'
}
[收发包] 发送 { server: 'ws://agent', time: '2026-09-08T12:07:49.347Z' } {"app":"youle","route":"agent","rpc":"player_login","data":{"agentid":"A","gameid":"41","openid":"o","nickname":"n","avatar":"a","sex":0,"province":"","city":"","unionid":"u","version":1,"channelid":"C","marketid":4,"location":null,"machineid":"machine","machineroom":"install"}}
[收发包] 接收 { server: 'ws://agent', time: '2026-09-08T12:07:49.347Z' } {"route":"agent","rpc":"player_login","data":{"state":0,"playerid":430511,"agentid":"veRa0qrBf","channelid":"FtJf073aa","nickname":"测试号","avatar":"http://a","openid":"o1","sex":0,"unionid":"test_unionid","roomcard":3,"bean":0,"score":0,"invitecode":null,"advanced":0,"taskstate":1,"ip":"127.0.0.1","bankpower":1,"bank":0,"sign":null,"tel":null,"initCard":"3","initBean":"0","bankpwd":0,"agentname":"进贤","agentmode":2,"gameversion":41,"roomcode":"100001","seat":1,"isowner":1,"roomtype":[1,4,1,2,2,[1,1,[1,2000,10],null,null,1],[1,0,5]],"asetcount":8,"isbattle":1,"makewar":4,"players":[null,{"playerid":430511,"nickname":"测试号","avatar":"http://a","sex":0,"bean":0,"isprepare":1,"onstate":1},null,null],"roommode":0,"beanlimit":0,"needprepare":1,"infinite":0,"rebateNumber":0,"rebateMode":0,"rebateType":0,"deskinfo":""}}
[连接状态] 已断开 {
  event: 'close',
  server: 'ws://agent',
  connected: false,
  stopped: true,
  time: '2026-09-08T12:07:49.347Z'
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://agent',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:49.348Z'
}
[收发包] 发送 { server: 'ws://agent', time: '2026-09-08T12:07:49.348Z' } {"app":"youle","route":"agent","rpc":"player_login","data":{"agentid":"A","gameid":"41","openid":"o","nickname":"n","avatar":"a","sex":0,"province":"","city":"","unionid":"u","version":1,"channelid":"C","marketid":4,"location":null,"machineid":"machine","machineroom":"install"}}
[收发包] 接收 { server: 'ws://agent', time: '2026-09-08T12:07:49.349Z' } {"route":"agent","rpc":"player_login","data":{"state":0,"playerid":430511,"agentid":"veRa0qrBf","channelid":"FtJf073aa","nickname":"测试号","avatar":"http://a","openid":"o1","sex":0,"unionid":"test_unionid","roomcard":3,"bean":0,"score":0,"invitecode":null,"advanced":0,"taskstate":1,"ip":"127.0.0.1","bankpower":1,"bank":0,"sign":null,"tel":null,"initCard":"3","initBean":"0","bankpwd":0,"agentname":"进贤","agentmode":2,"gameversion":41,"roomcode":"100001","seat":1,"isowner":1,"roomtype":[1,4,1,2,2,[1,1,[1,2000,10],null,null,1],[1,0,5]],"asetcount":8,"isbattle":1,"makewar":4,"players":[null,{"playerid":430511,"nickname":"测试号","avatar":"http://a","sex":0,"bean":0,"isprepare":1,"onstate":1},null,null],"roommode":0,"beanlimit":0,"needprepare":1,"infinite":0,"rebateNumber":0,"rebateMode":0,"rebateType":0,"deskinfo":{"round":3,"cards":[1,2,3]}}}
[收发包] 接收 { server: 'ws://agent', time: '2026-09-08T12:07:49.349Z' } {"route":"another-game","rpc":"deal","data":{"cards":[1]}}
[连接状态] 已断开 {
  event: 'close',
  server: 'ws://agent',
  connected: false,
  stopped: true,
  time: '2026-09-08T12:07:49.350Z'
}
✔ modern login gates business packets and retries exact login after the four-second guard (10.9225ms)
✔ modern room login does not restore falsey deskinfo: undefined (4.6395ms)
✔ modern room login does not restore falsey deskinfo: null (1.3341ms)
✔ modern room login does not restore falsey deskinfo: false (0.9598ms)
✔ modern room login does not restore falsey deskinfo: 0 (1.2306ms)
✔ modern room login does not restore falsey deskinfo:  (1.551ms)
✔ another game route throws in the sole Router dispatch and becomes one terminal runtime error (2.5795ms)
(node:40372) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:40372) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/config/profiles.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
[NativeCall] {
  channel: 'settings',
  method: 'getothername',
  args: [ 'agent' ],
  available: true
}
[NativeCall] {
  channel: 'settings',
  method: 'getchannelName',
  args: [],
  available: true
}
[NativeCall] {
  channel: 'settings',
  method: 'getmarketname',
  args: [],
  available: true
}
[NativeCall] {
  channel: 'settings',
  method: 'getothername',
  args: [ 'gameconfig' ],
  available: true
}
[Config REMOTE] http://config.example/config.txt?fixed-cache-bust {
  urlserver: 'wrong-root.example:1',
  player_server_tcp: [ 'agent.example:3088', 'backup.example:3088' ]
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://agent.example:3088',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:49.415Z'
}
[收发包] 接收 { server: 'ws://agent.example:3088', time: '2026-09-08T12:07:49.417Z' } @toconconHELLO
[收发包] 发送 { server: 'ws://agent.example:3088', time: '2026-09-08T12:07:49.419Z' } {"app":"youle","route":"agent","rpc":"player_login","data":{"agentid":"veRa0qrBf","gameid":"J9r4022t80pxlb01zOK76DN1WD4QewFl","openid":"o1","nickname":"测试号","avatar":"http://a","sex":0,"province":"江西","city":"南昌","unionid":"test_unionid","version":1,"channelid":"FtJf073aa","marketid":4,"location":{"latitude":1,"longitude":2},"machineid":"machine-1","machineroom":"room-install-1","ip":"127.0.0.1"}}
[收发包] 接收 { server: 'ws://agent.example:3088', time: '2026-09-08T12:07:49.419Z' } {"route":"agent","rpc":"player_login","data":{"state":0,"playerid":430511,"agentid":"veRa0qrBf","channelid":"FtJf073aa","nickname":"测试号","avatar":"http://a","openid":"o1","sex":0,"unionid":"test_unionid","roomcard":3,"bean":0,"score":0,"invitecode":null,"advanced":0,"taskstate":1,"ip":"127.0.0.1","bankpower":1,"bank":0,"sign":null,"tel":null,"initCard":"3","initBean":"0","bankpwd":0,"agentname":"进贤","agentmode":2,"gameversion":41}}
[收发包] 发送 { server: 'ws://agent.example:3088', time: '2026-09-08T12:07:49.421Z' } {"app":"youle","route":"agent","rpc":"self_join_room","data":{"agentid":"veRa0qrBf","playerid":430511,"gameid":"J9r4022t80pxlb01zOK76DN1WD4QewFl","roomcode":"999999","location":{"latitude":1,"longitude":2},"ip":"127.0.0.1"}}
[收发包] 接收 { server: 'ws://agent.example:3088', time: '2026-09-08T12:07:49.421Z' } {"route":"agent","rpc":"self_join_room","data":{"state":99,"roomcode":"999999","showerror":1,"error":"Room does not exist"}}
[收发包] 发送 { server: 'ws://agent.example:3088', time: '2026-09-08T12:07:49.421Z' } {"app":"youle","route":"agent","rpc":"self_join_room","data":{"agentid":"veRa0qrBf","playerid":430511,"gameid":"J9r4022t80pxlb01zOK76DN1WD4QewFl","roomcode":"100001","location":{"latitude":1,"longitude":2},"ip":"127.0.0.1"}}
[收发包] 接收 { server: 'ws://agent.example:3088', time: '2026-09-08T12:07:49.421Z' } {"app":"youle","route":"room","rpc":"connect_roomserver","data":{"roomserver":"room.example:3089","token":"original-token","roomcode":"100001"}}
[连接状态] 已断开 {
  event: 'close',
  server: 'ws://room.example:3089',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:49.422Z'
}
[连接状态] 正在重连 {
  event: 'reconnecting',
  server: 'ws://room.example:3089',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:49.422Z',
  retryAfterMs: 10000
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://room.example:3089',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:49.422Z'
}
[收发包] 发送 { server: 'ws://room.example:3089', time: '2026-09-08T12:07:49.422Z' } {"app":"youle","route":"room","rpc":"connect_roomserver","data":{"roomserver":"room.example:3089","token":"original-token","roomcode":"100001"}}
[收发包] 接收 { server: 'ws://room.example:3089', time: '2026-09-08T12:07:49.423Z' } {"route":"agent","rpc":"self_join_room","data":{"state":0,"roomcode":"100001","seat":1,"isowner":1,"roomtype":[1,4,1,2,2,[1,1,[1,2000,10],null,null,1],[1,0,5]],"asetcount":8,"makewar":4,"players":[null,{"playerid":430511,"nickname":"测试号","avatar":"http://a","sex":0,"bean":0,"isprepare":0,"onstate":1},null,null],"roommode":0,"beanlimit":0,"needprepare":1,"infinite":0,"rebateNumber":0,"rebateMode":0,"rebateType":0,"deskwar":0}}
[收发包] 发送 { server: 'ws://room.example:3089', time: '2026-09-08T12:07:49.427Z' } {"app":"youle","route":"room","rpc":"player_prepare","data":{"agentid":"veRa0qrBf","playerid":430511,"gameid":"J9r4022t80pxlb01zOK76DN1WD4QewFl","roomcode":"100001"}}
[收发包] 接收 { server: 'ws://room.example:3089', time: '2026-09-08T12:07:49.427Z' } {"route":"room","rpc":"player_prepare","data":{"seat":1}}
[收发包] 接收 { server: 'ws://room.example:3089', time: '2026-09-08T12:07:49.428Z' } {"route":"fixture-game","rpc":"deal","data":{"cards":[7,8]}}
[连接状态] 已断开 {
  event: 'close',
  server: 'ws://room.example:3089',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:49.428Z'
}
[连接状态] 正在重连 {
  event: 'reconnecting',
  server: 'ws://room.example:3089',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:49.428Z',
  retryAfterMs: 10000
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://room.example:3089',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:49.428Z'
}
[收发包] 发送 { server: 'ws://room.example:3089', time: '2026-09-08T12:07:49.429Z' } {"app":"youle","route":"agent","rpc":"player_login","data":{"agentid":"veRa0qrBf","gameid":"J9r4022t80pxlb01zOK76DN1WD4QewFl","openid":"o1","nickname":"测试号","avatar":"http://a","sex":0,"province":"江西","city":"南昌","unionid":"test_unionid","version":1,"channelid":"FtJf073aa","marketid":4,"location":{"latitude":1,"longitude":2},"machineid":"machine-1","machineroom":"room-install-1","ip":"127.0.0.1"}}
[收发包] 接收 { server: 'ws://room.example:3089', time: '2026-09-08T12:07:49.429Z' } {"route":"agent","rpc":"player_login","data":{"state":0,"playerid":430511,"agentid":"veRa0qrBf","channelid":"FtJf073aa","nickname":"测试号","avatar":"http://a","openid":"o1","sex":0,"unionid":"test_unionid","roomcard":3,"bean":0,"score":0,"invitecode":null,"advanced":0,"taskstate":1,"ip":"127.0.0.1","bankpower":1,"bank":0,"sign":null,"tel":null,"initCard":"3","initBean":"0","bankpwd":0,"agentname":"进贤","agentmode":2,"gameversion":41,"roomcode":"100001","seat":1,"isowner":1,"roomtype":[1,4,1,2,2,[1,1,[1,2000,10],null,null,1],[1,0,5]],"asetcount":8,"isbattle":1,"makewar":4,"players":[null,{"playerid":430511,"nickname":"测试号","avatar":"http://a","sex":0,"bean":0,"isprepare":1,"onstate":1},null,null],"roommode":0,"beanlimit":0,"needprepare":1,"infinite":0,"rebateNumber":0,"rebateMode":0,"rebateType":0,"deskinfo":{"round":3,"cards":[1,2,3]}}}
[收发包] 接收 { server: 'ws://room.example:3089', time: '2026-09-08T12:07:49.430Z' } {"route":"agent","rpc":"kick_server","data":{"msg":"elsewhere"}}
[连接状态] 已断开 {
  event: 'close',
  server: 'ws://room.example:3089',
  connected: false,
  stopped: true,
  time: '2026-09-08T12:07:49.430Z'
}
✔ real modern vertical replay preserves wire contracts, room ordering and terminal kick (41.3883ms)
✔ computeLpos 锚点转换（实测验证：渠道logo） (0.6958ms)
✔ computeLpos 锚点转换（实测验证：游客登录） (0.1211ms)
✔ computeLpos 字符串转数字（X/Y 为字符串 "0"/"-100"） (0.0836ms)
✔ computeContentSize 直接读 Width/Height（SizeCalcMode=0 路径） (0.1723ms)
✔ computeContentSize 默认 SizeCalcMode=0（字段缺失视作 0） (0.1353ms)
✔ computeContentSize SizeCalcMode=1 → throw（不静默） (0.9336ms)
✔ computeContentSize SizeCalcMode=2 uses ImgResID natural size and relative ratios (1.408ms)
✔ computeWidgetAlignment derives full-screen, normal, and top-left alignment cases (0.506ms)
✔ buildGroupParents 把同 group Spirit 归类 (1.7534ms)
✔ buildGroupParents 多 group 按 ID 升序 (0.3411ms)
✔ buildGroupParents group=0 Spirit 直挂 Layer 根 (0.2186ms)
✔ buildGroupParents 按 IndexOfLayer 排序子节点 (0.2263ms)
✔ Layer418 static source art preserves its layout and sprite contract (16.9076ms)
✔ Layer418 labels preserve text, color, wrapping, and AutoSize semantics (8.2391ms)
✔ Layer418 sliced sprite frames preserve their source border contract (0.677ms)
✔ Layer418 dynamic panels own clipped scroll content, layouts and reusable rows (2.086ms)
✔ Layer418 serialized node, component and prefab references remain intact (2.5948ms)
✔ Layer00619 端到端生成 + 校验关键字段 (183.1326ms)
✔ Layer00619 端到端 - root._children 包含 group-55 (175.5178ms)
✔ Login_Layer full-screen and normal node geometry matches reference strictly (41.0924ms)
✔ PoC 阶段 3 - 渠道logo _lpos 误差 < 0.001 (bypass CLI to avoid sprite atlas dep) (12.6065ms)
✔ PoC 阶段 3 - 游客登录 _lpos 误差 < 0.001 (bypass CLI) (13.6327ms)
✔ Layer10_Protocol 生成 + 含 cc.Widget 节点 (computeWidgetAlignment 锚定) (183.13ms)
✔ emitPrefabJson 输出是 JSON 数组 (1.384ms)
✔ emitPrefabJson 含 CompPrefabInfo 引用块 (0.2974ms)
✔ emitPrefabJson 含 PrefabInfo 块 (0.3364ms)
✔ emitPrefabJson uses XML Text for labels and targetName overrides the output name (1.3331ms)
✔ emitPrefabJson 渠道logo _lpos 误差 < 0.001 (10.9859ms)
✔ type=0 → cc.Sprite (1.3514ms)
✔ type=1 → cc.Label (0.1337ms)
✔ type=3 → cc.ProgressBar (0.1212ms)
✔ type=4 → 已知组件（不能是 unknown） (0.0967ms)
✔ type=5 → 已知组件（不能是 unknown） (0.0861ms)
✔ 未知 type → throw（不静默兜底） (0.2664ms)
✔ fixtures 中 component="unknown" 的 type 也必须 throw（safety net for Task 5 未完成时） (0.1099ms)
✔ SpiritType 4 有明确组件映射（非 unknown） (0.7866ms)
✔ SpiritType 5 有明确组件映射（非 unknown） (0.1549ms)
✔ spirit-semantics.json 是合法 JSON 含 spirit_types 5 项（Type 0/1/3/4/5 全部已映射） (0.1935ms)
✔ resolveSpriteFrameUuid("20") 返回 atlas-login/00020.png 的 SpriteFrame 真 UUID (11.7383ms)
✔ layer name prefix selects the expected atlas directory (0.214ms)
✔ 未知 imgResId → throw（不静默兜底） (1.5123ms)
✔ readLayerXml 解码 UTF-8 并提取 Layer00002 字段 (23.8056ms)
✔ Spirit 字段完整提取（含中文名） (13.8672ms)
✔ BelongGroupID 提取（group=0 节点也存在） (11.3953ms)
✔ readLayerXml 保留 SizeCalcMode、坐标、归属与 type-1 字体契约字段 (6.9652ms)
(node:4940) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:4940) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/adapters/native/native-settings-adapter.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
[NativeCall] {
  channel: 'settings',
  method: 'getothername',
  args: [ 'agent' ],
  available: true
}
[NativeCall] {
  channel: 'settings',
  method: 'getothername',
  args: [ 'gameserver' ],
  available: true
}
[NativeCall] {
  channel: 'settings',
  method: 'getchannelName',
  args: [],
  available: true
}
[NativeCall] {
  channel: 'settings',
  method: 'getmarketname',
  args: [],
  available: true
}
✔ native settings calls the three original method spellings and preserves returns (2.3196ms)
(node:30504) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:30504) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/adapters/native/platform-native.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
[NativeCall] {
  channel: 'browser',
  method: 'startlocation',
  args: [ 2 ],
  available: false
}
[NativeCall] {
  channel: 'browser',
  method: 'startlocation',
  args: [ 2 ],
  available: false
}
[NativeCall] {
  channel: 'settings',
  method: 'startlocation',
  args: [ 2 ],
  available: true
}
[NativeCall] { channel: 'settings', method: 'stopshake', args: [], available: true }
[NativeCall] {
  channel: 'settings',
  method: 'voicePlaying',
  args: [ 0 ],
  available: true
}
[NativeCall] {
  channel: 'settings',
  method: 'SwitchShake',
  args: [ 1 ],
  available: true
}
[NativeCall] {
  channel: 'browser',
  method: 'voicePlaying',
  args: [ 0 ],
  available: false
}
[NativeCall] { channel: 'browser', method: 'stopshake', args: [], available: false }
[NativeCall] {
  channel: 'settings',
  method: 'voicePlaying',
  args: [ 1 ],
  available: false
}
[NativeCall] {
  channel: 'settings',
  method: 'startlocation',
  args: [ 2 ],
  available: true
}
✔ browser location enters the legacy callback as JSON, with a fresh payload each time (1.6557ms)
✔ settings and WVJB preserve scalar and no-argument conventions without browser callbacks (0.8043ms)
✔ browser setting commands complete, but malformed native hosts and native failures stay visible (0.7871ms)
(node:53156) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:53156) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/adapters/native/room-device-status.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
[NativeCall] {
  channel: 'settings',
  method: 'getnetwork',
  args: [],
  available: true
}
[NativeCall] {
  channel: 'settings',
  method: 'getwifisignalLevel',
  args: [],
  available: true
}
[NativeCall] {
  channel: 'settings',
  method: 'getbattery',
  args: [],
  available: true
}
[NativeCall] {
  channel: 'settings',
  method: 'getnetwork',
  args: [],
  available: false
}
[NativeCall] {
  channel: 'settings',
  method: 'getnetwork',
  args: [],
  available: true
}
[NativeCall] {
  channel: 'settings',
  method: 'getwifisignalLevel',
  args: [],
  available: false
}
[NativeCall] {
  channel: 'settings',
  method: 'getnetwork',
  args: [],
  available: true
}
[NativeCall] {
  channel: 'settings',
  method: 'getwifisignalLevel',
  args: [],
  available: true
}
[NativeCall] {
  channel: 'settings',
  method: 'getbattery',
  args: [],
  available: true
}
✔ browser owns explicit legacy test defaults (1.1562ms)
✔ settings uses exact synchronous getters and wifi callback positional arguments (1.0134ms)
✔ bridge waits for callbacks without inventing native getter calls (0.183ms)
✔ invalid native data and absent settings methods expose source errors (0.7695ms)
✔ observable status unsubscribes and late callbacks remain inert (0.2164ms)
✔ subscriptions restore settings globals and guard retained WVJB callbacks (0.2305ms)
✔ failed settings initialization releases every installed global callback (0.2973ms)
✔ settings wifi callback can synchronously respond to the exact no-argument request (0.4005ms)
(node:66472) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:66472) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/adapters/native/room-voice.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
[NativeCall] {
  channel: 'settings',
  method: 'prepareaudio',
  args: [],
  available: true
}
[NativeCall] {
  channel: 'settings',
  method: 'mediaTypeAudio',
  args: [ 'https://audio/real.aac', 1, 10003 ],
  available: true
}
[NativeCall] {
  channel: 'browser',
  method: 'prepareaudio',
  args: [],
  available: false
}
[NativeCall] {
  channel: 'browser',
  method: 'mediaTypeAudio',
  args: [ 'x', 0, 1 ],
  available: false
}
[NativeCall] {
  channel: 'settings',
  method: 'prepareaudio',
  args: [],
  available: false
}
✔ settings recording and history playback retain exact positional arguments (1.5116ms)
✔ WVJB empty start payload, structured playback and JSON upload are unchanged (0.4236ms)
✔ browser reports unsupported without creating uploads or playback (0.8372ms)
✔ cancelled, zero duration and duplicate uploads never send; dispose removes callbacks (0.3039ms)
✔ invalid upload source and missing native method are exposed (0.3115ms)
✔ settings subscriptions own globals and restore previous callbacks on dispose (0.2793ms)
✔ bridge subscriptions use legacy names, neutralize retained callbacks and preserve newer owners (0.142ms)
(node:56984) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:56984) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/adapters/native/native-contracts.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
[NativeCall] {
  channel: 'WVJB',
  method: 'notification',
  args: [ { exact: true }, [Function: callback] ],
  available: true
}
[NativeCall] {
  channel: 'WVJB',
  method: 'browser',
  args: [ { owner: 'first' }, undefined ],
  available: true
}
[NativeCall] {
  channel: 'WVJB',
  method: 'browser',
  args: [ { owner: 'second' }, undefined ],
  available: true
}
[NativeCall] {
  channel: 'WVJB',
  method: 'browser',
  args: [ '', undefined ],
  available: false
}
✔ existing WebViewJavascriptBridge calls back immediately (1.2593ms)
✔ immediate bridge branch still continues through the callback queue and iframe block (0.1772ms)
✔ without bridge registers the exact ready listener (0.151ms)
✔ ready listener reads the bridge from the environment at event time (0.1568ms)
✔ first WVJB callback creates and removes the loader iframe (0.1522ms)
✔ existing WVJB callback queue is appended without creating another iframe (0.3721ms)
✔ registered handler names preserve the complete active original tuple (0.2327ms)
✔ called native method names preserve the complete active original tuple (0.2015ms)
✔ register preserves handler identity and every callback argument in order (0.5729ms)
✔ call preserves payload and callback identity without changing callback arguments (0.9506ms)
✔ unknown register and call names fail explicitly (0.702ms)
✔ registration queued before readiness runs once even if both original callbacks fire (0.2499ms)
✔ two adapter instances own independent channels without global active channel (0.5669ms)
✔ dispose removes only its ready listener and rejects later use (0.4053ms)
✔ call before readiness fails explicitly (0.2881ms)
(node:59380) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
✔ wire frame logging stays muted and preserves transmitted frames (88.8777ms)
✔ connection debug logs preserve close evidence and are disabled by debugIO (20.5009ms)
(node:66536) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:66536) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/net/envelope-codec.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ encodeOutbound 产出单层信封字符串 (1.7116ms)
✔ decodeFrame：握手包 @toconcon 识别为 handshake (0.4117ms)
✔ decodeFrame：心跳包 @serverheartbeat 识别为 heartbeat (0.1709ms)
✔ decodeFrame：特殊错误包 webserve-服务器未工作 (0.113ms)
✔ decodeFrame：正常业务包(单层)解出 {route,rpc,data} (0.1808ms)
✔ decodeFrame：带 app 字段的单层业务包(服务器实测格式) (0.3562ms)
✔ decodeFrame：拒绝把双层 data 信封误当服务器业务包 (0.2258ms)
✔ decodeFrame：无法解析的帧安全忽略 (0.1491ms)
(node:58160) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:58160) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/net/heartbeat.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ 超时未 feed 触发回调 (1.137ms)
✔ feed 重置计时，未到阈值不触发 (0.8368ms)
✔ stop 后不再触发 (0.1537ms)
(node:66176) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:66176) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/net/net-client.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ onOpen 后自动发 player_login（单层信封） (1.0905ms)
✔ isSendLoginState 门控：login 响应前的其它包被丢弃，login 响应放行并 emit login (0.5162ms)
✔ 握手包与心跳包被忽略且不进 message (0.2538ms)
✔ 收包超时 emit slow 并触发重连（onClose→新连接重发 login） (0.4512ms)
✔ TcpID 去重：旧连接的残留包被丢弃 (0.2894ms)
✔ kick_server：emit kicked 且不再自动重连 (0.3534ms)
✔ debug=true 记录 send 与 recv（注入 logger） (0.3562ms)
✔ debug 默认关闭：logger 不被调用 (0.2293ms)
(node:38648) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:38648) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/net/reconnect.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ 单服务器：失败永不轮换 (0.6781ms)
✔ 多服务器：每 3 次失败轮换下一个 (0.1278ms)
✔ reset 清零失败计数 (1.0145ms)
✔ setCurrent 切换到指定服务器（服务器切换指令） (0.2405ms)
(node:56508) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
✔ FakeTransport：connect 后异步触发 onOpen (0.7129ms)
✔ FakeTransport：客户端 send 进入 sent 队列；serverPush 触发 onMessage (0.9613ms)
✔ FakeTransport：close 触发 onClose (0.2392ms)
(node:67156) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:67156) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/net/wire-client.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.300Z'
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.302Z'
}
[收发包] 接收 { server: 'ws://a', time: '2026-09-08T12:07:50.302Z' } {"route":"agent","rpc":"player_login","data":{"state":0}}
[收发包] 接收 { server: 'ws://a', time: '2026-09-08T12:07:50.302Z' } {"route":"agent","rpc":"kick_server","data":{"msg":"bye"}}
[收发包] 接收 { server: 'ws://a', time: '2026-09-08T12:07:50.302Z' } {"route":"room","rpc":"connect_roomserver","data":{"roomserver":"ws://room"}}
[收发包] 接收 { server: 'ws://a', time: '2026-09-08T12:07:50.302Z' } {"route":"agent","rpc":"connect_agentserver","data":{"agentserver":"ws://agent","opt":"free_room"}}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.303Z'
}
[收发包] 接收 { server: 'ws://a', time: '2026-09-08T12:07:50.303Z' } @toconconABC
[收发包] 接收 { server: 'ws://a', time: '2026-09-08T12:07:50.303Z' } webserve-服务器未工作
[收发包] 接收 { server: 'ws://a', time: '2026-09-08T12:07:50.303Z' } not json
[连接状态] 收包超时 {
  event: 'slow',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.303Z',
  timeoutMs: 30000
}
[连接状态] 已断开 {
  event: 'close',
  server: 'ws://a',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:50.304Z'
}
[连接状态] 正在重连 {
  event: 'reconnecting',
  server: 'ws://a',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:50.304Z',
  retryAfterMs: 10000
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.304Z'
}
[收发包] 发送 { server: 'ws://a', time: '2026-09-08T12:07:50.305Z' } {"data":{"gameid":101},"rpc":"player_get_roomlist","app":"youle","route":"agent"}
[连接状态] 已断开 {
  event: 'close',
  server: 'ws://a',
  connected: false,
  stopped: true,
  time: '2026-09-08T12:07:50.305Z'
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.305Z'
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.306Z'
}
[收发包] 发送 { server: 'ws://a', time: '2026-09-08T12:07:50.306Z' } {"rpc":"json_boundary","data":{"nested":[null,"text",true,false,0,-1.5]},"route":"agent","app":"youle"}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.306Z'
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.308Z'
}
[收发包] 发送 { server: 'ws://a', time: '2026-09-08T12:07:50.308Z' } {"app":"youle","route":"agent","rpc":"array_descriptor","data":{"values":["descriptor value"]}}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.308Z'
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.309Z'
}
[收发包] 发送 { server: 'ws://a', time: '2026-09-08T12:07:50.309Z' } {"app":"youle","route":"agent","rpc":"proxy","data":{"proxied":{"value":1}}}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.310Z'
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.310Z'
}
[收发包] 发送 { server: 'ws://a', time: '2026-09-08T12:07:50.310Z' } {"app":"youle","route":"agent","rpc":"shared_dag","data":{"left":{"score":7},"right":{"score":7}}}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.310Z'
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.311Z'
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.311Z'
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.312Z'
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.312Z'
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.313Z'
}
[连接状态] 已断开 {
  event: 'close',
  server: 'ws://room',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:50.313Z'
}
[连接状态] 正在重连 {
  event: 'reconnecting',
  server: 'ws://room',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:50.313Z',
  retryAfterMs: 10000
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://room',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.313Z'
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.313Z'
}
[连接状态] 已断开 {
  event: 'close',
  server: 'ws://a',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:50.313Z'
}
[连接状态] 正在重连 {
  event: 'reconnecting',
  server: 'ws://a',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:50.313Z',
  retryAfterMs: 10000
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.314Z'
}
[连接状态] 已断开 {
  event: 'close',
  server: 'ws://a',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:50.314Z'
}
[连接状态] 正在重连 {
  event: 'reconnecting',
  server: 'ws://a',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:50.314Z',
  retryAfterMs: 10000
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.314Z'
}
[连接状态] 已断开 {
  event: 'close',
  server: 'ws://a',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:50.314Z'
}
[连接状态] 正在重连 {
  event: 'reconnecting',
  server: 'ws://a',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:50.314Z',
  retryAfterMs: 10000
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.314Z'
}
[连接状态] 已断开 {
  event: 'close',
  server: 'ws://a',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:50.314Z'
}
[连接状态] 正在重连 {
  event: 'reconnecting',
  server: 'ws://b',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:50.314Z',
  retryAfterMs: 10000
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.314Z'
}
[连接状态] 已断开 {
  event: 'close',
  server: 'ws://a',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:50.314Z'
}
[连接状态] 正在重连 {
  event: 'reconnecting',
  server: 'ws://a',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:50.314Z',
  retryAfterMs: 10000
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.314Z'
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.315Z'
}
[连接状态] 已断开 {
  event: 'close',
  server: 'ws://a',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:50.315Z'
}
[连接状态] 正在重连 {
  event: 'reconnecting',
  server: 'ws://a',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:50.315Z',
  retryAfterMs: 10000
}
[连接状态] 正在重连 {
  event: 'reconnecting',
  server: 'ws://room',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:50.315Z',
  retryAfterMs: 10000
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.315Z'
}
[连接状态] 已断开 {
  event: 'close',
  server: 'ws://a',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:50.315Z'
}
[连接状态] 正在重连 {
  event: 'reconnecting',
  server: 'ws://a',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:50.315Z',
  retryAfterMs: 10000
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.315Z'
}
[收发包] 接收 { server: 'ws://a', time: '2026-09-08T12:07:50.316Z' } @toconconABC
[连接状态] 收包超时 {
  event: 'slow',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.316Z',
  timeoutMs: 30000
}
[连接状态] 已断开 {
  event: 'close',
  server: 'ws://a',
  connected: false,
  stopped: true,
  time: '2026-09-08T12:07:50.316Z'
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.316Z'
}
[连接状态] 已断开 {
  event: 'close',
  server: 'ws://a',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:50.316Z'
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.316Z'
}
[连接状态] 已断开 {
  event: 'close',
  server: 'ws://a',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:50.317Z'
}
[连接状态] 正在重连 {
  event: 'reconnecting',
  server: 'ws://a',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:50.317Z',
  retryAfterMs: 10000
}
[连接状态] 正在重连 {
  event: 'reconnecting',
  server: 'ws://room',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:50.317Z',
  retryAfterMs: 10000
}
[连接状态] 已断开 {
  event: 'close',
  server: 'ws://a',
  connected: false,
  stopped: true,
  time: '2026-09-08T12:07:50.317Z'
}
[连接状态] 已断开 {
  event: 'close',
  server: 'ws://a',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:50.317Z'
}
[连接状态] 正在重连 {
  event: 'reconnecting',
  server: 'ws://a',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:50.317Z',
  retryAfterMs: 10000
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.318Z'
}
[连接状态] 已断开 {
  event: 'close',
  server: 'ws://a',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:50.318Z'
}
[连接状态] 正在重连 {
  event: 'reconnecting',
  server: 'ws://a',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:50.318Z',
  retryAfterMs: 10000
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.318Z'
}
[连接状态] 已断开 {
  event: 'close',
  server: 'ws://a',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:50.318Z'
}
[连接状态] 正在重连 {
  event: 'reconnecting',
  server: 'ws://a',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:50.318Z',
  retryAfterMs: 10000
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.318Z'
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.319Z'
}
[连接状态] 已断开 {
  event: 'close',
  server: 'ws://a',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:50.319Z'
}
[连接状态] 正在重连 {
  event: 'reconnecting',
  server: 'ws://a',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:50.319Z',
  retryAfterMs: 10000
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.319Z'
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.319Z'
}
[收发包] 接收 { server: 'ws://a', time: '2026-09-08T12:07:50.319Z' } {"route":"agent","rpc":"update_bean","data":{"bean":1}}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.319Z'
}
[收发包] 接收 { server: 'ws://a', time: '2026-09-08T12:07:50.319Z' } {"route":"agent","rpc":"one","data":{}}
[收发包] 接收 { server: 'ws://a', time: '2026-09-08T12:07:50.319Z' } {"route":"agent","rpc":"two","data":{}}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.320Z'
}
[收发包] 接收 { server: 'ws://a', time: '2026-09-08T12:07:50.320Z' } @toconconABC
[收发包] 接收 { server: 'ws://a', time: '2026-09-08T12:07:50.320Z' } @toconconABC
[连接状态] 收包超时 {
  event: 'slow',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.320Z',
  timeoutMs: 30000
}
[连接状态] 已断开 {
  event: 'close',
  server: 'ws://a',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:50.320Z'
}
[连接状态] 正在重连 {
  event: 'reconnecting',
  server: 'ws://a',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:50.320Z',
  retryAfterMs: 10000
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.320Z'
}
[连接状态] 收包超时 {
  event: 'slow',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.320Z',
  timeoutMs: 30000
}
[连接状态] 已断开 {
  event: 'close',
  server: 'ws://a',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:50.320Z'
}
[连接状态] 正在重连 {
  event: 'reconnecting',
  server: 'ws://a',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:50.320Z',
  retryAfterMs: 10000
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.321Z'
}
[收发包] 接收 { server: 'ws://a', time: '2026-09-08T12:07:50.321Z' } @toconconABC
[连接状态] 已断开 {
  event: 'close',
  server: 'ws://a',
  connected: false,
  stopped: true,
  time: '2026-09-08T12:07:50.321Z'
}
[连接状态] 已连接 {
  event: 'open',
  server: 'ws://a',
  connected: true,
  stopped: false,
  time: '2026-09-08T12:07:50.321Z'
}
[连接状态] 已断开 {
  event: 'close',
  server: 'ws://a',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:50.321Z'
}
[连接状态] 正在重连 {
  event: 'reconnecting',
  server: 'ws://a',
  connected: false,
  stopped: false,
  time: '2026-09-08T12:07:50.321Z',
  retryAfterMs: 10000
}
✔ debug packet logs preserve transmitted text and precede business dispatch (5.4779ms)
✔ start emits the opened server and never sends login automatically (1.3445ms)
✔ all decoded business RPCs are emitted exactly once without interception (0.927ms)
✔ handshake, heartbeat, server-down and invalid frames are not business messages (1.426ms)
✔ send requires an open connection and serializes the completed envelope once (1.0191ms)
✔ send rejects malformed completed envelopes before touching transport (0.5616ms)
✔ send accepts the complete protocol JSON value boundary without rebuilding bytes (0.4862ms)
✔ send rejects every non-JSON data graph edge with its exact path (1.3533ms)
✔ send preserves a dense non-enumerable array index in the validated wire bytes (0.5424ms)
✔ send rejects inherited toJSON without invoking it (0.7348ms)
✔ send serializes stable descriptor snapshots without invoking Proxy get traps (0.5323ms)
✔ send audits one shared source identity instead of accepting path-local stable reads (0.3838ms)
✔ send expands an ordinary shared DAG reference at every wire path (0.1956ms)
✔ send rejects a cyclic prototype identity within a finite prototype walk (0.2861ms)
✔ send rejects source graphs whose descriptors, own-key order, or prototype change (1.5294ms)
✔ send rejects top-level symbol, non-enumerable and accessor properties (0.3162ms)
✔ constructor rejects an empty validated server list and start cannot run twice (0.1993ms)
✔ switchServer validates the target before closing and reconnects to it after policy delay (0.6319ms)
✔ reconnectCurrent closes once and reconnects to the current target after 10 seconds (0.231ms)
✔ duplicate transport close/error is handled once and failures rotate every three attempts (0.6229ms)
✔ a throwing close listener is reported without blocking later listeners or reconnect (0.3319ms)
✔ a reconnecting listener can stop without leaving a timer or reviving a cleared callback (0.3574ms)
✔ reconnectCurrent coalesces the same pending target before reconnecting listeners run (0.3518ms)
✔ slow listener stop prevents the timeout path from scheduling reconnect (0.4487ms)
✔ close listener stop prevents an unexpected close from scheduling reconnect (0.4237ms)
✔ switch during pending reconnect invalidates the cleared callback and connects only the explicit target (0.5492ms)
✔ stop before pending open ignores the late open and message callbacks (0.2789ms)
✔ transportFactory synchronous failure is one failure and recovers after policy delay (0.458ms)
✔ transport connect synchronous failure ignores duplicate close/error and counts once (0.3768ms)
✔ FakeTransport and WireClient preserve synchronous throw null as one connection failure (0.3181ms)
✔ stale transport generations cannot emit messages or opens (0.3029ms)
✔ unsubscribe removes the listener without affecting transport lifecycle (0.2484ms)
✔ subscribe and unsubscribe during emit use a stable listener snapshot (0.3622ms)
✔ handshake independently resets the receive watchdog sliding window (0.4095ms)
✔ heartbeat independently resets the receive watchdog sliding window (0.5008ms)
✔ stop is idempotent, closes an active transport once and clears its watchdog (0.7119ms)
✔ stop clears a pending reconnect timer and prevents a later transport generation (0.2641ms)
(node:57716) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:57716) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/sdk/runtime/game-session-host.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ real GameSessionHost validates the diagnostic declaration without creating a game instance (7.4733ms)
✔ every game behavior records its operation and throws; dispose is idempotent (1.4059ms)
(node:66212) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
✔ login busy state starts Animation once, hides on completion and restarts on retry (107.2128ms)
(node:51568) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:51568) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/adapters/native/lobby-links.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
[NativeCall] {
  channel: 'settings',
  method: 'browser',
  args: [ 'https://example.test/?a=1&b=2&timestamp=123' ],
  available: true
}
✔ launch mode uses original query or injected bridge field and rejects invalid values (2.0454ms)
✔ announcement links preserve fixUrl and distinct native timestamp conventions (1.764ms)
(node:50412) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:50412) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/adapters/native/login-accounts.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
[NativeCall] {
  channel: 'settings',
  method: 'getcompareCode',
  args: [],
  available: false
}
[NativeCall] {
  channel: 'settings',
  method: 'getcompareCode',
  args: [],
  available: false
}
[NativeCall] {
  channel: 'settings',
  method: 'getcompareCode',
  args: [],
  available: false
}
[NativeCall] {
  channel: 'settings',
  method: 'getcompareCode',
  args: [],
  available: false
}
[NativeCall] {
  channel: 'settings',
  method: 'getcompareCode',
  args: [],
  available: false
}
[NativeCall] {
  channel: 'settings',
  method: 'getcompareCode',
  args: [],
  available: false
}
[NativeCall] {
  channel: 'settings',
  method: 'getcompareCode',
  args: [],
  available: false
}
[NativeCall] {
  channel: 'settings',
  method: 'getcompareCode',
  args: [],
  available: true
}
[NativeCall] {
  channel: 'settings',
  method: 'accreditlogin',
  args: [ 2 ],
  available: true
}
[NativeCall] {
  channel: 'settings',
  method: 'accreditlogin',
  args: [ 1 ],
  available: true
}
[NativeCall] {
  channel: 'settings',
  method: 'getcompareCode',
  args: [],
  available: true
}
[NativeCall] {
  channel: 'settings',
  method: 'getcompareCode',
  args: [],
  available: false
}
[NativeCall] {
  channel: 'settings',
  method: 'getcompareCode',
  args: [],
  available: false
}
[NativeCall] {
  channel: 'settings',
  method: 'getcompareCode',
  args: [],
  available: false
}
[NativeCall] {
  channel: 'settings',
  method: 'getcompareCode',
  args: [],
  available: false
}
[NativeCall] {
  channel: 'settings',
  method: 'getcompareCode',
  args: [],
  available: false
}
[NativeCall] {
  channel: 'settings',
  method: 'getcompareCode',
  args: [],
  available: false
}
[NativeCall] {
  channel: 'settings',
  method: 'getcompareCode',
  args: [],
  available: false
}
[NativeCall] {
  channel: 'settings',
  method: 'getcompareCode',
  args: [],
  available: false
}
[NativeCall] {
  channel: 'settings',
  method: 'getcompareCode',
  args: [],
  available: false
}
[NativeCall] {
  channel: 'settings',
  method: 'getcompareCode',
  args: [],
  available: false
}
✔ logout expires visitor auto-login and clears cached player selection (2.6494ms)
✔ logout removes authorization caches and stays logged out after recreating accounts (0.9129ms)
✔ native authorization preserves provider numbers, agreement guard, callback and cache (1.4283ms)
✔ all login paths require the current agreement and rejected paths have no side effects (0.5871ms)
✔ successful device login persists server identity for the next automatic login (0.6619ms)
✔ visitor login and cached visitor stay phone-free when both login buttons are enabled (1.4706ms)
✔ phone cache writes match legacy before submit, denial, and successful server response (2.0801ms)
✔ global and WVJB authorization retain their distinct legacy cache destinations (0.3355ms)
✔ legacy nickname MD5 matches standard vectors (0.2243ms)
✔ phone login preserves leading zeros and legacy visitor cache before submitting (1.521ms)
✔ phone login emits original sms fields and does not masquerade as cached auto login (0.8067ms)
(node:62360) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:62360) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/config/profiles.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ source defaults and channel overrides retain legacy button order (1.4922ms)
✔ invalid upstream login options fail at the config source (0.6114ms)
✔ build identity selects its own remote agent showVisitor through to login buttons (2.173ms)
(node:53588) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:53588) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/config/remote-config.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ Logo countdown ticks legacy milliseconds and skip requires config, resource and socket readiness (113.0039ms)
✔ Logo exact deadline is independent from resources and socket; terminal cancellation ignores late events (35.8128ms)
✔ Logo render failure at completion rejects the gate and clears all timers (14.5215ms)
✔ Logo scheduling and tick render failures settle pending display promises (12.6548ms)
✔ Logo native binding measures label around button center and releases its touch listener (11.14ms)
(node:62160) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:62160) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/adapters/native/phone-code.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ original phone cache restores the number and 30-second remainder without auto-filling the code (1.4387ms)
✔ malformed phone cache exposes the source error (0.6027ms)
(node:66508) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:66508) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/scripts/platform-login/scene-flow.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ repeated lobby notifications share one pending transition and bind once (1.4888ms)
✔ scene transitions are sequential and disposal prevents late scene binding (0.7917ms)
(node:56760) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:56760) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/platform/stores/app-store.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ 初始: phase=idle, identity=null, servers=[] (2.2507ms)
✔ setPhase: 每次都触发订阅(setter 即响应入口) (0.4595ms)
✔ setServers: 替换数组(非 mutate) (0.4218ms)
✔ setIdentity: 写入后再次读回一致 (0.235ms)
✔ applyLogin: 回填 agentid/channelid/agentname/agentmode/gameversion (0.2661ms)
✔ applyLogin: 身份字段缺省保留旧值,显示字段重置 (0.1856ms)
✔ applyLogin: agentname 缺省时重置为空字符串 (0.167ms)
✔ applyLogin 不写 phase(phase 由 NetClient 事件驱动,session.setPhase 调用) (0.1253ms)
(node:24912) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:24912) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/config/profiles.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ invite query and binding preserve exact legacy fields and leading zeros (5.1872ms)
✔ invite responses publish even unchanged codes, update only on success, and reject malformed data atomically (1.1595ms)
✔ VIP query and both entry forms use the exact agent protocol (0.7175ms)
✔ ranking and redemption use exact legacy fields, preserving card text (0.6791ms)
✔ task requests preserve legacy identity fields and reject unclaimable entries (0.9901ms)
✔ task numeric strings normalize at ingestion and invalid values never commit (1.5855ms)
✔ prepare and exitRoom use the first-slice builders with authoritative config and room state (0.8677ms)
✔ joinRoom uses authenticated Store identity and requires every non-optional environment field (0.8766ms)
✔ exitRoom sends self_exit_room while an infinite room is in battle (0.6728ms)
✔ command preconditions reject missing authentication, wrong room location, and battle exit without sending (1.6729ms)
✔ VIP rank and owned room requests preserve legacy exact fields (0.6193ms)
✔ create command emits exact legacy packet and numeric keypad join stays numeric (1.2145ms)
✔ dissolution commands emit exact legacy room envelopes and await server state (1.4505ms)
✔ dissolution commands reject pregame, already voted and duplicate active application (0.9863ms)
✔ room chat and phrase commands preserve exact legacy envelopes and no speculative expression rpc (0.8699ms)
✔ break room is allowed only for pregame owner and waits for authoritative response (0.8307ms)
✔ voice original string duration and surrender count are preserved on wire (0.5887ms)
✔ live game projection can restrict commands but cannot override platform rules (1.2426ms)
(node:52444) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:52444) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/platform/stores/platform-store.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ apply snapshots dynamic participants and deadline; all agree remains active pending free_room (6.3915ms)
✔ refusal result keeps participant snapshots and acknowledgement only clears vote (1.0311ms)
✔ server result interprets seats as states and writes zero roomcard, preserving deskfree (1.6589ms)
✔ reconnect restores vote atomically from agreefree; malformed source never commits (1.6032ms)
✔ freeNow allows no seats and retains server tips without inventing countdown (1.1577ms)
✔ sparse room vote state preserves absolute seats and rejects malformed source atomically (0.8926ms)
✔ self vote is acknowledged by the server and a fresh login clears stale vote (0.9092ms)
(node:53644) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:53644) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/config/profiles.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ numeric UI capabilities preserve values and revoke callbacks when their room lease ends (6.4095ms)
✔ numeric UI replacement and explicit close discard old callbacks within the same room (1.3073ms)
✔ sendGameMessage binds app and GameEntry route, rejects empty rpc, and preserves data identity (1.0494ms)
✔ adapter rejects empty and reserved GameEntry routes before exposing a Host (2.1586ms)
✔ Task 1 route validator is the shared authority for game-route admission (0.4492ms)
✔ execute exposes only the GameHost command union and delegates semantic commands (1.1689ms)
✔ seat mapper binds each 2, 4, and 10 seat session and round-trips every server seat (1.6901ms)
✔ adapter validates descriptor seat count against the canonical room session (1.4284ms)
✔ getSnapshot exposes only recursively frozen SDK DTOs and the canonical roomtype (1.0911ms)
✔ RuntimeSession room replacement keeps the old lease isolated until release and exposes only the fresh lease (1.8675ms)
✔ subscribe is immediate, suppresses identical public snapshots, and isolates listener failures (1.0743ms)
✔ a later listener failure does not block other Host subscribers (0.5605ms)
✔ invalidate clears every subscription and reference before reporting all cleanup failures (0.5527ms)
✔ invalidate collects a reentrant public-unsubscribe failure in occurrence order exactly once (0.5216ms)
✔ unsubscribe and invalidate are reentry-safe and prevent callbacks already snapshotted by Store (0.6011ms)
✔ invalidate is idempotent, old unsubscribe stays safe, and every stale Host method fails predictably (0.5816ms)
✔ game host exposes dissolution application through exact room command (0.5012ms)
✔ grouped input results distinguish types, cancellation, overlap and lease cleanup (1.57ms)
✔ typed inputs reject invalid adapter results without leaving a request pending (0.6695ms)
✔ grouped commands bind routing and scope while explicit exit uses central policy (0.6309ms)
✔ pending input closes its partial view and preserves both opening and cleanup failures (0.5578ms)
✔ late grouped input confirmation after room replacement resolves scope cancellation (0.3851ms)
✔ owned UI handles are automatically released and cannot close another source (0.5913ms)
(node:52488) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:52488) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/platform/stores/platform-store.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ PlatformStore starts unauthenticated and outside a room (2.4719ms)
✔ applyLoginSuccess commits the complete login once and notifies once (1.5093ms)
✔ room login stores one canonical player entity and recursively freezes roomtype (2.9063ms)
✔ playerJoin atomically adds one canonical entity and its seat id (1.233ms)
✔ playerJoin applies deskwar battle start in the same root commit (0.729ms)
✔ playerJoin preserves the current stage when deskwar is absent or zero (2.4365ms)
✔ playerJoin rejects an invalid own deskwar atomically without changing input (2.1418ms)
✔ playerReady replaces the affected player and room subtrees without prior mutation (0.7358ms)
✔ playerReady applies deskwar battle start in the same root commit (0.6144ms)
✔ playerReady preserves the current stage when deskwar is absent or zero (1.4073ms)
✔ playerReady rejects an invalid own deskwar atomically without changing input (1.8718ms)
✔ playerOffline records protocol and room status with one atomic commit (0.7128ms)
✔ playerOnline updates the canonical player ip and removes the offline seat atomically (0.785ms)
✔ playerExit removes the seat entity and every seat-owned status in one commit (1.262ms)
✔ replaceRoom atomically replaces the complete room from a parsed DTO (0.7953ms)
✔ replaceRoom consumes the parser-owned deskwar default and reconnect stage matrix (1.7578ms)
✔ applyLoginSuccess requires isbattle even when raw deskwar is fabricated (0.503ms)
✔ replaceRoom never substitutes self-join isbattle for missing deskwar or deskinfo (0.5228ms)
✔ clearRoom leaves no fabricated room fields and retains only the self entity (0.5856ms)
✔ failed actions keep the exact root, notify nobody, and do not mutate inputs (1.0346ms)
✔ applyLoginSuccess rejects a room login whose parsed room was changed to null (0.4616ms)
✔ applyLoginSuccess rejects a failed login whose parsed state was changed to success (0.2095ms)
✔ replaceRoom rejects a successful parsed join whose raw state was changed to failure (0.5107ms)
✔ room self profile conflicts are rejected instead of overwriting login authority (1.2829ms)
✔ roomtype accessors are rejected without invocation or input mutation (0.4493ms)
✔ roomtype copying never runs preventExtensions on caller-owned proxies (0.4353ms)
✔ dynamic roomtype accessors cannot leak mutable children into canonical state (0.4329ms)
✔ cyclic roomtype input is rejected atomically without mutating caller data (0.4781ms)
✔ roomtype descriptor changes between copy and verification fail atomically (0.6983ms)
✔ roomtype own-key changes between copy and verification fail atomically (0.4347ms)
✔ sparse roomtype is rejected instead of silently changing holes to null (0.2367ms)
✔ canonical roomtype keeps own __proto__ data without prototype pollution (0.2639ms)
✔ non-JSON roomtype own data is rejected without state or caller mutation (0.6752ms)
✔ reentrant store commits publish each stable transition before the next (0.4064ms)
✔ multiple reentrant commits retain their real previous and next states (0.5675ms)
✔ subscription changes during publish apply only to later transition snapshots (0.3988ms)
✔ subscriber exceptions remain isolated from later store listeners (0.3358ms)
(node:13484) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:13484) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/platform/stores/player-store.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ applyLogin 填充 PlayerState 并通知订阅者 (1.463ms)
✔ charm 等缺省字段补默认 0 (0.3257ms)
✔ 未下发的可选字段(openid 等)缺省时不写入 (0.2304ms)
(node:57564) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:57564) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/core/reactive.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
[reactive] subscriber error: Error: boom
    at <anonymous> (G:\Works\YouleGamesCocosCreator\cocoscreator_projects\framework-tests\platform\reactive.test.ts:41:29)
    at Object.set value (G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\assets\framework\core\reactive.ts:23:15)
    at TestContext.<anonymous> (G:\Works\YouleGamesCocosCreator\cocoscreator_projects\framework-tests\platform\reactive.test.ts:43:10)
    at Test.runInAsyncScope (node:async_hooks:227:14)
    at Test.run (node:internal/test_runner/test:1382:25)
    at Test.processPendingSubtests (node:internal/test_runner/test:960:18)
    at Test.postRun (node:internal/test_runner/test:1522:19)
    at Test.run (node:internal/test_runner/test:1447:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async Test.processPendingSubtests (node:internal/test_runner/test:960:7)
✔ signal: value 读写 (0.8985ms)
✔ signal: subscribe 收到 (value, prev) (1.0057ms)
✔ signal: 退订后不再收到 (1.0987ms)
✔ signal: Object.is 判等，值未变不通知 (0.182ms)
✔ signal: 一个订阅者抛错不影响其它 (1.0547ms)
(node:52500) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:52500) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/platform/ready-gate.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ ReadyGate is not ready for subset 0000 (2.0314ms)
✔ ReadyGate is not ready for subset 0001 (0.1314ms)
✔ ReadyGate is not ready for subset 0010 (0.0932ms)
✔ ReadyGate is not ready for subset 0011 (0.0714ms)
✔ ReadyGate is not ready for subset 0100 (0.0653ms)
✔ ReadyGate is not ready for subset 0101 (0.0663ms)
✔ ReadyGate is not ready for subset 0110 (0.0767ms)
✔ ReadyGate is not ready for subset 0111 (0.0556ms)
✔ ReadyGate is not ready for subset 1000 (0.0669ms)
✔ ReadyGate is not ready for subset 1001 (0.1165ms)
✔ ReadyGate is not ready for subset 1010 (0.1106ms)
✔ ReadyGate is not ready for subset 1011 (0.078ms)
✔ ReadyGate is not ready for subset 1100 (0.0631ms)
✔ ReadyGate is not ready for subset 1101 (0.0452ms)
✔ ReadyGate is not ready for subset 1110 (0.0277ms)
✔ ReadyGate is ready for subset 1111 (0.0742ms)
✔ ReadyGate duplicate marks are idempotent (0.1753ms)
(node:31960) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:31960) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/platform/stores/platform-store.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ marquee preserves duplicate arrival order separately from chat announcements and clears at room/login boundaries (4.681ms)
✔ both documented broadcast routes dispatch marquee; omitted msgtype is immediate message; invalid types do not commit (0.9671ms)
✔ marquee uses legacy byte length and speed, plays sequentially and stops after clear (0.2905ms)
✔ large animation frame advances through queued messages without losing elapsed time (0.2034ms)
(node:46064) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:46064) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/presentation/room-hud-model.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ local clock pads both fields and cycles ordinary rooms each five seconds (3.5746ms)
✔ hidden149 gates elapsed time and infinite/match rooms do not cycle (0.3553ms)
✔ reset releases prior room clock state and large elapsed steps preserve parity (0.1605ms)
(node:65716) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:65716) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/core/events.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
[EventBus] handler error: Error: RoomRPCBus: 未注册的 room rpc "unknown_rpc"（roomHandlers 不覆盖）
    at RoomRPCBus.dispatch (G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\assets\framework\platform\room-rpc-bus.ts:41:13)
    at handler (G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\assets\framework\platform\room-rpc-bus.ts:26:34)
    at EventBus.emit (G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\assets\framework\core\events.ts:26:13)
    at TestContext.<anonymous> (G:\Works\YouleGamesCocosCreator\cocoscreator_projects\framework-tests\platform\room-rpc-bus.test.ts:28:7)
    at Test.runInAsyncScope (node:async_hooks:227:14)
    at Test.run (node:internal/test_runner/test:1382:25)
    at Test.processPendingSubtests (node:internal/test_runner/test:960:18)
    at Test.postRun (node:internal/test_runner/test:1522:19)
    at Test.run (node:internal/test_runner/test:1447:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
✔ RoomRPCBus: route=room 的包分发到对应 handler (1.2773ms)
✔ RoomRPCBus: route=agent/platform 不被分发(归 Router 处理) (1.8778ms)
✔ RoomRPCBus: stop 后不再分发 (0.305ms)
✔ RoomRPCBus: room rpc 走 handler,其他 route 忽略 (0.6379ms)
(node:28044) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:28044) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/platform/stores/platform-store.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ local message IDs remain stable across append and do not come from raw server input (3.9879ms)
✔ chat retains sender snapshot after leaving, accepts raw phrase indices and announcement without seat (2.0275ms)
✔ invalid social input never commits, voice retains original duration, room exit clears history (0.6695ms)
✔ change_seat swaps occupancy and own seat without altering sender history (0.6046ms)
✔ ordinary voice auto-plays while robot voice remains history only (0.7133ms)
✔ room owner notice comes only from ownerNotice and empty source has explicit null semantics (2.2471ms)
(node:50116) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:50116) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/platform/stores/room-store.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ 初始: inRoom=false, seat=-1, players=[] (2.1251ms)
✔ applyRecovery: 填充 B 组并置 inRoom=true (0.2513ms)
✔ applyRecovery: 未传 players 字段 → 空数组(非 null,非 undefined) (0.1759ms)
✔ applyRecovery: deskinfo 透传原值不解析（第二准则:平台层不解析对局态） (0.1286ms)
✔ applyRecovery: deskinfo 缺省 → null (0.1048ms)
✔ clear: 复位 inRoom 与字段, players 也清空 (0.184ms)
✔ subscribe: inRoom 由 false → true 触发一次 (0.1301ms)
(node:41264) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:41264) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/platform/room/room-coordinator.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ scope invalidates before reverse cleanup and attempts every disposer once (3.6315ms)
✔ mount gates ready and FIFO; reentrant message stays after already queued inputs (1.2672ms)
✔ cancel/kick invalidates immediately and late mount only releases its own resource (0.4664ms)
✔ overflow and queue timeout fail the session with queue and timer fully released (0.8389ms)
✔ mount and handler failures aggregate cleanup errors and report once (0.5997ms)
✔ a stale mount cleanup failure reports its generation without failing the new room (0.3326ms)
✔ one hundred synchronous enter/exit cycles return scope resources and timers to baseline (0.9179ms)
✔ invalid mailbox configuration fails at its source (0.6725ms)
✔ cancelling inside ready prevents queued input from reaching a revoked scope (0.3098ms)
✔ explicit cancellation returns every cleanup failure and remains idempotent (0.5403ms)
✔ stale rejected load does not fail or notify the new active room (0.3807ms)
✔ invalid queue deadlines fail before a room scope can be entered (0.2584ms)
✔ a failing diagnostic callback is retained without poisoning a newer room (0.3449ms)
(node:54640) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:54640) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/platform/room/scene-game-session.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ sync mount stop then throw Error: mount after stop retains exact original identity (4.2119ms)
✔ single module cleanup throw Error: mount after stop retains exact original identity (0.4281ms)
✔ sync mount stop then throw undefined retains exact original identity (0.1784ms)
✔ single module cleanup throw undefined retains exact original identity (0.1377ms)
✔ scope and module cleanup errors aggregate in execution order and both complete (0.5673ms)
✔ sync mount failure returns to the wire caller instead of the async diagnostic callback (0.5029ms)
(node:40372) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:40372) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/sdk/runtime/game-session-host.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ session fault message exposes the original cause and preserves error references (2.4908ms)
✔ server denials preserve an active room and module without committing a success action (4.9983ms)
✔ RuntimeSession commits a room login before opening, publishing, and restoring deskinfo (1.7457ms)
✔ RuntimeSession never treats isbattle as a restore signal without truthy deskinfo (2.3566ms)
✔ RuntimeSession self join commits, opens a fresh session, and restores the same snapshot once (1.107ms)
✔ RuntimeSession self join honors the parser-owned deskwar and deskinfo matrix (2.9559ms)
✔ RuntimeSession creates a fresh host lease per login/self-join replacement and invalidates on self exit (1.9257ms)
✔ RuntimeSession invalidates the active lease on a successful server switch (0.6595ms)
✔ RuntimeSession cleans a failed room open and enters terminal fault at lease-factory (1.6067ms)
✔ RuntimeSession cleans a failed room open and enters terminal fault at module-create (1.075ms)
✔ RuntimeSession cleans a failed room open and enters terminal fault at attach (0.6083ms)
✔ RuntimeSession cleans a failed room open and enters terminal fault at event (0.7371ms)
✔ RuntimeSession cleans a failed room open and enters terminal fault at restore (0.684ms)
✔ RuntimeSession invalidates the old lease and faults when login replacement disposal fails (0.8864ms)
✔ RuntimeSession invalidates the old lease and faults when self-join replacement disposal fails (0.7905ms)
✔ RuntimeSession invalidates once and faults when self-exit disposal fails (0.6989ms)
✔ RuntimeSession invalidates once and faults when switch disposal fails (0.5621ms)
✔ RuntimeSession aggregates event, dispose, and invalidation failures after completing cleanup (0.5946ms)
✔ RuntimeSession flattens attach cleanup failures before appending lease invalidation (0.6696ms)
✔ RuntimeSession flattens a foreign-realm branded open fault before lease invalidation (1.3686ms)
✔ RuntimeSession snapshots branded open errors without invoking their hostile iterator (0.7932ms)
✔ RuntimeSession keeps ordinary aggregates and unbranded or accessor spoofs as single errors (4.1429ms)
✔ server room outcomes update owned room cache at the session boundary (1.0459ms)
✔ create success uses login profile and entry seats without wire players, opens once and exits (1.0022ms)
✔ create denial never commits or instantiates a game; invalid seat fails before state mutation (1.4308ms)
✔ duplicate successful self join responses do not replace module or restore twice (0.8286ms)
✔ create seat resolver cannot mutate raw roomtype or partially commit a room (0.7772ms)
✔ create seat resolver cannot mutate raw roomtype or partially commit a room (0.48ms)
✔ entry inputs preserve create/login/join sources and deskwar takes priority over deskinfo (2.4931ms)
(node:33004) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:33004) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/net/envelope-codec.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
[连接状态] 登录回包超时，请求重连 {
  reason: 'login-response-timeout',
  timeoutMs: 4000,
  time: '2026-09-08T12:07:51.711Z'
}
✔ invite identity follows authorization for non-device login and server identity for device login (8.8525ms)
✔ binding reply numeric and string states show server feedback without closing the wire (2.8918ms)
✔ VIP wire query response reaches canonical state and clears on login replacement (1.0738ms)
✔ task wire responses reach the store and claim does not invent reward balances (1.225ms)
✔ UI observes canonical commits and unsubscribe is idempotent (0.7725ms)
✔ a failing UI observer reports its original error once while other observers continue (0.467ms)
✔ an onError failure enters fatal with both UI error identities and cancels observers (0.4582ms)
✔ stop invalidates a late Store delivery and rejects new UI observers (0.3019ms)
✔ fatal invalidates a late Store delivery and rejects new UI observers (0.1841ms)
✔ kick invalidates a late Store delivery and rejects new UI observers (0.3412ms)
✔ stop during a Store commit cancels later observers and prevents scene revival (0.5989ms)
✔ listener and onError failures after stopping escape the Store boundary without reviving fatal (0.3864ms)
✔ stopped observer errors survive a later active-room publish failure (3.8215ms)
✔ UI observers receive each committed snapshot even when a listener commits reentrantly (0.3597ms)
✔ cancelling and subscribing observers during a commit cannot alter that delivery snapshot (0.2869ms)
✔ a denied join retains the lobby root, reports the raw outcome and permits a valid retry (1.9072ms)
✔ runtime resolves seats only from the actual game-owned server roomtype at room entry (1.3732ms)
✔ runtime rejects invalid game count 0 at the real room boundary (0.7661ms)
✔ runtime rejects invalid game count 2.5 at the real room boundary (0.8531ms)
✔ runtime rejects invalid game count 2 at the real room boundary (0.6947ms)
✔ agent login denial clears its guard, retains state and permits account retry (0.643ms)
✔ room login denial clears its guard, retains state and permits account retry (0.3753ms)
✔ platform login denial clears its guard, retains state and permits account retry (0.2911ms)
✔ stop from attach releases the actual module and host without reviving runtime (1.2719ms)
✔ stop from restore releases the actual module and host without reviving runtime (0.8295ms)
✔ stop from room-scene releases the actual module and host without reviving runtime (0.5615ms)
✔ stop from room-event releases the actual module and host without reviving runtime (0.5222ms)
✔ stop reentered by an old module disposal prevents replacement room activation (1.1344ms)
✔ an actual callback error after stop remains explicit without changing the stopped lifecycle (1.1188ms)
✔ malformed successful player_login still terminates explicitly (0.4644ms)
✔ malformed successful self_join_room still terminates explicitly (0.2135ms)
✔ start resolves config, subscribes before connect, and never logs in without an account (0.1801ms)
✔ showLoading failure enters terminal fatal before any startup dependency runs (0.4269ms)
✔ showLoading and showFatal failures preserve both error identities without starting dependencies (0.2722ms)
✔ stop while config is pending prevents every late startup continuation from reviving runtime (0.3343ms)
✔ a synchronous subscribe callback that stops runtime hands the returned unsubscribe to teardown exactly once (0.4348ms)
✔ a fatal synchronous subscribe callback still adopts unsubscribe and ignores late events (0.2593ms)
✔ subscribe returning 7 is fatal before Wire start (0.3455ms)
✔ subscribe returning null is fatal before Wire start (0.1598ms)
✔ subscribe returning undefined is fatal before Wire start (0.1867ms)
✔ subscribe startup failure enters fatal once and stops the created wire without starting it (0.1758ms)
✔ wire start failure cleans every established layer and preserves cleanup error order (1.3416ms)
✔ resources failure after Wire start tears down once and stays fatal (0.4139ms)
✔ minimum-display failure after Wire start tears down once and stays fatal (0.1367ms)
✔ login sends one exact request and an ordinary reopen resends the same data with a four-second guard (1.7839ms)
✔ gameid different value fails fatally before WireClient creation (0.4727ms)
✔ gameid different type fails fatally before WireClient creation (0.1662ms)
✔ room switch resends the exact switch envelope before returning to steady login (0.8156ms)
✔ agent switch resends the exact switch envelope before returning to steady login (0.3697ms)
✔ successful login without a room shows the lobby (0.2945ms)
✔ room login commits and opens before showRoom, then restores the exact deskinfo (0.6278ms)
✔ self join opens and shows the room without restoring absent deskinfo (0.8018ms)
✔ self join opens and shows the room before restoring deskinfo (0.6819ms)
✔ slow and reconnecting show reconnect without clearing or replacing room state (0.7442ms)
✔ kick_offline bypasses pending login and stops late navigation (0.4574ms)
✔ show_message preserves text and legacy numeric timeout without navigating (0.3066ms)
✔ kick closes the game before showing kicked and stopping the wire (0.9383ms)
✔ a game rpc named like a platform rpc cannot drive platform scenes (0.6461ms)
✔ login gate routes each ignored room message once with zero runtime side effects (0.5118ms)
✔ a handled no-op room message cannot drive a scene without a state transition (0.5896ms)
✔ joinRoom, prepare, and exitRoom delegate through the authoritative platform commands (1.2455ms)
✔ stop unsubscribes, revokes the host before module disposal, then stops the wire (0.916ms)
✔ stop continues after clearTimeout and every later cleanup failure in exact order (1.5778ms)
✔ kick completes close, invalidate, clear, kicked scene, and wire stop despite all failures (1.3241ms)
✔ real runtime renders the room before restoring canonical deskinfo (1.7142ms)
✔ real runtime keeps canonical roots and raw denials while login and join retries succeed (0.8448ms)
✔ real runtime restores reconnect overlay and silences UI after kick or fatal (0.9567ms)
✔ real runtime alone governs login readiness while resources are pending (0.2739ms)
✔ real room render disposal interrupts restore and terminates the runtime (0.9574ms)
✔ real room activate disposal interrupts restore and terminates the runtime (0.9597ms)
✔ application overlay teardown disposes Presenter, stops Runtime, and invalidates a late frame (0.8278ms)
✔ rank and card wire flow uses server balances and accepts repeated rank responses (1.1122ms)
✔ create wire outcome enters only on success and a repeated success leaves the module mounted (1.6015ms)
✔ erqiwang creation preserves response 11011000000, three seats and room host exit (1.4936ms)
✔ erqiwang creation preserves response 11011, three seats and room host exit (0.5524ms)
✔ erqiwang creation preserves response 11011000001, three seats and room host exit (0.5786ms)
✔ erqiwang login restores compatible roomtype 11011 without closing connection (0.5803ms)
✔ erqiwang login restores compatible roomtype 11011000001 without closing connection (0.4391ms)
✔ numeric roomcode survives login restore through Router, Store and room actions (0.6923ms)
✔ numeric roomcode survives join through Router, Store and room actions (0.456ms)
✔ dissolution confirmation without deskfree returns to lobby with no exit packet (1.2177ms)
✔ freeNow without deskfree closes room and displays original tips immediately (0.5506ms)
✔ dissolution server switch preserves session until agent free_room confirmation (0.7541ms)
✔ freeNow and dissolution server switch work in either order (0.9802ms)
✔ empty server self agree/refuse acknowledgement envelopes update the active vote (1.3542ms)
✔ real runtime waits for scene mount before entered, exact restore, and queued game input (0.9867ms)
✔ real runtime kick cancels a pending scene and never delivers its queued input (0.6681ms)
✔ real runtime mount rejection fails once and releases pending input and host lease (0.7916ms)
✔ real runtime close cancels a pending scene without late room input (0.6758ms)
✔ real runtime reconnecting cancels a pending scene without late room input (0.492ms)
✔ slow mount queues full ready packets so each event sees its own committed player state (0.8259ms)
✔ login replacement bypasses pending room packets and clears their old generation (1.0151ms)
✔ authentication barrier ignores room packets at receipt even while an earlier room is mounting (0.801ms)
✔ one hundred real runtime room entries and lobby exits return modules, leases, subscriptions and timers to baseline (36.7066ms)
(node:48916) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:48916) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/platform/stores/selectors.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ selectSelfPlayer returns null for an unauthenticated state (1.7502ms)
✔ selectRoomPlayers memoizes a frozen positional projection of canonical entities (4.2292ms)
✔ selectGameSnapshot returns only recursively frozen SDK-owned DTOs (1.1006ms)
✔ selectGameSnapshot memoizes each SDK branch by its immutable source subtrees (0.9034ms)
✔ selector memoization remains isolated across independent stores (1.2146ms)
(node:19880) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:19880) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/core/events.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ login(真实响应): 三 Store 填充 + phase=loggedIn (1.2551ms)
✔ login 含 roomcode: room.inRoom=true + deskinfo 透传 (0.3262ms)
✔ login 失败(state!=0): phase=loginFailed, 三 Store 不填充敏感字段 (0.1807ms)
✔ open/reconnecting/slow/kicked 驱动 phase 流转 (0.2391ms)
✔ session: 二次 login 应清空旧 room 状态再填充 (0.2371ms)
(node:36876) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:36876) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/config/profiles.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ StartupOrchestrator: 启动流程 bootstrap → onLogin → ready (1.6345ms)
✔ StartupOrchestrator: bootstrap 失败显式抛错 (0.4994ms)
✔ StartupOrchestrator: waitForReady 在 ready 之前不 resolve (2.2541ms)
✔ StartupOrchestrator: shutdown 停止 RoomRPCBus (0.5308ms)
✔ StartupOrchestrator: bootstrap 可独立调用(不依赖 onLogin) (0.9221ms)
(node:37116) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:37116) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/presentation/lobby-model.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ announcement follows source byte width, speed, right entry and looping left exit (1.7715ms)
(node:67384) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:67384) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/scripts/platform-login/apply-vote-model.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ dynamic rows follow participant seats, excluding the initiator shown in the header (3.7921ms)
✔ deadline only controls countdown and controls require an unvoted connected self (0.3053ms)
✔ server refusal produces the named result and hides voting/countdown (0.2603ms)
(node:53948) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:53948) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/presentation/deferred-numeric-tools.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ early attach requests flush after binding in latest per-tool call order (1.5374ms)
✔ close and hide cancel pending requests independently (0.2466ms)
✔ lease close clears pending callbacks and unbinds the previous room (0.2636ms)
✔ scene unbind retains pending requests while dropping only the current target (0.2092ms)
✔ bound dismissals forward directly and flushed requests are consumed exactly once (0.1751ms)
✔ lease close unbinds even when target cleanup throws (0.5073ms)
✔ pending numeric requests receive cancellation on replacement and lease close (0.3176ms)
(node:29004) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:29004) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/app/composition/game-definitions.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ unmigrated game settlement is explicit rather than silently acknowledging deskfree (1.9351ms)
✔ game room exit always delegates to the bound platform policy (1.5998ms)
(node:63540) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:63540) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/platform/stores/platform-store.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ all 32 UI combinations match actual server config, round-trip and fees (2.7962ms)
✔ required groups have defaults and malformed saved configuration is rejected (0.3108ms)
✔ legacy and extended room configuration reads match server while new requests stay 11 bits (0.1955ms)
✔ invalid room configuration reports actual wire type and value (0.3093ms)
✔ platform preserves erqiwang string through canonical state and entry responses (1.076ms)
(node:62540) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:62540) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/presentation/frame-renderer.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ coalesces frames and invalidates callbacks even if scheduler delivers late (0.7594ms)
✔ releases the current frame before render can request the next frame (0.172ms)
✔ dispose during render prevents a reentrant frame request (0.2381ms)
✔ a throwing dispose cancellation still makes every callback stale (0.1712ms)
✔ a throwing flush cancellation invalidates the old frame before rethrowing (0.2255ms)
✔ flush does not render when cancellation disposes the renderer (0.094ms)
✔ a cancellation that reenters flush supersedes the outer render (0.1094ms)
✔ reports an asynchronous render error once and terminates future frames (0.5344ms)
✔ aggregates an asynchronous render error with reentrant cancellation failure (0.2393ms)
✔ flush rethrows a synchronous render error without reporting an async fault (0.1977ms)
✔ does not swallow an onFault callback error (0.1333ms)
✔ registration reentering flush cancels the superseded handle without blocking the next frame (0.142ms)
✔ registration reentering dispose immediately cancels its returned handle once (0.0811ms)
✔ a reentrant request during registration coalesces with the acquiring frame (0.0701ms)
✔ registration failure releases the reservation and invalidates its captured callback (0.4184ms)
✔ superseded registration preserves the successor scheduled by its synchronous flush (0.2225ms)
✔ superseded handle cancellation errors propagate without reviving stale callbacks (0.1853ms)
(node:63388) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:63388) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/presentation/keyed-rows.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ append preserves existing rows; updates, removals and teardown affect only owned rows (1.5536ms)
✔ avatar loads are deduplicated, late completion after release is bounded and cleanup is exact (0.3254ms)
✔ an idle cache retains only the explicitly configured budget and retries failed loads (0.4719ms)
(node:35884) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:35884) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/config/remote-config.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ three locked entries preserve source flags and exact click tips (2.8529ms)
✔ menu visibility and visible-only spacing match original JumpMenuScene across configuration combinations (235.4464ms)
✔ source hall merge preserves scoped top-level override and rejects invalid data (0.7299ms)
✔ legacy hallConfigName actData colon typo leaves activity sourced only from hall_config (0.2262ms)
✔ source truthiness is preserved for string zero flags rather than coerced to numeric zero (1.3098ms)
✔ main menu override hides all four entries and cdKey runs after review restriction (0.322ms)
✔ tray excludes hidden entries from placement and keeps original feedback hidden (0.3628ms)
✔ every menu entry has an existing local action or an explicit unavailable business description (0.1894ms)
(node:67188) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:67188) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/platform/stores/platform-store.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ login publishes server assets and task status, including subsequent login changes (1.8128ms)
✔ invalid supplied asset fields reject the complete login without publishing partial state (0.8518ms)
(node:57188) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:57188) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/config/remote-config.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ announcement interval preserves strict expiry and never shows on reconnect (1.003ms)
✔ notice configuration follows the same channel source and replaces legacy line breaks (1.4221ms)
✔ lobby rejects incomplete self assets instead of displaying invented zeroes (0.3292ms)
(node:3772) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:3772) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/presentation/numeric-input-model.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ numeric input preserves string leading zeros and caller owns closing (1.7232ms)
✔ numeric input number mode replaces zero and confirms number (0.2154ms)
✔ numeric input filters paste and enforces 18 digits without losing prior value (0.3339ms)
✔ calculator defaults its persisted preference at the source and resets invalid preference (0.366ms)
✔ calculator uses b marker, rejects duplicate decimal and 9th character (0.3303ms)
✔ calculator multiplies supplied originals with decimal precision and persists before callback (0.3743ms)
✔ calculator zero confirms as one and normalizes display (0.2146ms)
✔ calculator refuses non-finite original values instead of fabricating results (0.1516ms)
✔ calculator decimal multiplication supports finite scientific notation (0.2761ms)
(node:61560) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:61560) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/presentation/owned-feedback.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ loading owners include legacy platform activity and only last release hides the surface (1.4816ms)
✔ closing an old tip owner never closes a newer business or platform tip (1.9624ms)
✔ feedback cleanup attempts both surfaces and old owner handles become inert (0.2432ms)
(node:49188) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:49188) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/presentation/page-model.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ loading is an immutable page without business data (2.4927ms)
✔ empty seats keep authoritative positions and count (1.2808ms)
✔ login permits commands when the runtime is ready (0.3854ms)
✔ lobby projects only the public self fields without normalizing their values (0.1901ms)
✔ lobby rejects a missing authenticated player (0.3677ms)
✔ room rejects an occupied seat whose player entity is absent (0.1564ms)
✔ room requires selfSeat to identify the authenticated player (0.1847ms)
✔ room rejects missing protocol status for an occupied seat (0.3147ms)
✔ room exposes ready and offline status from the occupied player (0.2212ms)
✔ room command availability follows the authoritative room and connection state (0.3108ms)
✔ room does not inspect roomtype while projecting seats (0.2025ms)
(node:7744) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:7744) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/presentation/platform-settings.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
[NativeCall] { channel: 'browser', method: 'stopshake', args: [], available: false }
[NativeCall] {
  channel: 'browser',
  method: 'voicePlaying',
  args: [ 0 ],
  available: false
}
[NativeCall] {
  channel: 'browser',
  method: 'SwitchShake',
  args: [ 1 ],
  available: false
}
✔ browser switches default on, persist independently, and restore after reopening (1.3092ms)
✔ lobby toggles preserve native voice and shake sound commands without starting a game shake action (0.7796ms)
✔ invalid saved preferences are exposed rather than silently replaced (0.4209ms)
✔ entering the lobby restores a cached muted voice state to native (0.2071ms)
(node:53480) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:53480) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/presentation/platform-ui-controller.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ login forwards the exact account only after the runtime opens login (3.6118ms)
✔ connect subscribes before reading and waits for ScenePort to choose a page (0.7586ms)
✔ login uses ready alone and forwards runtime command failures unchanged (0.4452ms)
✔ joinRoom forwards the complete command identity only on the lobby page (0.4047ms)
✔ prepare and exit consult the latest room capabilities before the next frame (1.2213ms)
✔ state notifications merge into one frame reading the latest runtime snapshot (0.4154ms)
✔ showRoom cancels the prior frame and completes render then activation synchronously (0.5169ms)
✔ denial retains the full outcome and data identities and permits a successful retry (0.4001ms)
✔ dismissDenial clears only denial and a successful login clears its denial (0.2871ms)
✔ connected clears reconnect without navigating or removing denial (0.384ms)
✔ logged-in clears reconnect without navigating or removing denial (0.1849ms)
✔ kick terminates commands and late updates while the first fatal may replace it (0.5286ms)
✔ Presenter disposal during render interrupts showRoom before caller restore (0.3066ms)
✔ Presenter disposal during activate interrupts showRoom before caller restore (0.1581ms)
✔ Presenter disposal during showOverlay interrupts showRoom before caller restore (0.1356ms)
✔ synchronous render, activation, and overlay failures propagate unchanged (1.1327ms)
✔ frame and subscription faults stop updates but still permit the first fatal overlay (0.4054ms)
✔ dispose attempts both cancellations once even when frame and subscription cleanup throw (0.3074ms)
✔ terminal cleanup failures still attempt the fatal overlay and preserve every error (0.1941ms)
✔ fatal during kick cleanup cannot be overwritten by the outer kick (0.1174ms)
✔ onFault receives original and cleanup errors and its own failure remains observable (0.2359ms)
✔ a render that disposes and then throws still delivers its original frame fault (0.1506ms)
✔ subscription registration disposal releases the returned handle and interrupts connect (0.1705ms)
✔ a throwing initial state read releases the subscription and forbids later commands (0.2151ms)
✔ scheduler registration disposal cancels the newly returned frame handle once (0.1177ms)
✔ nested ScenePort navigation prevents activation of the superseded page (0.1035ms)
✔ scheduler request errors use the required subscription error channel (0.0997ms)
✔ subscription overlay disposal prevents a subsequent frame request (0.071ms)
✔ a synchronous frame cancellation error prevents room activation and caller restore (0.1456ms)
✔ Presenter disposal cancels UI work while Runtime lifecycle stays with the outer owner (0.095ms)
✔ terminal events during room render interrupt the transition before activation (0.1937ms)
✔ scheduler registration may switch pages without blocking subsequent UI frames (0.1654ms)
(node:64188) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:64188) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/presentation/profile-auth.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ auth follows source name check and known checksum outcomes (0.7448ms)
✔ ID validation matches the original validator including legacy date and address semantics (1.2542ms)
(node:66296) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:66296) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/protocol/contracts/rank-list.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ config rank normalizes legacy names and signatures without modifying server entries (4.9575ms)
✔ VIP ranks retain announcement fields and ignore absent optional text (0.255ms)
(node:66128) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:66128) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/presentation/request-loading.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ request loading closes on matching success or failure independent of payload (1.5228ms)
✔ overlapping requests, cancellation, and duplicate replies do not flicker (0.2069ms)
(node:49652) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:49652) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/presentation/join-room-input.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ keypad preserves display zeros and submits a number at six digits (2.8241ms)
✔ paste strips non-digits, truncates and submits; prefill does not submit (0.5286ms)
✔ template options do not rewrite source fixed sample; each submission is independent (0.258ms)
(node:66900) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:66900) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/presentation/room-menu-model.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ legacy panel keeps ordered, compact visible buttons and final infinite override (1.3336ms)
✔ legacy escape guards and match hide ordering are preserved (0.2819ms)
✔ menu actions distinguish owner exit, pregame break and in-game dissolution (0.8682ms)
✔ escape asks for quantity then keeps legacy confirmation and balance error (0.3325ms)
✔ chat config uses exact game source, paired audio and one-based incoming indexes (0.4242ms)
✔ chat validation preserves source byte count and substring filtering (2.7847ms)
✔ room menu source resolver reports missing authoritative room state (1.6142ms)
✔ both configured banned corpora match their own authoritative legacy source (5.5619ms)
(node:33576) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:33576) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/presentation/room-owner-notice.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ owner notice writes game-agent scoped expiry once per 24 hours including exact boundary (0.7271ms)
✔ owner notice treats missing, empty and zero expiry as due but exposes corrupt storage (0.4889ms)
(node:54436) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:54436) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/config/remote-config.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ QR entry uses scoped WechatPublicNo_ewm and exact image share parameters (2.572ms)
✔ share reads url_download and preserves original friend and timeline payloads (0.4023ms)
(node:53272) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:53272) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/presentation/task-item-model.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ task item preserves title wrapping, reward wording and incomplete progress (1.2589ms)
✔ claimable and claimed states replace progress and action controls (0.4966ms)
✔ incomplete tasks reject invalid totals instead of inventing progress (3.2502ms)
(node:41152) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:41152) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/app/composition/game-definitions.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ template module attaches only when opened and releases its view and subscription (1.9108ms)
(node:24912) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:24912) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/protocol/contracts/vip-room.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ VIP response follows saved short codes and counts occupied seats, without mutating source (2.4268ms)
✔ VIP history preserves legacy storage key and most recent first ordering (0.3496ms)
(node:15228) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:15228) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/protocol/contracts/index.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ buildLoginRequest 生成逐字段精确的单层登录信封且不修改来源 (1.7159ms)
✔ buildLoginRequest 只在显式设备登录模式加入电话字段 (0.25ms)
✔ buildLoginRequest 只在显式复用模式且缓存 ID 有效时加入 playerid (0.6254ms)
✔ buildLoginRequest 缺少可选 IP 时省略 ip，但保留可为 null 的 location (0.1496ms)
✔ 登录与进房拒绝会在 JSON 序列化时消失的 undefined location (0.2801ms)
✔ 登录与进房的 location 只接受原样对象或 null (0.1848ms)
✔ buildLoginRequest 拒绝非数字 version，并报告精确 JSON path 与类型 (0.1657ms)
✔ parseLoginResponse 接受已验证大厅登录金样并保留 raw (0.5843ms)
✔ parseLoginResponse 由 deskinfo truthiness 决定 reconnect 并保持同一引用 (0.8506ms)
✔ parseLoginResponse 严格拒绝缺 state、成功但缺 playerid 和不完整房间快照 (0.6589ms)
✔ parseLoginResponse 拒绝负数、越界及非整数 seat (0.4616ms)
✔ parseSelfJoinRoomResponse 接受可传输的 opaque 游戏字段并保留引用 (0.468ms)
✔ parseSelfJoinRoomResponse defines the optional deskwar default once and deskinfo wins stage (1.6421ms)
✔ 房间请求 builder 使用唯一 route，并仅发协议定义字段 (0.2618ms)
✔ 房间请求拒绝 agentid/gameid 的非有限数值并报告来源路径 (0.3165ms)
✔ buildJoinRoomRequest 不凭空补 vipMatch 或 match_id (0.1345ms)
✔ buildJoinRoomRequest 拒绝非法或 undefined vipMatch (0.2542ms)
✔ buildJoinRoomRequest 拒绝非法、undefined 或非有限 match_id (0.9251ms)
✔ 座位事件 parser 校验实际消费字段并保留 raw (0.3549ms)
✔ self_exit_room parser accepts an omitted seat but strictly validates it when present (0.2651ms)
✔ 切服与踢出 parser 拒绝畸形载荷并保留未知扩展 (0.3272ms)
(node:66988) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:66988) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/protocol/first-slice-routes.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ FIRST_SLICE_RPC_ROUTE 是第一纵向切片唯一且精确的 rpc route 表 (2.7886ms)
✔ routeForFirstSlice 从单源映射取 route，未知 rpc 显式失败 (0.5505ms)
(node:67008) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:67008) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/protocol/login.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ buildLoginRequest 透传必备身份字段 (0.6058ms)
✔ parseLoginResponse 提取核心字段 + 房间恢复标志 (0.6008ms)
✔ parseLoginResponse：无 roomcode 时不在房间 (0.1018ms)
✔ parseLoginResponse：state!=0 视为失败 (0.0901ms)
(node:65636) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:65636) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/protocol/typed-send.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ RPC_ROUTE: 自映射契约(每个 rpc 在 Rpc 表里) (1.5884ms)
✔ routeFor: 已知 rpc 返回正确 route (0.1842ms)
✔ routeFor: 未知 rpc 抛错(第二准则:不静默兜底) (0.3822ms)
✔ typedSend: 返回包络结构(rpc/route/data) (0.6331ms)
✔ typedSend: 未知 rpc 抛错 (0.1647ms)
✔ typedSend: 全部 84 个 rpc 都能产出有效包络 (0.1607ms)
(node:67108) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:67108) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/protocol/contracts/validation.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ opaque JSON roomtype preserves all finite scalar and container formats (1.8428ms)
✔ opaque JSON transport rejects unsupported values without executing accessors (1.2711ms)
(node:57848) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:57848) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/sdk/runtime/game-session-host.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ Router drains reentrant room entries FIFO so each module receives its own committed room and deskinfo (8.0953ms)
✔ Router finishes an offline state-first event before draining a reentrant online message (1.9961ms)
✔ PlatformHandlers commits every room event before one typed game event reads the snapshot (1.9136ms)
✔ self_exit_room commits the outside snapshot before disposing the game session (1.1268ms)
✔ self_exit_room accepts omitted seat, validates a present seat, and is idempotent outside (1.6772ms)
✔ PlatformHandlers preserves complete switch payloads and builds the exact resend envelopes (0.8337ms)
✔ PlatformHandlers rejects unknown, route-mismatched, missing, and invalid switch targets without effects (0.559ms)
✔ unknown and every route-mismatched platform rpc leave all observable state unchanged (1.2587ms)
✔ PlatformHandlers validates every switch URL before closing the active game (6.759ms)
✔ PlatformHandlers accepts case-insensitive WS/WSS schemes and preserves full payload identity (0.4199ms)
✔ PlatformHandlers attempts a validated switch after cleanup errors and aggregates all failures (1.0006ms)
✔ kick_server closes the game, marks the runtime session, and stops the connection once (0.7413ms)
✔ kick_server latches before cleanup and makes a reentrant duplicate a no-op (0.5805ms)
✔ kick_server attempts dispose, invalidate, mark, and stop once then aggregates failures (0.6896ms)
✔ active dispatcher receives dissolution and publishes immediate settlement contract without disposal (1.4832ms)
✔ room social ingress and confirmed break traverse Router and clear game ownership once (1.0513ms)
✔ all wire start paths preserve the original complete envelope after committed public state (2.8686ms)
(node:26092) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:26092) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/platform/stores/room-store.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ self_join_room: 已在房应被覆盖（再次入房罕见但支持） (1.3137ms)
✔ other_join_room: 第三方加入,players 数组对应座位填入 (0.2782ms)
✔ self_exit_room: 自己座位清空 (0.1899ms)
✔ other_exit_room: 第三方座位清空 (0.1646ms)
✔ other_exit_room: 未知座位 → 显式抛错（第二准则） (0.4547ms)
✔ self_apply_free_room: state 进入解散投票中 (0.1639ms)
✔ other_apply_free_room: state 进入解散投票中 (0.1393ms)
✔ self/other_agree_free_room: 不改变 state，仅标记同意 (0.2009ms)
✔ self/other_refuse_free_room: 不改变 state (0.1648ms)
✔ other_offline: 触发但不破坏 RoomStore（offline 状态由子游戏持有） (0.204ms)
✔ other_online: 触发但不破坏 RoomStore (0.139ms)
✔ change_seat: 交换两个座位(seat=1 ↔ seat=3) (0.188ms)
✔ free_room: 解散投票结束 → state=2(已解散,业务侧清场) (0.1543ms)
✔ unknown rpc 不在 handler 表里 → 显式抛错（第二准则） (0.1739ms)
(node:3336) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:3336) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/protocol/contracts/room-contracts.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ Store verifies numeric raw identity without permitting forged parsed room IDs (4.6589ms)
✔ create normalizes numeric room codes without changing wire data or string identity (0.5933ms)
✔ create rejects invalid numeric room codes and unrelated types at ingress (0.4941ms)
✔ join normalizes numeric room codes without changing wire data or string identity (0.8016ms)
✔ join rejects invalid numeric room codes and unrelated types at ingress (2.035ms)
✔ login restore normalizes numeric room codes without changing wire data or string identity (0.8025ms)
✔ login restore rejects invalid numeric room codes and unrelated types at ingress (1.2197ms)
(node:9736) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:9736) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/sdk/runtime/game-session-host.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ Router applies the exact login gate before its single dispatch split (2.9594ms)
✔ Router lets kick_server through the login gate but ignores every other rpc (0.2951ms)
✔ Router login gate enforces the complete route by rpc cross matrix (1.3931ms)
✔ Router sends all platform routes to PlatformHandlers exactly once (0.3155ms)
✔ Router preserves game payload identity and mismatched routes have no side effects (0.7249ms)
(node:48688) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:48688) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/protocol/routes.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ Rpc 表: 每个值等于 key(自映射契约,避免错拼) (1.4518ms)
✔ Rpc 表: 至少覆盖核心业务场景 (0.4597ms)
✔ RpcName 联合类型: 字面量类型正确推导 (0.1628ms)
✔ Rpc 表: 房间 handler 已覆盖的关键 rpc 都在白名单 (0.1808ms)
(node:37500) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:37500) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/scripts/room-scene-layout.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ computeActiveFlags(2, 8) → 前 2 true, 其余 false (1.5778ms)
✔ computeActiveFlags(4, 8) → 前 4 true, 其余 false (0.16ms)
✔ computeActiveFlags(0, 8) → throw (0.388ms)
✔ computeActiveFlags(9, 8) → throw (exceeds 8) (0.2026ms)
✔ computePositions(horizontal, 4) → 4 玩家水平排列居中 (0.2766ms)
✔ validateCount(0) → throw (0.2286ms)
✔ validateCount(9) → throw (exceeds MAX_SEATS) (0.1224ms)
✔ validateCount(1.5) → throw (non-integer) (0.0888ms)
✔ validateCount(NaN) → throw (0.1704ms)
✔ validateCount('4') → throw (non-number type) (0.198ms)
✔ validateLayout('bogus') → throw (0.1872ms)
✔ validateLayout(undefined) → throw (0.1241ms)
✔ validateSeat(0, 4) → throw (below range) (0.107ms)
✔ validateSeat(5, 4) → throw (above currentCount) (0.0875ms)
✔ validateSeat(1.5, 4) → throw (non-integer) (0.1008ms)
✔ validateSeat(NaN, 4) → throw (0.0633ms)
✔ applyPlayerCount(4) → 前 4 active=true, 其余 false (0.1764ms)
✔ applyPlayerCount(0) → throw (no slots mutated) (0.0935ms)
✔ applyPlayerCount(1.5) → throw (integer check) (0.0677ms)
✔ applySeatLayoutPositions(horizontal, 3) → 前 3 slot setPosition 被调 (0.2116ms)
✔ applySeatLayoutPositions('bogus', 4) → throw (0.0993ms)
✔ applySeatLayoutPositions(horizontal, 9) → throw (count check) (0.0877ms)
✔ extractPlayerView: slot 无 PlayerInfoView → null (0.0582ms)
✔ extractPlayerView: slot 本身 null → null (0.0374ms)
✔ extractPlayerViewData: 合法三字段 → 返回 PlayerViewData (0.1952ms)
✔ extractPlayerViewData: nickname 缺/非 string → throw (0.1071ms)
✔ extractPlayerViewData: bean 缺/NaN/非 number → throw (0.0982ms)
✔ extractPlayerViewData: avatar 缺/非 string → throw (0.1908ms)
✔ applyPlayerData: 合法输入 → view.applyPlayer 被调,bindTo 不被调 (0.1835ms)
✔ applyPlayerData: 缺 applyPlayer → 回退到 bindTo + reactive store (0.1098ms)
✔ applyPlayerData: seat=1.5 → throw (不调任何 view 方法) (0.3933ms)
✔ applyPlayerData: seat=5, currentCount=4 → throw (0.1328ms)
✔ applyPlayerData: data 缺 nickname → throw (不调 view) (0.1093ms)
✔ applyPlayerData: slot 缺 PlayerInfoView 组件 → throw (0.2406ms)
✔ applyPlayerData: view 既无 applyPlayer 也无 bindTo → throw (0.1182ms)
✔ clearSlots: 当前可见槽位全刷成占位 + applyPlayer 被调 currentCount 次 (0.1984ms)
✔ clearSlots: 部分 setPlayerData 已失败后不再继续(不部分清空) (0.1766ms)
(node:11892) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
✔ single GameEntry contract has no registry or runtime version member (0.7528ms)
✔ public snapshot is plain readonly data (0.1564ms)
(node:56508) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:56508) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/config/profiles.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ browser-like loader evaluates the emitted harness without Node builtin modules (43.819ms)
✔ assertGameContract accepts a fixed-four game with its real nested roomtype and host fixture (3.3959ms)
(node:30060) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:30060) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/sdk/game-room-projection.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ game owns atomic complete projections and exposes no consumer setter (2.6384ms)
✔ reentrant projection commits notify complete versions in order and isolate listener failure (0.4951ms)
(node:48476) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:48476) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/sdk/runtime/game-session-host.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ assertGameEntry rejects invalid identity, routes, resolver presence, and module factories (1.4249ms)
✔ GameEntry preflight does not call a resolver before its game-owned roomtype exists (0.6948ms)
✔ declaration checks and constructor have zero factory or disposer side effects (0.4798ms)
✔ GameSessionHost delivers room events and deskinfo to one active module in order (0.4164ms)
✔ GameSessionHost preserves raw platform events and game messages by identity (0.3267ms)
✔ GameSessionHost rejects illegal state transitions and mismatched game routes (0.3313ms)
✔ GameSessionHost disposes a module when attachment throws and returns to idle (0.2361ms)
✔ GameSessionHost preserves create and contract failures when open cleanup succeeds (0.3506ms)
✔ GameSessionHost preserves attach then dispose failures by identity and occurrence order (0.2521ms)
✔ GameSessionOpenFault locks its brand and frozen error tuple against later mutation (0.4647ms)
✔ open fault extractor snapshots branded faults across realms without reading hostile hooks (1.7271ms)
✔ GameSessionHost disposes a module exactly once and becomes terminal after dispose (0.2311ms)
✔ GameSessionHost creates a fresh module after close (0.1125ms)
✔ GameSessionHost returns to active after a restore handler throws (0.2022ms)
✔ terminal dispose during attach survives callback completion (throws=false) (0.2602ms)
✔ terminal dispose during attach survives callback completion (throws=true) (0.0962ms)
✔ terminal dispose during restore survives callback completion (throws=false) (0.0859ms)
✔ terminal dispose during restore survives callback completion (throws=true) (0.1106ms)
✔ close tolerates module.dispose reentering terminal disposal (0.1471ms)
✔ dispose tolerates module.dispose reentering terminal disposal (0.0324ms)
✔ terminal disposal during module creation cleans the returned module without attaching it (0.0681ms)
✔ active game projection is exposed read-only and disappears with its owning module (0.0933ms)
✔ an undefined module is rejected only when the actual room opens (0.0968ms)
(node:34836) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:34836) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/store-binder.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
[StoreBinder] initial callback error: Error: boom
    at <anonymous> (G:\Works\YouleGamesCocosCreator\cocoscreator_projects\framework-tests\ui\store-binder.test.ts:86:36)
    at Object.bind (G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\assets\framework\ui\store-binder.ts:48:13)
    at TestContext.<anonymous> (G:\Works\YouleGamesCocosCreator\cocoscreator_projects\framework-tests\ui\store-binder.test.ts:86:5)
    at Test.runInAsyncScope (node:async_hooks:227:14)
    at Test.run (node:internal/test_runner/test:1382:25)
    at Test.processPendingSubtests (node:internal/test_runner/test:960:18)
    at Test.postRun (node:internal/test_runner/test:1522:19)
    at Test.run (node:internal/test_runner/test:1447:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async Test.processPendingSubtests (node:internal/test_runner/test:960:7)
[reactive] subscriber error: Error: boom
    at <anonymous> (G:\Works\YouleGamesCocosCreator\cocoscreator_projects\framework-tests\ui\store-binder.test.ts:86:36)
    at <anonymous> (G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\assets\framework\ui\store-binder.ts:50:48)
    at Object.set value (G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\assets\framework\core\reactive.ts:23:15)
    at TestContext.<anonymous> (G:\Works\YouleGamesCocosCreator\cocoscreator_projects\framework-tests\ui\store-binder.test.ts:90:14)
    at Test.runInAsyncScope (node:async_hooks:227:14)
    at Test.run (node:internal/test_runner/test:1382:25)
    at Test.processPendingSubtests (node:internal/test_runner/test:960:18)
    at Test.postRun (node:internal/test_runner/test:1522:19)
    at Test.run (node:internal/test_runner/test:1447:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
✔ createStoreBinder.bind: 订阅 store 后,值变化时 callback 触发 (1.7915ms)
✔ createStoreBinder.bind: 不同 slot 独立 (0.9623ms)
✔ createStoreBinder.unbindAll: 退订后 store 变化不再触发 callback (0.2486ms)
✔ createStoreBinder: 多次 bind 的 unbindAll 全部退订 (0.2575ms)
✔ createStoreBinder: bind 同一 store 多次,各 callback 都触发 (0.4483ms)
✔ createStoreBinder.unbindAll: 重复调用安全(幂等) (0.1429ms)
✔ createStoreBinder.bind: callback 抛错不影响其它订阅者与下次 bind (1.1696ms)
(node:26520) ExperimentalWarning: Transform Types is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:26520) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/theme/default-theme.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to \\?\G:\Works\YouleGamesCocosCreator\cocoscreator_projects\YouleNexus\package.json.
✔ resolveTheme 不传配置时返回默认主题 (0.9898ms)
✔ resolveTheme 只覆盖给出的字段，其余取默认 (0.1393ms)
✔ resolveTheme 分组独立合并，互不影响 (0.0999ms)
✔ resolveTheme 不修改 DEFAULT_THEME 本身 (0.0749ms)
✔ ThemeProvider 未 init 就读取会抛错（第二准则：不兜底） (0.3105ms)
✔ ThemeProvider init 后可读回同一份主题 (0.0839ms)
ℹ tests 950
ℹ suites 0
ℹ pass 950
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 5866.6081
