webloom-framework 0.4.1 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/runtime/sharedWorkerHost.ts"],"names":[],"mappings":"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","file":"chunk-SX46RHDI.js","sourcesContent":["// SharedWorkerGlobalScope 内的 v4 Runtime。\n\nimport type { CapabilityPeer, RemoteCapability, ServiceReference } from \"../contracts/capability.js\";\nimport { capabilityKey } from \"../contracts/capability.js\";\nimport { WebLoomError, type LifecycleDisposeResult, type LifecycleScope, type RuntimeSnapshot } from \"../contracts/lifecycle.js\";\nimport { createRuntimeBudget, normalizeRuntimeLimits, validateDto, type RuntimeBudget, type RuntimeLimitsInput } from \"../transport/dto.js\";\nimport type { PluginManifest } from \"../contracts/plugin.js\";\nimport { createPluginHost, type CreatePluginHostOptions, type HostInspection, type PluginHost } from \"../host/createPluginHost.js\";\nimport { createRuntimeUnitImplementationRegistry } from \"../host/runtimeUnitImplementationRegistry.js\";\nimport { invokeCapabilityHandler } from \"../host/capabilityRegistry.js\";\nimport { materializePluginDefinitions, type RuntimePluginDefinition } from \"./pluginDefinitions.js\";\nimport { createCapabilityBridge } from \"../transport/serviceBridge.js\";\nimport { createMessagePortRuntimeTransport } from \"../transport/messagePortServiceTransport.js\";\nimport { createMessagePortServiceProvider } from \"../transport/messagePortServiceProvider.js\";\nimport { cloneFrozenAttributes } from \"../transport/dto.js\";\nimport { createRuntimeMessageCodec, RUNTIME_PROTOCOL_VERSION, RUNTIME_SNAPSHOT_TYPE } from \"./runtimeProtocol.js\";\nimport { RuntimeInitializationError, type RuntimeStatusListener, type RuntimeStatusSnapshot } from \"./runtimeTypes.js\";\nimport { createCapabilityPeerView, createPeerScopeView } from \"./peerView.js\";\n\nexport interface SharedWorkerScopeLike {\n /** SharedWorker 连接事件。 */\n onconnect: ((event: { ports: MessagePort[] }) => void) | null;\n}\n\nexport interface PeerExposureOptions {\n /** 领域授权标识。 */\n readonly grantId?: string;\n /** 授权修订。 */\n readonly authorizationRevision?: number;\n /** 无环公开属性。 */\n readonly attributes?: Readonly<Record<string, unknown>>;\n /** 领域授权检查。 */\n readonly authorize?: (context: import(\"../contracts/capability.js\").HandlerCallContext, request: unknown) => boolean | Promise<boolean>;\n /** 领域 Scope。 */\n readonly scope?: LifecycleScope;\n}\n\nexport interface PeerController {\n /** peer 标识。 */\n readonly peerId: string;\n /** 已观察到的页面 Runtime 实例;首个页面快照前为空。 */\n readonly runtimeInstanceId?: string;\n /** 对端 Window Runtime 类型。 */\n readonly runtime: \"window-main\";\n /** peer 子作用域。 */\n readonly scope: LifecycleScope;\n /** 传给普通 handler 的最小 PeerView。 */\n readonly view: CapabilityPeer;\n /** 获取页面暴露的 typed remote capability。 */\n capability<C extends RemoteCapability>(capability: C): import(\"../contracts/capability.js\").CapabilityClient<C>;\n /** 暴露 Worker 已注册的 capability。 */\n expose<C extends RemoteCapability>(capability: C, options?: PeerExposureOptions): { revoke(): void };\n /** 原子暴露一组 capability;任一项非法时不得部分开放。 */\n exposeGroup(entries: readonly { readonly capability: RemoteCapability; readonly options?: PeerExposureOptions }[]): { revoke(): void };\n /** 断开此 peer,不影响其它页面。 */\n disconnect(reason?: string): void;\n /** peer 诊断。 */\n inspect(): Readonly<Record<string, unknown>>;\n}\n\nexport interface StartSharedWorkerAppOptions extends Omit<CreatePluginHostOptions, \"runtime\" | \"runtimeUnitImplementationRegistry\" | \"runtimeId\" | \"runtimeInstanceId\"> {\n /** Worker Runtime 逻辑标识。 */\n readonly id: string;\n /** Worker realm 的插件定义。 */\n readonly plugins: readonly RuntimePluginDefinition[];\n /** 对每个新 peer 顶层暴露的能力。 */\n readonly expose?: readonly RemoteCapability[];\n /** 同步配置 peer 级策略。 */\n readonly configurePeer?: (peer: PeerController) => void;\n /** configurePeer 可管理的显式 capability allowlist;未设置时不开放动态能力。 */\n readonly peerExposureAllowlist?: readonly RemoteCapability[];\n /** 可信 transport 配额;只能使用默认值或收紧。 */\n readonly limits?: RuntimeLimitsInput;\n}\n\nexport interface StartSharedWorkerAppForTestingOptions extends StartSharedWorkerAppOptions {\n /** testing 入口注入的 SharedWorkerGlobalScope 替身。 */\n readonly globalScope: SharedWorkerScopeLike;\n /** 仅测试用:观察每次向所有 peer 广播前构建的公共快照。 */\n readonly snapshotObserver?: (snapshot: RuntimeStatusSnapshot) => void;\n}\n\nexport interface SharedWorkerApp {\n readonly runtimeKind: \"shared-worker\";\n readonly runtimeId: string;\n readonly runtimeInstanceId: string;\n ready(): Promise<void>;\n reconcile(): Promise<void>;\n state(): RuntimeStatusSnapshot;\n subscribe(listener: RuntimeStatusListener): () => void;\n inspect(): HostInspection;\n dispose(reason?: string): Promise<LifecycleDisposeResult>;\n}\n\ninterface Endpoint {\n readonly port: MessagePort;\n readonly scope: LifecycleScope;\n readonly transport: ReturnType<typeof createMessagePortRuntimeTransport>;\n readonly bridge: ReturnType<typeof createCapabilityBridge>;\n readonly provider: ReturnType<typeof createMessagePortServiceProvider>;\n readonly exposures: Map<string, ServiceReference>;\n readonly installTopLevelExposures: () => void;\n closed: boolean;\n revision: number;\n}\n\nfunction makeId(prefix: string): string {\n try { if (typeof crypto !== \"undefined\" && typeof crypto.randomUUID === \"function\") return `${prefix}:${crypto.randomUUID()}`; } catch { /* fallback */ }\n return `${prefix}:${Date.now().toString(36)}:${Math.random().toString(36).slice(2)}`;\n}\n\nfunction message(error: unknown): string { return error instanceof Error ? error.message : String(error); }\n\n/** 启动一个真实 SharedWorker Runtime;setup 异步完成前也会发布空 services 快照。 */\nfunction startSharedWorkerAppInternal(options: StartSharedWorkerAppOptions & Pick<StartSharedWorkerAppForTestingOptions, \"snapshotObserver\">, injectedScope?: SharedWorkerScopeLike): SharedWorkerApp {\n if (!options || typeof options.id !== \"string\" || options.id.trim() === \"\") throw new TypeError(\"SharedWorker runtime id must be a non-empty string\");\n const scope = injectedScope ?? ((globalThis as unknown as { onconnect?: unknown }).onconnect !== undefined ? globalThis as unknown as SharedWorkerScopeLike : undefined);\n if (!scope) throw new RuntimeInitializationError({ phase: \"validate\", error: \"startSharedWorkerApp must run in a SharedWorkerGlobalScope\" });\n const runtimeInstanceId = makeId(options.id);\n const limits = normalizeRuntimeLimits(options.limits);\n // One counter per direction is shared by every endpoint in this Runtime;\n // per-peer limits remain enforced inside each bridge/provider.\n const outboundBudget: RuntimeBudget = createRuntimeBudget(limits);\n const inboundBudget: RuntimeBudget = createRuntimeBudget(limits);\n const runtimeCodec = createRuntimeMessageCodec();\n const peerExposureAllowlist = options.peerExposureAllowlist === undefined\n ? undefined\n : new Set(options.peerExposureAllowlist.map((capability) => capabilityKey(capability)));\n const listeners = new Set<RuntimeStatusListener>();\n const endpoints = new Set<Endpoint>();\n let manifests: readonly PluginManifest[] = [];\n let runtimeState: RuntimeSnapshot[\"state\"] = \"starting\";\n let revision = 0;\n let disposed = false;\n let accepting = true;\n let host: PluginHost | undefined;\n let disposePromise: Promise<LifecycleDisposeResult> | undefined;\n\n const localSnapshot = (): RuntimeStatusSnapshot => {\n const currentHost = host;\n const units = currentHost ? currentHost.installed().flatMap((pluginId) => currentHost.state(pluginId).units.map((unit) => ({ pluginId: unit.pluginId, unitId: unit.unitId, runtime: unit.runtime, ...(unit.instanceId !== undefined ? { instanceId: unit.instanceId } : {}), state: unit.kind }))) : [];\n const services = runtimeState === \"ready\" && host ? host.serviceReferences().map((service) => ({ kind: service.kind, capabilityId: service.capabilityId, contractVersion: service.contractVersion, serviceInstanceId: service.serviceInstanceId, attributes: cloneFrozenAttributes(service.attributes), ...(service.grantId !== undefined ? { grantId: service.grantId } : {}), ...(service.authorizationRevision !== undefined ? { authorizationRevision: service.authorizationRevision } : {}) })) : [];\n return Object.freeze({ protocolVersion: RUNTIME_PROTOCOL_VERSION, runtimeId: options.id, runtimeKind: \"shared-worker\", runtimeInstanceId, revision, state: runtimeState, units: Object.freeze(units), services: Object.freeze(services) });\n };\n const emit = (snapshot: RuntimeStatusSnapshot = localSnapshot()): void => { for (const listener of [...listeners]) { try { listener(snapshot); } catch { /* observer isolation */ } } };\n const projectedUnits = (exposures: ReadonlyMap<string, ServiceReference>): readonly RuntimeSnapshot[\"units\"][number][] => {\n if (!host || exposures.size === 0) return Object.freeze([]);\n // A peer may only learn about the provider units behind services explicitly\n // visible in its projection. The local Host snapshot remains complete for\n // trusted inspection; the wire projection must not be a hidden-provider\n // index.\n const owners = new Set(\n host.capabilities.registrations()\n .filter((registration) => exposures.has(capabilityKey(registration.capability)))\n .map((registration) => registration.ownerId),\n );\n if (owners.size === 0) return Object.freeze([]);\n return Object.freeze(host.installed().flatMap((pluginId) => host!.state(pluginId).units\n .filter((unit) => unit.instanceId !== undefined && owners.has(unit.instanceId))\n .map((unit) => ({ pluginId: unit.pluginId, unitId: unit.unitId, runtime: unit.runtime, ...(unit.instanceId !== undefined ? { instanceId: unit.instanceId } : {}), state: unit.kind }))));\n };\n const wireSnapshot = (endpoint: Endpoint, nextRevision = endpoint.revision, exposures: ReadonlyMap<string, ServiceReference> = endpoint.exposures, base = localSnapshot()): RuntimeSnapshot & { readonly type: typeof RUNTIME_SNAPSHOT_TYPE } => {\n const services = [...exposures.values()].map((service) => ({ kind: service.kind, capabilityId: service.capabilityId, contractVersion: service.contractVersion, serviceInstanceId: service.serviceInstanceId, attributes: cloneFrozenAttributes(service.attributes), ...(service.grantId !== undefined ? { grantId: service.grantId } : {}), ...(service.authorizationRevision !== undefined ? { authorizationRevision: service.authorizationRevision } : {}) }));\n const state: RuntimeSnapshot[\"state\"] = base.state === \"disconnected\" ? \"failed\" : base.state;\n return { type: RUNTIME_SNAPSHOT_TYPE, protocolVersion: base.protocolVersion, runtimeId: base.runtimeId, runtimeKind: base.runtimeKind, runtimeInstanceId: base.runtimeInstanceId, revision: nextRevision, state, units: projectedUnits(exposures), services: state === \"ready\" ? services : [] };\n };\n const validateProjectedSnapshot = (endpoint: Endpoint, exposures: ReadonlyMap<string, ServiceReference>): void => {\n if (exposures.size > limits.maxSnapshotServices) throw new WebLoomError(\"resource_limit_exceeded\", \"Runtime service exposure limit exceeded\", \"dispatch\");\n const snapshot = wireSnapshot(endpoint, endpoint.revision + 1, exposures);\n runtimeCodec.encode(snapshot);\n validateDto(snapshot, { limits: { maxDepth: limits.maxDtoDepth, maxNodes: limits.maxDtoNodes, maxEdges: limits.maxDtoEdges, maxBudgetBytes: limits.maxMessageBudgetBytes }, phase: \"dispatch\" });\n };\n const publish = (endpoint: Endpoint, exposures = endpoint.exposures, base?: RuntimeStatusSnapshot): void => {\n if (endpoint.closed) return;\n const nextRevision = endpoint.revision + 1;\n const snapshot = wireSnapshot(endpoint, nextRevision, exposures, base);\n endpoint.transport.send(snapshot);\n // postMessage performs structured-clone synchronously. Advance the\n // per-peer revision only after that operation has succeeded.\n endpoint.revision = nextRevision;\n };\n const publishAll = (): void => {\n const base = localSnapshot();\n options.snapshotObserver?.(base);\n for (const endpoint of endpoints) {\n try { publish(endpoint, endpoint.exposures, base); } catch { closeEndpoint(endpoint, \"Runtime snapshot publication failed\"); }\n }\n emit(base);\n };\n\n const createEndpoint = (port: MessagePort): Endpoint => {\n if (!host) throw new Error(\"SharedWorker Host is unavailable\");\n const peerScope = host.rootScope.child(\"peer\", { attributes: { peerId: makeId(\"peer\") } });\n const transport = createMessagePortRuntimeTransport(port, { limits });\n const bridge = createCapabilityBridge({ transport, remoteRuntimeKind: \"window-main\", limits, budget: outboundBudget });\n const exposures = new Map<string, ServiceReference>();\n const exposurePolicies = new Map<string, PeerExposureOptions>();\n const peerId = peerScope.identity.attributes.peerId as string | undefined ?? makeId(\"peer\");\n const peerScopeView = createPeerScopeView(peerScope);\n const peerView: CapabilityPeer = createCapabilityPeerView({ peerId, scope: peerScopeView, bridge, capabilityScope: peerScope });\n let endpointForDisconnect: Endpoint | undefined;\n const exposeGroup = (entries: readonly { readonly capability: RemoteCapability; readonly options?: PeerExposureOptions }[], source: \"dynamic\" | \"top-level\" = \"dynamic\"): { revoke(): void } => {\n if (peerScope.state !== \"active\") throw new WebLoomError(\"service_revoked\", \"Peer scope is not active\", \"dispatch\", { capabilityId: entries[0]?.capability.id });\n const prepared: { key: string; reference: ServiceReference; options: PeerExposureOptions }[] = [];\n const keys = new Set<string>();\n for (const entry of entries) {\n const capability = entry.capability;\n const exposureOptions = entry.options ?? {};\n const key = capabilityKey(capability);\n if (source === \"dynamic\" && (!peerExposureAllowlist || !peerExposureAllowlist.has(key))) {\n throw new WebLoomError(\"capability_unavailable\", \"Capability is outside the peer exposure allowlist\", \"dispatch\", { capabilityId: capability.id });\n }\n const registration = host?.capabilities.registration(capability);\n if (!registration || (capability.kind !== \"rpc\" && capability.kind !== \"stream\") || registration.capability.kind !== capability.kind) {\n throw new Error(`Capability \"${capability.id}\" is not a remote capability registered by this Host`);\n }\n if (keys.has(key) || exposures.has(key)) throw new Error(`Capability \"${capability.id}\" is already exposed to this peer`);\n keys.add(key);\n const reference: ServiceReference = Object.freeze({\n ...registration.reference,\n serviceInstanceId: makeId(`exposure:${peerId}:${capability.id}`),\n attributes: cloneFrozenAttributes(exposureOptions.attributes ?? registration.reference.attributes),\n ...(exposureOptions.grantId !== undefined ? { grantId: exposureOptions.grantId } : {}),\n ...(exposureOptions.authorizationRevision !== undefined ? { authorizationRevision: exposureOptions.authorizationRevision } : {}),\n });\n prepared.push({ key, reference, options: exposureOptions });\n }\n const projected = new Map(exposures);\n for (const item of prepared) projected.set(item.key, item.reference);\n if (endpointForDisconnect) validateProjectedSnapshot(endpointForDisconnect, projected);\n else if (projected.size > limits.maxSnapshotServices) throw new WebLoomError(\"resource_limit_exceeded\", \"Runtime service exposure limit exceeded\", \"dispatch\");\n\n let active = true;\n let committed = false;\n const removers: (() => void)[] = [];\n const removeExposure = (key: string): void => {\n if (!active || !committed || !exposures.delete(key)) return;\n exposurePolicies.delete(key);\n // If the peer scope itself is being revoked, the group callback below\n // performs one grouped removal/publication. Avoid exposing an\n // intermediate per-item revision during that synchronous fence.\n if (endpointForDisconnect && peerScope.state === \"active\") {\n try { publish(endpointForDisconnect); } catch { closeEndpoint(endpointForDisconnect, \"Runtime snapshot publication failed\"); }\n }\n };\n const removeGroup = (): void => {\n if (!active) return;\n active = false;\n let changed = false;\n for (const item of prepared) {\n changed = exposures.delete(item.key) || changed;\n exposurePolicies.delete(item.key);\n }\n for (const remove of removers.splice(0)) remove();\n if (changed && endpointForDisconnect) {\n try { publish(endpointForDisconnect); } catch { closeEndpoint(endpointForDisconnect, \"Runtime snapshot publication failed\"); }\n }\n };\n try {\n for (const item of prepared) {\n if (item.options.scope) {\n if (item.options.scope.state !== \"active\") throw new WebLoomError(\"service_revoked\", \"Capability exposure scope is not active\", \"dispatch\", { capabilityId: item.reference.capabilityId });\n removers.push(item.options.scope.onRevoke(() => removeExposure(item.key)));\n }\n }\n removers.push(peerScope.onRevoke(() => removeGroup()));\n } catch (error) {\n for (const remove of removers.splice(0)) remove();\n throw error;\n }\n\n // The projected snapshot is sent before the local maps are changed. A\n // synchronous postMessage failure therefore cannot leave a locally\n // committed service that the peer never observed. Map insertion itself\n // is then a non-throwing commit step and advances exactly one revision\n // for the complete group.\n try {\n if (prepared.length > 0 && endpointForDisconnect) publish(endpointForDisconnect, projected);\n } catch (error) {\n active = false;\n for (const remove of removers.splice(0)) remove();\n throw error;\n }\n if (peerScope.state !== \"active\" || prepared.some((item) => item.options.scope !== undefined && item.options.scope.state !== \"active\")) {\n active = false;\n for (const remove of removers.splice(0)) remove();\n throw new WebLoomError(\"service_revoked\", \"Capability exposure scope was revoked before commit\", \"dispose\", { capabilityId: prepared[0]?.reference.capabilityId });\n }\n for (const item of prepared) {\n exposures.set(item.key, item.reference);\n exposurePolicies.set(item.key, item.options);\n }\n committed = true;\n // Scope callbacks are registered above and only run after this task; the\n // explicit handle remains the first-class idempotent revocation path.\n return { revoke: removeGroup };\n };\n let disconnectRequested: string | undefined;\n const configuredExposureKeys = new Set<string>();\n const peer: PeerController = {\n peerId,\n get runtimeInstanceId() { return bridge.runtimeInstanceId; },\n runtime: \"window-main\",\n scope: peerScope,\n view: peerView,\n capability: (capability) => bridge.getClient(capability, peerScope),\n expose(capability, exposureOptions = {}) {\n const result = exposeGroup([{ capability, options: exposureOptions }]);\n configuredExposureKeys.add(capabilityKey(capability));\n return result;\n },\n exposeGroup(entries) {\n const result = exposeGroup(entries);\n for (const entry of entries) configuredExposureKeys.add(capabilityKey(entry.capability));\n return result;\n },\n disconnect(reason = \"Peer disconnected\") {\n if (endpointForDisconnect) closeEndpoint(endpointForDisconnect, reason);\n else { disconnectRequested = reason; peerScope.revoke(reason); }\n },\n inspect: () => Object.freeze({ peerId, scopeId: peerScope.identity.scopeId, state: peerScope.state, exposedServiceCount: exposures.size, pendingCallCount: bridge.pendingCallCount, activeStreamCount: bridge.activeStreamCount }),\n };\n const installTopLevelExposures = (): void => {\n const entries: { readonly capability: RemoteCapability }[] = [];\n for (const capability of options.expose ?? []) {\n const key = capabilityKey(capability);\n if (exposures.has(key)) {\n if (configuredExposureKeys.has(key)) throw new Error(`Capability \"${capability.id}\" is exposed by configurePeer and top-level expose`);\n continue;\n }\n if (!host?.capabilities.registration(capability)) continue;\n entries.push({ capability });\n }\n // This is an installation path, not a configurePeer-owned exposure. A\n // single projected snapshot keeps the whole top-level set atomic.\n if (entries.length > 0) exposeGroup(entries, \"top-level\");\n };\n try { options.configurePeer?.(peer); } catch (error) {\n peerScope.revoke(\"configurePeer failed\");\n bridge.dispose(\"configurePeer failed\");\n transport.close?.();\n throw error;\n }\n const provider = createMessagePortServiceProvider({\n transport,\n peerScope,\n peer: peerView,\n budget: inboundBudget,\n limits,\n services: () => [...exposures.values()],\n peerForCall: (_call, reference) => {\n const registration = host?.capabilities.registration({ kind: reference.kind, id: reference.capabilityId, version: reference.contractVersion });\n return createCapabilityPeerView({ peerId, scope: peerScopeView, bridge, allowed: registration?.peerDependencies ?? [], capabilityScope: peerScope });\n },\n prepareRequest: (call) => {\n if (!host) throw new WebLoomError(\"service_stale\", \"SharedWorker Host is unavailable\", \"dispatch\");\n const registration = host.capabilities.registration({ kind: call.mode === \"stream\" ? \"stream\" : \"rpc\", id: call.capabilityId, version: call.contractVersion });\n if (!registration || registration.capability.kind !== (call.mode === \"stream\" ? \"stream\" : \"rpc\")) throw new WebLoomError(\"service_stale\", \"Runtime service exposure is stale\", \"dispatch\");\n const parser = registration.capability as typeof registration.capability & { request: { parse(value: unknown): unknown }; transfer?: { request?: (value: unknown) => readonly Transferable[] } };\n let value: unknown;\n try { value = parser.request.parse(call.request); } catch { throw new WebLoomError(\"request_validation_failed\", \"Capability request failed validation\", \"receive\"); }\n return { value, transfer: parser.transfer?.request?.(value) };\n },\n handleCall: async ({ message: call, request, reference, signal, deadlineAt, peer: callPeer }) => {\n if (!host) throw new Error(\"SharedWorker Host is unavailable\");\n const registration = host.capabilities.registration({ kind: reference.kind, id: reference.capabilityId, version: reference.contractVersion });\n const key = capabilityKey({ kind: reference.kind, id: reference.capabilityId, version: reference.contractVersion });\n const policy = exposurePolicies.get(key);\n if (!registration || !exposures.has(key)) throw new Error(\"Runtime service exposure is stale\");\n const handlerReference = reference;\n const context = { signal, deadlineAt, ...(call.operationId !== undefined ? { operationId: call.operationId } : {}), reference: handlerReference, origin: \"remote\" as const, peer: callPeer };\n if (policy?.authorize && !(await policy.authorize(context, request))) throw new WebLoomError(\"permission_denied\", \"Peer capability authorization denied\", \"dispatch\", { capabilityId: reference.capabilityId, serviceInstanceId: reference.serviceInstanceId });\n if (exposures.get(key)?.serviceInstanceId !== handlerReference.serviceInstanceId) throw new WebLoomError(\"service_stale\", \"Runtime service exposure was replaced while authorization was pending\", \"dispatch\", { serviceInstanceId: handlerReference.serviceInstanceId });\n if (peerScope.state !== \"active\" || signal.aborted) throw new WebLoomError(\"service_revoked\", \"Peer scope was revoked\", \"dispose\", { serviceInstanceId: reference.serviceInstanceId });\n if (policy?.scope && policy.scope.state !== \"active\") throw new WebLoomError(\"service_revoked\", \"Peer capability authorization scope is revoked\", \"dispose\", { serviceInstanceId: reference.serviceInstanceId });\n const handler = registration.handler as ((value: unknown, context: import(\"../contracts/capability.js\").HandlerCallContext) => unknown | Promise<unknown>) | undefined;\n if (!handler) throw new WebLoomError(\"service_stale\", \"Runtime service handler is unavailable\", \"dispatch\");\n return handler(request, context);\n },\n prepareResult: (value, call) => {\n const registration = host?.capabilities.registration({ kind: \"rpc\", id: call.capabilityId, version: call.contractVersion });\n if (!registration || registration.capability.kind !== \"rpc\") throw new Error(\"RPC capability registration disappeared\");\n const rpc = registration.capability as typeof registration.capability & { response: { parse(value: unknown): unknown }; transfer?: { response?: (value: unknown) => readonly Transferable[] } };\n const parsed = rpc.response.parse(value);\n const transfer = (rpc.transfer?.response?.(parsed) ?? []);\n return { value: parsed, transfer };\n },\n prepareItem: (value, call) => {\n const registration = host?.capabilities.registration({ kind: \"stream\", id: call.capabilityId, version: call.contractVersion });\n if (!registration || registration.capability.kind !== \"stream\") throw new Error(\"stream capability registration disappeared\");\n const stream = registration.capability as typeof registration.capability & { item: { parse(value: unknown): unknown }; transfer?: { item?: (value: unknown) => readonly Transferable[] } };\n const parsed = stream.item.parse(value);\n const transfer = stream.transfer?.item?.(parsed) ?? [];\n return { value: parsed, transfer };\n },\n });\n const endpoint: Endpoint = { port, scope: peerScope, transport, bridge, provider, exposures, installTopLevelExposures, closed: false, revision: 0 };\n endpointForDisconnect = endpoint;\n endpoints.add(endpoint);\n try {\n if (disconnectRequested !== undefined) closeEndpoint(endpoint, disconnectRequested);\n installTopLevelExposures();\n // Window and Worker may both publish the first snapshot. Incoming snapshots\n // are consumed only by the bridge; no hello/handshake control message exists.\n publish(endpoint);\n } catch (error) {\n closeEndpoint(endpoint, \"SharedWorker endpoint initialization failed\");\n throw error;\n }\n return endpoint;\n };\n\n const closeEndpoint = (endpoint: Endpoint, reason: string): void => { if (endpoint.closed) return; endpoint.closed = true; endpoint.scope.revoke(reason); void endpoint.scope.dispose({ reason }); endpoint.provider.dispose(); endpoint.bridge.dispose(reason); endpoint.transport.close?.(); endpoints.delete(endpoint); };\n const sendTerminalSnapshot = (port: MessagePort): void => {\n try {\n port.start();\n port.postMessage({ ...localSnapshot(), type: RUNTIME_SNAPSHOT_TYPE });\n // Give the posted terminal snapshot a turn to cross the port before\n // closing a connection made after the Worker Runtime has stopped.\n setTimeout(() => { try { port.close(); } catch { /* noop */ } }, 0);\n } catch { try { port.close(); } catch { /* noop */ } }\n };\n scope.onconnect = (event) => {\n for (const port of event.ports ?? []) {\n if (!accepting || disposed || endpoints.size >= limits.maxPeers) { sendTerminalSnapshot(port); continue; }\n try { createEndpoint(port); } catch { try { port.close(); } catch { /* noop */ } }\n }\n };\n\n try {\n const materialized = materializePluginDefinitions(options.plugins, \"shared-worker\");\n manifests = materialized.map((item) => item.manifest);\n const implementations = createRuntimeUnitImplementationRegistry(materialized.map((item) => ({ pluginId: item.manifest.id, unitId: item.unitId, setup: item.setup, capabilities: item.capabilities })));\n const { id: _id, plugins: _plugins, expose: _expose, configurePeer: _configurePeer, ...hostOptions } = options;\n host = createPluginHost({ ...hostOptions, runtime: \"shared-worker\", runtimeId: options.id, runtimeInstanceId, runtimeUnitImplementationRegistry: implementations });\n host.subscribe(() => { if (runtimeState === \"ready\" && !disposed) { revision += 1; publishAll(); } else emit(); });\n } catch (error) {\n runtimeState = \"failed\";\n const failure = new RuntimeInitializationError({ phase: \"validate\", error: message(error) });\n const failedReady = Promise.reject(failure);\n void failedReady.catch(() => undefined);\n const failedInspection = (): HostInspection => ({ runtimeId: options.id, runtimeKind: \"shared-worker\", runtimeInstanceId, version: 0, pluginCount: 0, peerCount: endpoints.size, pendingCallCount: 0, activeStreamCount: 0, plugins: [] });\n return { runtimeKind: \"shared-worker\", runtimeId: options.id, runtimeInstanceId, ready: () => failedReady, reconcile: async () => failedReady, state: localSnapshot, subscribe(listener) { listeners.add(listener); listener(localSnapshot()); return () => listeners.delete(listener); }, inspect: failedInspection, dispose: async () => ({ scopeId: `runtime:${runtimeInstanceId}`, state: \"stopped\", attempted: 0, released: 0, pending: [], errors: [], cleanupIncomplete: false }) };\n }\n\n const ready = host.registerAll(manifests).then(() => {\n // A peer may have been connected before Host startup finished. Installing\n // the same top-level projection again is idempotent, while a configurePeer\n // collision remains an explicit error.\n for (const endpoint of endpoints) endpoint.installTopLevelExposures();\n if (!disposed) { runtimeState = \"ready\"; revision += 1; publishAll(); }\n }, (error) => { if (!disposed) { runtimeState = \"failed\"; publishAll(); } throw new RuntimeInitializationError({ phase: \"startup\", error: message(error) }); });\n void ready.catch(() => undefined);\n const app: SharedWorkerApp = {\n runtimeKind: \"shared-worker\", runtimeId: options.id, runtimeInstanceId,\n ready: () => ready,\n reconcile: () => host?.reconcile() ?? Promise.resolve(),\n state: localSnapshot,\n subscribe(listener) { listeners.add(listener); listener(localSnapshot()); return () => listeners.delete(listener); },\n inspect: () => host ? { ...host.inspect(), peerCount: endpoints.size } : { runtimeId: options.id, runtimeKind: \"shared-worker\", runtimeInstanceId, version: 0, pluginCount: 0, peerCount: endpoints.size, pendingCallCount: 0, activeStreamCount: 0, plugins: [] },\n dispose(reason = \"shared worker runtime disposed\") { if (disposePromise) return disposePromise; accepting = false; disposed = true; runtimeState = \"stopping\"; publishAll(); disposePromise = (async () => { const result = host ? await host.dispose(reason) : { scopeId: `runtime:${runtimeInstanceId}`, state: \"stopped\" as const, attempted: 0, released: 0, pending: [], errors: [], cleanupIncomplete: false }; runtimeState = \"disposed\"; publishAll(); for (const endpoint of [...endpoints]) closeEndpoint(endpoint, reason); return result; })(); return disposePromise; },\n };\n return app;\n}\n\n/** 生产入口:只从真实 SharedWorkerGlobalScope 获取连接事件。 */\nexport function startSharedWorkerApp(options: StartSharedWorkerAppOptions): SharedWorkerApp {\n return startSharedWorkerAppInternal(options);\n}\n\n/** testing/advanced harness 入口;生产包的 startSharedWorkerApp 不接受 scope 注入。 */\nexport function startSharedWorkerAppForTesting(options: StartSharedWorkerAppForTestingOptions): SharedWorkerApp {\n const { globalScope, ...runtimeOptions } = options;\n return startSharedWorkerAppInternal(runtimeOptions, globalScope);\n}\n"]}
@@ -1,264 +0,0 @@
1
- import { T as PluginSetup, K as Capability, bj as RuntimeUnitImplementationRegistry, aH as PluginIntentSnapshot, aF as PluginIntentController, a$ as ResourceRegistry, aZ as ResourceDefinition, bd as RuntimeSnapshot, R as RuntimeKind, aN as PluginStateKind, Y as CapabilityBridge } from './runtimeTypes-DquUCHz-.js';
2
- import { R as ReceivePortLedger, a as RuntimeLimitsInput, b as RuntimeBudget } from './sharedWorkerHost-KI7TIGdX.js';
3
-
4
- interface RuntimeUnitImplementation {
5
- /** 产品标识。 */
6
- pluginId: string;
7
- /** 稳定运行单元标识。 */
8
- unitId: string;
9
- /** 当前环境的可执行入口。 */
10
- setup: PluginSetup;
11
- /** 当前 realm 的 typed capability 定义。 */
12
- capabilities?: readonly Capability[];
13
- }
14
- /** 创建一个拒绝重复注册、按产品和单元查找实现的运行时注册表。 */
15
- declare function createRuntimeUnitImplementationRegistry(implementations?: readonly RuntimeUnitImplementation[]): RuntimeUnitImplementationRegistry & {
16
- register(implementation: RuntimeUnitImplementation): void;
17
- unregister(pluginId: string, unitId: string): void;
18
- };
19
-
20
- interface CreatePluginIntentControllerOptions {
21
- /** 当前控制面启动身份;Worker 重启时应传入新值。 */
22
- authorityInstanceId?: string;
23
- /** Worker 恢复后读取的平台意图。 */
24
- initial?: Partial<PluginIntentSnapshot>;
25
- /** 将候选快照原子写入平台存储;缺省表示内存控制面(测试用)。 */
26
- persist?: (snapshot: PluginIntentSnapshot) => Promise<void>;
27
- /** 有界去重记录数量,避免 commandId 永久增长。 */
28
- maxCommandRecords?: number;
29
- }
30
- /** 创建单一控制面上的插件意图控制器。 */
31
- declare function createPluginIntentController(options?: CreatePluginIntentControllerOptions): PluginIntentController;
32
-
33
- /**
34
- * 资源注册表实现
35
- *
36
- * 设计缘由:管理资源定义的注册和查询,支持 owner-aware 生命周期。
37
- * 重复 id 抛错,disable 时可回收。
38
- */
39
-
40
- /** 资源注册表实现 */
41
- declare function createResourceRegistry(): ResourceRegistry;
42
- /** Internal runtime hook; deliberately absent from ResourceRegistry's public type. */
43
- declare function registerOwnedResource(registry: ResourceRegistry, ownerId: string, definition: ResourceDefinition<any, any>): void;
44
-
45
- declare const RUNTIME_PROTOCOL_VERSION: "webloom.runtime.v1";
46
- declare const RUNTIME_SNAPSHOT_TYPE: "webloom.runtime.v1.snapshot";
47
- declare const RUNTIME_ERROR_TYPE: "webloom.runtime.v1.runtime-error";
48
- declare const RUNTIME_CALL_TYPE: "webloom.runtime.v1.call";
49
- declare const RUNTIME_RESULT_TYPE: "webloom.runtime.v1.result";
50
- declare const RUNTIME_ERROR_MESSAGE_TYPE: "webloom.runtime.v1.error";
51
- declare const RUNTIME_CANCEL_TYPE: "webloom.runtime.v1.cancel";
52
- declare const RUNTIME_NEXT_TYPE: "webloom.runtime.v1.next";
53
- declare const RUNTIME_CREDIT_TYPE: "webloom.runtime.v1.credit";
54
- interface RuntimeSnapshotUnit {
55
- /** 插件标识。 */
56
- readonly pluginId: string;
57
- /** 单元标识。 */
58
- readonly unitId: string;
59
- /** Runtime。 */
60
- readonly runtime: RuntimeKind;
61
- /** 实例标识。 */
62
- readonly instanceId?: string;
63
- /** 状态。 */
64
- readonly state: PluginStateKind;
65
- }
66
- type RuntimeSnapshotMessage = RuntimeSnapshot & {
67
- readonly type: typeof RUNTIME_SNAPSHOT_TYPE;
68
- };
69
- interface RuntimeErrorMessage {
70
- /** 消息类型。 */
71
- readonly type: typeof RUNTIME_ERROR_TYPE;
72
- /** 协议版本。 */
73
- readonly protocolVersion: typeof RUNTIME_PROTOCOL_VERSION;
74
- /** 结构化错误码。 */
75
- readonly code: string;
76
- /** 脱敏消息。 */
77
- readonly message: string;
78
- /** 失败阶段。 */
79
- readonly phase: "validate" | "wait" | "dispatch" | "execute" | "receive" | "dispose";
80
- /** 可选插件标识。 */
81
- readonly pluginId?: string;
82
- /** 可选单元标识。 */
83
- readonly unitId?: string;
84
- }
85
- interface RuntimeCallMessage {
86
- /** 消息类型。 */
87
- readonly type: typeof RUNTIME_CALL_TYPE;
88
- /** 协议版本。 */
89
- readonly protocolVersion: typeof RUNTIME_PROTOCOL_VERSION;
90
- /** 方向内唯一 call id。 */
91
- readonly callId: string;
92
- /** capability 标识。 */
93
- readonly capabilityId: string;
94
- /** 契约版本。 */
95
- readonly contractVersion: string;
96
- /** exposure 身份。 */
97
- readonly serviceInstanceId: string;
98
- /** 调用模式。 */
99
- readonly mode: "unary" | "stream";
100
- /** 本次派发的剩余预算。 */
101
- readonly timeoutMs: number;
102
- /** 已 parser 验证的请求。 */
103
- readonly request: unknown;
104
- /** 产品操作标识。 */
105
- readonly operationId?: string;
106
- /** 领域授权标识。 */
107
- readonly grantId?: string;
108
- /** stream 初始 credit。 */
109
- readonly initialCredit?: number;
110
- }
111
- interface RuntimeUnaryResultMessage {
112
- /** 消息类型。 */
113
- readonly type: typeof RUNTIME_RESULT_TYPE;
114
- /** 协议版本。 */
115
- readonly protocolVersion: typeof RUNTIME_PROTOCOL_VERSION;
116
- /** call id。 */
117
- readonly callId: string;
118
- /** exposure 身份。 */
119
- readonly serviceInstanceId: string;
120
- /** unary 结果。 */
121
- readonly result: unknown;
122
- }
123
- interface RuntimeStreamReadyMessage {
124
- /** 消息类型。 */
125
- readonly type: typeof RUNTIME_RESULT_TYPE;
126
- /** 协议版本。 */
127
- readonly protocolVersion: typeof RUNTIME_PROTOCOL_VERSION;
128
- /** call id。 */
129
- readonly callId: string;
130
- /** exposure 身份。 */
131
- readonly serviceInstanceId: string;
132
- /** stream 建立确认。 */
133
- readonly streamReady: true;
134
- }
135
- interface RuntimeStreamDoneMessage {
136
- /** 消息类型。 */
137
- readonly type: typeof RUNTIME_RESULT_TYPE;
138
- /** 协议版本。 */
139
- readonly protocolVersion: typeof RUNTIME_PROTOCOL_VERSION;
140
- /** call id。 */
141
- readonly callId: string;
142
- /** exposure 身份。 */
143
- readonly serviceInstanceId: string;
144
- /** stream 正常结束。 */
145
- readonly done: true;
146
- }
147
- type RuntimeResultMessage = RuntimeUnaryResultMessage | RuntimeStreamReadyMessage | RuntimeStreamDoneMessage;
148
- interface RuntimeErrorResponseMessage {
149
- /** 消息类型。 */
150
- readonly type: typeof RUNTIME_ERROR_MESSAGE_TYPE;
151
- /** 协议版本。 */
152
- readonly protocolVersion: typeof RUNTIME_PROTOCOL_VERSION;
153
- /** call id。 */
154
- readonly callId: string;
155
- /** exposure 身份。 */
156
- readonly serviceInstanceId: string;
157
- /** 结构化错误。 */
158
- readonly error: {
159
- readonly code: string;
160
- readonly message: string;
161
- readonly phase: RuntimeErrorMessage["phase"];
162
- readonly details?: Readonly<Record<string, unknown>>;
163
- };
164
- }
165
- interface RuntimeCancelMessage {
166
- /** 消息类型。 */
167
- readonly type: typeof RUNTIME_CANCEL_TYPE;
168
- /** 协议版本。 */
169
- readonly protocolVersion: typeof RUNTIME_PROTOCOL_VERSION;
170
- /** call id。 */
171
- readonly callId: string;
172
- /** exposure 身份。 */
173
- readonly serviceInstanceId: string;
174
- }
175
- interface RuntimeNextMessage {
176
- /** 消息类型。 */
177
- readonly type: typeof RUNTIME_NEXT_TYPE;
178
- /** 协议版本。 */
179
- readonly protocolVersion: typeof RUNTIME_PROTOCOL_VERSION;
180
- /** call id。 */
181
- readonly callId: string;
182
- /** exposure 身份。 */
183
- readonly serviceInstanceId: string;
184
- /** 连续序号。 */
185
- readonly sequence: number;
186
- /** parser 验证的 item。 */
187
- readonly item: unknown;
188
- }
189
- interface RuntimeCreditMessage {
190
- /** 消息类型。 */
191
- readonly type: typeof RUNTIME_CREDIT_TYPE;
192
- /** 协议版本。 */
193
- readonly protocolVersion: typeof RUNTIME_PROTOCOL_VERSION;
194
- /** call id。 */
195
- readonly callId: string;
196
- /** exposure 身份。 */
197
- readonly serviceInstanceId: string;
198
- /** 新增 credit。 */
199
- readonly count: number;
200
- }
201
- type RuntimeWireMessage = RuntimeSnapshotMessage | RuntimeErrorMessage | RuntimeCallMessage | RuntimeResultMessage | RuntimeErrorResponseMessage | RuntimeCancelMessage | RuntimeNextMessage | RuntimeCreditMessage;
202
- interface RuntimeMessageCodec {
203
- /** 严格验证并冻结 v4 message。 */
204
- encode(message: RuntimeWireMessage): RuntimeWireMessage;
205
- /** 严格解析 v4 message;旧协议直接拒绝。 */
206
- decode(value: unknown): RuntimeWireMessage;
207
- }
208
- declare function createRuntimeMessageCodec(): RuntimeMessageCodec;
209
- declare function isRuntimeSnapshot(value: RuntimeWireMessage): value is RuntimeSnapshotMessage;
210
-
211
- interface RuntimeReceiveMetadata {
212
- /** 本次 MessageEvent 实际携带的业务 MessagePort;仅 transport 本地使用。 */
213
- readonly ports?: readonly MessagePort[];
214
- /** 由物理 endpoint transport 创建的一次性接收资源账本。 */
215
- readonly ledger?: ReceivePortLedger;
216
- /** 物理 endpoint 已完成一次 codec decode。 */
217
- readonly decoded?: boolean;
218
- }
219
- interface RuntimeTransport {
220
- /** 发送已验证 v4 message;transfer 由契约 extractor 提供。 */
221
- send(message: RuntimeWireMessage, transfer?: readonly Transferable[]): void;
222
- /** 订阅接收 message 及本次事件的本地 transfer 元数据。 */
223
- subscribe(listener: (message: RuntimeWireMessage, metadata?: RuntimeReceiveMetadata) => void): () => void;
224
- /** 关闭本端传输。 */
225
- close?(): void;
226
- /** 物理 endpoint 对 decode/接收账本错误的统一通知。 */
227
- subscribeError?(listener: (error: unknown, metadata?: RuntimeReceiveMetadata) => void): () => void;
228
- }
229
- interface CreateCapabilityBridgeOptions {
230
- /** 底层双向 transport。 */
231
- readonly transport: RuntimeTransport;
232
- /** 预期的对端 Runtime 类型。 */
233
- readonly remoteRuntimeKind?: RuntimeKind;
234
- /** 预期的对端逻辑 Runtime id。 */
235
- readonly remoteRuntimeId?: string;
236
- /** 默认调用预算。 */
237
- readonly defaultCallTimeoutMs?: number;
238
- /** 可信 Runtime/advanced 装配提供的预算;只能收紧 v4 默认值。 */
239
- readonly limits?: RuntimeLimitsInput;
240
- /** 可选的 Runtime 方向共享计数器。 */
241
- readonly budget?: RuntimeBudget;
242
- }
243
- /** 创建按 peer 绑定、可撤销且支持 typed stream 的 bridge。 */
244
- declare function createCapabilityBridge(options: CreateCapabilityBridgeOptions): CapabilityBridge & {
245
- readonly pendingCallCount: number;
246
- readonly activeStreamCount: number;
247
- readonly retainedPayloadBytes: number;
248
- };
249
- /** 内部 typed transfer 校验 helper;不接受 call 级临时 transfer 数组。 */
250
- declare function validateTransferables(value: unknown, transfer: readonly Transferable[] | undefined, limits?: RuntimeLimitsInput): readonly Transferable[];
251
-
252
- interface MessagePortLike {
253
- addEventListener(type: "message" | "messageerror", listener: (event: MessageEvent) => void): void;
254
- removeEventListener(type: "message" | "messageerror", listener: (event: MessageEvent) => void): void;
255
- postMessage(message: unknown, transfer?: readonly Transferable[]): void;
256
- start?(): void;
257
- close?(): void;
258
- }
259
- /** 将一个真实 MessagePort 绑定为双向 v4 transport。 */
260
- declare function createMessagePortRuntimeTransport(port: MessagePortLike, options?: {
261
- readonly limits?: RuntimeLimitsInput;
262
- }): RuntimeTransport;
263
-
264
- export { createCapabilityBridge as A, createMessagePortRuntimeTransport as B, type CreateCapabilityBridgeOptions as C, createPluginIntentController as D, createResourceRegistry as E, createRuntimeMessageCodec as F, createRuntimeUnitImplementationRegistry as G, isRuntimeSnapshot as H, registerOwnedResource as I, validateTransferables as J, type MessagePortLike as M, type RuntimeCallMessage as R, type RuntimeTransport as a, type CreatePluginIntentControllerOptions as b, RUNTIME_CALL_TYPE as c, RUNTIME_CANCEL_TYPE as d, RUNTIME_CREDIT_TYPE as e, RUNTIME_ERROR_MESSAGE_TYPE as f, RUNTIME_ERROR_TYPE as g, RUNTIME_NEXT_TYPE as h, RUNTIME_PROTOCOL_VERSION as i, RUNTIME_RESULT_TYPE as j, RUNTIME_SNAPSHOT_TYPE as k, type RuntimeCancelMessage as l, type RuntimeCreditMessage as m, type RuntimeErrorMessage as n, type RuntimeErrorResponseMessage as o, type RuntimeMessageCodec as p, type RuntimeNextMessage as q, type RuntimeReceiveMetadata as r, type RuntimeResultMessage as s, type RuntimeSnapshotMessage as t, type RuntimeSnapshotUnit as u, type RuntimeStreamDoneMessage as v, type RuntimeStreamReadyMessage as w, type RuntimeUnaryResultMessage as x, type RuntimeUnitImplementation as y, type RuntimeWireMessage as z };