@pwfabric/runtime 1.0.0-rc.0 → 1.0.0-rc.1
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/README.md +35 -5
- package/dist/a11y/announcer.d.ts +0 -1
- package/dist/a11y/announcer.js.map +1 -1
- package/dist/a11y/contrast.d.ts +0 -1
- package/dist/a11y/contrast.js.map +1 -1
- package/dist/a11y/focus.d.ts +0 -1
- package/dist/a11y/focus.js.map +1 -1
- package/dist/a11y/index.d.ts +0 -1
- package/dist/a11y/index.js.map +1 -1
- package/dist/a11y/keyboard.d.ts +0 -1
- package/dist/a11y/keyboard.js.map +1 -1
- package/dist/adapters/default-image.d.ts +0 -1
- package/dist/adapters/default-image.js.map +1 -1
- package/dist/adapters/index.d.ts +0 -1
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/next-image.d.ts +0 -1
- package/dist/adapters/next-image.js.map +1 -1
- package/dist/adapters/types.d.ts +0 -1
- package/dist/adapters/types.js.map +1 -1
- package/dist/analytics/index.d.ts +0 -1
- package/dist/analytics/index.js.map +1 -1
- package/dist/analytics/tracker.d.ts +0 -1
- package/dist/analytics/tracker.js.map +1 -1
- package/dist/analytics/types.d.ts +0 -1
- package/dist/analytics/types.js.map +1 -1
- package/dist/auth/index.d.ts +0 -1
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/provider.d.ts +0 -1
- package/dist/auth/provider.js.map +1 -1
- package/dist/auth/types.d.ts +0 -1
- package/dist/auth/types.js.map +1 -1
- package/dist/binding/collection.d.ts +0 -1
- package/dist/binding/collection.js.map +1 -1
- package/dist/binding/datasource.d.ts +0 -1
- package/dist/binding/datasource.js.map +1 -1
- package/dist/binding/engine.d.ts +0 -1
- package/dist/binding/engine.js.map +1 -1
- package/dist/binding/expression.d.ts +0 -1
- package/dist/binding/expression.js.map +1 -1
- package/dist/binding/index.d.ts +0 -1
- package/dist/binding/index.js.map +1 -1
- package/dist/binding/two-way.d.ts +0 -1
- package/dist/binding/two-way.js.map +1 -1
- package/dist/binding/types.d.ts +0 -1
- package/dist/binding/types.js.map +1 -1
- package/dist/blocks/component-types.d.ts +0 -1
- package/dist/blocks/component-types.js.map +1 -1
- package/dist/blocks/composition-rules.d.ts +0 -1
- package/dist/blocks/composition-rules.js.map +1 -1
- package/dist/blocks/hooks.d.ts +0 -1
- package/dist/blocks/hooks.js.map +1 -1
- package/dist/blocks/index.d.ts +0 -2
- package/dist/blocks/index.js +5 -6
- package/dist/blocks/index.js.map +1 -1
- package/dist/blocks/registry.d.ts +0 -1
- package/dist/blocks/registry.js.map +1 -1
- package/dist/blocks/rule-engine.d.ts +0 -1
- package/dist/blocks/rule-engine.js.map +1 -1
- package/dist/blocks/surface-event-context.d.ts +0 -1
- package/dist/blocks/surface-event-context.js.map +1 -1
- package/dist/blocks/surface-id-context.d.ts +0 -1
- package/dist/blocks/surface-id-context.js.map +1 -1
- package/dist/bus.d.ts +0 -1
- package/dist/bus.js.map +1 -1
- package/dist/cache/index.d.ts +0 -1
- package/dist/cache/index.js.map +1 -1
- package/dist/cache/memory.d.ts +0 -1
- package/dist/cache/memory.js.map +1 -1
- package/dist/cache/types.d.ts +0 -1
- package/dist/cache/types.js.map +1 -1
- package/dist/capability/index.d.ts +0 -1
- package/dist/capability/index.js.map +1 -1
- package/dist/capability/kernel-capabilities.d.ts +0 -1
- package/dist/capability/kernel-capabilities.js.map +1 -1
- package/dist/capability/platform-capabilities.d.ts +0 -1
- package/dist/capability/platform-capabilities.js.map +1 -1
- package/dist/capability/type-mapping.d.ts +0 -1
- package/dist/capability/type-mapping.js.map +1 -1
- package/dist/capability/validation.d.ts +0 -1
- package/dist/capability/validation.js.map +1 -1
- package/dist/connectors/declared-connector.d.ts +0 -1
- package/dist/connectors/declared-connector.js.map +1 -1
- package/dist/connectors/engine-registry.d.ts +0 -1
- package/dist/connectors/engine-registry.js.map +1 -1
- package/dist/connectors/index.d.ts +0 -1
- package/dist/connectors/index.js.map +1 -1
- package/dist/connectors/module-loader.d.ts +0 -1
- package/dist/connectors/module-loader.js.map +1 -1
- package/dist/connectors/types.d.ts +0 -1
- package/dist/connectors/types.js.map +1 -1
- package/dist/context.d.ts +0 -1
- package/dist/context.js.map +1 -1
- package/dist/data/DataCapabilityProvider.d.ts +0 -1
- package/dist/data/DataCapabilityProvider.js.map +1 -1
- package/dist/data/index.d.ts +0 -1
- package/dist/data/index.js.map +1 -1
- package/dist/data/manager.d.ts +0 -1
- package/dist/data/manager.js.map +1 -1
- package/dist/data/types.d.ts +0 -1
- package/dist/data/types.js.map +1 -1
- package/dist/entity/aggregate.d.ts +0 -1
- package/dist/entity/aggregate.js.map +1 -1
- package/dist/entity/apply-query.d.ts +0 -1
- package/dist/entity/apply-query.js.map +1 -1
- package/dist/entity/behavior.d.ts +0 -1
- package/dist/entity/behavior.js.map +1 -1
- package/dist/entity/connector.d.ts +0 -1
- package/dist/entity/connector.js.map +1 -1
- package/dist/entity/connectors/index.d.ts +0 -1
- package/dist/entity/connectors/index.js.map +1 -1
- package/dist/entity/connectors/static.d.ts +0 -1
- package/dist/entity/connectors/static.js.map +1 -1
- package/dist/entity/entity-datasource.d.ts +0 -1
- package/dist/entity/entity-datasource.js.map +1 -1
- package/dist/entity/facade.d.ts +0 -1
- package/dist/entity/facade.js.map +1 -1
- package/dist/entity/http-connector.d.ts +0 -1
- package/dist/entity/http-connector.js.map +1 -1
- package/dist/entity/index.d.ts +0 -1
- package/dist/entity/index.js.map +1 -1
- package/dist/entity/postgres-connector.d.ts +0 -1
- package/dist/entity/postgres-connector.js.map +1 -1
- package/dist/entity/registry.d.ts +0 -1
- package/dist/entity/registry.js.map +1 -1
- package/dist/entity/store.d.ts +0 -1
- package/dist/entity/store.js.map +1 -1
- package/dist/entity/types.d.ts +0 -1
- package/dist/entity/types.js.map +1 -1
- package/dist/execution-context.d.ts +0 -1
- package/dist/execution-context.js.map +1 -1
- package/dist/executor.d.ts +0 -1
- package/dist/executor.js.map +1 -1
- package/dist/forms/form-entity-bridge.d.ts +0 -1
- package/dist/forms/form-entity-bridge.js.map +1 -1
- package/dist/forms/form-write-target.d.ts +0 -1
- package/dist/forms/form-write-target.js.map +1 -1
- package/dist/forms/index.d.ts +0 -1
- package/dist/forms/index.js.map +1 -1
- package/dist/forms/named-control-values.d.ts +0 -1
- package/dist/forms/named-control-values.js.map +1 -1
- package/dist/forms/processor.d.ts +0 -1
- package/dist/forms/processor.js.map +1 -1
- package/dist/forms/types.d.ts +0 -1
- package/dist/forms/types.js.map +1 -1
- package/dist/forms/validator.d.ts +0 -1
- package/dist/forms/validator.js.map +1 -1
- package/dist/graph/index.d.ts +0 -1
- package/dist/graph/index.js.map +1 -1
- package/dist/graph/resolver.d.ts +0 -1
- package/dist/graph/resolver.js.map +1 -1
- package/dist/graph/types.d.ts +0 -1
- package/dist/graph/types.js.map +1 -1
- package/dist/hooks/useInstalledAtoms.d.ts +0 -1
- package/dist/hooks/useInstalledAtoms.js.map +1 -1
- package/dist/i18n/index.d.ts +0 -1
- package/dist/i18n/index.js.map +1 -1
- package/dist/i18n/translator.d.ts +0 -1
- package/dist/i18n/translator.js.map +1 -1
- package/dist/i18n/types.d.ts +0 -1
- package/dist/i18n/types.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js.map +1 -1
- package/dist/kernel.d.ts +0 -1
- package/dist/kernel.js.map +1 -1
- package/dist/perf/budget.d.ts +0 -1
- package/dist/perf/budget.js.map +1 -1
- package/dist/perf/index.d.ts +0 -1
- package/dist/perf/index.js.map +1 -1
- package/dist/perf/render-timer.d.ts +0 -1
- package/dist/perf/render-timer.js.map +1 -1
- package/dist/perf/reporter.d.ts +0 -1
- package/dist/perf/reporter.js.map +1 -1
- package/dist/perf/web-vitals.d.ts +0 -1
- package/dist/perf/web-vitals.js.map +1 -1
- package/dist/registry.d.ts +0 -1
- package/dist/registry.js.map +1 -1
- package/dist/render/BehaviorSurfaceProvider.d.ts +0 -1
- package/dist/render/BehaviorSurfaceProvider.js.map +1 -1
- package/dist/render/BlockErrorBoundary.d.ts +0 -1
- package/dist/render/BlockErrorBoundary.js.map +1 -1
- package/dist/render/DataBoundSurfaceRenderer.d.ts +0 -1
- package/dist/render/DataBoundSurfaceRenderer.js.map +1 -1
- package/dist/render/DynamicBlockWrapper.d.ts +0 -1
- package/dist/render/DynamicBlockWrapper.js.map +1 -1
- package/dist/render/appearance-resolver.d.ts +0 -1
- package/dist/render/appearance-resolver.js.map +1 -1
- package/dist/render/capability-gate.d.ts +0 -1
- package/dist/render/capability-gate.js.map +1 -1
- package/dist/render/conditional-states-css.d.ts +0 -1
- package/dist/render/conditional-states-css.js.map +1 -1
- package/dist/render/connections-context.d.ts +0 -1
- package/dist/render/connections-context.js.map +1 -1
- package/dist/render/dark-theme-css.d.ts +0 -1
- package/dist/render/dark-theme-css.js.map +1 -1
- package/dist/render/data-binding-types.d.ts +0 -1
- package/dist/render/data-binding-types.js.map +1 -1
- package/dist/render/data-cache.d.ts +0 -1
- package/dist/render/data-cache.js.map +1 -1
- package/dist/render/derive-dark-theme.d.ts +0 -1
- package/dist/render/derive-dark-theme.js.map +1 -1
- package/dist/render/dynamic-artifact-context.d.ts +0 -1
- package/dist/render/dynamic-artifact-context.js.map +1 -1
- package/dist/render/dynamic-block-loader.d.ts +0 -1
- package/dist/render/dynamic-block-loader.js.map +1 -1
- package/dist/render/endpoint.d.ts +0 -1
- package/dist/render/endpoint.js.map +1 -1
- package/dist/render/entity-facade-context.d.ts +0 -1
- package/dist/render/entity-facade-context.js.map +1 -1
- package/dist/render/group-states-css.d.ts +0 -1
- package/dist/render/group-states-css.js.map +1 -1
- package/dist/render/hooks/useSurfaceEvents.d.ts +0 -1
- package/dist/render/hooks/useSurfaceEvents.js.map +1 -1
- package/dist/render/hooks/useSurfaceId.d.ts +0 -1
- package/dist/render/hooks/useSurfaceId.js.map +1 -1
- package/dist/render/index.d.ts +0 -1
- package/dist/render/index.js.map +1 -1
- package/dist/render/interaction-rule-engine.d.ts +0 -1
- package/dist/render/interaction-rule-engine.js.map +1 -1
- package/dist/render/keyframes-css.d.ts +0 -1
- package/dist/render/keyframes-css.js.map +1 -1
- package/dist/render/query-state.d.ts +0 -1
- package/dist/render/query-state.js.map +1 -1
- package/dist/render/renderer.d.ts +0 -1
- package/dist/render/renderer.js.map +1 -1
- package/dist/render/resolve-expressions.d.ts +0 -1
- package/dist/render/resolve-expressions.js.map +1 -1
- package/dist/render/responsive-style-css.d.ts +0 -1
- package/dist/render/responsive-style-css.js.map +1 -1
- package/dist/render/responsive.d.ts +0 -1
- package/dist/render/responsive.js.map +1 -1
- package/dist/render/scoped-css.d.ts +0 -1
- package/dist/render/scoped-css.js.map +1 -1
- package/dist/render/shell-selection.d.ts +0 -1
- package/dist/render/shell-selection.js.map +1 -1
- package/dist/render/states-css.d.ts +0 -1
- package/dist/render/states-css.js.map +1 -1
- package/dist/render/surface-data-context.d.ts +0 -1
- package/dist/render/surface-data-context.js.map +1 -1
- package/dist/render/surface-event-bus.d.ts +0 -1
- package/dist/render/surface-event-bus.js.map +1 -1
- package/dist/render/surface-event-context.d.ts +0 -1
- package/dist/render/surface-event-context.js.map +1 -1
- package/dist/render/surface-id-context.d.ts +0 -1
- package/dist/render/surface-id-context.js.map +1 -1
- package/dist/render/theme-utils.d.ts +0 -1
- package/dist/render/theme-utils.js.map +1 -1
- package/dist/render/types.d.ts +0 -1
- package/dist/render/types.js.map +1 -1
- package/dist/render/visibility-css.d.ts +0 -1
- package/dist/render/visibility-css.js.map +1 -1
- package/dist/render/width-scope.d.ts +0 -1
- package/dist/render/width-scope.js.map +1 -1
- package/dist/render/write-only-sources.d.ts +0 -1
- package/dist/render/write-only-sources.js.map +1 -1
- package/dist/routing/index.d.ts +0 -1
- package/dist/routing/index.js.map +1 -1
- package/dist/routing/router.d.ts +0 -1
- package/dist/routing/router.js.map +1 -1
- package/dist/routing/types.d.ts +0 -1
- package/dist/routing/types.js.map +1 -1
- package/dist/seo/generator.d.ts +0 -1
- package/dist/seo/generator.js.map +1 -1
- package/dist/seo/index.d.ts +0 -1
- package/dist/seo/index.js.map +1 -1
- package/dist/seo/types.d.ts +0 -1
- package/dist/seo/types.js.map +1 -1
- package/dist/state/index.d.ts +0 -1
- package/dist/state/index.js.map +1 -1
- package/dist/state/manager.d.ts +0 -1
- package/dist/state/manager.js.map +1 -1
- package/dist/state/store.d.ts +0 -1
- package/dist/state/store.js.map +1 -1
- package/dist/state/types.d.ts +0 -1
- package/dist/state/types.js.map +1 -1
- package/dist/surface/expression.d.ts +0 -1
- package/dist/surface/expression.js.map +1 -1
- package/dist/surface/index.d.ts +0 -1
- package/dist/surface/index.js.map +1 -1
- package/dist/surface/interpreter.d.ts +0 -1
- package/dist/surface/interpreter.js.map +1 -1
- package/dist/surface/layout.d.ts +0 -1
- package/dist/surface/layout.js.map +1 -1
- package/dist/surface/output.d.ts +0 -1
- package/dist/surface/output.js.map +1 -1
- package/dist/surface/primitives.d.ts +0 -1
- package/dist/surface/primitives.js.map +1 -1
- package/dist/surface/renderer.d.ts +0 -1
- package/dist/surface/renderer.js.map +1 -1
- package/dist/surface/schemas.d.ts +0 -1
- package/dist/surface/schemas.js.map +1 -1
- package/dist/surface/transforms.d.ts +0 -1
- package/dist/surface/transforms.js.map +1 -1
- package/dist/surface/types.d.ts +0 -1
- package/dist/surface/types.js.map +1 -1
- package/dist/surface/validation.d.ts +0 -1
- package/dist/surface/validation.js.map +1 -1
- package/dist/validator.d.ts +0 -1
- package/dist/validator.js.map +1 -1
- package/package.json +41 -40
- package/dist/__tests__/dom-test-setup.d.ts +0 -21
- package/dist/__tests__/dom-test-setup.d.ts.map +0 -1
- package/dist/__tests__/dom-test-setup.js +0 -36
- package/dist/__tests__/dom-test-setup.js.map +0 -1
- package/dist/a11y/announcer.d.ts.map +0 -1
- package/dist/a11y/contrast.d.ts.map +0 -1
- package/dist/a11y/focus.d.ts.map +0 -1
- package/dist/a11y/index.d.ts.map +0 -1
- package/dist/a11y/keyboard.d.ts.map +0 -1
- package/dist/adapters/default-image.d.ts.map +0 -1
- package/dist/adapters/index.d.ts.map +0 -1
- package/dist/adapters/next-image.d.ts.map +0 -1
- package/dist/adapters/types.d.ts.map +0 -1
- package/dist/analytics/index.d.ts.map +0 -1
- package/dist/analytics/tracker.d.ts.map +0 -1
- package/dist/analytics/types.d.ts.map +0 -1
- package/dist/auth/index.d.ts.map +0 -1
- package/dist/auth/provider.d.ts.map +0 -1
- package/dist/auth/types.d.ts.map +0 -1
- package/dist/binding/collection.d.ts.map +0 -1
- package/dist/binding/datasource.d.ts.map +0 -1
- package/dist/binding/engine.d.ts.map +0 -1
- package/dist/binding/expression.d.ts.map +0 -1
- package/dist/binding/index.d.ts.map +0 -1
- package/dist/binding/two-way.d.ts.map +0 -1
- package/dist/binding/types.d.ts.map +0 -1
- package/dist/blocks/__test-fixtures__/block-fixtures.d.ts +0 -40
- package/dist/blocks/__test-fixtures__/block-fixtures.d.ts.map +0 -1
- package/dist/blocks/__test-fixtures__/block-fixtures.js +0 -506
- package/dist/blocks/__test-fixtures__/block-fixtures.js.map +0 -1
- package/dist/blocks/component-types.d.ts.map +0 -1
- package/dist/blocks/composition-rules.d.ts.map +0 -1
- package/dist/blocks/hooks.d.ts.map +0 -1
- package/dist/blocks/index.d.ts.map +0 -1
- package/dist/blocks/registry.d.ts.map +0 -1
- package/dist/blocks/rule-engine.d.ts.map +0 -1
- package/dist/blocks/surface-event-context.d.ts.map +0 -1
- package/dist/blocks/surface-id-context.d.ts.map +0 -1
- package/dist/bus.d.ts.map +0 -1
- package/dist/cache/index.d.ts.map +0 -1
- package/dist/cache/memory.d.ts.map +0 -1
- package/dist/cache/types.d.ts.map +0 -1
- package/dist/capability/index.d.ts.map +0 -1
- package/dist/capability/kernel-capabilities.d.ts.map +0 -1
- package/dist/capability/platform-capabilities.d.ts.map +0 -1
- package/dist/capability/type-mapping.d.ts.map +0 -1
- package/dist/capability/validation.d.ts.map +0 -1
- package/dist/connectors/declared-connector.d.ts.map +0 -1
- package/dist/connectors/engine-registry.d.ts.map +0 -1
- package/dist/connectors/index.d.ts.map +0 -1
- package/dist/connectors/module-loader.d.ts.map +0 -1
- package/dist/connectors/types.d.ts.map +0 -1
- package/dist/context.d.ts.map +0 -1
- package/dist/data/DataCapabilityProvider.d.ts.map +0 -1
- package/dist/data/index.d.ts.map +0 -1
- package/dist/data/manager.d.ts.map +0 -1
- package/dist/data/types.d.ts.map +0 -1
- package/dist/entity/aggregate.d.ts.map +0 -1
- package/dist/entity/apply-query.d.ts.map +0 -1
- package/dist/entity/behavior.d.ts.map +0 -1
- package/dist/entity/connector.d.ts.map +0 -1
- package/dist/entity/connectors/index.d.ts.map +0 -1
- package/dist/entity/connectors/static.d.ts.map +0 -1
- package/dist/entity/entity-datasource.d.ts.map +0 -1
- package/dist/entity/facade.d.ts.map +0 -1
- package/dist/entity/http-connector.d.ts.map +0 -1
- package/dist/entity/index.d.ts.map +0 -1
- package/dist/entity/postgres-connector.d.ts.map +0 -1
- package/dist/entity/registry.d.ts.map +0 -1
- package/dist/entity/store.d.ts.map +0 -1
- package/dist/entity/types.d.ts.map +0 -1
- package/dist/execution-context.d.ts.map +0 -1
- package/dist/executor.d.ts.map +0 -1
- package/dist/forms/form-entity-bridge.d.ts.map +0 -1
- package/dist/forms/form-write-target.d.ts.map +0 -1
- package/dist/forms/index.d.ts.map +0 -1
- package/dist/forms/named-control-values.d.ts.map +0 -1
- package/dist/forms/processor.d.ts.map +0 -1
- package/dist/forms/types.d.ts.map +0 -1
- package/dist/forms/validator.d.ts.map +0 -1
- package/dist/graph/index.d.ts.map +0 -1
- package/dist/graph/resolver.d.ts.map +0 -1
- package/dist/graph/types.d.ts.map +0 -1
- package/dist/hooks/useInstalledAtoms.d.ts.map +0 -1
- package/dist/i18n/index.d.ts.map +0 -1
- package/dist/i18n/translator.d.ts.map +0 -1
- package/dist/i18n/types.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/kernel.d.ts.map +0 -1
- package/dist/perf/budget.d.ts.map +0 -1
- package/dist/perf/index.d.ts.map +0 -1
- package/dist/perf/render-timer.d.ts.map +0 -1
- package/dist/perf/reporter.d.ts.map +0 -1
- package/dist/perf/web-vitals.d.ts.map +0 -1
- package/dist/registry.d.ts.map +0 -1
- package/dist/render/BehaviorSurfaceProvider.d.ts.map +0 -1
- package/dist/render/BlockErrorBoundary.d.ts.map +0 -1
- package/dist/render/DataBoundSurfaceRenderer.d.ts.map +0 -1
- package/dist/render/DynamicBlockWrapper.d.ts.map +0 -1
- package/dist/render/appearance-resolver.d.ts.map +0 -1
- package/dist/render/capability-gate.d.ts.map +0 -1
- package/dist/render/conditional-states-css.d.ts.map +0 -1
- package/dist/render/connections-context.d.ts.map +0 -1
- package/dist/render/dark-theme-css.d.ts.map +0 -1
- package/dist/render/data-binding-types.d.ts.map +0 -1
- package/dist/render/data-cache.d.ts.map +0 -1
- package/dist/render/derive-dark-theme.d.ts.map +0 -1
- package/dist/render/dynamic-artifact-context.d.ts.map +0 -1
- package/dist/render/dynamic-block-loader.d.ts.map +0 -1
- package/dist/render/endpoint.d.ts.map +0 -1
- package/dist/render/entity-facade-context.d.ts.map +0 -1
- package/dist/render/group-states-css.d.ts.map +0 -1
- package/dist/render/hooks/useSurfaceEvents.d.ts.map +0 -1
- package/dist/render/hooks/useSurfaceId.d.ts.map +0 -1
- package/dist/render/index.d.ts.map +0 -1
- package/dist/render/interaction-rule-engine.d.ts.map +0 -1
- package/dist/render/keyframes-css.d.ts.map +0 -1
- package/dist/render/query-state.d.ts.map +0 -1
- package/dist/render/renderer.d.ts.map +0 -1
- package/dist/render/resolve-expressions.d.ts.map +0 -1
- package/dist/render/responsive-style-css.d.ts.map +0 -1
- package/dist/render/responsive.d.ts.map +0 -1
- package/dist/render/scoped-css.d.ts.map +0 -1
- package/dist/render/shell-selection.d.ts.map +0 -1
- package/dist/render/states-css.d.ts.map +0 -1
- package/dist/render/surface-data-context.d.ts.map +0 -1
- package/dist/render/surface-event-bus.d.ts.map +0 -1
- package/dist/render/surface-event-context.d.ts.map +0 -1
- package/dist/render/surface-id-context.d.ts.map +0 -1
- package/dist/render/theme-utils.d.ts.map +0 -1
- package/dist/render/types.d.ts.map +0 -1
- package/dist/render/visibility-css.d.ts.map +0 -1
- package/dist/render/width-scope.d.ts.map +0 -1
- package/dist/render/write-only-sources.d.ts.map +0 -1
- package/dist/routing/index.d.ts.map +0 -1
- package/dist/routing/router.d.ts.map +0 -1
- package/dist/routing/types.d.ts.map +0 -1
- package/dist/seo/generator.d.ts.map +0 -1
- package/dist/seo/index.d.ts.map +0 -1
- package/dist/seo/types.d.ts.map +0 -1
- package/dist/state/index.d.ts.map +0 -1
- package/dist/state/manager.d.ts.map +0 -1
- package/dist/state/store.d.ts.map +0 -1
- package/dist/state/types.d.ts.map +0 -1
- package/dist/surface/expression.d.ts.map +0 -1
- package/dist/surface/index.d.ts.map +0 -1
- package/dist/surface/interpreter.d.ts.map +0 -1
- package/dist/surface/layout.d.ts.map +0 -1
- package/dist/surface/output.d.ts.map +0 -1
- package/dist/surface/primitives.d.ts.map +0 -1
- package/dist/surface/renderer.d.ts.map +0 -1
- package/dist/surface/schemas.d.ts.map +0 -1
- package/dist/surface/transforms.d.ts.map +0 -1
- package/dist/surface/types.d.ts.map +0 -1
- package/dist/surface/validation.d.ts.map +0 -1
- package/dist/validator.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translator.js","sourceRoot":"","sources":["../../src/i18n/translator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"translator.js","sourceRoot":"","sources":["../../src/i18n/translator.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * i18n Capability Implementation\n *\n * Locale resolution, ICU-style string interpolation,\n * pluralization, and number/date formatting\n *\n * @module @pwfabric/runtime/i18n/translator\n */\n\nimport type {\n I18nCapability,\n LocaleId,\n LocaleDefinition,\n TranslationCatalog,\n PluralCategory,\n NumberFormatOptions,\n DateFormatOptions,\n} from './types.js'\n\n// ============================================================\n// DEFAULT I18N CAPABILITY\n// ============================================================\n\n/**\n * Default i18n capability implementation\n */\nexport class DefaultI18nCapability implements I18nCapability {\n private readonly locales = new Map<LocaleId, LocaleDefinition>()\n private readonly catalogs = new Map<LocaleId, Map<string, string>>()\n private currentLocale: LocaleId\n private readonly defaultLocale: LocaleId\n private readonly missingKeyHandler: MissingKeyHandler\n\n constructor(options?: I18nOptions) {\n this.defaultLocale = options?.defaultLocale ?? 'en'\n this.currentLocale = this.defaultLocale\n this.missingKeyHandler = options?.onMissingKey ?? defaultMissingKeyHandler\n }\n\n addLocale(locale: LocaleDefinition): void {\n this.locales.set(locale.id, locale)\n }\n\n loadTranslations(localeId: LocaleId, catalog: TranslationCatalog): void {\n let existing = this.catalogs.get(localeId)\n if (!existing) {\n existing = new Map()\n this.catalogs.set(localeId, existing)\n }\n\n for (const [key, value] of Object.entries(catalog)) {\n existing.set(key, value)\n }\n }\n\n resolveLocale(preferred: readonly LocaleId[]): LocaleId {\n // Try exact match\n for (const locale of preferred) {\n if (this.catalogs.has(locale)) {\n return locale\n }\n }\n\n // Try language-only match (e.g. 'en-US' -> 'en')\n for (const locale of preferred) {\n const language = locale.split('-')[0]\n if (language && this.catalogs.has(language)) {\n return language\n }\n }\n\n // Try matching registered locales by language prefix\n for (const locale of preferred) {\n const language = locale.split('-')[0]\n if (language) {\n for (const registeredId of this.catalogs.keys()) {\n if (registeredId.startsWith(language)) {\n return registeredId\n }\n }\n }\n }\n\n return this.defaultLocale\n }\n\n setLocale(localeId: LocaleId): void {\n this.currentLocale = localeId\n }\n\n getLocale(): LocaleId {\n return this.currentLocale\n }\n\n getLocaleIds(): readonly LocaleId[] {\n return Array.from(this.catalogs.keys())\n }\n\n translate(key: string, values?: Readonly<Record<string, unknown>>): string {\n const message = this.lookupKey(key, this.currentLocale)\n\n if (message === undefined) {\n return this.missingKeyHandler(key, this.currentLocale)\n }\n\n if (!values || Object.keys(values).length === 0) {\n return message\n }\n\n return this.interpolate(message, values)\n }\n\n t(key: string, values?: Readonly<Record<string, unknown>>): string {\n return this.translate(key, values)\n }\n\n formatNumber(value: number, options?: NumberFormatOptions): string {\n try {\n const intlOptions: Intl.NumberFormatOptions = {}\n\n if (options?.style) intlOptions.style = options.style\n if (options?.currency) intlOptions.currency = options.currency\n if (options?.minimumFractionDigits !== undefined) {\n intlOptions.minimumFractionDigits = options.minimumFractionDigits\n }\n if (options?.maximumFractionDigits !== undefined) {\n intlOptions.maximumFractionDigits = options.maximumFractionDigits\n }\n if (options?.useGrouping !== undefined) intlOptions.useGrouping = options.useGrouping\n\n return new Intl.NumberFormat(this.currentLocale, intlOptions).format(value)\n } catch {\n // Fallback to basic formatting\n return String(value)\n }\n }\n\n formatDate(value: Date | number, options?: DateFormatOptions): string {\n try {\n const date = typeof value === 'number' ? new Date(value) : value\n const intlOptions: Intl.DateTimeFormatOptions = {}\n\n if (options?.dateStyle) intlOptions.dateStyle = options.dateStyle\n if (options?.timeStyle) intlOptions.timeStyle = options.timeStyle\n if (options?.year) intlOptions.year = options.year\n if (options?.month) intlOptions.month = options.month\n if (options?.day) intlOptions.day = options.day\n if (options?.hour) intlOptions.hour = options.hour\n if (options?.minute) intlOptions.minute = options.minute\n if (options?.second) intlOptions.second = options.second\n if (options?.timeZone) intlOptions.timeZone = options.timeZone\n\n return new Intl.DateTimeFormat(this.currentLocale, intlOptions).format(date)\n } catch {\n // Fallback to ISO string\n const date = typeof value === 'number' ? new Date(value) : value\n return date.toISOString()\n }\n }\n\n hasTranslation(key: string): boolean {\n return this.lookupKey(key, this.currentLocale) !== undefined\n }\n\n clear(): void {\n this.locales.clear()\n this.catalogs.clear()\n this.currentLocale = this.defaultLocale\n }\n\n // ============================================================\n // PRIVATE METHODS\n // ============================================================\n\n private lookupKey(key: string, localeId: LocaleId): string | undefined {\n // Try current locale\n const catalog = this.catalogs.get(localeId)\n if (catalog?.has(key)) {\n return catalog.get(key)\n }\n\n // Try fallback chain\n const locale = this.locales.get(localeId)\n if (locale?.fallback) {\n return this.lookupKey(key, locale.fallback)\n }\n\n // Try default locale if different\n if (localeId !== this.defaultLocale) {\n const defaultCatalog = this.catalogs.get(this.defaultLocale)\n if (defaultCatalog?.has(key)) {\n return defaultCatalog.get(key)\n }\n }\n\n return undefined\n }\n\n /**\n * Interpolate ICU-style message patterns\n *\n * Supports:\n * - Simple: \"Hello, {name}!\"\n * - Plural: \"{count, plural, one {# item} other {# items}}\"\n * - Select: \"{gender, select, male {He} female {She} other {They}}\"\n */\n private interpolate(message: string, values: Readonly<Record<string, unknown>>): string {\n let result = ''\n let i = 0\n\n while (i < message.length) {\n if (message[i] === '{') {\n // Extract the full brace-balanced block\n const block = this.extractBraceBlock(message, i)\n if (block !== null) {\n const inner = block.content.trim()\n result += this.resolveBlock(inner, values)\n i = block.end + 1\n } else {\n result += message[i]\n i++\n }\n } else {\n result += message[i]\n i++\n }\n }\n\n return result\n }\n\n /**\n * Extract a brace-balanced block starting at position `start`\n * Returns the content between the outer braces and the end index\n */\n private extractBraceBlock(\n message: string,\n start: number\n ): { content: string; end: number } | null {\n if (message[start] !== '{') return null\n\n let depth = 0\n let i = start\n\n while (i < message.length) {\n if (message[i] === '{') {\n depth++\n } else if (message[i] === '}') {\n depth--\n if (depth === 0) {\n return {\n content: message.slice(start + 1, i),\n end: i,\n }\n }\n }\n i++\n }\n\n return null\n }\n\n /**\n * Resolve a single interpolation block (content between outer braces)\n */\n private resolveBlock(inner: string, values: Readonly<Record<string, unknown>>): string {\n // Check for plural/select: \"name, plural, ...\" or \"name, select, ...\"\n const commaIndex = inner.indexOf(',')\n if (commaIndex > 0) {\n const varName = inner.slice(0, commaIndex).trim()\n const rest = inner.slice(commaIndex + 1).trim()\n\n // Check for plural\n if (rest.startsWith('plural,')) {\n const pluralBody = rest.slice('plural,'.length).trim()\n const value = values[varName]\n if (typeof value === 'number') {\n return this.resolvePlural(value, pluralBody)\n }\n }\n\n // Check for select\n if (rest.startsWith('select,')) {\n const selectBody = rest.slice('select,'.length).trim()\n const value = values[varName]\n return this.resolveSelect(String(value), selectBody)\n }\n }\n\n // Simple interpolation: \"name\"\n const value = values[inner]\n if (value !== undefined) {\n return String(value)\n }\n\n return `{${inner}}`\n }\n\n private resolvePlural(count: number, body: string): string {\n const category = this.getPluralCategory(count)\n const options = this.parseICUOptions(body)\n\n // Try exact match first (=0, =1, etc.)\n const exactMatch = options.get(`=${count}`)\n if (exactMatch) {\n return exactMatch.replace(/#/g, String(count))\n }\n\n // Try category match\n const categoryMatch = options.get(category)\n if (categoryMatch) {\n return categoryMatch.replace(/#/g, String(count))\n }\n\n // Fallback to 'other'\n const other = options.get('other')\n if (other) {\n return other.replace(/#/g, String(count))\n }\n\n return String(count)\n }\n\n private resolveSelect(value: string, body: string): string {\n const options = this.parseICUOptions(body)\n\n const match = options.get(value)\n if (match) return match\n\n const other = options.get('other')\n if (other) return other\n\n return value\n }\n\n /**\n * Parse ICU option blocks like: \"one {# item} other {# items}\"\n * Handles nested braces correctly using a brace-depth parser.\n */\n private parseICUOptions(body: string): Map<string, string> {\n const options = new Map<string, string>()\n let i = 0\n\n while (i < body.length) {\n // Skip whitespace\n while (i < body.length && /\\s/.test(body[i] as string)) i++\n if (i >= body.length) break\n\n // Read key (non-whitespace until { or whitespace)\n let key = ''\n while (i < body.length && body[i] !== '{' && !/\\s/.test(body[i] as string)) {\n key += body[i]\n i++\n }\n if (!key) break\n\n // Skip whitespace before opening brace\n while (i < body.length && /\\s/.test(body[i] as string)) i++\n if (i >= body.length || body[i] !== '{') break\n\n // Extract brace-balanced value\n const block = this.extractBraceBlock(body, i)\n if (block === null) break\n\n options.set(key, block.content)\n i = block.end + 1\n }\n\n return options\n }\n\n private getPluralCategory(count: number): PluralCategory {\n // Basic English-style plural rules\n // For production use, this should use Intl.PluralRules\n try {\n const pr = new Intl.PluralRules(this.currentLocale)\n return pr.select(count) as PluralCategory\n } catch {\n // Fallback: simple English plural\n if (count === 0) return 'zero'\n if (count === 1) return 'one'\n return 'other'\n }\n }\n}\n\n// ============================================================\n// TYPES AND HELPERS\n// ============================================================\n\n/**\n * i18n construction options\n */\nexport interface I18nOptions {\n /** Default locale to use */\n readonly defaultLocale?: LocaleId\n\n /** Handler for missing translation keys */\n readonly onMissingKey?: MissingKeyHandler\n}\n\n/**\n * Handler called when a translation key is not found\n */\nexport type MissingKeyHandler = (key: string, locale: LocaleId) => string\n\n/**\n * Default handler returns the key itself as a visible fallback\n */\nfunction defaultMissingKeyHandler(key: string, _locale: LocaleId): string {\n return key\n}\n\n// ============================================================\n// FACTORY FUNCTION\n// ============================================================\n\n/**\n * Create an i18n capability instance\n */\nexport function createI18nCapability(options?: I18nOptions): I18nCapability {\n return new DefaultI18nCapability(options)\n}\n"]}
|
package/dist/i18n/types.d.ts
CHANGED
package/dist/i18n/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/i18n/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/i18n/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG","sourcesContent":["/**\n * i18n Capability Types\n *\n * Locale resolution, translation, pluralization, and formatting\n *\n * @module @pwfabric/runtime/i18n/types\n */\n\n// ============================================================\n// LOCALE\n// ============================================================\n\n/**\n * Locale identifier (BCP 47 format, e.g. 'en', 'en-US', 'pt-BR')\n */\nexport type LocaleId = string\n\n/**\n * Locale definition\n */\nexport interface LocaleDefinition {\n readonly id: LocaleId\n readonly name: string\n readonly nativeName?: string\n readonly direction?: 'ltr' | 'rtl'\n readonly fallback?: LocaleId\n}\n\n// ============================================================\n// TRANSLATION CATALOG\n// ============================================================\n\n/**\n * Translation catalog -- flat key-value pairs for a locale\n *\n * Keys can be dot-separated for namespacing (e.g. 'nav.home', 'errors.notFound').\n * Values support ICU-style interpolation:\n * - Simple: \"Hello, {name}!\"\n * - Plural: \"{count, plural, one {# item} other {# items}}\"\n * - Select: \"{gender, select, male {He} female {She} other {They}}\"\n */\nexport type TranslationCatalog = Readonly<Record<string, string>>\n\n// ============================================================\n// PLURALIZATION\n// ============================================================\n\n/**\n * Plural categories (CLDR)\n */\nexport type PluralCategory = 'zero' | 'one' | 'two' | 'few' | 'many' | 'other'\n\n/**\n * Plural rule function\n */\nexport type PluralRuleFunction = (count: number) => PluralCategory\n\n// ============================================================\n// FORMAT OPTIONS\n// ============================================================\n\n/**\n * Number format options\n */\nexport interface NumberFormatOptions {\n readonly style?: 'decimal' | 'currency' | 'percent' | 'unit'\n readonly currency?: string\n readonly minimumFractionDigits?: number\n readonly maximumFractionDigits?: number\n readonly useGrouping?: boolean\n}\n\n/**\n * Date format options\n */\nexport interface DateFormatOptions {\n readonly style?: 'short' | 'medium' | 'long' | 'full'\n readonly dateStyle?: 'short' | 'medium' | 'long' | 'full'\n readonly timeStyle?: 'short' | 'medium' | 'long' | 'full'\n readonly year?: 'numeric' | '2-digit'\n readonly month?: 'numeric' | '2-digit' | 'long' | 'short' | 'narrow'\n readonly day?: 'numeric' | '2-digit'\n readonly hour?: 'numeric' | '2-digit'\n readonly minute?: 'numeric' | '2-digit'\n readonly second?: 'numeric' | '2-digit'\n readonly timeZone?: string\n}\n\n// ============================================================\n// I18N CAPABILITY INTERFACE\n// ============================================================\n\n/**\n * i18n capability interface\n */\nexport interface I18nCapability {\n /** Register a locale definition */\n addLocale(locale: LocaleDefinition): void\n\n /** Load translations for a locale */\n loadTranslations(localeId: LocaleId, catalog: TranslationCatalog): void\n\n /** Resolve the best locale from a list of preferred locales */\n resolveLocale(preferred: readonly LocaleId[]): LocaleId\n\n /** Set the current active locale */\n setLocale(localeId: LocaleId): void\n\n /** Get the current active locale */\n getLocale(): LocaleId\n\n /** Get all registered locale IDs */\n getLocaleIds(): readonly LocaleId[]\n\n /** Translate a key with optional interpolation values */\n translate(key: string, values?: Readonly<Record<string, unknown>>): string\n\n /** Shorthand alias for translate */\n t(key: string, values?: Readonly<Record<string, unknown>>): string\n\n /** Format a number according to the current locale */\n formatNumber(value: number, options?: NumberFormatOptions): string\n\n /** Format a date according to the current locale */\n formatDate(value: Date | number, options?: DateFormatOptions): string\n\n /** Check if a translation key exists */\n hasTranslation(key: string): boolean\n\n /** Clear all locales and translations */\n clear(): void\n}\n"]}
|
package/dist/index.d.ts
CHANGED
|
@@ -62,4 +62,3 @@ export { KeyboardNavigationManager, RovingTabIndex, createKeyboardNav, createRov
|
|
|
62
62
|
export type { ContrastResult } from './a11y/index.js';
|
|
63
63
|
export { hexToRgb, relativeLuminance, contrastRatio, checkContrast, meetsWCAG, } from './a11y/index.js';
|
|
64
64
|
export { useInstalledAtoms, type InstalledAtomDescriptor, type InstalledAtomKind, type InstalledAtomsState, type InstalledAtomsFetcher, type AtomManifestPayload, type AtomBlockDefinitionMetadata, } from './hooks/useInstalledAtoms.js';
|
|
65
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @pwfabric/runtime\n *\n * Runtime and execution engine for the PWFabric platform.\n *\n * Runtime spine implementation\n * Surface rendering pipeline, layout system, primitives\n * Binding engine, auth, cache, graph resolver\n *\n * @module @pwfabric/runtime\n */\n\n// Re-export contracts for convenience\nexport * from '@pwfabric/contracts'\n\n// Fabric kernel\nexport { FabricKernel, createFabric } from './kernel.js'\n\n// Capability registry\nexport { type CapabilityRegistry, InMemoryCapabilityRegistry, createRegistry } from './registry.js'\n\n// Contract validator\nexport {\n type ContractValidator,\n RuntimeContractValidator,\n createValidator,\n isValidationSuccess,\n isValidationFailure,\n formatValidationErrors,\n} from './validator.js'\n\n// Event bus\nexport { InMemoryEventBus, createEventBus, createFabricEvent } from './bus.js'\n\n// Execution context\nexport {\n type InvocationHandler,\n RuntimeExecutionContext,\n ConsoleExecutionLogger,\n NoOpExecutionLogger,\n createExecutionContext,\n generateTraceId,\n generateSpanId,\n type CreateExecutionContextOptions,\n} from './execution-context.js'\n\n// Legacy exports (for backward compatibility)\nexport * from './context.js'\nexport * from './executor.js'\n\n// Surface rendering pipeline\nexport * from './surface/index.js'\n\n// Binding, cache, graph\nexport * from './binding/index.js'\nexport * from './cache/index.js'\nexport * from './graph/index.js'\n\n// Auth is intentionally NOT part of the default export: it holds the\n// MSAL/API-key providers, and pulling them into the default barrel would make\n// every consumer of `.` — including `@pwfabric/embed`'s browser-facing IIFE\n// build — carry them along. Available explicitly via `@pwfabric/runtime/auth`.\n\n// State and forms capabilities\nexport * from './state/index.js'\nexport * from './forms/index.js'\n\n// Entity system\nexport * from './entity/index.js'\n\n// Connector engine loading + registry (platform-side\n// execution of CONNECTOR/PROVIDER atom engines)\nexport * from './connectors/index.js'\nexport { SurfaceConnectionsContext, useSurfaceConnections } from './render/index.js'\n\n// Surface renderer (avoiding duplicates with surface/index.js)\nexport type {\n BlockComponentProps,\n BlockComponent,\n BlockComponentRegistry,\n CapabilityProvider,\n BlockContext,\n SurfaceEventType,\n SurfaceEvent,\n SurfaceRendererProps,\n BlockRendererProps,\n RenderableSurface,\n CapabilityType,\n ImageAdapter,\n ImageAdapterProps,\n SurfaceDataSourceKind,\n SurfaceDataSourceDefinition,\n SurfaceActionType,\n SurfaceAction,\n BlockActionProp,\n DataBoundSurface,\n DataBoundSurfaceRendererProps,\n} from './render/index.js'\n\n// Capability Gate (Entitlement enforcement)\nexport type {\n EntitlementContextValue,\n EntitlementProviderProps,\n GatedBlockPlaceholderProps,\n} from './render/index.js'\nexport { EntitlementProvider, useEntitlements, GatedBlockPlaceholder } from './render/index.js'\n\n// Dynamic Artifact Loading\nexport type {\n DynamicBlockWrapperProps,\n DynamicArtifactContextValue,\n DynamicArtifactProviderProps,\n} from './render/index.js'\nexport {\n BlockModuleLoader,\n DynamicBlockWrapper,\n DynamicArtifactProvider,\n preloadDynamicBlocks,\n useDynamicBlocks,\n useDynamicStarters,\n} from './render/index.js'\n\n// Block Error Boundary (crash isolation)\nexport { BlockErrorBoundary } from './render/index.js'\nexport { dataSourceCacheKey } from './render/index.js'\nexport type { SurfaceDataCache } from './render/index.js'\n\n// Surface event protocol\nexport { createSurfaceEventBus } from './render/index.js'\nexport { SurfaceEventContext } from './render/index.js'\nexport { useSurfaceEvents } from './render/index.js'\n\n// BehaviorSurfaceProvider — runtime surface wiring\nexport type { BehaviorSurfaceProviderProps } from './render/index.js'\nexport { BehaviorSurfaceProvider } from './render/index.js'\nexport { SurfaceIdContext } from './render/index.js'\nexport { useSurfaceId } from './render/index.js'\n\n// Shell × body: SPLIT shell selection (URL-projected), and the shell/body\n// classification the renderer lays out by.\nexport type {\n ShellSelectionStore,\n ShellSelectionOptions,\n ShellSelectionProviderProps,\n} from './render/index.js'\nexport {\n ShellSelectionContext,\n ShellSelectionProvider,\n createShellSelectionStore,\n useShellSelection,\n} from './render/index.js'\n\n// Image Adapters\nexport { DefaultImageAdapter, NextImageAdapter } from './adapters/index.js'\nexport {\n SurfaceRenderer as BlockSurfaceRenderer,\n BlockRenderer,\n getBlockIds,\n findBlockById,\n updateBlockById,\n DataBoundSurfaceRenderer,\n surfaceNeedsDataBinding,\n blockActionsOf,\n resolveEndpoint,\n resolveBlockExpressions,\n resolveString,\n surfaceThemeToCSS,\n} from './render/index.js'\n// legacy first-party `*Block` component re-exports +\n// `defaultBlockComponents` map retired. Production rendering loads\n// components from CDN bundles via `BlockModuleLoader`; the static\n// component registry no longer ships from this package.\n\n// Capability system (definitions, type mapping, validation)\nexport * from './capability/index.js'\n\n// Data, routing, SEO, analytics, i18n capabilities\nexport * from './data/index.js'\nexport * from './routing/index.js'\nexport * from './seo/index.js'\nexport * from './analytics/index.js'\nexport * from './i18n/index.js'\n\n// Performance monitoring module\nexport type {\n WebVitalName,\n WebVitalRating,\n WebVitalMetric,\n WebVitalCallback,\n WebVitalsReport,\n RenderMetrics,\n RenderTimerConfig,\n PerformanceBudget,\n BudgetViolation,\n BudgetCheckResult,\n ReportDestination,\n ReporterConfig,\n PerformanceReport,\n} from './perf/index.js'\nexport {\n WebVitalsCollector,\n createWebVitalsCollector,\n rateMetric,\n RenderTimer,\n createRenderTimer,\n DEFAULT_BUDGET,\n BudgetChecker,\n createBudgetChecker,\n PerformanceReporter,\n createPerformanceReporter,\n} from './perf/index.js'\n\n// Accessibility (a11y) module\nexport type { AnnouncementLevel, LiveRegionConfig } from './a11y/index.js'\nexport { LiveRegionAnnouncer, createAnnouncer } from './a11y/index.js'\nexport type { FocusTrapConfig } from './a11y/index.js'\nexport {\n FocusTrapManager,\n FocusRestorer,\n createSkipLink,\n createFocusTrap,\n createFocusRestorer,\n} from './a11y/index.js'\nexport type { ArrowDirection, KeyboardNavConfig } from './a11y/index.js'\nexport {\n KeyboardNavigationManager,\n RovingTabIndex,\n createKeyboardNav,\n createRovingTabIndex,\n} from './a11y/index.js'\nexport type { ContrastResult } from './a11y/index.js'\nexport {\n hexToRgb,\n relativeLuminance,\n contrastRatio,\n checkContrast,\n meetsWCAG,\n} from './a11y/index.js'\n\n// tenant-scoped pack atom registry hook\nexport {\n useInstalledAtoms,\n type InstalledAtomDescriptor,\n type InstalledAtomKind,\n type InstalledAtomsState,\n type InstalledAtomsFetcher,\n type AtomManifestPayload,\n type AtomBlockDefinitionMetadata,\n} from './hooks/useInstalledAtoms.js'\n\n// The engine names no tenant: a host's tenant model (plan, entitlements,\n// storage, installations) belongs to the host.\n//\n// What the engine offers is the mechanism without the vocabulary: `EntitlementProvider`\n// and `useEntitlements` in ./render/capability-gate.tsx still enforce a claim\n// set, typed structurally as `EntitlementClaims`.\n\n// canonical home for block infrastructure (registry,\n// composition rules, rule engine, contexts, hooks, default block\n// components, schemas, 45 first-party block defs). Subpath import\n// `@pwfabric/runtime/blocks` is the recommended consumer entry; the root\n// re-exports above (SurfaceEventContext / useSurfaceEvents /\n// SurfaceIdContext / useSurfaceId / defaultBlockComponents / 21 block\n// components) now resolve via `runtime/render/*` → `runtime/blocks/*`\n// preserving React-context identity.\n"]}
|
package/dist/kernel.d.ts
CHANGED
package/dist/kernel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kernel.js","sourceRoot":"","sources":["../src/kernel.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"kernel.js","sourceRoot":"","sources":["../src/kernel.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Fabric Kernel\n *\n * Runtime kernel for fabric orchestration\n *\n * The Fabric Kernel is the core runtime that manages capability\n * registration, dependency resolution, and execution lifecycle.\n *\n * @module @pwfabric/runtime/kernel\n */\n\nimport type {\n Fabric,\n FabricConfig,\n FabricState,\n FabricMetadata,\n FabricSnapshot,\n FabricId,\n CapabilityId,\n Capability,\n RegistrationResult,\n Resolution,\n ExecutionResult,\n ExecutionOptions,\n ExecutionError,\n SemanticVersion,\n Timestamp,\n EventBus,\n} from '@pwfabric/contracts'\nimport {\n fabricId,\n parseVersion,\n INITIAL_VERSION,\n VALID_TRANSITIONS,\n DEFAULT_FABRIC_CONFIG,\n executionOk,\n executionErr,\n} from '@pwfabric/contracts'\n\nimport { createRegistry, type CapabilityRegistry } from './registry.js'\nimport { createValidator, type ContractValidator, isValidationSuccess } from './validator.js'\nimport { createEventBus, createFabricEvent } from './bus.js'\nimport { createExecutionContext } from './execution-context.js'\n\n// ============================================================\n// HELPER FUNCTIONS\n// ============================================================\n\n/**\n * Build FabricMetadata from partial input\n */\nfunction buildFabricMetadata(input?: Partial<FabricMetadata>): FabricMetadata {\n const result: {\n name: string\n description?: string\n tags?: readonly string[]\n environment?: string\n } = {\n name: input?.name ?? 'PWFabric',\n }\n if (input?.description !== undefined) {\n result.description = input.description\n }\n if (input?.tags !== undefined) {\n result.tags = input.tags\n }\n if (input?.environment !== undefined) {\n result.environment = input.environment\n }\n return result\n}\n\n// ============================================================\n// FABRIC KERNEL IMPLEMENTATION\n// ============================================================\n\n/**\n * Fabric kernel implementation\n */\nexport class FabricKernel implements Fabric {\n readonly id: FabricId\n readonly version: SemanticVersion\n readonly metadata: FabricMetadata\n readonly createdAt: Timestamp\n\n private _state: FabricState = 'initializing'\n private readonly registry: CapabilityRegistry\n private readonly validator: ContractValidator\n private readonly eventBus: EventBus\n private readonly config: Required<FabricConfig>\n\n constructor(options: FabricConfig = {}) {\n this.id = fabricId(options.id ?? `fabric_${Date.now()}`)\n this.version = options.version\n ? (parseVersion(options.version) ?? INITIAL_VERSION)\n : INITIAL_VERSION\n\n // Build metadata with only defined properties\n this.metadata = buildFabricMetadata(options.metadata)\n\n this.createdAt = Date.now()\n\n // Build config\n this.config = {\n ...DEFAULT_FABRIC_CONFIG,\n ...options,\n } as Required<FabricConfig>\n\n this.registry = createRegistry()\n this.validator = createValidator()\n this.eventBus = createEventBus()\n\n // Transition to ready\n this.transitionState('ready')\n\n // Emit creation event\n this.eventBus.emit(\n createFabricEvent('fabric.created', {\n source: { fabricId: this.id },\n fabricId: this.id,\n version: `${this.version.major}.${this.version.minor}.${this.version.patch}`,\n })\n )\n }\n\n get state(): FabricState {\n return this._state\n }\n\n register<C extends Capability>(capability: C): RegistrationResult<C> {\n // Validate capability\n const validationResult = this.validator.validateCapability(capability)\n if (!isValidationSuccess(validationResult)) {\n return {\n success: false,\n error: {\n type: 'invalid_contract',\n id: capability.id,\n message: 'Capability validation failed',\n },\n }\n }\n\n // Register with registry\n const result = this.registry.register(capability)\n\n if (result.success) {\n this.eventBus.emit(\n createFabricEvent('capability.registered', {\n source: { fabricId: this.id, capabilityId: capability.id },\n capabilityId: capability.id,\n version: `${capability.version.major}.${capability.version.minor}.${capability.version.patch}`,\n })\n )\n }\n\n return result\n }\n\n resolve<C extends Capability>(id: CapabilityId): Resolution<C> {\n return this.registry.resolve<C>(id)\n }\n\n has(id: CapabilityId): boolean {\n return this.registry.has(id)\n }\n\n capabilities(): readonly CapabilityId[] {\n return this.registry.list()\n }\n\n async execute<TInput, TOutput>(\n id: CapabilityId,\n input: TInput,\n options: ExecutionOptions = {}\n ): Promise<ExecutionResult<TOutput>> {\n // Resolve capability\n const resolution = this.resolve(id)\n if (!resolution.found) {\n const error: ExecutionError = {\n type: 'capability_not_found',\n message: `Capability ${id} not found`,\n capabilityId: id,\n }\n return executionErr(error)\n }\n\n const capability = resolution.capability as Capability<CapabilityId, TInput, TOutput>\n\n // Validate input\n const inputValidation = capability.contract.validateInput(input)\n if (!inputValidation.success) {\n const error: ExecutionError = {\n type: 'validation_error',\n message: 'Input validation failed',\n capabilityId: id,\n cause: inputValidation.error,\n }\n return executionErr(error)\n }\n\n // Create execution context\n const timeout = options.timeout ?? this.config.defaultTimeout\n const contextOptions: Parameters<typeof createExecutionContext>[0] = {\n fabricId: this.id,\n timeout,\n invoker: async <I, O>(capId: CapabilityId, inp: I) => {\n return this.execute<I, O>(capId, inp, { timeout })\n },\n }\n if (options.contextData) {\n contextOptions.data = options.contextData\n }\n const context = createExecutionContext(contextOptions)\n\n // Emit execution started event\n this.eventBus.emit(\n createFabricEvent('capability.invoked', {\n source: { fabricId: this.id, capabilityId: id },\n capabilityId: id,\n traceId: context.traceId,\n })\n )\n\n const startTime = Date.now()\n\n try {\n // Execute with timeout\n const result = await Promise.race([\n capability.execute(inputValidation.data, context),\n new Promise<never>((_, reject) =>\n setTimeout(() => reject(new Error('Execution timeout')), timeout)\n ),\n ])\n\n // Validate output\n const outputValidation = capability.contract.validateOutput(result)\n if (!outputValidation.success) {\n const error: ExecutionError = {\n type: 'contract_violation',\n message: 'Output validation failed',\n capabilityId: id,\n cause: outputValidation.error,\n }\n return executionErr(error)\n }\n\n const duration = Date.now() - startTime\n\n // Emit completion event\n this.eventBus.emit(\n createFabricEvent('capability.completed', {\n source: { fabricId: this.id, capabilityId: id },\n capabilityId: id,\n traceId: context.traceId,\n duration,\n })\n )\n\n return executionOk(outputValidation.data as TOutput)\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error)\n\n const executionError: ExecutionError = {\n type:\n error instanceof Error && error.message === 'Execution timeout'\n ? 'timeout'\n : 'execution_error',\n message: errorMessage,\n capabilityId: id,\n cause: error,\n }\n\n // Emit failure event\n this.eventBus.emit(\n createFabricEvent('capability.failed', {\n source: { fabricId: this.id, capabilityId: id },\n capabilityId: id,\n traceId: context.traceId,\n error: errorMessage,\n })\n )\n\n return executionErr(executionError)\n }\n }\n\n async start(): Promise<void> {\n this.transitionState('running')\n this.eventBus.emit(\n createFabricEvent('fabric.started', {\n source: { fabricId: this.id },\n fabricId: this.id,\n })\n )\n }\n\n async shutdown(): Promise<void> {\n this.transitionState('stopping')\n\n // Wait for any pending operations (in a real implementation)\n await new Promise((resolve) => setTimeout(resolve, 10))\n\n this.transitionState('stopped')\n this.eventBus.emit(\n createFabricEvent('fabric.stopped', {\n source: { fabricId: this.id },\n fabricId: this.id,\n reason: 'graceful_shutdown',\n })\n )\n }\n\n /**\n * Get a snapshot of the fabric state\n */\n getSnapshot(): FabricSnapshot {\n return {\n id: this.id,\n version: this.version,\n state: this._state,\n metadata: this.metadata,\n capabilities: this.registry.list(),\n timestamp: Date.now(),\n }\n }\n\n /**\n * Get the event bus for subscribing to events\n */\n getEventBus(): EventBus {\n return this.eventBus\n }\n\n private transitionState(newState: FabricState): void {\n const validTransitions = VALID_TRANSITIONS[this._state]\n if (!validTransitions.includes(newState)) {\n throw new Error(\n `Invalid state transition from ${this._state} to ${newState}. Valid transitions: ${validTransitions.join(', ')}`\n )\n }\n this._state = newState\n }\n}\n\n// ============================================================\n// FACTORY FUNCTION\n// ============================================================\n\n/**\n * Create a new Fabric instance\n */\nexport function createFabric(options?: FabricConfig): FabricKernel {\n return new FabricKernel(options)\n}\n"]}
|
package/dist/perf/budget.d.ts
CHANGED
package/dist/perf/budget.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"budget.js","sourceRoot":"","sources":["../../src/perf/budget.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA8CH,+DAA+D;AAC/D,iBAAiB;AACjB,+DAA+D;AAE/D;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAgC;IACzD,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,IAAI;IACT,IAAI,EAAE,GAAG;IACT,aAAa,EAAE,GAAG;CACV,CAAA;AAEV,+DAA+D;AAC/D,iBAAiB;AACjB,+DAA+D;AAE/D;;;;GAIG;AACH,MAAM,gBAAgB,GAAG,GAAG,CAAA;AAE5B,kEAAkE;AAClE,MAAM,iBAAiB,GAAiD,IAAI,GAAG,CAG7E;IACA,CAAC,KAAK,EAAE,KAAK,CAAC;IACd,CAAC,KAAK,EAAE,KAAK,CAAC;IACd,CAAC,KAAK,EAAE,KAAK,CAAC;IACd,CAAC,KAAK,EAAE,KAAK,CAAC;IACd,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,eAAe,EAAE,eAAe,CAAC;IAClC,CAAC,eAAe,EAAE,eAAe,CAAC;CACnC,CAAC,CAAA;AAEF;;;;;;GAMG;AACH,MAAM,OAAO,aAAa;IAChB,MAAM,CAAmB;IAEjC;;OAEG;IACH,YAAY,MAA0B;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,cAAc,EAAE,CAAA;IACjF,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,OAAwC;QAC5C,MAAM,UAAU,GAAsB,EAAE,CAAA;QAExC,KAAK,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,iBAAiB,EAAE,CAAC;YACvD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YACxC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,SAAQ;YACV,CAAC;YAED,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;YACjC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,SAAQ;YACV,CAAC;YAED,IAAI,MAAM,GAAG,SAAS,EAAE,CAAC;gBACvB,MAAM,QAAQ,GACZ,MAAM,GAAG,SAAS,GAAG,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;gBAE7D,UAAU,CAAC,IAAI,CAAC;oBACd,MAAM,EAAE,SAAS;oBACjB,MAAM,EAAE,SAAS;oBACjB,MAAM;oBACN,QAAQ;iBACT,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QAED,OAAO;YACL,MAAM,EAAE,UAAU,CAAC,MAAM,KAAK,CAAC;YAC/B,UAAU;YACV,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAA;IACH,CAAC;IAED;;;;;;OAMG;IACH,SAAS,CAAC,MAAkC;QAC1C,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAA;IAC7C,CAAC;IAED;;;;OAIG;IACH,SAAS;QACP,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;IAC3B,CAAC;CACF;AAED,+DAA+D;AAC/D,UAAU;AACV,+DAA+D;AAE/D;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAA0B;IAC5D,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAA;AAClC,CAAC"}
|
|
1
|
+
{"version":3,"file":"budget.js","sourceRoot":"","sources":["../../src/perf/budget.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA8CH,+DAA+D;AAC/D,iBAAiB;AACjB,+DAA+D;AAE/D;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAgC;IACzD,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,IAAI;IACT,IAAI,EAAE,GAAG;IACT,aAAa,EAAE,GAAG;CACV,CAAA;AAEV,+DAA+D;AAC/D,iBAAiB;AACjB,+DAA+D;AAE/D;;;;GAIG;AACH,MAAM,gBAAgB,GAAG,GAAG,CAAA;AAE5B,kEAAkE;AAClE,MAAM,iBAAiB,GAAiD,IAAI,GAAG,CAG7E;IACA,CAAC,KAAK,EAAE,KAAK,CAAC;IACd,CAAC,KAAK,EAAE,KAAK,CAAC;IACd,CAAC,KAAK,EAAE,KAAK,CAAC;IACd,CAAC,KAAK,EAAE,KAAK,CAAC;IACd,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,eAAe,EAAE,eAAe,CAAC;IAClC,CAAC,eAAe,EAAE,eAAe,CAAC;CACnC,CAAC,CAAA;AAEF;;;;;;GAMG;AACH,MAAM,OAAO,aAAa;IAChB,MAAM,CAAmB;IAEjC;;OAEG;IACH,YAAY,MAA0B;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,cAAc,EAAE,CAAA;IACjF,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,OAAwC;QAC5C,MAAM,UAAU,GAAsB,EAAE,CAAA;QAExC,KAAK,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,iBAAiB,EAAE,CAAC;YACvD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YACxC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,SAAQ;YACV,CAAC;YAED,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;YACjC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,SAAQ;YACV,CAAC;YAED,IAAI,MAAM,GAAG,SAAS,EAAE,CAAC;gBACvB,MAAM,QAAQ,GACZ,MAAM,GAAG,SAAS,GAAG,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;gBAE7D,UAAU,CAAC,IAAI,CAAC;oBACd,MAAM,EAAE,SAAS;oBACjB,MAAM,EAAE,SAAS;oBACjB,MAAM;oBACN,QAAQ;iBACT,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QAED,OAAO;YACL,MAAM,EAAE,UAAU,CAAC,MAAM,KAAK,CAAC;YAC/B,UAAU;YACV,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAA;IACH,CAAC;IAED;;;;;;OAMG;IACH,SAAS,CAAC,MAAkC;QAC1C,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAA;IAC7C,CAAC;IAED;;;;OAIG;IACH,SAAS;QACP,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;IAC3B,CAAC;CACF;AAED,+DAA+D;AAC/D,UAAU;AACV,+DAA+D;AAE/D;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAA0B;IAC5D,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAA;AAClC,CAAC","sourcesContent":["/**\n * Performance Budget Enforcement\n *\n * Defines performance budgets based on web.dev recommendations\n * and checks measured metrics against those budgets. Violations\n * are reported with severity levels.\n *\n * @module @pwfabric/runtime/perf\n */\n\n// ============================================================\n// TYPES\n// ============================================================\n\n/** Performance budget thresholds */\nexport interface PerformanceBudget {\n /** Max Largest Contentful Paint in ms */\n readonly lcp?: number\n /** Max First Input Delay in ms */\n readonly fid?: number\n /** Max Cumulative Layout Shift score */\n readonly cls?: number\n /** Max First Contentful Paint in ms */\n readonly fcp?: number\n /** Max Time to First Byte in ms */\n readonly ttfb?: number\n /** Max bundle size in bytes */\n readonly maxBundleSize?: number\n /** Max render time in ms */\n readonly maxRenderTime?: number\n}\n\n/** A single budget violation */\nexport interface BudgetViolation {\n /** Metric that violated the budget */\n readonly metric: string\n /** Budget threshold */\n readonly budget: number\n /** Actual measured value */\n readonly actual: number\n /** Severity: warning if within 20% over, error if more */\n readonly severity: 'warning' | 'error'\n}\n\n/** Result of checking metrics against a budget */\nexport interface BudgetCheckResult {\n /** Whether all metrics passed the budget */\n readonly passed: boolean\n /** List of violations (empty if passed) */\n readonly violations: readonly BudgetViolation[]\n /** Timestamp when the check was performed */\n readonly checkedAt: number\n}\n\n// ============================================================\n// DEFAULT BUDGET\n// ============================================================\n\n/**\n * Default performance budgets based on web.dev \"good\" thresholds.\n */\nexport const DEFAULT_BUDGET: Readonly<PerformanceBudget> = {\n lcp: 2500,\n fid: 100,\n cls: 0.1,\n fcp: 1800,\n ttfb: 800,\n maxRenderTime: 100,\n} as const\n\n// ============================================================\n// BUDGET CHECKER\n// ============================================================\n\n/**\n * Multiplier above the budget threshold that escalates a\n * violation from \"warning\" to \"error\". A value 20% over\n * budget is a warning; more than 20% over is an error.\n */\nconst ERROR_MULTIPLIER = 1.2\n\n/** Mapping from budget keys to the metric keys used in check() */\nconst BUDGET_METRIC_MAP: ReadonlyMap<keyof PerformanceBudget, string> = new Map<\n keyof PerformanceBudget,\n string\n>([\n ['lcp', 'lcp'],\n ['fid', 'fid'],\n ['cls', 'cls'],\n ['fcp', 'fcp'],\n ['ttfb', 'ttfb'],\n ['maxBundleSize', 'maxBundleSize'],\n ['maxRenderTime', 'maxRenderTime'],\n])\n\n/**\n * Checks measured performance metrics against a budget.\n *\n * Uses default web.dev \"good\" thresholds unless overridden.\n * Violations are classified as \"warning\" (within 20% over)\n * or \"error\" (more than 20% over).\n */\nexport class BudgetChecker {\n private budget: PerformanceBudget\n\n /**\n * @param budget - Custom budget thresholds (merged with defaults)\n */\n constructor(budget?: PerformanceBudget) {\n this.budget = budget ? { ...DEFAULT_BUDGET, ...budget } : { ...DEFAULT_BUDGET }\n }\n\n /**\n * Check a set of metrics against the current budget.\n *\n * @param metrics - Map of metric name to measured value\n * @returns Check result with pass/fail and any violations\n */\n check(metrics: Partial<Record<string, number>>): BudgetCheckResult {\n const violations: BudgetViolation[] = []\n\n for (const [budgetKey, metricKey] of BUDGET_METRIC_MAP) {\n const threshold = this.budget[budgetKey]\n if (threshold === undefined) {\n continue\n }\n\n const actual = metrics[metricKey]\n if (actual === undefined) {\n continue\n }\n\n if (actual > threshold) {\n const severity: 'warning' | 'error' =\n actual > threshold * ERROR_MULTIPLIER ? 'error' : 'warning'\n\n violations.push({\n metric: metricKey,\n budget: threshold,\n actual,\n severity,\n })\n }\n }\n\n return {\n passed: violations.length === 0,\n violations,\n checkedAt: Date.now(),\n }\n }\n\n /**\n * Update the performance budget.\n *\n * Merges the provided values with the existing budget.\n *\n * @param budget - Partial budget to merge\n */\n setBudget(budget: Partial<PerformanceBudget>): void {\n this.budget = { ...this.budget, ...budget }\n }\n\n /**\n * Get the current performance budget.\n *\n * @returns Readonly copy of the budget\n */\n getBudget(): Readonly<PerformanceBudget> {\n return { ...this.budget }\n }\n}\n\n// ============================================================\n// FACTORY\n// ============================================================\n\n/**\n * Create a new BudgetChecker instance.\n *\n * @param budget - Optional custom budget thresholds\n * @returns A new BudgetChecker\n */\nexport function createBudgetChecker(budget?: PerformanceBudget): BudgetChecker {\n return new BudgetChecker(budget)\n}\n"]}
|
package/dist/perf/index.d.ts
CHANGED
|
@@ -14,4 +14,3 @@ export type { PerformanceBudget, BudgetViolation, BudgetCheckResult } from './bu
|
|
|
14
14
|
export { DEFAULT_BUDGET, BudgetChecker, createBudgetChecker } from './budget.js';
|
|
15
15
|
export type { ReportDestination, ReporterConfig, PerformanceReport } from './reporter.js';
|
|
16
16
|
export { PerformanceReporter, createPerformanceReporter } from './reporter.js';
|
|
17
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/perf/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/perf/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAUH,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAI1F,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAIlE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAIhF,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/perf/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAUH,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAI1F,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAIlE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAIhF,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA","sourcesContent":["/**\n * Performance Monitoring Module\n *\n * Provides Core Web Vitals collection, surface render timing,\n * performance budget enforcement, and unified reporting.\n *\n * @module @pwfabric/runtime/perf\n */\n\n// Web Vitals collection\nexport type {\n WebVitalName,\n WebVitalRating,\n WebVitalMetric,\n WebVitalCallback,\n WebVitalsReport,\n} from './web-vitals.js'\nexport { WebVitalsCollector, createWebVitalsCollector, rateMetric } from './web-vitals.js'\n\n// Render timing\nexport type { RenderMetrics, RenderTimerConfig } from './render-timer.js'\nexport { RenderTimer, createRenderTimer } from './render-timer.js'\n\n// Performance budget\nexport type { PerformanceBudget, BudgetViolation, BudgetCheckResult } from './budget.js'\nexport { DEFAULT_BUDGET, BudgetChecker, createBudgetChecker } from './budget.js'\n\n// Reporter\nexport type { ReportDestination, ReporterConfig, PerformanceReport } from './reporter.js'\nexport { PerformanceReporter, createPerformanceReporter } from './reporter.js'\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-timer.js","sourceRoot":"","sources":["../../src/perf/render-timer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"render-timer.js","sourceRoot":"","sources":["../../src/perf/render-timer.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Surface / Block Render Timing\n *\n * Tracks render durations for surfaces and blocks using\n * high-resolution timing. Maintains a bounded history of\n * render metrics for performance analysis.\n *\n * Uses `performance.now()` when available, falling back to\n * `Date.now()` for SSR environments.\n *\n * @module @pwfabric/runtime/perf\n */\n\n// ============================================================\n// TIMING UTILITY\n// ============================================================\n\n/**\n * Get the current high-resolution timestamp.\n *\n * Falls back to `Date.now()` when `performance` is not available (SSR).\n */\nfunction now(): number {\n if (typeof performance !== 'undefined' && typeof performance.now === 'function') {\n return performance.now()\n }\n return Date.now()\n}\n\n// ============================================================\n// TYPES\n// ============================================================\n\n/** Metrics for a single surface render cycle */\nexport interface RenderMetrics {\n /** Surface identifier */\n readonly surfaceId: string\n /** High-resolution render start time */\n readonly startTime: number\n /** High-resolution render end time */\n readonly endTime: number\n /** Render duration in milliseconds */\n readonly duration: number\n /** Number of blocks rendered */\n readonly blockCount: number\n}\n\n/** Configuration for the RenderTimer */\nexport interface RenderTimerConfig {\n /** Maximum number of entries to keep in history (default: 100) */\n maxEntries?: number\n}\n\n// ============================================================\n// DEFAULTS\n// ============================================================\n\nconst DEFAULT_MAX_ENTRIES = 100\n\n// ============================================================\n// RENDER TIMER\n// ============================================================\n\n/** Active render tracking entry */\ninterface ActiveRender {\n readonly startTime: number\n readonly blockCount: number\n}\n\n/**\n * Tracks surface render timing with bounded history.\n *\n * Call `startRender` before a surface renders and `endRender`\n * when rendering completes. The timer records the duration and\n * maintains a history of recent render metrics.\n */\nexport class RenderTimer {\n private entries = new Map<string, ActiveRender>()\n private history: RenderMetrics[] = []\n private readonly maxEntries: number\n\n /**\n * @param config - Optional configuration\n */\n constructor(config?: RenderTimerConfig) {\n this.maxEntries = config?.maxEntries ?? DEFAULT_MAX_ENTRIES\n }\n\n /**\n * Mark the start of a surface render.\n *\n * @param surfaceId - Unique identifier for the surface\n * @param blockCount - Number of blocks being rendered (default: 0)\n */\n startRender(surfaceId: string, blockCount = 0): void {\n this.entries.set(surfaceId, {\n startTime: now(),\n blockCount,\n })\n }\n\n /**\n * Mark the end of a surface render and record metrics.\n *\n * @param surfaceId - The surface identifier passed to `startRender`\n * @returns The render metrics, or `undefined` if no matching start was found\n */\n endRender(surfaceId: string): RenderMetrics | undefined {\n const entry = this.entries.get(surfaceId)\n if (!entry) {\n return undefined\n }\n\n this.entries.delete(surfaceId)\n\n const endTime = now()\n const metrics: RenderMetrics = {\n surfaceId,\n startTime: entry.startTime,\n endTime,\n duration: endTime - entry.startTime,\n blockCount: entry.blockCount,\n }\n\n this.history.push(metrics)\n\n // Enforce bounded history\n if (this.history.length > this.maxEntries) {\n this.history = this.history.slice(-this.maxEntries)\n }\n\n return metrics\n }\n\n /**\n * Calculate the average render time across all recorded renders.\n *\n * @returns Average duration in milliseconds, or 0 if no renders recorded\n */\n getAverageRenderTime(): number {\n if (this.history.length === 0) {\n return 0\n }\n const total = this.history.reduce((sum, m) => sum + m.duration, 0)\n return total / this.history.length\n }\n\n /**\n * Get the full render history.\n *\n * @returns Readonly array of render metrics\n */\n getHistory(): readonly RenderMetrics[] {\n return this.history\n }\n\n /**\n * Get the slowest renders, sorted by duration descending.\n *\n * @param count - Number of entries to return (default: 5)\n * @returns Array of the slowest render metrics\n */\n getSlowest(count = 5): RenderMetrics[] {\n return [...this.history].sort((a, b) => b.duration - a.duration).slice(0, count)\n }\n\n /**\n * Clear all history and active entries.\n */\n clear(): void {\n this.entries.clear()\n this.history = []\n }\n}\n\n// ============================================================\n// FACTORY\n// ============================================================\n\n/**\n * Create a new RenderTimer instance.\n *\n * @param config - Optional configuration\n * @returns A new RenderTimer\n */\nexport function createRenderTimer(config?: RenderTimerConfig): RenderTimer {\n return new RenderTimer(config)\n}\n"]}
|
package/dist/perf/reporter.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../src/perf/reporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AA2C3C,+DAA+D;AAC/D,WAAW;AACX,+DAA+D;AAE/D,MAAM,qBAAqB,GAAG,CAAC,CAAA;AAE/B,+DAA+D;AAC/D,WAAW;AACX,+DAA+D;AAE/D;;;;;;;GAOG;AACH,MAAM,OAAO,mBAAmB;IACb,WAAW,CAAmB;IAC9B,gBAAgB,CAEpB;IACI,QAAQ,CAAQ;IAChB,oBAAoB,CAAS;IAC7B,gBAAgB,CAAS;IAElC,SAAS,CAAiC;IAC1C,WAAW,CAA0B;IACrC,aAAa,CAA4B;IACzC,UAAU,CAA6C;IAE/D;;OAEG;IACH,YAAY,MAAsB;QAChC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAA;QACrC,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAA;QACvC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAA;QACpC,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,IAAI,IAAI,CAAA;QAC/D,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,IAAI,IAAI,CAAA;QAEvD,4BAA4B;QAC5B,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,kBAAkB,EAAE,CAAA;QAC3C,CAAC;QAED,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,EAAE,CAAA;QACtC,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACvD,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK;QACH,8BAA8B;QAC9B,IAAI,CAAC,SAAS,EAAE,eAAe,EAAE,CAAA;QAEjC,4BAA4B;QAC5B,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;gBACjC,KAAK,IAAI,CAAC,MAAM,EAAE,CAAA;YACpB,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;QACnB,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,MAAM;QACV,MAAM,iBAAiB,GAAsB;YAC3C,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,SAAS,EAAE,IAAI,CAAC,qBAAqB,EAAE;YACvC,aAAa,EAAE,IAAI,CAAC,yBAAyB,EAAE;YAC/C,WAAW,EAAE,IAAI,CAAC,uBAAuB,EAAE;SAC5C,CAAA;QAED,MAAM,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAA;QAE3C,OAAO,iBAAiB,CAAA;IAC1B,CAAC;IAED;;;;;OAKG;IACH,IAAI;QACF,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAClC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAC9B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAA;QAC7B,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IAED;;;;;;OAMG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,CAAC,IAAI,EAAE,CAAA;QACX,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,CAAA;QACzB,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,CAAA;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,WAAW,GAAG,SAAS,CAAA;QAC5B,IAAI,CAAC,aAAa,GAAG,SAAS,CAAA;IAChC,CAAC;IAED,6DAA6D;IAC7D,2BAA2B;IAC3B,6DAA6D;IAErD,qBAAqB;QAC3B,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAC9C,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAA;IACnC,CAAC;IAEO,yBAAyB;QAC/B,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACpD,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAA;QAC7C,OAAO;YACL,iBAAiB,EAAE,IAAI,CAAC,WAAW,CAAC,oBAAoB,EAAE;YAC1D,YAAY,EAAE,OAAO,CAAC,MAAM;YAC5B,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,qBAAqB,CAAC;SACnE,CAAA;IACH,CAAC;IAEO,uBAAuB;QAC7B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,4DAA4D;QAC5D,MAAM,OAAO,GAA2B,EAAE,CAAA;QAE1C,aAAa;QACb,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAA;YAC/C,IAAI,YAAY,CAAC,GAAG;gBAAE,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAA;YAC7D,IAAI,YAAY,CAAC,GAAG;gBAAE,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAA;YAC7D,IAAI,YAAY,CAAC,GAAG;gBAAE,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAA;YAC7D,IAAI,YAAY,CAAC,GAAG;gBAAE,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAA;YAC7D,IAAI,YAAY,CAAC,IAAI;gBAAE,OAAO,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAA;QAClE,CAAC;QAED,iBAAiB;QACjB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,oBAAoB,EAAE,CAAA;YACnD,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;gBACZ,OAAO,CAAC,eAAe,CAAC,GAAG,GAAG,CAAA;YAChC,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC1C,CAAC;IAED,6DAA6D;IAC7D,2BAA2B;IAC3B,6DAA6D;IAErD,KAAK,CAAC,aAAa,CAAC,iBAAoC;QAC9D,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC;YACzB,KAAK,SAAS;gBACZ,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAA;gBACpC,MAAK;YAEP,KAAK,QAAQ;gBACX,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBAC1B,MAAM,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAA;gBAChD,CAAC;gBACD,MAAK;QACT,CAAC;IACH,CAAC;IAEO,YAAY,CAAC,iBAAoC;QACvD,IAAI,OAAO,UAAU,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;YAC9C,OAAM;QACR,CAAC;QAED,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAA;QAC9B,MAAM,KAAK,GAAG,OAAO,GAAG,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAC/E,MAAM,QAAQ,GAAG,OAAO,GAAG,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAExF,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,wBAAwB,CAAC,CAAA;QACjC,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;QACpC,CAAC;QAED,IAAI,iBAAiB,CAAC,SAAS,EAAE,CAAC;YAChC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAA;QACtD,CAAC;QAED,IAAI,iBAAiB,CAAC,aAAa,EAAE,CAAC;YACpC,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAA;QAC9D,CAAC;QAED,IAAI,iBAAiB,CAAC,WAAW,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,iBAAiB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAA;YACrE,GAAG,CAAC,IAAI,CAAC,iBAAiB,MAAM,EAAE,EAAE,iBAAiB,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;QAC/E,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,EAAE,CAAA;QACZ,CAAC;IACH,CAAC;CACF;AAED,+DAA+D;AAC/D,UAAU;AACV,+DAA+D;AAE/D;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAsB;IAC9D,OAAO,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAA;AACxC,CAAC"}
|
|
1
|
+
{"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../src/perf/reporter.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Performance Metric Reporter\n *\n * Orchestrates Web Vitals collection, render timing, and budget\n * checking into a unified reporting pipeline. Supports periodic\n * automatic reporting or manual on-demand reports.\n *\n * @module @pwfabric/runtime/perf\n */\n\nimport type { WebVitalsReport } from './web-vitals.js'\nimport type { RenderMetrics } from './render-timer.js'\nimport type { PerformanceBudget, BudgetCheckResult } from './budget.js'\nimport { WebVitalsCollector } from './web-vitals.js'\nimport { RenderTimer } from './render-timer.js'\nimport { BudgetChecker } from './budget.js'\n\n// ============================================================\n// TYPES\n// ============================================================\n\n/** Where to send performance reports */\nexport type ReportDestination = 'console' | 'custom'\n\n/** Reporter configuration */\nexport interface ReporterConfig {\n /** Report destination */\n readonly destination: ReportDestination\n /** Custom report handler (required when destination is 'custom') */\n readonly onReport?: (report: PerformanceReport) => void | Promise<void>\n /** Reporting interval in ms (0 = manual only, default: 0) */\n readonly interval?: number\n /** Whether to include render metrics (default: true) */\n readonly includeRenderMetrics?: boolean\n /** Whether to include Web Vitals (default: true) */\n readonly includeWebVitals?: boolean\n /** Performance budget to check against */\n readonly budget?: PerformanceBudget\n}\n\n/** A complete performance report */\nexport interface PerformanceReport {\n /** Timestamp when the report was generated */\n readonly timestamp: number\n /** Web Vitals snapshot */\n readonly webVitals?: WebVitalsReport | undefined\n /** Render timing summary */\n readonly renderMetrics?:\n | {\n readonly averageRenderTime: number\n readonly totalRenders: number\n readonly slowestRenders: readonly RenderMetrics[]\n }\n | undefined\n /** Budget check result */\n readonly budgetCheck?: BudgetCheckResult | undefined\n}\n\n// ============================================================\n// DEFAULTS\n// ============================================================\n\nconst DEFAULT_SLOWEST_COUNT = 5\n\n// ============================================================\n// REPORTER\n// ============================================================\n\n/**\n * Orchestrates performance monitoring components and generates\n * unified performance reports.\n *\n * Manages a WebVitalsCollector, RenderTimer, and BudgetChecker\n * internally. Supports automatic periodic reporting or manual\n * on-demand report generation.\n */\nexport class PerformanceReporter {\n private readonly destination: ReportDestination\n private readonly onReportCallback?:\n | ((report: PerformanceReport) => void | Promise<void>)\n | undefined\n private readonly interval: number\n private readonly includeRenderMetrics: boolean\n private readonly includeWebVitals: boolean\n\n private webVitals?: WebVitalsCollector | undefined\n private renderTimer?: RenderTimer | undefined\n private budgetChecker?: BudgetChecker | undefined\n private intervalId?: ReturnType<typeof setInterval> | undefined\n\n /**\n * @param config - Reporter configuration\n */\n constructor(config: ReporterConfig) {\n this.destination = config.destination\n this.onReportCallback = config.onReport\n this.interval = config.interval ?? 0\n this.includeRenderMetrics = config.includeRenderMetrics ?? true\n this.includeWebVitals = config.includeWebVitals ?? true\n\n // Initialize sub-components\n if (this.includeWebVitals) {\n this.webVitals = new WebVitalsCollector()\n }\n\n if (this.includeRenderMetrics) {\n this.renderTimer = new RenderTimer()\n }\n\n if (config.budget) {\n this.budgetChecker = new BudgetChecker(config.budget)\n }\n }\n\n /**\n * Start periodic reporting and Web Vitals collection.\n *\n * If an interval is configured, reports will be generated\n * automatically at that interval. Web Vitals collection\n * starts immediately.\n */\n start(): void {\n // Start web vitals collection\n this.webVitals?.startCollecting()\n\n // Set up periodic reporting\n if (this.interval > 0) {\n this.intervalId = setInterval(() => {\n void this.report()\n }, this.interval)\n }\n }\n\n /**\n * Generate and deliver a performance report.\n *\n * Collects metrics from all active sub-components, runs\n * budget checks if configured, and delivers the report\n * to the configured destination.\n *\n * @returns The generated performance report\n */\n async report(): Promise<PerformanceReport> {\n const performanceReport: PerformanceReport = {\n timestamp: Date.now(),\n webVitals: this.buildWebVitalsSection(),\n renderMetrics: this.buildRenderMetricsSection(),\n budgetCheck: this.buildBudgetCheckSection(),\n }\n\n await this.deliverReport(performanceReport)\n\n return performanceReport\n }\n\n /**\n * Stop periodic reporting.\n *\n * Does not stop Web Vitals collection or clear history.\n * Use `dispose()` for full cleanup.\n */\n stop(): void {\n if (this.intervalId !== undefined) {\n clearInterval(this.intervalId)\n this.intervalId = undefined\n }\n }\n\n /**\n * Get the internal WebVitalsCollector.\n *\n * Useful for registering custom metric callbacks.\n *\n * @returns The collector, or undefined if Web Vitals are disabled\n */\n getWebVitals(): WebVitalsCollector | undefined {\n return this.webVitals\n }\n\n /**\n * Get the internal RenderTimer.\n *\n * Useful for tracking surface render timing externally.\n *\n * @returns The timer, or undefined if render metrics are disabled\n */\n getRenderTimer(): RenderTimer | undefined {\n return this.renderTimer\n }\n\n /**\n * Stop reporting and release all resources.\n */\n dispose(): void {\n this.stop()\n this.webVitals?.dispose()\n this.renderTimer?.clear()\n this.webVitals = undefined\n this.renderTimer = undefined\n this.budgetChecker = undefined\n }\n\n // ----------------------------------------------------------\n // Private: report building\n // ----------------------------------------------------------\n\n private buildWebVitalsSection(): WebVitalsReport | undefined {\n if (!this.includeWebVitals || !this.webVitals) {\n return undefined\n }\n return this.webVitals.getReport()\n }\n\n private buildRenderMetricsSection(): PerformanceReport['renderMetrics'] | undefined {\n if (!this.includeRenderMetrics || !this.renderTimer) {\n return undefined\n }\n\n const history = this.renderTimer.getHistory()\n return {\n averageRenderTime: this.renderTimer.getAverageRenderTime(),\n totalRenders: history.length,\n slowestRenders: this.renderTimer.getSlowest(DEFAULT_SLOWEST_COUNT),\n }\n }\n\n private buildBudgetCheckSection(): BudgetCheckResult | undefined {\n if (!this.budgetChecker) {\n return undefined\n }\n\n // Collect all available numeric metrics for budget checking\n const metrics: Record<string, number> = {}\n\n // Web Vitals\n if (this.webVitals) {\n const vitalsReport = this.webVitals.getReport()\n if (vitalsReport.lcp) metrics['lcp'] = vitalsReport.lcp.value\n if (vitalsReport.fid) metrics['fid'] = vitalsReport.fid.value\n if (vitalsReport.cls) metrics['cls'] = vitalsReport.cls.value\n if (vitalsReport.fcp) metrics['fcp'] = vitalsReport.fcp.value\n if (vitalsReport.ttfb) metrics['ttfb'] = vitalsReport.ttfb.value\n }\n\n // Render metrics\n if (this.renderTimer) {\n const avg = this.renderTimer.getAverageRenderTime()\n if (avg > 0) {\n metrics['maxRenderTime'] = avg\n }\n }\n\n return this.budgetChecker.check(metrics)\n }\n\n // ----------------------------------------------------------\n // Private: report delivery\n // ----------------------------------------------------------\n\n private async deliverReport(performanceReport: PerformanceReport): Promise<void> {\n switch (this.destination) {\n case 'console':\n this.logToConsole(performanceReport)\n break\n\n case 'custom':\n if (this.onReportCallback) {\n await this.onReportCallback(performanceReport)\n }\n break\n }\n }\n\n private logToConsole(performanceReport: PerformanceReport): void {\n if (typeof globalThis.console === 'undefined') {\n return\n }\n\n const log = globalThis.console\n const group = typeof log.group === 'function' ? log.group.bind(log) : undefined\n const groupEnd = typeof log.groupEnd === 'function' ? log.groupEnd.bind(log) : undefined\n\n if (group) {\n group('[PWFabric Perf Report]')\n } else {\n log.warn('[PWFabric Perf Report]')\n }\n\n if (performanceReport.webVitals) {\n log.warn('Web Vitals:', performanceReport.webVitals)\n }\n\n if (performanceReport.renderMetrics) {\n log.warn('Render Metrics:', performanceReport.renderMetrics)\n }\n\n if (performanceReport.budgetCheck) {\n const status = performanceReport.budgetCheck.passed ? 'PASS' : 'FAIL'\n log.warn(`Budget Check: ${status}`, performanceReport.budgetCheck.violations)\n }\n\n if (groupEnd) {\n groupEnd()\n }\n }\n}\n\n// ============================================================\n// FACTORY\n// ============================================================\n\n/**\n * Create a new PerformanceReporter instance.\n *\n * @param config - Reporter configuration\n * @returns A new PerformanceReporter\n */\nexport function createPerformanceReporter(config: ReporterConfig): PerformanceReporter {\n return new PerformanceReporter(config)\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-vitals.js","sourceRoot":"","sources":["../../src/perf/web-vitals.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"web-vitals.js","sourceRoot":"","sources":["../../src/perf/web-vitals.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Core Web Vitals Collection\n *\n * Collects Core Web Vitals (LCP, FID, CLS, FCP, TTFB, INP) using\n * PerformanceObserver. Provides real-time metric collection with\n * rating classification based on web.dev thresholds.\n *\n * All browser APIs are guarded for SSR safety.\n *\n * @module @pwfabric/runtime/perf\n */\n\n// ============================================================\n// TYPES\n// ============================================================\n\n/** Web Vital metric names */\nexport type WebVitalName = 'LCP' | 'FID' | 'CLS' | 'FCP' | 'TTFB' | 'INP'\n\n/** Rating classification for a metric */\nexport type WebVitalRating = 'good' | 'needs-improvement' | 'poor'\n\n/** A single Web Vital measurement */\nexport interface WebVitalMetric {\n /** Metric name */\n readonly name: WebVitalName\n /** Metric value (ms for timing metrics, unitless for CLS) */\n readonly value: number\n /** Rating based on web.dev thresholds */\n readonly rating: WebVitalRating\n /** Timestamp when the metric was collected */\n readonly timestamp: number\n}\n\n/** Callback invoked when a metric is collected */\nexport type WebVitalCallback = (metric: WebVitalMetric) => void\n\n/** Aggregated report of all collected Web Vitals */\nexport interface WebVitalsReport {\n /** Largest Contentful Paint */\n readonly lcp?: WebVitalMetric | undefined\n /** First Input Delay */\n readonly fid?: WebVitalMetric | undefined\n /** Cumulative Layout Shift */\n readonly cls?: WebVitalMetric | undefined\n /** First Contentful Paint */\n readonly fcp?: WebVitalMetric | undefined\n /** Time to First Byte */\n readonly ttfb?: WebVitalMetric | undefined\n /** Interaction to Next Paint */\n readonly inp?: WebVitalMetric | undefined\n /** Timestamp when the report was generated */\n readonly collectedAt: number\n}\n\n// ============================================================\n// THRESHOLDS (from web.dev)\n// ============================================================\n\n/** Rating thresholds: [goodThreshold, poorThreshold] */\nconst THRESHOLDS: Record<WebVitalName, readonly [number, number]> = {\n LCP: [2500, 4000],\n FID: [100, 300],\n CLS: [0.1, 0.25],\n FCP: [1800, 3000],\n TTFB: [800, 1800],\n INP: [200, 500],\n} as const\n\n// ============================================================\n// UTILITY\n// ============================================================\n\n/**\n * Rate a metric value against web.dev thresholds.\n *\n * @param name - The metric name\n * @param value - The measured value\n * @returns The rating classification\n */\nexport function rateMetric(name: WebVitalName, value: number): WebVitalRating {\n const threshold = THRESHOLDS[name]\n if (!threshold) {\n return 'good'\n }\n if (value <= threshold[0]) {\n return 'good'\n }\n if (value > threshold[1]) {\n return 'poor'\n }\n return 'needs-improvement'\n}\n\n// ============================================================\n// COLLECTOR\n// ============================================================\n\n/**\n * Collects Core Web Vitals using PerformanceObserver.\n *\n * Supports LCP, FID, CLS, FCP, TTFB, and INP metrics.\n * All observers are cleaned up on dispose.\n */\nexport class WebVitalsCollector {\n private metrics = new Map<WebVitalName, WebVitalMetric>()\n private observers: PerformanceObserver[] = []\n private callbacks = new Map<WebVitalName, WebVitalCallback[]>()\n private clsValue = 0\n private clsSessionEntries: PerformanceEntry[] = []\n private clsSessionValue = 0\n\n /**\n * Start collecting all Web Vitals.\n *\n * Creates PerformanceObservers for each metric type.\n * Safe to call in SSR environments (no-ops silently).\n */\n startCollecting(): void {\n if (typeof PerformanceObserver === 'undefined') {\n return\n }\n\n this.observeLCP()\n this.observeFID()\n this.observeCLS()\n this.observeFCP()\n this.observeTTFB()\n this.observeINP()\n }\n\n /**\n * Register a callback for a specific metric.\n *\n * The callback fires each time the metric is updated.\n *\n * @param name - The metric name to observe\n * @param callback - Function to call with the metric\n */\n onMetric(name: WebVitalName, callback: WebVitalCallback): void {\n const existing = this.callbacks.get(name) ?? []\n existing.push(callback)\n this.callbacks.set(name, existing)\n }\n\n /**\n * Get the current Web Vitals report.\n *\n * @returns A snapshot of all collected metrics\n */\n getReport(): WebVitalsReport {\n return {\n lcp: this.metrics.get('LCP'),\n fid: this.metrics.get('FID'),\n cls: this.metrics.get('CLS'),\n fcp: this.metrics.get('FCP'),\n ttfb: this.metrics.get('TTFB'),\n inp: this.metrics.get('INP'),\n collectedAt: Date.now(),\n }\n }\n\n /**\n * Stop collecting metrics and disconnect all observers.\n */\n stopCollecting(): void {\n for (const observer of this.observers) {\n observer.disconnect()\n }\n this.observers = []\n }\n\n /**\n * Stop collecting and clear all state.\n */\n dispose(): void {\n this.stopCollecting()\n this.metrics.clear()\n this.callbacks.clear()\n this.clsValue = 0\n this.clsSessionEntries = []\n this.clsSessionValue = 0\n }\n\n // ----------------------------------------------------------\n // Private: metric recording\n // ----------------------------------------------------------\n\n private recordMetric(name: WebVitalName, value: number): void {\n const metric: WebVitalMetric = {\n name,\n value,\n rating: rateMetric(name, value),\n timestamp: Date.now(),\n }\n this.metrics.set(name, metric)\n\n const cbs = this.callbacks.get(name)\n if (cbs) {\n for (const cb of cbs) {\n cb(metric)\n }\n }\n }\n\n // ----------------------------------------------------------\n // Private: observer helpers\n // ----------------------------------------------------------\n\n private tryObserve(\n entryType: string,\n handler: (entries: PerformanceEntryList) => void,\n options?: { buffered?: boolean; type?: string }\n ): void {\n try {\n const observer = new PerformanceObserver((list) => {\n handler(list.getEntries())\n })\n const observeOptions: PerformanceObserverInit = {\n type: options?.type ?? entryType,\n buffered: options?.buffered ?? true,\n }\n observer.observe(observeOptions)\n this.observers.push(observer)\n } catch {\n // Entry type not supported in this browser — silently skip\n }\n }\n\n private observeLCP(): void {\n this.tryObserve('largest-contentful-paint', (entries) => {\n const last = entries[entries.length - 1]\n if (last) {\n this.recordMetric('LCP', last.startTime)\n }\n })\n }\n\n private observeFID(): void {\n this.tryObserve('first-input', (entries) => {\n const first = entries[0]\n if (first) {\n const fidEntry = first as PerformanceEventTiming\n this.recordMetric('FID', fidEntry.processingStart - fidEntry.startTime)\n }\n })\n }\n\n private observeCLS(): void {\n this.tryObserve('layout-shift', (entries) => {\n for (const entry of entries) {\n const lsEntry = entry as LayoutShiftEntry\n // Only count shifts without recent user input\n if (!lsEntry.hadRecentInput) {\n // Session window algorithm\n if (\n this.clsSessionEntries.length > 0 &&\n entry.startTime -\n (this.clsSessionEntries[this.clsSessionEntries.length - 1]?.startTime ?? 0) >\n 1000\n ) {\n // Gap > 1s → start new session window\n if (this.clsSessionValue > this.clsValue) {\n this.clsValue = this.clsSessionValue\n }\n this.clsSessionEntries = []\n this.clsSessionValue = 0\n }\n\n // Add to current session\n if (\n this.clsSessionEntries.length === 0 ||\n entry.startTime - (this.clsSessionEntries[0]?.startTime ?? 0) <= 5000\n ) {\n this.clsSessionEntries.push(entry)\n this.clsSessionValue += lsEntry.value\n } else {\n // Session exceeded 5s → start new session\n if (this.clsSessionValue > this.clsValue) {\n this.clsValue = this.clsSessionValue\n }\n this.clsSessionEntries = [entry]\n this.clsSessionValue = lsEntry.value\n }\n\n // Report the max of current session and previous max\n const currentCls = Math.max(this.clsValue, this.clsSessionValue)\n this.recordMetric('CLS', currentCls)\n }\n }\n })\n }\n\n private observeFCP(): void {\n this.tryObserve('paint', (entries) => {\n const fcp = entries.find((e) => e.name === 'first-contentful-paint')\n if (fcp) {\n this.recordMetric('FCP', fcp.startTime)\n }\n })\n }\n\n private observeTTFB(): void {\n this.tryObserve('navigation', (entries) => {\n const nav = entries[0] as PerformanceNavigationTiming | undefined\n if (nav) {\n this.recordMetric('TTFB', nav.responseStart)\n }\n })\n }\n\n private observeINP(): void {\n this.tryObserve(\n 'event',\n (entries) => {\n let maxDuration = 0\n for (const entry of entries) {\n const eventEntry = entry as PerformanceEventTiming\n if (eventEntry.duration > maxDuration) {\n maxDuration = eventEntry.duration\n }\n }\n if (maxDuration > 0) {\n const existing = this.metrics.get('INP')\n // INP tracks the worst interaction\n if (!existing || maxDuration > existing.value) {\n this.recordMetric('INP', maxDuration)\n }\n }\n },\n { type: 'event', buffered: true }\n )\n }\n}\n\n// ============================================================\n// LAYOUT SHIFT ENTRY TYPE (not in all TS libs)\n// ============================================================\n\ninterface LayoutShiftEntry extends PerformanceEntry {\n readonly hadRecentInput: boolean\n readonly value: number\n}\n\ninterface PerformanceEventTiming extends PerformanceEntry {\n readonly processingStart: number\n readonly duration: number\n}\n\n// ============================================================\n// FACTORY\n// ============================================================\n\n/**\n * Create a new WebVitalsCollector instance.\n *\n * @returns A new collector (not yet started)\n */\nexport function createWebVitalsCollector(): WebVitalsCollector {\n return new WebVitalsCollector()\n}\n"]}
|
package/dist/registry.d.ts
CHANGED
package/dist/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAuDH,+DAA+D;AAC/D,oCAAoC;AACpC,+DAA+D;AAE/D;;GAEG;AACH,MAAM,OAAO,0BAA0B;IACpB,YAAY,GAAG,IAAI,GAAG,EAA4B,CAAA;IAClD,eAAe,GAAG,IAAI,GAAG,EAAmC,CAAA;IAE7E,QAAQ,CAAuB,UAAa;QAC1C,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,UAAU,CAAA;QAEvC,8BAA8B;QAC9B,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAsB;gBAC/B,IAAI,EAAE,oBAAoB;gBAC1B,EAAE;aACH,CAAA;YACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;QAClC,CAAC;QAED,8BAA8B;QAC9B,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClC,MAAM,KAAK,GAAsB;oBAC/B,IAAI,EAAE,oBAAoB;oBAC1B,EAAE;oBACF,OAAO,EAAE,KAAK;iBACf,CAAA;gBACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;YAClC,CAAC;QACH,CAAC;QAED,kCAAkC;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,wBAAwB,CAAC,EAAE,EAAE,YAAY,CAAC,CAAA;QAC7D,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,KAAK,GAAsB;gBAC/B,IAAI,EAAE,qBAAqB;gBAC3B,KAAK;aACN,CAAA;YACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;QAClC,CAAC;QAED,0BAA0B;QAC1B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAA;QACrC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAA;QAEnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAA;IACtC,CAAC;IAED,UAAU,CAAC,EAAgB;QACzB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAA;QACd,CAAC;QAED,iDAAiD;QACjD,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC5C,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACjB,8CAA8C;gBAC9C,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAC5B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAC/B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,CAAuB,EAAgB;QAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAE5C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,MAAM,GAAsB;gBAChC,IAAI,EAAE,WAAW;gBACjB,EAAE;aACH,CAAA;YACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;QACjC,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,UAAe,EAAE,CAAA;IACrD,CAAC;IAED,GAAG,CAAC,EAAgB;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAClC,CAAC;IAED,IAAI;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAA;IAC7C,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAA;IAC/B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA;QACzB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAA;IAC9B,CAAC;IAED;;OAEG;IACK,wBAAwB,CAC9B,KAAmB,EACnB,OAAgC;QAEhC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAgB,CAAA;QACvC,MAAM,IAAI,GAAmB,EAAE,CAAA;QAE/B,MAAM,GAAG,GAAG,CAAC,EAAgB,EAAkC,EAAE;YAC/D,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;gBACtB,gBAAgB;gBAChB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;gBACnC,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAA;YACxC,CAAC;YAED,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACpB,OAAO,IAAI,CAAA;YACb,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACf,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAEb,MAAM,IAAI,GAAG,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;YACpF,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;gBACzB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAA;gBACxB,IAAI,KAAK;oBAAE,OAAO,KAAK,CAAA;YACzB,CAAC;YAED,IAAI,CAAC,GAAG,EAAE,CAAA;YACV,OAAO,IAAI,CAAA;QACb,CAAC,CAAA;QAED,OAAO,GAAG,CAAC,KAAK,CAAC,CAAA;IACnB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,IAAI,0BAA0B,EAAE,CAAA;AACzC,CAAC","sourcesContent":["/**\n * Capability Registry\n *\n * Registry for managing capability registration and lookup\n *\n * @module @pwfabric/runtime/registry\n */\n\nimport type {\n CapabilityId,\n Capability,\n RegistrationResult,\n RegistrationError,\n Resolution,\n ResolutionFailure,\n} from '@pwfabric/contracts'\n\n// ============================================================\n// REGISTRY INTERFACE\n// ============================================================\n\n/**\n * Capability registry for managing registered capabilities\n */\nexport interface CapabilityRegistry {\n /**\n * Register a capability\n */\n register<C extends Capability>(capability: C): RegistrationResult<C>\n\n /**\n * Unregister a capability\n */\n unregister(id: CapabilityId): boolean\n\n /**\n * Resolve a capability by ID\n */\n resolve<C extends Capability>(id: CapabilityId): Resolution<C>\n\n /**\n * Check if a capability is registered\n */\n has(id: CapabilityId): boolean\n\n /**\n * Get all registered capability IDs\n */\n list(): readonly CapabilityId[]\n\n /**\n * Get the count of registered capabilities\n */\n size(): number\n\n /**\n * Clear all registered capabilities\n */\n clear(): void\n}\n\n// ============================================================\n// IN-MEMORY REGISTRY IMPLEMENTATION\n// ============================================================\n\n/**\n * In-memory capability registry\n */\nexport class InMemoryCapabilityRegistry implements CapabilityRegistry {\n private readonly capabilities = new Map<CapabilityId, Capability>()\n private readonly dependencyGraph = new Map<CapabilityId, Set<CapabilityId>>()\n\n register<C extends Capability>(capability: C): RegistrationResult<C> {\n const { id, dependencies } = capability\n\n // Check if already registered\n if (this.capabilities.has(id)) {\n const error: RegistrationError = {\n type: 'already_registered',\n id,\n }\n return { success: false, error }\n }\n\n // Validate dependencies exist\n for (const depId of dependencies) {\n if (!this.capabilities.has(depId)) {\n const error: RegistrationError = {\n type: 'missing_dependency',\n id,\n missing: depId,\n }\n return { success: false, error }\n }\n }\n\n // Check for circular dependencies\n const cycle = this.detectCircularDependency(id, dependencies)\n if (cycle) {\n const error: RegistrationError = {\n type: 'circular_dependency',\n cycle,\n }\n return { success: false, error }\n }\n\n // Register the capability\n this.capabilities.set(id, capability)\n this.dependencyGraph.set(id, new Set(dependencies))\n\n return { success: true, capability }\n }\n\n unregister(id: CapabilityId): boolean {\n if (!this.capabilities.has(id)) {\n return false\n }\n\n // Check if other capabilities depend on this one\n for (const [, deps] of this.dependencyGraph) {\n if (deps.has(id)) {\n // Cannot unregister - something depends on it\n return false\n }\n }\n\n this.capabilities.delete(id)\n this.dependencyGraph.delete(id)\n return true\n }\n\n resolve<C extends Capability>(id: CapabilityId): Resolution<C> {\n const capability = this.capabilities.get(id)\n\n if (!capability) {\n const reason: ResolutionFailure = {\n type: 'not_found',\n id,\n }\n return { found: false, reason }\n }\n\n return { found: true, capability: capability as C }\n }\n\n has(id: CapabilityId): boolean {\n return this.capabilities.has(id)\n }\n\n list(): readonly CapabilityId[] {\n return Array.from(this.capabilities.keys())\n }\n\n size(): number {\n return this.capabilities.size\n }\n\n clear(): void {\n this.capabilities.clear()\n this.dependencyGraph.clear()\n }\n\n /**\n * Detect circular dependencies using DFS\n */\n private detectCircularDependency(\n newId: CapabilityId,\n newDeps: readonly CapabilityId[]\n ): readonly CapabilityId[] | null {\n const visited = new Set<CapabilityId>()\n const path: CapabilityId[] = []\n\n const dfs = (id: CapabilityId): readonly CapabilityId[] | null => {\n if (path.includes(id)) {\n // Found a cycle\n const cycleStart = path.indexOf(id)\n return [...path.slice(cycleStart), id]\n }\n\n if (visited.has(id)) {\n return null\n }\n\n visited.add(id)\n path.push(id)\n\n const deps = id === newId ? newDeps : Array.from(this.dependencyGraph.get(id) || [])\n for (const depId of deps) {\n const cycle = dfs(depId)\n if (cycle) return cycle\n }\n\n path.pop()\n return null\n }\n\n return dfs(newId)\n }\n}\n\n/**\n * Create a new capability registry\n */\nexport function createRegistry(): CapabilityRegistry {\n return new InMemoryCapabilityRegistry()\n}\n"]}
|
|
@@ -63,4 +63,3 @@ export interface BehaviorSurfaceProviderProps {
|
|
|
63
63
|
* in the tree can call `useSurfaceEvents()` and `useSurfaceId()`.
|
|
64
64
|
*/
|
|
65
65
|
export declare function BehaviorSurfaceProvider({ surfaceId, children, entityFormBindings, dataSources, onEvent, blocks, }: BehaviorSurfaceProviderProps): React.ReactElement;
|
|
66
|
-
//# sourceMappingURL=BehaviorSurfaceProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BehaviorSurfaceProvider.js","sourceRoot":"","sources":["../../src/render/BehaviorSurfaceProvider.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BehaviorSurfaceProvider.js","sourceRoot":"","sources":["../../src/render/BehaviorSurfaceProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * BehaviorSurfaceProvider\n *\n * React provider that wraps a surface render session with a\n * stable `SurfaceEventBus` instance and the real `surfaceId`.\n *\n * When `entityFormBindings` are supplied and an EntityFacade\n * is available via EntityFacadeContext, automatically attaches form→entity\n * bridges on mount and tears them down on unmount.\n *\n * All block children receive both values via context so they can emit events\n * that carry a meaningful surface ID without prop-drilling.\n *\n * Lifecycle:\n * - Emits `surface:load` on mount\n * - Emits `surface:unload` on unmount\n * - Re-creates the bus (and re-emits lifecycle events) when `surfaceId` changes\n *\n * @module @pwfabric/runtime/render/BehaviorSurfaceProvider\n */\n\nimport * as React from 'react'\nimport { SURFACE_EVENTS } from '@pwfabric/contracts'\nimport type { SurfaceEventDescriptor } from '@pwfabric/contracts'\nimport { SurfaceEventContext } from './surface-event-context.js'\nimport { SurfaceIdContext } from './surface-id-context.js'\nimport { createSurfaceEventBus } from './surface-event-bus.js'\nimport { useEntityFacade } from './entity-facade-context.js'\nimport { useOptionalDataService } from '../data/DataCapabilityProvider.js'\nimport { useSurfaceData } from './surface-data-context.js'\nimport { attachFormEntityBridge } from '../forms/form-entity-bridge.js'\nimport type { FormWriter } from '../forms/form-entity-bridge.js'\nimport { resolveFormWriteTarget, toFormWriteError } from '../forms/form-write-target.js'\nimport type { SurfaceDataSourceDefinition } from './data-binding-types.js'\nimport type { FormEntityBridgeConfig } from '../forms/form-entity-bridge.js'\nimport { completeNamedControlValues } from '../forms/named-control-values.js'\nimport type { Block } from '@pwfabric/core'\n\nexport interface BehaviorSurfaceProviderProps {\n /** The ID of the surface being rendered */\n readonly surfaceId: string\n /** Block render tree */\n readonly children: React.ReactNode\n /**\n * Declarative form→entity bridge configurations extracted\n * from `surface.capabilities` (platform/entities config.formBindings).\n * When provided and EntityFacade is available, bridges are auto-attached on\n * mount and torn down on unmount.\n */\n readonly entityFormBindings?: readonly FormEntityBridgeConfig[]\n /**\n * The read sources, so a form's `sourceId` can be resolved to a destination.\n * A source that names an entity type writes through the facade; anything\n * else is an address and writes over HTTP.\n */\n readonly dataSources?: readonly SurfaceDataSourceDefinition[]\n /**\n * The surface renderer's single event handler. Subscribed to the bus via the\n * global `*` wildcard so EVERY block-emitted event (with its full payload,\n * incl. a declarative `action`) reaches the action dispatcher + host\n * notification — the canonical path replacing the retired legacy\n * `context.onEvent` shim that blocks used to call directly.\n */\n readonly onEvent?: (event: SurfaceEventDescriptor) => void\n /**\n * The rendered (resolved) block tree, so a form's submission can be\n * completed with the named controls inside it that `FormData` cannot see —\n * read from page state by their `stateKey`.\n */\n readonly blocks?: readonly Block[]\n}\n\n/**\n * Wraps a surface render tree with a scoped `SurfaceEventBus` and `surfaceId`.\n *\n * Place this as the outermost wrapper inside `SurfaceRenderer` so every block\n * in the tree can call `useSurfaceEvents()` and `useSurfaceId()`.\n */\nexport function BehaviorSurfaceProvider({\n surfaceId,\n children,\n entityFormBindings,\n dataSources,\n onEvent,\n blocks,\n}: BehaviorSurfaceProviderProps): React.ReactElement {\n // Canonical event path: the renderer's handler is subscribed to the global `*`\n // wildcard. Every block emits through the bus (useSurfaceEvents) → this handler\n // dispatches declarative actions (setState/refresh) + forwards to the host.\n // A ref keeps the subscription stable while always calling the latest handler.\n const onEventRef = React.useRef(onEvent)\n onEventRef.current = onEvent\n\n // Re-create the bus when surfaceId changes so sibling surfaces stay isolated.\n //\n // The `*` subscription is attached HERE, at construction, rather than in an\n // effect. `bus.emit` is synchronous and unbuffered: an event emitted while\n // `handlers.get('*')` is empty is dropped and never replayed. React runs\n // effects CHILD-FIRST, so a subscription owned by this provider would attach\n // only after every block's own mount effect had already run — meaning any\n // block that emits from its mount effect had its event silently swallowed,\n // deterministically. The same gap opened, more narrowly, for interactions\n // landing between a commit and its passive-effect flush, which is what made\n // `dispatch-actions.dom` / `entity-list-reactive-repro.dom` flaky.\n //\n // Subscribing during render is safe here because the bus is constructed in\n // this same factory: nothing outside observes it before we return, so there\n // is no external mutation and re-running the factory yields an independent\n // bus. No explicit teardown is needed either — the handler is reachable only\n // through the bus, so a discarded bus takes its listener with it.\n const bus = React.useMemo(() => {\n const created = createSurfaceEventBus()\n created.on('*', (event) => onEventRef.current?.(event))\n return created\n }, [surfaceId])\n\n React.useEffect(() => {\n bus.emit({ type: SURFACE_EVENTS.SURFACE_LOAD, surfaceId, timestamp: Date.now() })\n return () => {\n bus.emit({ type: SURFACE_EVENTS.SURFACE_UNLOAD, surfaceId, timestamp: Date.now() })\n }\n }, [bus, surfaceId])\n\n // auto-wire form→entity bridges when EntityFacade is available.\n //\n // Attached during render, for the same reason the `*` handler above is: a\n // bridge that subscribes from an effect is not listening yet while the blocks\n // it serves are already interactive, and `bus.emit` drops what nobody is\n // listening for. A form submitted in that window lost its create outright —\n // the residual flake in `entity-list-reactive-repro.dom` after the `*` fix,\n // where the wildcard handler saw `form:submit` but the bridge never did.\n //\n // Previous bridges are torn down before new ones attach, so re-running this\n // (deps change, or a StrictMode double render) never stacks duplicates.\n const entityFacade = useEntityFacade()\n // OPTIONAL, because this provider also mounts on the behaviours-only path\n // where no data machinery exists. A form pointed at a rest source there has\n // nowhere to write, and says so, rather than the whole surface failing to\n // render.\n const dataService = useOptionalDataService()\n\n // What the page has bound RIGHT NOW, read at write time through a ref so a\n // fresh fetch never re-attaches the bridges. Null outside the data-bound\n // path, where no record can have loaded and every write is a create.\n const surfaceData = useSurfaceData()\n const surfaceDataRef = React.useRef(surfaceData)\n surfaceDataRef.current = surfaceData\n\n /**\n * THE ONE PLACE THAT KNOWS WHAT A SOURCE ID MEANS.\n *\n * The bridge does not, deliberately — that is what lets one declaration\n * serve our own store and a third party's endpoint without the form knowing\n * which it is talking to.\n *\n * THE VERB FOLLOWS THE RECORD. A binding that says `PATCH` can only update\n * a record the source has loaded; with none loaded the honest write is a\n * create. Otherwise a Profile form would PATCH the collection path, the API\n * would answer 404 \"Route not found\", and the visitor would read \"check the\n * highlighted fields\".\n */\n const writer = React.useMemo<FormWriter>(() => {\n const byId = new Map((dataSources ?? []).map((s) => [s.id, s]))\n return {\n async write(sourceId, values, method) {\n const source = byId.get(sourceId)\n const target = resolveFormWriteTarget(method, surfaceDataRef.current?.[sourceId])\n if (source?.kind === 'entity' && source.entityType && entityFacade) {\n const entityType = source.entityType as never\n return target.recordId\n ? entityFacade.store.update(entityType, target.recordId as never, values)\n : entityFacade.store.create(entityType, values)\n }\n if (!source) {\n return {\n success: false,\n error: {\n type: 'not_found',\n message: `This form writes to \"${sourceId}\", which this page does not declare.`,\n },\n }\n }\n if (!dataService) {\n return {\n success: false,\n error: {\n type: 'connector',\n message: `This form writes to \"${sourceId}\", but this page has no data layer to write through.`,\n },\n }\n }\n const res = await dataService.fetchData(sourceId, {\n method: target.method,\n body: values,\n ...(target.recordId !== undefined ? { recordId: target.recordId } : {}),\n })\n if (!res.success) return { success: false, error: toFormWriteError(res.error) }\n const written = res.data as Record<string, unknown> | null\n const id = written && typeof written === 'object' ? written['id'] : undefined\n return {\n success: true,\n data: (written ?? {}) as never,\n id: (typeof id === 'string' || typeof id === 'number' ? String(id) : target.recordId ?? sourceId) as never,\n }\n },\n }\n }, [dataSources, entityFacade, dataService])\n\n // Read at submit time through a ref, like the bound data, so a re-render\n // never re-attaches the bridges.\n const blocksRef = React.useRef(blocks)\n blocksRef.current = blocks\n const completeValues = React.useCallback(\n (formId: string, values: Record<string, unknown>): Record<string, unknown> => {\n const tree = blocksRef.current\n const state = surfaceDataRef.current?.['state']\n if (!tree || !state || typeof state !== 'object') return values\n return completeNamedControlValues(tree, formId, values, state as Record<string, unknown>)\n },\n []\n )\n\n const bridgeUnsubsRef = React.useRef<readonly (() => void)[]>([])\n React.useMemo(() => {\n bridgeUnsubsRef.current.forEach((u) => u())\n bridgeUnsubsRef.current = entityFormBindings?.length\n ? entityFormBindings.map((cfg) => attachFormEntityBridge(bus, writer, cfg, completeValues))\n : []\n }, [writer, bus, entityFormBindings, completeValues])\n\n // Detach on unmount. Keyed on nothing so it runs once per mount; the memo\n // above owns teardown for every other transition.\n React.useEffect(() => {\n return () => {\n bridgeUnsubsRef.current.forEach((u) => u())\n bridgeUnsubsRef.current = []\n }\n }, [])\n\n return (\n <SurfaceEventContext.Provider value={bus}>\n <SurfaceIdContext.Provider value={surfaceId}>{children}</SurfaceIdContext.Provider>\n </SurfaceEventContext.Provider>\n )\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlockErrorBoundary.js","sourceRoot":"","sources":["../../src/render/BlockErrorBoundary.tsx"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAa9B,MAAM,OAAO,kBAAmB,SAAQ,KAAK,CAAC,SAG7C;IACC,YAAY,KAA8B;QACxC,KAAK,CAAC,KAAK,CAAC,CAAA;QACZ,IAAI,CAAC,KAAK,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;IAC/C,CAAC;IAED,MAAM,CAAC,wBAAwB,CAAC,KAAY;QAC1C,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;IAClC,CAAC;IAEQ,iBAAiB,CAAC,KAAY,EAAE,IAAqB;QAC5D,OAAO,CAAC,KAAK,CACX,kCAAkC,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAC9E,KAAK,EACL,IAAI,CAAC,cAAc,CACpB,CAAA;IACH,CAAC;IAEQ,MAAM;QACb,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACxB,sEAAsE;YACtE,wEAAwE;YACxE,kEAAkE;YAClE,sEAAsE;YACtE,sEAAsE;YACtE,6DAA6D;YAC7D,OAAO,CACL,cACE,KAAK,EAAE;oBACL,MAAM,EAAE,2CAA2C;oBACnD,YAAY,EAAE,KAAK;oBACnB,eAAe,EAAE,oEAAoE;oBACrF,SAAS,EAAE,MAAM;iBAClB,sBACiB,IAAI,CAAC,KAAK,CAAC,OAAO,2BACb,IAAI,CAAC,KAAK,CAAC,SAAS,EAC3C,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,IAAI,eAAe,GACnD,CACH,CAAA;QACH,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAA;IAC5B,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"BlockErrorBoundary.js","sourceRoot":"","sources":["../../src/render/BlockErrorBoundary.tsx"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAa9B,MAAM,OAAO,kBAAmB,SAAQ,KAAK,CAAC,SAG7C;IACC,YAAY,KAA8B;QACxC,KAAK,CAAC,KAAK,CAAC,CAAA;QACZ,IAAI,CAAC,KAAK,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;IAC/C,CAAC;IAED,MAAM,CAAC,wBAAwB,CAAC,KAAY;QAC1C,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;IAClC,CAAC;IAEQ,iBAAiB,CAAC,KAAY,EAAE,IAAqB;QAC5D,OAAO,CAAC,KAAK,CACX,kCAAkC,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAC9E,KAAK,EACL,IAAI,CAAC,cAAc,CACpB,CAAA;IACH,CAAC;IAEQ,MAAM;QACb,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACxB,sEAAsE;YACtE,wEAAwE;YACxE,kEAAkE;YAClE,sEAAsE;YACtE,sEAAsE;YACtE,6DAA6D;YAC7D,OAAO,CACL,cACE,KAAK,EAAE;oBACL,MAAM,EAAE,2CAA2C;oBACnD,YAAY,EAAE,KAAK;oBACnB,eAAe,EAAE,oEAAoE;oBACrF,SAAS,EAAE,MAAM;iBAClB,sBACiB,IAAI,CAAC,KAAK,CAAC,OAAO,2BACb,IAAI,CAAC,KAAK,CAAC,SAAS,EAC3C,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,IAAI,eAAe,GACnD,CACH,CAAA;QACH,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAA;IAC5B,CAAC;CACF","sourcesContent":["/**\n * Block Error Boundary\n *\n * React class component that isolates block-level render crashes.\n * If a single block throws during render, only that block shows\n * a fallback UI — the rest of the surface stays intact.\n *\n * @module @pwfabric/runtime/render/BlockErrorBoundary\n */\n\nimport * as React from 'react'\n\ninterface BlockErrorBoundaryProps {\n readonly blockId: string\n readonly blockType: string\n readonly children: React.ReactNode\n}\n\ninterface BlockErrorBoundaryState {\n readonly hasError: boolean\n readonly error: Error | null\n}\n\nexport class BlockErrorBoundary extends React.Component<\n BlockErrorBoundaryProps,\n BlockErrorBoundaryState\n> {\n constructor(props: BlockErrorBoundaryProps) {\n super(props)\n this.state = { hasError: false, error: null }\n }\n\n static getDerivedStateFromError(error: Error): BlockErrorBoundaryState {\n return { hasError: true, error }\n }\n\n override componentDidCatch(error: Error, info: React.ErrorInfo): void {\n console.error(\n `[PWFabric] Block render error: ${this.props.blockType}#${this.props.blockId}`,\n error,\n info.componentStack\n )\n }\n\n override render(): React.ReactNode {\n if (this.state.hasError) {\n // Quiet-shape fallback: no visible copy — the earlier card leaked the\n // raw exception message (\"Cannot read properties of undefined…\") to end\n // users in a hardcoded light-red dev box. The error tint + dashed\n // border signal \"this section failed\"; the technical message stays in\n // the title tooltip and in the componentDidCatch console.error above,\n // and data-block-error keeps it queryable for tests/tooling.\n return (\n <div\n style={{\n border: '2px dashed var(--pw-color-error, #ef4444)',\n borderRadius: '8px',\n backgroundColor: 'color-mix(in srgb, var(--pw-color-error, #ef4444) 8%, transparent)',\n minHeight: '32px',\n }}\n data-block-error={this.props.blockId}\n data-block-error-type={this.props.blockType}\n title={this.state.error?.message ?? 'Unknown error'}\n />\n )\n }\n\n return this.props.children\n }\n}\n"]}
|
|
@@ -76,4 +76,3 @@ export declare function isSafeNavigateUrl(url: unknown): url is string;
|
|
|
76
76
|
* fetches data, manages state, resolves expressions, and intercepts events.
|
|
77
77
|
*/
|
|
78
78
|
export declare function DataBoundSurfaceRenderer(props: DataBoundSurfaceRendererProps): React.ReactElement;
|
|
79
|
-
//# sourceMappingURL=DataBoundSurfaceRenderer.d.ts.map
|