@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 @@
|
|
|
1
|
+
{"version":3,"file":"craft-gen.js","sourceRoot":"","sources":["../../../../../libs/core/src/lib/craft-gen.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,GAIjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,0BAA0B,GAAG,MAAM,CAAC,4BAA4B,CAAC,CAAC;AACxE,MAAM,uBAAuB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;AAClE,MAAM,sBAAsB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAsIhE;;;;GAIG;AACH,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IACpC,CAAC,uBAAuB,CAAC,GAAG,IAAa,CAAC;IAC1C,SAAS,CAAoB;IAEtC,YAAY,SAA4B;QACtC,KAAK,CAAC,4CAA4C,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,UAAU,sBAAsB,CACpC,KAAc;IAEd,OAAO,CACL,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,uBAAuB,IAAI,KAAK,CACzE,CAAC;AACJ,CAAC;AAWD;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAAsB;IAEtB,OAAQ,OAAwC,CAAC,sBAAsB,CAAC,CAAC;AAC3E,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CACjC,YAA4B;IAE5B,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE;QAC5C,CAAC,sBAAsB,CAAC,EAAE,YAAY;QACtC,IAAI,CAAC,GAAG,SAA+B;YACrC,OAAO,SAAS,CAAC,MAAM,CAAsB,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE;gBAClE,MAAM,gBAAgB,GAAG,QAAQ,CAAC,sBAAsB,CAAC,CAAC;gBAE1D,OAAO,mBAAmB,CAAC,GAAG,EAAE,CAC9B,QAAQ,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,CAChD,CAAC;YACJ,CAAC,EAAE,OAAO,CAAC,CAAC;QACd,CAAC;KACF,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,QAAQ,CACtB,WAAkB;IAElB,MAAM,OAAO,GAAG,CAAC,GAAG,IAAiC,EAAE,EAAE,CACvD,mBAAmB,CAAC,QAAQ,CAAC;QAC3B,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC;QACpC,MAAM,MAAM,GAAY,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QAErE,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;IAEL,OAAO,OAGN,CAAC;AACJ,CAAC","sourcesContent":["import {\n isCraftException,\n type AnyCraftException,\n type ExtractCraftException,\n type StripCraftException,\n} from './craft-exception';\nimport { isGenerator } from './craft-generator-runtime';\n\nconst CRAFT_GEN_EXCEPTION_MARKER = Symbol('craft-gen-exception-marker');\nconst CRAFT_GEN_SHORT_CIRCUIT = Symbol('craft-gen-short-circuit');\nconst CRAFT_PROGRAM_RECREATE = Symbol('craft-program-recreate');\n\n/**\n * Type-level marker surfaced by a {@link craftGen} invocation's `Yielded`. It\n * carries the union of {@link AnyCraftException} the generator may produce so a\n * composing generator (and a route's `canActivate`/`canMatch`) can read the\n * reachable exception codes off its `Yielded`.\n *\n * It is **never** yielded at runtime — the short-circuit is a native `throw` of\n * {@link CraftGenShortCircuit}. The marker is also intentionally NOT a\n * `ServiceYieldRequest`, so `ServiceDependencyMapFromYielded` / `RouteGuardDepsMap`\n * ignore it and route provider stripping is unaffected.\n */\nexport interface CraftGenExceptionMarker<Exception> {\n readonly [CRAFT_GEN_EXCEPTION_MARKER]: Exception;\n}\n\n/** Extracts the union of exceptions advertised by the markers in `Yielded`. */\nexport type ExtractCraftGenExceptions<Yielded> = [\n Extract<Yielded, CraftGenExceptionMarker<any>>,\n] extends [never]\n ? never\n : Extract<\n Yielded,\n CraftGenExceptionMarker<any>\n > extends CraftGenExceptionMarker<infer Exception>\n ? Exception\n : never;\n\ntype AnyGeneratorFactory = (...args: any[]) => Generator<any, any, any>;\n\ntype GeneratorFactoryArgs<GenFn> = GenFn extends (\n ...args: infer Args\n) => Generator<any, any, any>\n ? Args\n : never;\n\ntype GeneratorFactoryYielded<GenFn> = GenFn extends (\n ...args: any[]\n) => Generator<infer Yielded, any, any>\n ? Yielded\n : never;\n\ntype GeneratorFactoryOutput<GenFn> = GenFn extends (\n ...args: any[]\n) => Generator<any, infer Output, any>\n ? Output\n : never;\n\ntype CraftProgramGen<Yielded, Return> = Generator<Yielded, Return, unknown>;\n\n/**\n * The `.pipe(...)` method carried by every craft program (a {@link craftGen}\n * invocation or the result of a previous `.pipe`). Applies program operators\n * left-to-right; each operator receives the piped generator and returns a new\n * one (see `CraftProgramOperator` in craft-program-operators). Arities are\n * explicit (1..7) to keep inference flat — no recursive conditional types.\n */\nexport interface CraftProgramPipe<Yielded, Return> {\n <Y1, R1>(\n op1: (program: CraftProgramGen<Yielded, Return>) => CraftProgramGen<Y1, R1>,\n ): CraftPipeableProgram<Y1, R1>;\n <Y1, R1, Y2, R2>(\n op1: (program: CraftProgramGen<Yielded, Return>) => CraftProgramGen<Y1, R1>,\n op2: (program: CraftProgramGen<Y1, R1>) => CraftProgramGen<Y2, R2>,\n ): CraftPipeableProgram<Y2, R2>;\n <Y1, R1, Y2, R2, Y3, R3>(\n op1: (program: CraftProgramGen<Yielded, Return>) => CraftProgramGen<Y1, R1>,\n op2: (program: CraftProgramGen<Y1, R1>) => CraftProgramGen<Y2, R2>,\n op3: (program: CraftProgramGen<Y2, R2>) => CraftProgramGen<Y3, R3>,\n ): CraftPipeableProgram<Y3, R3>;\n <Y1, R1, Y2, R2, Y3, R3, Y4, R4>(\n op1: (program: CraftProgramGen<Yielded, Return>) => CraftProgramGen<Y1, R1>,\n op2: (program: CraftProgramGen<Y1, R1>) => CraftProgramGen<Y2, R2>,\n op3: (program: CraftProgramGen<Y2, R2>) => CraftProgramGen<Y3, R3>,\n op4: (program: CraftProgramGen<Y3, R3>) => CraftProgramGen<Y4, R4>,\n ): CraftPipeableProgram<Y4, R4>;\n <Y1, R1, Y2, R2, Y3, R3, Y4, R4, Y5, R5>(\n op1: (program: CraftProgramGen<Yielded, Return>) => CraftProgramGen<Y1, R1>,\n op2: (program: CraftProgramGen<Y1, R1>) => CraftProgramGen<Y2, R2>,\n op3: (program: CraftProgramGen<Y2, R2>) => CraftProgramGen<Y3, R3>,\n op4: (program: CraftProgramGen<Y3, R3>) => CraftProgramGen<Y4, R4>,\n op5: (program: CraftProgramGen<Y4, R4>) => CraftProgramGen<Y5, R5>,\n ): CraftPipeableProgram<Y5, R5>;\n <Y1, R1, Y2, R2, Y3, R3, Y4, R4, Y5, R5, Y6, R6>(\n op1: (program: CraftProgramGen<Yielded, Return>) => CraftProgramGen<Y1, R1>,\n op2: (program: CraftProgramGen<Y1, R1>) => CraftProgramGen<Y2, R2>,\n op3: (program: CraftProgramGen<Y2, R2>) => CraftProgramGen<Y3, R3>,\n op4: (program: CraftProgramGen<Y3, R3>) => CraftProgramGen<Y4, R4>,\n op5: (program: CraftProgramGen<Y4, R4>) => CraftProgramGen<Y5, R5>,\n op6: (program: CraftProgramGen<Y5, R5>) => CraftProgramGen<Y6, R6>,\n ): CraftPipeableProgram<Y6, R6>;\n <Y1, R1, Y2, R2, Y3, R3, Y4, R4, Y5, R5, Y6, R6, Y7, R7>(\n op1: (program: CraftProgramGen<Yielded, Return>) => CraftProgramGen<Y1, R1>,\n op2: (program: CraftProgramGen<Y1, R1>) => CraftProgramGen<Y2, R2>,\n op3: (program: CraftProgramGen<Y2, R2>) => CraftProgramGen<Y3, R3>,\n op4: (program: CraftProgramGen<Y3, R3>) => CraftProgramGen<Y4, R4>,\n op5: (program: CraftProgramGen<Y4, R4>) => CraftProgramGen<Y5, R5>,\n op6: (program: CraftProgramGen<Y5, R5>) => CraftProgramGen<Y6, R6>,\n op7: (program: CraftProgramGen<Y6, R6>) => CraftProgramGen<Y7, R7>,\n ): CraftPipeableProgram<Y7, R7>;\n}\n\n/**\n * A craft program: a `yield*`-composable generator augmented with `.pipe(...)`.\n * `Yielded` already carries the program's {@link CraftGenExceptionMarker}s.\n */\nexport type CraftPipeableProgram<Yielded, Return> = Generator<\n Yielded,\n Return,\n unknown\n> & {\n pipe: CraftProgramPipe<Yielded, Return>;\n};\n\n/**\n * The generator returned when a {@link craftGen} factory is invoked. Composable\n * with `yield*`: it relays the inner generator's dependency yields, advertises\n * the union of exceptions it may produce through a {@link CraftGenExceptionMarker},\n * and resolves to the success value (the output with exceptions stripped).\n * Program operators (`catchTag`, `retry`, …) compose through `.pipe(...)`.\n */\nexport type CraftGenInvocation<Yielded, Output> = CraftPipeableProgram<\n Yielded | CraftGenExceptionMarker<ExtractCraftException<Output>>,\n StripCraftException<Output>\n>;\n\nexport type CraftGenInvoker<Args extends any[], GenFn> = (\n ...args: Args\n) => CraftGenInvocation<\n GeneratorFactoryYielded<GenFn>,\n GeneratorFactoryOutput<GenFn>\n>;\n\n/**\n * Thrown to short-circuit the enclosing generator when a {@link craftGen}\n * invocation produces a `craftException`. The route chain driver catches it at\n * the guard/resolve boundary; composing generators simply let it propagate.\n */\nexport class CraftGenShortCircuit extends Error {\n readonly [CRAFT_GEN_SHORT_CIRCUIT] = true as const;\n readonly exception: AnyCraftException;\n\n constructor(exception: AnyCraftException) {\n super(`craftGen short-circuited with exception \"${exception._tag}\".`);\n this.name = 'CraftGenShortCircuit';\n this.exception = exception;\n }\n}\n\nexport function isCraftGenShortCircuit(\n value: unknown,\n): value is CraftGenShortCircuit {\n return (\n !!value && typeof value === 'object' && CRAFT_GEN_SHORT_CIRCUIT in value\n );\n}\n\ntype AnyProgramGen = Generator<unknown, unknown, unknown>;\ntype ProgramFactory = () => AnyProgramGen;\ntype AnyProgramOperator = (program: AnyProgramGen) => AnyProgramGen;\n\ntype RuntimeCraftProgram = AnyProgramGen & {\n [CRAFT_PROGRAM_RECREATE]: ProgramFactory;\n pipe: (...operators: AnyProgramOperator[]) => RuntimeCraftProgram;\n};\n\n/**\n * Returns the factory able to re-invoke `program` from scratch (a fresh\n * iterator over the same logic and arguments), or `undefined` for a bare\n * generator that was not built by {@link craftGen}/`.pipe`. Used by `retry` to\n * replay the whole upstream chain.\n */\nexport function ɵgetCraftProgramRecreate(\n program: AnyProgramGen,\n): ProgramFactory | undefined {\n return (program as Partial<RuntimeCraftProgram>)[CRAFT_PROGRAM_RECREATE];\n}\n\n/**\n * Wraps a generator factory into a craft *program*: the generator (inert until\n * `next()`) augmented with `.pipe(...)` and an internal re-invocation marker.\n *\n * `.pipe` folds operators left-to-right; each stage is itself a program whose\n * re-invocation replays the entire upstream chain (`op(recreate-of-previous)`),\n * so `retry` placed anywhere in the chain can restart from the source without\n * the other operators having to know about re-invocation.\n */\nexport function ɵcreateCraftProgram(\n makeIterator: ProgramFactory,\n): RuntimeCraftProgram {\n const program = Object.assign(makeIterator(), {\n [CRAFT_PROGRAM_RECREATE]: makeIterator,\n pipe(...operators: AnyProgramOperator[]): RuntimeCraftProgram {\n return operators.reduce<RuntimeCraftProgram>((previous, operator) => {\n const recreatePrevious = previous[CRAFT_PROGRAM_RECREATE];\n\n return ɵcreateCraftProgram(() =>\n operator(ɵcreateCraftProgram(recreatePrevious)),\n );\n }, program);\n },\n });\n\n return program;\n}\n\n/**\n * Builds a reusable, parameterised generator factory.\n *\n * `craftGen(generatorFn)` returns a factory `(...args) => CraftGenInvocation`\n * that is composable with `yield*`. The inner generator's dependency yields\n * (`CraftAuth`, `CraftRouter`, …) flow up to the enclosing driver\n * unchanged, while the union of `craftException` it may return is tracked on the\n * invocation's `Yielded` (type-level only).\n *\n * When the inner generator returns a `craftException`, the invocation **throws**\n * {@link CraftGenShortCircuit}, interrupting the enclosing generator at any depth\n * and propagating the exception to the nearest boundary (typically a route's\n * `canActivate`/`canMatch` guard). When it returns a non-exception value, that\n * value is returned from the `yield*`.\n *\n * @example\n * ```ts\n * export const roleGuard = craftGen(function* (...roles: Role[]) {\n * const { user } = yield* CraftAuth(undefined, ({ user }) => ({ user }));\n * if (!user()) return craftException({ code: 'NOT_AUTHENTICATED' });\n * return roles.includes(user()!.role)\n * ? true\n * : craftException({ code: 'FORBIDDEN_ROLE' });\n * });\n * ```\n */\nexport function craftGen<GenFn extends AnyGeneratorFactory>(\n generatorFn: GenFn,\n): CraftGenInvoker<GeneratorFactoryArgs<GenFn>, GenFn> {\n const invoker = (...args: GeneratorFactoryArgs<GenFn>) =>\n ɵcreateCraftProgram(function* () {\n const result = generatorFn(...args);\n const output: unknown = isGenerator(result) ? yield* result : result;\n\n if (isCraftException(output)) {\n throw new CraftGenShortCircuit(output);\n }\n\n return output;\n });\n\n return invoker as unknown as CraftGenInvoker<\n GeneratorFactoryArgs<GenFn>,\n GenFn\n >;\n}\n"]}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { Injector, InjectionToken, type Provider } from './host/craft-compat';
|
|
2
|
+
import type { Observable } from 'rxjs';
|
|
3
|
+
import type { ConcreteServiceScope } from './craft-service.shared';
|
|
4
|
+
import { type RuntimeTemporalAwaitRequest } from './temporal-runtime';
|
|
5
|
+
import { type ReactiveReadIdentity } from './reactive-read';
|
|
6
|
+
export declare const SERVICE_YIELD_REQUEST_MARKER: unique symbol;
|
|
7
|
+
export declare const SERVICE_DEPENDENCY_ACCESS_MARKER: unique symbol;
|
|
8
|
+
export declare const SERVICE_APP_START_REQUEST_MARKER: unique symbol;
|
|
9
|
+
export declare const SERVICE_TRACKED_DEPS_REQUEST_MARKER: unique symbol;
|
|
10
|
+
export declare const GUARD_AWAIT_REQUEST_MARKER: unique symbol;
|
|
11
|
+
export type ServiceYieldContext = Readonly<{
|
|
12
|
+
name: string;
|
|
13
|
+
providedIn: ConcreteServiceScope;
|
|
14
|
+
hostScope: ConcreteServiceScope;
|
|
15
|
+
injector: Injector;
|
|
16
|
+
resolve(): unknown;
|
|
17
|
+
}>;
|
|
18
|
+
export type ServiceYieldWrapper = (context: ServiceYieldContext, next: () => Generator<unknown, unknown, unknown>) => Generator<unknown, unknown, unknown>;
|
|
19
|
+
export declare const SERVICE_YIELD_WRAPPER: InjectionToken<readonly ServiceYieldWrapper[]>;
|
|
20
|
+
/** Registers a wrapper around every Craft service yield below the provider. */
|
|
21
|
+
export declare function provideServiceYieldWrapper(_warning: string, wrapper: ServiceYieldWrapper): Provider;
|
|
22
|
+
type AppStartResult = Observable<unknown> | Promise<unknown> | void;
|
|
23
|
+
type AnyGeneratorFunction = (...args: never[]) => Generator<unknown, unknown, unknown>;
|
|
24
|
+
export type ResolveGeneratorResult<Result> = Result extends Generator<any, infer Output, unknown> ? Output : Result;
|
|
25
|
+
export type ExtractFactoryYielded<Factory> = Factory extends (...args: any[]) => Generator<infer Yielded, any, unknown> ? Yielded : never;
|
|
26
|
+
export type GeneratorCompatibleFactory<Factory, Yielded = never> = Factory extends (...args: infer Args) => infer Result ? (...args: Args) => Result | Generator<Yielded, Result | Awaited<Result>, unknown> : never;
|
|
27
|
+
type RuntimeServiceAppStartRequest = Readonly<{
|
|
28
|
+
[SERVICE_APP_START_REQUEST_MARKER]: true;
|
|
29
|
+
run: () => AppStartResult;
|
|
30
|
+
}>;
|
|
31
|
+
/**
|
|
32
|
+
* Minimal runtime view of a craft resource the guard driver needs to decide
|
|
33
|
+
* whether it has *settled* (`status` is `'resolved'` or `'error'`) and to read
|
|
34
|
+
* the outcome. Mirrors the public resource signals as plain getters so the
|
|
35
|
+
* driver does not depend on the full query/mutation types.
|
|
36
|
+
*/
|
|
37
|
+
export type GuardAwaitResourceLike = {
|
|
38
|
+
status: () => string;
|
|
39
|
+
value: () => unknown;
|
|
40
|
+
error: () => unknown;
|
|
41
|
+
hasException: () => boolean;
|
|
42
|
+
exceptions: () => {
|
|
43
|
+
list: readonly unknown[];
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* The request a guard generator yields (via `craftUntilSettled` / `craftUntilDefined`) to
|
|
48
|
+
* suspend until an async craft operation completes. It is **never** handled by
|
|
49
|
+
* the synchronous {@link runCraftGenerator}; only the two-phase route chain
|
|
50
|
+
* driver (`runCraftRouteChainAsync`) understands it. Discriminated by `kind`:
|
|
51
|
+
*
|
|
52
|
+
* - `'settle'` — wait for a craft resource signal to reach a settled status.
|
|
53
|
+
* - `'promise'` — wait for a thenable (e.g. a `CraftHttpClient` request
|
|
54
|
+
* descriptor) to resolve, then resume with its value.
|
|
55
|
+
*/
|
|
56
|
+
export type RuntimeGuardAwaitRequest = Readonly<{
|
|
57
|
+
[GUARD_AWAIT_REQUEST_MARKER]: true;
|
|
58
|
+
kind: 'settle';
|
|
59
|
+
resource: GuardAwaitResourceLike;
|
|
60
|
+
}> | Readonly<{
|
|
61
|
+
[GUARD_AWAIT_REQUEST_MARKER]: true;
|
|
62
|
+
kind: 'promise';
|
|
63
|
+
value: PromiseLike<unknown>;
|
|
64
|
+
}>;
|
|
65
|
+
export type RuntimeAwaitRequest = RuntimeGuardAwaitRequest | RuntimeTemporalAwaitRequest;
|
|
66
|
+
export declare function isGuardAwaitRequest(value: unknown): value is RuntimeGuardAwaitRequest;
|
|
67
|
+
type RunCraftGeneratorOptions = {
|
|
68
|
+
iterator: Generator<unknown, unknown, unknown>;
|
|
69
|
+
injector: Injector | object;
|
|
70
|
+
hostScope: ConcreteServiceScope;
|
|
71
|
+
invalidYieldErrorMessage: string;
|
|
72
|
+
multipleAppStartErrorMessage: string;
|
|
73
|
+
createAppStartHook?: (run: RuntimeServiceAppStartRequest['run']) => () => AppStartResult;
|
|
74
|
+
onAppStartNotSupportedErrorMessage?: string;
|
|
75
|
+
guardAwaitNotSupportedErrorMessage?: string;
|
|
76
|
+
/** Identity of the computation currently consuming reactive values. */
|
|
77
|
+
reactiveReader?: ReactiveReadIdentity;
|
|
78
|
+
};
|
|
79
|
+
export declare function runCraftGenerator({ iterator, injector: injectorInput, hostScope, invalidYieldErrorMessage, multipleAppStartErrorMessage, createAppStartHook, onAppStartNotSupportedErrorMessage, guardAwaitNotSupportedErrorMessage, reactiveReader, }: RunCraftGeneratorOptions): {
|
|
80
|
+
value: unknown;
|
|
81
|
+
appStartHook?: () => AppStartResult;
|
|
82
|
+
};
|
|
83
|
+
export declare function isGenerator(value: unknown): value is Generator<unknown, unknown, unknown>;
|
|
84
|
+
export declare function isGeneratorFunction(value: unknown): value is AnyGeneratorFunction;
|
|
85
|
+
export declare function executeGeneratorCompatibleFactory<This, Args extends unknown[], Result>({ factory, thisArg, getInjector, args, invalidYieldErrorMessage, multipleAppStartErrorMessage, onAppStartNotSupportedErrorMessage, }: {
|
|
86
|
+
factory: (this: This, ...args: Args) => Result;
|
|
87
|
+
thisArg: This;
|
|
88
|
+
getInjector: () => Injector | object;
|
|
89
|
+
args: Args;
|
|
90
|
+
invalidYieldErrorMessage: string;
|
|
91
|
+
multipleAppStartErrorMessage: string;
|
|
92
|
+
onAppStartNotSupportedErrorMessage?: string;
|
|
93
|
+
}): ResolveGeneratorResult<Result>;
|
|
94
|
+
/**
|
|
95
|
+
* Resolves a single non-await craft generator yield (service request, dependency
|
|
96
|
+
* access, or tracked-deps marker) exactly as {@link runCraftGenerator}'s loop
|
|
97
|
+
* does. Returns `{ handled: false }` for anything it does not recognise (e.g. a
|
|
98
|
+
* guard await-request or an app-start request) so the caller can decide how to
|
|
99
|
+
* proceed. Shared with the guard driver, which must resolve these yields itself
|
|
100
|
+
* while intercepting guard await-requests.
|
|
101
|
+
*/
|
|
102
|
+
export declare function resolveCraftGeneratorYield(yielded: unknown, injector: Injector, hostScope: ConcreteServiceScope): {
|
|
103
|
+
handled: true;
|
|
104
|
+
value: unknown;
|
|
105
|
+
} | {
|
|
106
|
+
handled: false;
|
|
107
|
+
};
|
|
108
|
+
export declare function isServiceAppStartRequest(value: unknown): value is RuntimeServiceAppStartRequest;
|
|
109
|
+
export {};
|
|
110
|
+
//# sourceMappingURL=craft-generator-runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"craft-generator-runtime.d.ts","sourceRoot":"","sources":["../../../../../libs/core/src/lib/craft-generator-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import { InjectionToken } from './host/craft-compat';
|
|
2
|
+
import { injectFnWrapper } from './fn-wrapper';
|
|
3
|
+
import { isTemporalAwaitRequest, } from './temporal-runtime';
|
|
4
|
+
import { isReactiveReadRequest, REACTIVE_READ_OBSERVERS, ɵwithActiveReactiveReader, } from './reactive-read';
|
|
5
|
+
import { ɵcraftInjectorFromHost } from './host/craft-injector-host';
|
|
6
|
+
export const SERVICE_YIELD_REQUEST_MARKER = Symbol('service-yield-request-marker');
|
|
7
|
+
export const SERVICE_DEPENDENCY_ACCESS_MARKER = Symbol('service-dependency-access-marker');
|
|
8
|
+
export const SERVICE_APP_START_REQUEST_MARKER = Symbol('service-app-start-request-marker');
|
|
9
|
+
export const SERVICE_TRACKED_DEPS_REQUEST_MARKER = Symbol('service-tracked-deps-request-marker');
|
|
10
|
+
export const GUARD_AWAIT_REQUEST_MARKER = Symbol('guard-await-request-marker');
|
|
11
|
+
export const SERVICE_YIELD_WRAPPER = new InjectionToken('SERVICE_YIELD_WRAPPER', {
|
|
12
|
+
providedIn: 'root',
|
|
13
|
+
factory: () => [],
|
|
14
|
+
multi: true,
|
|
15
|
+
});
|
|
16
|
+
/** Registers a wrapper around every Craft service yield below the provider. */
|
|
17
|
+
export function provideServiceYieldWrapper(_warning, wrapper) {
|
|
18
|
+
return { provide: SERVICE_YIELD_WRAPPER, useValue: wrapper, multi: true };
|
|
19
|
+
}
|
|
20
|
+
export function isGuardAwaitRequest(value) {
|
|
21
|
+
return (typeof value === 'object' &&
|
|
22
|
+
value !== null &&
|
|
23
|
+
GUARD_AWAIT_REQUEST_MARKER in value);
|
|
24
|
+
}
|
|
25
|
+
export function runCraftGenerator({ iterator, injector: injectorInput, hostScope, invalidYieldErrorMessage, multipleAppStartErrorMessage, createAppStartHook, onAppStartNotSupportedErrorMessage, guardAwaitNotSupportedErrorMessage, reactiveReader, }) {
|
|
26
|
+
const injector = ɵcraftInjectorFromHost(injectorInput);
|
|
27
|
+
let appStartHook;
|
|
28
|
+
let current = iterator.next();
|
|
29
|
+
while (!current.done) {
|
|
30
|
+
const yielded = current.value;
|
|
31
|
+
if (isReactiveReadRequest(yielded)) {
|
|
32
|
+
for (const observer of injector.get(REACTIVE_READ_OBSERVERS, [])) {
|
|
33
|
+
observer({ reader: reactiveReader, dependency: yielded.identity });
|
|
34
|
+
}
|
|
35
|
+
current = iterator.next(ɵwithActiveReactiveReader(yielded.identity, yielded.read));
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
if (isServiceYieldRequest(yielded)) {
|
|
39
|
+
current = iterator.next(resolveServiceYield(yielded, injector, hostScope));
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
if (isServiceDependencyAccessRequest(yielded)) {
|
|
43
|
+
current = iterator.next(yielded.resolve());
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
if (isServiceTrackedDepsRequest(yielded)) {
|
|
47
|
+
// Type-level only: the tracked primitive resolves its own dependencies
|
|
48
|
+
// lazily through the injector. Nothing to do at runtime.
|
|
49
|
+
current = iterator.next(undefined);
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
if (isServiceAppStartRequest(yielded)) {
|
|
53
|
+
if (onAppStartNotSupportedErrorMessage) {
|
|
54
|
+
throw new Error(onAppStartNotSupportedErrorMessage);
|
|
55
|
+
}
|
|
56
|
+
if (appStartHook) {
|
|
57
|
+
throw new Error(multipleAppStartErrorMessage);
|
|
58
|
+
}
|
|
59
|
+
appStartHook = createAppStartHook
|
|
60
|
+
? createAppStartHook(yielded.run)
|
|
61
|
+
: yielded.run;
|
|
62
|
+
current = iterator.next(undefined);
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
if (isTemporalAwaitRequest(yielded)) {
|
|
66
|
+
throw new Error('This Craft generator requires the async driver because it yields craftSleep(...).');
|
|
67
|
+
}
|
|
68
|
+
if (guardAwaitNotSupportedErrorMessage && isGuardAwaitRequest(yielded)) {
|
|
69
|
+
throw new Error(guardAwaitNotSupportedErrorMessage);
|
|
70
|
+
}
|
|
71
|
+
throw new Error(invalidYieldErrorMessage);
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
value: current.value,
|
|
75
|
+
appStartHook,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
export function isGenerator(value) {
|
|
79
|
+
return (typeof value === 'object' &&
|
|
80
|
+
value !== null &&
|
|
81
|
+
'next' in value &&
|
|
82
|
+
typeof value.next === 'function');
|
|
83
|
+
}
|
|
84
|
+
export function isGeneratorFunction(value) {
|
|
85
|
+
return (typeof value === 'function' &&
|
|
86
|
+
(value.constructor?.name === 'GeneratorFunction' ||
|
|
87
|
+
Object.prototype.toString.call(value) === '[object GeneratorFunction]'));
|
|
88
|
+
}
|
|
89
|
+
export function executeGeneratorCompatibleFactory({ factory, thisArg, getInjector, args, invalidYieldErrorMessage, multipleAppStartErrorMessage, onAppStartNotSupportedErrorMessage, }) {
|
|
90
|
+
const injector = getInjector();
|
|
91
|
+
const craftInjector = ɵcraftInjectorFromHost(injector);
|
|
92
|
+
const wrappedFactory = craftInjector.run(() => injectFnWrapper()(factory));
|
|
93
|
+
const result = wrappedFactory.apply(thisArg, args);
|
|
94
|
+
if (!isGenerator(result)) {
|
|
95
|
+
return result;
|
|
96
|
+
}
|
|
97
|
+
return craftInjector.run(() => {
|
|
98
|
+
return runCraftGenerator({
|
|
99
|
+
iterator: result,
|
|
100
|
+
injector,
|
|
101
|
+
hostScope: 'function',
|
|
102
|
+
invalidYieldErrorMessage,
|
|
103
|
+
multipleAppStartErrorMessage,
|
|
104
|
+
onAppStartNotSupportedErrorMessage,
|
|
105
|
+
}).value;
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Resolves a single non-await craft generator yield (service request, dependency
|
|
110
|
+
* access, or tracked-deps marker) exactly as {@link runCraftGenerator}'s loop
|
|
111
|
+
* does. Returns `{ handled: false }` for anything it does not recognise (e.g. a
|
|
112
|
+
* guard await-request or an app-start request) so the caller can decide how to
|
|
113
|
+
* proceed. Shared with the guard driver, which must resolve these yields itself
|
|
114
|
+
* while intercepting guard await-requests.
|
|
115
|
+
*/
|
|
116
|
+
export function resolveCraftGeneratorYield(yielded, injector, hostScope) {
|
|
117
|
+
if (isReactiveReadRequest(yielded)) {
|
|
118
|
+
for (const observer of injector.get(REACTIVE_READ_OBSERVERS, [])) {
|
|
119
|
+
observer({ dependency: yielded.identity });
|
|
120
|
+
}
|
|
121
|
+
return {
|
|
122
|
+
handled: true,
|
|
123
|
+
value: ɵwithActiveReactiveReader(yielded.identity, yielded.read),
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
if (isServiceYieldRequest(yielded)) {
|
|
127
|
+
return {
|
|
128
|
+
handled: true,
|
|
129
|
+
value: resolveServiceYield(yielded, injector, hostScope),
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
if (isServiceDependencyAccessRequest(yielded)) {
|
|
133
|
+
return { handled: true, value: yielded.resolve() };
|
|
134
|
+
}
|
|
135
|
+
if (isServiceTrackedDepsRequest(yielded)) {
|
|
136
|
+
return { handled: true, value: undefined };
|
|
137
|
+
}
|
|
138
|
+
return { handled: false };
|
|
139
|
+
}
|
|
140
|
+
function resolveServiceYield(request, injector, hostScope) {
|
|
141
|
+
const wrappers = injector.get(SERVICE_YIELD_WRAPPER, []);
|
|
142
|
+
const context = {
|
|
143
|
+
name: request.name,
|
|
144
|
+
providedIn: request.providedIn,
|
|
145
|
+
hostScope,
|
|
146
|
+
injector,
|
|
147
|
+
resolve: () => request.resolve(injector, hostScope),
|
|
148
|
+
};
|
|
149
|
+
if (wrappers.length === 0) {
|
|
150
|
+
return context.resolve();
|
|
151
|
+
}
|
|
152
|
+
let wrapped = function* () {
|
|
153
|
+
return context.resolve();
|
|
154
|
+
};
|
|
155
|
+
for (let index = wrappers.length - 1; index >= 0; index -= 1) {
|
|
156
|
+
const wrapper = wrappers[index];
|
|
157
|
+
const next = wrapped;
|
|
158
|
+
wrapped = () => (function* () {
|
|
159
|
+
return yield* wrapper(context, next);
|
|
160
|
+
})();
|
|
161
|
+
}
|
|
162
|
+
return runCraftGenerator({
|
|
163
|
+
iterator: wrapped(),
|
|
164
|
+
injector,
|
|
165
|
+
hostScope,
|
|
166
|
+
invalidYieldErrorMessage: 'Service yield wrappers can only yield Craft dependencies.',
|
|
167
|
+
multipleAppStartErrorMessage: 'Service yield wrappers cannot declare multiple app-start hooks.',
|
|
168
|
+
onAppStartNotSupportedErrorMessage: 'Service yield wrappers cannot declare app-start hooks.',
|
|
169
|
+
}).value;
|
|
170
|
+
}
|
|
171
|
+
function isServiceYieldRequest(value) {
|
|
172
|
+
return (typeof value === 'object' &&
|
|
173
|
+
value !== null &&
|
|
174
|
+
SERVICE_YIELD_REQUEST_MARKER in value);
|
|
175
|
+
}
|
|
176
|
+
function isServiceDependencyAccessRequest(value) {
|
|
177
|
+
return (typeof value === 'object' &&
|
|
178
|
+
value !== null &&
|
|
179
|
+
SERVICE_DEPENDENCY_ACCESS_MARKER in value);
|
|
180
|
+
}
|
|
181
|
+
export function isServiceAppStartRequest(value) {
|
|
182
|
+
return (typeof value === 'object' &&
|
|
183
|
+
value !== null &&
|
|
184
|
+
SERVICE_APP_START_REQUEST_MARKER in value);
|
|
185
|
+
}
|
|
186
|
+
function isServiceTrackedDepsRequest(value) {
|
|
187
|
+
return (typeof value === 'object' &&
|
|
188
|
+
value !== null &&
|
|
189
|
+
SERVICE_TRACKED_DEPS_REQUEST_MARKER in value);
|
|
190
|
+
}
|
|
191
|
+
//# sourceMappingURL=craft-generator-runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"craft-generator-runtime.js","sourceRoot":"","sources":["../../../../../libs/core/src/lib/craft-generator-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,cAAc,EAAiB,MAAM,qBAAqB,CAAC;AAG9E,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EACL,sBAAsB,GAEvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,GAE1B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAChD,8BAA8B,CAC/B,CAAC;AACF,MAAM,CAAC,MAAM,gCAAgC,GAAG,MAAM,CACpD,kCAAkC,CACnC,CAAC;AACF,MAAM,CAAC,MAAM,gCAAgC,GAAG,MAAM,CACpD,kCAAkC,CACnC,CAAC;AACF,MAAM,CAAC,MAAM,mCAAmC,GAAG,MAAM,CACvD,qCAAqC,CACtC,CAAC;AACF,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC,4BAA4B,CAAC,CAAC;AAe/E,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,cAAc,CAErD,uBAAuB,EAAE;IACzB,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;IACjB,KAAK,EAAE,IAAI;CACZ,CAAC,CAAC;AAEH,+EAA+E;AAC/E,MAAM,UAAU,0BAA0B,CACxC,QAAgB,EAChB,OAA4B;IAE5B,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC5E,CAAC;AAwFD,MAAM,UAAU,mBAAmB,CACjC,KAAc;IAEd,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,0BAA0B,IAAI,KAAK,CACpC,CAAC;AACJ,CAAC;AAiBD,MAAM,UAAU,iBAAiB,CAAC,EAChC,QAAQ,EACR,QAAQ,EAAE,aAAa,EACvB,SAAS,EACT,wBAAwB,EACxB,4BAA4B,EAC5B,kBAAkB,EAClB,kCAAkC,EAClC,kCAAkC,EAClC,cAAc,GACW;IAIzB,MAAM,QAAQ,GAAG,sBAAsB,CAAC,aAAa,CAAC,CAAC;IACvD,IAAI,YAAgD,CAAC;IACrD,IAAI,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAE9B,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;QAE9B,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,uBAAuB,EAAE,EAAE,CAAC,EAAE,CAAC;gBACjE,QAAQ,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YACrE,CAAC;YACD,OAAO,GAAG,QAAQ,CAAC,IAAI,CACrB,yBAAyB,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAC1D,CAAC;YACF,SAAS;QACX,CAAC;QAED,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,OAAO,GAAG,QAAQ,CAAC,IAAI,CACrB,mBAAmB,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAClD,CAAC;YACF,SAAS;QACX,CAAC;QAED,IAAI,gCAAgC,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9C,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3C,SAAS;QACX,CAAC;QAED,IAAI,2BAA2B,CAAC,OAAO,CAAC,EAAE,CAAC;YACzC,uEAAuE;YACvE,yDAAyD;YACzD,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACnC,SAAS;QACX,CAAC;QAED,IAAI,wBAAwB,CAAC,OAAO,CAAC,EAAE,CAAC;YACtC,IAAI,kCAAkC,EAAE,CAAC;gBACvC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACtD,CAAC;YAED,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAChD,CAAC;YAED,YAAY,GAAG,kBAAkB;gBAC/B,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC;gBACjC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;YAChB,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACnC,SAAS;QACX,CAAC;QAED,IAAI,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CACb,mFAAmF,CACpF,CAAC;QACJ,CAAC;QAED,IAAI,kCAAkC,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;YACvE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO;QACL,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,YAAY;KACb,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,KAAc;IAEd,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,MAAM,IAAI,KAAK;QACf,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU,CACjC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,KAAc;IAEd,OAAO,CACL,OAAO,KAAK,KAAK,UAAU;QAC3B,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,KAAK,mBAAmB;YAC9C,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,4BAA4B,CAAC,CAC1E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iCAAiC,CAI/C,EACA,OAAO,EACP,OAAO,EACP,WAAW,EACX,IAAI,EACJ,wBAAwB,EACxB,4BAA4B,EAC5B,kCAAkC,GASnC;IACC,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,aAAa,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,cAAc,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3E,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAEnD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,OAAO,MAAwC,CAAC;IAClD,CAAC;IAED,OAAO,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE;QAC5B,OAAO,iBAAiB,CAAC;YACvB,QAAQ,EAAE,MAAM;YAChB,QAAQ;YACR,SAAS,EAAE,UAAU;YACrB,wBAAwB;YACxB,4BAA4B;YAC5B,kCAAkC;SACnC,CAAC,CAAC,KAAuC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,0BAA0B,CACxC,OAAgB,EAChB,QAAkB,EAClB,SAA+B;IAE/B,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,uBAAuB,EAAE,EAAE,CAAC,EAAE,CAAC;YACjE,QAAQ,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,yBAAyB,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC;SACjE,CAAC;IACJ,CAAC;IAED,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,OAAO;YACL,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,mBAAmB,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC;SACzD,CAAC;IACJ,CAAC;IAED,IAAI,gCAAgC,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;IACrD,CAAC;IAED,IAAI,2BAA2B,CAAC,OAAO,CAAC,EAAE,CAAC;QACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAC7C,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC;AAED,SAAS,mBAAmB,CAC1B,OAAmC,EACnC,QAAkB,EAClB,SAA+B;IAE/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;IACzD,MAAM,OAAO,GAAwB;QACnC,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,SAAS;QACT,QAAQ;QACR,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC;KACpD,CAAC;IAEF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI,OAAO,GAA+C,QAAQ,CAAC;QACjE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,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,IAAI,GAAG,OAAO,CAAC;QACrB,OAAO,GAAG,GAAG,EAAE,CACb,CAAC,QAAQ,CAAC;YACR,OAAO,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC,CAAC,EAAE,CAAC;IACT,CAAC;IAED,OAAO,iBAAiB,CAAC;QACvB,QAAQ,EAAE,OAAO,EAAE;QACnB,QAAQ;QACR,SAAS;QACT,wBAAwB,EACtB,2DAA2D;QAC7D,4BAA4B,EAC1B,iEAAiE;QACnE,kCAAkC,EAChC,wDAAwD;KAC3D,CAAC,CAAC,KAAK,CAAC;AACX,CAAC;AAED,SAAS,qBAAqB,CAC5B,KAAc;IAEd,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,4BAA4B,IAAI,KAAK,CACtC,CAAC;AACJ,CAAC;AAED,SAAS,gCAAgC,CACvC,KAAc;IAEd,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,gCAAgC,IAAI,KAAK,CAC1C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,KAAc;IAEd,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,gCAAgC,IAAI,KAAK,CAC1C,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAClC,KAAc;IAEd,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,mCAAmC,IAAI,KAAK,CAC7C,CAAC;AACJ,CAAC","sourcesContent":["import { Injector, InjectionToken, type Provider } from './host/craft-compat';\nimport type { Observable } from 'rxjs';\nimport type { ConcreteServiceScope } from './craft-service.shared';\nimport { injectFnWrapper } from './fn-wrapper';\nimport {\n isTemporalAwaitRequest,\n type RuntimeTemporalAwaitRequest,\n} from './temporal-runtime';\nimport {\n isReactiveReadRequest,\n REACTIVE_READ_OBSERVERS,\n ɵwithActiveReactiveReader,\n type ReactiveReadIdentity,\n} from './reactive-read';\nimport { ɵcraftInjectorFromHost } from './host/craft-injector-host';\n\nexport const SERVICE_YIELD_REQUEST_MARKER = Symbol(\n 'service-yield-request-marker',\n);\nexport const SERVICE_DEPENDENCY_ACCESS_MARKER = Symbol(\n 'service-dependency-access-marker',\n);\nexport const SERVICE_APP_START_REQUEST_MARKER = Symbol(\n 'service-app-start-request-marker',\n);\nexport const SERVICE_TRACKED_DEPS_REQUEST_MARKER = Symbol(\n 'service-tracked-deps-request-marker',\n);\nexport const GUARD_AWAIT_REQUEST_MARKER = Symbol('guard-await-request-marker');\n\nexport type ServiceYieldContext = Readonly<{\n name: string;\n providedIn: ConcreteServiceScope;\n hostScope: ConcreteServiceScope;\n injector: Injector;\n resolve(): unknown;\n}>;\n\nexport type ServiceYieldWrapper = (\n context: ServiceYieldContext,\n next: () => Generator<unknown, unknown, unknown>,\n) => Generator<unknown, unknown, unknown>;\n\nexport const SERVICE_YIELD_WRAPPER = new InjectionToken<\n readonly ServiceYieldWrapper[]\n>('SERVICE_YIELD_WRAPPER', {\n providedIn: 'root',\n factory: () => [],\n multi: true,\n});\n\n/** Registers a wrapper around every Craft service yield below the provider. */\nexport function provideServiceYieldWrapper(\n _warning: string,\n wrapper: ServiceYieldWrapper,\n): Provider {\n return { provide: SERVICE_YIELD_WRAPPER, useValue: wrapper, multi: true };\n}\n\ntype AppStartResult = Observable<unknown> | Promise<unknown> | void;\n\ntype AnyGeneratorFunction = (\n ...args: never[]\n) => Generator<unknown, unknown, unknown>;\n\nexport type ResolveGeneratorResult<Result> =\n Result extends Generator<any, infer Output, unknown> ? Output : Result;\n\nexport type ExtractFactoryYielded<Factory> = Factory extends (\n ...args: any[]\n) => Generator<infer Yielded, any, unknown>\n ? Yielded\n : never;\n\nexport type GeneratorCompatibleFactory<\n Factory,\n Yielded = never,\n> = Factory extends (...args: infer Args) => infer Result\n ? (\n ...args: Args\n ) => Result | Generator<Yielded, Result | Awaited<Result>, unknown>\n : never;\n\ntype RuntimeServiceYieldRequest<Result = unknown> = Readonly<{\n [SERVICE_YIELD_REQUEST_MARKER]: true;\n name: string;\n providedIn: ConcreteServiceScope;\n resolve: (injector: Injector, hostScope: ConcreteServiceScope) => Result;\n}>;\n\ntype RuntimeServiceDependencyAccessRequest = Readonly<{\n [SERVICE_DEPENDENCY_ACCESS_MARKER]: true;\n key: string;\n resolve: () => unknown;\n}>;\n\ntype RuntimeServiceAppStartRequest = Readonly<{\n [SERVICE_APP_START_REQUEST_MARKER]: true;\n run: () => AppStartResult;\n}>;\n\ntype RuntimeServiceTrackedDepsRequest = Readonly<{\n [SERVICE_TRACKED_DEPS_REQUEST_MARKER]: true;\n}>;\n\n/**\n * Minimal runtime view of a craft resource the guard driver needs to decide\n * whether it has *settled* (`status` is `'resolved'` or `'error'`) and to read\n * the outcome. Mirrors the public resource signals as plain getters so the\n * driver does not depend on the full query/mutation types.\n */\nexport type GuardAwaitResourceLike = {\n status: () => string;\n value: () => unknown;\n error: () => unknown;\n hasException: () => boolean;\n exceptions: () => { list: readonly unknown[] };\n};\n\n/**\n * The request a guard generator yields (via `craftUntilSettled` / `craftUntilDefined`) to\n * suspend until an async craft operation completes. It is **never** handled by\n * the synchronous {@link runCraftGenerator}; only the two-phase route chain\n * driver (`runCraftRouteChainAsync`) understands it. Discriminated by `kind`:\n *\n * - `'settle'` — wait for a craft resource signal to reach a settled status.\n * - `'promise'` — wait for a thenable (e.g. a `CraftHttpClient` request\n * descriptor) to resolve, then resume with its value.\n */\nexport type RuntimeGuardAwaitRequest =\n | Readonly<{\n [GUARD_AWAIT_REQUEST_MARKER]: true;\n kind: 'settle';\n resource: GuardAwaitResourceLike;\n }>\n | Readonly<{\n [GUARD_AWAIT_REQUEST_MARKER]: true;\n kind: 'promise';\n value: PromiseLike<unknown>;\n }>;\n\nexport type RuntimeAwaitRequest =\n | RuntimeGuardAwaitRequest\n | RuntimeTemporalAwaitRequest;\n\nexport function isGuardAwaitRequest(\n value: unknown,\n): value is RuntimeGuardAwaitRequest {\n return (\n typeof value === 'object' &&\n value !== null &&\n GUARD_AWAIT_REQUEST_MARKER in value\n );\n}\n\ntype RunCraftGeneratorOptions = {\n iterator: Generator<unknown, unknown, unknown>;\n injector: Injector | object;\n hostScope: ConcreteServiceScope;\n invalidYieldErrorMessage: string;\n multipleAppStartErrorMessage: string;\n createAppStartHook?: (\n run: RuntimeServiceAppStartRequest['run'],\n ) => () => AppStartResult;\n onAppStartNotSupportedErrorMessage?: string;\n guardAwaitNotSupportedErrorMessage?: string;\n /** Identity of the computation currently consuming reactive values. */\n reactiveReader?: ReactiveReadIdentity;\n};\n\nexport function runCraftGenerator({\n iterator,\n injector: injectorInput,\n hostScope,\n invalidYieldErrorMessage,\n multipleAppStartErrorMessage,\n createAppStartHook,\n onAppStartNotSupportedErrorMessage,\n guardAwaitNotSupportedErrorMessage,\n reactiveReader,\n}: RunCraftGeneratorOptions): {\n value: unknown;\n appStartHook?: () => AppStartResult;\n} {\n const injector = ɵcraftInjectorFromHost(injectorInput);\n let appStartHook: (() => AppStartResult) | undefined;\n let current = iterator.next();\n\n while (!current.done) {\n const yielded = current.value;\n\n if (isReactiveReadRequest(yielded)) {\n for (const observer of injector.get(REACTIVE_READ_OBSERVERS, [])) {\n observer({ reader: reactiveReader, dependency: yielded.identity });\n }\n current = iterator.next(\n ɵwithActiveReactiveReader(yielded.identity, yielded.read),\n );\n continue;\n }\n\n if (isServiceYieldRequest(yielded)) {\n current = iterator.next(\n resolveServiceYield(yielded, injector, hostScope),\n );\n continue;\n }\n\n if (isServiceDependencyAccessRequest(yielded)) {\n current = iterator.next(yielded.resolve());\n continue;\n }\n\n if (isServiceTrackedDepsRequest(yielded)) {\n // Type-level only: the tracked primitive resolves its own dependencies\n // lazily through the injector. Nothing to do at runtime.\n current = iterator.next(undefined);\n continue;\n }\n\n if (isServiceAppStartRequest(yielded)) {\n if (onAppStartNotSupportedErrorMessage) {\n throw new Error(onAppStartNotSupportedErrorMessage);\n }\n\n if (appStartHook) {\n throw new Error(multipleAppStartErrorMessage);\n }\n\n appStartHook = createAppStartHook\n ? createAppStartHook(yielded.run)\n : yielded.run;\n current = iterator.next(undefined);\n continue;\n }\n\n if (isTemporalAwaitRequest(yielded)) {\n throw new Error(\n 'This Craft generator requires the async driver because it yields craftSleep(...).',\n );\n }\n\n if (guardAwaitNotSupportedErrorMessage && isGuardAwaitRequest(yielded)) {\n throw new Error(guardAwaitNotSupportedErrorMessage);\n }\n\n throw new Error(invalidYieldErrorMessage);\n }\n\n return {\n value: current.value,\n appStartHook,\n };\n}\n\nexport function isGenerator(\n value: unknown,\n): value is Generator<unknown, unknown, unknown> {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'next' in value &&\n typeof value.next === 'function'\n );\n}\n\nexport function isGeneratorFunction(\n value: unknown,\n): value is AnyGeneratorFunction {\n return (\n typeof value === 'function' &&\n (value.constructor?.name === 'GeneratorFunction' ||\n Object.prototype.toString.call(value) === '[object GeneratorFunction]')\n );\n}\n\nexport function executeGeneratorCompatibleFactory<\n This,\n Args extends unknown[],\n Result,\n>({\n factory,\n thisArg,\n getInjector,\n args,\n invalidYieldErrorMessage,\n multipleAppStartErrorMessage,\n onAppStartNotSupportedErrorMessage,\n}: {\n factory: (this: This, ...args: Args) => Result;\n thisArg: This;\n getInjector: () => Injector | object;\n args: Args;\n invalidYieldErrorMessage: string;\n multipleAppStartErrorMessage: string;\n onAppStartNotSupportedErrorMessage?: string;\n}): ResolveGeneratorResult<Result> {\n const injector = getInjector();\n const craftInjector = ɵcraftInjectorFromHost(injector);\n const wrappedFactory = craftInjector.run(() => injectFnWrapper()(factory));\n const result = wrappedFactory.apply(thisArg, args);\n\n if (!isGenerator(result)) {\n return result as ResolveGeneratorResult<Result>;\n }\n\n return craftInjector.run(() => {\n return runCraftGenerator({\n iterator: result,\n injector,\n hostScope: 'function',\n invalidYieldErrorMessage,\n multipleAppStartErrorMessage,\n onAppStartNotSupportedErrorMessage,\n }).value as ResolveGeneratorResult<Result>;\n });\n}\n\n/**\n * Resolves a single non-await craft generator yield (service request, dependency\n * access, or tracked-deps marker) exactly as {@link runCraftGenerator}'s loop\n * does. Returns `{ handled: false }` for anything it does not recognise (e.g. a\n * guard await-request or an app-start request) so the caller can decide how to\n * proceed. Shared with the guard driver, which must resolve these yields itself\n * while intercepting guard await-requests.\n */\nexport function resolveCraftGeneratorYield(\n yielded: unknown,\n injector: Injector,\n hostScope: ConcreteServiceScope,\n): { handled: true; value: unknown } | { handled: false } {\n if (isReactiveReadRequest(yielded)) {\n for (const observer of injector.get(REACTIVE_READ_OBSERVERS, [])) {\n observer({ dependency: yielded.identity });\n }\n return {\n handled: true,\n value: ɵwithActiveReactiveReader(yielded.identity, yielded.read),\n };\n }\n\n if (isServiceYieldRequest(yielded)) {\n return {\n handled: true,\n value: resolveServiceYield(yielded, injector, hostScope),\n };\n }\n\n if (isServiceDependencyAccessRequest(yielded)) {\n return { handled: true, value: yielded.resolve() };\n }\n\n if (isServiceTrackedDepsRequest(yielded)) {\n return { handled: true, value: undefined };\n }\n\n return { handled: false };\n}\n\nfunction resolveServiceYield(\n request: RuntimeServiceYieldRequest,\n injector: Injector,\n hostScope: ConcreteServiceScope,\n): unknown {\n const wrappers = injector.get(SERVICE_YIELD_WRAPPER, []);\n const context: ServiceYieldContext = {\n name: request.name,\n providedIn: request.providedIn,\n hostScope,\n injector,\n resolve: () => request.resolve(injector, hostScope),\n };\n\n if (wrappers.length === 0) {\n return context.resolve();\n }\n\n let wrapped: () => Generator<unknown, unknown, unknown> = function* () {\n return context.resolve();\n };\n\n for (let index = wrappers.length - 1; index >= 0; index -= 1) {\n const wrapper = wrappers[index]!;\n const next = wrapped;\n wrapped = () =>\n (function* () {\n return yield* wrapper(context, next);\n })();\n }\n\n return runCraftGenerator({\n iterator: wrapped(),\n injector,\n hostScope,\n invalidYieldErrorMessage:\n 'Service yield wrappers can only yield Craft dependencies.',\n multipleAppStartErrorMessage:\n 'Service yield wrappers cannot declare multiple app-start hooks.',\n onAppStartNotSupportedErrorMessage:\n 'Service yield wrappers cannot declare app-start hooks.',\n }).value;\n}\n\nfunction isServiceYieldRequest(\n value: unknown,\n): value is RuntimeServiceYieldRequest {\n return (\n typeof value === 'object' &&\n value !== null &&\n SERVICE_YIELD_REQUEST_MARKER in value\n );\n}\n\nfunction isServiceDependencyAccessRequest(\n value: unknown,\n): value is RuntimeServiceDependencyAccessRequest {\n return (\n typeof value === 'object' &&\n value !== null &&\n SERVICE_DEPENDENCY_ACCESS_MARKER in value\n );\n}\n\nexport function isServiceAppStartRequest(\n value: unknown,\n): value is RuntimeServiceAppStartRequest {\n return (\n typeof value === 'object' &&\n value !== null &&\n SERVICE_APP_START_REQUEST_MARKER in value\n );\n}\n\nfunction isServiceTrackedDepsRequest(\n value: unknown,\n): value is RuntimeServiceTrackedDepsRequest {\n return (\n typeof value === 'object' &&\n value !== null &&\n SERVICE_TRACKED_DEPS_REQUEST_MARKER in value\n );\n}\n"]}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { Injector } from './host/craft-compat';
|
|
2
|
+
import type { CraftUrlTree } from './craft-router';
|
|
3
|
+
type CraftRouteRouterLike = {
|
|
4
|
+
readonly url?: string;
|
|
5
|
+
createUrlTree: (...args: any[]) => unknown;
|
|
6
|
+
navigate: (...args: any[]) => Promise<boolean>;
|
|
7
|
+
navigateByUrl: (...args: any[]) => Promise<boolean>;
|
|
8
|
+
};
|
|
9
|
+
import { type AnyCraftException } from './craft-exception';
|
|
10
|
+
import { type CraftExceptionComponentInput, type CraftExceptionHandlerContext, type CraftExceptionOutcome, type CraftRoutePhase } from './craft-route-exceptions';
|
|
11
|
+
/**
|
|
12
|
+
* The result of a synchronous guard re-evaluation (reactive "live" guards):
|
|
13
|
+
* - `valid` — the guard passed without producing an exception;
|
|
14
|
+
* - `exception` — the guard short-circuited / returned a `craftException`;
|
|
15
|
+
* - `pending` — the guard suspended on a not-yet-settled `craftUntilSettled` (cannot be
|
|
16
|
+
* resolved synchronously) — the reactive check treats this as "still valid".
|
|
17
|
+
*/
|
|
18
|
+
export type CraftGuardSyncResult = {
|
|
19
|
+
kind: 'valid';
|
|
20
|
+
value: unknown;
|
|
21
|
+
} | {
|
|
22
|
+
kind: 'exception';
|
|
23
|
+
exception: AnyCraftException;
|
|
24
|
+
} | {
|
|
25
|
+
kind: 'pending';
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Evaluates a guard generator **synchronously** for the reactive `phase: 'active'`
|
|
29
|
+
* re-check. Pumping the generator reads the craft signals it yields synchronously,
|
|
30
|
+
* so an enclosing `effect` tracks them; a settled `craftUntilSettled` resolves on the
|
|
31
|
+
* fast path, while a not-yet-settled await yields `'pending'` (no suspension).
|
|
32
|
+
*/
|
|
33
|
+
export declare function evaluateCraftGuardSync(iterator: Generator<unknown, unknown, unknown>, injector: Injector): CraftGuardSyncResult;
|
|
34
|
+
/** The settled result of a route's guard/resolve chain, consumed by the outlet. */
|
|
35
|
+
export type RouteChainOutcome = {
|
|
36
|
+
kind: 'data';
|
|
37
|
+
guardData: unknown;
|
|
38
|
+
resolveData: unknown;
|
|
39
|
+
} | {
|
|
40
|
+
kind: 'redirect';
|
|
41
|
+
target: CraftUrlTree | string;
|
|
42
|
+
} | {
|
|
43
|
+
kind: 'render';
|
|
44
|
+
component: CraftExceptionComponentInput;
|
|
45
|
+
exception: AnyCraftException;
|
|
46
|
+
} | {
|
|
47
|
+
kind: 'global';
|
|
48
|
+
exception: AnyCraftException;
|
|
49
|
+
} | {
|
|
50
|
+
kind: 'stay';
|
|
51
|
+
} | {
|
|
52
|
+
kind: 'noop';
|
|
53
|
+
} | {
|
|
54
|
+
kind: 'thrownError';
|
|
55
|
+
error: unknown;
|
|
56
|
+
};
|
|
57
|
+
export type CraftRouteExceptionHandler = (context: CraftExceptionHandlerContext<AnyCraftException>) => Generator<unknown, CraftExceptionOutcome, unknown>;
|
|
58
|
+
/** Runtime view of a route's `handleExceptions`, keyed by exception code. */
|
|
59
|
+
export type CraftRouteExceptionHandlerMap = Record<string, CraftRouteExceptionHandler | undefined>;
|
|
60
|
+
export interface CraftRouteChainSteps {
|
|
61
|
+
/** `canMatch` generator — run first; its success value is discarded. */
|
|
62
|
+
match?: Generator<unknown, unknown, unknown>;
|
|
63
|
+
/** `canActivate` generator — its success value is the route's guarded data. */
|
|
64
|
+
guard?: Generator<unknown, unknown, unknown>;
|
|
65
|
+
/** `resolve` generator — its success value is the route's resolved data. */
|
|
66
|
+
resolve?: Generator<unknown, unknown, unknown>;
|
|
67
|
+
}
|
|
68
|
+
export declare function runCraftRouteChainAsync(steps: CraftRouteChainSteps, injector: Injector, router: CraftRouteRouterLike, handleExceptions: CraftRouteExceptionHandlerMap, phase?: CraftRoutePhase): Promise<RouteChainOutcome>;
|
|
69
|
+
export {};
|
|
70
|
+
//# sourceMappingURL=craft-guard-runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"craft-guard-runtime.d.ts","sourceRoot":"","sources":["../../../../../libs/core/src/lib/craft-guard-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAyB,MAAM,qBAAqB,CAAC;AACtE,OAAO,KAAK,EAAe,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEhE,KAAK,oBAAoB,GAAG;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC;IAC3C,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/C,aAAa,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACrD,CAAC;AACF,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAEL,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,EACjC,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACrB,MAAM,0BAA0B,CAAC;AAiBlC;;;;;;GAMG;AACH,MAAM,MAAM,oBAAoB,GAC5B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,iBAAiB,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC;AAExB;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAC9C,QAAQ,EAAE,QAAQ,GACjB,oBAAoB,CA0BtB;AAYD,mFAAmF;AACnF,MAAM,MAAM,iBAAiB,GACzB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAAA;CAAE,GACnD;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,4BAA4B,CAAC;IACxC,SAAS,EAAE,iBAAiB,CAAC;CAC9B,GACD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,iBAAiB,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAE5C,MAAM,MAAM,0BAA0B,GAAG,CACvC,OAAO,EAAE,4BAA4B,CAAC,iBAAiB,CAAC,KACrD,SAAS,CAAC,OAAO,EAAE,qBAAqB,EAAE,OAAO,CAAC,CAAC;AAExD,6EAA6E;AAC7E,MAAM,MAAM,6BAA6B,GAAG,MAAM,CAChD,MAAM,EACN,0BAA0B,GAAG,SAAS,CACvC,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,wEAAwE;IACxE,KAAK,CAAC,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,+EAA+E;IAC/E,KAAK,CAAC,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,4EAA4E;IAC5E,OAAO,CAAC,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;CAChD;AAmSD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,oBAAoB,EAC3B,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,oBAAoB,EAC5B,gBAAgB,EAAE,6BAA6B,EAC/C,KAAK,GAAE,eAAyB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,CAkB5B"}
|