@aigne/aos 0.2.0-beta
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.
- package/CHANGELOG.md +49 -0
- package/LICENSE.md +26 -0
- package/dist/agent-dsl.cjs +116 -0
- package/dist/agent-dsl.d.cts +31 -0
- package/dist/agent-dsl.d.cts.map +1 -0
- package/dist/agent-dsl.d.mts +31 -0
- package/dist/agent-dsl.d.mts.map +1 -0
- package/dist/agent-dsl.mjs +115 -0
- package/dist/agent-dsl.mjs.map +1 -0
- package/dist/arc-compat.cjs +125 -0
- package/dist/arc-compat.d.cts +17 -0
- package/dist/arc-compat.d.cts.map +1 -0
- package/dist/arc-compat.d.mts +17 -0
- package/dist/arc-compat.d.mts.map +1 -0
- package/dist/arc-compat.mjs +123 -0
- package/dist/arc-compat.mjs.map +1 -0
- package/dist/auto-surface/compiler.cjs +36 -0
- package/dist/auto-surface/compiler.d.cts +7 -0
- package/dist/auto-surface/compiler.d.cts.map +1 -0
- package/dist/auto-surface/compiler.d.mts +7 -0
- package/dist/auto-surface/compiler.d.mts.map +1 -0
- package/dist/auto-surface/compiler.mjs +37 -0
- package/dist/auto-surface/compiler.mjs.map +1 -0
- package/dist/auto-surface/definition-dsl.cjs +333 -0
- package/dist/auto-surface/definition-dsl.d.cts +41 -0
- package/dist/auto-surface/definition-dsl.d.cts.map +1 -0
- package/dist/auto-surface/definition-dsl.d.mts +41 -0
- package/dist/auto-surface/definition-dsl.d.mts.map +1 -0
- package/dist/auto-surface/definition-dsl.mjs +332 -0
- package/dist/auto-surface/definition-dsl.mjs.map +1 -0
- package/dist/auto-surface/fragments.cjs +177 -0
- package/dist/auto-surface/fragments.d.cts +23 -0
- package/dist/auto-surface/fragments.d.cts.map +1 -0
- package/dist/auto-surface/fragments.d.mts +23 -0
- package/dist/auto-surface/fragments.d.mts.map +1 -0
- package/dist/auto-surface/fragments.mjs +175 -0
- package/dist/auto-surface/fragments.mjs.map +1 -0
- package/dist/auto-surface/index.d.mts +9 -0
- package/dist/auto-surface/layering.cjs +43 -0
- package/dist/auto-surface/layering.d.cts +7 -0
- package/dist/auto-surface/layering.d.cts.map +1 -0
- package/dist/auto-surface/layering.d.mts +7 -0
- package/dist/auto-surface/layering.d.mts.map +1 -0
- package/dist/auto-surface/layering.mjs +43 -0
- package/dist/auto-surface/layering.mjs.map +1 -0
- package/dist/auto-surface/projection.cjs +11 -0
- package/dist/auto-surface/projection.d.cts +11 -0
- package/dist/auto-surface/projection.d.cts.map +1 -0
- package/dist/auto-surface/projection.d.mts +11 -0
- package/dist/auto-surface/projection.d.mts.map +1 -0
- package/dist/auto-surface/projection.mjs +12 -0
- package/dist/auto-surface/projection.mjs.map +1 -0
- package/dist/auto-surface/projectors/settings-shell.cjs +114 -0
- package/dist/auto-surface/projectors/settings-shell.d.cts +10 -0
- package/dist/auto-surface/projectors/settings-shell.d.cts.map +1 -0
- package/dist/auto-surface/projectors/settings-shell.d.mts +10 -0
- package/dist/auto-surface/projectors/settings-shell.d.mts.map +1 -0
- package/dist/auto-surface/projectors/settings-shell.mjs +114 -0
- package/dist/auto-surface/projectors/settings-shell.mjs.map +1 -0
- package/dist/auto-surface/scenario.cjs +38 -0
- package/dist/auto-surface/scenario.d.cts +31 -0
- package/dist/auto-surface/scenario.d.cts.map +1 -0
- package/dist/auto-surface/scenario.d.mts +31 -0
- package/dist/auto-surface/scenario.d.mts.map +1 -0
- package/dist/auto-surface/scenario.mjs +37 -0
- package/dist/auto-surface/scenario.mjs.map +1 -0
- package/dist/auto-surface/types.cjs +9 -0
- package/dist/auto-surface/types.d.cts +153 -0
- package/dist/auto-surface/types.d.cts.map +1 -0
- package/dist/auto-surface/types.d.mts +153 -0
- package/dist/auto-surface/types.d.mts.map +1 -0
- package/dist/auto-surface/types.mjs +9 -0
- package/dist/auto-surface/types.mjs.map +1 -0
- package/dist/auto-surface/value-dsl.cjs +80 -0
- package/dist/auto-surface/value-dsl.d.cts +24 -0
- package/dist/auto-surface/value-dsl.d.cts.map +1 -0
- package/dist/auto-surface/value-dsl.d.mts +24 -0
- package/dist/auto-surface/value-dsl.d.mts.map +1 -0
- package/dist/auto-surface/value-dsl.mjs +79 -0
- package/dist/auto-surface/value-dsl.mjs.map +1 -0
- package/dist/blocklet/activation.cjs +94 -0
- package/dist/blocklet/activation.d.cts +30 -0
- package/dist/blocklet/activation.d.cts.map +1 -0
- package/dist/blocklet/activation.d.mts +30 -0
- package/dist/blocklet/activation.d.mts.map +1 -0
- package/dist/blocklet/activation.mjs +94 -0
- package/dist/blocklet/activation.mjs.map +1 -0
- package/dist/blocklet/did-space-registry.cjs +282 -0
- package/dist/blocklet/did-space-registry.d.cts +82 -0
- package/dist/blocklet/did-space-registry.d.cts.map +1 -0
- package/dist/blocklet/did-space-registry.d.mts +82 -0
- package/dist/blocklet/did-space-registry.d.mts.map +1 -0
- package/dist/blocklet/did-space-registry.mjs +281 -0
- package/dist/blocklet/did-space-registry.mjs.map +1 -0
- package/dist/blocklet/handlers.cjs +66 -0
- package/dist/blocklet/handlers.d.cts +16 -0
- package/dist/blocklet/handlers.d.cts.map +1 -0
- package/dist/blocklet/handlers.d.mts +16 -0
- package/dist/blocklet/handlers.d.mts.map +1 -0
- package/dist/blocklet/handlers.mjs +65 -0
- package/dist/blocklet/handlers.mjs.map +1 -0
- package/dist/blocklet/index.d.mts +7 -0
- package/dist/blocklet/manifest.d.cts +2 -0
- package/dist/blocklet/manifest.d.mts +2 -0
- package/dist/blocklet/manifest.mjs +3 -0
- package/dist/blocklet/registry.cjs +447 -0
- package/dist/blocklet/registry.d.cts +197 -0
- package/dist/blocklet/registry.d.cts.map +1 -0
- package/dist/blocklet/registry.d.mts +197 -0
- package/dist/blocklet/registry.d.mts.map +1 -0
- package/dist/blocklet/registry.mjs +441 -0
- package/dist/blocklet/registry.mjs.map +1 -0
- package/dist/blocklet/static-render.cjs +183 -0
- package/dist/blocklet/static-render.d.cts +55 -0
- package/dist/blocklet/static-render.d.cts.map +1 -0
- package/dist/blocklet/static-render.d.mts +55 -0
- package/dist/blocklet/static-render.d.mts.map +1 -0
- package/dist/blocklet/static-render.mjs +181 -0
- package/dist/blocklet/static-render.mjs.map +1 -0
- package/dist/blocklet/types.d.cts +70 -0
- package/dist/blocklet/types.d.cts.map +1 -0
- package/dist/blocklet/types.d.mts +70 -0
- package/dist/blocklet/types.d.mts.map +1 -0
- package/dist/devices/chain.cjs +127 -0
- package/dist/devices/chain.d.cts +48 -0
- package/dist/devices/chain.d.cts.map +1 -0
- package/dist/devices/chain.d.mts +48 -0
- package/dist/devices/chain.d.mts.map +1 -0
- package/dist/devices/chain.mjs +125 -0
- package/dist/devices/chain.mjs.map +1 -0
- package/dist/dsl-shared.cjs +290 -0
- package/dist/dsl-shared.d.cts +54 -0
- package/dist/dsl-shared.d.cts.map +1 -0
- package/dist/dsl-shared.d.mts +54 -0
- package/dist/dsl-shared.d.mts.map +1 -0
- package/dist/dsl-shared.mjs +287 -0
- package/dist/dsl-shared.mjs.map +1 -0
- package/dist/http/afs-mcp.cjs +85 -0
- package/dist/http/afs-mcp.d.cts +14 -0
- package/dist/http/afs-mcp.d.cts.map +1 -0
- package/dist/http/afs-mcp.d.mts +14 -0
- package/dist/http/afs-mcp.d.mts.map +1 -0
- package/dist/http/afs-mcp.mjs +86 -0
- package/dist/http/afs-mcp.mjs.map +1 -0
- package/dist/http/afs-raw.cjs +264 -0
- package/dist/http/afs-raw.d.cts +31 -0
- package/dist/http/afs-raw.d.cts.map +1 -0
- package/dist/http/afs-raw.d.mts +31 -0
- package/dist/http/afs-raw.d.mts.map +1 -0
- package/dist/http/afs-raw.mjs +264 -0
- package/dist/http/afs-raw.mjs.map +1 -0
- package/dist/http/afs-rest.cjs +30 -0
- package/dist/http/afs-rest.d.cts +21 -0
- package/dist/http/afs-rest.d.cts.map +1 -0
- package/dist/http/afs-rest.d.mts +21 -0
- package/dist/http/afs-rest.d.mts.map +1 -0
- package/dist/http/afs-rest.mjs +31 -0
- package/dist/http/afs-rest.mjs.map +1 -0
- package/dist/http/afs-rpc-wire.cjs +271 -0
- package/dist/http/afs-rpc-wire.d.cts +195 -0
- package/dist/http/afs-rpc-wire.d.cts.map +1 -0
- package/dist/http/afs-rpc-wire.d.mts +195 -0
- package/dist/http/afs-rpc-wire.d.mts.map +1 -0
- package/dist/http/afs-rpc-wire.mjs +262 -0
- package/dist/http/afs-rpc-wire.mjs.map +1 -0
- package/dist/http/afs-rpc.cjs +729 -0
- package/dist/http/afs-rpc.d.cts +103 -0
- package/dist/http/afs-rpc.d.cts.map +1 -0
- package/dist/http/afs-rpc.d.mts +103 -0
- package/dist/http/afs-rpc.d.mts.map +1 -0
- package/dist/http/afs-rpc.mjs +729 -0
- package/dist/http/afs-rpc.mjs.map +1 -0
- package/dist/http/afs-upload.cjs +116 -0
- package/dist/http/afs-upload.d.cts +40 -0
- package/dist/http/afs-upload.d.cts.map +1 -0
- package/dist/http/afs-upload.d.mts +40 -0
- package/dist/http/afs-upload.d.mts.map +1 -0
- package/dist/http/afs-upload.mjs +116 -0
- package/dist/http/afs-upload.mjs.map +1 -0
- package/dist/http/aup-client.cjs +60 -0
- package/dist/http/aup-client.d.cts +22 -0
- package/dist/http/aup-client.d.cts.map +1 -0
- package/dist/http/aup-client.d.mts +22 -0
- package/dist/http/aup-client.d.mts.map +1 -0
- package/dist/http/aup-client.mjs +59 -0
- package/dist/http/aup-client.mjs.map +1 -0
- package/dist/http/aup-event.cjs +100 -0
- package/dist/http/aup-event.d.cts +38 -0
- package/dist/http/aup-event.d.cts.map +1 -0
- package/dist/http/aup-event.d.mts +38 -0
- package/dist/http/aup-event.d.mts.map +1 -0
- package/dist/http/aup-event.mjs +101 -0
- package/dist/http/aup-event.mjs.map +1 -0
- package/dist/http/auth-context.cjs +66 -0
- package/dist/http/auth-context.d.cts +64 -0
- package/dist/http/auth-context.d.cts.map +1 -0
- package/dist/http/auth-context.d.mts +64 -0
- package/dist/http/auth-context.d.mts.map +1 -0
- package/dist/http/auth-context.mjs +66 -0
- package/dist/http/auth-context.mjs.map +1 -0
- package/dist/http/csrf.cjs +50 -0
- package/dist/http/csrf.d.cts +8 -0
- package/dist/http/csrf.d.cts.map +1 -0
- package/dist/http/csrf.d.mts +8 -0
- package/dist/http/csrf.d.mts.map +1 -0
- package/dist/http/csrf.mjs +49 -0
- package/dist/http/csrf.mjs.map +1 -0
- package/dist/http/handlers.cjs +106 -0
- package/dist/http/handlers.d.cts +39 -0
- package/dist/http/handlers.d.cts.map +1 -0
- package/dist/http/handlers.d.mts +39 -0
- package/dist/http/handlers.d.mts.map +1 -0
- package/dist/http/handlers.mjs +104 -0
- package/dist/http/handlers.mjs.map +1 -0
- package/dist/http/index.d.mts +1 -0
- package/dist/http/ingest-facade.cjs +315 -0
- package/dist/http/ingest-facade.mjs +314 -0
- package/dist/http/ingest-facade.mjs.map +1 -0
- package/dist/http/raw-url.cjs +136 -0
- package/dist/http/raw-url.d.cts +54 -0
- package/dist/http/raw-url.d.cts.map +1 -0
- package/dist/http/raw-url.d.mts +54 -0
- package/dist/http/raw-url.d.mts.map +1 -0
- package/dist/http/raw-url.mjs +136 -0
- package/dist/http/raw-url.mjs.map +1 -0
- package/dist/http/request-context.cjs +178 -0
- package/dist/http/request-context.d.cts +76 -0
- package/dist/http/request-context.d.cts.map +1 -0
- package/dist/http/request-context.d.mts +76 -0
- package/dist/http/request-context.d.mts.map +1 -0
- package/dist/http/request-context.mjs +179 -0
- package/dist/http/request-context.mjs.map +1 -0
- package/dist/index.cjs +197 -0
- package/dist/index.d.cts +63 -0
- package/dist/index.d.mts +68 -0
- package/dist/index.mjs +61 -0
- package/dist/mcp/index.cjs +9 -0
- package/dist/mcp/index.d.cts +5 -0
- package/dist/mcp/index.d.mts +5 -0
- package/dist/mcp/index.mjs +6 -0
- package/dist/mcp/prompts.cjs +17 -0
- package/dist/mcp/prompts.d.cts +8 -0
- package/dist/mcp/prompts.d.cts.map +1 -0
- package/dist/mcp/prompts.d.mts +8 -0
- package/dist/mcp/prompts.d.mts.map +1 -0
- package/dist/mcp/prompts.mjs +17 -0
- package/dist/mcp/prompts.mjs.map +1 -0
- package/dist/mcp/resources.cjs +22 -0
- package/dist/mcp/resources.d.cts +8 -0
- package/dist/mcp/resources.d.cts.map +1 -0
- package/dist/mcp/resources.d.mts +8 -0
- package/dist/mcp/resources.d.mts.map +1 -0
- package/dist/mcp/resources.mjs +22 -0
- package/dist/mcp/resources.mjs.map +1 -0
- package/dist/mcp/server.cjs +51 -0
- package/dist/mcp/server.d.cts +20 -0
- package/dist/mcp/server.d.cts.map +1 -0
- package/dist/mcp/server.d.mts +20 -0
- package/dist/mcp/server.d.mts.map +1 -0
- package/dist/mcp/server.mjs +52 -0
- package/dist/mcp/server.mjs.map +1 -0
- package/dist/mcp/tools.cjs +218 -0
- package/dist/mcp/tools.d.cts +8 -0
- package/dist/mcp/tools.d.cts.map +1 -0
- package/dist/mcp/tools.d.mts +8 -0
- package/dist/mcp/tools.d.mts.map +1 -0
- package/dist/mcp/tools.mjs +219 -0
- package/dist/mcp/tools.mjs.map +1 -0
- package/dist/mcp/utils.cjs +75 -0
- package/dist/mcp/utils.mjs +69 -0
- package/dist/mcp/utils.mjs.map +1 -0
- package/dist/mount/index.cjs +4 -0
- package/dist/mount/index.d.cts +3 -0
- package/dist/mount/index.d.mts +3 -0
- package/dist/mount/index.mjs +3 -0
- package/dist/mount/materializer.cjs +167 -0
- package/dist/mount/materializer.d.cts +97 -0
- package/dist/mount/materializer.d.cts.map +1 -0
- package/dist/mount/materializer.d.mts +97 -0
- package/dist/mount/materializer.d.mts.map +1 -0
- package/dist/mount/materializer.mjs +167 -0
- package/dist/mount/materializer.mjs.map +1 -0
- package/dist/mount/types.d.cts +90 -0
- package/dist/mount/types.d.cts.map +1 -0
- package/dist/mount/types.d.mts +90 -0
- package/dist/mount/types.d.mts.map +1 -0
- package/dist/mount-config.cjs +61 -0
- package/dist/mount-config.d.cts +19 -0
- package/dist/mount-config.d.cts.map +1 -0
- package/dist/mount-config.d.mts +19 -0
- package/dist/mount-config.d.mts.map +1 -0
- package/dist/mount-config.mjs +61 -0
- package/dist/mount-config.mjs.map +1 -0
- package/dist/projectors/aup-projector.cjs +190 -0
- package/dist/projectors/aup-projector.d.cts +59 -0
- package/dist/projectors/aup-projector.d.cts.map +1 -0
- package/dist/projectors/aup-projector.d.mts +59 -0
- package/dist/projectors/aup-projector.d.mts.map +1 -0
- package/dist/projectors/aup-projector.mjs +188 -0
- package/dist/projectors/aup-projector.mjs.map +1 -0
- package/dist/projectors/index.cjs +6 -0
- package/dist/projectors/index.d.cts +2 -0
- package/dist/projectors/index.d.mts +2 -0
- package/dist/projectors/index.mjs +3 -0
- package/dist/scaffold/afs.cjs +195 -0
- package/dist/scaffold/afs.d.cts +16 -0
- package/dist/scaffold/afs.d.cts.map +1 -0
- package/dist/scaffold/afs.d.mts +16 -0
- package/dist/scaffold/afs.d.mts.map +1 -0
- package/dist/scaffold/afs.mjs +195 -0
- package/dist/scaffold/afs.mjs.map +1 -0
- package/dist/scaffold/composition.cjs +92 -0
- package/dist/scaffold/composition.d.cts +10 -0
- package/dist/scaffold/composition.d.cts.map +1 -0
- package/dist/scaffold/composition.d.mts +10 -0
- package/dist/scaffold/composition.d.mts.map +1 -0
- package/dist/scaffold/composition.mjs +92 -0
- package/dist/scaffold/composition.mjs.map +1 -0
- package/dist/scaffold/dsl-error.cjs +21 -0
- package/dist/scaffold/dsl-error.d.cts +11 -0
- package/dist/scaffold/dsl-error.d.cts.map +1 -0
- package/dist/scaffold/dsl-error.d.mts +11 -0
- package/dist/scaffold/dsl-error.d.mts.map +1 -0
- package/dist/scaffold/dsl-error.mjs +20 -0
- package/dist/scaffold/dsl-error.mjs.map +1 -0
- package/dist/scaffold/index.d.mts +12 -0
- package/dist/scaffold/manifest-dsl.cjs +188 -0
- package/dist/scaffold/manifest-dsl.d.cts +8 -0
- package/dist/scaffold/manifest-dsl.d.cts.map +1 -0
- package/dist/scaffold/manifest-dsl.d.mts +8 -0
- package/dist/scaffold/manifest-dsl.d.mts.map +1 -0
- package/dist/scaffold/manifest-dsl.mjs +188 -0
- package/dist/scaffold/manifest-dsl.mjs.map +1 -0
- package/dist/scaffold/module-dsl.cjs +284 -0
- package/dist/scaffold/module-dsl.d.cts +8 -0
- package/dist/scaffold/module-dsl.d.cts.map +1 -0
- package/dist/scaffold/module-dsl.d.mts +8 -0
- package/dist/scaffold/module-dsl.d.mts.map +1 -0
- package/dist/scaffold/module-dsl.mjs +284 -0
- package/dist/scaffold/module-dsl.mjs.map +1 -0
- package/dist/scaffold/resolver.cjs +156 -0
- package/dist/scaffold/resolver.d.cts +7 -0
- package/dist/scaffold/resolver.d.cts.map +1 -0
- package/dist/scaffold/resolver.d.mts +7 -0
- package/dist/scaffold/resolver.d.mts.map +1 -0
- package/dist/scaffold/resolver.mjs +156 -0
- package/dist/scaffold/resolver.mjs.map +1 -0
- package/dist/scaffold/runtime.cjs +24 -0
- package/dist/scaffold/runtime.d.cts +19 -0
- package/dist/scaffold/runtime.d.cts.map +1 -0
- package/dist/scaffold/runtime.d.mts +19 -0
- package/dist/scaffold/runtime.d.mts.map +1 -0
- package/dist/scaffold/runtime.mjs +25 -0
- package/dist/scaffold/runtime.mjs.map +1 -0
- package/dist/scaffold/shell-dsl.cjs +279 -0
- package/dist/scaffold/shell-dsl.d.cts +8 -0
- package/dist/scaffold/shell-dsl.d.cts.map +1 -0
- package/dist/scaffold/shell-dsl.d.mts +8 -0
- package/dist/scaffold/shell-dsl.d.mts.map +1 -0
- package/dist/scaffold/shell-dsl.mjs +279 -0
- package/dist/scaffold/shell-dsl.mjs.map +1 -0
- package/dist/scaffold/surface-dsl.cjs +182 -0
- package/dist/scaffold/surface-dsl.d.cts +8 -0
- package/dist/scaffold/surface-dsl.d.cts.map +1 -0
- package/dist/scaffold/surface-dsl.d.mts +8 -0
- package/dist/scaffold/surface-dsl.d.mts.map +1 -0
- package/dist/scaffold/surface-dsl.mjs +182 -0
- package/dist/scaffold/surface-dsl.mjs.map +1 -0
- package/dist/scaffold/surfaces.cjs +84 -0
- package/dist/scaffold/surfaces.d.cts +23 -0
- package/dist/scaffold/surfaces.d.cts.map +1 -0
- package/dist/scaffold/surfaces.d.mts +24 -0
- package/dist/scaffold/surfaces.d.mts.map +1 -0
- package/dist/scaffold/surfaces.mjs +84 -0
- package/dist/scaffold/surfaces.mjs.map +1 -0
- package/dist/scaffold/types.d.cts +264 -0
- package/dist/scaffold/types.d.cts.map +1 -0
- package/dist/scaffold/types.d.mts +265 -0
- package/dist/scaffold/types.d.mts.map +1 -0
- package/dist/scaffold/workspace-dsl.cjs +339 -0
- package/dist/scaffold/workspace-dsl.d.cts +49 -0
- package/dist/scaffold/workspace-dsl.d.cts.map +1 -0
- package/dist/scaffold/workspace-dsl.d.mts +49 -0
- package/dist/scaffold/workspace-dsl.d.mts.map +1 -0
- package/dist/scaffold/workspace-dsl.mjs +337 -0
- package/dist/scaffold/workspace-dsl.mjs.map +1 -0
- package/dist/scope/index.d.mts +3 -0
- package/dist/scope/read-blocklet-scope.cjs +29 -0
- package/dist/scope/read-blocklet-scope.d.cts +8 -0
- package/dist/scope/read-blocklet-scope.d.cts.map +1 -0
- package/dist/scope/read-blocklet-scope.d.mts +8 -0
- package/dist/scope/read-blocklet-scope.d.mts.map +1 -0
- package/dist/scope/read-blocklet-scope.mjs +30 -0
- package/dist/scope/read-blocklet-scope.mjs.map +1 -0
- package/dist/scope/resolve-scoped-afs.cjs +87 -0
- package/dist/scope/resolve-scoped-afs.d.cts +7 -0
- package/dist/scope/resolve-scoped-afs.d.cts.map +1 -0
- package/dist/scope/resolve-scoped-afs.d.mts +7 -0
- package/dist/scope/resolve-scoped-afs.d.mts.map +1 -0
- package/dist/scope/resolve-scoped-afs.mjs +88 -0
- package/dist/scope/resolve-scoped-afs.mjs.map +1 -0
- package/dist/scope/types.d.cts +25 -0
- package/dist/scope/types.d.cts.map +1 -0
- package/dist/scope/types.d.mts +25 -0
- package/dist/scope/types.d.mts.map +1 -0
- package/dist/session/backends.cjs +90 -0
- package/dist/session/backends.d.cts +35 -0
- package/dist/session/backends.d.cts.map +1 -0
- package/dist/session/backends.d.mts +35 -0
- package/dist/session/backends.d.mts.map +1 -0
- package/dist/session/backends.mjs +89 -0
- package/dist/session/backends.mjs.map +1 -0
- package/dist/session/replication-resolver.cjs +323 -0
- package/dist/session/replication-resolver.d.cts +71 -0
- package/dist/session/replication-resolver.d.cts.map +1 -0
- package/dist/session/replication-resolver.d.mts +71 -0
- package/dist/session/replication-resolver.d.mts.map +1 -0
- package/dist/session/replication-resolver.mjs +323 -0
- package/dist/session/replication-resolver.mjs.map +1 -0
- package/dist/session/role-level.cjs +36 -0
- package/dist/session/role-level.d.cts +24 -0
- package/dist/session/role-level.d.cts.map +1 -0
- package/dist/session/role-level.d.mts +24 -0
- package/dist/session/role-level.d.mts.map +1 -0
- package/dist/session/role-level.mjs +35 -0
- package/dist/session/role-level.mjs.map +1 -0
- package/dist/session/session-dir-providers.cjs +254 -0
- package/dist/session/session-dir-providers.d.cts +32 -0
- package/dist/session/session-dir-providers.d.cts.map +1 -0
- package/dist/session/session-dir-providers.d.mts +32 -0
- package/dist/session/session-dir-providers.d.mts.map +1 -0
- package/dist/session/session-dir-providers.mjs +252 -0
- package/dist/session/session-dir-providers.mjs.map +1 -0
- package/dist/session/session-id.cjs +20 -0
- package/dist/session/session-id.d.cts +15 -0
- package/dist/session/session-id.d.cts.map +1 -0
- package/dist/session/session-id.d.mts +15 -0
- package/dist/session/session-id.d.mts.map +1 -0
- package/dist/session/session-id.mjs +20 -0
- package/dist/session/session-id.mjs.map +1 -0
- package/dist/session/session-user-afs.cjs +899 -0
- package/dist/session/session-user-afs.d.cts +296 -0
- package/dist/session/session-user-afs.d.cts.map +1 -0
- package/dist/session/session-user-afs.d.mts +296 -0
- package/dist/session/session-user-afs.d.mts.map +1 -0
- package/dist/session/session-user-afs.mjs +896 -0
- package/dist/session/session-user-afs.mjs.map +1 -0
- package/dist/session/settings-cascade.cjs +69 -0
- package/dist/session/settings-cascade.d.cts +81 -0
- package/dist/session/settings-cascade.d.cts.map +1 -0
- package/dist/session/settings-cascade.d.mts +81 -0
- package/dist/session/settings-cascade.d.mts.map +1 -0
- package/dist/session/settings-cascade.mjs +69 -0
- package/dist/session/settings-cascade.mjs.map +1 -0
- package/dist/session/settings-resolver.cjs +770 -0
- package/dist/session/settings-resolver.d.cts +177 -0
- package/dist/session/settings-resolver.d.cts.map +1 -0
- package/dist/session/settings-resolver.d.mts +177 -0
- package/dist/session/settings-resolver.d.mts.map +1 -0
- package/dist/session/settings-resolver.mjs +771 -0
- package/dist/session/settings-resolver.mjs.map +1 -0
- package/dist/session/settings-schema-store.cjs +0 -0
- package/dist/session/settings-schema-store.d.cts +72 -0
- package/dist/session/settings-schema-store.d.cts.map +1 -0
- package/dist/session/settings-schema-store.d.mts +72 -0
- package/dist/session/settings-schema-store.d.mts.map +1 -0
- package/dist/session/settings-schema-store.mjs +0 -0
- package/dist/session/settings-schema-store.mjs.map +1 -0
- package/dist/system-mounts/index.cjs +14 -0
- package/dist/system-mounts/index.d.cts +6 -0
- package/dist/system-mounts/index.d.mts +6 -0
- package/dist/system-mounts/index.mjs +6 -0
- package/dist/system-mounts/install.cjs +101 -0
- package/dist/system-mounts/install.d.cts +36 -0
- package/dist/system-mounts/install.d.cts.map +1 -0
- package/dist/system-mounts/install.d.mts +37 -0
- package/dist/system-mounts/install.d.mts.map +1 -0
- package/dist/system-mounts/install.mjs +102 -0
- package/dist/system-mounts/install.mjs.map +1 -0
- package/dist/system-mounts/installers.cjs +247 -0
- package/dist/system-mounts/installers.d.cts +13 -0
- package/dist/system-mounts/installers.d.cts.map +1 -0
- package/dist/system-mounts/installers.d.mts +14 -0
- package/dist/system-mounts/installers.d.mts.map +1 -0
- package/dist/system-mounts/installers.mjs +244 -0
- package/dist/system-mounts/installers.mjs.map +1 -0
- package/dist/system-mounts/lists.cjs +122 -0
- package/dist/system-mounts/lists.d.cts +34 -0
- package/dist/system-mounts/lists.d.cts.map +1 -0
- package/dist/system-mounts/lists.d.mts +34 -0
- package/dist/system-mounts/lists.d.mts.map +1 -0
- package/dist/system-mounts/lists.mjs +122 -0
- package/dist/system-mounts/lists.mjs.map +1 -0
- package/dist/system-mounts/types.d.cts +124 -0
- package/dist/system-mounts/types.d.cts.map +1 -0
- package/dist/system-mounts/types.d.mts +125 -0
- package/dist/system-mounts/types.d.mts.map +1 -0
- package/dist/system-mounts/validate.cjs +56 -0
- package/dist/system-mounts/validate.d.cts +34 -0
- package/dist/system-mounts/validate.d.cts.map +1 -0
- package/dist/system-mounts/validate.d.mts +34 -0
- package/dist/system-mounts/validate.d.mts.map +1 -0
- package/dist/system-mounts/validate.mjs +56 -0
- package/dist/system-mounts/validate.mjs.map +1 -0
- package/dist/terminal-llm.cjs +90 -0
- package/dist/terminal-llm.d.cts +50 -0
- package/dist/terminal-llm.d.cts.map +1 -0
- package/dist/terminal-llm.d.mts +50 -0
- package/dist/terminal-llm.d.mts.map +1 -0
- package/dist/terminal-llm.mjs +90 -0
- package/dist/terminal-llm.mjs.map +1 -0
- package/dist/terminal-repl.cjs +371 -0
- package/dist/terminal-repl.d.cts +69 -0
- package/dist/terminal-repl.d.cts.map +1 -0
- package/dist/terminal-repl.d.mts +69 -0
- package/dist/terminal-repl.d.mts.map +1 -0
- package/dist/terminal-repl.mjs +370 -0
- package/dist/terminal-repl.mjs.map +1 -0
- package/dist/transport/idle-timer.cjs +136 -0
- package/dist/transport/idle-timer.d.cts +92 -0
- package/dist/transport/idle-timer.d.cts.map +1 -0
- package/dist/transport/idle-timer.d.mts +92 -0
- package/dist/transport/idle-timer.d.mts.map +1 -0
- package/dist/transport/idle-timer.mjs +132 -0
- package/dist/transport/idle-timer.mjs.map +1 -0
- package/dist/web-component-dsl.cjs +153 -0
- package/dist/web-component-dsl.d.cts +27 -0
- package/dist/web-component-dsl.d.cts.map +1 -0
- package/dist/web-component-dsl.d.mts +27 -0
- package/dist/web-component-dsl.d.mts.map +1 -0
- package/dist/web-component-dsl.mjs +152 -0
- package/dist/web-component-dsl.mjs.map +1 -0
- package/package.json +81 -0
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
const require_dsl_shared = require('../dsl-shared.cjs');
|
|
2
|
+
const require_dsl_error = require('./dsl-error.cjs');
|
|
3
|
+
|
|
4
|
+
//#region src/scaffold/surface-dsl.ts
|
|
5
|
+
const STRING = "\"((?:[^\"\\\\]|\\\\.)*)\"";
|
|
6
|
+
function compileSurfaceDsl(source) {
|
|
7
|
+
const declaration = require_dsl_shared.parseDeclaration(source, {
|
|
8
|
+
kind: "surface",
|
|
9
|
+
allowQuotedTitle: true,
|
|
10
|
+
expected: "Expected surface id \"Title\" {",
|
|
11
|
+
fieldKeywords: [
|
|
12
|
+
"title",
|
|
13
|
+
"kind",
|
|
14
|
+
"module",
|
|
15
|
+
"projector",
|
|
16
|
+
"definition-root",
|
|
17
|
+
"value-root",
|
|
18
|
+
"scope",
|
|
19
|
+
"order",
|
|
20
|
+
"metadata"
|
|
21
|
+
],
|
|
22
|
+
nestedFieldKeywords: ["metadata"],
|
|
23
|
+
wildcardNestedFieldKeywords: ["metadata"],
|
|
24
|
+
error: parseSharedError
|
|
25
|
+
});
|
|
26
|
+
if (!declaration.title) throw parseError(declaration.idToken.line, "Expected surface id \"Title\" {", declaration.idToken.column);
|
|
27
|
+
const surface = {
|
|
28
|
+
id: declaration.id,
|
|
29
|
+
title: declaration.title,
|
|
30
|
+
kind: "auto-surface"
|
|
31
|
+
};
|
|
32
|
+
for (const field of declaration.fields) {
|
|
33
|
+
if (field.name.value === "title") {
|
|
34
|
+
surface.title = parseStringField(field, "Expected title \"<text>\"");
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
if (field.name.value === "kind") {
|
|
38
|
+
surface.kind = parseIdentifierField(field, "kind");
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
if (field.name.value === "module") {
|
|
42
|
+
surface.module = parseIdentifierField(field, "module");
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
if (field.name.value === "projector") {
|
|
46
|
+
surface.projector = parseIdentifierField(field, "projector");
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
if (field.name.value === "definition-root") {
|
|
50
|
+
surface.definitionRoot = parseStringField(field, "Expected definition-root \"<path>\"");
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
if (field.name.value === "value-root") {
|
|
54
|
+
const layer = field.values[0];
|
|
55
|
+
const root = field.values[1];
|
|
56
|
+
if (field.values.length !== 2 || layer?.type !== "word" || ![
|
|
57
|
+
"system",
|
|
58
|
+
"package",
|
|
59
|
+
"instance",
|
|
60
|
+
"user"
|
|
61
|
+
].includes(layer.value) || root?.type !== "string") throw parseError(field.name.line, "Expected value-root system|package|instance|user \"<path>\"", field.name.column);
|
|
62
|
+
surface.valueRoots ??= {};
|
|
63
|
+
surface.valueRoots[layer.value] = require_dsl_shared.parseDslStringToken(root, parseSharedError);
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
if (field.name.value === "scope") {
|
|
67
|
+
surface.scope = parseIdentifierField(field, "scope");
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
if (field.name.value === "order") {
|
|
71
|
+
surface.order = parseNumberField(field, "order");
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
if (field.name.value === "metadata") applyMetadataField(surface, field);
|
|
75
|
+
}
|
|
76
|
+
return surface;
|
|
77
|
+
}
|
|
78
|
+
function formatSurfaceDsl(source) {
|
|
79
|
+
const surface = compileSurfaceDsl(source);
|
|
80
|
+
const lines = [`surface ${surface.id} ${quote(surface.title ?? surface.id)} {`];
|
|
81
|
+
lines.push(` kind ${surface.kind}`);
|
|
82
|
+
if (surface.module) lines.push(` module ${surface.module}`);
|
|
83
|
+
if (surface.projector) lines.push(` projector ${surface.projector}`);
|
|
84
|
+
if (surface.definitionRoot) lines.push(` definition-root ${quote(surface.definitionRoot)}`);
|
|
85
|
+
for (const layer of [
|
|
86
|
+
"system",
|
|
87
|
+
"package",
|
|
88
|
+
"instance",
|
|
89
|
+
"user"
|
|
90
|
+
]) {
|
|
91
|
+
const root = surface.valueRoots?.[layer];
|
|
92
|
+
if (root) lines.push(` value-root ${layer} ${quote(root)}`);
|
|
93
|
+
}
|
|
94
|
+
if (surface.scope) lines.push(` scope ${surface.scope}`);
|
|
95
|
+
if (surface.order !== void 0) lines.push(` order ${surface.order}`);
|
|
96
|
+
pushMetadataLines(lines, surface.metadata);
|
|
97
|
+
lines.push("}");
|
|
98
|
+
return `${lines.join("\n")}\n`;
|
|
99
|
+
}
|
|
100
|
+
function pushMetadataLines(lines, metadata) {
|
|
101
|
+
const entries = Object.entries(metadata ?? {});
|
|
102
|
+
if (entries.length === 0) return;
|
|
103
|
+
if (entries.length === 1) {
|
|
104
|
+
const [key, value] = entries[0];
|
|
105
|
+
lines.push(` metadata ${key} ${formatMetadataValue(value)}`);
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
lines.push(" metadata {");
|
|
109
|
+
for (const [key, value] of entries) lines.push(` ${key} ${formatMetadataValue(value)}`);
|
|
110
|
+
lines.push(" }");
|
|
111
|
+
}
|
|
112
|
+
function applyMetadataField(surface, field) {
|
|
113
|
+
surface.metadata ??= {};
|
|
114
|
+
if (field.children) {
|
|
115
|
+
if (field.values.length > 0) throw parseError(field.name.line, "Expected metadata { ... }", field.name.column);
|
|
116
|
+
for (const child of field.children) surface.metadata[child.name.value] = parseMetadataValue(joinDslValues(child.values), child.name.line);
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
const key = field.values[0];
|
|
120
|
+
if (key?.type !== "word" || field.values.length < 2) throw parseError(field.name.line, "Expected metadata <key> <value>", field.name.column);
|
|
121
|
+
surface.metadata[key.value] = parseMetadataValue(joinDslValues(field.values.slice(1)), field.name.line);
|
|
122
|
+
}
|
|
123
|
+
function parseMetadataValue(input, lineNumber) {
|
|
124
|
+
const string = input.match(/* @__PURE__ */ new RegExp(`^${STRING}$`));
|
|
125
|
+
if (string) return unescapeString(string[1] ?? "");
|
|
126
|
+
if (input === "true") return true;
|
|
127
|
+
if (input === "false") return false;
|
|
128
|
+
if (/^-?\d+(?:\.\d+)?$/.test(input)) return Number(input);
|
|
129
|
+
if (input.startsWith("[")) try {
|
|
130
|
+
return JSON.parse(input);
|
|
131
|
+
} catch (err) {
|
|
132
|
+
throw parseError(lineNumber, `Invalid metadata array: ${err instanceof Error ? err.message : String(err)}`);
|
|
133
|
+
}
|
|
134
|
+
throw parseError(lineNumber, `Unsupported metadata value: ${input}`);
|
|
135
|
+
}
|
|
136
|
+
function parseSharedError(message, line, column = 1) {
|
|
137
|
+
return parseError(line, message, column);
|
|
138
|
+
}
|
|
139
|
+
function parseIdentifierField(field, name) {
|
|
140
|
+
const value = field.values[0];
|
|
141
|
+
if (field.values.length !== 1 || value?.type !== "word" || !/^[A-Za-z0-9_-]+$/.test(value.value)) throw parseError(value?.line ?? field.name.line, `Expected ${name} <identifier>`, value?.column ?? field.name.column);
|
|
142
|
+
return value.value;
|
|
143
|
+
}
|
|
144
|
+
function parseNumberField(field, name) {
|
|
145
|
+
const value = field.values[0];
|
|
146
|
+
if (field.values.length !== 1 || value?.type !== "word" || !/^\d+$/.test(value.value)) throw parseError(value?.line ?? field.name.line, `Expected ${name} <number>`, value?.column ?? field.name.column);
|
|
147
|
+
return Number(value.value);
|
|
148
|
+
}
|
|
149
|
+
function parseStringField(field, message) {
|
|
150
|
+
const value = field.values[0];
|
|
151
|
+
if (field.values.length !== 1 || value?.type !== "string") throw parseError(value?.line ?? field.name.line, message, value?.column ?? field.name.column);
|
|
152
|
+
return require_dsl_shared.parseDslStringToken(value, parseSharedError);
|
|
153
|
+
}
|
|
154
|
+
function joinDslValues(tokens) {
|
|
155
|
+
return tokens.map((token) => token.value).join(" ");
|
|
156
|
+
}
|
|
157
|
+
function formatMetadataValue(value) {
|
|
158
|
+
if (typeof value === "string") return quote(value);
|
|
159
|
+
if (typeof value === "boolean" || typeof value === "number") return String(value);
|
|
160
|
+
return formatInlineJson(value);
|
|
161
|
+
}
|
|
162
|
+
function unescapeString(value) {
|
|
163
|
+
return value.replace(/\\"/g, "\"").replace(/\\\\/g, "\\");
|
|
164
|
+
}
|
|
165
|
+
function quote(value) {
|
|
166
|
+
return JSON.stringify(value);
|
|
167
|
+
}
|
|
168
|
+
function isRecord(value) {
|
|
169
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
170
|
+
}
|
|
171
|
+
function formatInlineJson(value) {
|
|
172
|
+
if (Array.isArray(value)) return `[${value.map(formatInlineJson).join(", ")}]`;
|
|
173
|
+
if (isRecord(value)) return `{${Object.entries(value).map(([key, entry]) => `${quote(key)}: ${formatInlineJson(entry)}`).join(", ")}}`;
|
|
174
|
+
return JSON.stringify(value);
|
|
175
|
+
}
|
|
176
|
+
function parseError(line, message, column = 1) {
|
|
177
|
+
return require_dsl_error.scaffoldDslParseError("surface", line, message, column);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
//#endregion
|
|
181
|
+
exports.compileSurfaceDsl = compileSurfaceDsl;
|
|
182
|
+
exports.formatSurfaceDsl = formatSurfaceDsl;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ScaffoldSurfaceDefinition } from "./types.cjs";
|
|
2
|
+
|
|
3
|
+
//#region src/scaffold/surface-dsl.d.ts
|
|
4
|
+
declare function compileSurfaceDsl(source: string): ScaffoldSurfaceDefinition;
|
|
5
|
+
declare function formatSurfaceDsl(source: string): string;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { compileSurfaceDsl, formatSurfaceDsl };
|
|
8
|
+
//# sourceMappingURL=surface-dsl.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"surface-dsl.d.cts","names":[],"sources":["../../src/scaffold/surface-dsl.ts"],"mappings":";;;iBAYgB,iBAAA,CAAkB,MAAA,WAAiB,yBAAA;AAAA,iBAiGnC,gBAAA,CAAiB,MAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ScaffoldSurfaceDefinition } from "./types.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/scaffold/surface-dsl.d.ts
|
|
4
|
+
declare function compileSurfaceDsl(source: string): ScaffoldSurfaceDefinition;
|
|
5
|
+
declare function formatSurfaceDsl(source: string): string;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { compileSurfaceDsl, formatSurfaceDsl };
|
|
8
|
+
//# sourceMappingURL=surface-dsl.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"surface-dsl.d.mts","names":[],"sources":["../../src/scaffold/surface-dsl.ts"],"mappings":";;;iBAYgB,iBAAA,CAAkB,MAAA,WAAiB,yBAAA;AAAA,iBAiGnC,gBAAA,CAAiB,MAAA"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import { parseDeclaration, parseDslStringToken } from "../dsl-shared.mjs";
|
|
2
|
+
import { scaffoldDslParseError } from "./dsl-error.mjs";
|
|
3
|
+
|
|
4
|
+
//#region src/scaffold/surface-dsl.ts
|
|
5
|
+
const STRING = "\"((?:[^\"\\\\]|\\\\.)*)\"";
|
|
6
|
+
function compileSurfaceDsl(source) {
|
|
7
|
+
const declaration = parseDeclaration(source, {
|
|
8
|
+
kind: "surface",
|
|
9
|
+
allowQuotedTitle: true,
|
|
10
|
+
expected: "Expected surface id \"Title\" {",
|
|
11
|
+
fieldKeywords: [
|
|
12
|
+
"title",
|
|
13
|
+
"kind",
|
|
14
|
+
"module",
|
|
15
|
+
"projector",
|
|
16
|
+
"definition-root",
|
|
17
|
+
"value-root",
|
|
18
|
+
"scope",
|
|
19
|
+
"order",
|
|
20
|
+
"metadata"
|
|
21
|
+
],
|
|
22
|
+
nestedFieldKeywords: ["metadata"],
|
|
23
|
+
wildcardNestedFieldKeywords: ["metadata"],
|
|
24
|
+
error: parseSharedError
|
|
25
|
+
});
|
|
26
|
+
if (!declaration.title) throw parseError(declaration.idToken.line, "Expected surface id \"Title\" {", declaration.idToken.column);
|
|
27
|
+
const surface = {
|
|
28
|
+
id: declaration.id,
|
|
29
|
+
title: declaration.title,
|
|
30
|
+
kind: "auto-surface"
|
|
31
|
+
};
|
|
32
|
+
for (const field of declaration.fields) {
|
|
33
|
+
if (field.name.value === "title") {
|
|
34
|
+
surface.title = parseStringField(field, "Expected title \"<text>\"");
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
if (field.name.value === "kind") {
|
|
38
|
+
surface.kind = parseIdentifierField(field, "kind");
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
if (field.name.value === "module") {
|
|
42
|
+
surface.module = parseIdentifierField(field, "module");
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
if (field.name.value === "projector") {
|
|
46
|
+
surface.projector = parseIdentifierField(field, "projector");
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
if (field.name.value === "definition-root") {
|
|
50
|
+
surface.definitionRoot = parseStringField(field, "Expected definition-root \"<path>\"");
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
if (field.name.value === "value-root") {
|
|
54
|
+
const layer = field.values[0];
|
|
55
|
+
const root = field.values[1];
|
|
56
|
+
if (field.values.length !== 2 || layer?.type !== "word" || ![
|
|
57
|
+
"system",
|
|
58
|
+
"package",
|
|
59
|
+
"instance",
|
|
60
|
+
"user"
|
|
61
|
+
].includes(layer.value) || root?.type !== "string") throw parseError(field.name.line, "Expected value-root system|package|instance|user \"<path>\"", field.name.column);
|
|
62
|
+
surface.valueRoots ??= {};
|
|
63
|
+
surface.valueRoots[layer.value] = parseDslStringToken(root, parseSharedError);
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
if (field.name.value === "scope") {
|
|
67
|
+
surface.scope = parseIdentifierField(field, "scope");
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
if (field.name.value === "order") {
|
|
71
|
+
surface.order = parseNumberField(field, "order");
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
if (field.name.value === "metadata") applyMetadataField(surface, field);
|
|
75
|
+
}
|
|
76
|
+
return surface;
|
|
77
|
+
}
|
|
78
|
+
function formatSurfaceDsl(source) {
|
|
79
|
+
const surface = compileSurfaceDsl(source);
|
|
80
|
+
const lines = [`surface ${surface.id} ${quote(surface.title ?? surface.id)} {`];
|
|
81
|
+
lines.push(` kind ${surface.kind}`);
|
|
82
|
+
if (surface.module) lines.push(` module ${surface.module}`);
|
|
83
|
+
if (surface.projector) lines.push(` projector ${surface.projector}`);
|
|
84
|
+
if (surface.definitionRoot) lines.push(` definition-root ${quote(surface.definitionRoot)}`);
|
|
85
|
+
for (const layer of [
|
|
86
|
+
"system",
|
|
87
|
+
"package",
|
|
88
|
+
"instance",
|
|
89
|
+
"user"
|
|
90
|
+
]) {
|
|
91
|
+
const root = surface.valueRoots?.[layer];
|
|
92
|
+
if (root) lines.push(` value-root ${layer} ${quote(root)}`);
|
|
93
|
+
}
|
|
94
|
+
if (surface.scope) lines.push(` scope ${surface.scope}`);
|
|
95
|
+
if (surface.order !== void 0) lines.push(` order ${surface.order}`);
|
|
96
|
+
pushMetadataLines(lines, surface.metadata);
|
|
97
|
+
lines.push("}");
|
|
98
|
+
return `${lines.join("\n")}\n`;
|
|
99
|
+
}
|
|
100
|
+
function pushMetadataLines(lines, metadata) {
|
|
101
|
+
const entries = Object.entries(metadata ?? {});
|
|
102
|
+
if (entries.length === 0) return;
|
|
103
|
+
if (entries.length === 1) {
|
|
104
|
+
const [key, value] = entries[0];
|
|
105
|
+
lines.push(` metadata ${key} ${formatMetadataValue(value)}`);
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
lines.push(" metadata {");
|
|
109
|
+
for (const [key, value] of entries) lines.push(` ${key} ${formatMetadataValue(value)}`);
|
|
110
|
+
lines.push(" }");
|
|
111
|
+
}
|
|
112
|
+
function applyMetadataField(surface, field) {
|
|
113
|
+
surface.metadata ??= {};
|
|
114
|
+
if (field.children) {
|
|
115
|
+
if (field.values.length > 0) throw parseError(field.name.line, "Expected metadata { ... }", field.name.column);
|
|
116
|
+
for (const child of field.children) surface.metadata[child.name.value] = parseMetadataValue(joinDslValues(child.values), child.name.line);
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
const key = field.values[0];
|
|
120
|
+
if (key?.type !== "word" || field.values.length < 2) throw parseError(field.name.line, "Expected metadata <key> <value>", field.name.column);
|
|
121
|
+
surface.metadata[key.value] = parseMetadataValue(joinDslValues(field.values.slice(1)), field.name.line);
|
|
122
|
+
}
|
|
123
|
+
function parseMetadataValue(input, lineNumber) {
|
|
124
|
+
const string = input.match(/* @__PURE__ */ new RegExp(`^${STRING}$`));
|
|
125
|
+
if (string) return unescapeString(string[1] ?? "");
|
|
126
|
+
if (input === "true") return true;
|
|
127
|
+
if (input === "false") return false;
|
|
128
|
+
if (/^-?\d+(?:\.\d+)?$/.test(input)) return Number(input);
|
|
129
|
+
if (input.startsWith("[")) try {
|
|
130
|
+
return JSON.parse(input);
|
|
131
|
+
} catch (err) {
|
|
132
|
+
throw parseError(lineNumber, `Invalid metadata array: ${err instanceof Error ? err.message : String(err)}`);
|
|
133
|
+
}
|
|
134
|
+
throw parseError(lineNumber, `Unsupported metadata value: ${input}`);
|
|
135
|
+
}
|
|
136
|
+
function parseSharedError(message, line, column = 1) {
|
|
137
|
+
return parseError(line, message, column);
|
|
138
|
+
}
|
|
139
|
+
function parseIdentifierField(field, name) {
|
|
140
|
+
const value = field.values[0];
|
|
141
|
+
if (field.values.length !== 1 || value?.type !== "word" || !/^[A-Za-z0-9_-]+$/.test(value.value)) throw parseError(value?.line ?? field.name.line, `Expected ${name} <identifier>`, value?.column ?? field.name.column);
|
|
142
|
+
return value.value;
|
|
143
|
+
}
|
|
144
|
+
function parseNumberField(field, name) {
|
|
145
|
+
const value = field.values[0];
|
|
146
|
+
if (field.values.length !== 1 || value?.type !== "word" || !/^\d+$/.test(value.value)) throw parseError(value?.line ?? field.name.line, `Expected ${name} <number>`, value?.column ?? field.name.column);
|
|
147
|
+
return Number(value.value);
|
|
148
|
+
}
|
|
149
|
+
function parseStringField(field, message) {
|
|
150
|
+
const value = field.values[0];
|
|
151
|
+
if (field.values.length !== 1 || value?.type !== "string") throw parseError(value?.line ?? field.name.line, message, value?.column ?? field.name.column);
|
|
152
|
+
return parseDslStringToken(value, parseSharedError);
|
|
153
|
+
}
|
|
154
|
+
function joinDslValues(tokens) {
|
|
155
|
+
return tokens.map((token) => token.value).join(" ");
|
|
156
|
+
}
|
|
157
|
+
function formatMetadataValue(value) {
|
|
158
|
+
if (typeof value === "string") return quote(value);
|
|
159
|
+
if (typeof value === "boolean" || typeof value === "number") return String(value);
|
|
160
|
+
return formatInlineJson(value);
|
|
161
|
+
}
|
|
162
|
+
function unescapeString(value) {
|
|
163
|
+
return value.replace(/\\"/g, "\"").replace(/\\\\/g, "\\");
|
|
164
|
+
}
|
|
165
|
+
function quote(value) {
|
|
166
|
+
return JSON.stringify(value);
|
|
167
|
+
}
|
|
168
|
+
function isRecord(value) {
|
|
169
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
170
|
+
}
|
|
171
|
+
function formatInlineJson(value) {
|
|
172
|
+
if (Array.isArray(value)) return `[${value.map(formatInlineJson).join(", ")}]`;
|
|
173
|
+
if (isRecord(value)) return `{${Object.entries(value).map(([key, entry]) => `${quote(key)}: ${formatInlineJson(entry)}`).join(", ")}}`;
|
|
174
|
+
return JSON.stringify(value);
|
|
175
|
+
}
|
|
176
|
+
function parseError(line, message, column = 1) {
|
|
177
|
+
return scaffoldDslParseError("surface", line, message, column);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
//#endregion
|
|
181
|
+
export { compileSurfaceDsl, formatSurfaceDsl };
|
|
182
|
+
//# sourceMappingURL=surface-dsl.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"surface-dsl.mjs","names":[],"sources":["../../src/scaffold/surface-dsl.ts"],"sourcesContent":["import type { AutoSurfaceLayer } from \"../auto-surface/index.js\";\nimport {\n type DslField,\n type DslToken,\n parseDeclaration,\n parseDslStringToken,\n} from \"../dsl-shared.js\";\nimport { scaffoldDslParseError } from \"./dsl-error.js\";\nimport type { ScaffoldSurfaceDefinition } from \"./types.js\";\n\nconst STRING = '\"((?:[^\"\\\\\\\\]|\\\\\\\\.)*)\"';\n\nexport function compileSurfaceDsl(source: string): ScaffoldSurfaceDefinition {\n const declaration = parseDeclaration(source, {\n kind: \"surface\",\n allowQuotedTitle: true,\n expected: 'Expected surface id \"Title\" {',\n fieldKeywords: [\n \"title\",\n \"kind\",\n \"module\",\n \"projector\",\n \"definition-root\",\n \"value-root\",\n \"scope\",\n \"order\",\n \"metadata\",\n ],\n nestedFieldKeywords: [\"metadata\"],\n wildcardNestedFieldKeywords: [\"metadata\"],\n error: parseSharedError,\n });\n\n if (!declaration.title) {\n throw parseError(\n declaration.idToken.line,\n 'Expected surface id \"Title\" {',\n declaration.idToken.column,\n );\n }\n\n const surface: ScaffoldSurfaceDefinition = {\n id: declaration.id,\n title: declaration.title,\n kind: \"auto-surface\",\n };\n\n for (const field of declaration.fields) {\n if (field.name.value === \"title\") {\n surface.title = parseStringField(field, 'Expected title \"<text>\"');\n continue;\n }\n if (field.name.value === \"kind\") {\n surface.kind = parseIdentifierField(field, \"kind\");\n continue;\n }\n if (field.name.value === \"module\") {\n surface.module = parseIdentifierField(field, \"module\");\n continue;\n }\n if (field.name.value === \"projector\") {\n surface.projector = parseIdentifierField(\n field,\n \"projector\",\n ) as ScaffoldSurfaceDefinition[\"projector\"];\n continue;\n }\n if (field.name.value === \"definition-root\") {\n surface.definitionRoot = parseStringField(field, 'Expected definition-root \"<path>\"');\n continue;\n }\n if (field.name.value === \"value-root\") {\n const layer = field.values[0];\n const root = field.values[1];\n if (\n field.values.length !== 2 ||\n layer?.type !== \"word\" ||\n ![\"system\", \"package\", \"instance\", \"user\"].includes(layer.value) ||\n root?.type !== \"string\"\n ) {\n throw parseError(\n field.name.line,\n 'Expected value-root system|package|instance|user \"<path>\"',\n field.name.column,\n );\n }\n surface.valueRoots ??= {};\n surface.valueRoots[layer.value as AutoSurfaceLayer] = parseDslStringToken(\n root,\n parseSharedError,\n );\n continue;\n }\n if (field.name.value === \"scope\") {\n surface.scope = parseIdentifierField(field, \"scope\") as ScaffoldSurfaceDefinition[\"scope\"];\n continue;\n }\n if (field.name.value === \"order\") {\n surface.order = parseNumberField(field, \"order\");\n continue;\n }\n if (field.name.value === \"metadata\") {\n applyMetadataField(surface, field);\n }\n }\n\n return surface;\n}\n\nexport function formatSurfaceDsl(source: string): string {\n const surface = compileSurfaceDsl(source);\n const lines = [`surface ${surface.id} ${quote(surface.title ?? surface.id)} {`];\n lines.push(` kind ${surface.kind}`);\n if (surface.module) lines.push(` module ${surface.module}`);\n if (surface.projector) lines.push(` projector ${surface.projector}`);\n if (surface.definitionRoot) lines.push(` definition-root ${quote(surface.definitionRoot)}`);\n for (const layer of [\"system\", \"package\", \"instance\", \"user\"] as const) {\n const root = surface.valueRoots?.[layer];\n if (root) lines.push(` value-root ${layer} ${quote(root)}`);\n }\n if (surface.scope) lines.push(` scope ${surface.scope}`);\n if (surface.order !== undefined) lines.push(` order ${surface.order}`);\n pushMetadataLines(lines, surface.metadata);\n lines.push(\"}\");\n return `${lines.join(\"\\n\")}\\n`;\n}\n\nfunction pushMetadataLines(lines: string[], metadata: Record<string, unknown> | undefined): void {\n const entries = Object.entries(metadata ?? {});\n if (entries.length === 0) return;\n if (entries.length === 1) {\n const [key, value] = entries[0]!;\n lines.push(` metadata ${key} ${formatMetadataValue(value)}`);\n return;\n }\n lines.push(\" metadata {\");\n for (const [key, value] of entries) {\n lines.push(` ${key} ${formatMetadataValue(value)}`);\n }\n lines.push(\" }\");\n}\n\nfunction applyMetadataField(surface: ScaffoldSurfaceDefinition, field: DslField): void {\n surface.metadata ??= {};\n if (field.children) {\n if (field.values.length > 0) {\n throw parseError(field.name.line, \"Expected metadata { ... }\", field.name.column);\n }\n for (const child of field.children) {\n surface.metadata[child.name.value] = parseMetadataValue(\n joinDslValues(child.values),\n child.name.line,\n );\n }\n return;\n }\n\n const key = field.values[0];\n if (key?.type !== \"word\" || field.values.length < 2) {\n throw parseError(field.name.line, \"Expected metadata <key> <value>\", field.name.column);\n }\n surface.metadata[key.value] = parseMetadataValue(\n joinDslValues(field.values.slice(1)),\n field.name.line,\n );\n}\n\nfunction parseMetadataValue(input: string, lineNumber: number): unknown {\n const string = input.match(new RegExp(`^${STRING}$`));\n if (string) return unescapeString(string[1] ?? \"\");\n if (input === \"true\") return true;\n if (input === \"false\") return false;\n if (/^-?\\d+(?:\\.\\d+)?$/.test(input)) return Number(input);\n if (input.startsWith(\"[\")) {\n try {\n return JSON.parse(input);\n } catch (err) {\n throw parseError(\n lineNumber,\n `Invalid metadata array: ${err instanceof Error ? err.message : String(err)}`,\n );\n }\n }\n throw parseError(lineNumber, `Unsupported metadata value: ${input}`);\n}\n\nfunction parseSharedError(message: string, line: number, column = 1): Error {\n return parseError(line, message, column);\n}\n\nfunction parseIdentifierField(field: DslField, name: string): string {\n const value = field.values[0];\n if (\n field.values.length !== 1 ||\n value?.type !== \"word\" ||\n !/^[A-Za-z0-9_-]+$/.test(value.value)\n ) {\n throw parseError(\n value?.line ?? field.name.line,\n `Expected ${name} <identifier>`,\n value?.column ?? field.name.column,\n );\n }\n return value.value;\n}\n\nfunction parseNumberField(field: DslField, name: string): number {\n const value = field.values[0];\n if (field.values.length !== 1 || value?.type !== \"word\" || !/^\\d+$/.test(value.value)) {\n throw parseError(\n value?.line ?? field.name.line,\n `Expected ${name} <number>`,\n value?.column ?? field.name.column,\n );\n }\n return Number(value.value);\n}\n\nfunction parseStringField(field: DslField, message: string): string {\n const value = field.values[0];\n if (field.values.length !== 1 || value?.type !== \"string\") {\n throw parseError(value?.line ?? field.name.line, message, value?.column ?? field.name.column);\n }\n return parseDslStringToken(value, parseSharedError);\n}\n\nfunction joinDslValues(tokens: DslToken[]): string {\n return tokens.map((token) => token.value).join(\" \");\n}\n\nfunction formatMetadataValue(value: unknown): string {\n if (typeof value === \"string\") return quote(value);\n if (typeof value === \"boolean\" || typeof value === \"number\") return String(value);\n return formatInlineJson(value);\n}\n\nfunction unescapeString(value: string): string {\n return value.replace(/\\\\\"/g, '\"').replace(/\\\\\\\\/g, \"\\\\\");\n}\n\nfunction quote(value: string): string {\n return JSON.stringify(value);\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction formatInlineJson(value: unknown): string {\n if (Array.isArray(value)) return `[${value.map(formatInlineJson).join(\", \")}]`;\n if (isRecord(value)) {\n return `{${Object.entries(value)\n .map(([key, entry]) => `${quote(key)}: ${formatInlineJson(entry)}`)\n .join(\", \")}}`;\n }\n return JSON.stringify(value);\n}\n\nfunction parseError(line: number, message: string, column = 1): Error {\n return scaffoldDslParseError(\"surface\", line, message, column);\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
const require_fragments = require('../auto-surface/fragments.cjs');
|
|
2
|
+
const require_projection = require('../auto-surface/projection.cjs');
|
|
3
|
+
const require_scenario = require('../auto-surface/scenario.cjs');
|
|
4
|
+
|
|
5
|
+
//#region src/scaffold/surfaces.ts
|
|
6
|
+
async function resolveScaffoldSurfaces(scaffold, options) {
|
|
7
|
+
const diagnostics = [];
|
|
8
|
+
const surfaces = {};
|
|
9
|
+
for (const definition of scaffold.definition.surfaces) {
|
|
10
|
+
if (definition.kind !== "auto-surface") {
|
|
11
|
+
diagnostics.push({
|
|
12
|
+
code: "unsupported_surface_kind",
|
|
13
|
+
severity: "warning",
|
|
14
|
+
surfaceId: definition.id,
|
|
15
|
+
message: `Surface "${definition.id}" uses unsupported kind "${definition.kind}"`
|
|
16
|
+
});
|
|
17
|
+
continue;
|
|
18
|
+
}
|
|
19
|
+
try {
|
|
20
|
+
const resolved = await resolveAutoSurfaceScaffoldSurface(definition, options);
|
|
21
|
+
surfaces[definition.id] = resolved;
|
|
22
|
+
} catch (error) {
|
|
23
|
+
diagnostics.push({
|
|
24
|
+
code: "surface_resolve_error",
|
|
25
|
+
severity: "error",
|
|
26
|
+
surfaceId: definition.id,
|
|
27
|
+
message: error instanceof Error ? error.message : String(error)
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
surfaces,
|
|
33
|
+
diagnostics
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
async function resolveScaffoldSurface(scaffold, surfaceId, options) {
|
|
37
|
+
const surface = scaffold.surfacesById[surfaceId];
|
|
38
|
+
if (!surface) return void 0;
|
|
39
|
+
if (surface.kind !== "auto-surface") return void 0;
|
|
40
|
+
return resolveAutoSurfaceScaffoldSurface(surface, options);
|
|
41
|
+
}
|
|
42
|
+
async function resolveAutoSurfaceScaffoldSurface(surface, options) {
|
|
43
|
+
const scenario = await buildAutoSurfaceScenario(surface, options);
|
|
44
|
+
return {
|
|
45
|
+
kind: "auto-surface",
|
|
46
|
+
definition: surface,
|
|
47
|
+
scenario,
|
|
48
|
+
projection: require_projection.projectAutoSurface(scenario.resolved, {
|
|
49
|
+
projector: surface.projector ?? options.autoSurface?.defaultProjector ?? "settings-shell",
|
|
50
|
+
scope: surface.scope ?? options.autoSurface?.defaultScope
|
|
51
|
+
})
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
async function buildAutoSurfaceScenario(surface, options) {
|
|
55
|
+
const definitions = [];
|
|
56
|
+
if (options.autoSurface?.systemDefinitionRoot) definitions.push({
|
|
57
|
+
source: options.autoSurface.systemDefinitionSource ?? "arc://system",
|
|
58
|
+
owner: "system",
|
|
59
|
+
reader: options.afs,
|
|
60
|
+
root: options.autoSurface.systemDefinitionRoot
|
|
61
|
+
});
|
|
62
|
+
definitions.push({
|
|
63
|
+
source: options.autoSurface?.packageDefinitionSource ?? "blocklet://package",
|
|
64
|
+
owner: "package",
|
|
65
|
+
reader: options.afs,
|
|
66
|
+
root: surface.definitionRoot ?? options.autoSurface?.packageDefinitionRoot ?? require_fragments.DEFAULT_AUTO_SURFACE_DEFINITIONS_ROOT
|
|
67
|
+
});
|
|
68
|
+
const valueRoots = {
|
|
69
|
+
...options.autoSurface?.valueRoots ?? {},
|
|
70
|
+
...surface.valueRoots ?? {}
|
|
71
|
+
};
|
|
72
|
+
return require_scenario.resolveAutoSurfaceScenario({
|
|
73
|
+
definitions,
|
|
74
|
+
values: Object.entries(valueRoots).filter(([, root]) => typeof root === "string" && root.length > 0).map(([layer, root]) => ({
|
|
75
|
+
layer,
|
|
76
|
+
reader: options.afs,
|
|
77
|
+
root
|
|
78
|
+
}))
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
//#endregion
|
|
83
|
+
exports.resolveScaffoldSurface = resolveScaffoldSurface;
|
|
84
|
+
exports.resolveScaffoldSurfaces = resolveScaffoldSurfaces;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { AutoSurfaceLayer, AutoSurfaceProjectorName } from "../auto-surface/types.cjs";
|
|
2
|
+
import { ResolvedScaffoldDefinition, ResolvedScaffoldSurface, ResolvedScaffoldSurfaces } from "./types.cjs";
|
|
3
|
+
import { ScaffoldAfsReader } from "./afs.cjs";
|
|
4
|
+
|
|
5
|
+
//#region src/scaffold/surfaces.d.ts
|
|
6
|
+
interface ResolveScaffoldAutoSurfaceOptions {
|
|
7
|
+
systemDefinitionRoot?: string;
|
|
8
|
+
systemDefinitionSource?: string;
|
|
9
|
+
packageDefinitionRoot?: string;
|
|
10
|
+
packageDefinitionSource?: string;
|
|
11
|
+
valueRoots?: Partial<Record<AutoSurfaceLayer, string>>;
|
|
12
|
+
defaultProjector?: AutoSurfaceProjectorName;
|
|
13
|
+
defaultScope?: AutoSurfaceLayer | "all";
|
|
14
|
+
}
|
|
15
|
+
interface ResolveScaffoldSurfacesOptions {
|
|
16
|
+
afs: ScaffoldAfsReader;
|
|
17
|
+
autoSurface?: ResolveScaffoldAutoSurfaceOptions;
|
|
18
|
+
}
|
|
19
|
+
declare function resolveScaffoldSurfaces(scaffold: ResolvedScaffoldDefinition, options: ResolveScaffoldSurfacesOptions): Promise<ResolvedScaffoldSurfaces>;
|
|
20
|
+
declare function resolveScaffoldSurface(scaffold: ResolvedScaffoldDefinition, surfaceId: string, options: ResolveScaffoldSurfacesOptions): Promise<ResolvedScaffoldSurface | undefined>;
|
|
21
|
+
//#endregion
|
|
22
|
+
export { ResolveScaffoldAutoSurfaceOptions, ResolveScaffoldSurfacesOptions, resolveScaffoldSurface, resolveScaffoldSurfaces };
|
|
23
|
+
//# sourceMappingURL=surfaces.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"surfaces.d.cts","names":[],"sources":["../../src/scaffold/surfaces.ts"],"mappings":";;;;;UAkBiB,iCAAA;EACf,oBAAA;EACA,sBAAA;EACA,qBAAA;EACA,uBAAA;EACA,UAAA,GAAa,OAAA,CAAQ,MAAA,CAAO,gBAAA;EAC5B,gBAAA,GAAmB,wBAAA;EACnB,YAAA,GAAe,gBAAA;AAAA;AAAA,UAGA,8BAAA;EACf,GAAA,EAAK,iBAAA;EACL,WAAA,GAAc,iCAAA;AAAA;AAAA,iBAGM,uBAAA,CACpB,QAAA,EAAU,0BAAA,EACV,OAAA,EAAS,8BAAA,GACR,OAAA,CAAQ,wBAAA;AAAA,iBA+BW,sBAAA,CACpB,QAAA,EAAU,0BAAA,EACV,SAAA,UACA,OAAA,EAAS,8BAAA,GACR,OAAA,CAAQ,uBAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { AutoSurfaceLayer, AutoSurfaceProjectorName } from "../auto-surface/types.mjs";
|
|
2
|
+
import "../auto-surface/index.mjs";
|
|
3
|
+
import { ResolvedScaffoldDefinition, ResolvedScaffoldSurface, ResolvedScaffoldSurfaces } from "./types.mjs";
|
|
4
|
+
import { ScaffoldAfsReader } from "./afs.mjs";
|
|
5
|
+
|
|
6
|
+
//#region src/scaffold/surfaces.d.ts
|
|
7
|
+
interface ResolveScaffoldAutoSurfaceOptions {
|
|
8
|
+
systemDefinitionRoot?: string;
|
|
9
|
+
systemDefinitionSource?: string;
|
|
10
|
+
packageDefinitionRoot?: string;
|
|
11
|
+
packageDefinitionSource?: string;
|
|
12
|
+
valueRoots?: Partial<Record<AutoSurfaceLayer, string>>;
|
|
13
|
+
defaultProjector?: AutoSurfaceProjectorName;
|
|
14
|
+
defaultScope?: AutoSurfaceLayer | "all";
|
|
15
|
+
}
|
|
16
|
+
interface ResolveScaffoldSurfacesOptions {
|
|
17
|
+
afs: ScaffoldAfsReader;
|
|
18
|
+
autoSurface?: ResolveScaffoldAutoSurfaceOptions;
|
|
19
|
+
}
|
|
20
|
+
declare function resolveScaffoldSurfaces(scaffold: ResolvedScaffoldDefinition, options: ResolveScaffoldSurfacesOptions): Promise<ResolvedScaffoldSurfaces>;
|
|
21
|
+
declare function resolveScaffoldSurface(scaffold: ResolvedScaffoldDefinition, surfaceId: string, options: ResolveScaffoldSurfacesOptions): Promise<ResolvedScaffoldSurface | undefined>;
|
|
22
|
+
//#endregion
|
|
23
|
+
export { ResolveScaffoldAutoSurfaceOptions, ResolveScaffoldSurfacesOptions, resolveScaffoldSurface, resolveScaffoldSurfaces };
|
|
24
|
+
//# sourceMappingURL=surfaces.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"surfaces.d.mts","names":[],"sources":["../../src/scaffold/surfaces.ts"],"mappings":";;;;;;UAkBiB,iCAAA;EACf,oBAAA;EACA,sBAAA;EACA,qBAAA;EACA,uBAAA;EACA,UAAA,GAAa,OAAA,CAAQ,MAAA,CAAO,gBAAA;EAC5B,gBAAA,GAAmB,wBAAA;EACnB,YAAA,GAAe,gBAAA;AAAA;AAAA,UAGA,8BAAA;EACf,GAAA,EAAK,iBAAA;EACL,WAAA,GAAc,iCAAA;AAAA;AAAA,iBAGM,uBAAA,CACpB,QAAA,EAAU,0BAAA,EACV,OAAA,EAAS,8BAAA,GACR,OAAA,CAAQ,wBAAA;AAAA,iBA+BW,sBAAA,CACpB,QAAA,EAAU,0BAAA,EACV,SAAA,UACA,OAAA,EAAS,8BAAA,GACR,OAAA,CAAQ,uBAAA"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { DEFAULT_AUTO_SURFACE_DEFINITIONS_ROOT } from "../auto-surface/fragments.mjs";
|
|
2
|
+
import { projectAutoSurface } from "../auto-surface/projection.mjs";
|
|
3
|
+
import { resolveAutoSurfaceScenario } from "../auto-surface/scenario.mjs";
|
|
4
|
+
|
|
5
|
+
//#region src/scaffold/surfaces.ts
|
|
6
|
+
async function resolveScaffoldSurfaces(scaffold, options) {
|
|
7
|
+
const diagnostics = [];
|
|
8
|
+
const surfaces = {};
|
|
9
|
+
for (const definition of scaffold.definition.surfaces) {
|
|
10
|
+
if (definition.kind !== "auto-surface") {
|
|
11
|
+
diagnostics.push({
|
|
12
|
+
code: "unsupported_surface_kind",
|
|
13
|
+
severity: "warning",
|
|
14
|
+
surfaceId: definition.id,
|
|
15
|
+
message: `Surface "${definition.id}" uses unsupported kind "${definition.kind}"`
|
|
16
|
+
});
|
|
17
|
+
continue;
|
|
18
|
+
}
|
|
19
|
+
try {
|
|
20
|
+
const resolved = await resolveAutoSurfaceScaffoldSurface(definition, options);
|
|
21
|
+
surfaces[definition.id] = resolved;
|
|
22
|
+
} catch (error) {
|
|
23
|
+
diagnostics.push({
|
|
24
|
+
code: "surface_resolve_error",
|
|
25
|
+
severity: "error",
|
|
26
|
+
surfaceId: definition.id,
|
|
27
|
+
message: error instanceof Error ? error.message : String(error)
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
surfaces,
|
|
33
|
+
diagnostics
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
async function resolveScaffoldSurface(scaffold, surfaceId, options) {
|
|
37
|
+
const surface = scaffold.surfacesById[surfaceId];
|
|
38
|
+
if (!surface) return void 0;
|
|
39
|
+
if (surface.kind !== "auto-surface") return void 0;
|
|
40
|
+
return resolveAutoSurfaceScaffoldSurface(surface, options);
|
|
41
|
+
}
|
|
42
|
+
async function resolveAutoSurfaceScaffoldSurface(surface, options) {
|
|
43
|
+
const scenario = await buildAutoSurfaceScenario(surface, options);
|
|
44
|
+
return {
|
|
45
|
+
kind: "auto-surface",
|
|
46
|
+
definition: surface,
|
|
47
|
+
scenario,
|
|
48
|
+
projection: projectAutoSurface(scenario.resolved, {
|
|
49
|
+
projector: surface.projector ?? options.autoSurface?.defaultProjector ?? "settings-shell",
|
|
50
|
+
scope: surface.scope ?? options.autoSurface?.defaultScope
|
|
51
|
+
})
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
async function buildAutoSurfaceScenario(surface, options) {
|
|
55
|
+
const definitions = [];
|
|
56
|
+
if (options.autoSurface?.systemDefinitionRoot) definitions.push({
|
|
57
|
+
source: options.autoSurface.systemDefinitionSource ?? "arc://system",
|
|
58
|
+
owner: "system",
|
|
59
|
+
reader: options.afs,
|
|
60
|
+
root: options.autoSurface.systemDefinitionRoot
|
|
61
|
+
});
|
|
62
|
+
definitions.push({
|
|
63
|
+
source: options.autoSurface?.packageDefinitionSource ?? "blocklet://package",
|
|
64
|
+
owner: "package",
|
|
65
|
+
reader: options.afs,
|
|
66
|
+
root: surface.definitionRoot ?? options.autoSurface?.packageDefinitionRoot ?? DEFAULT_AUTO_SURFACE_DEFINITIONS_ROOT
|
|
67
|
+
});
|
|
68
|
+
const valueRoots = {
|
|
69
|
+
...options.autoSurface?.valueRoots ?? {},
|
|
70
|
+
...surface.valueRoots ?? {}
|
|
71
|
+
};
|
|
72
|
+
return resolveAutoSurfaceScenario({
|
|
73
|
+
definitions,
|
|
74
|
+
values: Object.entries(valueRoots).filter(([, root]) => typeof root === "string" && root.length > 0).map(([layer, root]) => ({
|
|
75
|
+
layer,
|
|
76
|
+
reader: options.afs,
|
|
77
|
+
root
|
|
78
|
+
}))
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
//#endregion
|
|
83
|
+
export { resolveScaffoldSurface, resolveScaffoldSurfaces };
|
|
84
|
+
//# sourceMappingURL=surfaces.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"surfaces.mjs","names":[],"sources":["../../src/scaffold/surfaces.ts"],"sourcesContent":["import {\n type AutoSurfaceLayer,\n type AutoSurfaceProjectorName,\n type AutoSurfaceResolvedScenario,\n DEFAULT_AUTO_SURFACE_DEFINITIONS_ROOT,\n projectAutoSurface,\n resolveAutoSurfaceScenario,\n} from \"../auto-surface/index.js\";\nimport type { ScaffoldAfsReader } from \"./afs.js\";\nimport type {\n ResolvedScaffoldAutoSurface,\n ResolvedScaffoldDefinition,\n ResolvedScaffoldSurface,\n ResolvedScaffoldSurfaces,\n ScaffoldSurfaceDefinition,\n ScaffoldSurfaceRuntimeDiagnostic,\n} from \"./types.js\";\n\nexport interface ResolveScaffoldAutoSurfaceOptions {\n systemDefinitionRoot?: string;\n systemDefinitionSource?: string;\n packageDefinitionRoot?: string;\n packageDefinitionSource?: string;\n valueRoots?: Partial<Record<AutoSurfaceLayer, string>>;\n defaultProjector?: AutoSurfaceProjectorName;\n defaultScope?: AutoSurfaceLayer | \"all\";\n}\n\nexport interface ResolveScaffoldSurfacesOptions {\n afs: ScaffoldAfsReader;\n autoSurface?: ResolveScaffoldAutoSurfaceOptions;\n}\n\nexport async function resolveScaffoldSurfaces(\n scaffold: ResolvedScaffoldDefinition,\n options: ResolveScaffoldSurfacesOptions,\n): Promise<ResolvedScaffoldSurfaces> {\n const diagnostics: ScaffoldSurfaceRuntimeDiagnostic[] = [];\n const surfaces: Record<string, ResolvedScaffoldSurface> = {};\n\n for (const definition of scaffold.definition.surfaces) {\n if (definition.kind !== \"auto-surface\") {\n diagnostics.push({\n code: \"unsupported_surface_kind\",\n severity: \"warning\",\n surfaceId: definition.id,\n message: `Surface \"${definition.id}\" uses unsupported kind \"${definition.kind}\"`,\n });\n continue;\n }\n\n try {\n const resolved = await resolveAutoSurfaceScaffoldSurface(definition, options);\n surfaces[definition.id] = resolved;\n } catch (error) {\n diagnostics.push({\n code: \"surface_resolve_error\",\n severity: \"error\",\n surfaceId: definition.id,\n message: error instanceof Error ? error.message : String(error),\n });\n }\n }\n\n return { surfaces, diagnostics };\n}\n\nexport async function resolveScaffoldSurface(\n scaffold: ResolvedScaffoldDefinition,\n surfaceId: string,\n options: ResolveScaffoldSurfacesOptions,\n): Promise<ResolvedScaffoldSurface | undefined> {\n const surface = scaffold.surfacesById[surfaceId];\n if (!surface) return undefined;\n if (surface.kind !== \"auto-surface\") return undefined;\n return resolveAutoSurfaceScaffoldSurface(surface, options);\n}\n\nasync function resolveAutoSurfaceScaffoldSurface(\n surface: ScaffoldSurfaceDefinition,\n options: ResolveScaffoldSurfacesOptions,\n): Promise<ResolvedScaffoldAutoSurface> {\n const scenario = await buildAutoSurfaceScenario(surface, options);\n return {\n kind: \"auto-surface\",\n definition: surface,\n scenario,\n projection: projectAutoSurface(scenario.resolved, {\n projector: surface.projector ?? options.autoSurface?.defaultProjector ?? \"settings-shell\",\n scope: surface.scope ?? options.autoSurface?.defaultScope,\n }),\n };\n}\n\nasync function buildAutoSurfaceScenario(\n surface: ScaffoldSurfaceDefinition,\n options: ResolveScaffoldSurfacesOptions,\n): Promise<AutoSurfaceResolvedScenario> {\n const definitions = [];\n if (options.autoSurface?.systemDefinitionRoot) {\n definitions.push({\n source: options.autoSurface.systemDefinitionSource ?? \"arc://system\",\n owner: \"system\" as const,\n reader: options.afs,\n root: options.autoSurface.systemDefinitionRoot,\n });\n }\n definitions.push({\n source: options.autoSurface?.packageDefinitionSource ?? \"blocklet://package\",\n owner: \"package\" as const,\n reader: options.afs,\n root:\n surface.definitionRoot ??\n options.autoSurface?.packageDefinitionRoot ??\n DEFAULT_AUTO_SURFACE_DEFINITIONS_ROOT,\n });\n\n const valueRoots = {\n ...(options.autoSurface?.valueRoots ?? {}),\n ...(surface.valueRoots ?? {}),\n };\n const values = Object.entries(valueRoots)\n .filter(([, root]) => typeof root === \"string\" && root.length > 0)\n .map(([layer, root]) => ({\n layer: layer as AutoSurfaceLayer,\n reader: options.afs,\n root,\n }));\n\n return resolveAutoSurfaceScenario({\n definitions,\n values,\n });\n}\n"],"mappings":";;;;;AAiCA,eAAsB,wBACpB,UACA,SACmC;CACnC,MAAM,cAAkD,EAAE;CAC1D,MAAM,WAAoD,EAAE;AAE5D,MAAK,MAAM,cAAc,SAAS,WAAW,UAAU;AACrD,MAAI,WAAW,SAAS,gBAAgB;AACtC,eAAY,KAAK;IACf,MAAM;IACN,UAAU;IACV,WAAW,WAAW;IACtB,SAAS,YAAY,WAAW,GAAG,2BAA2B,WAAW,KAAK;IAC/E,CAAC;AACF;;AAGF,MAAI;GACF,MAAM,WAAW,MAAM,kCAAkC,YAAY,QAAQ;AAC7E,YAAS,WAAW,MAAM;WACnB,OAAO;AACd,eAAY,KAAK;IACf,MAAM;IACN,UAAU;IACV,WAAW,WAAW;IACtB,SAAS,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;IAChE,CAAC;;;AAIN,QAAO;EAAE;EAAU;EAAa;;AAGlC,eAAsB,uBACpB,UACA,WACA,SAC8C;CAC9C,MAAM,UAAU,SAAS,aAAa;AACtC,KAAI,CAAC,QAAS,QAAO;AACrB,KAAI,QAAQ,SAAS,eAAgB,QAAO;AAC5C,QAAO,kCAAkC,SAAS,QAAQ;;AAG5D,eAAe,kCACb,SACA,SACsC;CACtC,MAAM,WAAW,MAAM,yBAAyB,SAAS,QAAQ;AACjE,QAAO;EACL,MAAM;EACN,YAAY;EACZ;EACA,YAAY,mBAAmB,SAAS,UAAU;GAChD,WAAW,QAAQ,aAAa,QAAQ,aAAa,oBAAoB;GACzE,OAAO,QAAQ,SAAS,QAAQ,aAAa;GAC9C,CAAC;EACH;;AAGH,eAAe,yBACb,SACA,SACsC;CACtC,MAAM,cAAc,EAAE;AACtB,KAAI,QAAQ,aAAa,qBACvB,aAAY,KAAK;EACf,QAAQ,QAAQ,YAAY,0BAA0B;EACtD,OAAO;EACP,QAAQ,QAAQ;EAChB,MAAM,QAAQ,YAAY;EAC3B,CAAC;AAEJ,aAAY,KAAK;EACf,QAAQ,QAAQ,aAAa,2BAA2B;EACxD,OAAO;EACP,QAAQ,QAAQ;EAChB,MACE,QAAQ,kBACR,QAAQ,aAAa,yBACrB;EACH,CAAC;CAEF,MAAM,aAAa;EACjB,GAAI,QAAQ,aAAa,cAAc,EAAE;EACzC,GAAI,QAAQ,cAAc,EAAE;EAC7B;AASD,QAAO,2BAA2B;EAChC;EACA,QAVa,OAAO,QAAQ,WAAW,CACtC,QAAQ,GAAG,UAAU,OAAO,SAAS,YAAY,KAAK,SAAS,EAAE,CACjE,KAAK,CAAC,OAAO,WAAW;GAChB;GACP,QAAQ,QAAQ;GAChB;GACD,EAAE;EAKJ,CAAC"}
|