Files
youle_cocos/out/room-platform-refactor/verified-tests.txt
T
joywayer 35216f75e7 feat: integrate room framework and isolated subgame bundles
Complete room UI and protocol integration, move game definitions and resources behind bundle entries, publish authoritative version XML, and document single-game builds. Include all current resource changes and experiment artifacts.
2026-09-09 03:13:18 +08:00

2858 lines
189 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
(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