@craft-ts/core 0.7.0-beta.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/package.json +58 -0
- package/src/index.d.ts +148 -0
- package/src/index.d.ts.map +1 -0
- package/src/index.js +150 -0
- package/src/index.js.map +1 -0
- package/src/lib/after-recomputation.d.ts +327 -0
- package/src/lib/after-recomputation.d.ts.map +1 -0
- package/src/lib/after-recomputation.js +25 -0
- package/src/lib/after-recomputation.js.map +1 -0
- package/src/lib/app-checked-di.d.ts +82 -0
- package/src/lib/app-checked-di.d.ts.map +1 -0
- package/src/lib/app-checked-di.js +1 -0
- package/src/lib/app-checked-di.js.map +1 -0
- package/src/lib/async-process.d.ts +411 -0
- package/src/lib/async-process.d.ts.map +1 -0
- package/src/lib/async-process.js +702 -0
- package/src/lib/async-process.js.map +1 -0
- package/src/lib/branded-component/branded-component.d.ts +129 -0
- package/src/lib/branded-component/branded-component.d.ts.map +1 -0
- package/src/lib/branded-component/branded-component.js +7 -0
- package/src/lib/branded-component/branded-component.js.map +1 -0
- package/src/lib/browser-boundaries.d.ts +165 -0
- package/src/lib/browser-boundaries.d.ts.map +1 -0
- package/src/lib/browser-boundaries.js +550 -0
- package/src/lib/browser-boundaries.js.map +1 -0
- package/src/lib/client-di-requirement.d.ts +28 -0
- package/src/lib/client-di-requirement.d.ts.map +1 -0
- package/src/lib/client-di-requirement.js +11 -0
- package/src/lib/client-di-requirement.js.map +1 -0
- package/src/lib/client-function-middleware.d.ts +130 -0
- package/src/lib/client-function-middleware.d.ts.map +1 -0
- package/src/lib/client-function-middleware.js +144 -0
- package/src/lib/client-function-middleware.js.map +1 -0
- package/src/lib/component-monitoring.d.ts +7 -0
- package/src/lib/component-monitoring.d.ts.map +1 -0
- package/src/lib/component-monitoring.js +28 -0
- package/src/lib/component-monitoring.js.map +1 -0
- package/src/lib/component-register.d.ts +12 -0
- package/src/lib/component-register.d.ts.map +1 -0
- package/src/lib/component-register.js +13 -0
- package/src/lib/component-register.js.map +1 -0
- package/src/lib/computed-source.d.ts +303 -0
- package/src/lib/computed-source.d.ts.map +1 -0
- package/src/lib/computed-source.js +319 -0
- package/src/lib/computed-source.js.map +1 -0
- package/src/lib/correlation-id-plugin.d.ts +3 -0
- package/src/lib/correlation-id-plugin.d.ts.map +1 -0
- package/src/lib/correlation-id-plugin.js +73 -0
- package/src/lib/correlation-id-plugin.js.map +1 -0
- package/src/lib/correlation-id.d.ts +30 -0
- package/src/lib/correlation-id.d.ts.map +1 -0
- package/src/lib/correlation-id.js +86 -0
- package/src/lib/correlation-id.js.map +1 -0
- package/src/lib/craft-a11y.d.ts +22 -0
- package/src/lib/craft-a11y.d.ts.map +1 -0
- package/src/lib/craft-a11y.js +32 -0
- package/src/lib/craft-a11y.js.map +1 -0
- package/src/lib/craft-activated-route.d.ts +21 -0
- package/src/lib/craft-activated-route.d.ts.map +1 -0
- package/src/lib/craft-activated-route.js +20 -0
- package/src/lib/craft-activated-route.js.map +1 -0
- package/src/lib/craft-app-config.d.ts +91 -0
- package/src/lib/craft-app-config.d.ts.map +1 -0
- package/src/lib/craft-app-config.js +64 -0
- package/src/lib/craft-app-config.js.map +1 -0
- package/src/lib/craft-codec.d.ts +16 -0
- package/src/lib/craft-codec.d.ts.map +1 -0
- package/src/lib/craft-codec.js +1 -0
- package/src/lib/craft-codec.js.map +1 -0
- package/src/lib/craft-computed.d.ts +31 -0
- package/src/lib/craft-computed.d.ts.map +1 -0
- package/src/lib/craft-computed.js +81 -0
- package/src/lib/craft-computed.js.map +1 -0
- package/src/lib/craft-control-flow.d.ts +14 -0
- package/src/lib/craft-control-flow.d.ts.map +1 -0
- package/src/lib/craft-control-flow.js +18 -0
- package/src/lib/craft-control-flow.js.map +1 -0
- package/src/lib/craft-effect.d.ts +13 -0
- package/src/lib/craft-effect.d.ts.map +1 -0
- package/src/lib/craft-effect.js +93 -0
- package/src/lib/craft-effect.js.map +1 -0
- package/src/lib/craft-exception.d.ts +40 -0
- package/src/lib/craft-exception.d.ts.map +1 -0
- package/src/lib/craft-exception.js +16 -0
- package/src/lib/craft-exception.js.map +1 -0
- package/src/lib/craft-gen.d.ts +123 -0
- package/src/lib/craft-gen.d.ts.map +1 -0
- package/src/lib/craft-gen.js +90 -0
- package/src/lib/craft-gen.js.map +1 -0
- package/src/lib/craft-generator-runtime.d.ts +110 -0
- package/src/lib/craft-generator-runtime.d.ts.map +1 -0
- package/src/lib/craft-generator-runtime.js +191 -0
- package/src/lib/craft-generator-runtime.js.map +1 -0
- package/src/lib/craft-guard-runtime.d.ts +70 -0
- package/src/lib/craft-guard-runtime.d.ts.map +1 -0
- package/src/lib/craft-guard-runtime.js +195 -0
- package/src/lib/craft-guard-runtime.js.map +1 -0
- package/src/lib/craft-handshake.d.ts +35 -0
- package/src/lib/craft-handshake.d.ts.map +1 -0
- package/src/lib/craft-handshake.js +34 -0
- package/src/lib/craft-handshake.js.map +1 -0
- package/src/lib/craft-http-client.d.ts +236 -0
- package/src/lib/craft-http-client.d.ts.map +1 -0
- package/src/lib/craft-http-client.js +437 -0
- package/src/lib/craft-http-client.js.map +1 -0
- package/src/lib/craft-http-trace.d.ts +12 -0
- package/src/lib/craft-http-trace.d.ts.map +1 -0
- package/src/lib/craft-http-trace.js +28 -0
- package/src/lib/craft-http-trace.js.map +1 -0
- package/src/lib/craft-lazy.d.ts +42 -0
- package/src/lib/craft-lazy.d.ts.map +1 -0
- package/src/lib/craft-lazy.js +83 -0
- package/src/lib/craft-lazy.js.map +1 -0
- package/src/lib/craft-load-retry.d.ts +76 -0
- package/src/lib/craft-load-retry.d.ts.map +1 -0
- package/src/lib/craft-load-retry.js +160 -0
- package/src/lib/craft-load-retry.js.map +1 -0
- package/src/lib/craft-machine-history.d.ts +145 -0
- package/src/lib/craft-machine-history.d.ts.map +1 -0
- package/src/lib/craft-machine-history.js +276 -0
- package/src/lib/craft-machine-history.js.map +1 -0
- package/src/lib/craft-match.d.ts +49 -0
- package/src/lib/craft-match.d.ts.map +1 -0
- package/src/lib/craft-match.js +58 -0
- package/src/lib/craft-match.js.map +1 -0
- package/src/lib/craft-method.d.ts +28 -0
- package/src/lib/craft-method.d.ts.map +1 -0
- package/src/lib/craft-method.js +45 -0
- package/src/lib/craft-method.js.map +1 -0
- package/src/lib/craft-node-directive.d.ts +32 -0
- package/src/lib/craft-node-directive.d.ts.map +1 -0
- package/src/lib/craft-node-directive.js +22 -0
- package/src/lib/craft-node-directive.js.map +1 -0
- package/src/lib/craft-pending.d.ts +115 -0
- package/src/lib/craft-pending.d.ts.map +1 -0
- package/src/lib/craft-pending.js +187 -0
- package/src/lib/craft-pending.js.map +1 -0
- package/src/lib/craft-pipe.d.ts +63 -0
- package/src/lib/craft-pipe.d.ts.map +1 -0
- package/src/lib/craft-pipe.js +57 -0
- package/src/lib/craft-pipe.js.map +1 -0
- package/src/lib/craft-platform.d.ts +50 -0
- package/src/lib/craft-platform.d.ts.map +1 -0
- package/src/lib/craft-platform.js +175 -0
- package/src/lib/craft-platform.js.map +1 -0
- package/src/lib/craft-primitive-gen.d.ts +137 -0
- package/src/lib/craft-primitive-gen.d.ts.map +1 -0
- package/src/lib/craft-primitive-gen.js +76 -0
- package/src/lib/craft-primitive-gen.js.map +1 -0
- package/src/lib/craft-primitive-registry.d.ts +113 -0
- package/src/lib/craft-primitive-registry.d.ts.map +1 -0
- package/src/lib/craft-primitive-registry.js +159 -0
- package/src/lib/craft-primitive-registry.js.map +1 -0
- package/src/lib/craft-program-operators.d.ts +101 -0
- package/src/lib/craft-program-operators.d.ts.map +1 -0
- package/src/lib/craft-program-operators.js +116 -0
- package/src/lib/craft-program-operators.js.map +1 -0
- package/src/lib/craft-program-runtime.d.ts +80 -0
- package/src/lib/craft-program-runtime.d.ts.map +1 -0
- package/src/lib/craft-program-runtime.js +166 -0
- package/src/lib/craft-program-runtime.js.map +1 -0
- package/src/lib/craft-register-for-runtime.d.ts +39 -0
- package/src/lib/craft-register-for-runtime.d.ts.map +1 -0
- package/src/lib/craft-register-for-runtime.js +96 -0
- package/src/lib/craft-register-for-runtime.js.map +1 -0
- package/src/lib/craft-register-for.d.ts +57 -0
- package/src/lib/craft-register-for.d.ts.map +1 -0
- package/src/lib/craft-register-for.js +200 -0
- package/src/lib/craft-register-for.js.map +1 -0
- package/src/lib/craft-render-identity.d.ts +19 -0
- package/src/lib/craft-render-identity.d.ts.map +1 -0
- package/src/lib/craft-render-identity.js +23 -0
- package/src/lib/craft-render-identity.js.map +1 -0
- package/src/lib/craft-replay.d.ts +5 -0
- package/src/lib/craft-replay.d.ts.map +1 -0
- package/src/lib/craft-replay.js +28 -0
- package/src/lib/craft-replay.js.map +1 -0
- package/src/lib/craft-resolve.d.ts +39 -0
- package/src/lib/craft-resolve.d.ts.map +1 -0
- package/src/lib/craft-resolve.js +9 -0
- package/src/lib/craft-resolve.js.map +1 -0
- package/src/lib/craft-resource.d.ts +11 -0
- package/src/lib/craft-resource.d.ts.map +1 -0
- package/src/lib/craft-resource.js +264 -0
- package/src/lib/craft-resource.js.map +1 -0
- package/src/lib/craft-route-exceptions.d.ts +785 -0
- package/src/lib/craft-route-exceptions.d.ts.map +1 -0
- package/src/lib/craft-route-exceptions.js +86 -0
- package/src/lib/craft-route-exceptions.js.map +1 -0
- package/src/lib/craft-route-load-error.d.ts +1145 -0
- package/src/lib/craft-route-load-error.d.ts.map +1 -0
- package/src/lib/craft-route-load-error.js +173 -0
- package/src/lib/craft-route-load-error.js.map +1 -0
- package/src/lib/craft-route-meta.d.ts +52 -0
- package/src/lib/craft-route-meta.d.ts.map +1 -0
- package/src/lib/craft-route-meta.js +16 -0
- package/src/lib/craft-route-meta.js.map +1 -0
- package/src/lib/craft-route-target.d.ts +27 -0
- package/src/lib/craft-route-target.d.ts.map +1 -0
- package/src/lib/craft-route-target.js +22 -0
- package/src/lib/craft-route-target.js.map +1 -0
- package/src/lib/craft-router-outlet.d.ts +105 -0
- package/src/lib/craft-router-outlet.d.ts.map +1 -0
- package/src/lib/craft-router-outlet.js +735 -0
- package/src/lib/craft-router-outlet.js.map +1 -0
- package/src/lib/craft-router-tokens.d.ts +49 -0
- package/src/lib/craft-router-tokens.d.ts.map +1 -0
- package/src/lib/craft-router-tokens.js +15 -0
- package/src/lib/craft-router-tokens.js.map +1 -0
- package/src/lib/craft-router-trace.d.ts +18 -0
- package/src/lib/craft-router-trace.d.ts.map +1 -0
- package/src/lib/craft-router-trace.js +54 -0
- package/src/lib/craft-router-trace.js.map +1 -0
- package/src/lib/craft-router.d.ts +248 -0
- package/src/lib/craft-router.d.ts.map +1 -0
- package/src/lib/craft-router.js +559 -0
- package/src/lib/craft-router.js.map +1 -0
- package/src/lib/craft-routes.d.ts +755 -0
- package/src/lib/craft-routes.d.ts.map +1 -0
- package/src/lib/craft-routes.js +510 -0
- package/src/lib/craft-routes.js.map +1 -0
- package/src/lib/craft-service.d.ts +1034 -0
- package/src/lib/craft-service.d.ts.map +1 -0
- package/src/lib/craft-service.js +1072 -0
- package/src/lib/craft-service.js.map +1 -0
- package/src/lib/craft-service.shared.d.ts +35 -0
- package/src/lib/craft-service.shared.d.ts.map +1 -0
- package/src/lib/craft-service.shared.js +4 -0
- package/src/lib/craft-service.shared.js.map +1 -0
- package/src/lib/craft-settled.d.ts +171 -0
- package/src/lib/craft-settled.d.ts.map +1 -0
- package/src/lib/craft-settled.js +130 -0
- package/src/lib/craft-settled.js.map +1 -0
- package/src/lib/craft-ssr.d.ts +29 -0
- package/src/lib/craft-ssr.d.ts.map +1 -0
- package/src/lib/craft-ssr.js +27 -0
- package/src/lib/craft-ssr.js.map +1 -0
- package/src/lib/craft-state-machine-runtime.d.ts +88 -0
- package/src/lib/craft-state-machine-runtime.d.ts.map +1 -0
- package/src/lib/craft-state-machine-runtime.js +167 -0
- package/src/lib/craft-state-machine-runtime.js.map +1 -0
- package/src/lib/craft-state-machine.d.ts +233 -0
- package/src/lib/craft-state-machine.d.ts.map +1 -0
- package/src/lib/craft-state-machine.js +254 -0
- package/src/lib/craft-state-machine.js.map +1 -0
- package/src/lib/craft-target-runtime.d.ts +20 -0
- package/src/lib/craft-target-runtime.d.ts.map +1 -0
- package/src/lib/craft-target-runtime.js +42 -0
- package/src/lib/craft-target-runtime.js.map +1 -0
- package/src/lib/craft-transfer-snapshot.d.ts +19 -0
- package/src/lib/craft-transfer-snapshot.d.ts.map +1 -0
- package/src/lib/craft-transfer-snapshot.js +90 -0
- package/src/lib/craft-transfer-snapshot.js.map +1 -0
- package/src/lib/craft-unique.d.ts +7 -0
- package/src/lib/craft-unique.d.ts.map +1 -0
- package/src/lib/craft-unique.js +16 -0
- package/src/lib/craft-unique.js.map +1 -0
- package/src/lib/craft-until-settled.d.ts +99 -0
- package/src/lib/craft-until-settled.d.ts.map +1 -0
- package/src/lib/craft-until-settled.js +81 -0
- package/src/lib/craft-until-settled.js.map +1 -0
- package/src/lib/craft-use.d.ts +26 -0
- package/src/lib/craft-use.d.ts.map +1 -0
- package/src/lib/craft-use.js +37 -0
- package/src/lib/craft-use.js.map +1 -0
- package/src/lib/craft-view-transition.d.ts +102 -0
- package/src/lib/craft-view-transition.d.ts.map +1 -0
- package/src/lib/craft-view-transition.js +130 -0
- package/src/lib/craft-view-transition.js.map +1 -0
- package/src/lib/dom-event-hook.d.ts +30 -0
- package/src/lib/dom-event-hook.d.ts.map +1 -0
- package/src/lib/dom-event-hook.js +16 -0
- package/src/lib/dom-event-hook.js.map +1 -0
- package/src/lib/fn-wrapper.d.ts +13 -0
- package/src/lib/fn-wrapper.d.ts.map +1 -0
- package/src/lib/fn-wrapper.js +66 -0
- package/src/lib/fn-wrapper.js.map +1 -0
- package/src/lib/form/craft-field.d.ts +155 -0
- package/src/lib/form/craft-field.d.ts.map +1 -0
- package/src/lib/form/craft-field.directive.d.ts +70 -0
- package/src/lib/form/craft-field.directive.d.ts.map +1 -0
- package/src/lib/form/craft-field.directive.js +549 -0
- package/src/lib/form/craft-field.directive.js.map +1 -0
- package/src/lib/form/craft-field.js +586 -0
- package/src/lib/form/craft-field.js.map +1 -0
- package/src/lib/form/field-exception.d.ts +62 -0
- package/src/lib/form/field-exception.d.ts.map +1 -0
- package/src/lib/form/field-exception.js +37 -0
- package/src/lib/form/field-exception.js.map +1 -0
- package/src/lib/form/field-lens.d.ts +29 -0
- package/src/lib/form/field-lens.d.ts.map +1 -0
- package/src/lib/form/field-lens.js +32 -0
- package/src/lib/form/field-lens.js.map +1 -0
- package/src/lib/form/insert-form-attributes.d.ts +69 -0
- package/src/lib/form/insert-form-attributes.d.ts.map +1 -0
- package/src/lib/form/insert-form-attributes.js +163 -0
- package/src/lib/form/insert-form-attributes.js.map +1 -0
- package/src/lib/form/insert-form-internals.d.ts +110 -0
- package/src/lib/form/insert-form-internals.d.ts.map +1 -0
- package/src/lib/form/insert-form-internals.js +276 -0
- package/src/lib/form/insert-form-internals.js.map +1 -0
- package/src/lib/form/insert-form-schema.d.ts +10 -0
- package/src/lib/form/insert-form-schema.d.ts.map +1 -0
- package/src/lib/form/insert-form-schema.js +62 -0
- package/src/lib/form/insert-form-schema.js.map +1 -0
- package/src/lib/form/insert-form-submit.d.ts +79 -0
- package/src/lib/form/insert-form-submit.d.ts.map +1 -0
- package/src/lib/form/insert-form-submit.js +126 -0
- package/src/lib/form/insert-form-submit.js.map +1 -0
- package/src/lib/form/insert-form.d.ts +39 -0
- package/src/lib/form/insert-form.d.ts.map +1 -0
- package/src/lib/form/insert-form.js +255 -0
- package/src/lib/form/insert-form.js.map +1 -0
- package/src/lib/form/insert-select-form-tree.d.ts +33 -0
- package/src/lib/form/insert-select-form-tree.d.ts.map +1 -0
- package/src/lib/form/insert-select-form-tree.js +144 -0
- package/src/lib/form/insert-select-form-tree.js.map +1 -0
- package/src/lib/form/insert-sub-form-field.d.ts +17 -0
- package/src/lib/form/insert-sub-form-field.d.ts.map +1 -0
- package/src/lib/form/insert-sub-form-field.js +41 -0
- package/src/lib/form/insert-sub-form-field.js.map +1 -0
- package/src/lib/form/make-form-tree-insert.d.ts +22 -0
- package/src/lib/form/make-form-tree-insert.d.ts.map +1 -0
- package/src/lib/form/make-form-tree-insert.js +43 -0
- package/src/lib/form/make-form-tree-insert.js.map +1 -0
- package/src/lib/form/target-form-field.d.ts +11 -0
- package/src/lib/form/target-form-field.d.ts.map +1 -0
- package/src/lib/form/target-form-field.js +1 -0
- package/src/lib/form/target-form-field.js.map +1 -0
- package/src/lib/form/validator.d.ts +174 -0
- package/src/lib/form/validator.d.ts.map +1 -0
- package/src/lib/form/validator.js +465 -0
- package/src/lib/form/validator.js.map +1 -0
- package/src/lib/from-event-to-source$.d.ts +210 -0
- package/src/lib/from-event-to-source$.d.ts.map +1 -0
- package/src/lib/from-event-to-source$.js +29 -0
- package/src/lib/from-event-to-source$.js.map +1 -0
- package/src/lib/global-persister-handler.service.d.ts +10 -0
- package/src/lib/global-persister-handler.service.d.ts.map +1 -0
- package/src/lib/global-persister-handler.service.js +40 -0
- package/src/lib/global-persister-handler.service.js.map +1 -0
- package/src/lib/host/craft-compat.d.ts +242 -0
- package/src/lib/host/craft-compat.d.ts.map +1 -0
- package/src/lib/host/craft-compat.js +444 -0
- package/src/lib/host/craft-compat.js.map +1 -0
- package/src/lib/host/craft-dom.d.ts +16 -0
- package/src/lib/host/craft-dom.d.ts.map +1 -0
- package/src/lib/host/craft-dom.js +24 -0
- package/src/lib/host/craft-dom.js.map +1 -0
- package/src/lib/host/craft-http.d.ts +22 -0
- package/src/lib/host/craft-http.d.ts.map +1 -0
- package/src/lib/host/craft-http.js +80 -0
- package/src/lib/host/craft-http.js.map +1 -0
- package/src/lib/host/craft-injector-host.d.ts +3 -0
- package/src/lib/host/craft-injector-host.d.ts.map +1 -0
- package/src/lib/host/craft-injector-host.js +2 -0
- package/src/lib/host/craft-injector-host.js.map +1 -0
- package/src/lib/host/craft-injector.d.ts +40 -0
- package/src/lib/host/craft-injector.d.ts.map +1 -0
- package/src/lib/host/craft-injector.js +318 -0
- package/src/lib/host/craft-injector.js.map +1 -0
- package/src/lib/host/craft-linked-signal.d.ts +17 -0
- package/src/lib/host/craft-linked-signal.d.ts.map +1 -0
- package/src/lib/host/craft-linked-signal.js +86 -0
- package/src/lib/host/craft-linked-signal.js.map +1 -0
- package/src/lib/host/craft-router-runtime.d.ts +61 -0
- package/src/lib/host/craft-router-runtime.d.ts.map +1 -0
- package/src/lib/host/craft-router-runtime.js +456 -0
- package/src/lib/host/craft-router-runtime.js.map +1 -0
- package/src/lib/host/craft-router-types.d.ts +84 -0
- package/src/lib/host/craft-router-types.d.ts.map +1 -0
- package/src/lib/host/craft-router-types.js +35 -0
- package/src/lib/host/craft-router-types.js.map +1 -0
- package/src/lib/host/craft-signal.d.ts +45 -0
- package/src/lib/host/craft-signal.d.ts.map +1 -0
- package/src/lib/host/craft-signal.js +161 -0
- package/src/lib/host/craft-signal.js.map +1 -0
- package/src/lib/host/craft-test-bed.d.ts +63 -0
- package/src/lib/host/craft-test-bed.d.ts.map +1 -0
- package/src/lib/host/craft-test-bed.js +114 -0
- package/src/lib/host/craft-test-bed.js.map +1 -0
- package/src/lib/host-tag.d.ts +2 -0
- package/src/lib/host-tag.d.ts.map +1 -0
- package/src/lib/host-tag.js +2 -0
- package/src/lib/host-tag.js.map +1 -0
- package/src/lib/insert-entities.d.ts +131 -0
- package/src/lib/insert-entities.d.ts.map +1 -0
- package/src/lib/insert-entities.js +159 -0
- package/src/lib/insert-entities.js.map +1 -0
- package/src/lib/insert-noop-typing-anchor.d.ts +15 -0
- package/src/lib/insert-noop-typing-anchor.d.ts.map +1 -0
- package/src/lib/insert-noop-typing-anchor.js +16 -0
- package/src/lib/insert-noop-typing-anchor.js.map +1 -0
- package/src/lib/insert-pagination-placeholder-data.d.ts +122 -0
- package/src/lib/insert-pagination-placeholder-data.d.ts.map +1 -0
- package/src/lib/insert-pagination-placeholder-data.js +244 -0
- package/src/lib/insert-pagination-placeholder-data.js.map +1 -0
- package/src/lib/insert-react-on-mutation.d.ts +261 -0
- package/src/lib/insert-react-on-mutation.d.ts.map +1 -0
- package/src/lib/insert-react-on-mutation.js +227 -0
- package/src/lib/insert-react-on-mutation.js.map +1 -0
- package/src/lib/insert-select-resource.d.ts +31 -0
- package/src/lib/insert-select-resource.d.ts.map +1 -0
- package/src/lib/insert-select-resource.js +27 -0
- package/src/lib/insert-select-resource.js.map +1 -0
- package/src/lib/insert-select.d.ts +126 -0
- package/src/lib/insert-select.d.ts.map +1 -0
- package/src/lib/insert-select.js +535 -0
- package/src/lib/insert-select.js.map +1 -0
- package/src/lib/insert-storage-persister.d.ts +27 -0
- package/src/lib/insert-storage-persister.d.ts.map +1 -0
- package/src/lib/insert-storage-persister.js +65 -0
- package/src/lib/insert-storage-persister.js.map +1 -0
- package/src/lib/insert-typed-pipes.d.ts +64 -0
- package/src/lib/insert-typed-pipes.d.ts.map +1 -0
- package/src/lib/insert-typed-pipes.js +32 -0
- package/src/lib/insert-typed-pipes.js.map +1 -0
- package/src/lib/linked-source.d.ts +8 -0
- package/src/lib/linked-source.d.ts.map +1 -0
- package/src/lib/linked-source.js +24 -0
- package/src/lib/linked-source.js.map +1 -0
- package/src/lib/local-storage-persister.d.ts +4 -0
- package/src/lib/local-storage-persister.d.ts.map +1 -0
- package/src/lib/local-storage-persister.js +342 -0
- package/src/lib/local-storage-persister.js.map +1 -0
- package/src/lib/middleware-schema-shared.d.ts +67 -0
- package/src/lib/middleware-schema-shared.d.ts.map +1 -0
- package/src/lib/middleware-schema-shared.js +34 -0
- package/src/lib/middleware-schema-shared.js.map +1 -0
- package/src/lib/mock-http-request-for-route.d.ts +173 -0
- package/src/lib/mock-http-request-for-route.d.ts.map +1 -0
- package/src/lib/mock-http-request-for-route.js +127 -0
- package/src/lib/mock-http-request-for-route.js.map +1 -0
- package/src/lib/mutation.d.ts +332 -0
- package/src/lib/mutation.d.ts.map +1 -0
- package/src/lib/mutation.js +923 -0
- package/src/lib/mutation.js.map +1 -0
- package/src/lib/on$.d.ts +26 -0
- package/src/lib/on$.d.ts.map +1 -0
- package/src/lib/on$.js +19 -0
- package/src/lib/on$.js.map +1 -0
- package/src/lib/portable-server-function.d.ts +68 -0
- package/src/lib/portable-server-function.d.ts.map +1 -0
- package/src/lib/portable-server-function.js +97 -0
- package/src/lib/portable-server-function.js.map +1 -0
- package/src/lib/preserved-resource.d.ts +4 -0
- package/src/lib/preserved-resource.d.ts.map +1 -0
- package/src/lib/preserved-resource.js +60 -0
- package/src/lib/preserved-resource.js.map +1 -0
- package/src/lib/primitive-method-runtime-context.d.ts +28 -0
- package/src/lib/primitive-method-runtime-context.d.ts.map +1 -0
- package/src/lib/primitive-method-runtime-context.js +38 -0
- package/src/lib/primitive-method-runtime-context.js.map +1 -0
- package/src/lib/primitive-resource-runtime-context.d.ts +46 -0
- package/src/lib/primitive-resource-runtime-context.d.ts.map +1 -0
- package/src/lib/primitive-resource-runtime-context.js +102 -0
- package/src/lib/primitive-resource-runtime-context.js.map +1 -0
- package/src/lib/query-params.d.ts +216 -0
- package/src/lib/query-params.d.ts.map +1 -0
- package/src/lib/query-params.js +324 -0
- package/src/lib/query-params.js.map +1 -0
- package/src/lib/query.core.d.ts +214 -0
- package/src/lib/query.core.d.ts.map +1 -0
- package/src/lib/query.core.js +210 -0
- package/src/lib/query.core.js.map +1 -0
- package/src/lib/query.d.ts +324 -0
- package/src/lib/query.d.ts.map +1 -0
- package/src/lib/query.js +971 -0
- package/src/lib/query.js.map +1 -0
- package/src/lib/reactive-read.d.ts +162 -0
- package/src/lib/reactive-read.d.ts.map +1 -0
- package/src/lib/reactive-read.js +389 -0
- package/src/lib/reactive-read.js.map +1 -0
- package/src/lib/resource-by-id.d.ts +71 -0
- package/src/lib/resource-by-id.d.ts.map +1 -0
- package/src/lib/resource-by-id.js +294 -0
- package/src/lib/resource-by-id.js.map +1 -0
- package/src/lib/resource-exception.d.ts +30 -0
- package/src/lib/resource-exception.d.ts.map +1 -0
- package/src/lib/resource-exception.js +86 -0
- package/src/lib/resource-exception.js.map +1 -0
- package/src/lib/route-checked-di.d.ts +229 -0
- package/src/lib/route-checked-di.d.ts.map +1 -0
- package/src/lib/route-checked-di.js +1 -0
- package/src/lib/route-checked-di.js.map +1 -0
- package/src/lib/schema-validation.d.ts +89 -0
- package/src/lib/schema-validation.d.ts.map +1 -0
- package/src/lib/schema-validation.js +110 -0
- package/src/lib/schema-validation.js.map +1 -0
- package/src/lib/send-context-to-ai.d.ts +20 -0
- package/src/lib/send-context-to-ai.d.ts.map +1 -0
- package/src/lib/send-context-to-ai.js +18 -0
- package/src/lib/send-context-to-ai.js.map +1 -0
- package/src/lib/send-context-to-ai.tokens.d.ts +12 -0
- package/src/lib/send-context-to-ai.tokens.d.ts.map +1 -0
- package/src/lib/send-context-to-ai.tokens.js +1 -0
- package/src/lib/send-context-to-ai.tokens.js.map +1 -0
- package/src/lib/server-function-client.d.ts +102 -0
- package/src/lib/server-function-client.d.ts.map +1 -0
- package/src/lib/server-function-client.js +106 -0
- package/src/lib/server-function-client.js.map +1 -0
- package/src/lib/server-function-contract.d.ts +42 -0
- package/src/lib/server-function-contract.d.ts.map +1 -0
- package/src/lib/server-function-contract.js +23 -0
- package/src/lib/server-function-contract.js.map +1 -0
- package/src/lib/server-function-middleware.d.ts +222 -0
- package/src/lib/server-function-middleware.d.ts.map +1 -0
- package/src/lib/server-function-middleware.js +189 -0
- package/src/lib/server-function-middleware.js.map +1 -0
- package/src/lib/server-function.d.ts +114 -0
- package/src/lib/server-function.d.ts.map +1 -0
- package/src/lib/server-function.js +80 -0
- package/src/lib/server-function.js.map +1 -0
- package/src/lib/server-layer.d.ts +185 -0
- package/src/lib/server-layer.d.ts.map +1 -0
- package/src/lib/server-layer.js +121 -0
- package/src/lib/server-layer.js.map +1 -0
- package/src/lib/server.d.ts +83 -0
- package/src/lib/server.d.ts.map +1 -0
- package/src/lib/server.js +266 -0
- package/src/lib/server.js.map +1 -0
- package/src/lib/setup-craft-service-test.d.ts +90 -0
- package/src/lib/setup-craft-service-test.d.ts.map +1 -0
- package/src/lib/setup-craft-service-test.js +193 -0
- package/src/lib/setup-craft-service-test.js.map +1 -0
- package/src/lib/setup-craft-service-testing-by-register.d.ts +245 -0
- package/src/lib/setup-craft-service-testing-by-register.d.ts.map +1 -0
- package/src/lib/setup-craft-service-testing-by-register.js +316 -0
- package/src/lib/setup-craft-service-testing-by-register.js.map +1 -0
- package/src/lib/signal-proxy.d.ts +21 -0
- package/src/lib/signal-proxy.d.ts.map +1 -0
- package/src/lib/signal-proxy.js +79 -0
- package/src/lib/signal-proxy.js.map +1 -0
- package/src/lib/signal-source.d.ts +392 -0
- package/src/lib/signal-source.d.ts.map +1 -0
- package/src/lib/signal-source.js +433 -0
- package/src/lib/signal-source.js.map +1 -0
- package/src/lib/source$.d.ts +121 -0
- package/src/lib/source$.d.ts.map +1 -0
- package/src/lib/source$.js +171 -0
- package/src/lib/source$.js.map +1 -0
- package/src/lib/source-from-event.d.ts +350 -0
- package/src/lib/source-from-event.d.ts.map +1 -0
- package/src/lib/source-from-event.js +26 -0
- package/src/lib/source-from-event.js.map +1 -0
- package/src/lib/stacked-source.d.ts +6 -0
- package/src/lib/stacked-source.d.ts.map +1 -0
- package/src/lib/stacked-source.js +29 -0
- package/src/lib/stacked-source.js.map +1 -0
- package/src/lib/standard-schema.d.ts +43 -0
- package/src/lib/standard-schema.d.ts.map +1 -0
- package/src/lib/standard-schema.js +1 -0
- package/src/lib/standard-schema.js.map +1 -0
- package/src/lib/state-method-runtime-context.d.ts +13 -0
- package/src/lib/state-method-runtime-context.d.ts.map +1 -0
- package/src/lib/state-method-runtime-context.js +11 -0
- package/src/lib/state-method-runtime-context.js.map +1 -0
- package/src/lib/state.d.ts +158 -0
- package/src/lib/state.d.ts.map +1 -0
- package/src/lib/state.js +388 -0
- package/src/lib/state.js.map +1 -0
- package/src/lib/storage-persister.service.d.ts +25 -0
- package/src/lib/storage-persister.service.d.ts.map +1 -0
- package/src/lib/storage-persister.service.js +27 -0
- package/src/lib/storage-persister.service.js.map +1 -0
- package/src/lib/take-app-snapshot.d.ts +31 -0
- package/src/lib/take-app-snapshot.d.ts.map +1 -0
- package/src/lib/take-app-snapshot.js +93 -0
- package/src/lib/take-app-snapshot.js.map +1 -0
- package/src/lib/template-trace.d.ts +37 -0
- package/src/lib/template-trace.d.ts.map +1 -0
- package/src/lib/template-trace.js +37 -0
- package/src/lib/template-trace.js.map +1 -0
- package/src/lib/temporal-runtime.d.ts +146 -0
- package/src/lib/temporal-runtime.d.ts.map +1 -0
- package/src/lib/temporal-runtime.js +375 -0
- package/src/lib/temporal-runtime.js.map +1 -0
- package/src/lib/to-source.d.ts +335 -0
- package/src/lib/to-source.d.ts.map +1 -0
- package/src/lib/to-source.js +359 -0
- package/src/lib/to-source.js.map +1 -0
- package/src/lib/util/craft-resource-ref.d.ts +29 -0
- package/src/lib/util/craft-resource-ref.d.ts.map +1 -0
- package/src/lib/util/craft-resource-ref.js +1 -0
- package/src/lib/util/craft-resource-ref.js.map +1 -0
- package/src/lib/util/craft-resource-status.d.ts +17 -0
- package/src/lib/util/craft-resource-status.d.ts.map +1 -0
- package/src/lib/util/craft-resource-status.js +14 -0
- package/src/lib/util/craft-resource-status.js.map +1 -0
- package/src/lib/util/entities-util.d.ts +340 -0
- package/src/lib/util/entities-util.d.ts.map +1 -0
- package/src/lib/util/entities-util.js +136 -0
- package/src/lib/util/entities-util.js.map +1 -0
- package/src/lib/util/explicit-effect.d.ts +42 -0
- package/src/lib/util/explicit-effect.d.ts.map +1 -0
- package/src/lib/util/explicit-effect.js +37 -0
- package/src/lib/util/explicit-effect.js.map +1 -0
- package/src/lib/util/extract-signal-props-and-methods.d.ts +20 -0
- package/src/lib/util/extract-signal-props-and-methods.d.ts.map +1 -0
- package/src/lib/util/extract-signal-props-and-methods.js +1 -0
- package/src/lib/util/extract-signal-props-and-methods.js.map +1 -0
- package/src/lib/util/method-trigger-nonce.d.ts +45 -0
- package/src/lib/util/method-trigger-nonce.d.ts.map +1 -0
- package/src/lib/util/method-trigger-nonce.js +58 -0
- package/src/lib/util/method-trigger-nonce.js.map +1 -0
- package/src/lib/util/persister.type.d.ts +37 -0
- package/src/lib/util/persister.type.d.ts.map +1 -0
- package/src/lib/util/persister.type.js +1 -0
- package/src/lib/util/persister.type.js.map +1 -0
- package/src/lib/util/persister.util.d.ts +8 -0
- package/src/lib/util/persister.util.d.ts.map +1 -0
- package/src/lib/util/persister.util.js +71 -0
- package/src/lib/util/persister.util.js.map +1 -0
- package/src/lib/util/react-on-mutation-effect.d.ts +16 -0
- package/src/lib/util/react-on-mutation-effect.d.ts.map +1 -0
- package/src/lib/util/react-on-mutation-effect.js +148 -0
- package/src/lib/util/react-on-mutation-effect.js.map +1 -0
- package/src/lib/util/resource-by-id-changes-tracker.util.d.ts +27 -0
- package/src/lib/util/resource-by-id-changes-tracker.util.d.ts.map +1 -0
- package/src/lib/util/resource-by-id-changes-tracker.util.js +97 -0
- package/src/lib/util/resource-by-id-changes-tracker.util.js.map +1 -0
- package/src/lib/util/source.type.d.ts +6 -0
- package/src/lib/util/source.type.d.ts.map +1 -0
- package/src/lib/util/source.type.js +1 -0
- package/src/lib/util/source.type.js.map +1 -0
- package/src/lib/util/types/access-type-object-property-by-dotted-path.type.d.ts +4 -0
- package/src/lib/util/types/access-type-object-property-by-dotted-path.type.d.ts.map +1 -0
- package/src/lib/util/types/access-type-object-property-by-dotted-path.type.js +1 -0
- package/src/lib/util/types/access-type-object-property-by-dotted-path.type.js.map +1 -0
- package/src/lib/util/types/boolean-or-mapper-fn-by-path-by-id.type.d.ts +27 -0
- package/src/lib/util/types/boolean-or-mapper-fn-by-path-by-id.type.d.ts.map +1 -0
- package/src/lib/util/types/boolean-or-mapper-fn-by-path-by-id.type.js +1 -0
- package/src/lib/util/types/boolean-or-mapper-fn-by-path-by-id.type.js.map +1 -0
- package/src/lib/util/types/boolean-or-mapper-fn-by-path.type.d.ts +24 -0
- package/src/lib/util/types/boolean-or-mapper-fn-by-path.type.d.ts.map +1 -0
- package/src/lib/util/types/boolean-or-mapper-fn-by-path.type.js +1 -0
- package/src/lib/util/types/boolean-or-mapper-fn-by-path.type.js.map +1 -0
- package/src/lib/util/types/brand.d.ts +7 -0
- package/src/lib/util/types/brand.d.ts.map +1 -0
- package/src/lib/util/types/brand.js +9 -0
- package/src/lib/util/types/brand.js.map +1 -0
- package/src/lib/util/types/object-deep-path-mapper.type.d.ts +13 -0
- package/src/lib/util/types/object-deep-path-mapper.type.d.ts.map +1 -0
- package/src/lib/util/types/object-deep-path-mapper.type.js +1 -0
- package/src/lib/util/types/object-deep-path-mapper.type.js.map +1 -0
- package/src/lib/util/types/resource-by-id-config.type.d.ts +115 -0
- package/src/lib/util/types/resource-by-id-config.type.d.ts.map +1 -0
- package/src/lib/util/types/resource-by-id-config.type.js +1 -0
- package/src/lib/util/types/resource-by-id-config.type.js.map +1 -0
- package/src/lib/util/types/resource-with-params-or-params-fn.type.d.ts +52 -0
- package/src/lib/util/types/resource-with-params-or-params-fn.type.d.ts.map +1 -0
- package/src/lib/util/types/resource-with-params-or-params-fn.type.js +1 -0
- package/src/lib/util/types/resource-with-params-or-params-fn.type.js.map +1 -0
- package/src/lib/util/types/shared.type.d.ts +66 -0
- package/src/lib/util/types/shared.type.d.ts.map +1 -0
- package/src/lib/util/types/shared.type.js +1 -0
- package/src/lib/util/types/shared.type.js.map +1 -0
- package/src/lib/util/types/util.d.ts +16 -0
- package/src/lib/util/types/util.d.ts.map +1 -0
- package/src/lib/util/types/util.js +60 -0
- package/src/lib/util/types/util.js.map +1 -0
- package/src/lib/util/types/util.type.d.ts +67 -0
- package/src/lib/util/types/util.type.d.ts.map +1 -0
- package/src/lib/util/types/util.type.js +5 -0
- package/src/lib/util/types/util.type.js.map +1 -0
- package/src/lib/util/update-state.util.d.ts +10 -0
- package/src/lib/util/update-state.util.d.ts.map +1 -0
- package/src/lib/util/update-state.util.js +31 -0
- package/src/lib/util/update-state.util.js.map +1 -0
- package/src/lib/util/util.d.ts +19 -0
- package/src/lib/util/util.d.ts.map +1 -0
- package/src/lib/util/util.js +50 -0
- package/src/lib/util/util.js.map +1 -0
- package/src/lib/util/util.type.d.ts +107 -0
- package/src/lib/util/util.type.d.ts.map +1 -0
- package/src/lib/util/util.type.js +9 -0
- package/src/lib/util/util.type.js.map +1 -0
- package/src/lib/yieldable.d.ts +94 -0
- package/src/lib/yieldable.d.ts.map +1 -0
- package/src/lib/yieldable.js +109 -0
- package/src/lib/yieldable.js.map +1 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal local copy of the Standard Schema V1 types used by Craft.
|
|
3
|
+
*
|
|
4
|
+
* Source: https://github.com/standard-schema/standard-schema/blob/main/packages/spec/src/index.ts
|
|
5
|
+
* The upstream project is distributed under the MIT license.
|
|
6
|
+
*
|
|
7
|
+
* Nested types used to live in `export namespace StandardSchemaV1`; that form
|
|
8
|
+
* is replaced by sibling interfaces so the package stays `erasableSyntaxOnly`.
|
|
9
|
+
*/
|
|
10
|
+
export interface StandardSchemaV1<Input = unknown, Output = Input> {
|
|
11
|
+
readonly '~standard': StandardSchemaV1Props<Input, Output>;
|
|
12
|
+
}
|
|
13
|
+
export interface StandardSchemaV1Props<Input = unknown, Output = Input> {
|
|
14
|
+
readonly version: 1;
|
|
15
|
+
readonly vendor: string;
|
|
16
|
+
readonly types?: StandardSchemaV1Types<Input, Output>;
|
|
17
|
+
readonly validate: (value: unknown, options?: StandardSchemaV1Options) => StandardSchemaV1Result<Output> | Promise<StandardSchemaV1Result<Output>>;
|
|
18
|
+
}
|
|
19
|
+
export interface StandardSchemaV1Types<Input = unknown, Output = Input> {
|
|
20
|
+
readonly input: Input;
|
|
21
|
+
readonly output: Output;
|
|
22
|
+
}
|
|
23
|
+
export interface StandardSchemaV1Options {
|
|
24
|
+
readonly libraryOptions?: Record<string, unknown>;
|
|
25
|
+
}
|
|
26
|
+
export type StandardSchemaV1Result<Output> = StandardSchemaV1SuccessResult<Output> | StandardSchemaV1FailureResult;
|
|
27
|
+
export interface StandardSchemaV1SuccessResult<Output> {
|
|
28
|
+
readonly value: Output;
|
|
29
|
+
readonly issues?: undefined;
|
|
30
|
+
}
|
|
31
|
+
export interface StandardSchemaV1FailureResult {
|
|
32
|
+
readonly issues: ReadonlyArray<StandardSchemaV1Issue>;
|
|
33
|
+
}
|
|
34
|
+
export interface StandardSchemaV1Issue {
|
|
35
|
+
readonly message: string;
|
|
36
|
+
readonly path?: ReadonlyArray<PropertyKey | StandardSchemaV1PathSegment>;
|
|
37
|
+
}
|
|
38
|
+
export interface StandardSchemaV1PathSegment {
|
|
39
|
+
readonly key: PropertyKey;
|
|
40
|
+
}
|
|
41
|
+
export type StandardSchemaV1InferInput<Schema extends StandardSchemaV1> = NonNullable<Schema['~standard']['types']>['input'];
|
|
42
|
+
export type StandardSchemaV1InferOutput<Schema extends StandardSchemaV1> = NonNullable<Schema['~standard']['types']>['output'];
|
|
43
|
+
//# sourceMappingURL=standard-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"standard-schema.d.ts","sourceRoot":"","sources":["../../../../../libs/core/src/lib/standard-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,KAAK;IAC/D,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,qBAAqB,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,KAAK;IACpE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACtD,QAAQ,CAAC,QAAQ,EAAE,CACjB,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,uBAAuB,KAC9B,sBAAsB,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC;CAC/E;AAED,MAAM,WAAW,qBAAqB,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,KAAK;IACpE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnD;AAED,MAAM,MAAM,sBAAsB,CAAC,MAAM,IACrC,6BAA6B,CAAC,MAAM,CAAC,GACrC,6BAA6B,CAAC;AAElC,MAAM,WAAW,6BAA6B,CAAC,MAAM;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;CAC7B;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;CACvD;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,WAAW,GAAG,2BAA2B,CAAC,CAAC;CAC1E;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;CAC3B;AAED,MAAM,MAAM,0BAA0B,CAAC,MAAM,SAAS,gBAAgB,IACpE,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAErD,MAAM,MAAM,2BAA2B,CAAC,MAAM,SAAS,gBAAgB,IACrE,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=standard-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"standard-schema.js","sourceRoot":"","sources":["../../../../../libs/core/src/lib/standard-schema.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Minimal local copy of the Standard Schema V1 types used by Craft.\n *\n * Source: https://github.com/standard-schema/standard-schema/blob/main/packages/spec/src/index.ts\n * The upstream project is distributed under the MIT license.\n *\n * Nested types used to live in `export namespace StandardSchemaV1`; that form\n * is replaced by sibling interfaces so the package stays `erasableSyntaxOnly`.\n */\nexport interface StandardSchemaV1<Input = unknown, Output = Input> {\n readonly '~standard': StandardSchemaV1Props<Input, Output>;\n}\n\nexport interface StandardSchemaV1Props<Input = unknown, Output = Input> {\n readonly version: 1;\n readonly vendor: string;\n readonly types?: StandardSchemaV1Types<Input, Output>;\n readonly validate: (\n value: unknown,\n options?: StandardSchemaV1Options,\n ) => StandardSchemaV1Result<Output> | Promise<StandardSchemaV1Result<Output>>;\n}\n\nexport interface StandardSchemaV1Types<Input = unknown, Output = Input> {\n readonly input: Input;\n readonly output: Output;\n}\n\nexport interface StandardSchemaV1Options {\n readonly libraryOptions?: Record<string, unknown>;\n}\n\nexport type StandardSchemaV1Result<Output> =\n | StandardSchemaV1SuccessResult<Output>\n | StandardSchemaV1FailureResult;\n\nexport interface StandardSchemaV1SuccessResult<Output> {\n readonly value: Output;\n readonly issues?: undefined;\n}\n\nexport interface StandardSchemaV1FailureResult {\n readonly issues: ReadonlyArray<StandardSchemaV1Issue>;\n}\n\nexport interface StandardSchemaV1Issue {\n readonly message: string;\n readonly path?: ReadonlyArray<PropertyKey | StandardSchemaV1PathSegment>;\n}\n\nexport interface StandardSchemaV1PathSegment {\n readonly key: PropertyKey;\n}\n\nexport type StandardSchemaV1InferInput<Schema extends StandardSchemaV1> =\n NonNullable<Schema['~standard']['types']>['input'];\n\nexport type StandardSchemaV1InferOutput<Schema extends StandardSchemaV1> =\n NonNullable<Schema['~standard']['types']>['output'];\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Provider, Signal } from './host/craft-compat';
|
|
2
|
+
import { type PrimitiveMethodRuntimeContext } from './primitive-method-runtime-context';
|
|
3
|
+
export type StateMethodRuntimeContext = PrimitiveMethodRuntimeContext<'state'>;
|
|
4
|
+
type StateInsertionContext = Readonly<{
|
|
5
|
+
state: Signal<unknown>;
|
|
6
|
+
set(value: unknown): unknown;
|
|
7
|
+
update(updater: (current: unknown) => unknown): unknown;
|
|
8
|
+
patch(updater: (current: unknown) => object): unknown;
|
|
9
|
+
}>;
|
|
10
|
+
export declare function injectStateMethodRuntimeContext(): StateMethodRuntimeContext | undefined;
|
|
11
|
+
export declare function ɵprovideStateMethodRuntimeContext(context: StateInsertionContext, originalFactory: (...args: never[]) => unknown): Provider;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=state-method-runtime-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-method-runtime-context.d.ts","sourceRoot":"","sources":["../../../../../libs/core/src/lib/state-method-runtime-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAGL,KAAK,6BAA6B,EACnC,MAAM,oCAAoC,CAAC;AAE5C,MAAM,MAAM,yBAAyB,GAAG,6BAA6B,CAAC,OAAO,CAAC,CAAC;AAE/E,KAAK,qBAAqB,GAAG,QAAQ,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACvB,GAAG,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;IAC7B,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,GAAG,OAAO,CAAC;IACxD,KAAK,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,GAAG,OAAO,CAAC;CACvD,CAAC,CAAC;AAEH,wBAAgB,+BAA+B,IAC3C,yBAAyB,GACzB,SAAS,CAKZ;AAED,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,qBAAqB,EAC9B,eAAe,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,GAC7C,QAAQ,CAMV"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { injectPrimitiveMethodRuntimeContext, ɵprovidePrimitiveMethodRuntimeContext, } from './primitive-method-runtime-context';
|
|
2
|
+
export function injectStateMethodRuntimeContext() {
|
|
3
|
+
const context = injectPrimitiveMethodRuntimeContext();
|
|
4
|
+
return context?.kind === 'state'
|
|
5
|
+
? context
|
|
6
|
+
: undefined;
|
|
7
|
+
}
|
|
8
|
+
export function ɵprovideStateMethodRuntimeContext(context, originalFactory) {
|
|
9
|
+
return ɵprovidePrimitiveMethodRuntimeContext('state', context, originalFactory);
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=state-method-runtime-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-method-runtime-context.js","sourceRoot":"","sources":["../../../../../libs/core/src/lib/state-method-runtime-context.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mCAAmC,EACnC,qCAAqC,GAEtC,MAAM,oCAAoC,CAAC;AAW5C,MAAM,UAAU,+BAA+B;IAG7C,MAAM,OAAO,GAAG,mCAAmC,EAAE,CAAC;IACtD,OAAO,OAAO,EAAE,IAAI,KAAK,OAAO;QAC9B,CAAC,CAAE,OAAqC;QACxC,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,OAA8B,EAC9B,eAA8C;IAE9C,OAAO,qCAAqC,CAC1C,OAAO,EACP,OAAO,EACP,eAAe,CAChB,CAAC;AACJ,CAAC","sourcesContent":["import type { Provider, Signal } from './host/craft-compat';\nimport {\n injectPrimitiveMethodRuntimeContext,\n ɵprovidePrimitiveMethodRuntimeContext,\n type PrimitiveMethodRuntimeContext,\n} from './primitive-method-runtime-context';\n\nexport type StateMethodRuntimeContext = PrimitiveMethodRuntimeContext<'state'>;\n\ntype StateInsertionContext = Readonly<{\n state: Signal<unknown>;\n set(value: unknown): unknown;\n update(updater: (current: unknown) => unknown): unknown;\n patch(updater: (current: unknown) => object): unknown;\n}>;\n\nexport function injectStateMethodRuntimeContext():\n | StateMethodRuntimeContext\n | undefined {\n const context = injectPrimitiveMethodRuntimeContext();\n return context?.kind === 'state'\n ? (context as StateMethodRuntimeContext)\n : undefined;\n}\n\nexport function ɵprovideStateMethodRuntimeContext(\n context: StateInsertionContext,\n originalFactory: (...args: never[]) => unknown,\n): Provider {\n return ɵprovidePrimitiveMethodRuntimeContext(\n 'state',\n context,\n originalFactory,\n );\n}\n"]}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { type Provider, Signal } from './host/craft-compat';
|
|
2
|
+
import { type CraftSignal } from './host/craft-signal';
|
|
3
|
+
import { InsertionsStateFactory } from './query.core';
|
|
4
|
+
import { type CraftPrimitiveGen, type NamedPrimitive } from './craft-primitive-gen';
|
|
5
|
+
import type { BrandedServiceProvider, MergeServiceDependencyMaps, SERVICE_HELPER_DEPENDENCIES, ServiceDependencyMapFromValues, ServiceDependencyMapFromYielded } from './craft-service';
|
|
6
|
+
import { Source$ as SourceDollarType } from './source$';
|
|
7
|
+
import { MergeObject } from './util/types/util.type';
|
|
8
|
+
import { FilterSource, IsEmptyObject } from './util/util.type';
|
|
9
|
+
import { type BrandReactiveProperties, type YieldableInsertionMethods } from './yieldable';
|
|
10
|
+
import type { StandardSchemaV1InferInput, StandardSchemaV1InferOutput } from './standard-schema';
|
|
11
|
+
import { type CraftSchema, type SchemaValidationPolicy } from './schema-validation';
|
|
12
|
+
import type { AnyCraftException } from './craft-exception';
|
|
13
|
+
import { DEEP_YIELDABLE_INSERTION, type DeepYieldableReaderOf, type YieldableReactiveValue } from './reactive-read';
|
|
14
|
+
type Source$Method<SourceType> = [SourceType] extends [void] ? () => Generator<never, void, unknown> : (value: SourceType) => Generator<never, void, unknown>;
|
|
15
|
+
export type ExposedStateInsertions<Insertions> = YieldableInsertionMethods<MergeObject<IsEmptyObject<Insertions> extends true ? {} : FilterSource<Insertions>, {
|
|
16
|
+
[K in keyof FilterSource<Insertions> as FilterSource<Insertions>[K] extends SourceDollarType<any> ? K : never]: FilterSource<Insertions>[K] extends SourceDollarType<infer SourceType> ? Source$Method<SourceType> : never;
|
|
17
|
+
}>>;
|
|
18
|
+
type StateReader<StateType, Insertions, Deep extends boolean = false, Name extends string = string> = Deep extends true ? DeepYieldableReaderOf<YieldableReactiveValue<StateType, Name>> : Insertions extends {
|
|
19
|
+
readonly [DEEP_YIELDABLE_INSERTION]: true;
|
|
20
|
+
} ? DeepYieldableReaderOf<YieldableReactiveValue<StateType, Name>> : YieldableReactiveValue<StateType, Name>;
|
|
21
|
+
export type StateOutput<StateType, Insertions, Dependencies = {}, HasSchema extends boolean = false, Deep extends boolean = false, Name extends string = string> = HasSchema extends true ? MergeObject<StateReader<StateType, Insertions, Deep, Name>, MergeObject<BrandReactiveProperties<ExposedStateInsertions<Insertions>>, {
|
|
22
|
+
readonly hasSchema: YieldableReactiveValue<true, 'hasSchema'>;
|
|
23
|
+
readonly hasException: YieldableReactiveValue<boolean, 'hasException'>;
|
|
24
|
+
readonly exceptions: YieldableReactiveValue<{
|
|
25
|
+
list: AnyCraftException[];
|
|
26
|
+
parse: {
|
|
27
|
+
state?: AnyCraftException;
|
|
28
|
+
};
|
|
29
|
+
}, 'exceptions'>;
|
|
30
|
+
readonly [SERVICE_HELPER_DEPENDENCIES]?: Dependencies;
|
|
31
|
+
}>> : MergeObject<StateReader<StateType, Insertions, Deep, Name>, MergeObject<BrandReactiveProperties<ExposedStateInsertions<Insertions>>, {
|
|
32
|
+
readonly [SERVICE_HELPER_DEPENDENCIES]?: Dependencies;
|
|
33
|
+
}>>;
|
|
34
|
+
export type StateSchemaConfig<Schema extends CraftSchema> = {
|
|
35
|
+
readonly $self: StandardSchemaV1InferInput<Schema> | Signal<StandardSchemaV1InferInput<Schema>>;
|
|
36
|
+
readonly schema: Schema;
|
|
37
|
+
readonly providers?: readonly Provider[];
|
|
38
|
+
readonly schemaValidationPolicy?: SchemaValidationPolicy;
|
|
39
|
+
};
|
|
40
|
+
type ResolvedStateType<StateInput> = StateInput extends {
|
|
41
|
+
readonly $self: infer V;
|
|
42
|
+
} ? ResolvedStateType<V> : StateInput extends Signal<infer State> ? State : StateInput extends CraftSignal<infer State> ? State : StateInput extends (...args: any[]) => Generator<any, infer Output, unknown> ? ResolvedStateType<Output> : StateInput;
|
|
43
|
+
type StateConfigYielded<StateInput> = StateInput extends {
|
|
44
|
+
readonly $self: infer V;
|
|
45
|
+
} ? StateConfigYielded<V> : StateInput extends (...args: any[]) => Generator<infer Yielded, any, unknown> ? Yielded : never;
|
|
46
|
+
type StateInputProviderNames<StateInput> = StateInput extends {
|
|
47
|
+
readonly $self: any;
|
|
48
|
+
readonly providers: readonly (infer P)[];
|
|
49
|
+
} ? P extends BrandedServiceProvider<infer Name, any, any> ? Name : never : never;
|
|
50
|
+
type SatisfyDependencies<Deps, SatisfiedNames extends string> = {
|
|
51
|
+
[K in keyof Deps as K extends SatisfiedNames ? never : K]: Deps[K];
|
|
52
|
+
};
|
|
53
|
+
type StateTrackedDependencies<StateInput = never, InsertionsYielded = never, Insertions = never> = [StateInputProviderNames<StateInput>] extends [never] ? MergeServiceDependencyMaps<ServiceDependencyMapFromYielded<StateConfigYielded<StateInput> | InsertionsYielded>, ServiceDependencyMapFromValues<Insertions>> : SatisfyDependencies<MergeServiceDependencyMaps<ServiceDependencyMapFromYielded<StateConfigYielded<StateInput> | InsertionsYielded>, ServiceDependencyMapFromValues<Insertions>>, StateInputProviderNames<StateInput>>;
|
|
54
|
+
/**
|
|
55
|
+
* Creates a signal state with an optional insertion for adding methods and computed properties.
|
|
56
|
+
*
|
|
57
|
+
* The `state` function allows you to create a Signal-based state that can be extended with custom
|
|
58
|
+
* methods and properties through an insertion. The insertion receives a context object with
|
|
59
|
+
* `state`, `set` and `update` methods. Compose several insertions with
|
|
60
|
+
* `insertStatePipe(insertion1, insertion2)`.
|
|
61
|
+
*
|
|
62
|
+
* @remarks
|
|
63
|
+
* For the best TypeScript inference, pass Angular `Signal` values (e.g. `signal`, `linkedSignal`)
|
|
64
|
+
* rather than manually widening to `WritableSignal`. This avoids some overload inference limits
|
|
65
|
+
* and keeps the public state read-only.
|
|
66
|
+
*
|
|
67
|
+
* @param name - The state name. Used for host tagging and reactive branding
|
|
68
|
+
* (`const counter = yield* state('counter', 0)`) and as the injector host
|
|
69
|
+
* tag (`state:counter`), so the state is precisely locatable in snapshots and logs.
|
|
70
|
+
* @param stateConfig - The initial state value or a Signal (e.g., linkedSignal)
|
|
71
|
+
* @param insertion1 - Optional single insertion factory to extend the state with methods and properties
|
|
72
|
+
* @returns A single-use primitive generator resolving to the state Signal
|
|
73
|
+
* merged with all insertion properties
|
|
74
|
+
* and methods. Consume it with `yield*`
|
|
75
|
+
* inside a generator host (craftService factory, craftGen, …) or with
|
|
76
|
+
* `craftUse(...)` elsewhere (typically a component field).
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* // Simple state with a primitive value (component field)
|
|
80
|
+
* const counter = craftUse(state('counter', 0));
|
|
81
|
+
* console.log(counter()); // 0
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* // Inside a craftService generator factory
|
|
85
|
+
* const { Counter } = craftService(
|
|
86
|
+
* { name: 'Counter', providedIn: 'global' },
|
|
87
|
+
* function* () {
|
|
88
|
+
* const counter = yield* state('counter', 0);
|
|
89
|
+
* return { counter };
|
|
90
|
+
* },
|
|
91
|
+
* );
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* // State with a computed
|
|
95
|
+
* const origin = signal(5);
|
|
96
|
+
* const doubled = craftUse(state('doubled', computed(() => origin() * 2)));
|
|
97
|
+
* console.log(doubled()); // 10
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* // State with insertions to add methods (Method-based)
|
|
101
|
+
* const origin = signal(5);
|
|
102
|
+
* const counter = craftUse(state(
|
|
103
|
+
* 'counter',
|
|
104
|
+
* computed(() => origin() * 2),
|
|
105
|
+
* ({ update, set }) => ({
|
|
106
|
+
* increment: () => update((current) => current + 1),
|
|
107
|
+
* reset: () => set(0),
|
|
108
|
+
* })
|
|
109
|
+
* ));
|
|
110
|
+
* console.log(counter()); // 10
|
|
111
|
+
* craftUse(counter.increment());
|
|
112
|
+
* console.log(counter()); // 11
|
|
113
|
+
* craftUse(counter.reset());
|
|
114
|
+
* console.log(counter()); // 0
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* // State with multiple insertions, composed with insertStatePipe
|
|
118
|
+
* const origin = signal(5);
|
|
119
|
+
* const counterDouble = craftUse(state(
|
|
120
|
+
* 'counterDouble',
|
|
121
|
+
* computed(() => origin() * 2),
|
|
122
|
+
* insertStatePipe(
|
|
123
|
+
* ({ update, set }) => ({
|
|
124
|
+
* increment: () => update((current) => current + 1),
|
|
125
|
+
* reset: () => set(0),
|
|
126
|
+
* }),
|
|
127
|
+
* ({ state }) => ({
|
|
128
|
+
* isOdd: computed(() => state() % 2 === 1),
|
|
129
|
+
* }),
|
|
130
|
+
* ),
|
|
131
|
+
* ));
|
|
132
|
+
* console.log(counterDouble()); // 10
|
|
133
|
+
* console.log(counterDouble.isOdd()); // false
|
|
134
|
+
* craftUse(counterDouble.increment());
|
|
135
|
+
* console.log(counterDouble()); // 11
|
|
136
|
+
* console.log(counterDouble.isOdd()); // true
|
|
137
|
+
*
|
|
138
|
+
* @example
|
|
139
|
+
* // State with source binding (Event-based)
|
|
140
|
+
* const increment = source$<void>('increment');
|
|
141
|
+
* const reset = source$<void>('reset');
|
|
142
|
+
* const myState = craftUse(state('myState', 0, ({ update, set }) => ({
|
|
143
|
+
* setValue: on$(increment, () => update(value => value + 1)),
|
|
144
|
+
* reset: () => on$(reset, () => set(0)),
|
|
145
|
+
* })));
|
|
146
|
+
* console.log(myState()); // 0
|
|
147
|
+
* // Note: setValue is not exposed on myState, only used internally
|
|
148
|
+
* increment.emit();
|
|
149
|
+
* console.log(myState()); // 34
|
|
150
|
+
* reset.emit();
|
|
151
|
+
* console.log(myState()); // 0
|
|
152
|
+
*/
|
|
153
|
+
export declare function state<StateInput>(stateConfig: StateInput): CraftPrimitiveGen<StateOutput<ResolvedStateType<StateInput>, {}, StateTrackedDependencies<StateInput>>>;
|
|
154
|
+
export declare function state<Name extends string, Schema extends CraftSchema>(name: Name, stateConfig: StateSchemaConfig<Schema>): CraftPrimitiveGen<NamedPrimitive<Name, StateOutput<StandardSchemaV1InferOutput<Schema>, {}, {}, true, false, Name>>>;
|
|
155
|
+
export declare function state<Name extends string, StateInput>(name: Name, stateConfig: StateInput): CraftPrimitiveGen<NamedPrimitive<Name, StateOutput<ResolvedStateType<StateInput>, {}, StateTrackedDependencies<StateInput>, false, false, Name>>>;
|
|
156
|
+
export declare function state<Name extends string, StateInput, Insertion1, Insertion1Yielded = never>(name: Name, stateConfig: StateInput, insertion1: InsertionsStateFactory<NoInfer<ResolvedStateType<StateInput>>, Insertion1, {}, Insertion1Yielded>): CraftPrimitiveGen<NamedPrimitive<Name, StateOutput<ResolvedStateType<StateInput>, Insertion1, StateTrackedDependencies<StateInput, Insertion1Yielded, Insertion1>, false, false, Name>>>;
|
|
157
|
+
export {};
|
|
158
|
+
//# sourceMappingURL=state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../../../libs/core/src/lib/state.ts"],"names":[],"mappings":"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"}
|
package/src/lib/state.js
ADDED
|
@@ -0,0 +1,388 @@
|
|
|
1
|
+
import { assertInInjectionContext, DestroyRef, inject, Injector, isSignal, isWritableSignal, linkedSignal, runInInjectionContext, } from './host/craft-compat';
|
|
2
|
+
import { takeUntilDestroyed } from './host/craft-compat';
|
|
3
|
+
const UNSET_ANGULAR_STATE = Symbol('unset-angular-state');
|
|
4
|
+
import { craftComputed, craftLinkedSignal, craftSignal, isCraftSignal, } from './host/craft-signal';
|
|
5
|
+
import { createNamedPrimitiveGen, createPrimitiveGen, } from './craft-primitive-gen';
|
|
6
|
+
import { isGenerator, runCraftGenerator } from './craft-generator-runtime';
|
|
7
|
+
import { injectFnWrapper } from './fn-wrapper';
|
|
8
|
+
import { ɵcreateHostTaggedInjector, ɵHOST_TAG_LIST } from './craft-service';
|
|
9
|
+
import { APP_SNAPSHOT_REGISTRY, INSERTION_SNAPSHOT_REGISTRY, InsertionSnapshotRegistry, triggerAndCollectInsertions, } from './take-app-snapshot';
|
|
10
|
+
import { isSource } from './util/util';
|
|
11
|
+
import { ɵprovideStateMethodRuntimeContext } from './state-method-runtime-context';
|
|
12
|
+
import { ɵregisterCraftPrimitive } from './craft-primitive-registry';
|
|
13
|
+
import { createYieldableInsertionMethod, isNonYieldableInsertionMethod, yieldableInvocation, } from './yieldable';
|
|
14
|
+
import { decideSchemaValidation, parseSchema, useSchemaValidationPolicy, } from './schema-validation';
|
|
15
|
+
import { createYieldableReactiveFacade, createYieldableReactiveValue, deepYieldable, hasDeepYieldableInsertion, DEEP_YIELDABLE_INSERTION, isYieldableReactiveValue, nameInsertedReactiveValue, } from './reactive-read';
|
|
16
|
+
const createLinkedSignalWithOptions = craftLinkedSignal;
|
|
17
|
+
const createCraftLinkedSignalWithOptions = linkedSignal;
|
|
18
|
+
const STATE_INVALID_YIELD_ERROR_MESSAGE = 'state generators can only yield craftService dependencies or exposed dependency helpers.';
|
|
19
|
+
const STATE_APP_START_ERROR_MESSAGE = 'state generators do not support onAppStart(...).';
|
|
20
|
+
function isSource$(value) {
|
|
21
|
+
return (typeof value === 'object' &&
|
|
22
|
+
value !== null &&
|
|
23
|
+
'emit' in value &&
|
|
24
|
+
typeof value.emit === 'function' &&
|
|
25
|
+
'subscribe' in value &&
|
|
26
|
+
typeof value.subscribe === 'function');
|
|
27
|
+
}
|
|
28
|
+
function isGeneratorFunction(value) {
|
|
29
|
+
return (typeof value === 'function' &&
|
|
30
|
+
(value.constructor?.name === 'GeneratorFunction' ||
|
|
31
|
+
Object.prototype.toString.call(value) === '[object GeneratorFunction]'));
|
|
32
|
+
}
|
|
33
|
+
function executeStateFactory(factory, thisArg, getInjector, ...args) {
|
|
34
|
+
const injector = getInjector();
|
|
35
|
+
const wrappedFactory = runInInjectionContext(injector, () => injectFnWrapper()(factory));
|
|
36
|
+
const result = wrappedFactory.apply(thisArg, args);
|
|
37
|
+
if (!isGenerator(result)) {
|
|
38
|
+
return result;
|
|
39
|
+
}
|
|
40
|
+
return runInInjectionContext(injector, () => {
|
|
41
|
+
return runCraftGenerator({
|
|
42
|
+
iterator: result,
|
|
43
|
+
injector,
|
|
44
|
+
hostScope: 'function',
|
|
45
|
+
invalidYieldErrorMessage: STATE_INVALID_YIELD_ERROR_MESSAGE,
|
|
46
|
+
multipleAppStartErrorMessage: STATE_APP_START_ERROR_MESSAGE,
|
|
47
|
+
onAppStartNotSupportedErrorMessage: STATE_APP_START_ERROR_MESSAGE,
|
|
48
|
+
}).value;
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
export function state(nameOrStateConfig,
|
|
52
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
53
|
+
stateConfig,
|
|
54
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
55
|
+
...insertions
|
|
56
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
57
|
+
) {
|
|
58
|
+
const isNamed = typeof nameOrStateConfig === 'string' && arguments.length >= 2;
|
|
59
|
+
const name = isNamed ? nameOrStateConfig : 'state';
|
|
60
|
+
const config = isNamed ? stateConfig : nameOrStateConfig;
|
|
61
|
+
const ref = createStateRef(name, config, ...(isNamed ? insertions : []));
|
|
62
|
+
return isNamed ? createNamedPrimitiveGen(name, ref) : createPrimitiveGen(ref);
|
|
63
|
+
}
|
|
64
|
+
function createStateRef(name,
|
|
65
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
66
|
+
stateConfig,
|
|
67
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
68
|
+
...insertions
|
|
69
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
70
|
+
) {
|
|
71
|
+
const insertionSnapshotRegistry = new InsertionSnapshotRegistry();
|
|
72
|
+
const hasSelfConfig = typeof stateConfig === 'object' &&
|
|
73
|
+
stateConfig !== null &&
|
|
74
|
+
'$self' in stateConfig;
|
|
75
|
+
const extraProviders = hasSelfConfig ? (stateConfig.providers ?? []) : [];
|
|
76
|
+
const rawConfig = hasSelfConfig ? stateConfig.$self : stateConfig;
|
|
77
|
+
const schema = hasSelfConfig
|
|
78
|
+
? stateConfig.schema
|
|
79
|
+
: undefined;
|
|
80
|
+
const localSchemaPolicy = hasSelfConfig
|
|
81
|
+
? stateConfig.schemaValidationPolicy
|
|
82
|
+
: undefined;
|
|
83
|
+
let baseInjector;
|
|
84
|
+
try {
|
|
85
|
+
baseInjector = inject(Injector);
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
// A state can still be constructed outside an injection context when no
|
|
89
|
+
// generator/schema work needs the injector until it is read.
|
|
90
|
+
}
|
|
91
|
+
const getBaseInjector = () => (baseInjector ??= (() => {
|
|
92
|
+
assertInInjectionContext(state);
|
|
93
|
+
return inject(Injector);
|
|
94
|
+
})());
|
|
95
|
+
let injector;
|
|
96
|
+
const getInjector = () => {
|
|
97
|
+
injector ??= ɵcreateHostTaggedInjector(getBaseInjector(), `state:${name}`, [
|
|
98
|
+
{
|
|
99
|
+
provide: INSERTION_SNAPSHOT_REGISTRY,
|
|
100
|
+
useValue: insertionSnapshotRegistry,
|
|
101
|
+
},
|
|
102
|
+
...extraProviders,
|
|
103
|
+
]);
|
|
104
|
+
return injector;
|
|
105
|
+
};
|
|
106
|
+
const resolvedStateConfig = isGeneratorFunction(rawConfig)
|
|
107
|
+
? executeStateFactory(rawConfig, undefined, getInjector)
|
|
108
|
+
: rawConfig;
|
|
109
|
+
const isSignalState = isCraftSignal(resolvedStateConfig) || isSignal(resolvedStateConfig);
|
|
110
|
+
const isAngularSignalState = isSignal(resolvedStateConfig) && !isCraftSignal(resolvedStateConfig);
|
|
111
|
+
const isCraftWritableState = isCraftSignal(resolvedStateConfig) &&
|
|
112
|
+
typeof Reflect.get(resolvedStateConfig, 'set') === 'function';
|
|
113
|
+
const readResolvedState = () => resolvedStateConfig();
|
|
114
|
+
const wrapAngularReadonlyState = () => {
|
|
115
|
+
const override = craftSignal(UNSET_ANGULAR_STATE);
|
|
116
|
+
const value = (() => {
|
|
117
|
+
const local = override();
|
|
118
|
+
return local === UNSET_ANGULAR_STATE
|
|
119
|
+
? readResolvedState()
|
|
120
|
+
: local;
|
|
121
|
+
});
|
|
122
|
+
value.set = (next) => {
|
|
123
|
+
override.set(next);
|
|
124
|
+
};
|
|
125
|
+
value.update = (updateFn) => value.set(updateFn(value()));
|
|
126
|
+
value.asReadonly = () => value;
|
|
127
|
+
return value;
|
|
128
|
+
};
|
|
129
|
+
let lastValidState;
|
|
130
|
+
let latestStateException;
|
|
131
|
+
let skipInitialSourceValidation = isSignalState;
|
|
132
|
+
const applySchema = (value, operation) => {
|
|
133
|
+
if (!schema) {
|
|
134
|
+
return value;
|
|
135
|
+
}
|
|
136
|
+
if (operation === 'source' && skipInitialSourceValidation) {
|
|
137
|
+
skipInitialSourceValidation = false;
|
|
138
|
+
return lastValidState;
|
|
139
|
+
}
|
|
140
|
+
const parsed = parseSchema(schema, value, {
|
|
141
|
+
primitive: 'state',
|
|
142
|
+
name,
|
|
143
|
+
stage: 'state',
|
|
144
|
+
operation,
|
|
145
|
+
});
|
|
146
|
+
if (parsed instanceof Promise) {
|
|
147
|
+
// Signals are synchronous. Async Standard Schema implementations are
|
|
148
|
+
// supported by the resource primitives, but cannot safely publish a
|
|
149
|
+
// pending state value.
|
|
150
|
+
return lastValidState;
|
|
151
|
+
}
|
|
152
|
+
const decision = decideSchemaValidation(parsed, {
|
|
153
|
+
primitive: 'state',
|
|
154
|
+
name,
|
|
155
|
+
stage: 'state',
|
|
156
|
+
operation,
|
|
157
|
+
}, useSchemaValidationPolicy(getInjector(), localSchemaPolicy));
|
|
158
|
+
if (!decision.accepted) {
|
|
159
|
+
latestStateException = decision.exception;
|
|
160
|
+
return lastValidState;
|
|
161
|
+
}
|
|
162
|
+
latestStateException = undefined;
|
|
163
|
+
lastValidState = decision.value;
|
|
164
|
+
return lastValidState;
|
|
165
|
+
};
|
|
166
|
+
const initialStateValue = applySchema(isSignalState ? readResolvedState() : resolvedStateConfig, 'initial');
|
|
167
|
+
const stateSignal = !schema && isSignalState
|
|
168
|
+
? isWritableSignal(resolvedStateConfig) || isCraftWritableState
|
|
169
|
+
? resolvedStateConfig
|
|
170
|
+
: isAngularSignalState
|
|
171
|
+
? wrapAngularReadonlyState()
|
|
172
|
+
: craftLinkedSignal({
|
|
173
|
+
source: readResolvedState,
|
|
174
|
+
computation: () => readResolvedState(),
|
|
175
|
+
})
|
|
176
|
+
: isSignalState
|
|
177
|
+
? isAngularSignalState
|
|
178
|
+
? createCraftLinkedSignalWithOptions({
|
|
179
|
+
source: readResolvedState,
|
|
180
|
+
computation: () => applySchema(readResolvedState(), 'source'),
|
|
181
|
+
equal: () => false,
|
|
182
|
+
})
|
|
183
|
+
: createLinkedSignalWithOptions({
|
|
184
|
+
source: readResolvedState,
|
|
185
|
+
computation: () => applySchema(readResolvedState(), 'source'),
|
|
186
|
+
equal: () => false,
|
|
187
|
+
})
|
|
188
|
+
: craftSignal(initialStateValue);
|
|
189
|
+
const readonlyStateSignal = isAngularSignalState &&
|
|
190
|
+
!(isWritableSignal(resolvedStateConfig) || isCraftWritableState)
|
|
191
|
+
? stateSignal
|
|
192
|
+
: isCraftSignal(stateSignal)
|
|
193
|
+
? craftComputed(() => stateSignal())
|
|
194
|
+
: 'asReadonly' in stateSignal &&
|
|
195
|
+
typeof stateSignal.asReadonly ===
|
|
196
|
+
'function'
|
|
197
|
+
? stateSignal.asReadonly()
|
|
198
|
+
: stateSignal;
|
|
199
|
+
const publicStateReader = createYieldableReactiveValue(readonlyStateSignal, name, { primitive: 'state', path: name });
|
|
200
|
+
const originalSet = stateSignal.set.bind(stateSignal);
|
|
201
|
+
const setState = (newState) => {
|
|
202
|
+
if (!schema) {
|
|
203
|
+
originalSet(newState);
|
|
204
|
+
return newState;
|
|
205
|
+
}
|
|
206
|
+
const next = applySchema(newState, 'set');
|
|
207
|
+
if (!latestStateException) {
|
|
208
|
+
originalSet(next);
|
|
209
|
+
}
|
|
210
|
+
return next;
|
|
211
|
+
};
|
|
212
|
+
const updateState = (updateFn) => {
|
|
213
|
+
if (!schema) {
|
|
214
|
+
const next = updateFn(stateSignal());
|
|
215
|
+
originalSet(next);
|
|
216
|
+
return next;
|
|
217
|
+
}
|
|
218
|
+
const next = applySchema(updateFn(stateSignal()), 'update');
|
|
219
|
+
if (!latestStateException) {
|
|
220
|
+
originalSet(next);
|
|
221
|
+
}
|
|
222
|
+
return next;
|
|
223
|
+
};
|
|
224
|
+
if (schema) {
|
|
225
|
+
stateSignal.set = setState;
|
|
226
|
+
stateSignal.update = updateState;
|
|
227
|
+
}
|
|
228
|
+
const insertionsOutput = insertions.reduce((acc, insert) => {
|
|
229
|
+
const insertionContext = {
|
|
230
|
+
state: publicStateReader,
|
|
231
|
+
set: (newState) => yieldableInvocation(setState(newState)),
|
|
232
|
+
update: (updateFn) => yieldableInvocation(updateState(updateFn)),
|
|
233
|
+
patch: (patchFn) => yieldableInvocation(updateState((current) => ({
|
|
234
|
+
...current,
|
|
235
|
+
...patchFn(current),
|
|
236
|
+
}))),
|
|
237
|
+
insertions: Object.entries(acc.rawInsertionsOutput).reduce((previous, [key, value]) => {
|
|
238
|
+
if (isSource$(value))
|
|
239
|
+
previous[key] = value;
|
|
240
|
+
return previous;
|
|
241
|
+
}, { ...acc.exposedInsertionsOutput }),
|
|
242
|
+
};
|
|
243
|
+
const nextRawInsertions = executeStateFactory(insert, undefined, getBaseInjector, insertionContext);
|
|
244
|
+
const nextExposedInsertions = Object.entries(nextRawInsertions).reduce((exposedAcc, [key, value]) => {
|
|
245
|
+
if (isSource(value)) {
|
|
246
|
+
return exposedAcc;
|
|
247
|
+
}
|
|
248
|
+
if (isSource$(value)) {
|
|
249
|
+
const localSource = value;
|
|
250
|
+
const sourceInjector = ɵcreateHostTaggedInjector(getInjector(), `source:${key}`);
|
|
251
|
+
const wrappedEmit = runInInjectionContext(sourceInjector, () => injectFnWrapper()((payload) => localSource.emit(payload)));
|
|
252
|
+
exposedAcc[key] = createYieldableInsertionMethod((payload) => wrappedEmit(payload), {
|
|
253
|
+
injector: sourceInjector,
|
|
254
|
+
invalidYieldErrorMessage: STATE_INVALID_YIELD_ERROR_MESSAGE,
|
|
255
|
+
multipleAppStartErrorMessage: STATE_APP_START_ERROR_MESSAGE,
|
|
256
|
+
onAppStartNotSupportedErrorMessage: STATE_APP_START_ERROR_MESSAGE,
|
|
257
|
+
});
|
|
258
|
+
return exposedAcc;
|
|
259
|
+
}
|
|
260
|
+
if (isYieldableReactiveValue(value)) {
|
|
261
|
+
exposedAcc[key] = nameInsertedReactiveValue(value, key, 'state', `${name}.${key}`);
|
|
262
|
+
return exposedAcc;
|
|
263
|
+
}
|
|
264
|
+
if (typeof value === 'function' &&
|
|
265
|
+
!isCraftSignal(value) &&
|
|
266
|
+
!isSignal(value) &&
|
|
267
|
+
!isYieldableReactiveValue(value) &&
|
|
268
|
+
!isNonYieldableInsertionMethod(value)) {
|
|
269
|
+
const methodInjector = ɵcreateHostTaggedInjector(getInjector(), `method:${key}`, [
|
|
270
|
+
ɵprovideStateMethodRuntimeContext(insertionContext, value),
|
|
271
|
+
]);
|
|
272
|
+
const wrappedFn = runInInjectionContext(methodInjector, () => injectFnWrapper()(value));
|
|
273
|
+
exposedAcc[key] = createYieldableInsertionMethod(wrappedFn, {
|
|
274
|
+
injector: methodInjector,
|
|
275
|
+
invalidYieldErrorMessage: STATE_INVALID_YIELD_ERROR_MESSAGE,
|
|
276
|
+
multipleAppStartErrorMessage: STATE_APP_START_ERROR_MESSAGE,
|
|
277
|
+
onAppStartNotSupportedErrorMessage: STATE_APP_START_ERROR_MESSAGE,
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
else {
|
|
281
|
+
exposedAcc[key] = value;
|
|
282
|
+
}
|
|
283
|
+
return exposedAcc;
|
|
284
|
+
}, {});
|
|
285
|
+
return {
|
|
286
|
+
rawInsertionsOutput: {
|
|
287
|
+
...acc.rawInsertionsOutput,
|
|
288
|
+
...nextRawInsertions,
|
|
289
|
+
},
|
|
290
|
+
exposedInsertionsOutput: {
|
|
291
|
+
...acc.exposedInsertionsOutput,
|
|
292
|
+
...nextExposedInsertions,
|
|
293
|
+
},
|
|
294
|
+
};
|
|
295
|
+
}, {
|
|
296
|
+
rawInsertionsOutput: {},
|
|
297
|
+
exposedInsertionsOutput: {},
|
|
298
|
+
});
|
|
299
|
+
const stateOutput = Object.assign(readonlyStateSignal, insertionsOutput.exposedInsertionsOutput, {
|
|
300
|
+
hasSchema: craftSignal(schema !== undefined),
|
|
301
|
+
exceptions: craftComputed(() => {
|
|
302
|
+
// Keep the exception signal reactive when a derived source changes.
|
|
303
|
+
stateSignal();
|
|
304
|
+
const parse = latestStateException
|
|
305
|
+
? { state: latestStateException }
|
|
306
|
+
: {};
|
|
307
|
+
return { list: Object.values(parse), parse };
|
|
308
|
+
}),
|
|
309
|
+
hasException: craftComputed(() => {
|
|
310
|
+
stateSignal();
|
|
311
|
+
return latestStateException !== undefined;
|
|
312
|
+
}),
|
|
313
|
+
});
|
|
314
|
+
const snapshotRegistry = injector
|
|
315
|
+
? injector.get(APP_SNAPSHOT_REGISTRY, null)
|
|
316
|
+
: (() => {
|
|
317
|
+
try {
|
|
318
|
+
return inject(APP_SNAPSHOT_REGISTRY, { optional: true });
|
|
319
|
+
}
|
|
320
|
+
catch {
|
|
321
|
+
return null;
|
|
322
|
+
}
|
|
323
|
+
})();
|
|
324
|
+
const hostTagList = injector
|
|
325
|
+
? (injector.get(ɵHOST_TAG_LIST, null) ?? [])
|
|
326
|
+
: (() => {
|
|
327
|
+
try {
|
|
328
|
+
return inject(ɵHOST_TAG_LIST, { optional: true }) ?? [];
|
|
329
|
+
}
|
|
330
|
+
catch {
|
|
331
|
+
return [];
|
|
332
|
+
}
|
|
333
|
+
})();
|
|
334
|
+
const destroyRef = injector
|
|
335
|
+
? injector.get(DestroyRef, null)
|
|
336
|
+
: (() => {
|
|
337
|
+
try {
|
|
338
|
+
return inject(DestroyRef, { optional: true });
|
|
339
|
+
}
|
|
340
|
+
catch {
|
|
341
|
+
return null;
|
|
342
|
+
}
|
|
343
|
+
})();
|
|
344
|
+
// Addressable handle for tooling: read and write this very instance by name.
|
|
345
|
+
const registration = ɵregisterCraftPrimitive({
|
|
346
|
+
kind: 'state',
|
|
347
|
+
name,
|
|
348
|
+
read: () => stateSignal(),
|
|
349
|
+
write: (value) => setState(value),
|
|
350
|
+
...(injector ? { injector } : {}),
|
|
351
|
+
});
|
|
352
|
+
if (snapshotRegistry && destroyRef) {
|
|
353
|
+
snapshotRegistry.triggerSnapshot$
|
|
354
|
+
.pipe(takeUntilDestroyed(destroyRef))
|
|
355
|
+
.subscribe(() => {
|
|
356
|
+
const insertionSnapshots = triggerAndCollectInsertions(insertionSnapshotRegistry);
|
|
357
|
+
let stateSnapshot;
|
|
358
|
+
try {
|
|
359
|
+
stateSnapshot = {
|
|
360
|
+
value: stateSignal(),
|
|
361
|
+
...(insertionSnapshots ? { insertions: insertionSnapshots } : {}),
|
|
362
|
+
};
|
|
363
|
+
}
|
|
364
|
+
catch (error) {
|
|
365
|
+
stateSnapshot = {
|
|
366
|
+
error: error instanceof Error ? error.message : String(error),
|
|
367
|
+
};
|
|
368
|
+
}
|
|
369
|
+
snapshotRegistry.allSnapShot$.next({
|
|
370
|
+
source: 'state',
|
|
371
|
+
from: hostTagList,
|
|
372
|
+
state: stateSnapshot,
|
|
373
|
+
});
|
|
374
|
+
});
|
|
375
|
+
}
|
|
376
|
+
const publicState = createYieldableReactiveFacade(stateOutput, {
|
|
377
|
+
name,
|
|
378
|
+
primitive: 'state',
|
|
379
|
+
path: name,
|
|
380
|
+
});
|
|
381
|
+
// The ref the application holds is what a feature names when it has to
|
|
382
|
+
// capture a primitive declared outside its own host.
|
|
383
|
+
registration.link(publicState);
|
|
384
|
+
return hasDeepYieldableInsertion(insertions)
|
|
385
|
+
? deepYieldable(publicState)
|
|
386
|
+
: publicState;
|
|
387
|
+
}
|
|
388
|
+
//# sourceMappingURL=state.js.map
|