@pwfabric/runtime 0.0.0-stage → 1.0.0-rc.0
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/LICENSE +90 -0
- package/README.md +13 -2
- package/dist/__tests__/dom-test-setup.d.ts +21 -0
- package/dist/__tests__/dom-test-setup.d.ts.map +1 -0
- package/dist/__tests__/dom-test-setup.js +36 -0
- package/dist/__tests__/dom-test-setup.js.map +1 -0
- package/dist/a11y/announcer.d.ts +66 -0
- package/dist/a11y/announcer.d.ts.map +1 -0
- package/dist/a11y/announcer.js +140 -0
- package/dist/a11y/announcer.js.map +1 -0
- package/dist/a11y/contrast.d.ts +55 -0
- package/dist/a11y/contrast.d.ts.map +1 -0
- package/dist/a11y/contrast.js +93 -0
- package/dist/a11y/contrast.js.map +1 -0
- package/dist/a11y/focus.d.ts +124 -0
- package/dist/a11y/focus.d.ts.map +1 -0
- package/dist/a11y/focus.js +282 -0
- package/dist/a11y/focus.js.map +1 -0
- package/dist/a11y/index.d.ts +22 -0
- package/dist/a11y/index.d.ts.map +1 -0
- package/dist/a11y/index.js +18 -0
- package/dist/a11y/index.js.map +1 -0
- package/dist/a11y/keyboard.d.ts +145 -0
- package/dist/a11y/keyboard.d.ts.map +1 -0
- package/dist/a11y/keyboard.js +317 -0
- package/dist/a11y/keyboard.js.map +1 -0
- package/dist/adapters/default-image.d.ts +26 -0
- package/dist/adapters/default-image.d.ts.map +1 -0
- package/dist/adapters/default-image.js +37 -0
- package/dist/adapters/default-image.js.map +1 -0
- package/dist/adapters/index.d.ts +28 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +28 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/next-image.d.ts +39 -0
- package/dist/adapters/next-image.d.ts.map +1 -0
- package/dist/adapters/next-image.js +124 -0
- package/dist/adapters/next-image.js.map +1 -0
- package/dist/adapters/types.d.ts +62 -0
- package/dist/adapters/types.d.ts.map +1 -0
- package/dist/adapters/types.js +11 -0
- package/dist/adapters/types.js.map +1 -0
- package/dist/analytics/index.d.ts +15 -0
- package/dist/analytics/index.d.ts.map +1 -0
- package/dist/analytics/index.js +15 -0
- package/dist/analytics/index.js.map +1 -0
- package/dist/analytics/tracker.d.ts +66 -0
- package/dist/analytics/tracker.d.ts.map +1 -0
- package/dist/analytics/tracker.js +251 -0
- package/dist/analytics/tracker.js.map +1 -0
- package/dist/analytics/types.d.ts +131 -0
- package/dist/analytics/types.d.ts.map +1 -0
- package/dist/analytics/types.js +11 -0
- package/dist/analytics/types.js.map +1 -0
- package/dist/auth/index.d.ts +16 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +14 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/provider.d.ts +133 -0
- package/dist/auth/provider.d.ts.map +1 -0
- package/dist/auth/provider.js +473 -0
- package/dist/auth/provider.js.map +1 -0
- package/dist/auth/types.d.ts +118 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js +9 -0
- package/dist/auth/types.js.map +1 -0
- package/dist/binding/collection.d.ts +191 -0
- package/dist/binding/collection.d.ts.map +1 -0
- package/dist/binding/collection.js +358 -0
- package/dist/binding/collection.js.map +1 -0
- package/dist/binding/datasource.d.ts +320 -0
- package/dist/binding/datasource.d.ts.map +1 -0
- package/dist/binding/datasource.js +556 -0
- package/dist/binding/datasource.js.map +1 -0
- package/dist/binding/engine.d.ts +66 -0
- package/dist/binding/engine.d.ts.map +1 -0
- package/dist/binding/engine.js +268 -0
- package/dist/binding/engine.js.map +1 -0
- package/dist/binding/expression.d.ts +151 -0
- package/dist/binding/expression.d.ts.map +1 -0
- package/dist/binding/expression.js +787 -0
- package/dist/binding/expression.js.map +1 -0
- package/dist/binding/index.d.ts +20 -0
- package/dist/binding/index.d.ts.map +1 -0
- package/dist/binding/index.js +14 -0
- package/dist/binding/index.js.map +1 -0
- package/dist/binding/two-way.d.ts +150 -0
- package/dist/binding/two-way.d.ts.map +1 -0
- package/dist/binding/two-way.js +462 -0
- package/dist/binding/two-way.js.map +1 -0
- package/dist/binding/types.d.ts +120 -0
- package/dist/binding/types.d.ts.map +1 -0
- package/dist/binding/types.js +9 -0
- package/dist/binding/types.js.map +1 -0
- package/dist/blocks/__test-fixtures__/block-fixtures.d.ts +40 -0
- package/dist/blocks/__test-fixtures__/block-fixtures.d.ts.map +1 -0
- package/dist/blocks/__test-fixtures__/block-fixtures.js +506 -0
- package/dist/blocks/__test-fixtures__/block-fixtures.js.map +1 -0
- package/dist/blocks/component-types.d.ts +82 -0
- package/dist/blocks/component-types.d.ts.map +1 -0
- package/dist/blocks/component-types.js +11 -0
- package/dist/blocks/component-types.js.map +1 -0
- package/dist/blocks/composition-rules.d.ts +169 -0
- package/dist/blocks/composition-rules.d.ts.map +1 -0
- package/dist/blocks/composition-rules.js +391 -0
- package/dist/blocks/composition-rules.js.map +1 -0
- package/dist/blocks/hooks.d.ts +32 -0
- package/dist/blocks/hooks.d.ts.map +1 -0
- package/dist/blocks/hooks.js +42 -0
- package/dist/blocks/hooks.js.map +1 -0
- package/dist/blocks/index.d.ts +16 -0
- package/dist/blocks/index.d.ts.map +1 -0
- package/dist/blocks/index.js +24 -0
- package/dist/blocks/index.js.map +1 -0
- package/dist/blocks/registry.d.ts +85 -0
- package/dist/blocks/registry.d.ts.map +1 -0
- package/dist/blocks/registry.js +136 -0
- package/dist/blocks/registry.js.map +1 -0
- package/dist/blocks/rule-engine.d.ts +132 -0
- package/dist/blocks/rule-engine.d.ts.map +1 -0
- package/dist/blocks/rule-engine.js +321 -0
- package/dist/blocks/rule-engine.js.map +1 -0
- package/dist/blocks/surface-event-context.d.ts +14 -0
- package/dist/blocks/surface-event-context.d.ts.map +1 -0
- package/dist/blocks/surface-event-context.js +14 -0
- package/dist/blocks/surface-event-context.js.map +1 -0
- package/dist/blocks/surface-id-context.d.ts +14 -0
- package/dist/blocks/surface-id-context.d.ts.map +1 -0
- package/dist/blocks/surface-id-context.js +15 -0
- package/dist/blocks/surface-id-context.js.map +1 -0
- package/dist/bus.d.ts +42 -0
- package/dist/bus.d.ts.map +1 -0
- package/dist/bus.js +158 -0
- package/dist/bus.js.map +1 -0
- package/dist/cache/index.d.ts +10 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +10 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/cache/memory.d.ts +33 -0
- package/dist/cache/memory.d.ts.map +1 -0
- package/dist/cache/memory.js +138 -0
- package/dist/cache/memory.js.map +1 -0
- package/dist/cache/types.d.ts +63 -0
- package/dist/cache/types.d.ts.map +1 -0
- package/dist/cache/types.js +9 -0
- package/dist/cache/types.js.map +1 -0
- package/dist/capability/index.d.ts +73 -0
- package/dist/capability/index.d.ts.map +1 -0
- package/dist/capability/index.js +87 -0
- package/dist/capability/index.js.map +1 -0
- package/dist/capability/kernel-capabilities.d.ts +32 -0
- package/dist/capability/kernel-capabilities.d.ts.map +1 -0
- package/dist/capability/kernel-capabilities.js +36 -0
- package/dist/capability/kernel-capabilities.js.map +1 -0
- package/dist/capability/platform-capabilities.d.ts +72 -0
- package/dist/capability/platform-capabilities.d.ts.map +1 -0
- package/dist/capability/platform-capabilities.js +267 -0
- package/dist/capability/platform-capabilities.js.map +1 -0
- package/dist/capability/type-mapping.d.ts +71 -0
- package/dist/capability/type-mapping.d.ts.map +1 -0
- package/dist/capability/type-mapping.js +107 -0
- package/dist/capability/type-mapping.js.map +1 -0
- package/dist/capability/validation.d.ts +47 -0
- package/dist/capability/validation.d.ts.map +1 -0
- package/dist/capability/validation.js +54 -0
- package/dist/capability/validation.js.map +1 -0
- package/dist/connectors/declared-connector.d.ts +49 -0
- package/dist/connectors/declared-connector.d.ts.map +1 -0
- package/dist/connectors/declared-connector.js +333 -0
- package/dist/connectors/declared-connector.js.map +1 -0
- package/dist/connectors/engine-registry.d.ts +51 -0
- package/dist/connectors/engine-registry.d.ts.map +1 -0
- package/dist/connectors/engine-registry.js +135 -0
- package/dist/connectors/engine-registry.js.map +1 -0
- package/dist/connectors/index.d.ts +15 -0
- package/dist/connectors/index.d.ts.map +1 -0
- package/dist/connectors/index.js +14 -0
- package/dist/connectors/index.js.map +1 -0
- package/dist/connectors/module-loader.d.ts +71 -0
- package/dist/connectors/module-loader.d.ts.map +1 -0
- package/dist/connectors/module-loader.js +143 -0
- package/dist/connectors/module-loader.js.map +1 -0
- package/dist/connectors/types.d.ts +175 -0
- package/dist/connectors/types.d.ts.map +1 -0
- package/dist/connectors/types.js +23 -0
- package/dist/connectors/types.js.map +1 -0
- package/dist/context.d.ts +28 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +38 -0
- package/dist/context.js.map +1 -0
- package/dist/data/DataCapabilityProvider.d.ts +40 -0
- package/dist/data/DataCapabilityProvider.d.ts.map +1 -0
- package/dist/data/DataCapabilityProvider.js +58 -0
- package/dist/data/DataCapabilityProvider.js.map +1 -0
- package/dist/data/index.d.ts +18 -0
- package/dist/data/index.d.ts.map +1 -0
- package/dist/data/index.js +18 -0
- package/dist/data/index.js.map +1 -0
- package/dist/data/manager.d.ts +41 -0
- package/dist/data/manager.d.ts.map +1 -0
- package/dist/data/manager.js +442 -0
- package/dist/data/manager.js.map +1 -0
- package/dist/data/types.d.ts +219 -0
- package/dist/data/types.d.ts.map +1 -0
- package/dist/data/types.js +2 -0
- package/dist/data/types.js.map +1 -0
- package/dist/entity/aggregate.d.ts +9 -0
- package/dist/entity/aggregate.d.ts.map +1 -0
- package/dist/entity/aggregate.js +24 -0
- package/dist/entity/aggregate.js.map +1 -0
- package/dist/entity/apply-query.d.ts +59 -0
- package/dist/entity/apply-query.d.ts.map +1 -0
- package/dist/entity/apply-query.js +264 -0
- package/dist/entity/apply-query.js.map +1 -0
- package/dist/entity/behavior.d.ts +95 -0
- package/dist/entity/behavior.d.ts.map +1 -0
- package/dist/entity/behavior.js +78 -0
- package/dist/entity/behavior.js.map +1 -0
- package/dist/entity/connector.d.ts +142 -0
- package/dist/entity/connector.d.ts.map +1 -0
- package/dist/entity/connector.js +89 -0
- package/dist/entity/connector.js.map +1 -0
- package/dist/entity/connectors/index.d.ts +13 -0
- package/dist/entity/connectors/index.d.ts.map +1 -0
- package/dist/entity/connectors/index.js +11 -0
- package/dist/entity/connectors/index.js.map +1 -0
- package/dist/entity/connectors/static.d.ts +52 -0
- package/dist/entity/connectors/static.d.ts.map +1 -0
- package/dist/entity/connectors/static.js +245 -0
- package/dist/entity/connectors/static.js.map +1 -0
- package/dist/entity/entity-datasource.d.ts +51 -0
- package/dist/entity/entity-datasource.d.ts.map +1 -0
- package/dist/entity/entity-datasource.js +33 -0
- package/dist/entity/entity-datasource.js.map +1 -0
- package/dist/entity/facade.d.ts +71 -0
- package/dist/entity/facade.d.ts.map +1 -0
- package/dist/entity/facade.js +70 -0
- package/dist/entity/facade.js.map +1 -0
- package/dist/entity/http-connector.d.ts +124 -0
- package/dist/entity/http-connector.d.ts.map +1 -0
- package/dist/entity/http-connector.js +295 -0
- package/dist/entity/http-connector.js.map +1 -0
- package/dist/entity/index.d.ts +39 -0
- package/dist/entity/index.d.ts.map +1 -0
- package/dist/entity/index.js +31 -0
- package/dist/entity/index.js.map +1 -0
- package/dist/entity/postgres-connector.d.ts +65 -0
- package/dist/entity/postgres-connector.d.ts.map +1 -0
- package/dist/entity/postgres-connector.js +239 -0
- package/dist/entity/postgres-connector.js.map +1 -0
- package/dist/entity/registry.d.ts +60 -0
- package/dist/entity/registry.d.ts.map +1 -0
- package/dist/entity/registry.js +90 -0
- package/dist/entity/registry.js.map +1 -0
- package/dist/entity/store.d.ts +67 -0
- package/dist/entity/store.d.ts.map +1 -0
- package/dist/entity/store.js +349 -0
- package/dist/entity/store.js.map +1 -0
- package/dist/entity/types.d.ts +181 -0
- package/dist/entity/types.d.ts.map +1 -0
- package/dist/entity/types.js +10 -0
- package/dist/entity/types.js.map +1 -0
- package/dist/execution-context.d.ts +89 -0
- package/dist/execution-context.d.ts.map +1 -0
- package/dist/execution-context.js +146 -0
- package/dist/execution-context.js.map +1 -0
- package/dist/executor.d.ts +28 -0
- package/dist/executor.d.ts.map +1 -0
- package/dist/executor.js +33 -0
- package/dist/executor.js.map +1 -0
- package/dist/forms/form-entity-bridge.d.ts +95 -0
- package/dist/forms/form-entity-bridge.d.ts.map +1 -0
- package/dist/forms/form-entity-bridge.js +96 -0
- package/dist/forms/form-entity-bridge.js.map +1 -0
- package/dist/forms/form-write-target.d.ts +35 -0
- package/dist/forms/form-write-target.d.ts.map +1 -0
- package/dist/forms/form-write-target.js +81 -0
- package/dist/forms/form-write-target.js.map +1 -0
- package/dist/forms/index.d.ts +23 -0
- package/dist/forms/index.d.ts.map +1 -0
- package/dist/forms/index.js +25 -0
- package/dist/forms/index.js.map +1 -0
- package/dist/forms/named-control-values.d.ts +28 -0
- package/dist/forms/named-control-values.d.ts.map +1 -0
- package/dist/forms/named-control-values.js +42 -0
- package/dist/forms/named-control-values.js.map +1 -0
- package/dist/forms/processor.d.ts +56 -0
- package/dist/forms/processor.d.ts.map +1 -0
- package/dist/forms/processor.js +154 -0
- package/dist/forms/processor.js.map +1 -0
- package/dist/forms/types.d.ts +175 -0
- package/dist/forms/types.d.ts.map +1 -0
- package/dist/forms/types.js +33 -0
- package/dist/forms/types.js.map +1 -0
- package/dist/forms/validator.d.ts +62 -0
- package/dist/forms/validator.d.ts.map +1 -0
- package/dist/forms/validator.js +218 -0
- package/dist/forms/validator.js.map +1 -0
- package/dist/graph/index.d.ts +11 -0
- package/dist/graph/index.d.ts.map +1 -0
- package/dist/graph/index.js +9 -0
- package/dist/graph/index.js.map +1 -0
- package/dist/graph/resolver.d.ts +67 -0
- package/dist/graph/resolver.d.ts.map +1 -0
- package/dist/graph/resolver.js +243 -0
- package/dist/graph/resolver.js.map +1 -0
- package/dist/graph/types.d.ts +126 -0
- package/dist/graph/types.d.ts.map +1 -0
- package/dist/graph/types.js +9 -0
- package/dist/graph/types.js.map +1 -0
- package/dist/hooks/useInstalledAtoms.d.ts +97 -0
- package/dist/hooks/useInstalledAtoms.d.ts.map +1 -0
- package/dist/hooks/useInstalledAtoms.js +92 -0
- package/dist/hooks/useInstalledAtoms.js.map +1 -0
- package/dist/i18n/index.d.ts +16 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +14 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/translator.d.ts +77 -0
- package/dist/i18n/translator.d.ts.map +1 -0
- package/dist/i18n/translator.js +357 -0
- package/dist/i18n/translator.js.map +1 -0
- package/dist/i18n/types.d.ts +94 -0
- package/dist/i18n/types.d.ts.map +1 -0
- package/dist/i18n/types.js +9 -0
- package/dist/i18n/types.js.map +1 -0
- package/dist/index.d.ts +65 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +95 -0
- package/dist/index.js.map +1 -0
- package/dist/kernel.d.ts +48 -0
- package/dist/kernel.d.ts.map +1 -0
- package/dist/kernel.js +258 -0
- package/dist/kernel.js.map +1 -0
- package/dist/perf/budget.d.ts +93 -0
- package/dist/perf/budget.d.ts.map +1 -0
- package/dist/perf/budget.js +122 -0
- package/dist/perf/budget.js.map +1 -0
- package/dist/perf/index.d.ts +17 -0
- package/dist/perf/index.d.ts.map +1 -0
- package/dist/perf/index.js +13 -0
- package/dist/perf/index.js.map +1 -0
- package/dist/perf/render-timer.d.ts +91 -0
- package/dist/perf/render-timer.d.ts.map +1 -0
- package/dist/perf/render-timer.js +136 -0
- package/dist/perf/render-timer.js.map +1 -0
- package/dist/perf/reporter.d.ts +127 -0
- package/dist/perf/reporter.d.ts.map +1 -0
- package/dist/perf/reporter.js +241 -0
- package/dist/perf/reporter.js.map +1 -0
- package/dist/perf/web-vitals.d.ts +112 -0
- package/dist/perf/web-vitals.d.ts.map +1 -0
- package/dist/perf/web-vitals.js +268 -0
- package/dist/perf/web-vitals.js.map +1 -0
- package/dist/registry.d.ts +64 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +126 -0
- package/dist/registry.js.map +1 -0
- package/dist/render/BehaviorSurfaceProvider.d.ts +66 -0
- package/dist/render/BehaviorSurfaceProvider.d.ts.map +1 -0
- package/dist/render/BehaviorSurfaceProvider.js +185 -0
- package/dist/render/BehaviorSurfaceProvider.js.map +1 -0
- package/dist/render/BlockErrorBoundary.d.ts +27 -0
- package/dist/render/BlockErrorBoundary.d.ts.map +1 -0
- package/dist/render/BlockErrorBoundary.js +41 -0
- package/dist/render/BlockErrorBoundary.js.map +1 -0
- package/dist/render/DataBoundSurfaceRenderer.d.ts +79 -0
- package/dist/render/DataBoundSurfaceRenderer.d.ts.map +1 -0
- package/dist/render/DataBoundSurfaceRenderer.js +998 -0
- package/dist/render/DataBoundSurfaceRenderer.js.map +1 -0
- package/dist/render/DynamicBlockWrapper.d.ts +24 -0
- package/dist/render/DynamicBlockWrapper.d.ts.map +1 -0
- package/dist/render/DynamicBlockWrapper.js +117 -0
- package/dist/render/DynamicBlockWrapper.js.map +1 -0
- package/dist/render/appearance-resolver.d.ts +51 -0
- package/dist/render/appearance-resolver.d.ts.map +1 -0
- package/dist/render/appearance-resolver.js +78 -0
- package/dist/render/appearance-resolver.js.map +1 -0
- package/dist/render/capability-gate.d.ts +70 -0
- package/dist/render/capability-gate.d.ts.map +1 -0
- package/dist/render/capability-gate.js +94 -0
- package/dist/render/capability-gate.js.map +1 -0
- package/dist/render/conditional-states-css.d.ts +42 -0
- package/dist/render/conditional-states-css.d.ts.map +1 -0
- package/dist/render/conditional-states-css.js +82 -0
- package/dist/render/conditional-states-css.js.map +1 -0
- package/dist/render/connections-context.d.ts +32 -0
- package/dist/render/connections-context.d.ts.map +1 -0
- package/dist/render/connections-context.js +34 -0
- package/dist/render/connections-context.js.map +1 -0
- package/dist/render/dark-theme-css.d.ts +37 -0
- package/dist/render/dark-theme-css.d.ts.map +1 -0
- package/dist/render/dark-theme-css.js +67 -0
- package/dist/render/dark-theme-css.js.map +1 -0
- package/dist/render/data-binding-types.d.ts +192 -0
- package/dist/render/data-binding-types.d.ts.map +1 -0
- package/dist/render/data-binding-types.js +11 -0
- package/dist/render/data-binding-types.js.map +1 -0
- package/dist/render/data-cache.d.ts +31 -0
- package/dist/render/data-cache.d.ts.map +1 -0
- package/dist/render/data-cache.js +37 -0
- package/dist/render/data-cache.js.map +1 -0
- package/dist/render/derive-dark-theme.d.ts +18 -0
- package/dist/render/derive-dark-theme.d.ts.map +1 -0
- package/dist/render/derive-dark-theme.js +18 -0
- package/dist/render/derive-dark-theme.js.map +1 -0
- package/dist/render/dynamic-artifact-context.d.ts +78 -0
- package/dist/render/dynamic-artifact-context.d.ts.map +1 -0
- package/dist/render/dynamic-artifact-context.js +89 -0
- package/dist/render/dynamic-artifact-context.js.map +1 -0
- package/dist/render/dynamic-block-loader.d.ts +81 -0
- package/dist/render/dynamic-block-loader.d.ts.map +1 -0
- package/dist/render/dynamic-block-loader.js +197 -0
- package/dist/render/dynamic-block-loader.js.map +1 -0
- package/dist/render/endpoint.d.ts +19 -0
- package/dist/render/endpoint.d.ts.map +1 -0
- package/dist/render/endpoint.js +109 -0
- package/dist/render/endpoint.js.map +1 -0
- package/dist/render/entity-facade-context.d.ts +35 -0
- package/dist/render/entity-facade-context.d.ts.map +1 -0
- package/dist/render/entity-facade-context.js +37 -0
- package/dist/render/entity-facade-context.js.map +1 -0
- package/dist/render/group-states-css.d.ts +42 -0
- package/dist/render/group-states-css.d.ts.map +1 -0
- package/dist/render/group-states-css.js +73 -0
- package/dist/render/group-states-css.js.map +1 -0
- package/dist/render/hooks/useSurfaceEvents.d.ts +9 -0
- package/dist/render/hooks/useSurfaceEvents.d.ts.map +1 -0
- package/dist/render/hooks/useSurfaceEvents.js +9 -0
- package/dist/render/hooks/useSurfaceEvents.js.map +1 -0
- package/dist/render/hooks/useSurfaceId.d.ts +9 -0
- package/dist/render/hooks/useSurfaceId.d.ts.map +1 -0
- package/dist/render/hooks/useSurfaceId.js +9 -0
- package/dist/render/hooks/useSurfaceId.js.map +1 -0
- package/dist/render/index.d.ts +49 -0
- package/dist/render/index.d.ts.map +1 -0
- package/dist/render/index.js +61 -0
- package/dist/render/index.js.map +1 -0
- package/dist/render/interaction-rule-engine.d.ts +13 -0
- package/dist/render/interaction-rule-engine.d.ts.map +1 -0
- package/dist/render/interaction-rule-engine.js +47 -0
- package/dist/render/interaction-rule-engine.js.map +1 -0
- package/dist/render/keyframes-css.d.ts +32 -0
- package/dist/render/keyframes-css.d.ts.map +1 -0
- package/dist/render/keyframes-css.js +44 -0
- package/dist/render/keyframes-css.js.map +1 -0
- package/dist/render/query-state.d.ts +4 -0
- package/dist/render/query-state.d.ts.map +1 -0
- package/dist/render/query-state.js +70 -0
- package/dist/render/query-state.js.map +1 -0
- package/dist/render/renderer.d.ts +45 -0
- package/dist/render/renderer.d.ts.map +1 -0
- package/dist/render/renderer.js +937 -0
- package/dist/render/renderer.js.map +1 -0
- package/dist/render/resolve-expressions.d.ts +38 -0
- package/dist/render/resolve-expressions.d.ts.map +1 -0
- package/dist/render/resolve-expressions.js +309 -0
- package/dist/render/resolve-expressions.js.map +1 -0
- package/dist/render/responsive-style-css.d.ts +43 -0
- package/dist/render/responsive-style-css.d.ts.map +1 -0
- package/dist/render/responsive-style-css.js +123 -0
- package/dist/render/responsive-style-css.js.map +1 -0
- package/dist/render/responsive.d.ts +50 -0
- package/dist/render/responsive.d.ts.map +1 -0
- package/dist/render/responsive.js +99 -0
- package/dist/render/responsive.js.map +1 -0
- package/dist/render/scoped-css.d.ts +72 -0
- package/dist/render/scoped-css.d.ts.map +1 -0
- package/dist/render/scoped-css.js +102 -0
- package/dist/render/scoped-css.js.map +1 -0
- package/dist/render/shell-selection.d.ts +70 -0
- package/dist/render/shell-selection.d.ts.map +1 -0
- package/dist/render/shell-selection.js +117 -0
- package/dist/render/shell-selection.js.map +1 -0
- package/dist/render/states-css.d.ts +33 -0
- package/dist/render/states-css.d.ts.map +1 -0
- package/dist/render/states-css.js +63 -0
- package/dist/render/states-css.js.map +1 -0
- package/dist/render/surface-data-context.d.ts +19 -0
- package/dist/render/surface-data-context.d.ts.map +1 -0
- package/dist/render/surface-data-context.js +21 -0
- package/dist/render/surface-data-context.js.map +1 -0
- package/dist/render/surface-event-bus.d.ts +20 -0
- package/dist/render/surface-event-bus.d.ts.map +1 -0
- package/dist/render/surface-event-bus.js +68 -0
- package/dist/render/surface-event-bus.js.map +1 -0
- package/dist/render/surface-event-context.d.ts +12 -0
- package/dist/render/surface-event-context.d.ts.map +1 -0
- package/dist/render/surface-event-context.js +12 -0
- package/dist/render/surface-event-context.js.map +1 -0
- package/dist/render/surface-id-context.d.ts +9 -0
- package/dist/render/surface-id-context.d.ts.map +1 -0
- package/dist/render/surface-id-context.js +9 -0
- package/dist/render/surface-id-context.js.map +1 -0
- package/dist/render/theme-utils.d.ts +15 -0
- package/dist/render/theme-utils.d.ts.map +1 -0
- package/dist/render/theme-utils.js +15 -0
- package/dist/render/theme-utils.js.map +1 -0
- package/dist/render/types.d.ts +283 -0
- package/dist/render/types.d.ts.map +1 -0
- package/dist/render/types.js +9 -0
- package/dist/render/types.js.map +1 -0
- package/dist/render/visibility-css.d.ts +43 -0
- package/dist/render/visibility-css.d.ts.map +1 -0
- package/dist/render/visibility-css.js +119 -0
- package/dist/render/visibility-css.js.map +1 -0
- package/dist/render/width-scope.d.ts +35 -0
- package/dist/render/width-scope.d.ts.map +1 -0
- package/dist/render/width-scope.js +44 -0
- package/dist/render/width-scope.js.map +1 -0
- package/dist/render/write-only-sources.d.ts +34 -0
- package/dist/render/write-only-sources.d.ts.map +1 -0
- package/dist/render/write-only-sources.js +99 -0
- package/dist/render/write-only-sources.js.map +1 -0
- package/dist/routing/index.d.ts +15 -0
- package/dist/routing/index.d.ts.map +1 -0
- package/dist/routing/index.js +15 -0
- package/dist/routing/index.js.map +1 -0
- package/dist/routing/router.d.ts +43 -0
- package/dist/routing/router.d.ts.map +1 -0
- package/dist/routing/router.js +218 -0
- package/dist/routing/router.js.map +1 -0
- package/dist/routing/types.d.ts +125 -0
- package/dist/routing/types.d.ts.map +1 -0
- package/dist/routing/types.js +9 -0
- package/dist/routing/types.js.map +1 -0
- package/dist/seo/generator.d.ts +40 -0
- package/dist/seo/generator.d.ts.map +1 -0
- package/dist/seo/generator.js +236 -0
- package/dist/seo/generator.js.map +1 -0
- package/dist/seo/index.d.ts +15 -0
- package/dist/seo/index.d.ts.map +1 -0
- package/dist/seo/index.js +15 -0
- package/dist/seo/index.js.map +1 -0
- package/dist/seo/types.d.ts +182 -0
- package/dist/seo/types.d.ts.map +1 -0
- package/dist/seo/types.js +9 -0
- package/dist/seo/types.js.map +1 -0
- package/dist/state/index.d.ts +16 -0
- package/dist/state/index.d.ts.map +1 -0
- package/dist/state/index.js +16 -0
- package/dist/state/index.js.map +1 -0
- package/dist/state/manager.d.ts +34 -0
- package/dist/state/manager.d.ts.map +1 -0
- package/dist/state/manager.js +81 -0
- package/dist/state/manager.js.map +1 -0
- package/dist/state/store.d.ts +41 -0
- package/dist/state/store.d.ts.map +1 -0
- package/dist/state/store.js +145 -0
- package/dist/state/store.js.map +1 -0
- package/dist/state/types.d.ts +108 -0
- package/dist/state/types.d.ts.map +1 -0
- package/dist/state/types.js +9 -0
- package/dist/state/types.js.map +1 -0
- package/dist/surface/expression.d.ts +66 -0
- package/dist/surface/expression.d.ts.map +1 -0
- package/dist/surface/expression.js +179 -0
- package/dist/surface/expression.js.map +1 -0
- package/dist/surface/index.d.ts +33 -0
- package/dist/surface/index.d.ts.map +1 -0
- package/dist/surface/index.js +25 -0
- package/dist/surface/index.js.map +1 -0
- package/dist/surface/interpreter.d.ts +97 -0
- package/dist/surface/interpreter.d.ts.map +1 -0
- package/dist/surface/interpreter.js +231 -0
- package/dist/surface/interpreter.js.map +1 -0
- package/dist/surface/layout.d.ts +55 -0
- package/dist/surface/layout.d.ts.map +1 -0
- package/dist/surface/layout.js +288 -0
- package/dist/surface/layout.js.map +1 -0
- package/dist/surface/output.d.ts +91 -0
- package/dist/surface/output.d.ts.map +1 -0
- package/dist/surface/output.js +104 -0
- package/dist/surface/output.js.map +1 -0
- package/dist/surface/primitives.d.ts +181 -0
- package/dist/surface/primitives.d.ts.map +1 -0
- package/dist/surface/primitives.js +339 -0
- package/dist/surface/primitives.js.map +1 -0
- package/dist/surface/renderer.d.ts +97 -0
- package/dist/surface/renderer.d.ts.map +1 -0
- package/dist/surface/renderer.js +190 -0
- package/dist/surface/renderer.js.map +1 -0
- package/dist/surface/schemas.d.ts +182 -0
- package/dist/surface/schemas.d.ts.map +1 -0
- package/dist/surface/schemas.js +142 -0
- package/dist/surface/schemas.js.map +1 -0
- package/dist/surface/transforms.d.ts +145 -0
- package/dist/surface/transforms.d.ts.map +1 -0
- package/dist/surface/transforms.js +120 -0
- package/dist/surface/transforms.js.map +1 -0
- package/dist/surface/types.d.ts +161 -0
- package/dist/surface/types.d.ts.map +1 -0
- package/dist/surface/types.js +51 -0
- package/dist/surface/types.js.map +1 -0
- package/dist/surface/validation.d.ts +124 -0
- package/dist/surface/validation.d.ts.map +1 -0
- package/dist/surface/validation.js +147 -0
- package/dist/surface/validation.js.map +1 -0
- package/dist/validator.d.ts +56 -0
- package/dist/validator.d.ts.map +1 -0
- package/dist/validator.js +100 -0
- package/dist/validator.js.map +1 -0
- package/package.json +105 -3
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Surface JSON Zod Schemas
|
|
3
|
+
*
|
|
4
|
+
* Zod validation schemas for Surface JSON definitions
|
|
5
|
+
*
|
|
6
|
+
* Provides schema-based validation to replace manual string-based
|
|
7
|
+
* validation in the interpreter. Ensures SurfaceJSON, LayoutJSON,
|
|
8
|
+
* and BindingJSON conform to their TypeScript interfaces.
|
|
9
|
+
*
|
|
10
|
+
* @module @pwfabric/runtime/surface/schemas
|
|
11
|
+
*/
|
|
12
|
+
import { z } from 'zod';
|
|
13
|
+
import type { SurfaceJSON, LayoutJSON, BindingJSON } from './types.js';
|
|
14
|
+
/**
|
|
15
|
+
* Valid environment types for surfaces
|
|
16
|
+
*/
|
|
17
|
+
export declare const environmentSchema: z.ZodEnum<["web", "api", "cli", "worker", "edge", "node", "native", "test"]>;
|
|
18
|
+
/**
|
|
19
|
+
* Zod schema for BindingJSON
|
|
20
|
+
*
|
|
21
|
+
* Validates capability bindings in surface definitions.
|
|
22
|
+
* - capability: required string identifying the capability
|
|
23
|
+
* - alias: optional string alias for the binding
|
|
24
|
+
* - transform: optional input/output transform configuration
|
|
25
|
+
*/
|
|
26
|
+
export declare const bindingJsonSchema: z.ZodObject<{
|
|
27
|
+
capability: z.ZodString;
|
|
28
|
+
alias: z.ZodOptional<z.ZodString>;
|
|
29
|
+
transform: z.ZodOptional<z.ZodObject<{
|
|
30
|
+
input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
31
|
+
output: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
32
|
+
}, "strip", z.ZodTypeAny, {
|
|
33
|
+
input?: Record<string, unknown> | undefined;
|
|
34
|
+
output?: Record<string, unknown> | undefined;
|
|
35
|
+
}, {
|
|
36
|
+
input?: Record<string, unknown> | undefined;
|
|
37
|
+
output?: Record<string, unknown> | undefined;
|
|
38
|
+
}>>;
|
|
39
|
+
}, "strip", z.ZodTypeAny, {
|
|
40
|
+
capability: string;
|
|
41
|
+
alias?: string | undefined;
|
|
42
|
+
transform?: {
|
|
43
|
+
input?: Record<string, unknown> | undefined;
|
|
44
|
+
output?: Record<string, unknown> | undefined;
|
|
45
|
+
} | undefined;
|
|
46
|
+
}, {
|
|
47
|
+
capability: string;
|
|
48
|
+
alias?: string | undefined;
|
|
49
|
+
transform?: {
|
|
50
|
+
input?: Record<string, unknown> | undefined;
|
|
51
|
+
output?: Record<string, unknown> | undefined;
|
|
52
|
+
} | undefined;
|
|
53
|
+
}>;
|
|
54
|
+
/**
|
|
55
|
+
* Zod schema for LayoutJSON
|
|
56
|
+
*
|
|
57
|
+
* Uses z.lazy() for recursive children validation.
|
|
58
|
+
* - type: required string identifying the layout element type
|
|
59
|
+
* - props: optional record of properties
|
|
60
|
+
* - children: optional array of nested LayoutJSON (recursive)
|
|
61
|
+
* - slot: optional named slot reference
|
|
62
|
+
* - if: optional conditional expression
|
|
63
|
+
* - each: optional loop configuration (items, as, key)
|
|
64
|
+
*/
|
|
65
|
+
export declare const layoutJsonSchema: z.ZodType;
|
|
66
|
+
/**
|
|
67
|
+
* Zod schema for SurfaceJSON
|
|
68
|
+
*
|
|
69
|
+
* Validates the top-level surface definition structure.
|
|
70
|
+
* - id: required non-empty string
|
|
71
|
+
* - version: required non-empty string (semver)
|
|
72
|
+
* - environment: required enum of valid environment types
|
|
73
|
+
* - $schema: optional schema reference
|
|
74
|
+
* - metadata: optional name, description, tags
|
|
75
|
+
* - bindings: optional array of capability bindings
|
|
76
|
+
* - layout: required recursive layout definition
|
|
77
|
+
*/
|
|
78
|
+
export declare const surfaceJsonSchema: z.ZodObject<{
|
|
79
|
+
$schema: z.ZodOptional<z.ZodString>;
|
|
80
|
+
id: z.ZodString;
|
|
81
|
+
version: z.ZodString;
|
|
82
|
+
environment: z.ZodEnum<["web", "api", "cli", "worker", "edge", "node", "native", "test"]>;
|
|
83
|
+
metadata: z.ZodOptional<z.ZodObject<{
|
|
84
|
+
name: z.ZodOptional<z.ZodString>;
|
|
85
|
+
description: z.ZodOptional<z.ZodString>;
|
|
86
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
87
|
+
}, "strip", z.ZodTypeAny, {
|
|
88
|
+
description?: string | undefined;
|
|
89
|
+
name?: string | undefined;
|
|
90
|
+
tags?: string[] | undefined;
|
|
91
|
+
}, {
|
|
92
|
+
description?: string | undefined;
|
|
93
|
+
name?: string | undefined;
|
|
94
|
+
tags?: string[] | undefined;
|
|
95
|
+
}>>;
|
|
96
|
+
bindings: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
97
|
+
capability: z.ZodString;
|
|
98
|
+
alias: z.ZodOptional<z.ZodString>;
|
|
99
|
+
transform: z.ZodOptional<z.ZodObject<{
|
|
100
|
+
input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
101
|
+
output: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
102
|
+
}, "strip", z.ZodTypeAny, {
|
|
103
|
+
input?: Record<string, unknown> | undefined;
|
|
104
|
+
output?: Record<string, unknown> | undefined;
|
|
105
|
+
}, {
|
|
106
|
+
input?: Record<string, unknown> | undefined;
|
|
107
|
+
output?: Record<string, unknown> | undefined;
|
|
108
|
+
}>>;
|
|
109
|
+
}, "strip", z.ZodTypeAny, {
|
|
110
|
+
capability: string;
|
|
111
|
+
alias?: string | undefined;
|
|
112
|
+
transform?: {
|
|
113
|
+
input?: Record<string, unknown> | undefined;
|
|
114
|
+
output?: Record<string, unknown> | undefined;
|
|
115
|
+
} | undefined;
|
|
116
|
+
}, {
|
|
117
|
+
capability: string;
|
|
118
|
+
alias?: string | undefined;
|
|
119
|
+
transform?: {
|
|
120
|
+
input?: Record<string, unknown> | undefined;
|
|
121
|
+
output?: Record<string, unknown> | undefined;
|
|
122
|
+
} | undefined;
|
|
123
|
+
}>, "many">>;
|
|
124
|
+
layout: z.ZodType<any, z.ZodTypeDef, any>;
|
|
125
|
+
}, "strip", z.ZodTypeAny, {
|
|
126
|
+
id: string;
|
|
127
|
+
version: string;
|
|
128
|
+
environment: "web" | "api" | "cli" | "worker" | "edge" | "node" | "native" | "test";
|
|
129
|
+
metadata?: {
|
|
130
|
+
description?: string | undefined;
|
|
131
|
+
name?: string | undefined;
|
|
132
|
+
tags?: string[] | undefined;
|
|
133
|
+
} | undefined;
|
|
134
|
+
$schema?: string | undefined;
|
|
135
|
+
bindings?: {
|
|
136
|
+
capability: string;
|
|
137
|
+
alias?: string | undefined;
|
|
138
|
+
transform?: {
|
|
139
|
+
input?: Record<string, unknown> | undefined;
|
|
140
|
+
output?: Record<string, unknown> | undefined;
|
|
141
|
+
} | undefined;
|
|
142
|
+
}[] | undefined;
|
|
143
|
+
layout?: any;
|
|
144
|
+
}, {
|
|
145
|
+
id: string;
|
|
146
|
+
version: string;
|
|
147
|
+
environment: "web" | "api" | "cli" | "worker" | "edge" | "node" | "native" | "test";
|
|
148
|
+
metadata?: {
|
|
149
|
+
description?: string | undefined;
|
|
150
|
+
name?: string | undefined;
|
|
151
|
+
tags?: string[] | undefined;
|
|
152
|
+
} | undefined;
|
|
153
|
+
$schema?: string | undefined;
|
|
154
|
+
bindings?: {
|
|
155
|
+
capability: string;
|
|
156
|
+
alias?: string | undefined;
|
|
157
|
+
transform?: {
|
|
158
|
+
input?: Record<string, unknown> | undefined;
|
|
159
|
+
output?: Record<string, unknown> | undefined;
|
|
160
|
+
} | undefined;
|
|
161
|
+
}[] | undefined;
|
|
162
|
+
layout?: any;
|
|
163
|
+
}>;
|
|
164
|
+
/**
|
|
165
|
+
* Type guard for SurfaceJSON
|
|
166
|
+
*
|
|
167
|
+
* Returns true if the provided data conforms to the SurfaceJSON schema.
|
|
168
|
+
*/
|
|
169
|
+
export declare function isSurfaceJSON(data: unknown): data is SurfaceJSON;
|
|
170
|
+
/**
|
|
171
|
+
* Type guard for LayoutJSON
|
|
172
|
+
*
|
|
173
|
+
* Returns true if the provided data conforms to the LayoutJSON schema.
|
|
174
|
+
*/
|
|
175
|
+
export declare function isLayoutJSON(data: unknown): data is LayoutJSON;
|
|
176
|
+
/**
|
|
177
|
+
* Type guard for BindingJSON
|
|
178
|
+
*
|
|
179
|
+
* Returns true if the provided data conforms to the BindingJSON schema.
|
|
180
|
+
*/
|
|
181
|
+
export declare function isBindingJSON(data: unknown): data is BindingJSON;
|
|
182
|
+
//# sourceMappingURL=schemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/surface/schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAMtE;;GAEG;AACH,eAAO,MAAM,iBAAiB,8EAS5B,CAAA;AAMF;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS5B,CAAA;AAMF;;;;;;;;;;GAUG;AAIH,eAAO,MAAM,gBAAgB,EAAE,CAAC,CAAC,OAehC,CAAA;AAiBD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQ5B,CAAA;AAMF;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,WAAW,CAEhE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,UAAU,CAE9D;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,WAAW,CAEhE"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Surface JSON Zod Schemas
|
|
3
|
+
*
|
|
4
|
+
* Zod validation schemas for Surface JSON definitions
|
|
5
|
+
*
|
|
6
|
+
* Provides schema-based validation to replace manual string-based
|
|
7
|
+
* validation in the interpreter. Ensures SurfaceJSON, LayoutJSON,
|
|
8
|
+
* and BindingJSON conform to their TypeScript interfaces.
|
|
9
|
+
*
|
|
10
|
+
* @module @pwfabric/runtime/surface/schemas
|
|
11
|
+
*/
|
|
12
|
+
import { z } from 'zod';
|
|
13
|
+
// ============================================================
|
|
14
|
+
// ENVIRONMENT SCHEMA
|
|
15
|
+
// ============================================================
|
|
16
|
+
/**
|
|
17
|
+
* Valid environment types for surfaces
|
|
18
|
+
*/
|
|
19
|
+
export const environmentSchema = z.enum([
|
|
20
|
+
'web',
|
|
21
|
+
'api',
|
|
22
|
+
'cli',
|
|
23
|
+
'worker',
|
|
24
|
+
'edge',
|
|
25
|
+
'node',
|
|
26
|
+
'native',
|
|
27
|
+
'test',
|
|
28
|
+
]);
|
|
29
|
+
// ============================================================
|
|
30
|
+
// BINDING JSON SCHEMA
|
|
31
|
+
// ============================================================
|
|
32
|
+
/**
|
|
33
|
+
* Zod schema for BindingJSON
|
|
34
|
+
*
|
|
35
|
+
* Validates capability bindings in surface definitions.
|
|
36
|
+
* - capability: required string identifying the capability
|
|
37
|
+
* - alias: optional string alias for the binding
|
|
38
|
+
* - transform: optional input/output transform configuration
|
|
39
|
+
*/
|
|
40
|
+
export const bindingJsonSchema = z.object({
|
|
41
|
+
capability: z.string().min(1, 'Binding capability must be a non-empty string'),
|
|
42
|
+
alias: z.string().optional(),
|
|
43
|
+
transform: z
|
|
44
|
+
.object({
|
|
45
|
+
input: z.record(z.unknown()).optional(),
|
|
46
|
+
output: z.record(z.unknown()).optional(),
|
|
47
|
+
})
|
|
48
|
+
.optional(),
|
|
49
|
+
});
|
|
50
|
+
// ============================================================
|
|
51
|
+
// LAYOUT JSON SCHEMA (RECURSIVE)
|
|
52
|
+
// ============================================================
|
|
53
|
+
/**
|
|
54
|
+
* Zod schema for LayoutJSON
|
|
55
|
+
*
|
|
56
|
+
* Uses z.lazy() for recursive children validation.
|
|
57
|
+
* - type: required string identifying the layout element type
|
|
58
|
+
* - props: optional record of properties
|
|
59
|
+
* - children: optional array of nested LayoutJSON (recursive)
|
|
60
|
+
* - slot: optional named slot reference
|
|
61
|
+
* - if: optional conditional expression
|
|
62
|
+
* - each: optional loop configuration (items, as, key)
|
|
63
|
+
*/
|
|
64
|
+
// Recursive schema uses z.lazy() with a forward-declared type variable.
|
|
65
|
+
// The explicit ZodType cast is required because z.lazy() needs the
|
|
66
|
+
// schema variable to exist at the point of self-reference in children.
|
|
67
|
+
export const layoutJsonSchema = z.lazy(() => z.object({
|
|
68
|
+
type: z.string().min(1, 'Layout must have a type'),
|
|
69
|
+
props: z.record(z.unknown()).optional(),
|
|
70
|
+
children: z.array(layoutJsonSchema).optional(),
|
|
71
|
+
slot: z.string().optional(),
|
|
72
|
+
if: z.string().optional(),
|
|
73
|
+
each: z
|
|
74
|
+
.object({
|
|
75
|
+
items: z.string().min(1, 'Loop layout must have items expression'),
|
|
76
|
+
as: z.string().min(1, 'Loop layout must have as variable name'),
|
|
77
|
+
key: z.string().optional(),
|
|
78
|
+
})
|
|
79
|
+
.optional(),
|
|
80
|
+
}));
|
|
81
|
+
// ============================================================
|
|
82
|
+
// SURFACE JSON SCHEMA
|
|
83
|
+
// ============================================================
|
|
84
|
+
/**
|
|
85
|
+
* Metadata schema for surface definitions
|
|
86
|
+
*/
|
|
87
|
+
const metadataSchema = z
|
|
88
|
+
.object({
|
|
89
|
+
name: z.string().optional(),
|
|
90
|
+
description: z.string().optional(),
|
|
91
|
+
tags: z.array(z.string()).optional(),
|
|
92
|
+
})
|
|
93
|
+
.optional();
|
|
94
|
+
/**
|
|
95
|
+
* Zod schema for SurfaceJSON
|
|
96
|
+
*
|
|
97
|
+
* Validates the top-level surface definition structure.
|
|
98
|
+
* - id: required non-empty string
|
|
99
|
+
* - version: required non-empty string (semver)
|
|
100
|
+
* - environment: required enum of valid environment types
|
|
101
|
+
* - $schema: optional schema reference
|
|
102
|
+
* - metadata: optional name, description, tags
|
|
103
|
+
* - bindings: optional array of capability bindings
|
|
104
|
+
* - layout: required recursive layout definition
|
|
105
|
+
*/
|
|
106
|
+
export const surfaceJsonSchema = z.object({
|
|
107
|
+
$schema: z.string().optional(),
|
|
108
|
+
id: z.string().min(1, 'Surface must have a string id'),
|
|
109
|
+
version: z.string().min(1, 'Surface must have a string version'),
|
|
110
|
+
environment: environmentSchema,
|
|
111
|
+
metadata: metadataSchema,
|
|
112
|
+
bindings: z.array(bindingJsonSchema).optional(),
|
|
113
|
+
layout: layoutJsonSchema,
|
|
114
|
+
});
|
|
115
|
+
// ============================================================
|
|
116
|
+
// TYPE GUARDS
|
|
117
|
+
// ============================================================
|
|
118
|
+
/**
|
|
119
|
+
* Type guard for SurfaceJSON
|
|
120
|
+
*
|
|
121
|
+
* Returns true if the provided data conforms to the SurfaceJSON schema.
|
|
122
|
+
*/
|
|
123
|
+
export function isSurfaceJSON(data) {
|
|
124
|
+
return surfaceJsonSchema.safeParse(data).success;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Type guard for LayoutJSON
|
|
128
|
+
*
|
|
129
|
+
* Returns true if the provided data conforms to the LayoutJSON schema.
|
|
130
|
+
*/
|
|
131
|
+
export function isLayoutJSON(data) {
|
|
132
|
+
return layoutJsonSchema.safeParse(data).success;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Type guard for BindingJSON
|
|
136
|
+
*
|
|
137
|
+
* Returns true if the provided data conforms to the BindingJSON schema.
|
|
138
|
+
*/
|
|
139
|
+
export function isBindingJSON(data) {
|
|
140
|
+
return bindingJsonSchema.safeParse(data).success;
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/surface/schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Typed Transform Wrappers
|
|
3
|
+
*
|
|
4
|
+
* Typed runtime wrappers for TransformDescriptor.config.
|
|
5
|
+
* These do NOT modify @pwfabric/contracts. They provide typed alternatives
|
|
6
|
+
* that narrow the opaque Record<string, unknown> config.
|
|
7
|
+
*
|
|
8
|
+
* @module @pwfabric/runtime/surface/transforms
|
|
9
|
+
*/
|
|
10
|
+
import { z } from 'zod';
|
|
11
|
+
import type { TransformDescriptor } from '@pwfabric/contracts';
|
|
12
|
+
/**
|
|
13
|
+
* Config for 'map' transforms
|
|
14
|
+
*/
|
|
15
|
+
export interface MapTransformConfig {
|
|
16
|
+
readonly field: string;
|
|
17
|
+
readonly mapper: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Config for 'filter' transforms
|
|
21
|
+
*/
|
|
22
|
+
export interface FilterTransformConfig {
|
|
23
|
+
readonly field: string;
|
|
24
|
+
readonly predicate: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Config for 'pick' transforms
|
|
28
|
+
*/
|
|
29
|
+
export interface PickTransformConfig {
|
|
30
|
+
readonly fields: readonly string[];
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Config for 'omit' transforms
|
|
34
|
+
*/
|
|
35
|
+
export interface OmitTransformConfig {
|
|
36
|
+
readonly fields: readonly string[];
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Config for 'custom' transforms
|
|
40
|
+
*/
|
|
41
|
+
export interface CustomTransformConfig {
|
|
42
|
+
readonly handler: string;
|
|
43
|
+
readonly params?: Record<string, unknown>;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Discriminated union of all typed transform configs
|
|
47
|
+
*/
|
|
48
|
+
export type TypedTransformConfig = {
|
|
49
|
+
readonly type: 'map';
|
|
50
|
+
readonly config: MapTransformConfig;
|
|
51
|
+
} | {
|
|
52
|
+
readonly type: 'filter';
|
|
53
|
+
readonly config: FilterTransformConfig;
|
|
54
|
+
} | {
|
|
55
|
+
readonly type: 'pick';
|
|
56
|
+
readonly config: PickTransformConfig;
|
|
57
|
+
} | {
|
|
58
|
+
readonly type: 'omit';
|
|
59
|
+
readonly config: OmitTransformConfig;
|
|
60
|
+
} | {
|
|
61
|
+
readonly type: 'custom';
|
|
62
|
+
readonly config: CustomTransformConfig;
|
|
63
|
+
};
|
|
64
|
+
export declare const mapTransformConfigSchema: z.ZodObject<{
|
|
65
|
+
field: z.ZodString;
|
|
66
|
+
mapper: z.ZodString;
|
|
67
|
+
}, "strip", z.ZodTypeAny, {
|
|
68
|
+
field: string;
|
|
69
|
+
mapper: string;
|
|
70
|
+
}, {
|
|
71
|
+
field: string;
|
|
72
|
+
mapper: string;
|
|
73
|
+
}>;
|
|
74
|
+
export declare const filterTransformConfigSchema: z.ZodObject<{
|
|
75
|
+
field: z.ZodString;
|
|
76
|
+
predicate: z.ZodString;
|
|
77
|
+
}, "strip", z.ZodTypeAny, {
|
|
78
|
+
field: string;
|
|
79
|
+
predicate: string;
|
|
80
|
+
}, {
|
|
81
|
+
field: string;
|
|
82
|
+
predicate: string;
|
|
83
|
+
}>;
|
|
84
|
+
export declare const pickTransformConfigSchema: z.ZodObject<{
|
|
85
|
+
fields: z.ZodArray<z.ZodString, "many">;
|
|
86
|
+
}, "strip", z.ZodTypeAny, {
|
|
87
|
+
fields: string[];
|
|
88
|
+
}, {
|
|
89
|
+
fields: string[];
|
|
90
|
+
}>;
|
|
91
|
+
export declare const omitTransformConfigSchema: z.ZodObject<{
|
|
92
|
+
fields: z.ZodArray<z.ZodString, "many">;
|
|
93
|
+
}, "strip", z.ZodTypeAny, {
|
|
94
|
+
fields: string[];
|
|
95
|
+
}, {
|
|
96
|
+
fields: string[];
|
|
97
|
+
}>;
|
|
98
|
+
export declare const customTransformConfigSchema: z.ZodObject<{
|
|
99
|
+
handler: z.ZodString;
|
|
100
|
+
params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
101
|
+
}, "strip", z.ZodTypeAny, {
|
|
102
|
+
handler: string;
|
|
103
|
+
params?: Record<string, unknown> | undefined;
|
|
104
|
+
}, {
|
|
105
|
+
handler: string;
|
|
106
|
+
params?: Record<string, unknown> | undefined;
|
|
107
|
+
}>;
|
|
108
|
+
/**
|
|
109
|
+
* Result of validating a transform config
|
|
110
|
+
*/
|
|
111
|
+
export interface TransformValidationResult {
|
|
112
|
+
readonly valid: boolean;
|
|
113
|
+
readonly errors: readonly string[];
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Validate a transform descriptor's config against the typed schema
|
|
117
|
+
* for the given transform type.
|
|
118
|
+
*/
|
|
119
|
+
export declare function validateTransformConfig(type: TransformDescriptor['type'], config: Record<string, unknown>): TransformValidationResult;
|
|
120
|
+
/**
|
|
121
|
+
* Type guard that narrows an opaque TransformDescriptor into
|
|
122
|
+
* a TypedTransformConfig if the config passes validation.
|
|
123
|
+
*/
|
|
124
|
+
export declare function narrowTransformDescriptor(descriptor: TransformDescriptor): TypedTransformConfig | null;
|
|
125
|
+
/**
|
|
126
|
+
* Create a typed 'map' transform descriptor
|
|
127
|
+
*/
|
|
128
|
+
export declare function createMapTransform(config: MapTransformConfig): TransformDescriptor;
|
|
129
|
+
/**
|
|
130
|
+
* Create a typed 'filter' transform descriptor
|
|
131
|
+
*/
|
|
132
|
+
export declare function createFilterTransform(config: FilterTransformConfig): TransformDescriptor;
|
|
133
|
+
/**
|
|
134
|
+
* Create a typed 'pick' transform descriptor
|
|
135
|
+
*/
|
|
136
|
+
export declare function createPickTransform(config: PickTransformConfig): TransformDescriptor;
|
|
137
|
+
/**
|
|
138
|
+
* Create a typed 'omit' transform descriptor
|
|
139
|
+
*/
|
|
140
|
+
export declare function createOmitTransform(config: OmitTransformConfig): TransformDescriptor;
|
|
141
|
+
/**
|
|
142
|
+
* Create a typed 'custom' transform descriptor
|
|
143
|
+
*/
|
|
144
|
+
export declare function createCustomTransform(config: CustomTransformConfig): TransformDescriptor;
|
|
145
|
+
//# sourceMappingURL=transforms.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transforms.d.ts","sourceRoot":"","sources":["../../src/surface/transforms.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAM9D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC1C;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAA;CAAE,GAC7D;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAA;CAAE,GACnE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAA;CAAE,GAC/D;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAA;CAAE,GAC/D;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAA;CAAE,CAAA;AAMvE,eAAO,MAAM,wBAAwB;;;;;;;;;EAGnC,CAAA;AAEF,eAAO,MAAM,2BAA2B;;;;;;;;;EAGtC,CAAA;AAEF,eAAO,MAAM,yBAAyB;;;;;;EAEpC,CAAA;AAEF,eAAO,MAAM,yBAAyB;;;;;;EAEpC,CAAA;AAEF,eAAO,MAAM,2BAA2B;;;;;;;;;EAGtC,CAAA;AAiBF;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;CACnC;AAMD;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,mBAAmB,CAAC,MAAM,CAAC,EACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,yBAAyB,CAa3B;AAMD;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,mBAAmB,GAC9B,oBAAoB,GAAG,IAAI,CAiB7B;AAMD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,mBAAmB,CAGlF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,GAAG,mBAAmB,CAGxF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,GAAG,mBAAmB,CAGpF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,GAAG,mBAAmB,CAGpF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,GAAG,mBAAmB,CAGxF"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Typed Transform Wrappers
|
|
3
|
+
*
|
|
4
|
+
* Typed runtime wrappers for TransformDescriptor.config.
|
|
5
|
+
* These do NOT modify @pwfabric/contracts. They provide typed alternatives
|
|
6
|
+
* that narrow the opaque Record<string, unknown> config.
|
|
7
|
+
*
|
|
8
|
+
* @module @pwfabric/runtime/surface/transforms
|
|
9
|
+
*/
|
|
10
|
+
import { z } from 'zod';
|
|
11
|
+
// ============================================================
|
|
12
|
+
// ZOD SCHEMAS
|
|
13
|
+
// ============================================================
|
|
14
|
+
export const mapTransformConfigSchema = z.object({
|
|
15
|
+
field: z.string().min(1),
|
|
16
|
+
mapper: z.string().min(1),
|
|
17
|
+
});
|
|
18
|
+
export const filterTransformConfigSchema = z.object({
|
|
19
|
+
field: z.string().min(1),
|
|
20
|
+
predicate: z.string().min(1),
|
|
21
|
+
});
|
|
22
|
+
export const pickTransformConfigSchema = z.object({
|
|
23
|
+
fields: z.array(z.string().min(1)).min(1),
|
|
24
|
+
});
|
|
25
|
+
export const omitTransformConfigSchema = z.object({
|
|
26
|
+
fields: z.array(z.string().min(1)).min(1),
|
|
27
|
+
});
|
|
28
|
+
export const customTransformConfigSchema = z.object({
|
|
29
|
+
handler: z.string().min(1),
|
|
30
|
+
params: z.record(z.unknown()).optional(),
|
|
31
|
+
});
|
|
32
|
+
/**
|
|
33
|
+
* Map of transform types to their Zod schemas
|
|
34
|
+
*/
|
|
35
|
+
const transformConfigSchemas = {
|
|
36
|
+
map: mapTransformConfigSchema,
|
|
37
|
+
filter: filterTransformConfigSchema,
|
|
38
|
+
pick: pickTransformConfigSchema,
|
|
39
|
+
omit: omitTransformConfigSchema,
|
|
40
|
+
custom: customTransformConfigSchema,
|
|
41
|
+
};
|
|
42
|
+
// ============================================================
|
|
43
|
+
// VALIDATION FUNCTION
|
|
44
|
+
// ============================================================
|
|
45
|
+
/**
|
|
46
|
+
* Validate a transform descriptor's config against the typed schema
|
|
47
|
+
* for the given transform type.
|
|
48
|
+
*/
|
|
49
|
+
export function validateTransformConfig(type, config) {
|
|
50
|
+
const schema = transformConfigSchemas[type];
|
|
51
|
+
const result = schema.safeParse(config);
|
|
52
|
+
if (result.success) {
|
|
53
|
+
return { valid: true, errors: [] };
|
|
54
|
+
}
|
|
55
|
+
return {
|
|
56
|
+
valid: false,
|
|
57
|
+
errors: result.error.issues.map((i) => `${i.path.join('.')}: ${i.message}`),
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
// ============================================================
|
|
61
|
+
// TYPE GUARD
|
|
62
|
+
// ============================================================
|
|
63
|
+
/**
|
|
64
|
+
* Type guard that narrows an opaque TransformDescriptor into
|
|
65
|
+
* a TypedTransformConfig if the config passes validation.
|
|
66
|
+
*/
|
|
67
|
+
export function narrowTransformDescriptor(descriptor) {
|
|
68
|
+
if (!descriptor.config) {
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
const schema = transformConfigSchemas[descriptor.type];
|
|
72
|
+
const result = schema.safeParse(descriptor.config);
|
|
73
|
+
if (!result.success) {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
// The type assertion is safe because Zod validated the config shape
|
|
77
|
+
return {
|
|
78
|
+
type: descriptor.type,
|
|
79
|
+
config: result.data,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
// ============================================================
|
|
83
|
+
// FACTORY FUNCTIONS
|
|
84
|
+
// ============================================================
|
|
85
|
+
/**
|
|
86
|
+
* Create a typed 'map' transform descriptor
|
|
87
|
+
*/
|
|
88
|
+
export function createMapTransform(config) {
|
|
89
|
+
const parsed = mapTransformConfigSchema.parse(config);
|
|
90
|
+
return { type: 'map', config: parsed };
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Create a typed 'filter' transform descriptor
|
|
94
|
+
*/
|
|
95
|
+
export function createFilterTransform(config) {
|
|
96
|
+
const parsed = filterTransformConfigSchema.parse(config);
|
|
97
|
+
return { type: 'filter', config: parsed };
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Create a typed 'pick' transform descriptor
|
|
101
|
+
*/
|
|
102
|
+
export function createPickTransform(config) {
|
|
103
|
+
const parsed = pickTransformConfigSchema.parse(config);
|
|
104
|
+
return { type: 'pick', config: { ...parsed, fields: [...parsed.fields] } };
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Create a typed 'omit' transform descriptor
|
|
108
|
+
*/
|
|
109
|
+
export function createOmitTransform(config) {
|
|
110
|
+
const parsed = omitTransformConfigSchema.parse(config);
|
|
111
|
+
return { type: 'omit', config: { ...parsed, fields: [...parsed.fields] } };
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Create a typed 'custom' transform descriptor
|
|
115
|
+
*/
|
|
116
|
+
export function createCustomTransform(config) {
|
|
117
|
+
const parsed = customTransformConfigSchema.parse(config);
|
|
118
|
+
return { type: 'custom', config: parsed };
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=transforms.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transforms.js","sourceRoot":"","sources":["../../src/surface/transforms.ts"],"names":[],"mappings":"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"}
|