@craft-ts/core 0.7.0-beta.13 → 0.7.0-beta.16
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/package.json +10 -2
- package/src/index.d.ts +156 -148
- package/src/index.js +153 -142
- package/src/lib/after-recomputation.d.ts +3 -4
- package/src/lib/after-recomputation.js +3 -4
- package/src/lib/app-checked-di.d.ts +3 -4
- package/src/lib/app-checked-di.js +0 -1
- package/src/lib/async-process.d.ts +18 -19
- package/src/lib/async-process.js +24 -25
- package/src/lib/branded-component/branded-component.d.ts +3 -4
- package/src/lib/branded-component/branded-component.js +0 -1
- package/src/lib/browser-boundaries.d.ts +6 -7
- package/src/lib/browser-boundaries.js +5 -6
- package/src/lib/client-di-requirement.d.ts +1 -2
- package/src/lib/client-di-requirement.js +0 -1
- package/src/lib/client-function-middleware.d.ts +8 -92
- package/src/lib/client-function-middleware.js +89 -90
- package/src/lib/component-monitoring.d.ts +1 -2
- package/src/lib/component-monitoring.js +2 -3
- package/src/lib/component-register.d.ts +1 -2
- package/src/lib/component-register.js +1 -2
- package/src/lib/computed-source.d.ts +3 -4
- package/src/lib/computed-source.js +2 -3
- package/src/lib/correlation-id-plugin.d.ts +1 -2
- package/src/lib/correlation-id-plugin.js +6 -7
- package/src/lib/correlation-id.d.ts +4 -5
- package/src/lib/correlation-id.js +3 -4
- package/src/lib/craft-a11y.d.ts +3 -4
- package/src/lib/craft-a11y.js +5 -6
- package/src/lib/craft-activated-route.d.ts +2 -3
- package/src/lib/craft-activated-route.js +2 -3
- package/src/lib/craft-app-config.d.ts +4 -5
- package/src/lib/craft-app-config.js +3 -4
- package/src/lib/craft-codec.d.ts +0 -1
- package/src/lib/craft-codec.js +0 -1
- package/src/lib/craft-computed.d.ts +6 -7
- package/src/lib/craft-computed.js +7 -8
- package/src/lib/craft-control-flow.d.ts +0 -1
- package/src/lib/craft-control-flow.js +2 -3
- package/src/lib/craft-effect.d.ts +2 -3
- package/src/lib/craft-effect.js +7 -8
- package/src/lib/craft-exception.d.ts +0 -1
- package/src/lib/craft-exception.js +0 -1
- package/src/lib/craft-gen.d.ts +1 -2
- package/src/lib/craft-gen.js +2 -3
- package/src/lib/craft-generator-runtime.d.ts +21 -5
- package/src/lib/craft-generator-runtime.js +28 -6
- package/src/lib/craft-guard-runtime.d.ts +4 -5
- package/src/lib/craft-guard-runtime.js +6 -7
- package/src/lib/craft-handshake.d.ts +1 -2
- package/src/lib/craft-handshake.js +0 -1
- package/src/lib/craft-http-client.d.ts +3 -4
- package/src/lib/craft-http-client.js +4 -5
- package/src/lib/craft-http-trace.d.ts +1 -2
- package/src/lib/craft-http-trace.js +5 -2
- package/src/lib/craft-hydration.d.ts +11 -0
- package/src/lib/craft-hydration.js +2 -0
- package/src/lib/craft-lazy.d.ts +3 -4
- package/src/lib/craft-lazy.js +5 -6
- package/src/lib/craft-load-retry.d.ts +2 -3
- package/src/lib/craft-load-retry.js +11 -4
- package/src/lib/craft-machine-history.d.ts +6 -7
- package/src/lib/craft-machine-history.js +6 -7
- package/src/lib/craft-match.d.ts +0 -1
- package/src/lib/craft-match.js +0 -1
- package/src/lib/craft-method.d.ts +3 -4
- package/src/lib/craft-method.js +5 -6
- package/src/lib/craft-node-directive.d.ts +3 -4
- package/src/lib/craft-node-directive.js +2 -3
- package/src/lib/craft-pending.d.ts +3 -4
- package/src/lib/craft-pending.js +2 -3
- package/src/lib/craft-pipe.d.ts +1 -2
- package/src/lib/craft-pipe.js +7 -8
- package/src/lib/craft-platform.d.ts +2 -3
- package/src/lib/craft-platform.js +2 -3
- package/src/lib/craft-primitive-gen.d.ts +7 -8
- package/src/lib/craft-primitive-gen.js +4 -5
- package/src/lib/craft-primitive-registry.d.ts +4 -2
- package/src/lib/craft-primitive-registry.js +5 -3
- package/src/lib/craft-program-operators.d.ts +3 -4
- package/src/lib/craft-program-operators.js +4 -5
- package/src/lib/craft-program-runtime.d.ts +3 -4
- package/src/lib/craft-program-runtime.js +7 -8
- package/src/lib/craft-register-for-runtime.d.ts +2 -3
- package/src/lib/craft-register-for-runtime.js +2 -3
- package/src/lib/craft-register-for.d.ts +3 -4
- package/src/lib/craft-register-for.js +6 -7
- package/src/lib/craft-render-identity.d.ts +0 -1
- package/src/lib/craft-render-identity.js +1 -2
- package/src/lib/craft-replay.d.ts +0 -1
- package/src/lib/craft-replay.js +0 -1
- package/src/lib/craft-request-context.d.ts +15 -0
- package/src/lib/craft-request-context.js +40 -0
- package/src/lib/craft-resolve.d.ts +2 -3
- package/src/lib/craft-resolve.js +0 -1
- package/src/lib/craft-resource.d.ts +2 -3
- package/src/lib/craft-resource.js +14 -6
- package/src/lib/craft-route-exceptions.d.ts +27 -28
- package/src/lib/craft-route-exceptions.js +3 -4
- package/src/lib/craft-route-load-error.d.ts +92 -93
- package/src/lib/craft-route-load-error.js +6 -7
- package/src/lib/craft-route-meta.d.ts +4 -5
- package/src/lib/craft-route-meta.js +0 -1
- package/src/lib/craft-route-target.d.ts +1 -2
- package/src/lib/craft-route-target.js +1 -2
- package/src/lib/craft-router-outlet.d.ts +7 -7
- package/src/lib/craft-router-outlet.js +24 -18
- package/src/lib/craft-router-tokens.d.ts +3 -4
- package/src/lib/craft-router-tokens.js +2 -3
- package/src/lib/craft-router-trace.d.ts +3 -4
- package/src/lib/craft-router-trace.js +9 -3
- package/src/lib/craft-router.d.ts +16 -17
- package/src/lib/craft-router.js +75 -74
- package/src/lib/craft-routes.d.ts +20 -15
- package/src/lib/craft-routes.js +13 -12
- package/src/lib/craft-runtime-mode.d.ts +13 -0
- package/src/lib/craft-runtime-mode.js +21 -0
- package/src/lib/craft-security.d.ts +87 -0
- package/src/lib/craft-security.js +117 -0
- package/src/lib/craft-service.d.ts +12 -13
- package/src/lib/craft-service.js +11 -12
- package/src/lib/craft-service.shared.d.ts +0 -1
- package/src/lib/craft-service.shared.js +0 -1
- package/src/lib/craft-settled.d.ts +23 -16
- package/src/lib/craft-settled.js +9 -10
- package/src/lib/craft-ssr.d.ts +2 -3
- package/src/lib/craft-ssr.js +4 -5
- package/src/lib/craft-state-machine-runtime.d.ts +2 -3
- package/src/lib/craft-state-machine-runtime.js +3 -4
- package/src/lib/craft-state-machine.d.ts +5 -6
- package/src/lib/craft-state-machine.js +9 -10
- package/src/lib/craft-target-runtime.d.ts +1 -2
- package/src/lib/craft-target-runtime.js +2 -3
- package/src/lib/craft-transfer-snapshot.d.ts +10 -5
- package/src/lib/craft-transfer-snapshot.js +139 -14
- package/src/lib/craft-unique.d.ts +0 -1
- package/src/lib/craft-unique.js +0 -1
- package/src/lib/craft-until-settled.d.ts +5 -6
- package/src/lib/craft-until-settled.js +4 -5
- package/src/lib/craft-use.d.ts +0 -1
- package/src/lib/craft-use.js +2 -3
- package/src/lib/craft-view-transition.d.ts +2 -3
- package/src/lib/craft-view-transition.js +2 -3
- package/src/lib/dev-tools.d.ts +7 -0
- package/src/lib/dev-tools.js +244 -0
- package/src/lib/dom-event-hook.d.ts +1 -2
- package/src/lib/dom-event-hook.js +1 -2
- package/src/lib/fn-wrapper.d.ts +2 -3
- package/src/lib/fn-wrapper.js +3 -4
- package/src/lib/form/craft-field.d.ts +2 -3
- package/src/lib/form/craft-field.directive.d.ts +6 -7
- package/src/lib/form/craft-field.directive.js +5 -6
- package/src/lib/form/craft-field.js +1 -2
- package/src/lib/form/field-exception.d.ts +4 -5
- package/src/lib/form/field-exception.js +1 -2
- package/src/lib/form/field-lens.d.ts +0 -1
- package/src/lib/form/field-lens.js +0 -1
- package/src/lib/form/insert-form-attributes.d.ts +6 -7
- package/src/lib/form/insert-form-attributes.js +5 -6
- package/src/lib/form/insert-form-internals.d.ts +11 -12
- package/src/lib/form/insert-form-internals.js +9 -10
- package/src/lib/form/insert-form-schema.d.ts +3 -4
- package/src/lib/form/insert-form-schema.js +4 -5
- package/src/lib/form/insert-form-submit.d.ts +7 -8
- package/src/lib/form/insert-form-submit.js +3 -4
- package/src/lib/form/insert-form.d.ts +6 -7
- package/src/lib/form/insert-form.js +8 -9
- package/src/lib/form/insert-select-form-tree.d.ts +2 -3
- package/src/lib/form/insert-select-form-tree.js +5 -6
- package/src/lib/form/insert-sub-form-field.d.ts +3 -4
- package/src/lib/form/insert-sub-form-field.js +6 -7
- package/src/lib/form/make-form-tree-insert.d.ts +1 -2
- package/src/lib/form/make-form-tree-insert.js +3 -4
- package/src/lib/form/target-form-field.d.ts +0 -1
- package/src/lib/form/target-form-field.js +0 -1
- package/src/lib/form/validator.d.ts +5 -6
- package/src/lib/form/validator.js +3 -4
- package/src/lib/from-event-to-source$.d.ts +2 -3
- package/src/lib/from-event-to-source$.js +3 -4
- package/src/lib/global-persister-handler.service.d.ts +1 -2
- package/src/lib/global-persister-handler.service.js +2 -3
- package/src/lib/host/craft-compat.d.ts +2 -3
- package/src/lib/host/craft-compat.js +2 -3
- package/src/lib/host/craft-dom.d.ts +0 -1
- package/src/lib/host/craft-dom.js +0 -1
- package/src/lib/host/craft-http.d.ts +0 -1
- package/src/lib/host/craft-http.js +0 -1
- package/src/lib/host/craft-injector-host.d.ts +2 -3
- package/src/lib/host/craft-injector-host.js +1 -2
- package/src/lib/host/craft-injector.d.ts +0 -1
- package/src/lib/host/craft-injector.js +0 -1
- package/src/lib/host/craft-linked-signal.d.ts +1 -2
- package/src/lib/host/craft-linked-signal.js +2 -3
- package/src/lib/host/craft-router-runtime.d.ts +0 -1
- package/src/lib/host/craft-router-runtime.js +0 -1
- package/src/lib/host/craft-router-types.d.ts +1 -2
- package/src/lib/host/craft-router-types.js +1 -2
- package/src/lib/host/craft-signal.d.ts +0 -1
- package/src/lib/host/craft-signal.js +1 -2
- package/src/lib/host/craft-test-bed.d.ts +2 -3
- package/src/lib/host/craft-test-bed.js +2 -3
- package/src/lib/host-tag.d.ts +1 -2
- package/src/lib/host-tag.js +1 -2
- package/src/lib/http-server.d.ts +156 -0
- package/src/lib/http-server.js +590 -0
- package/src/lib/insert-entities.d.ts +5 -6
- package/src/lib/insert-entities.js +1 -2
- package/src/lib/insert-noop-typing-anchor.d.ts +1 -2
- package/src/lib/insert-noop-typing-anchor.js +0 -1
- package/src/lib/insert-pagination-placeholder-data.d.ts +5 -6
- package/src/lib/insert-pagination-placeholder-data.js +5 -6
- package/src/lib/insert-react-on-mutation.d.ts +5 -6
- package/src/lib/insert-react-on-mutation.js +2 -3
- package/src/lib/insert-select-resource.d.ts +2 -3
- package/src/lib/insert-select-resource.js +1 -2
- package/src/lib/insert-select.d.ts +5 -6
- package/src/lib/insert-select.js +18 -19
- package/src/lib/insert-storage-persister.d.ts +4 -5
- package/src/lib/insert-storage-persister.js +2 -3
- package/src/lib/insert-typed-pipes.d.ts +3 -4
- package/src/lib/insert-typed-pipes.js +2 -3
- package/src/lib/lambda-adapter.d.ts +52 -0
- package/src/lib/lambda-adapter.js +101 -0
- package/src/lib/linked-source.d.ts +3 -4
- package/src/lib/linked-source.js +2 -3
- package/src/lib/local-storage-persister.d.ts +2 -3
- package/src/lib/local-storage-persister.js +3 -4
- package/src/lib/middleware-schema-shared.d.ts +9 -21
- package/src/lib/middleware-schema-shared.js +6 -1
- package/src/lib/mock-http-request-for-route.d.ts +3 -4
- package/src/lib/mock-http-request-for-route.js +0 -1
- package/src/lib/mutation.d.ts +18 -19
- package/src/lib/mutation.js +23 -24
- package/src/lib/on$.d.ts +6 -7
- package/src/lib/on$.js +4 -5
- package/src/lib/portable-server-function.d.ts +8 -9
- package/src/lib/portable-server-function.js +12 -5
- package/src/lib/preserved-resource.d.ts +2 -3
- package/src/lib/preserved-resource.js +4 -5
- package/src/lib/primitive-method-runtime-context.d.ts +1 -2
- package/src/lib/primitive-method-runtime-context.js +2 -3
- package/src/lib/primitive-resource-runtime-context.d.ts +1 -2
- package/src/lib/primitive-resource-runtime-context.js +2 -3
- package/src/lib/query-params.d.ts +12 -13
- package/src/lib/query-params.js +15 -16
- package/src/lib/query.core.d.ts +15 -14
- package/src/lib/query.core.js +1 -2
- package/src/lib/query.d.ts +19 -20
- package/src/lib/query.js +23 -24
- package/src/lib/reactive-read.d.ts +2 -3
- package/src/lib/reactive-read.js +2 -3
- package/src/lib/render/channels.d.ts +130 -0
- package/src/lib/render/channels.js +0 -0
- package/src/lib/resource-by-id.d.ts +4 -5
- package/src/lib/resource-by-id.js +4 -5
- package/src/lib/resource-exception.d.ts +2 -3
- package/src/lib/resource-exception.js +1 -2
- package/src/lib/route-checked-di.d.ts +4 -5
- package/src/lib/route-checked-di.js +0 -1
- package/src/lib/schema-validation.d.ts +4 -5
- package/src/lib/schema-validation.js +2 -3
- package/src/lib/send-context-to-ai.d.ts +3 -4
- package/src/lib/send-context-to-ai.js +1 -2
- package/src/lib/send-context-to-ai.tokens.d.ts +1 -2
- package/src/lib/send-context-to-ai.tokens.js +0 -1
- package/src/lib/server-function-client.d.ts +18 -7
- package/src/lib/server-function-client.js +31 -9
- package/src/lib/server-function-contract.d.ts +1 -2
- package/src/lib/server-function-contract.js +0 -1
- package/src/lib/server-function-middleware.d.ts +49 -132
- package/src/lib/server-function-middleware.js +83 -103
- package/src/lib/server-function.d.ts +58 -8
- package/src/lib/server-function.js +20 -6
- package/src/lib/server-layer.d.ts +3 -4
- package/src/lib/server-layer.js +1 -2
- package/src/lib/server.d.ts +39 -6
- package/src/lib/server.js +259 -27
- package/src/lib/setup-craft-service-test.d.ts +3 -4
- package/src/lib/setup-craft-service-test.js +6 -7
- package/src/lib/setup-craft-service-testing-by-register.d.ts +4 -5
- package/src/lib/setup-craft-service-testing-by-register.js +4 -5
- package/src/lib/signal-proxy.d.ts +2 -3
- package/src/lib/signal-proxy.js +1 -2
- package/src/lib/signal-source.d.ts +3 -4
- package/src/lib/signal-source.js +7 -8
- package/src/lib/source$.d.ts +3 -4
- package/src/lib/source$.js +7 -8
- package/src/lib/source-from-event.d.ts +2 -3
- package/src/lib/source-from-event.js +2 -3
- package/src/lib/stacked-source.d.ts +1 -2
- package/src/lib/stacked-source.js +1 -2
- package/src/lib/standard-schema.d.ts +0 -1
- package/src/lib/standard-schema.js +0 -1
- package/src/lib/state-method-runtime-context.d.ts +2 -3
- package/src/lib/state-method-runtime-context.js +1 -2
- package/src/lib/state.d.ts +13 -14
- package/src/lib/state.js +17 -18
- package/src/lib/storage-persister.service.d.ts +3 -4
- package/src/lib/storage-persister.service.js +3 -4
- package/src/lib/take-app-snapshot.d.ts +1 -2
- package/src/lib/take-app-snapshot.js +10 -4
- package/src/lib/template-trace.d.ts +1 -2
- package/src/lib/template-trace.js +5 -2
- package/src/lib/temporal-runtime.d.ts +1 -2
- package/src/lib/temporal-runtime.js +1 -2
- package/src/lib/to-source.d.ts +3 -4
- package/src/lib/to-source.js +2 -3
- package/src/lib/util/craft-resource-ref.d.ts +2 -3
- package/src/lib/util/craft-resource-ref.js +0 -1
- package/src/lib/util/craft-resource-status.d.ts +1 -2
- package/src/lib/util/craft-resource-status.js +0 -1
- package/src/lib/util/entities-util.d.ts +0 -1
- package/src/lib/util/entities-util.js +0 -1
- package/src/lib/util/explicit-effect.d.ts +1 -2
- package/src/lib/util/explicit-effect.js +1 -2
- package/src/lib/util/extract-signal-props-and-methods.d.ts +2 -3
- package/src/lib/util/extract-signal-props-and-methods.js +0 -1
- package/src/lib/util/method-trigger-nonce.d.ts +1 -2
- package/src/lib/util/method-trigger-nonce.js +0 -1
- package/src/lib/util/persister.type.d.ts +2 -3
- package/src/lib/util/persister.type.js +0 -1
- package/src/lib/util/persister.util.d.ts +0 -1
- package/src/lib/util/persister.util.js +0 -1
- package/src/lib/util/react-on-mutation-effect.d.ts +5 -6
- package/src/lib/util/react-on-mutation-effect.js +4 -5
- package/src/lib/util/resource-by-id-changes-tracker.util.d.ts +2 -3
- package/src/lib/util/resource-by-id-changes-tracker.util.js +2 -3
- package/src/lib/util/source.type.d.ts +2 -3
- package/src/lib/util/source.type.js +0 -1
- package/src/lib/util/types/access-type-object-property-by-dotted-path.type.d.ts +1 -2
- package/src/lib/util/types/access-type-object-property-by-dotted-path.type.js +0 -1
- package/src/lib/util/types/boolean-or-mapper-fn-by-path-by-id.type.d.ts +4 -5
- package/src/lib/util/types/boolean-or-mapper-fn-by-path-by-id.type.js +0 -1
- package/src/lib/util/types/boolean-or-mapper-fn-by-path.type.d.ts +3 -4
- package/src/lib/util/types/boolean-or-mapper-fn-by-path.type.js +0 -1
- package/src/lib/util/types/brand.d.ts +0 -1
- package/src/lib/util/types/brand.js +0 -1
- package/src/lib/util/types/object-deep-path-mapper.type.d.ts +1 -2
- package/src/lib/util/types/object-deep-path-mapper.type.js +0 -1
- package/src/lib/util/types/resource-by-id-config.type.d.ts +3 -4
- package/src/lib/util/types/resource-by-id-config.type.js +0 -1
- package/src/lib/util/types/resource-with-params-or-params-fn.type.d.ts +2 -3
- package/src/lib/util/types/resource-with-params-or-params-fn.type.js +0 -1
- package/src/lib/util/types/shared.type.d.ts +6 -7
- package/src/lib/util/types/shared.type.js +0 -1
- package/src/lib/util/types/util.d.ts +2 -3
- package/src/lib/util/types/util.js +3 -3
- package/src/lib/util/types/util.type.d.ts +3 -4
- package/src/lib/util/types/util.type.js +0 -1
- package/src/lib/util/update-state.util.d.ts +0 -1
- package/src/lib/util/update-state.util.js +0 -1
- package/src/lib/util/util.d.ts +2 -3
- package/src/lib/util/util.js +1 -2
- package/src/lib/util/util.type.d.ts +5 -6
- package/src/lib/util/util.type.js +0 -1
- package/src/lib/worker-adapter.d.ts +8 -0
- package/src/lib/worker-adapter.js +8 -0
- package/src/lib/yieldable.d.ts +4 -5
- package/src/lib/yieldable.js +4 -5
- package/src/index.d.ts.map +0 -1
- package/src/index.js.map +0 -1
- package/src/lib/after-recomputation.d.ts.map +0 -1
- package/src/lib/after-recomputation.js.map +0 -1
- package/src/lib/app-checked-di.d.ts.map +0 -1
- package/src/lib/app-checked-di.js.map +0 -1
- package/src/lib/async-process.d.ts.map +0 -1
- package/src/lib/async-process.js.map +0 -1
- package/src/lib/branded-component/branded-component.d.ts.map +0 -1
- package/src/lib/branded-component/branded-component.js.map +0 -1
- package/src/lib/browser-boundaries.d.ts.map +0 -1
- package/src/lib/browser-boundaries.js.map +0 -1
- package/src/lib/client-di-requirement.d.ts.map +0 -1
- package/src/lib/client-di-requirement.js.map +0 -1
- package/src/lib/client-function-middleware.d.ts.map +0 -1
- package/src/lib/client-function-middleware.js.map +0 -1
- package/src/lib/component-monitoring.d.ts.map +0 -1
- package/src/lib/component-monitoring.js.map +0 -1
- package/src/lib/component-register.d.ts.map +0 -1
- package/src/lib/component-register.js.map +0 -1
- package/src/lib/computed-source.d.ts.map +0 -1
- package/src/lib/computed-source.js.map +0 -1
- package/src/lib/correlation-id-plugin.d.ts.map +0 -1
- package/src/lib/correlation-id-plugin.js.map +0 -1
- package/src/lib/correlation-id.d.ts.map +0 -1
- package/src/lib/correlation-id.js.map +0 -1
- package/src/lib/craft-a11y.d.ts.map +0 -1
- package/src/lib/craft-a11y.js.map +0 -1
- package/src/lib/craft-activated-route.d.ts.map +0 -1
- package/src/lib/craft-activated-route.js.map +0 -1
- package/src/lib/craft-app-config.d.ts.map +0 -1
- package/src/lib/craft-app-config.js.map +0 -1
- package/src/lib/craft-codec.d.ts.map +0 -1
- package/src/lib/craft-codec.js.map +0 -1
- package/src/lib/craft-computed.d.ts.map +0 -1
- package/src/lib/craft-computed.js.map +0 -1
- package/src/lib/craft-control-flow.d.ts.map +0 -1
- package/src/lib/craft-control-flow.js.map +0 -1
- package/src/lib/craft-effect.d.ts.map +0 -1
- package/src/lib/craft-effect.js.map +0 -1
- package/src/lib/craft-exception.d.ts.map +0 -1
- package/src/lib/craft-exception.js.map +0 -1
- package/src/lib/craft-gen.d.ts.map +0 -1
- package/src/lib/craft-gen.js.map +0 -1
- package/src/lib/craft-generator-runtime.d.ts.map +0 -1
- package/src/lib/craft-generator-runtime.js.map +0 -1
- package/src/lib/craft-guard-runtime.d.ts.map +0 -1
- package/src/lib/craft-guard-runtime.js.map +0 -1
- package/src/lib/craft-handshake.d.ts.map +0 -1
- package/src/lib/craft-handshake.js.map +0 -1
- package/src/lib/craft-http-client.d.ts.map +0 -1
- package/src/lib/craft-http-client.js.map +0 -1
- package/src/lib/craft-http-trace.d.ts.map +0 -1
- package/src/lib/craft-http-trace.js.map +0 -1
- package/src/lib/craft-lazy.d.ts.map +0 -1
- package/src/lib/craft-lazy.js.map +0 -1
- package/src/lib/craft-load-retry.d.ts.map +0 -1
- package/src/lib/craft-load-retry.js.map +0 -1
- package/src/lib/craft-machine-history.d.ts.map +0 -1
- package/src/lib/craft-machine-history.js.map +0 -1
- package/src/lib/craft-match.d.ts.map +0 -1
- package/src/lib/craft-match.js.map +0 -1
- package/src/lib/craft-method.d.ts.map +0 -1
- package/src/lib/craft-method.js.map +0 -1
- package/src/lib/craft-node-directive.d.ts.map +0 -1
- package/src/lib/craft-node-directive.js.map +0 -1
- package/src/lib/craft-pending.d.ts.map +0 -1
- package/src/lib/craft-pending.js.map +0 -1
- package/src/lib/craft-pipe.d.ts.map +0 -1
- package/src/lib/craft-pipe.js.map +0 -1
- package/src/lib/craft-platform.d.ts.map +0 -1
- package/src/lib/craft-platform.js.map +0 -1
- package/src/lib/craft-primitive-gen.d.ts.map +0 -1
- package/src/lib/craft-primitive-gen.js.map +0 -1
- package/src/lib/craft-primitive-registry.d.ts.map +0 -1
- package/src/lib/craft-primitive-registry.js.map +0 -1
- package/src/lib/craft-program-operators.d.ts.map +0 -1
- package/src/lib/craft-program-operators.js.map +0 -1
- package/src/lib/craft-program-runtime.d.ts.map +0 -1
- package/src/lib/craft-program-runtime.js.map +0 -1
- package/src/lib/craft-register-for-runtime.d.ts.map +0 -1
- package/src/lib/craft-register-for-runtime.js.map +0 -1
- package/src/lib/craft-register-for.d.ts.map +0 -1
- package/src/lib/craft-register-for.js.map +0 -1
- package/src/lib/craft-render-identity.d.ts.map +0 -1
- package/src/lib/craft-render-identity.js.map +0 -1
- package/src/lib/craft-replay.d.ts.map +0 -1
- package/src/lib/craft-replay.js.map +0 -1
- package/src/lib/craft-resolve.d.ts.map +0 -1
- package/src/lib/craft-resolve.js.map +0 -1
- package/src/lib/craft-resource.d.ts.map +0 -1
- package/src/lib/craft-resource.js.map +0 -1
- package/src/lib/craft-route-exceptions.d.ts.map +0 -1
- package/src/lib/craft-route-exceptions.js.map +0 -1
- package/src/lib/craft-route-load-error.d.ts.map +0 -1
- package/src/lib/craft-route-load-error.js.map +0 -1
- package/src/lib/craft-route-meta.d.ts.map +0 -1
- package/src/lib/craft-route-meta.js.map +0 -1
- package/src/lib/craft-route-target.d.ts.map +0 -1
- package/src/lib/craft-route-target.js.map +0 -1
- package/src/lib/craft-router-outlet.d.ts.map +0 -1
- package/src/lib/craft-router-outlet.js.map +0 -1
- package/src/lib/craft-router-tokens.d.ts.map +0 -1
- package/src/lib/craft-router-tokens.js.map +0 -1
- package/src/lib/craft-router-trace.d.ts.map +0 -1
- package/src/lib/craft-router-trace.js.map +0 -1
- package/src/lib/craft-router.d.ts.map +0 -1
- package/src/lib/craft-router.js.map +0 -1
- package/src/lib/craft-routes.d.ts.map +0 -1
- package/src/lib/craft-routes.js.map +0 -1
- package/src/lib/craft-service.d.ts.map +0 -1
- package/src/lib/craft-service.js.map +0 -1
- package/src/lib/craft-service.shared.d.ts.map +0 -1
- package/src/lib/craft-service.shared.js.map +0 -1
- package/src/lib/craft-settled.d.ts.map +0 -1
- package/src/lib/craft-settled.js.map +0 -1
- package/src/lib/craft-ssr.d.ts.map +0 -1
- package/src/lib/craft-ssr.js.map +0 -1
- package/src/lib/craft-state-machine-runtime.d.ts.map +0 -1
- package/src/lib/craft-state-machine-runtime.js.map +0 -1
- package/src/lib/craft-state-machine.d.ts.map +0 -1
- package/src/lib/craft-state-machine.js.map +0 -1
- package/src/lib/craft-target-runtime.d.ts.map +0 -1
- package/src/lib/craft-target-runtime.js.map +0 -1
- package/src/lib/craft-transfer-snapshot.d.ts.map +0 -1
- package/src/lib/craft-transfer-snapshot.js.map +0 -1
- package/src/lib/craft-unique.d.ts.map +0 -1
- package/src/lib/craft-unique.js.map +0 -1
- package/src/lib/craft-until-settled.d.ts.map +0 -1
- package/src/lib/craft-until-settled.js.map +0 -1
- package/src/lib/craft-use.d.ts.map +0 -1
- package/src/lib/craft-use.js.map +0 -1
- package/src/lib/craft-view-transition.d.ts.map +0 -1
- package/src/lib/craft-view-transition.js.map +0 -1
- package/src/lib/dom-event-hook.d.ts.map +0 -1
- package/src/lib/dom-event-hook.js.map +0 -1
- package/src/lib/fn-wrapper.d.ts.map +0 -1
- package/src/lib/fn-wrapper.js.map +0 -1
- package/src/lib/form/craft-field.d.ts.map +0 -1
- package/src/lib/form/craft-field.directive.d.ts.map +0 -1
- package/src/lib/form/craft-field.directive.js.map +0 -1
- package/src/lib/form/craft-field.js.map +0 -1
- package/src/lib/form/field-exception.d.ts.map +0 -1
- package/src/lib/form/field-exception.js.map +0 -1
- package/src/lib/form/field-lens.d.ts.map +0 -1
- package/src/lib/form/field-lens.js.map +0 -1
- package/src/lib/form/insert-form-attributes.d.ts.map +0 -1
- package/src/lib/form/insert-form-attributes.js.map +0 -1
- package/src/lib/form/insert-form-internals.d.ts.map +0 -1
- package/src/lib/form/insert-form-internals.js.map +0 -1
- package/src/lib/form/insert-form-schema.d.ts.map +0 -1
- package/src/lib/form/insert-form-schema.js.map +0 -1
- package/src/lib/form/insert-form-submit.d.ts.map +0 -1
- package/src/lib/form/insert-form-submit.js.map +0 -1
- package/src/lib/form/insert-form.d.ts.map +0 -1
- package/src/lib/form/insert-form.js.map +0 -1
- package/src/lib/form/insert-select-form-tree.d.ts.map +0 -1
- package/src/lib/form/insert-select-form-tree.js.map +0 -1
- package/src/lib/form/insert-sub-form-field.d.ts.map +0 -1
- package/src/lib/form/insert-sub-form-field.js.map +0 -1
- package/src/lib/form/make-form-tree-insert.d.ts.map +0 -1
- package/src/lib/form/make-form-tree-insert.js.map +0 -1
- package/src/lib/form/target-form-field.d.ts.map +0 -1
- package/src/lib/form/target-form-field.js.map +0 -1
- package/src/lib/form/validator.d.ts.map +0 -1
- package/src/lib/form/validator.js.map +0 -1
- package/src/lib/from-event-to-source$.d.ts.map +0 -1
- package/src/lib/from-event-to-source$.js.map +0 -1
- package/src/lib/global-persister-handler.service.d.ts.map +0 -1
- package/src/lib/global-persister-handler.service.js.map +0 -1
- package/src/lib/host/craft-compat.d.ts.map +0 -1
- package/src/lib/host/craft-compat.js.map +0 -1
- package/src/lib/host/craft-dom.d.ts.map +0 -1
- package/src/lib/host/craft-dom.js.map +0 -1
- package/src/lib/host/craft-http.d.ts.map +0 -1
- package/src/lib/host/craft-http.js.map +0 -1
- package/src/lib/host/craft-injector-host.d.ts.map +0 -1
- package/src/lib/host/craft-injector-host.js.map +0 -1
- package/src/lib/host/craft-injector.d.ts.map +0 -1
- package/src/lib/host/craft-injector.js.map +0 -1
- package/src/lib/host/craft-linked-signal.d.ts.map +0 -1
- package/src/lib/host/craft-linked-signal.js.map +0 -1
- package/src/lib/host/craft-router-runtime.d.ts.map +0 -1
- package/src/lib/host/craft-router-runtime.js.map +0 -1
- package/src/lib/host/craft-router-types.d.ts.map +0 -1
- package/src/lib/host/craft-router-types.js.map +0 -1
- package/src/lib/host/craft-signal.d.ts.map +0 -1
- package/src/lib/host/craft-signal.js.map +0 -1
- package/src/lib/host/craft-test-bed.d.ts.map +0 -1
- package/src/lib/host/craft-test-bed.js.map +0 -1
- package/src/lib/host-tag.d.ts.map +0 -1
- package/src/lib/host-tag.js.map +0 -1
- package/src/lib/insert-entities.d.ts.map +0 -1
- package/src/lib/insert-entities.js.map +0 -1
- package/src/lib/insert-noop-typing-anchor.d.ts.map +0 -1
- package/src/lib/insert-noop-typing-anchor.js.map +0 -1
- package/src/lib/insert-pagination-placeholder-data.d.ts.map +0 -1
- package/src/lib/insert-pagination-placeholder-data.js.map +0 -1
- package/src/lib/insert-react-on-mutation.d.ts.map +0 -1
- package/src/lib/insert-react-on-mutation.js.map +0 -1
- package/src/lib/insert-select-resource.d.ts.map +0 -1
- package/src/lib/insert-select-resource.js.map +0 -1
- package/src/lib/insert-select.d.ts.map +0 -1
- package/src/lib/insert-select.js.map +0 -1
- package/src/lib/insert-storage-persister.d.ts.map +0 -1
- package/src/lib/insert-storage-persister.js.map +0 -1
- package/src/lib/insert-typed-pipes.d.ts.map +0 -1
- package/src/lib/insert-typed-pipes.js.map +0 -1
- package/src/lib/linked-source.d.ts.map +0 -1
- package/src/lib/linked-source.js.map +0 -1
- package/src/lib/local-storage-persister.d.ts.map +0 -1
- package/src/lib/local-storage-persister.js.map +0 -1
- package/src/lib/middleware-schema-shared.d.ts.map +0 -1
- package/src/lib/middleware-schema-shared.js.map +0 -1
- package/src/lib/mock-http-request-for-route.d.ts.map +0 -1
- package/src/lib/mock-http-request-for-route.js.map +0 -1
- package/src/lib/mutation.d.ts.map +0 -1
- package/src/lib/mutation.js.map +0 -1
- package/src/lib/on$.d.ts.map +0 -1
- package/src/lib/on$.js.map +0 -1
- package/src/lib/portable-server-function.d.ts.map +0 -1
- package/src/lib/portable-server-function.js.map +0 -1
- package/src/lib/preserved-resource.d.ts.map +0 -1
- package/src/lib/preserved-resource.js.map +0 -1
- package/src/lib/primitive-method-runtime-context.d.ts.map +0 -1
- package/src/lib/primitive-method-runtime-context.js.map +0 -1
- package/src/lib/primitive-resource-runtime-context.d.ts.map +0 -1
- package/src/lib/primitive-resource-runtime-context.js.map +0 -1
- package/src/lib/query-params.d.ts.map +0 -1
- package/src/lib/query-params.js.map +0 -1
- package/src/lib/query.core.d.ts.map +0 -1
- package/src/lib/query.core.js.map +0 -1
- package/src/lib/query.d.ts.map +0 -1
- package/src/lib/query.js.map +0 -1
- package/src/lib/reactive-read.d.ts.map +0 -1
- package/src/lib/reactive-read.js.map +0 -1
- package/src/lib/resource-by-id.d.ts.map +0 -1
- package/src/lib/resource-by-id.js.map +0 -1
- package/src/lib/resource-exception.d.ts.map +0 -1
- package/src/lib/resource-exception.js.map +0 -1
- package/src/lib/route-checked-di.d.ts.map +0 -1
- package/src/lib/route-checked-di.js.map +0 -1
- package/src/lib/schema-validation.d.ts.map +0 -1
- package/src/lib/schema-validation.js.map +0 -1
- package/src/lib/send-context-to-ai.d.ts.map +0 -1
- package/src/lib/send-context-to-ai.js.map +0 -1
- package/src/lib/send-context-to-ai.tokens.d.ts.map +0 -1
- package/src/lib/send-context-to-ai.tokens.js.map +0 -1
- package/src/lib/server-function-client.d.ts.map +0 -1
- package/src/lib/server-function-client.js.map +0 -1
- package/src/lib/server-function-contract.d.ts.map +0 -1
- package/src/lib/server-function-contract.js.map +0 -1
- package/src/lib/server-function-middleware.d.ts.map +0 -1
- package/src/lib/server-function-middleware.js.map +0 -1
- package/src/lib/server-function.d.ts.map +0 -1
- package/src/lib/server-function.js.map +0 -1
- package/src/lib/server-layer.d.ts.map +0 -1
- package/src/lib/server-layer.js.map +0 -1
- package/src/lib/server.d.ts.map +0 -1
- package/src/lib/server.js.map +0 -1
- package/src/lib/setup-craft-service-test.d.ts.map +0 -1
- package/src/lib/setup-craft-service-test.js.map +0 -1
- package/src/lib/setup-craft-service-testing-by-register.d.ts.map +0 -1
- package/src/lib/setup-craft-service-testing-by-register.js.map +0 -1
- package/src/lib/signal-proxy.d.ts.map +0 -1
- package/src/lib/signal-proxy.js.map +0 -1
- package/src/lib/signal-source.d.ts.map +0 -1
- package/src/lib/signal-source.js.map +0 -1
- package/src/lib/source$.d.ts.map +0 -1
- package/src/lib/source$.js.map +0 -1
- package/src/lib/source-from-event.d.ts.map +0 -1
- package/src/lib/source-from-event.js.map +0 -1
- package/src/lib/stacked-source.d.ts.map +0 -1
- package/src/lib/stacked-source.js.map +0 -1
- package/src/lib/standard-schema.d.ts.map +0 -1
- package/src/lib/standard-schema.js.map +0 -1
- package/src/lib/state-method-runtime-context.d.ts.map +0 -1
- package/src/lib/state-method-runtime-context.js.map +0 -1
- package/src/lib/state.d.ts.map +0 -1
- package/src/lib/state.js.map +0 -1
- package/src/lib/storage-persister.service.d.ts.map +0 -1
- package/src/lib/storage-persister.service.js.map +0 -1
- package/src/lib/take-app-snapshot.d.ts.map +0 -1
- package/src/lib/take-app-snapshot.js.map +0 -1
- package/src/lib/template-trace.d.ts.map +0 -1
- package/src/lib/template-trace.js.map +0 -1
- package/src/lib/temporal-runtime.d.ts.map +0 -1
- package/src/lib/temporal-runtime.js.map +0 -1
- package/src/lib/to-source.d.ts.map +0 -1
- package/src/lib/to-source.js.map +0 -1
- package/src/lib/util/craft-resource-ref.d.ts.map +0 -1
- package/src/lib/util/craft-resource-ref.js.map +0 -1
- package/src/lib/util/craft-resource-status.d.ts.map +0 -1
- package/src/lib/util/craft-resource-status.js.map +0 -1
- package/src/lib/util/entities-util.d.ts.map +0 -1
- package/src/lib/util/entities-util.js.map +0 -1
- package/src/lib/util/explicit-effect.d.ts.map +0 -1
- package/src/lib/util/explicit-effect.js.map +0 -1
- package/src/lib/util/extract-signal-props-and-methods.d.ts.map +0 -1
- package/src/lib/util/extract-signal-props-and-methods.js.map +0 -1
- package/src/lib/util/method-trigger-nonce.d.ts.map +0 -1
- package/src/lib/util/method-trigger-nonce.js.map +0 -1
- package/src/lib/util/persister.type.d.ts.map +0 -1
- package/src/lib/util/persister.type.js.map +0 -1
- package/src/lib/util/persister.util.d.ts.map +0 -1
- package/src/lib/util/persister.util.js.map +0 -1
- package/src/lib/util/react-on-mutation-effect.d.ts.map +0 -1
- package/src/lib/util/react-on-mutation-effect.js.map +0 -1
- package/src/lib/util/resource-by-id-changes-tracker.util.d.ts.map +0 -1
- package/src/lib/util/resource-by-id-changes-tracker.util.js.map +0 -1
- package/src/lib/util/source.type.d.ts.map +0 -1
- package/src/lib/util/source.type.js.map +0 -1
- package/src/lib/util/types/access-type-object-property-by-dotted-path.type.d.ts.map +0 -1
- package/src/lib/util/types/access-type-object-property-by-dotted-path.type.js.map +0 -1
- package/src/lib/util/types/boolean-or-mapper-fn-by-path-by-id.type.d.ts.map +0 -1
- package/src/lib/util/types/boolean-or-mapper-fn-by-path-by-id.type.js.map +0 -1
- package/src/lib/util/types/boolean-or-mapper-fn-by-path.type.d.ts.map +0 -1
- package/src/lib/util/types/boolean-or-mapper-fn-by-path.type.js.map +0 -1
- package/src/lib/util/types/brand.d.ts.map +0 -1
- package/src/lib/util/types/brand.js.map +0 -1
- package/src/lib/util/types/object-deep-path-mapper.type.d.ts.map +0 -1
- package/src/lib/util/types/object-deep-path-mapper.type.js.map +0 -1
- package/src/lib/util/types/resource-by-id-config.type.d.ts.map +0 -1
- package/src/lib/util/types/resource-by-id-config.type.js.map +0 -1
- package/src/lib/util/types/resource-with-params-or-params-fn.type.d.ts.map +0 -1
- package/src/lib/util/types/resource-with-params-or-params-fn.type.js.map +0 -1
- package/src/lib/util/types/shared.type.d.ts.map +0 -1
- package/src/lib/util/types/shared.type.js.map +0 -1
- package/src/lib/util/types/util.d.ts.map +0 -1
- package/src/lib/util/types/util.js.map +0 -1
- package/src/lib/util/types/util.type.d.ts.map +0 -1
- package/src/lib/util/types/util.type.js.map +0 -1
- package/src/lib/util/update-state.util.d.ts.map +0 -1
- package/src/lib/util/update-state.util.js.map +0 -1
- package/src/lib/util/util.d.ts.map +0 -1
- package/src/lib/util/util.js.map +0 -1
- package/src/lib/util/util.type.d.ts.map +0 -1
- package/src/lib/util/util.type.js.map +0 -1
- package/src/lib/yieldable.d.ts.map +0 -1
- package/src/lib/yieldable.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"craft-settled.js","sourceRoot":"","sources":["../../../../../libs/core/src/lib/craft-settled.ts"],"names":[],"mappings":"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","sourcesContent":["import { computed, type Signal } from './host/craft-compat';\nimport {\n CraftGenShortCircuit,\n type CraftGenExceptionMarker,\n} from './craft-gen';\nimport type { AnyCraftException } from './craft-exception';\nimport type { CraftResourceStatus } from './util/craft-resource-status';\nimport type {\n ReactiveReadRequest,\n YieldableReactiveValue,\n} from './reactive-read';\nimport { createYieldableReactiveValue } from './reactive-read';\n\nconst CRAFT_NOT_SETTLED = Symbol('craft-not-settled');\n\n/**\n * Thrown by a {@link CraftSettledSignal} read while its source has not settled\n * yet (`status` still `'idle'` or `'loading'`).\n *\n * It is the pending twin of {@link CraftGenShortCircuit}: both are native\n * `throw`s raised during a render pass and caught by the nearest boundary — a\n * `catchBlock` for the exception, a `pendingBlock` for this one. The dependency\n * on the source's `status` signal is established *before* the throw, so the\n * reading computation re-runs on its own once the source settles.\n */\nexport class CraftNotSettled extends Error {\n readonly [CRAFT_NOT_SETTLED] = true;\n /** Name of the async source that is not settled yet (`query` name, …). */\n readonly source: string;\n\n constructor(source: string) {\n super(\n `Craft async source \"${source}\" is not settled yet. Wrap the reading template in a pendingBlock(...).`,\n );\n this.name = 'CraftNotSettled';\n this.source = source;\n }\n}\n\nexport function isCraftNotSettled(value: unknown): value is CraftNotSettled {\n return (\n typeof value === 'object' && value !== null && CRAFT_NOT_SETTLED in value\n );\n}\n\ndeclare const CRAFT_SETTLED_BRAND: unique symbol;\n\n/**\n * Type-only brand carried by a {@link CraftSettledSignal}. It records **which**\n * async source the reader depends on and **which** exception codes that source\n * may raise, so both requirements can be enforced by the template type-checker:\n *\n * - `Source` must be covered by a `pendingBlock` boundary;\n * - `Codes` must be covered by a `catchBlock` boundary.\n *\n * The brand survives passing the signal by reference (`span(users.settledValue)`)\n * and travels through `craftComputed` via the marker yielded by {@link settled}.\n * It is lost inside a lambda (`() => users.settledValue().name`) — that case is\n * a lint concern, not a type one.\n */\nexport interface CraftSettledBrand<\n Source extends string = string,\n Exceptions = never,\n> {\n // Required (never present at runtime) so that extraction is exact: an\n // unbranded signal simply does not match, instead of matching with the\n // parameters falling back to their constraint.\n readonly [CRAFT_SETTLED_BRAND]: {\n readonly source: Source;\n readonly exceptions: Exceptions;\n };\n}\n\n/**\n * A `Signal<Value>` that never returns `undefined` and never returns a value\n * while its source carries an exception — it throws instead (see\n * {@link CraftNotSettled}). Its brand makes both obligations visible to the\n * template type-checker.\n */\nexport type CraftSettledSignal<\n Value,\n Source extends string = string,\n Exceptions = never,\n> = Signal<Value> & CraftSettledBrand<Source, Exceptions>;\n\n/** Type-only yields carried by a direct settled reader in a generator. */\nexport type CraftSettledReadMarkers<Source extends string, Exceptions> =\n | CraftPendingMarker<Source>\n | CraftGenExceptionMarker<Exceptions>;\n\n/** A settled reader that can be consumed directly with `yield* reader()`. */\nexport type CraftSettledYieldableValue<\n Value,\n Source extends string = string,\n Exceptions = never,\n> = YieldableReactiveValue<\n Value,\n 'settledState',\n CraftSettledReadMarkers<Source, Exceptions>\n> &\n CraftSettledBrand<Source, Exceptions>;\n\n/** The async source names a value depends on (`never` when it depends on none). */\nexport type CraftSettledSourcesOf<Value> =\n Value extends CraftSettledBrand<infer Source, any>\n ? string extends Source\n ? never\n : Source\n : never;\n\n/** The `craftException`s a settled read may surface. */\nexport type CraftSettledExceptionsOf<Value> =\n Value extends CraftSettledBrand<any, infer Exceptions> ? Exceptions : never;\n\n/** The exception codes a settled read may surface. */\nexport type CraftSettledCodesOf<Value> = Extract<\n CraftSettledExceptionsOf<Value>,\n { readonly _tag: string }\n>['_tag'];\n\n/**\n * Type-level marker surfaced by a {@link settled} call's `Yielded`, carrying the\n * name of the async source the enclosing computation now depends on.\n *\n * Like {@link CraftGenExceptionMarker} it is **never** yielded at runtime, and is\n * intentionally not a `ServiceYieldRequest` so dependency-map extraction ignores\n * it.\n */\nexport interface CraftPendingMarker<Source extends string> {\n readonly __craftPendingSource__: Source;\n}\n\n/** Extracts the union of async source names advertised by the markers in `Yielded`. */\nexport type ExtractCraftPendingSources<Yielded> = [\n Extract<Yielded, CraftPendingMarker<any>>,\n] extends [never]\n ? never\n : Extract<Yielded, CraftPendingMarker<any>> extends CraftPendingMarker<\n infer Source\n >\n ? Source\n : never;\n\n/**\n * What a settled read reports about its source to whoever is listening — today\n * a `pendingBlock` boundary, which needs a handle on the source's liveness to\n * render a reload indicator.\n *\n * A suspension is announced by a `throw`, but a **reload** is not: the stale\n * value is returned and nothing is thrown. Without this channel a boundary\n * would never learn that a source it covers is refetching.\n */\nexport interface CraftSettledReadNotice {\n readonly source: string;\n readonly status: Signal<CraftResourceStatus | string>;\n readonly value: Signal<unknown>;\n}\n\nexport type CraftSettledReadObserver = (notice: CraftSettledReadNotice) => void;\n\nlet activeSettledReadObserver: CraftSettledReadObserver | undefined;\n\n/**\n * Runs `work` with `observer` notified of every settled read it performs. The\n * observer is registered for the synchronous extent of the call — settled reads\n * are computations, so they evaluate inside the reader's own effect.\n */\nexport function ɵwithSettledReadObserver<T>(\n observer: CraftSettledReadObserver | undefined,\n work: () => T,\n): T {\n const previous = activeSettledReadObserver;\n activeSettledReadObserver = observer ?? previous;\n try {\n return work();\n } finally {\n activeSettledReadObserver = previous;\n }\n}\n\n/** The minimal shape {@link craftSettledValue} needs to build a settled read. */\nexport type SettleableResource = {\n status: Signal<CraftResourceStatus | string>;\n value: Signal<unknown>;\n error?: Signal<Error | undefined>;\n hasException: Signal<boolean>;\n exceptions: Signal<{ list: readonly AnyCraftException[] }>;\n};\n\n/**\n * Builds the `settledValue` signal of a craft primitive. Reading it:\n *\n * - throws {@link CraftGenShortCircuit} when the source carries a business\n * exception — routed to the nearest `catchBlock`;\n * - throws {@link CraftNotSettled} while the source has no value to show yet —\n * routed to the nearest `pendingBlock`;\n * - otherwise returns the resolved value, never `undefined`.\n *\n * A reload that preserves its previous value does **not** suspend: the stale\n * value is returned while the new one is in flight (stale-while-revalidate), so\n * a refetch never blanks a screen that already has data. Only a source with\n * nothing to show suspends.\n *\n * A residual technical failure (status `'exception'` with no business exception)\n * is rethrown through the internal Angular `error` channel, mirroring\n * `craftUntilSettled`.\n */\nexport function craftSettledValue<Value>(\n source: string,\n resource: SettleableResource,\n): CraftSettledSignal<Value> {\n return computed(() => {\n const status = resource.status();\n\n activeSettledReadObserver?.({\n source,\n status: resource.status,\n value: resource.value,\n });\n\n if (resource.hasException()) {\n throw new CraftGenShortCircuit(\n resource.exceptions().list[0] as AnyCraftException,\n );\n }\n\n if (status === 'exception') {\n throw resource.error?.();\n }\n\n const value = resource.value();\n\n if (value === undefined) {\n throw new CraftNotSettled(source);\n }\n\n return value as Value;\n }) as CraftSettledSignal<Value>;\n}\n\ntype SettledReaderOf<Ref> = Ref extends {\n settledValue: YieldableReactiveValue<infer Value, any, any> &\n CraftSettledBrand<infer Source, infer Exceptions>;\n}\n ? YieldableReactiveValue<Value> & CraftSettledBrand<Source, Exceptions>\n : never;\n\n/**\n * Reads the settled value of a craft primitive from inside a generator-based\n * computation, and records the dependency in its type:\n *\n * ```ts\n * readonly activeUserName = craftComputed('activeUserName', function* () {\n * const users = yield* settled(this.users);\n * // `users` is `User[]` here — never undefined, never in exception\n * return users.filter((user) => user.active).length;\n * });\n * ```\n *\n * The primitive's `settledValue` reader is executed immediately by the Craft\n * generator runtime. The additional yielded markers are type-only and make the\n * enclosing `craftComputed`:\n *\n * - depend on the source's pending state — a `pendingBlock` becomes mandatory in\n * any template rendering it;\n * - carry the source's exceptions — a `catchBlock` becomes mandatory too.\n */\nexport function* settled<\n const Ref extends {\n readonly settledValue: YieldableReactiveValue<any, any, any> &\n CraftSettledBrand<any, any>;\n },\n>(\n resource: Ref,\n): Generator<\n | CraftPendingMarker<\n SettledReaderOf<Ref> extends CraftSettledBrand<infer Source, any>\n ? Source\n : never\n >\n | CraftGenExceptionMarker<CraftSettledExceptionsOf<SettledReaderOf<Ref>>>\n | ReactiveReadRequest,\n SettledReaderOf<Ref> extends YieldableReactiveValue<infer Value>\n ? Value\n : never,\n unknown\n> {\n type Value =\n SettledReaderOf<Ref> extends YieldableReactiveValue<infer T> ? T : never;\n const read = resource.settledValue as () => Generator<\n ReactiveReadRequest<Value>,\n Value,\n unknown\n >;\n return yield* read();\n}\n\n/**\n * Installs the lazily-created `settledValue` read on a resource-like primitive\n * ref (`query`, `mutation`, `asyncProcess`).\n *\n * It is a getter — the computation is only built on first read — and it is\n * **enumerable**: a template context is rebuilt by copying the ref's own\n * enumerable members, so a hidden property would not survive the trip into the\n * template.\n */\nexport function attachCraftSettledValue(name: string, ref: object): void {\n if ('settledValue' in ref) return;\n\n let cached: CraftSettledSignal<unknown> | undefined;\n Object.defineProperty(ref, 'settledValue', {\n get: () =>\n (cached ??= craftSettledValue(\n name,\n ref as unknown as SettleableResource,\n )),\n enumerable: true,\n configurable: true,\n });\n}\n\n/** Creates an insertion-facing generator reader over a settled raw signal. */\nexport function createYieldableSettledValue<\n Value,\n Source extends string,\n Exceptions,\n>(\n source: Signal<Value>,\n identity: {\n readonly primitive?: string;\n readonly insertion?: string;\n readonly path?: string;\n },\n): CraftSettledYieldableValue<Value, Source, Exceptions> {\n return createYieldableReactiveValue(\n source,\n 'settledState',\n identity,\n ) as CraftSettledYieldableValue<Value, Source, Exceptions>;\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"craft-ssr.d.ts","sourceRoot":"","sources":["../../../../../libs/core/src/lib/craft-ssr.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEtD,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC;IACpC,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC,CAAC;AAEH,8EAA8E;AAC9E,eAAO,MAAM,gBAAgB;UALrB,OAAO;gBACD,MAAM;GAIwD,CAAC;AAE7E,gFAAgF;AAChF,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC;IACrC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;CACzD,CAAC,CAAC;AAEH,eAAO,MAAM,iBAAiB;kBAHd,MAAM,QAAQ,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;GAGsB,CAAC;AAEhF,qBAAa,gCAAiC,SAAQ,KAAK;IACzD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,qCAAqC,CAAC;gBAE3C,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;CAS3C;AAED,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;gBAExB,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE;CAQ1D"}
|
package/src/lib/craft-ssr.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"craft-ssr.js","sourceRoot":"","sources":["../../../../../libs/core/src/lib/craft-ssr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AASnD,8EAA8E;AAC9E,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAU,CAAiB,gBAAgB,CAAC,CAAC;AAO7E,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAAkB,iBAAiB,CAAC,CAAC;AAEhF,MAAM,OAAO,gCAAiC,SAAQ,KAAK;IAChD,MAAM,CAAS;IACf,KAAK,CAAU;IACf,MAAM,CAAwC;IAEvD,YAAY,MAAc,EAAE,KAAc;QACxC,KAAK,CACH,uBAAuB,MAAM,oEAAoE,KAAK,CAAC,CAAC,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CACtI,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,kCAAkC,CAAC;QAC/C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,qCAAqC,CAAC;IACtD,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IACpC,SAAS,CAAS;IAClB,OAAO,CAAoB;IAEpC,YAAY,SAAiB,EAAE,OAA0B;QACvD,KAAK,CACH,6BAA6B,SAAS,yBAAyB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACrF,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF","sourcesContent":["import { craftToken } from './host/craft-injector';\n\nexport type SsrMode = 'block' | 'fallback' | 'client';\n\nexport type CraftSsrPolicy = Readonly<{\n mode: SsrMode;\n timeoutMs?: number;\n}>;\n\n/** Nearest route-level default, overridden by a local pendingBlock policy. */\nexport const CRAFT_SSR_POLICY = craftToken<CraftSsrPolicy>('CraftSsrPolicy');\n\n/** Request-scoped bridge used by core async work such as lazy route loading. */\nexport type CraftSsrRuntime = Readonly<{\n track(source: string, work: PromiseLike<unknown>): void;\n}>;\n\nexport const CRAFT_SSR_RUNTIME = craftToken<CraftSsrRuntime>('CraftSsrRuntime');\n\nexport class CraftUnhandledSsrResolutionError extends Error {\n readonly source: string;\n readonly route?: string;\n readonly reason: 'no pendingBlock or route SSR policy';\n\n constructor(source: string, route?: string) {\n super(\n `Craft async source \"${source}\" suspended during SSR without a pendingBlock or route SSR policy${route ? ` (route: ${route})` : ''}.`,\n );\n this.name = 'CraftUnhandledSsrResolutionError';\n this.source = source;\n this.route = route;\n this.reason = 'no pendingBlock or route SSR policy';\n }\n}\n\nexport class CraftSsrTimeoutError extends Error {\n readonly timeoutMs: number;\n readonly sources: readonly string[];\n\n constructor(timeoutMs: number, sources: readonly string[]) {\n super(\n `Craft SSR timed out after ${timeoutMs}ms while waiting for: ${sources.join(', ')}.`,\n );\n this.name = 'CraftSsrTimeoutError';\n this.timeoutMs = timeoutMs;\n this.sources = sources;\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"craft-state-machine-runtime.d.ts","sourceRoot":"","sources":["../../../../../libs/core/src/lib/craft-state-machine-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"craft-state-machine-runtime.js","sourceRoot":"","sources":["../../../../../libs/core/src/lib/craft-state-machine-runtime.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DestroyRef,\n effect,\n inject,\n Injector,\n runInInjectionContext,\n untracked,\n type Signal,\n} from './host/craft-compat';\nimport {\n isGenerator,\n runCraftGenerator,\n SERVICE_TRACKED_DEPS_REQUEST_MARKER,\n} from './craft-generator-runtime';\nimport type { CraftWritableSignal } from './host/craft-signal';\nimport {\n isYieldableReactiveValue,\n rawReactiveValue,\n type YieldableReactiveValue,\n} from './reactive-read';\n\n/**\n * Runtime core of `craftStateMachine`, kept in its own module so `on$` and\n * `afterRecomputation` can register machine callbacks without importing the\n * public state-machine surface (which imports them back for its own typing).\n */\n\nconst MACHINE_INVALID_YIELD_ERROR_MESSAGE =\n 'craftStateMachine generators can only yield craftService dependencies or exposed dependency helpers.';\nconst MACHINE_APP_START_ERROR_MESSAGE =\n 'craftStateMachine generators do not support onAppStart(...).';\n\n/** A guard as the machine stores it: any transition in, truthiness out. */\nexport type RuntimeTransitionGuard = (transition: {\n readonly from: string | undefined;\n readonly to: string;\n readonly context: unknown;\n readonly event: unknown;\n}) => unknown;\n\n/** What an accepted or refused `transit(...)` reports to its observers. */\nexport type MachineTransitionRecord = Readonly<{\n from: string | undefined;\n to: string;\n event: unknown;\n accepted: boolean;\n}>;\n\nexport type MachineTransitionObserver = (\n record: MachineTransitionRecord,\n) => void;\n\nexport type MachineRuntime = {\n readonly context: unknown;\n readonly currentStep: CraftWritableSignal<string | undefined>;\n readonly globalGuards: readonly RuntimeTransitionGuard[];\n readonly stepGuards: Map<string, readonly RuntimeTransitionGuard[]>;\n readonly injector: Injector;\n readonly initRegistrations: Array<() => void>;\n readonly observers: Set<MachineTransitionObserver>;\n /**\n * While suspended, the machine's registrations do not run. Restoring a\n * captured value would otherwise re-fire the very reactions that produced\n * the transition being replayed, and the machine would fight the replay.\n */\n suspended: boolean;\n};\n\n/**\n * The step currently being installed (or the step a registered callback was\n * declared under). `transit(...)` reads it to know its target, which is why the\n * registration helpers restore it around every deferred callback.\n */\nexport type MachineScope = {\n readonly runtime: MachineRuntime;\n readonly target: string;\n};\n\nlet activeScope: MachineScope | undefined;\n\nexport function ɵactiveMachineScope(): MachineScope | undefined {\n return activeScope;\n}\n\nexport function ɵrequireMachineScope(helper: string): MachineScope {\n if (!activeScope) {\n throw new Error(\n `${helper} can only be used inside a transitionStep(...) of a craftStateMachine.`,\n );\n }\n return activeScope;\n}\n\nexport function ɵwithMachineScope<Result>(\n scope: MachineScope,\n run: () => Result,\n): Result {\n const previous = activeScope;\n activeScope = scope;\n try {\n return run();\n } finally {\n activeScope = previous;\n }\n}\n\n/**\n * Drives a generator produced inside a machine (a step installation, a\n * registered callback, one of the machine factories) through the synchronous\n * craft runtime, so `yield* SomeService()` resolves against the machine's\n * injector.\n */\nexport function ɵdriveMachineGenerator(\n value: unknown,\n injector: Injector,\n): unknown {\n if (!isGenerator(value)) {\n return value;\n }\n\n return runCraftGenerator({\n iterator: value,\n injector,\n hostScope: 'function',\n invalidYieldErrorMessage: MACHINE_INVALID_YIELD_ERROR_MESSAGE,\n multipleAppStartErrorMessage: MACHINE_APP_START_ERROR_MESSAGE,\n onAppStartNotSupportedErrorMessage: MACHINE_APP_START_ERROR_MESSAGE,\n }).value;\n}\n\n/**\n * Runs a deferred machine callback: the declaring step is restored so\n * `transit(...)` resolves to the right target, reads stay untracked (a callback\n * driven from an effect must not subscribe the effect to whatever its guards\n * read), and the returned generator — typically `transit(event).pipe(...)` — is\n * driven through the craft runtime.\n */\nexport function ɵrunMachineCallback(\n scope: MachineScope,\n run: () => unknown,\n): unknown {\n if (scope.runtime.suspended) {\n return undefined;\n }\n\n return untracked(() =>\n ɵwithMachineScope(scope, () =>\n runInInjectionContext(scope.runtime.injector, () =>\n ɵdriveMachineGenerator(run(), scope.runtime.injector),\n ),\n ),\n );\n}\n\n/**\n * The value `yield* on$(...)` / `yield* afterRecomputation(...)` /\n * `yield* initStateMachine(...)` resolve to. It yields one tracked-deps request\n * (a no-op the craft runtime already understands) so the registration is a\n * regular member of the step generator's yield chain.\n */\nexport function ɵmachineRegistration(): Generator<unknown, void, unknown> {\n return (function* () {\n yield {\n [SERVICE_TRACKED_DEPS_REQUEST_MARKER]: true,\n providedIn: 'global',\n resolve: () => undefined,\n };\n })();\n}\n\n/** Registration behind `on$(source, callback)` inside a transitionStep. */\nexport function ɵregisterMachineSource(\n source: {\n subscribe: (callback: (value: never) => void) => { unsubscribe(): void };\n },\n callback: (value: never) => unknown,\n): Generator<unknown, void, unknown> {\n const scope = ɵrequireMachineScope('on$(...)');\n const subscription = source.subscribe((value) => {\n ɵrunMachineCallback(scope, () => callback(value));\n });\n inject(DestroyRef).onDestroy(() => subscription.unsubscribe());\n return ɵmachineRegistration();\n}\n\n/** Registration behind `afterRecomputation(signal, callback)` inside a step. */\nexport function ɵregisterMachineRecomputation(\n source: Signal<unknown>,\n callback: (value: never) => unknown,\n): Generator<unknown, void, unknown> {\n const scope = ɵrequireMachineScope('afterRecomputation(...)');\n // A craft reactive value is itself the generator-shaped reader; reading it as\n // a plain signal means going through its raw source.\n const read = isYieldableReactiveValue(source)\n ? (rawReactiveValue(source as YieldableReactiveValue<unknown>) as Signal<unknown>)\n : source;\n\n effect(() => {\n const value = read();\n ɵrunMachineCallback(scope, () => callback(value as never));\n });\n return ɵmachineRegistration();\n}\n\n/** Registration behind `initStateMachine(callback)` inside a step. */\nexport function ɵregisterMachineInit(\n callback: () => unknown,\n): Generator<unknown, void, unknown> {\n const scope = ɵrequireMachineScope('initStateMachine(...)');\n scope.runtime.initRegistrations.push(() => {\n ɵrunMachineCallback(scope, callback);\n });\n return ɵmachineRegistration();\n}\n\n/**\n * Evaluates a transition attempt: global guards, then the target step's guards,\n * then the guards attached to this very `transit(...)` call. A transition to the\n * current step is a no-op, and the accepted attempt simply publishes the new\n * step — the last accepted `transit()` wins, with no queue and no priority.\n */\nexport function ɵrunTransition(\n scope: MachineScope,\n event: unknown,\n localGuards: readonly RuntimeTransitionGuard[],\n): Generator<unknown, boolean, unknown> {\n return (function* () {\n const { runtime, target } = scope;\n const from = untracked(() => runtime.currentStep());\n\n if (from === target) {\n return false;\n }\n\n const report = (accepted: boolean): boolean => {\n for (const observer of runtime.observers) {\n observer({ from, to: target, event, accepted });\n }\n return accepted;\n };\n\n const transition = {\n from,\n to: target,\n context: runtime.context,\n event,\n };\n\n const guards = [\n ...runtime.globalGuards,\n ...(runtime.stepGuards.get(target) ?? []),\n ...localGuards,\n ];\n\n for (const guard of guards) {\n const result = guard(transition);\n const resolved = isGenerator(result)\n ? yield* (result as Generator<unknown, unknown, unknown>)\n : result;\n\n if (!resolved) {\n return report(false);\n }\n }\n\n runtime.currentStep.set(target);\n return report(true);\n })();\n}\n\n/** Moves the machine to `step` without consulting any guard. */\nexport function ɵrestoreMachineStep(\n runtime: MachineRuntime,\n step: string,\n): void {\n runtime.currentStep.set(step);\n}\n\n/** Runs `restore` with the machine's registrations muted. */\nexport function ɵwithSuspendedMachine<Result>(\n runtime: MachineRuntime,\n restore: () => Result,\n): Result {\n const previous = runtime.suspended;\n runtime.suspended = true;\n try {\n return restore();\n } finally {\n runtime.suspended = previous;\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"craft-state-machine.d.ts","sourceRoot":"","sources":["../../../../../libs/core/src/lib/craft-state-machine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"craft-state-machine.js","sourceRoot":"","sources":["../../../../../libs/core/src/lib/craft-state-machine.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n assertInInjectionContext,\n inject,\n Injector,\n isSignal,\n runInInjectionContext,\n} from './host/craft-compat';\nimport {\n craftComputed as createCraftComputed,\n craftSignal,\n} from './host/craft-signal';\nimport { injectFnWrapper } from './fn-wrapper';\nimport { ɵcreateHostTaggedInjector, ɵHOST_TAG_LIST } from './craft-service';\nimport type {\n CompleteServiceDependencyMapFromYielded,\n SERVICE_HELPER_DEPENDENCIES,\n} from './craft-service';\nimport {\n createNamedPrimitiveGen,\n type NamedCraftPrimitiveGen,\n} from './craft-primitive-gen';\nimport { isSource } from './util/util';\nimport {\n createYieldableInsertionMethod,\n isNonYieldableInsertionMethod,\n isYieldableMethod,\n type BrandReactiveProperties,\n type YieldableInsertionMethods,\n} from './yieldable';\nimport {\n createYieldableReactiveValue,\n isYieldableReactiveValue,\n nameInsertedReactiveValue,\n type YieldableReactiveValue,\n} from './reactive-read';\nimport type { MergeObject } from './util/types/util.type';\nimport {\n ɵdriveMachineGenerator,\n ɵregisterMachineInit,\n ɵrestoreMachineStep,\n ɵrunTransition,\n ɵwithMachineScope,\n ɵwithSuspendedMachine,\n ɵrequireMachineScope,\n type MachineRuntime,\n type MachineTransitionObserver,\n type RuntimeTransitionGuard,\n} from './craft-state-machine-runtime';\n\n// ---------------------------------------------------------------------------\n// Markers\n// ---------------------------------------------------------------------------\n\nconst TRANSITION_STEP_MARKER = Symbol('craft-transition-step');\nconst TRANSITIONS_SETUP_MARKER = Symbol('craft-transitions-setup');\nconst TRANSITION_GUARD_MARKER = Symbol('craft-transition-guard');\n\n/** Type-only carriers. None of these exist at runtime. */\ndeclare const TRANSITION_STEP_YIELDED: unique symbol;\ndeclare const TRANSITIONS_SETUP_CONTEXT: unique symbol;\ndeclare const TRANSITIONS_SETUP_STEPS: unique symbol;\ndeclare const TRANSITIONS_SETUP_YIELDED: unique symbol;\ndeclare const MISSING_INIT_STATE_MACHINE: unique symbol;\n\n/**\n * Phantom request advertised by `initStateMachine(...)`. It is never yielded at\n * runtime; `craftStateMachine` reads it off the transitions' `Yielded` to reject\n * a machine that declares no way to reach its first step.\n */\nexport declare const CRAFT_MACHINE_INIT_REQUEST: unique symbol;\n\nexport interface CraftMachineInitRequest {\n readonly [CRAFT_MACHINE_INIT_REQUEST]: true;\n}\n\n// ---------------------------------------------------------------------------\n// Public types\n// ---------------------------------------------------------------------------\n\n/**\n * What a guard sees. `from` is `undefined` for the very first transition — the\n * one that gives the machine its initial step.\n */\nexport type CraftTransition<\n Context = unknown,\n Steps extends string = string,\n Event = unknown,\n> = {\n readonly from: Steps | undefined;\n readonly to: Steps;\n readonly context: Context;\n readonly event: Event;\n};\n\n/**\n * A guard, built by {@link transitionGuard}. It answers a single transition\n * attempt; a generator guard may `yield*` craft dependencies, which the machine\n * folds into its own dependency graph.\n */\nexport type CraftTransitionGuard<\n Transition = CraftTransition<any, string, any>,\n Yielded = never,\n> = ((\n transition: Transition,\n) => boolean | Generator<Yielded, boolean, unknown>) & {\n readonly [TRANSITION_GUARD_MARKER]: true;\n};\n\n/** A transition attempt: `yield*` it to run it, `.pipe(...)` to guard it. */\nexport type CraftTransitionAttempt<\n Context,\n Event,\n Yielded = never,\n> = Generator<Yielded, boolean, unknown> & {\n readonly pipe: CraftTransitionAttemptPipe<Context, Event, Yielded>;\n};\n\ntype AttemptGuard<Context, Event, Yielded> = CraftTransitionGuard<\n CraftTransition<Context, string, Event>,\n Yielded\n>;\n\nexport interface CraftTransitionAttemptPipe<Context, Event, Yielded> {\n <Y1>(\n guard1: AttemptGuard<Context, Event, Y1>,\n ): CraftTransitionAttempt<Context, Event, Yielded | Y1>;\n <Y1, Y2>(\n guard1: AttemptGuard<Context, Event, Y1>,\n guard2: AttemptGuard<Context, Event, Y2>,\n ): CraftTransitionAttempt<Context, Event, Yielded | Y1 | Y2>;\n <Y1, Y2, Y3>(\n guard1: AttemptGuard<Context, Event, Y1>,\n guard2: AttemptGuard<Context, Event, Y2>,\n guard3: AttemptGuard<Context, Event, Y3>,\n ): CraftTransitionAttempt<Context, Event, Yielded | Y1 | Y2 | Y3>;\n <Y1, Y2, Y3, Y4>(\n guard1: AttemptGuard<Context, Event, Y1>,\n guard2: AttemptGuard<Context, Event, Y2>,\n guard3: AttemptGuard<Context, Event, Y3>,\n guard4: AttemptGuard<Context, Event, Y4>,\n ): CraftTransitionAttempt<Context, Event, Yielded | Y1 | Y2 | Y3 | Y4>;\n}\n\n/**\n * The `transit` handed to the transitions setup. Called inside a\n * `transitionStep('x', ...)` registration, it targets that very step: the step\n * a machine can move to is the step whose block declared the attempt.\n */\nexport interface CraftTransit<Context> {\n (): CraftTransitionAttempt<Context, void>;\n <Event>(event: Event): CraftTransitionAttempt<Context, Event>;\n}\n\ntype StepGuard<Yielded> = CraftTransitionGuard<\n CraftTransition<any, string, any>,\n Yielded\n>;\n\nexport interface CraftTransitionStepPipe<Yielded> {\n <Y1>(guard1: StepGuard<Y1>): CraftTransitionStep<Yielded | Y1>;\n <Y1, Y2>(\n guard1: StepGuard<Y1>,\n guard2: StepGuard<Y2>,\n ): CraftTransitionStep<Yielded | Y1 | Y2>;\n <Y1, Y2, Y3>(\n guard1: StepGuard<Y1>,\n guard2: StepGuard<Y2>,\n guard3: StepGuard<Y3>,\n ): CraftTransitionStep<Yielded | Y1 | Y2 | Y3>;\n <Y1, Y2, Y3, Y4>(\n guard1: StepGuard<Y1>,\n guard2: StepGuard<Y2>,\n guard3: StepGuard<Y3>,\n guard4: StepGuard<Y4>,\n ): CraftTransitionStep<Yielded | Y1 | Y2 | Y3 | Y4>;\n}\n\n/** One entry of the transitions record: how the machine enters that step. */\nexport interface CraftTransitionStep<Yielded = never> {\n readonly [TRANSITION_STEP_MARKER]: true;\n readonly [TRANSITION_STEP_YIELDED]?: Yielded;\n readonly pipe: CraftTransitionStepPipe<Yielded>;\n}\n\ntype AnyStepsRecord = Record<string, CraftTransitionStep<any>>;\n\ntype StepYielded<Step> = typeof TRANSITION_STEP_YIELDED extends keyof Step\n ? Step extends { readonly [TRANSITION_STEP_YIELDED]?: infer Yielded }\n ? Yielded\n : never\n : never;\n\ntype StepsRecordYielded<Steps extends AnyStepsRecord> = {\n [Key in keyof Steps]: StepYielded<Steps[Key]>;\n}[keyof Steps];\n\ntype SetupGuard<Context, Steps extends string, Yielded> = CraftTransitionGuard<\n CraftTransition<Context, Steps, unknown>,\n Yielded\n>;\n\n/** The step names a transitions record declares. */\ntype MachineSteps<StepsRecord> = Extract<keyof StepsRecord, string>;\n\nexport interface CraftTransitionsSetupPipe<\n Context,\n StepsRecord extends AnyStepsRecord,\n Yielded,\n> {\n <Y1>(\n guard1: SetupGuard<Context, MachineSteps<StepsRecord>, Y1>,\n ): CraftTransitionsSetup<Context, StepsRecord, Yielded | Y1>;\n <Y1, Y2>(\n guard1: SetupGuard<Context, MachineSteps<StepsRecord>, Y1>,\n guard2: SetupGuard<Context, MachineSteps<StepsRecord>, Y2>,\n ): CraftTransitionsSetup<Context, StepsRecord, Yielded | Y1 | Y2>;\n <Y1, Y2, Y3>(\n guard1: SetupGuard<Context, MachineSteps<StepsRecord>, Y1>,\n guard2: SetupGuard<Context, MachineSteps<StepsRecord>, Y2>,\n guard3: SetupGuard<Context, MachineSteps<StepsRecord>, Y3>,\n ): CraftTransitionsSetup<Context, StepsRecord, Yielded | Y1 | Y2 | Y3>;\n <Y1, Y2, Y3, Y4>(\n guard1: SetupGuard<Context, MachineSteps<StepsRecord>, Y1>,\n guard2: SetupGuard<Context, MachineSteps<StepsRecord>, Y2>,\n guard3: SetupGuard<Context, MachineSteps<StepsRecord>, Y3>,\n guard4: SetupGuard<Context, MachineSteps<StepsRecord>, Y4>,\n ): CraftTransitionsSetup<Context, StepsRecord, Yielded | Y1 | Y2 | Y3 | Y4>;\n}\n\n/**\n * The setup generator itself: the form `craftStateMachine` takes when the\n * transitions carry no machine-wide guard. `Context` is contextually typed by\n * the machine, so the parameter needs no annotation here.\n */\nexport type CraftTransitionsSetupFn<\n Context,\n StepsRecord extends AnyStepsRecord,\n Yielded,\n> = (\n context: Context,\n transit: CraftTransit<Context>,\n) => Generator<Yielded, StepsRecord, unknown>;\n\n/**\n * The transitions once {@link transitionsSetup} has wrapped them, which is what\n * carries `.pipe(...)`. `Context` travels contravariantly so `craftStateMachine`\n * accepts a setup whose annotated context is satisfied by the machine's actual\n * context, and refuses one that asks for more.\n */\nexport interface CraftTransitionsSetup<\n Context,\n StepsRecord extends AnyStepsRecord,\n Yielded = never,\n> {\n readonly [TRANSITIONS_SETUP_MARKER]: true;\n readonly [TRANSITIONS_SETUP_CONTEXT]?: (context: Context) => void;\n readonly [TRANSITIONS_SETUP_STEPS]?: StepsRecord;\n readonly [TRANSITIONS_SETUP_YIELDED]?: Yielded;\n readonly pipe: CraftTransitionsSetupPipe<Context, StepsRecord, Yielded>;\n}\n\n/**\n * What `craftStateMachine` accepts as its transitions: the bare setup\n * generator, or the same generator wrapped in {@link transitionsSetup} when a\n * machine-wide guard has to be piped onto it.\n */\nexport type CraftTransitionsInput<\n Context,\n StepsRecord extends AnyStepsRecord,\n Yielded,\n> =\n | CraftTransitionsSetupFn<Context, StepsRecord, Yielded>\n | CraftTransitionsSetup<Context, StepsRecord, Yielded>;\n\n/**\n * `yield* initStateMachine(...)` is not optional: without it nothing would ever\n * give the machine its first step. The obligation is enforced here, by making\n * the transitions argument unassignable until the marker shows up.\n */\nexport type CraftMachineInitRequirement<Yielded> = [\n Extract<Yielded, CraftMachineInitRequest>,\n] extends [never]\n ? {\n readonly [MISSING_INIT_STATE_MACHINE]: 'This state machine never initialises: add `yield* initStateMachine(() => transit())` to one of its transitionStep(...) blocks.';\n }\n : unknown;\n\n/** The registration value the machine-scoped helpers resolve to. */\nexport type CraftMachineRegistration<Yielded = never> = Generator<\n Yielded,\n void,\n unknown\n>;\n\n/** Reads the context type a `craftStateMachine` context factory produces. */\nexport type CraftMachineContext<ContextFactory> = ContextFactory extends (\n ...args: any[]\n) => Generator<any, infer Context, any>\n ? Context\n : ContextFactory extends (...args: any[]) => infer Context\n ? Context\n : never;\n\ntype CurrentStepWithContextForStep<StepContexts, Step extends string> =\n Step extends keyof StepContexts\n ? StepContexts[Step] extends object\n ? { readonly step: Step } & StepContexts[Step]\n : { readonly step: Step; readonly context: StepContexts[Step] }\n : { readonly step: Step; readonly context: unknown };\n\ntype CurrentStepWithContextValue<\n StepContexts,\n Steps extends string,\n> = Steps extends string\n ? CurrentStepWithContextForStep<StepContexts, Steps>\n : never;\n\n/** One decided transition attempt, as an insertion observes it. */\nexport type CraftMachineTransition<Steps extends string = string> = Readonly<{\n from: Steps | undefined;\n to: Steps;\n event: unknown;\n accepted: boolean;\n}>;\n\n/**\n * The machine's own controls, handed to its insertion. This is what a feature\n * built on top of the machine — a history, a replay — needs and the machine\n * core deliberately does not provide itself.\n */\nexport type CraftMachineControls<Steps extends string = string> = Readonly<{\n /** Host chain of the machine, to scope a registry capture to what it owns. */\n hostTags: readonly string[];\n /** Observes every decided attempt, accepted or refused. Returns a release. */\n onTransition(\n observer: (transition: CraftMachineTransition<Steps>) => void,\n ): () => void;\n /** Moves to a step without consulting any guard. */\n restoreStep(step: Steps): void;\n /** Runs `restore` with the machine's registrations muted. */\n suspended<Result>(restore: () => Result): Result;\n}>;\n\nexport type CraftMachineInsertionContext<\n Context,\n Steps extends string,\n StepContexts,\n> = {\n readonly context: Context;\n readonly currentStep: YieldableReactiveValue<Steps, 'currentStep'>;\n readonly currentStepWithContext: YieldableReactiveValue<\n CurrentStepWithContextValue<StepContexts, Steps>,\n 'currentStepWithContext'\n >;\n readonly machine: CraftMachineControls<Steps>;\n};\n\nexport type CraftStateMachineOutput<\n Context,\n Steps extends string,\n StepContexts,\n Insertions,\n Dependencies = {},\n> = MergeObject<\n {\n readonly currentStep: YieldableReactiveValue<Steps, 'currentStep'>;\n readonly currentStepWithContext: YieldableReactiveValue<\n CurrentStepWithContextValue<StepContexts, Steps>,\n 'currentStepWithContext'\n >;\n readonly context: Context;\n },\n MergeObject<\n BrandReactiveProperties<YieldableInsertionMethods<Insertions>>,\n { readonly [SERVICE_HELPER_DEPENDENCIES]?: Dependencies }\n >\n>;\n\n// ---------------------------------------------------------------------------\n// Authoring surface\n// ---------------------------------------------------------------------------\n\n/**\n * Wraps a predicate into a transition guard. Accepts a plain lambda or a\n * generator; a generator guard resolves craft dependencies with `yield*`, and\n * those dependencies join the machine's dependency graph.\n *\n * ```ts\n * transitionGuard(({ context }) => context.form.isValid());\n *\n * transitionGuard(function* ({ context, from, to, event }) {\n * const policy = yield* PolicyService();\n * return policy.canTransition({ from, to, event });\n * });\n * ```\n */\nexport function transitionGuard<\n Transition extends CraftTransition<any, any, any>,\n Yielded = never,\n>(\n guard: (\n transition: Transition,\n ) => boolean | Generator<Yielded, boolean, unknown>,\n): CraftTransitionGuard<Transition, Yielded> {\n return Object.assign(guard, {\n [TRANSITION_GUARD_MARKER]: true as const,\n }) as CraftTransitionGuard<Transition, Yielded>;\n}\n\n/**\n * Declares how a machine enters one step. The generator runs once, at machine\n * creation, and registers the reactions that may move the machine here\n * (`on$`, `afterRecomputation`, `initStateMachine`).\n *\n * `transitionStep(...).pipe(transitionGuard(...))` guards every transition\n * declared in that step.\n */\nexport function transitionStep<Yielded = never>(\n setup: () => Generator<Yielded, unknown, unknown> | void,\n): CraftTransitionStep<Yielded> {\n return createTransitionStep(setup as () => unknown, []);\n}\n\n/**\n * Builds every transition of a machine. The setup generator receives the\n * machine `context` and `transit`, and returns one {@link transitionStep} per\n * step; the record's keys ARE the machine's steps.\n *\n * `transitionsSetup(...).pipe(transitionGuard(...))` guards every transition of\n * every step.\n *\n * Declared standalone, the setup's `context` parameter has to be annotated —\n * typically with `CraftMachineContext<typeof contextFactory>`; `craftStateMachine`\n * then checks the machine's real context against that annotation.\n */\nexport function transitionsSetup<\n Context,\n StepsRecord extends AnyStepsRecord,\n SetupYielded = never,\n>(\n setup: CraftTransitionsSetupFn<Context, StepsRecord, SetupYielded>,\n): CraftTransitionsSetup<Context, StepsRecord, SetupYielded> {\n return createTransitionsSetup(\n setup as unknown as (context: unknown, transit: unknown) => unknown,\n [],\n ) as unknown as CraftTransitionsSetup<Context, StepsRecord, SetupYielded>;\n}\n\n/**\n * Registers the callback that gives the machine its initial step. Registrations\n * run after every step has been installed, in declaration order, and the first\n * accepted `transit()` wins — later init registrations are skipped.\n *\n * ```ts\n * yield* initStateMachine(() => transit());\n * ```\n */\nexport function initStateMachine<Yielded = never>(\n callback: () => Generator<Yielded, unknown, unknown> | void,\n): CraftMachineRegistration<Yielded | CraftMachineInitRequest> {\n return ɵregisterMachineInit(callback as () => unknown) as CraftMachineRegistration<\n Yielded | CraftMachineInitRequest\n >;\n}\n\n// ---------------------------------------------------------------------------\n// craftStateMachine\n// ---------------------------------------------------------------------------\n\ntype ContextFactory<Yielded, Context> = () => Generator<\n Yielded,\n Context,\n unknown\n>;\n\ntype CurrentStepWithContextFactory<Context, Yielded, StepContexts> = (\n context: Context,\n) => Generator<Yielded, StepContexts, unknown>;\n\ntype MachineInsertion<Context, Steps extends string, StepContexts, Yielded, Insertions> =\n (\n context: CraftMachineInsertionContext<Context, Steps, StepContexts>,\n ) => Generator<Yielded, Insertions, unknown> | Insertions;\n\n/** Everything the transitions advertise: the setup's yields plus each step's. */\ntype MachineYielded<SetupYielded, StepsRecord extends AnyStepsRecord> =\n | SetupYielded\n | StepsRecordYielded<StepsRecord>;\n\ntype MachineDependencies<\n ContextYielded,\n TransitionsYielded,\n StepContextYielded,\n InsertionYielded,\n> = CompleteServiceDependencyMapFromYielded<\n ContextYielded | TransitionsYielded | StepContextYielded | InsertionYielded\n>;\n\nexport function craftStateMachine<\n Name extends string,\n ContextYielded,\n Context extends object,\n StepsRecord extends AnyStepsRecord,\n SetupYielded,\n StepContextYielded,\n StepContexts extends Record<MachineSteps<StepsRecord>, unknown>,\n InsertionYielded,\n Insertions,\n>(\n name: Name,\n contextFactory: ContextFactory<ContextYielded, Context>,\n transitions: CraftTransitionsInput<\n NoInfer<Context>,\n StepsRecord,\n SetupYielded\n > &\n CraftMachineInitRequirement<MachineYielded<SetupYielded, StepsRecord>>,\n currentStepWithContextFactory: CurrentStepWithContextFactory<\n NoInfer<Context>,\n StepContextYielded,\n StepContexts\n >,\n insertion: MachineInsertion<\n NoInfer<Context>,\n NoInfer<MachineSteps<StepsRecord>>,\n NoInfer<StepContexts>,\n InsertionYielded,\n Insertions\n >,\n): NamedCraftPrimitiveGen<\n Name,\n CraftStateMachineOutput<\n Context,\n MachineSteps<StepsRecord>,\n StepContexts,\n Insertions,\n MachineDependencies<\n ContextYielded,\n MachineYielded<SetupYielded, StepsRecord>,\n StepContextYielded,\n InsertionYielded\n >\n >\n>;\nexport function craftStateMachine<\n Name extends string,\n ContextYielded,\n Context extends object,\n StepsRecord extends AnyStepsRecord,\n SetupYielded,\n StepContextYielded,\n StepContexts extends Record<MachineSteps<StepsRecord>, unknown>,\n>(\n name: Name,\n contextFactory: ContextFactory<ContextYielded, Context>,\n transitions: CraftTransitionsInput<\n NoInfer<Context>,\n StepsRecord,\n SetupYielded\n > &\n CraftMachineInitRequirement<MachineYielded<SetupYielded, StepsRecord>>,\n currentStepWithContextFactory: CurrentStepWithContextFactory<\n NoInfer<Context>,\n StepContextYielded,\n StepContexts\n >,\n): NamedCraftPrimitiveGen<\n Name,\n CraftStateMachineOutput<\n Context,\n MachineSteps<StepsRecord>,\n StepContexts,\n {},\n MachineDependencies<\n ContextYielded,\n MachineYielded<SetupYielded, StepsRecord>,\n StepContextYielded,\n never\n >\n >\n>;\nexport function craftStateMachine<\n ContextYielded,\n Context extends object,\n StepsRecord extends AnyStepsRecord,\n SetupYielded,\n StepContextYielded,\n StepContexts extends Record<MachineSteps<StepsRecord>, unknown>,\n InsertionYielded,\n Insertions,\n>(\n contextFactory: ContextFactory<ContextYielded, Context>,\n transitions: CraftTransitionsInput<\n NoInfer<Context>,\n StepsRecord,\n SetupYielded\n > &\n CraftMachineInitRequirement<MachineYielded<SetupYielded, StepsRecord>>,\n currentStepWithContextFactory: CurrentStepWithContextFactory<\n NoInfer<Context>,\n StepContextYielded,\n StepContexts\n >,\n insertion: MachineInsertion<\n NoInfer<Context>,\n NoInfer<MachineSteps<StepsRecord>>,\n NoInfer<StepContexts>,\n InsertionYielded,\n Insertions\n >,\n): NamedCraftPrimitiveGen<\n 'stateMachine',\n CraftStateMachineOutput<\n Context,\n MachineSteps<StepsRecord>,\n StepContexts,\n Insertions,\n MachineDependencies<\n ContextYielded,\n MachineYielded<SetupYielded, StepsRecord>,\n StepContextYielded,\n InsertionYielded\n >\n >\n>;\nexport function craftStateMachine<\n ContextYielded,\n Context extends object,\n StepsRecord extends AnyStepsRecord,\n SetupYielded,\n StepContextYielded,\n StepContexts extends Record<MachineSteps<StepsRecord>, unknown>,\n>(\n contextFactory: ContextFactory<ContextYielded, Context>,\n transitions: CraftTransitionsInput<\n NoInfer<Context>,\n StepsRecord,\n SetupYielded\n > &\n CraftMachineInitRequirement<MachineYielded<SetupYielded, StepsRecord>>,\n currentStepWithContextFactory: CurrentStepWithContextFactory<\n NoInfer<Context>,\n StepContextYielded,\n StepContexts\n >,\n): NamedCraftPrimitiveGen<\n 'stateMachine',\n CraftStateMachineOutput<\n Context,\n MachineSteps<StepsRecord>,\n StepContexts,\n {},\n MachineDependencies<\n ContextYielded,\n MachineYielded<SetupYielded, StepsRecord>,\n StepContextYielded,\n never\n >\n >\n>;\nexport function craftStateMachine(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n nameOrContextFactory: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n contextFactoryOrTransitions?: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n transitionsOrCurrentStepWithContextFactory?: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n currentStepWithContextFactoryOrInsertion?: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n maybeInsertion?: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): any {\n const isNamed = typeof nameOrContextFactory === 'string';\n const name = isNamed ? nameOrContextFactory : 'stateMachine';\n const contextFactory = isNamed\n ? contextFactoryOrTransitions\n : nameOrContextFactory;\n const transitions = isNamed\n ? transitionsOrCurrentStepWithContextFactory\n : contextFactoryOrTransitions;\n const currentStepWithContextFactory = isNamed\n ? currentStepWithContextFactoryOrInsertion\n : transitionsOrCurrentStepWithContextFactory;\n const insertion = isNamed\n ? maybeInsertion\n : currentStepWithContextFactoryOrInsertion;\n\n const ref = createStateMachineRef(\n name,\n contextFactory,\n transitions,\n currentStepWithContextFactory,\n insertion,\n );\n\n return createNamedPrimitiveGen(name, ref);\n}\n\n// ---------------------------------------------------------------------------\n// Runtime\n// ---------------------------------------------------------------------------\n\ntype RuntimeTransitionStep = {\n readonly [TRANSITION_STEP_MARKER]: true;\n readonly setup: () => unknown;\n readonly guards: readonly RuntimeTransitionGuard[];\n readonly pipe: (...guards: RuntimeTransitionGuard[]) => RuntimeTransitionStep;\n};\n\ntype RuntimeTransitionsSetup = {\n readonly [TRANSITIONS_SETUP_MARKER]: true;\n readonly setup: (context: unknown, transit: unknown) => unknown;\n readonly guards: readonly RuntimeTransitionGuard[];\n readonly pipe: (\n ...guards: RuntimeTransitionGuard[]\n ) => RuntimeTransitionsSetup;\n};\n\nfunction createTransitionStep(\n setup: () => unknown,\n guards: readonly RuntimeTransitionGuard[],\n): RuntimeTransitionStep & CraftTransitionStep<any> {\n const step = {\n [TRANSITION_STEP_MARKER]: true as const,\n setup,\n guards,\n pipe: (...extraGuards: RuntimeTransitionGuard[]) =>\n createTransitionStep(setup, [...guards, ...extraGuards]),\n };\n\n return step as RuntimeTransitionStep & CraftTransitionStep<any>;\n}\n\nfunction createTransitionsSetup(\n setup: (context: unknown, transit: unknown) => unknown,\n guards: readonly RuntimeTransitionGuard[],\n): RuntimeTransitionsSetup {\n return {\n [TRANSITIONS_SETUP_MARKER]: true as const,\n setup,\n guards,\n pipe: (...extraGuards: RuntimeTransitionGuard[]) =>\n createTransitionsSetup(setup, [...guards, ...extraGuards]),\n };\n}\n\nfunction createTransitionAttempt(\n event: unknown,\n localGuards: readonly RuntimeTransitionGuard[],\n): Generator<unknown, boolean, unknown> {\n // The scope is captured at CREATION time: `transit(...)` is called from inside\n // a registration callback, which the machine runs with its declaring step\n // restored. Reading it lazily would resolve the wrong target.\n const scope = ɵrequireMachineScope('transit(...)');\n const attempt = ɵrunTransition(scope, event, localGuards);\n\n return Object.assign(attempt, {\n pipe: (...guards: RuntimeTransitionGuard[]) =>\n ɵwithMachineScope(scope, () =>\n createTransitionAttempt(event, [...localGuards, ...guards]),\n ),\n });\n}\n\nfunction createTransit(): (event?: unknown) => unknown {\n return (event?: unknown) => createTransitionAttempt(event, []);\n}\n\nfunction isStepsRecord(value: unknown): value is Record<string, RuntimeTransitionStep> {\n return typeof value === 'object' && value !== null;\n}\n\nfunction driveFactory(\n factory: (...args: never[]) => unknown,\n injector: Injector,\n ...args: unknown[]\n): unknown {\n const wrapped = runInInjectionContext(injector, () =>\n injectFnWrapper()(factory as (...values: unknown[]) => unknown),\n );\n\n return runInInjectionContext(injector, () =>\n ɵdriveMachineGenerator(wrapped(...args), injector),\n );\n}\n\nfunction exposeInsertionOutput(\n output: Record<string, unknown>,\n injector: Injector,\n): Record<string, unknown> {\n return Object.entries(output).reduce(\n (exposed, [key, value]) => {\n if (isYieldableReactiveValue(value)) {\n exposed[key] = nameInsertedReactiveValue(\n value,\n key,\n 'craftStateMachine',\n `craftStateMachine.${key}`,\n );\n return exposed;\n }\n\n if (isSource(value) || isSignal(value) || isYieldableMethod(value)) {\n exposed[key] = value;\n return exposed;\n }\n\n if (typeof value === 'function' && !isNonYieldableInsertionMethod(value)) {\n const methodInjector = ɵcreateHostTaggedInjector(\n injector,\n `method:${key}`,\n );\n const wrappedFn = runInInjectionContext(methodInjector, () =>\n injectFnWrapper()(value as (...args: unknown[]) => unknown),\n );\n exposed[key] = createYieldableInsertionMethod(wrappedFn, {\n injector: methodInjector,\n invalidYieldErrorMessage:\n 'craftStateMachine insertion method generators can only yield craftService dependencies or exposed dependency helpers.',\n multipleAppStartErrorMessage:\n 'craftStateMachine insertion methods do not support multiple onAppStart(...) declarations.',\n onAppStartNotSupportedErrorMessage:\n 'craftStateMachine insertion methods do not support onAppStart(...).',\n });\n return exposed;\n }\n\n exposed[key] = value;\n return exposed;\n },\n {} as Record<string, unknown>,\n );\n}\n\n/**\n * Normalises the two accepted forms: a bare setup generator carries no\n * machine-wide guard, so it becomes a setup with an empty guard list.\n */\nfunction toRuntimeTransitionsSetup(\n transitions: RuntimeTransitionsSetup | ((...args: never[]) => unknown),\n): RuntimeTransitionsSetup {\n return typeof transitions === 'function'\n ? createTransitionsSetup(\n transitions as unknown as (context: unknown, transit: unknown) => unknown,\n [],\n )\n : transitions;\n}\n\nfunction createStateMachineRef(\n name: string,\n contextFactory: () => unknown,\n transitionsInput: RuntimeTransitionsSetup | ((...args: never[]) => unknown),\n currentStepWithContextFactory?: (context: unknown) => unknown,\n insertion?: (context: unknown) => unknown,\n): Record<string, unknown> {\n assertInInjectionContext(craftStateMachine);\n const transitions = toRuntimeTransitionsSetup(transitionsInput);\n const injector = ɵcreateHostTaggedInjector(\n inject(Injector),\n `stateMachine:${name}`,\n );\n\n return runInInjectionContext(injector, () => {\n const context = driveFactory(contextFactory, injector) as Record<\n string,\n unknown\n >;\n\n const stepContexts = (\n currentStepWithContextFactory\n ? driveFactory(\n currentStepWithContextFactory as (...args: never[]) => unknown,\n injector,\n context,\n )\n : {}\n ) as Record<string, unknown>;\n\n const currentStep = craftSignal<string | undefined>(undefined);\n const runtime: MachineRuntime = {\n context,\n currentStep,\n globalGuards: transitions.guards,\n stepGuards: new Map(),\n injector,\n initRegistrations: [],\n observers: new Set(),\n suspended: false,\n };\n\n const stepsRecord = driveFactory(\n transitions.setup as (...args: never[]) => unknown,\n injector,\n context,\n createTransit(),\n );\n\n if (!isStepsRecord(stepsRecord)) {\n throw new Error(\n 'transitionsSetup(...) must return a record of transitionStep(...) entries.',\n );\n }\n\n for (const [step, definition] of Object.entries(stepsRecord)) {\n runtime.stepGuards.set(step, definition.guards ?? []);\n }\n\n for (const [step, definition] of Object.entries(stepsRecord)) {\n ɵwithMachineScope({ runtime, target: step }, () =>\n runInInjectionContext(injector, () =>\n ɵdriveMachineGenerator(definition.setup(), injector),\n ),\n );\n }\n\n // Installation is over: the machine can now take its initial step. The\n // first accepted transit wins, so a later registration is not even run.\n for (const registration of runtime.initRegistrations) {\n if (currentStep() !== undefined) {\n break;\n }\n registration();\n }\n\n if (currentStep() === undefined) {\n throw new Error(\n `craftStateMachine \"${name}\" did not initialise: its initial transition was rejected by a guard.`,\n );\n }\n\n const currentStepReader = createYieldableReactiveValue(\n currentStep.asReadonly(),\n 'currentStep',\n );\n const currentStepWithContextReader = createYieldableReactiveValue(\n createCraftComputed(() => {\n const step = currentStep();\n if (step === undefined) return undefined;\n return Object.assign({}, stepContexts[step] as object, { step });\n }),\n 'currentStepWithContext',\n );\n\n const ref: Record<string, unknown> = {\n currentStep: currentStepReader,\n currentStepWithContext: currentStepWithContextReader,\n context,\n };\n\n if (insertion) {\n const controls = {\n hostTags: injector.get(ɵHOST_TAG_LIST, []) as readonly string[],\n onTransition: (observer: MachineTransitionObserver) => {\n runtime.observers.add(observer);\n return () => runtime.observers.delete(observer);\n },\n restoreStep: (step: string) => {\n if (step === undefined) {\n throw new Error(\n `craftStateMachine \"${name}\" cannot restore an undefined step.`,\n );\n }\n ɵrestoreMachineStep(runtime, step);\n },\n suspended: <Result,>(restore: () => Result) =>\n ɵwithSuspendedMachine(runtime, restore),\n };\n\n const output = driveFactory(\n insertion as (...args: never[]) => unknown,\n injector,\n {\n context,\n currentStep: currentStepReader,\n currentStepWithContext: currentStepWithContextReader,\n machine: controls,\n },\n );\n\n Object.assign(\n ref,\n exposeInsertionOutput(\n (output ?? {}) as Record<string, unknown>,\n injector,\n ),\n );\n }\n\n return ref;\n });\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"craft-target-runtime.d.ts","sourceRoot":"","sources":["../../../../../libs/core/src/lib/craft-target-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EACd,KAAK,QAAQ,EACb,KAAK,QAAQ,EACd,MAAM,qBAAqB,CAAC;AAG7B,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,WAAW,CAAC;AAExD,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC;IACxC,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC,CAAC;AAEH,MAAM,MAAM,2BAA2B,GAAG,QAAQ,CAAC;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC;AAE5C,MAAM,MAAM,kBAAkB,GAAG,CAC/B,OAAO,EAAE,kBAAkB,EAC3B,IAAI,EAAE,CACJ,SAAS,CAAC,EAAE,2BAA2B,KACpC,SAAS,CAAC,OAAO,EAAE,kBAAkB,EAAE,OAAO,CAAC,KACjD,SAAS,CAAC,OAAO,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC;AAErD,eAAO,MAAM,oBAAoB,+CAM/B,CAAC;AAEH,yEAAyE;AACzE,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,kBAAkB,GAC1B,QAAQ,CAMV;AAOD,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,kBAAkB,EAC3B,WAAW,EAAE,OAAO,GACnB,kBAAkB,CAgCpB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"craft-target-runtime.js","sourceRoot":"","sources":["../../../../../libs/core/src/lib/craft-target-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,cAAc,GAGf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AA0B9D,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,cAAc,CAEpD,sBAAsB,EAAE;IACxB,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;IACjB,KAAK,EAAE,IAAI;CACZ,CAAC,CAAC;AAEH,yEAAyE;AACzE,MAAM,UAAU,yBAAyB,CACvC,QAAgB,EAChB,OAA2B;IAE3B,OAAO;QACL,OAAO,EAAE,oBAAoB;QAC7B,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,IAAI;KACZ,CAAC;AACJ,CAAC;AAED,MAAM,aAAa,GAAuB,GAAG,EAAE,CAAC,SAAS,CAAC;AAK1D,MAAM,UAAU,uBAAuB,CACrC,QAAkB,EAClB,OAA2B,EAC3B,WAAoB;IAEpB,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;IACxD,IAAI,IAAI,GAA6B,QAAQ,CAAC;QAC5C,OAAO,aAAa,CAAC;IACvB,CAAC,CAAC;IAEF,KAAK,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC7D,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAE,CAAC;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC;QACnB,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE,CACjB,CAAC,QAAQ,CAAC;YACR,OAAO,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,EAAE,CAC3C,KAAK,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,SAAS,EAAE,CAAC,CACpC,CAAC;QACJ,CAAC,CAAC,EAAE,CAAC;IACT,CAAC;IAED,MAAM,OAAO,GAAG,iBAAiB,CAAC;QAChC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC;QACvB,QAAQ;QACR,SAAS,EAAE,UAAU;QACrB,wBAAwB,EACtB,0DAA0D;QAC5D,4BAA4B,EAC1B,sEAAsE;QACxE,kCAAkC,EAChC,uDAAuD;KAC1D,CAAC,CAAC,KAA2B,CAAC;IAC/B,IAAI,WAAW,EAAE,CAAC;QAChB,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["import {\n DestroyRef,\n InjectionToken,\n type Injector,\n type Provider,\n} from './host/craft-compat';\nimport { runCraftGenerator } from './craft-generator-runtime';\n\nexport type CraftTargetKind = 'component' | 'directive';\n\nexport type CraftTargetContext = Readonly<{\n target: unknown;\n kind: CraftTargetKind;\n name: string;\n ref: unknown;\n hostName: string;\n injector: Injector;\n}>;\n\nexport type CraftTargetContextOverrides = Readonly<{\n hostName?: string;\n}>;\n\nexport type CraftTargetRelease = () => void;\n\nexport type CraftTargetWrapper = (\n context: CraftTargetContext,\n next: (\n overrides?: CraftTargetContextOverrides,\n ) => Generator<unknown, CraftTargetRelease, unknown>,\n) => Generator<unknown, CraftTargetRelease, unknown>;\n\nexport const CRAFT_TARGET_WRAPPER = new InjectionToken<\n readonly CraftTargetWrapper[]\n>('CRAFT_TARGET_WRAPPER', {\n providedIn: 'root',\n factory: () => [],\n multi: true,\n});\n\n/** Adds a wrapper around the lifecycle registration of Craft targets. */\nexport function provideCraftTargetWrapper(\n _warning: string,\n wrapper: CraftTargetWrapper,\n): Provider {\n return {\n provide: CRAFT_TARGET_WRAPPER,\n useValue: wrapper,\n multi: true,\n };\n}\n\nconst EMPTY_RELEASE: CraftTargetRelease = () => undefined;\ntype CraftTargetWrapperRunner = (\n context: CraftTargetContext,\n) => Generator<unknown, CraftTargetRelease, unknown>;\n\nexport function ɵrunCraftTargetWrappers(\n injector: Injector,\n context: CraftTargetContext,\n autoCleanup: boolean,\n): CraftTargetRelease {\n const wrappers = injector.get(CRAFT_TARGET_WRAPPER, []);\n let next: CraftTargetWrapperRunner = function* () {\n return EMPTY_RELEASE;\n };\n\n for (let index = wrappers.length - 1; index >= 0; index -= 1) {\n const wrapper = wrappers[index]!;\n const inner = next;\n next = (current) =>\n (function* () {\n return yield* wrapper(current, (overrides) =>\n inner({ ...current, ...overrides }),\n );\n })();\n }\n\n const release = runCraftGenerator({\n iterator: next(context),\n injector,\n hostScope: 'function',\n invalidYieldErrorMessage:\n 'Craft target wrappers can only yield Craft dependencies.',\n multipleAppStartErrorMessage:\n 'Craft target wrappers cannot declare app-start hooks more than once.',\n onAppStartNotSupportedErrorMessage:\n 'Craft target wrappers cannot declare app-start hooks.',\n }).value as CraftTargetRelease;\n if (autoCleanup) {\n injector.get(DestroyRef, null)?.onDestroy(release);\n }\n return release;\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"craft-transfer-snapshot.d.ts","sourceRoot":"","sources":["../../../../../libs/core/src/lib/craft-transfer-snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,sBAAsB,EACvB,MAAM,4BAA4B,CAAC;AAEpC,eAAO,MAAM,+BAA+B,IAAI,CAAC;AAEjD,MAAM,MAAM,0BAA0B,GAAG,QAAQ,CAAC;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1C,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC,CAAC;CAC/D,CAAC,CAAC;AAEH,iFAAiF;AACjF,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,sBAAsB,GAC/B,qBAAqB,CAwBvB;AAQD,gFAAgF;AAChF,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,sBAAsB,EAChC,QAAQ,EAAE,qBAAqB,GAC9B,IAAI,CAcN;AAED,yDAAyD;AACzD,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,qBAAqB,GAC9B,MAAM,CAOR"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"craft-transfer-snapshot.js","sourceRoot":"","sources":["../../../../../libs/core/src/lib/craft-transfer-snapshot.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n CraftPrimitiveEntry,\n CraftPrimitiveRegistry,\n} from './craft-primitive-registry';\n\nexport const CRAFT_TRANSFER_SNAPSHOT_VERSION = 1;\n\nexport type CraftTransferQuerySnapshot = Readonly<{\n status: string;\n value?: unknown;\n error?: unknown;\n}>;\n\nexport type CraftTransferSnapshot = Readonly<{\n version: number;\n values: Readonly<Record<string, unknown>>;\n queries: Readonly<Record<string, CraftTransferQuerySnapshot>>;\n}>;\n\n/** Captures only JSON-compatible state; non-serializable entries fail loudly. */\nexport function captureCraftTransferSnapshot(\n registry: CraftPrimitiveRegistry,\n): CraftTransferSnapshot {\n const values: Record<string, unknown> = {};\n const queries: Record<string, CraftTransferQuerySnapshot> = {};\n\n for (const entry of registry.list()) {\n const value = readSerializableEntry(entry);\n if (value === SKIP_ENTRY) continue;\n if (entry.kind === 'query') {\n const error = entry.error?.();\n queries[entry.address] = {\n status: entry.status?.() ?? (value === undefined ? 'idle' : 'resolved'),\n ...(value === undefined ? {} : { value }),\n ...(error === undefined ? {} : { error: serializeError(error) }),\n };\n } else {\n values[entry.address] = value;\n }\n }\n\n return {\n version: CRAFT_TRANSFER_SNAPSHOT_VERSION,\n values,\n queries,\n };\n}\n\nfunction serializeError(error: unknown): unknown {\n return error instanceof Error\n ? { name: error.name, message: error.message }\n : error;\n}\n\n/** Primes registrations that will be created during the first client render. */\nexport function primeCraftTransferSnapshot(\n registry: CraftPrimitiveRegistry,\n snapshot: CraftTransferSnapshot,\n): void {\n if (snapshot.version !== CRAFT_TRANSFER_SNAPSHOT_VERSION) {\n throw new Error(\n `Unsupported Craft transfer snapshot version ${snapshot.version}.`,\n );\n }\n registry.prime({\n ...snapshot.values,\n ...Object.fromEntries(\n Object.entries(snapshot.queries).flatMap(([address, query]) =>\n 'value' in query ? [[address, query.value]] : [],\n ),\n ),\n });\n}\n\n/** JSON safe for embedding in an HTML script element. */\nexport function serializeCraftTransferSnapshot(\n snapshot: CraftTransferSnapshot,\n): string {\n return JSON.stringify(snapshot)\n .replaceAll('<', '\\\\u003c')\n .replaceAll('>', '\\\\u003e')\n .replaceAll('&', '\\\\u0026')\n .replaceAll('\\u2028', '\\\\u2028')\n .replaceAll('\\u2029', '\\\\u2029');\n}\n\nconst SKIP_ENTRY = Symbol('skip-transfer-entry');\n\nfunction readSerializableEntry(\n entry: CraftPrimitiveEntry,\n): unknown | typeof SKIP_ENTRY {\n let value: unknown;\n try {\n value = entry.read();\n } catch {\n return SKIP_ENTRY;\n }\n assertSerializable(value, entry.address, new Set());\n return value;\n}\n\nfunction assertSerializable(\n value: unknown,\n address: string,\n seen: Set<object>,\n): void {\n if (\n value === null ||\n value === undefined ||\n typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean'\n ) {\n return;\n }\n if (typeof value === 'bigint' || typeof value === 'function') {\n throw new Error(\n `Craft transfer value \"${address}\" is not JSON-serializable.`,\n );\n }\n if (typeof value !== 'object') return;\n if (seen.has(value)) {\n throw new Error(`Craft transfer value \"${address}\" contains a cycle.`);\n }\n if (\n Object.getPrototypeOf(value) !== Object.prototype &&\n Object.getPrototypeOf(value) !== Array.prototype\n ) {\n throw new Error(\n `Craft transfer value \"${address}\" must contain only plain objects and arrays.`,\n );\n }\n seen.add(value);\n for (const child of Object.values(value)) {\n assertSerializable(child, address, seen);\n }\n seen.delete(value);\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"craft-unique.d.ts","sourceRoot":"","sources":["../../../../../libs/core/src/lib/craft-unique.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,eAAwB,CAAC;AAElD,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG;IAC/B,QAAQ,CAAC,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC;CAC/B,CAAC;AAEF,wBAAgB,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAS7D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAAC,OAAO,CAAC,CAK3E"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"craft-unique.js","sourceRoot":"","sources":["../../../../../libs/core/src/lib/craft-unique.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AAMlD,MAAM,UAAU,WAAW,CAAU,KAAQ;IAC3C,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU,CAAC,EAAE,CAAC;QACjF,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE;YACzC,KAAK,EAAE,IAAI;YACX,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,KAAK;SACpB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAuB,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAO,CACL,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,YAAY,IAAI,KAAK,CAAC;QACtE,CAAC,OAAO,KAAK,KAAK,UAAU,IAAI,YAAY,IAAI,KAAK,CAAC,CACvD,CAAC;AACJ,CAAC","sourcesContent":["export const CRAFT_UNIQUE = Symbol('craftUnique');\n\nexport type CraftUnique<T> = T & {\n readonly [CRAFT_UNIQUE]: true;\n};\n\nexport function craftUnique<const T>(value: T): CraftUnique<T> {\n if (value !== null && (typeof value === 'object' || typeof value === 'function')) {\n Object.defineProperty(value, CRAFT_UNIQUE, {\n value: true,\n enumerable: false,\n configurable: false,\n });\n }\n return value as CraftUnique<T>;\n}\n\nexport function isCraftUnique(value: unknown): value is CraftUnique<unknown> {\n return (\n (typeof value === 'object' && value !== null && CRAFT_UNIQUE in value) ||\n (typeof value === 'function' && CRAFT_UNIQUE in value)\n );\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"craft-until-settled.d.ts","sourceRoot":"","sources":["../../../../../libs/core/src/lib/craft-until-settled.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"craft-until-settled.js","sourceRoot":"","sources":["../../../../../libs/core/src/lib/craft-until-settled.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Signal } from './host/craft-compat';\nimport {\n isCraftException,\n type AnyCraftException,\n type ExtractCraftException,\n} from './craft-exception';\nimport {\n CraftGenShortCircuit,\n ɵcreateCraftProgram,\n type CraftGenExceptionMarker,\n type CraftPipeableProgram,\n} from './craft-gen';\nimport {\n GUARD_AWAIT_REQUEST_MARKER,\n isGenerator,\n type GuardAwaitResourceLike,\n type RuntimeGuardAwaitRequest,\n} from './craft-generator-runtime';\nimport type { CraftHttpClientError } from './craft-http-client';\nimport {\n isYieldableReactiveValue,\n rawReactiveValue,\n type YieldableReactiveValue,\n} from './reactive-read';\n\ntype ReactiveResourceValue<T> = Signal<T> | YieldableReactiveValue<T>;\n\n/**\n * The minimal shape a craft resource (`query` / `mutation` / `asyncProcess`)\n * exposes that {@link craftUntilSettled} relies on: the `status`/`value` signals to\n * read the settled outcome, and the `hasException`/`exceptions` signals to surface\n * a loader `craftException`.\n *\n * `error` is the internal Angular channel: it is no longer part of the public craft\n * façade type, but the raw signal remains on the ref at runtime (spread by the\n * primitive's `Object.assign`). It is kept optional here so `craftUntilSettled` can\n * re-throw a residual technical failure while public refs still match this shape.\n */\nexport type ResourceLike = {\n status: ReactiveResourceValue<string>;\n value: ReactiveResourceValue<unknown>;\n error?: Signal<Error | undefined>;\n hasException: ReactiveResourceValue<boolean>;\n exceptions: ReactiveResourceValue<{ list: readonly AnyCraftException[] }>;\n};\n\n/** The union of `craftException`s a resource may carry (its loader/params exceptions). */\nexport type ResourceExceptionUnion<R> = R extends {\n exceptions: YieldableReactiveValue<{ list: (infer Exception)[] }>;\n}\n ? Extract<Exception, AnyCraftException>\n : R extends { exceptions: Signal<{ list: (infer Exception)[] }> }\n ? Extract<Exception, AnyCraftException>\n : never;\n\n/** The settled (non-undefined) value a resource resolves to. */\nexport type ResourceResolvedValue<R> = R extends {\n value: YieldableReactiveValue<infer Value>;\n}\n ? Exclude<Value, undefined>\n : R extends { value: Signal<infer Value> }\n ? Exclude<Value, undefined>\n : unknown;\n\n/** The descriptor a `CraftHttpClient.*` call generator returns. */\ntype HttpCallDescriptor<G> =\n G extends Generator<any, infer Descriptor, any> ? Descriptor : never;\n\n/** The yields relayed by a `CraftHttpClient.*` call generator (its tracked request). */\ntype HttpCallYielded<G> =\n G extends Generator<infer Yielded, any, any> ? Yielded : never;\n\n/** What the HTTP descriptor resolves to: `Success | CustomException | CraftHttpClientError`. */\ntype HttpResolved<G> = Awaited<HttpCallDescriptor<G>>;\n\n/**\n * The business `craftException`s an HTTP call may produce, excluding the generic\n * {@link CraftHttpClientError} (which `craftUntilSettled` rethrows rather than routing\n * through the guard resolvers).\n */\ntype HttpCallException<G> = Exclude<\n ExtractCraftException<HttpResolved<G>>,\n CraftHttpClientError\n>;\n\n/** The success value of an HTTP call (its resolved value with every exception stripped). */\ntype HttpCallSuccess<G> = Exclude<HttpResolved<G>, AnyCraftException>;\n\nfunction guardAwaitRequest(\n request:\n | { kind: 'settle'; resource: GuardAwaitResourceLike }\n | { kind: 'promise'; value: PromiseLike<unknown> },\n): RuntimeGuardAwaitRequest {\n return {\n [GUARD_AWAIT_REQUEST_MARKER]: true,\n ...request,\n } as RuntimeGuardAwaitRequest;\n}\n\nfunction* craftUntilSettledResource(\n resource: ResourceLike,\n): Generator<unknown, unknown, unknown> {\n const adapter = {\n status: () => readResourceValue(resource.status),\n value: () => readResourceValue(resource.value),\n error: () => resource.error?.(),\n hasException: () => readResourceValue(resource.hasException),\n exceptions: () => readResourceValue(resource.exceptions),\n } satisfies GuardAwaitResourceLike;\n yield guardAwaitRequest({\n kind: 'settle',\n resource: adapter,\n });\n\n if (adapter.hasException()) {\n throw new CraftGenShortCircuit(adapter.exceptions().list[0]);\n }\n\n if (adapter.status() === 'exception') {\n // No business `craftException` present but the status is `'exception'` — a\n // residual technical failure. Rethrow the raw Angular error (internal channel).\n throw resource.error?.();\n }\n\n return adapter.value();\n}\n\nfunction readResourceValue<T>(value: ReactiveResourceValue<T>): T {\n return isYieldableReactiveValue(value) ? rawReactiveValue(value)() : value();\n}\n\nfunction* craftUntilSettledHttp(\n call: Generator<unknown, unknown, unknown>,\n): Generator<unknown, unknown, unknown> {\n const descriptor = yield* call;\n const resolved = yield guardAwaitRequest({\n kind: 'promise',\n value: descriptor as PromiseLike<unknown>,\n });\n\n if (isCraftException(resolved)) {\n if (resolved._tag === 'HttpError' && resolved.scope === 'HttpClient') {\n // Generic network/transport failure — rethrow so it surfaces as a\n // navigation error rather than a resolvable business case.\n throw resolved;\n }\n\n // A declared business exception — route it through the guard's resolvers.\n throw new CraftGenShortCircuit(resolved);\n }\n\n return resolved;\n}\n\n/**\n * Suspends a composing route guard until a craft async operation settles, then\n * returns its success value. The operation's `craftException`s flow into the\n * guard's exhaustive resolvers (compiler-enforced via the yielded\n * {@link CraftGenExceptionMarker}).\n *\n * Two forms, both `yield*`-composable across the suspension:\n *\n * - **Resource** — a `query` / `mutation` / `asyncProcess` ref. Settles when its\n * `status` reaches `'resolved'` or `'exception'`. A loader `craftException`\n * short-circuits to the resolvers; a residual technical failure rethrows;\n * otherwise the resolved value is returned.\n *\n * ```ts\n * const user = yield* craftUntilSettled(\n * query({ params: () => true, loader: async () => fetchUser() }),\n * );\n * ```\n *\n * - **HTTP call** — a `CraftHttpClient.*` call generator, awaited directly (no\n * resource needed). Its declared `exceptions` flow into the resolvers; the\n * generic `HttpError` is rethrown.\n *\n * ```ts\n * const user = yield* craftUntilSettled(\n * CraftHttpClient.get(({ response }) => ({\n * url: `/api/users/${userId}`,\n * success: response<User>(),\n * exceptions: [...],\n * })),\n * );\n * ```\n */\nexport function craftUntilSettled<R extends ResourceLike>(\n resource: R,\n): CraftPipeableProgram<\n CraftGenExceptionMarker<ResourceExceptionUnion<R>>,\n ResourceResolvedValue<R>\n>;\nexport function craftUntilSettled<G extends Generator<any, any, any>>(\n call: G,\n): CraftPipeableProgram<\n HttpCallYielded<G> | CraftGenExceptionMarker<HttpCallException<G>>,\n HttpCallSuccess<G>\n>;\nexport function craftUntilSettled(\n source: ResourceLike | Generator<unknown, unknown, unknown>,\n): CraftPipeableProgram<unknown, unknown> {\n return ɵcreateCraftProgram(() =>\n isGenerator(source)\n ? craftUntilSettledHttp(source)\n : craftUntilSettledResource(source),\n ) as CraftPipeableProgram<unknown, unknown>;\n}\n\nfunction signalSettleAdapter<T>(signal: Signal<T>): GuardAwaitResourceLike {\n return {\n status: () => (signal() !== undefined ? 'resolved' : 'loading'),\n value: () => signal(),\n error: () => undefined,\n hasException: () => false,\n exceptions: () => ({ list: [] }),\n };\n}\n\n/**\n * Suspends a composing route guard until `signal()` is no longer `undefined`,\n * then returns its (non-nullable) value. Unlike {@link craftUntilSettled} there is no\n * exception channel — use it to wait on a plain readiness signal.\n */\nexport function craftUntilDefined<T>(\n signal: Signal<T>,\n): CraftPipeableProgram<never, NonNullable<T>> {\n return ɵcreateCraftProgram(function* () {\n yield guardAwaitRequest({\n kind: 'settle',\n resource: signalSettleAdapter(signal),\n });\n\n return signal();\n }) as unknown as CraftPipeableProgram<never, NonNullable<T>>;\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"craft-use.d.ts","sourceRoot":"","sources":["../../../../../libs/core/src/lib/craft-use.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EACtC,UAAU,EAAE,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,GAC9C,MAAM,CAAC;AACV,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EACtC,UAAU,EAAE,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC1D,MAAM,GAAG,SAAS,CAAC;AACtB,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EACtC,OAAO,EAAE,MAAM,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,GACjD,MAAM,CAAC;AACV,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC"}
|
package/src/lib/craft-use.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"craft-use.js","sourceRoot":"","sources":["../../../../../libs/core/src/lib/craft-use.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE3E,MAAM,2BAA2B,GAC/B,qHAAqH,CAAC;AACxH,MAAM,0BAA0B,GAC9B,qGAAqG,CAAC;AACxG,MAAM,yBAAyB,GAC7B,4HAA4H,CAAC;AAiC/H,MAAM,UAAU,QAAQ,CACtB,KAIW;IAEX,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IACrE,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IAEtD,2EAA2E;IAC3E,wEAAwE;IACxE,qEAAqE;IACrE,IAAI,QAA8B,CAAC;IACnC,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ,GAAG,SAAS,CAAC;IACvB,CAAC;IAED,0EAA0E;IAC1E,uEAAuE;IACvE,wEAAwE;IACxE,MAAM,eAAe,GAAG,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;IAEvE,MAAM,KAAK,GAAG,GAAG,EAAE,CACjB,iBAAiB,CAAC;QAChB,QAAQ;QACR,QAAQ,EAAE,eAAe;QACzB,SAAS,EAAE,UAAU;QACrB,wBAAwB,EAAE,2BAA2B;QACrD,4BAA4B,EAAE,0BAA0B;QACxD,kCAAkC,EAAE,0BAA0B;QAC9D,kCAAkC,EAAE,yBAAyB;KAC9D,CAAC,CAAC,KAAK,CAAC;IAEX,OAAO,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;AACrE,CAAC","sourcesContent":["import { inject, Injector, runInInjectionContext } from './host/craft-compat';\nimport { isGenerator, runCraftGenerator } from './craft-generator-runtime';\n\nconst INVALID_YIELD_ERROR_MESSAGE =\n 'craftUse(...) generators can only yield craft primitives, exposed dependency helpers, or craftService dependencies.';\nconst ON_APP_START_ERROR_MESSAGE =\n 'craftUse(...) does not support onAppStart(...): it is only available inside a craftService factory.';\nconst GUARD_AWAIT_ERROR_MESSAGE =\n 'craftUse(...) does not support craftUntilSettled(...)/craftUntilDefined(...): they are only available inside route guards.';\n\n/**\n * Drives any craft generator synchronously outside a generator host and\n * returns its result — the imperative counterpart of `yield*`.\n *\n * Its main use is consuming a craft primitive (`state`, `query`, `mutation`,\n * `asyncProcess`, `queryParams`) outside a generator host. Like `yield*`, it\n * resolves to the primitive reference itself:\n *\n * ```ts\n * const users = craftUse(query('users', { loader: ... }));\n * const counter = craftUse(state('counter', 0));\n * ```\n *\n * It also accepts a `craftGen` invocation, an inline generator, or an\n * argument-less generator function. Dependency yields are resolved through the\n * ambient injection context when one is available; a `CraftGenShortCircuit`\n * thrown by a composed `craftGen` propagates unchanged.\n *\n * A generator is single-use: passing the same invocation to `craftUse` twice\n * (or after a `yield*`) drives an exhausted generator and returns `undefined`.\n */\nexport function craftUse<Yielded, Output>(\n invocation: Generator<Yielded, Output, unknown>,\n): Output;\nexport function craftUse<Yielded, Output>(\n invocation: Generator<Yielded, Output, unknown> | undefined,\n): Output | undefined;\nexport function craftUse<Yielded, Output>(\n factory: () => Generator<Yielded, Output, unknown>,\n): Output;\nexport function craftUse<Value>(value: Value): Value;\nexport function craftUse(\n input:\n | Generator<unknown, unknown, unknown>\n | undefined\n | (() => Generator<unknown, unknown, unknown>)\n | unknown,\n): unknown {\n if (input === undefined) return undefined;\n if (!isGenerator(input) && typeof input !== 'function') return input;\n const iterator = isGenerator(input) ? input : input();\n\n // Capture the ambient injector when available. Driving a trivial primitive\n // generator needs none, so `craftUse` stays usable outside an injection\n // context (leniency aligned with the primitives' own eager capture).\n let injector: Injector | undefined;\n try {\n injector = inject(Injector);\n } catch {\n injector = undefined;\n }\n\n // A generator may yield a dependency request whose resolver does not need\n // Angular DI. Keep that valid outside an injection context while still\n // giving the runtime an injector for wrapper lookup and resolver shape.\n const runtimeInjector = injector ?? Injector.create({ providers: [] });\n\n const drive = () =>\n runCraftGenerator({\n iterator,\n injector: runtimeInjector,\n hostScope: 'function',\n invalidYieldErrorMessage: INVALID_YIELD_ERROR_MESSAGE,\n multipleAppStartErrorMessage: ON_APP_START_ERROR_MESSAGE,\n onAppStartNotSupportedErrorMessage: ON_APP_START_ERROR_MESSAGE,\n guardAwaitNotSupportedErrorMessage: GUARD_AWAIT_ERROR_MESSAGE,\n }).value;\n\n return injector ? runInInjectionContext(injector, drive) : drive();\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"craft-view-transition.d.ts","sourceRoot":"","sources":["../../../../../libs/core/src/lib/craft-view-transition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,cAAc,EAAU,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAuB,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEhF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,wBAAwB,CAAC,CAAC;IACzC,QAAQ,CAAC,4BAA4B,EAAE,CAAC,CAAC;CAC1C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,KAAK,wBAAwB,CAAC,CAAC,CAAC,CAEtE;AAED;;;;;GAKG;AACH,MAAM,MAAM,wBAAwB,GAAG,OAAO,CAAC;AAE/C;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,0BAA0B,CAAC;AAEvE;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,iCAKhC,CAAC;AAEH,kGAAkG;AAClG,wBAAgB,yBAAyB,IAAI,MAAM,CAAC,wBAAwB,CAAC,CAE5E;AAED,yFAAyF;AACzF,eAAO,MAAM,8BAA8B,yBAG1C,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,gCAAgC,yBAG5C,CAAC;AAEF,2FAA2F;AAC3F,MAAM,MAAM,wBAAwB,GAAG,CAAC,EAAE,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;AAMhE;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,0CAIpC,CAAC;AAuDL;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,CAAC,EAAE;IACjD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GAAG,mBAAmB,CAQtB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"craft-view-transition.js","sourceRoot":"","sources":["../../../../../libs/core/src/lib/craft-view-transition.ts"],"names":[],"mappings":"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","sourcesContent":["import { inject, InjectionToken, signal, type Signal } from './host/craft-compat';\nimport { craftLoadingFeature, type CraftLoadingFeature } from './craft-pending';\n\n/**\n * The marker a route stores in `withLoaderViewTransitionImage` to declare the\n * shape `T` of its shared-element payload — the view-transition analogue of how\n * `queryParams` declares the shape of a route's query params. `T` flows into:\n * the REQUIRED `viewTransition` field on every `craftRouterLink` / `navigate`\n * targeting the route (as `T | null`), and the generated, typed\n * `injectXxxViewTransition(): Signal<T | null>` helper the pending skeleton (or\n * target) reads.\n *\n * The phantom property is a plain (string-keyed, required) brand rather than a\n * `unique symbol`: this marker rides along inside the route definition that the\n * parent `app.routes` path registry materializes through `loadChildren`, and\n * that registry sits at TypeScript's instantiation-depth ceiling — a symbol-\n * keyed phantom measurably costs more there. The required key also keeps a bare\n * `{}` from structurally matching the marker.\n */\nexport interface ViewTransitionPayloadDef<T> {\n readonly __craftViewTransitionPayload: T;\n}\n\n/**\n * Declares the shared-element payload shape `T` for a view-transition route.\n * Place it on `withLoaderViewTransitionImage` exactly like `queryParams`:\n *\n * ```ts\n * craftRoute(':photoId', {\n * withLoaderViewTransitionImage: viewTransitionPayload<{ name: string; image: string | null }>(),\n * // ...\n * })\n * ```\n *\n * Returns an empty runtime marker — `T` lives purely at the type level (carried\n * by the phantom {@link ViewTransitionPayloadDef} brand).\n */\nexport function viewTransitionPayload<T>(): ViewTransitionPayloadDef<T> {\n return {} as ViewTransitionPayloadDef<T>;\n}\n\n/**\n * What a navigation transports for a view-transition route. Deliberately loose\n * at the transport layer ({@link CRAFT_VIEW_TRANSITION} is a single global sink\n * shared by every view-transition route): the per-route generated helpers\n * narrow it to the declared `T | null`. `null` opts out of the morph explicitly.\n */\nexport type CraftViewTransitionInput = unknown;\n\n/**\n * Key under which the view-transition payload travels in Angular's navigation\n * `state` (history state). The outlet reads it from the current navigation and\n * republishes it through {@link CRAFT_VIEW_TRANSITION}.\n */\nexport const CRAFT_VIEW_TRANSITION_STATE_KEY = '__craftViewTransition';\n\n/**\n * The view-transition payload for the current navigation, as a signal the\n * outlet writes and the skeleton/target read (via {@link\n * injectCraftViewTransition}). `null` between/without view-transition\n * navigations.\n */\nexport const CRAFT_VIEW_TRANSITION = new InjectionToken<\n Signal<CraftViewTransitionInput>\n>('CRAFT_VIEW_TRANSITION', {\n providedIn: 'root',\n factory: () => signal<CraftViewTransitionInput>(null),\n});\n\n/** Reads the current navigation's view-transition payload (see {@link CRAFT_VIEW_TRANSITION}). */\nexport function injectCraftViewTransition(): Signal<CraftViewTransitionInput> {\n return inject(CRAFT_VIEW_TRANSITION);\n}\n\n/** Whether the outlet should drive `document.startViewTransition()` around its swaps. */\nexport const CRAFT_VIEW_TRANSITIONS_ENABLED = new InjectionToken<boolean>(\n 'CRAFT_VIEW_TRANSITIONS_ENABLED',\n { providedIn: 'root', factory: () => false },\n);\n\n/**\n * Whether the outlet should skip the `'blank'` phase while view transitions are\n * enabled. A blank surface between the previous page and the skeleton breaks the\n * shared-element morph, so routes that declare a `withLoaderViewTransitionImage`\n * payload always skip blank; this token lets `withCraftViewTransitions({ skipBlank })`\n * extend that to every route.\n */\nexport const CRAFT_VIEW_TRANSITION_SKIP_BLANK = new InjectionToken<boolean>(\n 'CRAFT_VIEW_TRANSITION_SKIP_BLANK',\n { providedIn: 'root', factory: () => false },\n);\n\n/** Runs `cb` inside a view transition. The seam tests override to capture the callback. */\nexport type CraftStartViewTransition = (cb: () => void) => void;\n\ninterface ViewTransitionDocument {\n startViewTransition?: (cb: () => void) => unknown;\n}\n\n/**\n * The function the outlet uses to bracket a swap in a view transition. The\n * default wraps `document.startViewTransition()`, but falls back to running\n * `cb` directly when the API is missing or the user prefers reduced motion.\n * Overridable in tests to capture the callback deterministically.\n */\nexport const CRAFT_START_VIEW_TRANSITION =\n new InjectionToken<CraftStartViewTransition>('CRAFT_START_VIEW_TRANSITION', {\n providedIn: 'root',\n factory: () => defaultStartViewTransition,\n });\n\nfunction defaultStartViewTransition(cb: () => void): void {\n const doc =\n typeof document !== 'undefined'\n ? (document as unknown as ViewTransitionDocument)\n : undefined;\n const prefersReducedMotion =\n typeof window !== 'undefined' &&\n typeof window.matchMedia === 'function' &&\n window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n if (!doc?.startViewTransition || prefersReducedMotion) {\n cb();\n return;\n }\n\n // Chromium can expose the API while failing to invoke the update callback\n // when a transition is started during router activation. Never leave the\n // outlet waiting forever for that callback: the fallback still commits the\n // new DOM, while the idempotent wrapper prevents a later native callback\n // from committing twice.\n let callbackCalled = false;\n const runOnce = () => {\n if (callbackCalled) {\n return;\n }\n callbackCalled = true;\n cb();\n };\n\n const transition = doc.startViewTransition(runOnce) as\n | {\n skipTransition?: () => void;\n ready?: Promise<unknown>;\n updateCallbackDone?: Promise<unknown>;\n finished?: Promise<unknown>;\n }\n | undefined;\n for (const promise of [\n transition?.ready,\n transition?.updateCallbackDone,\n transition?.finished,\n ]) {\n void promise?.catch(() => undefined);\n }\n queueMicrotask(() => {\n if (callbackCalled) {\n return;\n }\n runOnce();\n transition?.skipTransition?.();\n });\n}\n\n/**\n * Hands the {@link CraftRouterOutletController} control of the browser View\n * Transitions\n * API. Unlike Angular's `withViewTransitions()` — which brackets only the\n * synchronous URL commit — this drives `document.startViewTransition()` around\n * the outlet's *own* swaps (`previous page → skeleton → target`), so a\n * shared-element morph survives a slow guard/resolve chain.\n *\n * Routes that declare a `withLoaderViewTransitionImage` payload (via {@link\n * viewTransitionPayload}) additionally skip the `'blank'` phase (a blank surface\n * would break the morph) and require every `craftRouterLink` / `navigate`\n * targeting them to pass a typed `viewTransition` payload. Pass\n * `{ skipBlank: true }` to extend the blank-skip to all routes.\n *\n * ```ts\n * provideCraftRouter(\n * demoRoutes.toRoutes(),\n * withCraftViewTransitions(),\n * )\n * ```\n */\nexport function withCraftViewTransitions(options?: {\n skipBlank?: boolean;\n}): CraftLoadingFeature {\n return craftLoadingFeature([\n { provide: CRAFT_VIEW_TRANSITIONS_ENABLED, useValue: true },\n {\n provide: CRAFT_VIEW_TRANSITION_SKIP_BLANK,\n useValue: options?.skipBlank ?? false,\n },\n ]);\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dom-event-hook.d.ts","sourceRoot":"","sources":["../../../../../libs/core/src/lib/dom-event-hook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpE,mEAAmE;AACnE,MAAM,WAAW,aAAa;IAC5B,gDAAgD;IAChD,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,0EAA0E;IAC1E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,yCAAyC;IACzC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,iDAAiD;IACjD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,4EAA4E;IAC5E,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,+DAA+D;IAC/D,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,6DAA6D;IAC7D,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAC9B,WAAW,EAAE,aAAa,EAC1B,IAAI,EAAE,MAAM,OAAO,KAChB,OAAO,CAAC;AAEb,8DAA8D;AAC9D,eAAO,MAAM,oBAAoB,8CAM/B,CAAC;AAEH,8CAA8C;AAC9C,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,iBAAiB,GAAG,QAAQ,CAM1E"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dom-event-hook.js","sourceRoot":"","sources":["../../../../../libs/core/src/lib/dom-event-hook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAiB,MAAM,qBAAqB,CAAC;AA+BpE,8DAA8D;AAC9D,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,cAAc,CAEpD,sBAAsB,EAAE;IACxB,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;IACjB,KAAK,EAAE,IAAI;CACZ,CAAC,CAAC;AAEH,8CAA8C;AAC9C,MAAM,UAAU,wBAAwB,CAAC,IAAuB;IAC9D,OAAO;QACL,OAAO,EAAE,oBAAoB;QAC7B,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,IAAI;KACZ,CAAC;AACJ,CAAC","sourcesContent":["import { InjectionToken, type Provider } from './host/craft-compat';\n\n/** Metadata describing a DOM event bound from a Craft template. */\nexport interface CraftDomEvent {\n /** The native event received by the binding. */\n readonly event: Event;\n /** The normalized DOM event name, for example `click` or `mouseenter`. */\n readonly eventName: string;\n /** The element that owns the binding. */\n readonly element: Element;\n /** The element tag, normalized to lower case. */\n readonly elementTag: string;\n /** The optional local name passed to a named helper, for example `save`. */\n readonly elementName?: string;\n /** The Craft component whose template declared the element. */\n readonly componentName?: string;\n /** A stable descriptive key for the interaction location. */\n readonly interactionName: string;\n}\n\n/**\n * Cross-cutting behavior around a DOM action declared in a Craft template.\n *\n * Hooks compose in registration order. A hook must call `next()` to preserve\n * the original template action; it may also do work before or after it.\n */\nexport type CraftDomEventHook = (\n interaction: CraftDomEvent,\n next: () => unknown,\n) => unknown;\n\n/** All DOM hooks active in the current component injector. */\nexport const CRAFT_DOM_EVENT_HOOK = new InjectionToken<\n readonly CraftDomEventHook[]\n>('CRAFT_DOM_EVENT_HOOK', {\n providedIn: 'root',\n factory: () => [],\n multi: true,\n});\n\n/** Register one composable DOM event hook. */\nexport function provideCraftDomEventHook(hook: CraftDomEventHook): Provider {\n return {\n provide: CRAFT_DOM_EVENT_HOOK,\n useValue: hook,\n multi: true,\n };\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fn-wrapper.d.ts","sourceRoot":"","sources":["../../../../../libs/core/src/lib/fn-wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,cAAc,EAAE,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAG5E,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAE7E,KAAK,UAAU,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;AAC1C,KAAK,mBAAmB,GAAG,CACzB,GAAG,IAAI,EAAE,GAAG,EAAE,KACX,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAE1C,MAAM,MAAM,SAAS,GAAG,CACtB,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,OAAO,EAAE,KACZ,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAE1C,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,SAAS,UAAU,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;AACvE,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,CAAC;AAK3D,eAAO,MAAM,UAAU,sCAOtB,CAAC;AAEF,eAAO,MAAM,gBAAgB,2CAO5B,CAAC;AAIF,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,SAAS,GACjB,QAAQ,CAEV;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,cAAc,GAAG,QAAQ,CAExE;AAED,wBAAgB,eAAe,IAAI,gBAAgB,CAwBlD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fn-wrapper.js","sourceRoot":"","sources":["../../../../../libs/core/src/lib/fn-wrapper.ts"],"names":[],"mappings":"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","sourcesContent":["import { inject, InjectionToken, type Provider } from './host/craft-compat';\nimport { isGenerator, isGeneratorFunction } from './craft-generator-runtime';\n\nexport { isGenerator, isGeneratorFunction } from './craft-generator-runtime';\n\ntype AnyFactory = (...args: any[]) => any;\ntype AnyGeneratorFactory = (\n ...args: any[]\n) => Generator<unknown, unknown, unknown>;\n\nexport type FnWrapper = (\n factory: AnyGeneratorFactory,\n thisArg: unknown,\n args: unknown[],\n) => Generator<unknown, unknown, unknown>;\n\nexport type FnFactoryAdapter = <F extends AnyFactory>(factory: F) => F;\nexport type FnWrapObserver = (factory: AnyFactory) => void;\n\nconst IDENTITY_ADAPTER: FnFactoryAdapter = ((factory) =>\n factory) as FnFactoryAdapter;\n\nexport const FN_WRAPPER = new InjectionToken<readonly FnWrapper[]>(\n 'FN_WRAPPER',\n {\n providedIn: 'root',\n factory: () => [],\n multi: true,\n },\n);\n\nexport const FN_WRAP_OBSERVER = new InjectionToken<readonly FnWrapObserver[]>(\n 'FN_WRAP_OBSERVER',\n {\n providedIn: 'root',\n factory: () => [],\n multi: true,\n },\n);\n\n// The warning literal is part of the public API to make the runtime DI risk\n// explicit at every call site.\nexport function provideFnWrapper(\n _warning: string,\n wrapper: FnWrapper,\n): Provider {\n return { provide: FN_WRAPPER, useValue: wrapper, multi: true };\n}\n\nexport function provideFnWrapObserver(observer: FnWrapObserver): Provider {\n return { provide: FN_WRAP_OBSERVER, useValue: observer, multi: true };\n}\n\nexport function injectFnWrapper(): FnFactoryAdapter {\n const wrappers = inject(FN_WRAPPER);\n const observers = inject(FN_WRAP_OBSERVER);\n if (wrappers.length === 0 && observers.length === 0) {\n return IDENTITY_ADAPTER;\n }\n return (<F extends AnyFactory>(factory: F): F => {\n for (const observer of observers) {\n observer(factory);\n }\n if (wrappers.length === 0) {\n return factory;\n }\n let current: AnyGeneratorFactory = toGeneratorFactory(factory);\n // First registered wrapper is the outermost; iterate from last to first.\n for (let i = wrappers.length - 1; i >= 0; i--) {\n const wrapper = wrappers[i];\n const inner = current;\n current = function* (this: unknown, ...args: unknown[]) {\n return yield* wrapper(inner, this, args);\n };\n }\n return current as unknown as F;\n }) as FnFactoryAdapter;\n}\n\nfunction toGeneratorFactory(factory: AnyFactory): AnyGeneratorFactory {\n if (isGeneratorFunction(factory)) {\n return factory as AnyGeneratorFactory;\n }\n return function* (this: unknown, ...args: unknown[]) {\n const result = factory.apply(this, args);\n // A sync factory may legally RETURN a generator (`(ctx) => Outputs |\n // Generator`). The unwrapped path drives it (`isGenerator(result)` in\n // executeGeneratorCompatibleFactory); delegate here too, otherwise the\n // generator becomes the wrapper generator's return VALUE, is never\n // driven, and the factory's outputs are silently lost whenever any\n // FN_WRAPPER (correlation-id tracking, app snapshots) is installed.\n if (isGenerator(result)) {\n return yield* result;\n }\n return result;\n };\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"craft-field.d.ts","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/form/craft-field.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"craft-field.directive.d.ts","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/form/craft-field.directive.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"craft-field.directive.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/form/craft-field.directive.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n effect,\n InjectionToken,\n Injector,\n isDevMode,\n Renderer2,\n type Signal,\n untracked,\n} from '../host/craft-compat';\nimport type { GetDeps } from '../branded-component/branded-component';\nimport { REACTIVE_VALUE_TYPE, rawReactiveFacade } from '../reactive-read';\nimport {\n CRAFT_NODE_EFFECT_FACTORY,\n craftNodeDirective,\n type CraftNodeDirective,\n type CraftNodeEffectFactory,\n} from '../craft-node-directive';\nimport type { CraftDomAdapter } from '../host/craft-dom';\nimport {\n ControlSyncer,\n CraftCheckboxControl,\n CraftField,\n CraftValueControl,\n isCraftField,\n} from './craft-field';\nimport {\n CRAFT_FIELD_EXCEPTION_BOUNDARY,\n CRAFT_FIELD_EXCEPTION_SOURCE,\n type CraftFieldExceptionSourceCarrier,\n type CraftFieldValidationCasesCarrier,\n type FieldValidationCasesOf,\n} from './field-exception';\n\n/**\n * Token used by custom controls to declare themselves as Craft form value controls.\n * A custom component should provide itself via this token to opt into [craftField] binding.\n *\n * @example\n * @Component({\n * providers: [{ provide: CRAFT_FIELD_VALUE_CONTROL, useExisting: forwardRef(() => MyControl) }]\n * })\n * export class MyControl implements CraftValueControl<string> {\n * readonly value = model<string>('');\n * }\n */\nexport const CRAFT_FIELD_VALUE_CONTROL = new InjectionToken<\n CraftValueControl<unknown>\n>('CRAFT_FIELD_VALUE_CONTROL');\n\n/**\n * Token used by custom checkbox-style controls to declare themselves as Craft form checkbox controls.\n */\nexport const CRAFT_FIELD_CHECKBOX_CONTROL =\n new InjectionToken<CraftCheckboxControl>('CRAFT_FIELD_CHECKBOX_CONTROL');\n\ntype Strategy =\n | 'text'\n | 'numeric'\n | 'temporal'\n | 'checkbox'\n | 'radio'\n | 'select'\n | 'signal-value-control'\n | 'signal-checkbox-control'\n | 'unsupported';\n\nconst TEMPORAL_TYPES = new Set([\n 'date',\n 'datetime-local',\n 'time',\n 'month',\n 'week',\n]);\nconst NUMERIC_TYPES = new Set(['number', 'range']);\n\nexport class CraftFieldBinding<T> {\n private cleanupFns: Array<() => void> = [];\n private strategy: Strategy = 'unsupported';\n private readonly craftField = () =>\n rawReactiveFacade(this.field) as CraftField<T>;\n private readonly createEffect: CraftNodeEffectFactory;\n private readonly element: HTMLElement;\n private readonly renderer: CraftDomAdapter;\n private readonly injector: Injector;\n private readonly field: CraftField<T>;\n private readonly customValueControl: CraftValueControl<unknown> | null;\n private readonly customCheckboxControl: CraftCheckboxControl | null;\n\n constructor(\n element: HTMLElement,\n renderer: CraftDomAdapter,\n injector: Injector,\n field: CraftField<T>,\n customValueControl: CraftValueControl<unknown> | null = null,\n customCheckboxControl: CraftCheckboxControl | null = null,\n createEffect?: CraftNodeEffectFactory,\n ) {\n this.element = element;\n this.renderer = renderer;\n this.injector = injector;\n this.field = field;\n this.customValueControl = customValueControl;\n this.customCheckboxControl = customCheckboxControl;\n this.createEffect =\n createEffect ??\n ((_name, effectFn) => effect(effectFn, { injector: this.injector }));\n }\n\n mount(): void {\n const el = this.element;\n this.strategy = this.detectStrategy(el);\n\n switch (this.strategy) {\n case 'text':\n this.bindTextInput(el as HTMLInputElement | HTMLTextAreaElement);\n break;\n case 'numeric':\n this.bindNumericInput(el as HTMLInputElement);\n break;\n case 'temporal':\n this.bindTemporalInput(el as HTMLInputElement);\n break;\n case 'checkbox':\n this.bindCheckboxInput(el as HTMLInputElement);\n break;\n case 'radio':\n this.bindRadioInput(el as HTMLInputElement);\n break;\n case 'select':\n this.bindSelectInput(el as HTMLSelectElement);\n break;\n case 'signal-value-control':\n this.bindSignalValueControl();\n break;\n case 'signal-checkbox-control':\n this.bindSignalCheckboxControl();\n break;\n case 'unsupported':\n default:\n if (isDevMode()) {\n console.warn(\n `[craftField] Unsupported host element <${(el as HTMLElement).tagName?.toLowerCase()}>. ` +\n 'Provide CRAFT_FIELD_VALUE_CONTROL or CRAFT_FIELD_CHECKBOX_CONTROL on the host component to enable binding.',\n );\n }\n break;\n }\n\n this.bindStateAttributes(el);\n }\n\n destroy(): void {\n for (const fn of this.cleanupFns) fn();\n this.cleanupFns = [];\n }\n\n // ---------------------- Strategy detection ----------------------\n\n private detectStrategy(el: HTMLElement): Strategy {\n if (this.customCheckboxControl) return 'signal-checkbox-control';\n if (this.customValueControl) return 'signal-value-control';\n\n const tag = el.tagName?.toUpperCase();\n if (tag === 'TEXTAREA') return 'text';\n if (tag === 'SELECT') return 'select';\n if (tag === 'INPUT') {\n const type = ((el as HTMLInputElement).type || 'text').toLowerCase();\n if (type === 'checkbox') return 'checkbox';\n if (type === 'radio') return 'radio';\n if (NUMERIC_TYPES.has(type)) return 'numeric';\n if (TEMPORAL_TYPES.has(type)) return 'temporal';\n return 'text';\n }\n return 'unsupported';\n }\n\n // ---------------------- Common state attributes ----------------------\n\n private bindStateAttributes(el: HTMLElement): void {\n const ref = this.createEffect('field-state-attributes', () => {\n const field = this.craftField();\n const isInput =\n el.tagName === 'INPUT' ||\n el.tagName === 'TEXTAREA' ||\n el.tagName === 'SELECT';\n\n // Disabled\n if (isInput) {\n (\n el as HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement\n ).disabled = field.disabled();\n } else {\n this.toggleAttribute(el, 'aria-disabled', field.disabled());\n }\n\n // Readonly (not on select)\n if (el.tagName === 'INPUT' || el.tagName === 'TEXTAREA') {\n (el as HTMLInputElement | HTMLTextAreaElement).readOnly =\n field.readonly();\n }\n\n // Required\n if (isInput) {\n (el as HTMLInputElement).required = field.required();\n }\n\n // Pattern\n if (el.tagName === 'INPUT') {\n const pattern = field.pattern();\n if (pattern) {\n this.renderer.setAttribute(el, 'pattern', pattern.source);\n } else {\n this.renderer.removeAttribute(el, 'pattern');\n }\n }\n\n // min/max — applies to numeric and temporal native inputs\n if (el.tagName === 'INPUT') {\n const inputEl = el as HTMLInputElement;\n const inputType = (inputEl.type || 'text').toLowerCase();\n const supportsMinMax =\n NUMERIC_TYPES.has(inputType) || TEMPORAL_TYPES.has(inputType);\n if (supportsMinMax) {\n const min = field.min();\n const max = field.max();\n if (min !== undefined)\n this.renderer.setAttribute(el, 'min', formatMinMax(min, inputType));\n else this.renderer.removeAttribute(el, 'min');\n if (max !== undefined)\n this.renderer.setAttribute(el, 'max', formatMinMax(max, inputType));\n else this.renderer.removeAttribute(el, 'max');\n }\n }\n\n // minLength/maxLength — text-style inputs only\n if (\n (el.tagName === 'INPUT' &&\n ['text', 'email', 'password', 'tel', 'url', 'search'].includes(\n ((el as HTMLInputElement).type || 'text').toLowerCase(),\n )) ||\n el.tagName === 'TEXTAREA'\n ) {\n const minLength = field.minLength();\n const maxLength = field.maxLength();\n if (minLength !== undefined && minLength >= 0) {\n this.renderer.setAttribute(el, 'minlength', String(minLength));\n } else {\n this.renderer.removeAttribute(el, 'minlength');\n }\n if (maxLength !== undefined && maxLength >= 0) {\n this.renderer.setAttribute(el, 'maxlength', String(maxLength));\n } else {\n this.renderer.removeAttribute(el, 'maxlength');\n }\n }\n\n // Hidden warning\n if (field.hidden() && isDevMode()) {\n console.warn(\n `[craftField] Field is marked hidden but is still rendered. Use @if (!field.hidden()) to remove it from the DOM.`,\n );\n }\n\n // Status CSS classes\n this.toggleClass(el, 'craft-disabled', field.disabled());\n this.toggleClass(el, 'craft-readonly', field.readonly());\n this.toggleClass(el, 'craft-required', field.required());\n this.toggleClass(el, 'craft-invalid', field.invalid());\n this.toggleClass(el, 'craft-valid', field.valid());\n this.toggleClass(el, 'craft-pending', field.pending());\n this.toggleClass(el, 'craft-dirty', field.dirty());\n this.toggleClass(el, 'craft-pristine', !field.dirty());\n this.toggleClass(el, 'craft-touched', field.touched());\n this.toggleClass(el, 'craft-untouched', !field.touched());\n });\n\n this.cleanupFns.push(() => ref.destroy());\n }\n\n private toggleAttribute(el: HTMLElement, name: string, value: boolean): void {\n if (value) this.renderer.setAttribute(el, name, 'true');\n else this.renderer.removeAttribute(el, name);\n }\n\n private toggleClass(el: HTMLElement, cls: string, on: boolean): void {\n el.classList.toggle(cls, on);\n }\n\n // ---------------------- Strategy: text ----------------------\n\n private bindTextInput(el: HTMLInputElement | HTMLTextAreaElement): void {\n const field = this.craftField as () => CraftField<string>;\n\n const writeValue = (next: unknown) => {\n const str = next === null || next === undefined ? '' : String(next);\n if (el.value !== str) el.value = str;\n };\n\n const syncer: ControlSyncer<unknown> = {\n writeValue,\n resync: () => writeValue(field().value()),\n };\n this.cleanupFns.push(\n field().ɵregisterControl(syncer as ControlSyncer<string>),\n );\n\n // Initial + reactive sync model -> UI\n const ref = this.createEffect('text-field-model-to-dom', () => {\n field().ɵresetTrigger();\n const v = field().value();\n untracked(() => writeValue(v));\n });\n this.cleanupFns.push(() => ref.destroy());\n\n // UI -> model\n const onInput = () => {\n (field().set as (v: unknown) => void)(el.value);\n };\n const onBlur = () => field().ɵmarkTouched();\n this.cleanupFns.push(\n this.renderer.listen(el, 'input', onInput),\n this.renderer.listen(el, 'blur', onBlur),\n );\n }\n\n // ---------------------- Strategy: numeric ----------------------\n\n private bindNumericInput(el: HTMLInputElement): void {\n const field = this.craftField as () => CraftField<number | string | null>;\n\n const writeValue = (next: unknown) => {\n const str =\n next === null || next === undefined\n ? ''\n : typeof next === 'number'\n ? Number.isNaN(next)\n ? ''\n : String(next)\n : String(next);\n if (el.value !== str) el.value = str;\n };\n\n const syncer: ControlSyncer<unknown> = {\n writeValue,\n resync: () => writeValue(field().value()),\n };\n this.cleanupFns.push(\n field().ɵregisterControl(syncer as ControlSyncer<number | string | null>),\n );\n\n const ref = this.createEffect('numeric-field-model-to-dom', () => {\n field().ɵresetTrigger();\n const v = field().value();\n untracked(() => writeValue(v));\n });\n this.cleanupFns.push(() => ref.destroy());\n\n const onInput = () => {\n const currentModel = untracked(() => field().value());\n let next: number | string | null;\n if (el.value === '') {\n next = currentModel === null ? null : '';\n } else if (typeof currentModel === 'string') {\n next = el.value;\n } else {\n next = el.valueAsNumber;\n }\n (field().set as (v: unknown) => void)(next);\n };\n const onBlur = () => field().ɵmarkTouched();\n this.cleanupFns.push(\n this.renderer.listen(el, 'input', onInput),\n this.renderer.listen(el, 'blur', onBlur),\n );\n }\n\n // ---------------------- Strategy: temporal ----------------------\n\n private bindTemporalInput(el: HTMLInputElement): void {\n const field = this.craftField as () => CraftField<unknown>;\n\n const writeValue = (next: unknown) => {\n let str = '';\n if (next instanceof Date) {\n str = formatDateForInput(next, el.type);\n } else if (typeof next === 'number') {\n str = formatDateForInput(new Date(next), el.type);\n } else if (typeof next === 'string') {\n str = next;\n }\n if (el.value !== str) el.value = str;\n };\n\n const syncer: ControlSyncer<unknown> = {\n writeValue,\n resync: () => writeValue(field().value()),\n };\n this.cleanupFns.push(field().ɵregisterControl(syncer));\n\n const ref = this.createEffect('temporal-field-model-to-dom', () => {\n field().ɵresetTrigger();\n const v = field().value();\n untracked(() => writeValue(v));\n });\n this.cleanupFns.push(() => ref.destroy());\n\n const onInput = () => {\n const currentModel = untracked(() => field().value());\n let next: unknown;\n if (currentModel instanceof Date) {\n next = el.valueAsDate ?? null;\n } else if (typeof currentModel === 'number') {\n next = el.valueAsNumber;\n } else {\n next = el.value;\n }\n (field().set as (v: unknown) => void)(next);\n };\n const onBlur = () => field().ɵmarkTouched();\n this.cleanupFns.push(\n this.renderer.listen(el, 'input', onInput),\n this.renderer.listen(el, 'blur', onBlur),\n );\n }\n\n // ---------------------- Strategy: checkbox ----------------------\n\n private bindCheckboxInput(el: HTMLInputElement): void {\n const field = this.craftField as () => CraftField<boolean>;\n\n const writeValue = (next: unknown) => {\n el.checked = !!next;\n };\n\n const syncer: ControlSyncer<unknown> = {\n writeValue,\n resync: () => writeValue(field().value()),\n };\n this.cleanupFns.push(\n field().ɵregisterControl(syncer as ControlSyncer<boolean>),\n );\n\n const ref = this.createEffect('checkbox-field-model-to-dom', () => {\n field().ɵresetTrigger();\n const v = field().value();\n untracked(() => writeValue(v));\n });\n this.cleanupFns.push(() => ref.destroy());\n\n const onChange = () => {\n (field().set as (v: unknown) => void)(el.checked);\n };\n const onBlur = () => field().ɵmarkTouched();\n this.cleanupFns.push(\n this.renderer.listen(el, 'change', onChange),\n this.renderer.listen(el, 'blur', onBlur),\n );\n }\n\n // ---------------------- Strategy: radio ----------------------\n\n private bindRadioInput(el: HTMLInputElement): void {\n const field = this.craftField as () => CraftField<unknown>;\n\n const writeValue = (next: unknown) => {\n el.checked =\n next !== null && next !== undefined && el.value === String(next);\n };\n\n const syncer: ControlSyncer<unknown> = {\n writeValue,\n resync: () => writeValue(field().value()),\n };\n this.cleanupFns.push(field().ɵregisterControl(syncer));\n\n // Set the radio name from the field path so radios bound to the same field group naturally\n const path = field().ɵpath;\n if (path.length > 0 && !el.name) {\n el.name = path.join('.');\n }\n\n const ref = this.createEffect('radio-field-model-to-dom', () => {\n field().ɵresetTrigger();\n const v = field().value();\n untracked(() => writeValue(v));\n });\n this.cleanupFns.push(() => ref.destroy());\n\n const onChange = () => {\n if (el.checked) {\n (field().set as (v: unknown) => void)(el.value);\n }\n };\n const onBlur = () => field().ɵmarkTouched();\n this.cleanupFns.push(\n this.renderer.listen(el, 'change', onChange),\n this.renderer.listen(el, 'blur', onBlur),\n );\n }\n\n // ---------------------- Strategy: select ----------------------\n\n private bindSelectInput(el: HTMLSelectElement): void {\n const field = this.craftField as () => CraftField<string>;\n\n const writeValue = (next: unknown) => {\n const str = next === null || next === undefined ? '' : String(next);\n if (el.value !== str) el.value = str;\n };\n\n const syncer: ControlSyncer<unknown> = {\n writeValue,\n resync: () => writeValue(field().value()),\n };\n this.cleanupFns.push(\n field().ɵregisterControl(syncer as ControlSyncer<string>),\n );\n\n const ref = this.createEffect('select-field-model-to-dom', () => {\n field().ɵresetTrigger();\n const v = field().value();\n untracked(() => writeValue(v));\n });\n this.cleanupFns.push(() => ref.destroy());\n\n const onChange = () => {\n (field().set as (v: unknown) => void)(el.value);\n };\n const onBlur = () => field().ɵmarkTouched();\n this.cleanupFns.push(\n this.renderer.listen(el, 'change', onChange),\n this.renderer.listen(el, 'blur', onBlur),\n );\n }\n\n // ---------------------- Strategy: signal value control ----------------------\n\n private bindSignalValueControl(): void {\n const control = this\n .customValueControl as CraftValueControl<unknown> | null;\n if (!control) return;\n const field = this.craftField as () => CraftField<unknown>;\n let lastWrittenFromModel: unknown = Symbol('uninitialized');\n let lastReadFromControl: unknown = Symbol('uninitialized');\n\n // Model -> Control\n const modelEffect = this.createEffect(\n 'custom-value-model-to-control',\n () => {\n field().ɵresetTrigger();\n const v = field().value();\n untracked(() => {\n lastWrittenFromModel = v;\n if (control.value() !== v) {\n control.value.set(v);\n }\n });\n },\n );\n this.cleanupFns.push(() => modelEffect.destroy());\n\n // Control -> Model\n const controlEffect = this.createEffect(\n 'custom-value-control-to-model',\n () => {\n const v = control.value();\n untracked(() => {\n if (v === lastWrittenFromModel) return;\n if (v === lastReadFromControl) return;\n lastReadFromControl = v;\n (field().set as (v: unknown) => void)(v);\n });\n },\n );\n this.cleanupFns.push(() => controlEffect.destroy());\n }\n\n // ---------------------- Strategy: signal checkbox control ----------------------\n\n private bindSignalCheckboxControl(): void {\n const control = this.customCheckboxControl as CraftCheckboxControl | null;\n if (!control) return;\n const field = this.craftField as () => CraftField<boolean>;\n let lastWrittenFromModel: boolean | symbol = Symbol('uninitialized');\n let lastReadFromControl: boolean | symbol = Symbol('uninitialized');\n\n const modelEffect = this.createEffect(\n 'custom-checkbox-model-to-control',\n () => {\n field().ɵresetTrigger();\n const v = field().value();\n untracked(() => {\n lastWrittenFromModel = v;\n if (control.checked() !== v) control.checked.set(v);\n });\n },\n );\n this.cleanupFns.push(() => modelEffect.destroy());\n\n const controlEffect = this.createEffect(\n 'custom-checkbox-control-to-model',\n () => {\n const v = control.checked();\n untracked(() => {\n if (v === lastWrittenFromModel) return;\n if (v === lastReadFromControl) return;\n lastReadFromControl = v;\n (field().set as (v: boolean) => void)(v);\n });\n },\n );\n this.cleanupFns.push(() => controlEffect.destroy());\n }\n}\n\n/** Mounts the complete native/custom-control field synchronization contract. */\nexport function bindCraftField<T>(\n element: HTMLElement,\n field: CraftField<T>,\n renderer: CraftDomAdapter | object,\n injector: Injector | object,\n customValueControl: CraftValueControl<unknown> | null = null,\n customCheckboxControl: CraftCheckboxControl | null = null,\n createEffect?: CraftNodeEffectFactory,\n): () => void {\n const binding = new CraftFieldBinding(\n element,\n renderer as CraftDomAdapter,\n injector as Injector,\n field,\n customValueControl,\n customCheckboxControl,\n createEffect,\n );\n binding.mount();\n return () => binding.destroy();\n}\n\nexport type BoundCraftFieldDirective<Field> = CraftNodeDirective<\n Readonly<Record<never, never>>\n> &\n CraftFieldValidationCasesCarrier<FieldValidationCasesOf<Field>> &\n CraftFieldExceptionSourceCarrier;\n\nconst functionalFieldDirectives = new WeakMap<\n object,\n CraftNodeDirective<Readonly<Record<never, never>>>\n>();\n\n/**\n * Binds a `CraftField` to one concrete Craft DOM node.\n *\n * @example\n * input({ type: 'email' }).pipe(CraftFieldDirective(form.selectEmail()))\n *\n * Use the field returned by `selectXxx()` when it is configured through\n * `insertSelectFormTree`, because selection materializes the branch insertions.\n */\ntype CraftFieldValueOf<Field> = Field extends {\n readonly value: { readonly [REACTIVE_VALUE_TYPE]: infer Value };\n}\n ? Value\n : Field extends { set: (next: infer Value) => void }\n ? Value\n : Field extends { readonly value: Signal<infer Value> }\n ? Value\n : never;\n\nexport function CraftFieldDirective<\n Field extends {\n readonly value: (...args: any[]) => unknown;\n set: (next: any) => void;\n },\n>(field: Field): BoundCraftFieldDirective<Field> {\n if (!isCraftField(field)) {\n throw new TypeError('CraftFieldDirective requires a CraftField.');\n }\n\n const key = field as object;\n const existing = functionalFieldDirectives.get(key);\n if (existing) return existing as BoundCraftFieldDirective<Field>;\n\n const directive = craftNodeDirective<Readonly<Record<never, never>>>(\n 'CraftFieldDirective',\n [],\n (context) => {\n const releaseBinding = bindCraftField(\n context.element as HTMLElement,\n field as unknown as CraftField<CraftFieldValueOf<Field>>,\n context.renderer,\n context.injector,\n context.injector.get(CRAFT_FIELD_VALUE_CONTROL, null),\n context.injector.get(CRAFT_FIELD_CHECKBOX_CONTROL, null),\n context.injector.get(CRAFT_NODE_EFFECT_FACTORY),\n );\n const source = (field as Field & CraftFieldExceptionSourceCarrier)[\n CRAFT_FIELD_EXCEPTION_SOURCE\n ];\n const boundary = context.injector.get(\n CRAFT_FIELD_EXCEPTION_BOUNDARY,\n null,\n );\n const releaseBoundary =\n source && boundary\n ? boundary.register(source, context.element)\n : undefined;\n return () => {\n releaseBoundary?.();\n releaseBinding();\n };\n },\n );\n functionalFieldDirectives.set(key, directive);\n return directive as BoundCraftFieldDirective<Field>;\n}\n\nexport type GenDeps_LegacyCraftFieldDirective = GetDeps<{\n deps: Record<never, never>;\n provided: Record<never, never>;\n missingProvider: {\n Renderer2: Renderer2;\n Injector: Injector;\n CRAFT_FIELD_VALUE_CONTROL: typeof CRAFT_FIELD_VALUE_CONTROL;\n CRAFT_FIELD_CHECKBOX_CONTROL: typeof CRAFT_FIELD_CHECKBOX_CONTROL;\n };\n}>;\n\n/** @deprecated DI metadata belongs to `LegacyCraftFieldDirective` only. */\nexport type GenDeps_CraftFieldDirective = GenDeps_LegacyCraftFieldDirective;\n\nfunction formatMinMax(value: number | Date, inputType: string): string {\n if (value instanceof Date) return formatDateForInput(value, inputType);\n return String(value);\n}\n\nfunction formatDateForInput(date: Date, inputType: string): string {\n if (Number.isNaN(date.getTime())) return '';\n const t = inputType.toLowerCase();\n const pad2 = (n: number) => String(n).padStart(2, '0');\n const yyyy = date.getFullYear();\n const mm = pad2(date.getMonth() + 1);\n const dd = pad2(date.getDate());\n const hh = pad2(date.getHours());\n const mi = pad2(date.getMinutes());\n switch (t) {\n case 'date':\n return `${yyyy}-${mm}-${dd}`;\n case 'datetime-local':\n return `${yyyy}-${mm}-${dd}T${hh}:${mi}`;\n case 'time':\n return `${hh}:${mi}`;\n case 'month':\n return `${yyyy}-${mm}`;\n case 'week': {\n // ISO week formatting; simplified\n const target = new Date(date);\n target.setHours(0, 0, 0, 0);\n target.setDate(target.getDate() + 3 - ((target.getDay() + 6) % 7));\n const firstThursday = new Date(target.getFullYear(), 0, 4);\n const week =\n 1 +\n Math.round(\n ((target.getTime() - firstThursday.getTime()) / 86400000 -\n 3 +\n ((firstThursday.getDay() + 6) % 7)) /\n 7,\n );\n return `${target.getFullYear()}-W${pad2(week)}`;\n }\n default:\n return date.toISOString();\n }\n}\n"]}
|