收口原生壳能力来源
新增共享 HostBridge capability profile,区分 Expo 移动通用、iOS 额外和 Tauri 桌面能力 移动壳能力清单改为引用共享 profile,入口 URL 类型支持 readonly 能力数组 两端配置检查和原生壳总门禁改为反查共享 profile,桌面 Rust 清单保持运行时镜像 补充 HostBridge profile 单测和 H5 readonly 能力合并类型兼容 同步 Expo/Tauri 壳方案、HostBridge 协议文档和项目决策记录
This commit is contained in:
@@ -421,31 +421,35 @@ function assertNativeShellCapabilityPlan() {
|
||||
'decision log document',
|
||||
);
|
||||
|
||||
const mobileCapabilitySource = fs.readFileSync(
|
||||
'apps/mobile-shell/src/host-bridge/capabilities.ts',
|
||||
'utf8',
|
||||
);
|
||||
const desktopCapabilitySource = fs.readFileSync(
|
||||
'apps/desktop-shell/src-tauri/src/host_bridge/capabilities.rs',
|
||||
'utf8',
|
||||
);
|
||||
const sharedContractSource = fs.readFileSync(sharedHostBridgeContractPath, 'utf8');
|
||||
const sharedMethods = extractTsStringArray(sharedContractSource, 'HOST_BRIDGE_METHODS');
|
||||
const mobileCapabilities = extractTsStringArray(
|
||||
mobileCapabilitySource,
|
||||
'MOBILE_HOST_CAPABILITIES',
|
||||
);
|
||||
const sharedMethods = extractTsStringArray(
|
||||
fs.readFileSync(sharedHostBridgeContractPath, 'utf8'),
|
||||
'HOST_BRIDGE_METHODS',
|
||||
sharedContractSource,
|
||||
'HOST_BRIDGE_EXPO_MOBILE_BASE_CAPABILITIES',
|
||||
);
|
||||
const iosMobileCapabilities = extractTsStringArray(
|
||||
mobileCapabilitySource,
|
||||
'IOS_MOBILE_HOST_CAPABILITIES',
|
||||
sharedContractSource,
|
||||
'HOST_BRIDGE_EXPO_MOBILE_IOS_CAPABILITIES',
|
||||
);
|
||||
const iosExtraCapabilities = iosMobileCapabilities.filter(
|
||||
(capability) => !mobileCapabilities.includes(capability),
|
||||
);
|
||||
const sharedDesktopCapabilities = extractTsStringArray(
|
||||
sharedContractSource,
|
||||
'HOST_BRIDGE_TAURI_DESKTOP_CAPABILITIES',
|
||||
);
|
||||
const desktopCapabilities = extractRustCapabilities(desktopCapabilitySource);
|
||||
|
||||
assertSameList(
|
||||
desktopCapabilities,
|
||||
sharedDesktopCapabilities,
|
||||
'desktop shell runtime capability profile',
|
||||
);
|
||||
|
||||
assertSameList(
|
||||
extractDocumentMethodTable(planSource),
|
||||
[
|
||||
|
||||
Reference in New Issue
Block a user