@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-router-types.d.ts","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/host/craft-router-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Craft-owned structural stand-ins for the Angular router types that the
|
|
3
|
+
* `craftRoutes` type graph still names. The DSL is unchanged; only the host
|
|
4
|
+
* types are local.
|
|
5
|
+
*/
|
|
6
|
+
import { InjectionToken } from './craft-compat';
|
|
7
|
+
/**
|
|
8
|
+
* Emitted once a navigation has committed. Craft's own navigation stream
|
|
9
|
+
* reports the same two moments Angular's did, so trace consumers keep working.
|
|
10
|
+
*/
|
|
11
|
+
export class NavigationEnd {
|
|
12
|
+
id;
|
|
13
|
+
url;
|
|
14
|
+
urlAfterRedirects;
|
|
15
|
+
constructor(id, url, urlAfterRedirects) {
|
|
16
|
+
this.id = id;
|
|
17
|
+
this.url = url;
|
|
18
|
+
this.urlAfterRedirects = urlAfterRedirects;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export const ActivatedRoute = new InjectionToken('ActivatedRoute');
|
|
22
|
+
export class TitleStrategy {
|
|
23
|
+
buildTitle(snapshot) {
|
|
24
|
+
let current = snapshot.root;
|
|
25
|
+
let title;
|
|
26
|
+
while (current) {
|
|
27
|
+
if (typeof current.title === 'string') {
|
|
28
|
+
title = current.title;
|
|
29
|
+
}
|
|
30
|
+
current = current.firstChild;
|
|
31
|
+
}
|
|
32
|
+
return title;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=craft-router-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"craft-router-types.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/host/craft-router-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAmChD;;;GAGG;AACH,MAAM,OAAO,aAAa;IACf,EAAE,CAAS;IACX,GAAG,CAAS;IACZ,iBAAiB,CAAS;IAEnC,YAAY,EAAU,EAAE,GAAW,EAAE,iBAAyB;QAC5D,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC7C,CAAC;CACF;AAoDD,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,cAAc,CAC9C,gBAAgB,CACjB,CAAC;AAEF,MAAM,OAAgB,aAAa;IAEjC,UAAU,CAAC,QAA6B;QACtC,IAAI,OAAO,GAAkC,QAAQ,CAAC,IAAI,CAAC;QAC3D,IAAI,KAAyB,CAAC;QAC9B,OAAO,OAAO,EAAE,CAAC;YACf,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACtC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YACxB,CAAC;YACD,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;QAC/B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF","sourcesContent":["/**\n * Craft-owned structural stand-ins for the Angular router types that the\n * `craftRoutes` type graph still names. The DSL is unchanged; only the host\n * types are local.\n */\n\nimport { InjectionToken } from './craft-compat';\n\nexport type Data = Record<string, unknown>;\n\nexport type UrlSegment = {\n path: string;\n parameters: Record<string, string>;\n};\n\nexport type ParamMap = {\n has(name: string): boolean;\n get(name: string): string | null;\n getAll(name: string): string[];\n keys: string[];\n};\n\nexport type UrlTree = {\n toString(): string;\n};\n\nexport type GuardResult = boolean | UrlTree;\n\n/** Route params, keyed by the `:name` segments that produced them. */\nexport type Params = Record<string, string>;\n\nexport type CanActivateFn = (\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot,\n) => GuardResult | Promise<GuardResult>;\n\nexport type CanMatchFn = (\n route: Route,\n segments: UrlSegment[],\n) => GuardResult | Promise<GuardResult>;\n\n/**\n * Emitted once a navigation has committed. Craft's own navigation stream\n * reports the same two moments Angular's did, so trace consumers keep working.\n */\nexport class NavigationEnd {\n readonly id: number;\n readonly url: string;\n readonly urlAfterRedirects: string;\n\n constructor(id: number, url: string, urlAfterRedirects: string) {\n this.id = id;\n this.url = url;\n this.urlAfterRedirects = urlAfterRedirects;\n }\n}\n\nexport type Route = {\n path?: string;\n pathMatch?: 'full' | 'prefix';\n component?: unknown;\n loadComponent?: () => Promise<unknown> | unknown;\n loadChildren?: () => Promise<unknown> | unknown;\n children?: Route[];\n canActivate?: unknown[];\n canMatch?: unknown[];\n canActivateChild?: unknown[];\n resolve?: Record<string, unknown>;\n data?: Data;\n // Readonly: a route's providers are an input the router only ever reads, and\n // helpers like loadCraftComponent hand back `readonly` arrays.\n providers?: readonly unknown[];\n title?: string | (() => string | Promise<string>);\n outlet?: string;\n redirectTo?: string | ((redirectData: PartialMatchRouteSnapshot) => unknown);\n};\n\nexport type ActivatedRouteSnapshot = {\n routeConfig: Route | null;\n url: UrlSegment[];\n params: Record<string, string>;\n queryParams: Record<string, string>;\n fragment: string | null;\n data: Data;\n outlet: string;\n title?: string;\n paramMap: ParamMap;\n queryParamMap: ParamMap;\n parent: ActivatedRouteSnapshot | null;\n root: ActivatedRouteSnapshot;\n firstChild: ActivatedRouteSnapshot | null;\n children: ActivatedRouteSnapshot[];\n pathFromRoot: ActivatedRouteSnapshot[];\n};\n\nexport type RouterStateSnapshot = {\n url: string;\n root: ActivatedRouteSnapshot;\n};\n\nexport type PartialMatchRouteSnapshot = ActivatedRouteSnapshot;\n\nexport type ActivatedRoute = {\n snapshot: ActivatedRouteSnapshot;\n pathFromRoot: ActivatedRoute[];\n};\n\nexport const ActivatedRoute = new InjectionToken<ActivatedRoute>(\n 'ActivatedRoute',\n);\n\nexport abstract class TitleStrategy {\n abstract updateTitle(snapshot: RouterStateSnapshot): void;\n buildTitle(snapshot: RouterStateSnapshot): string | undefined {\n let current: ActivatedRouteSnapshot | null = snapshot.root;\n let title: string | undefined;\n while (current) {\n if (typeof current.title === 'string') {\n title = current.title;\n }\n current = current.firstChild;\n }\n return title;\n }\n}\n"]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export declare const CRAFT_SIGNAL: unique symbol;
|
|
2
|
+
export type CraftSignal<T> = (() => T) & {
|
|
3
|
+
readonly [CRAFT_SIGNAL]: true;
|
|
4
|
+
};
|
|
5
|
+
export type CraftWritableSignal<T> = CraftSignal<T> & {
|
|
6
|
+
set(value: T): void;
|
|
7
|
+
update(fn: (value: T) => T): void;
|
|
8
|
+
asReadonly(): CraftSignal<T>;
|
|
9
|
+
};
|
|
10
|
+
type CraftSignalOptions<T> = {
|
|
11
|
+
readonly equal?: (a: T, b: T) => boolean;
|
|
12
|
+
readonly debugName?: string;
|
|
13
|
+
};
|
|
14
|
+
type CraftWatchOptions = {
|
|
15
|
+
readonly debugName?: string;
|
|
16
|
+
readonly injector?: unknown;
|
|
17
|
+
readonly manualCleanup?: boolean;
|
|
18
|
+
};
|
|
19
|
+
export declare function ɵbrandAsCraftSignal<T>(value: () => T): CraftSignal<T>;
|
|
20
|
+
export declare function craftSignal<T>(initial: T, options?: CraftSignalOptions<T>): CraftWritableSignal<T>;
|
|
21
|
+
export declare function craftComputed<T>(compute: () => T): CraftSignal<T>;
|
|
22
|
+
export declare function craftComputed<T>(compute: () => T, options: CraftSignalOptions<T>): CraftSignal<T>;
|
|
23
|
+
export declare function craftLinkedSignal<T>(options: {
|
|
24
|
+
source: () => unknown;
|
|
25
|
+
computation: () => T;
|
|
26
|
+
equal?: (a: T, b: T) => boolean;
|
|
27
|
+
debugName?: string;
|
|
28
|
+
}): CraftWritableSignal<T>;
|
|
29
|
+
export declare function craftWatch(fn: () => void | (() => void), _options?: CraftWatchOptions): {
|
|
30
|
+
destroy(): void;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Publishes every write made inside `fn` as ONE update: readers and effects run
|
|
34
|
+
* after the last write, never between two of them.
|
|
35
|
+
*
|
|
36
|
+
* Craft effects run synchronously, so two writes that only make sense together
|
|
37
|
+
* — a nonce and the params it tags, a value and the status that describes it —
|
|
38
|
+
* have to say so, or a reader woken by the first one observes the half-written
|
|
39
|
+
* state and acts on it.
|
|
40
|
+
*/
|
|
41
|
+
export declare function craftBatch<T>(fn: () => T): T;
|
|
42
|
+
export declare function untracked<T>(fn: () => T): T;
|
|
43
|
+
export declare function isCraftSignal(value: unknown): value is CraftSignal<unknown>;
|
|
44
|
+
export {};
|
|
45
|
+
//# sourceMappingURL=craft-signal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"craft-signal.d.ts","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/host/craft-signal.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,YAAY,eAAyB,CAAC;AAEnD,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG;IACvC,QAAQ,CAAC,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG;IACpD,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAClC,UAAU,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;CAC9B,CAAC;AAEF,KAAK,kBAAkB,CAAC,CAAC,IAAI;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC;IACzC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;CAClC,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAErE;AA0BD,wBAAgB,WAAW,CAAC,CAAC,EAC3B,OAAO,EAAE,CAAC,EACV,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC9B,mBAAmB,CAAC,CAAC,CAAC,CAwBxB;AAeD,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AACnE,wBAAgB,aAAa,CAAC,CAAC,EAC7B,OAAO,EAAE,MAAM,CAAC,EAChB,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC7B,WAAW,CAAC,CAAC,CAAC,CAAC;AAqClB,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,EAAE;IAC5C,MAAM,EAAE,MAAM,OAAO,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC,CAAC;IACrB,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAwCzB;AAED,wBAAgB,UAAU,CACxB,EAAE,EAAE,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAC7B,QAAQ,CAAC,EAAE,iBAAiB,GAC3B;IAAE,OAAO,IAAI,IAAI,CAAA;CAAE,CAOrB;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAO5C;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAO3C;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAAC,OAAO,CAAC,CAK3E"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { computed, effect, endBatch, setActiveSub, signal, startBatch, } from 'alien-signals';
|
|
2
|
+
import { RAW_REACTIVE_VALUE } from '../reactive-read';
|
|
3
|
+
// alien-signals v3 flushes effects synchronously. Outlet view-transition
|
|
4
|
+
// swaps also run CRAFT_SYNC_TEMPLATE_FLUSH inside startViewTransition.
|
|
5
|
+
export const CRAFT_SIGNAL = Symbol('craft-signal');
|
|
6
|
+
export function ɵbrandAsCraftSignal(value) {
|
|
7
|
+
return brand(value);
|
|
8
|
+
}
|
|
9
|
+
function brand(value) {
|
|
10
|
+
Object.defineProperties(value, {
|
|
11
|
+
[CRAFT_SIGNAL]: {
|
|
12
|
+
value: true,
|
|
13
|
+
enumerable: false,
|
|
14
|
+
},
|
|
15
|
+
[RAW_REACTIVE_VALUE]: {
|
|
16
|
+
value,
|
|
17
|
+
enumerable: false,
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
return value;
|
|
21
|
+
}
|
|
22
|
+
function withAsReadonly(value) {
|
|
23
|
+
const writable = value;
|
|
24
|
+
if (typeof writable.asReadonly !== 'function') {
|
|
25
|
+
writable.asReadonly = () => value;
|
|
26
|
+
}
|
|
27
|
+
return value;
|
|
28
|
+
}
|
|
29
|
+
export function craftSignal(initial, options) {
|
|
30
|
+
// The value travels in a fresh box on every accepted write. alien-signals
|
|
31
|
+
// compares the stored value by identity and drops a write that does not
|
|
32
|
+
// change it — which would silently override `equal`, the very option callers
|
|
33
|
+
// use to publish an in-place mutation (`map.set(k, v); return map`). Boxing
|
|
34
|
+
// makes `equal` the only thing that decides whether a write propagates.
|
|
35
|
+
const raw = signal({ value: initial });
|
|
36
|
+
const equal = options?.equal ?? Object.is;
|
|
37
|
+
const read = () => raw().value;
|
|
38
|
+
const value = (() => read());
|
|
39
|
+
value.set = (next) => {
|
|
40
|
+
if (!equal(untracked(read), next)) {
|
|
41
|
+
raw({ value: next });
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
value.update = (update) => value.set(update(untracked(read)));
|
|
45
|
+
const branded = brand(value);
|
|
46
|
+
branded.asReadonly = () => craftComputed(() => branded());
|
|
47
|
+
return branded;
|
|
48
|
+
}
|
|
49
|
+
export function craftComputed(compute, options) {
|
|
50
|
+
const equal = options?.equal ?? Object.is;
|
|
51
|
+
let hasPrevious = false;
|
|
52
|
+
const derived = computed((previous) => {
|
|
53
|
+
let next;
|
|
54
|
+
try {
|
|
55
|
+
next = { ok: true, value: compute() };
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
next = { ok: false, error };
|
|
59
|
+
}
|
|
60
|
+
// Identity is preserved only between two equal VALUES: a throw is never
|
|
61
|
+
// equal to anything, so a recovering computation always notifies.
|
|
62
|
+
const result = hasPrevious && previous?.ok && next.ok && equal(previous.value, next.value)
|
|
63
|
+
? previous
|
|
64
|
+
: next;
|
|
65
|
+
hasPrevious = true;
|
|
66
|
+
return result;
|
|
67
|
+
});
|
|
68
|
+
const value = (() => {
|
|
69
|
+
const settlement = derived();
|
|
70
|
+
// A computed read from inside its own first evaluation has nothing settled
|
|
71
|
+
// yet, and alien-signals hands back the node's still-unassigned value. That
|
|
72
|
+
// is a cycle in the graph, and it stays the caller's to resolve — but it
|
|
73
|
+
// reads as `undefined`, exactly as it did before outcomes were boxed, and
|
|
74
|
+
// not as a TypeError raised in here about a wrapper the caller never saw.
|
|
75
|
+
if (settlement === undefined)
|
|
76
|
+
return undefined;
|
|
77
|
+
if (!settlement.ok)
|
|
78
|
+
throw settlement.error;
|
|
79
|
+
return settlement.value;
|
|
80
|
+
});
|
|
81
|
+
return withAsReadonly(brand(value));
|
|
82
|
+
}
|
|
83
|
+
export function craftLinkedSignal(options) {
|
|
84
|
+
const revision = signal(0);
|
|
85
|
+
const equal = options.equal ?? Object.is;
|
|
86
|
+
let hasSource = false;
|
|
87
|
+
let previousSource;
|
|
88
|
+
let hasComputedValue = false;
|
|
89
|
+
let localOverride = false;
|
|
90
|
+
let localValue;
|
|
91
|
+
const derived = computed((previous) => {
|
|
92
|
+
revision();
|
|
93
|
+
const source = options.source();
|
|
94
|
+
if (!hasSource || !Object.is(previousSource, source)) {
|
|
95
|
+
hasSource = true;
|
|
96
|
+
previousSource = source;
|
|
97
|
+
localOverride = false;
|
|
98
|
+
}
|
|
99
|
+
if (localOverride) {
|
|
100
|
+
return localValue;
|
|
101
|
+
}
|
|
102
|
+
const next = options.computation();
|
|
103
|
+
const result = hasComputedValue && equal(previous, next) ? previous : next;
|
|
104
|
+
hasComputedValue = true;
|
|
105
|
+
return result;
|
|
106
|
+
});
|
|
107
|
+
const value = (() => derived());
|
|
108
|
+
value.set = (next) => {
|
|
109
|
+
if (!hasSource) {
|
|
110
|
+
previousSource = untracked(options.source);
|
|
111
|
+
hasSource = true;
|
|
112
|
+
}
|
|
113
|
+
localValue = next;
|
|
114
|
+
localOverride = true;
|
|
115
|
+
revision(untracked(() => revision()) + 1);
|
|
116
|
+
};
|
|
117
|
+
value.update = (update) => value.set(update(untracked(() => derived())));
|
|
118
|
+
const branded = brand(value);
|
|
119
|
+
branded.asReadonly = () => craftComputed(() => branded());
|
|
120
|
+
return branded;
|
|
121
|
+
}
|
|
122
|
+
export function craftWatch(fn, _options) {
|
|
123
|
+
// alien-signals has no injector ownership. The overload preserves the Task 2
|
|
124
|
+
// call shape; boundary helpers remain responsible for injector teardown.
|
|
125
|
+
// Detach watches from the currently active Alien subscriber so an
|
|
126
|
+
// independently-owned watch is not disposed with a transient parent effect.
|
|
127
|
+
const destroy = untracked(() => effect(fn));
|
|
128
|
+
return { destroy };
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Publishes every write made inside `fn` as ONE update: readers and effects run
|
|
132
|
+
* after the last write, never between two of them.
|
|
133
|
+
*
|
|
134
|
+
* Craft effects run synchronously, so two writes that only make sense together
|
|
135
|
+
* — a nonce and the params it tags, a value and the status that describes it —
|
|
136
|
+
* have to say so, or a reader woken by the first one observes the half-written
|
|
137
|
+
* state and acts on it.
|
|
138
|
+
*/
|
|
139
|
+
export function craftBatch(fn) {
|
|
140
|
+
startBatch();
|
|
141
|
+
try {
|
|
142
|
+
return fn();
|
|
143
|
+
}
|
|
144
|
+
finally {
|
|
145
|
+
endBatch();
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
export function untracked(fn) {
|
|
149
|
+
const previous = setActiveSub();
|
|
150
|
+
try {
|
|
151
|
+
return fn();
|
|
152
|
+
}
|
|
153
|
+
finally {
|
|
154
|
+
setActiveSub(previous);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
export function isCraftSignal(value) {
|
|
158
|
+
return (typeof value === 'function' &&
|
|
159
|
+
value[CRAFT_SIGNAL] === true);
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=craft-signal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"craft-signal.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/host/craft-signal.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n computed,\n effect,\n endBatch,\n setActiveSub,\n signal,\n startBatch,\n} from 'alien-signals';\nimport { RAW_REACTIVE_VALUE } from '../reactive-read';\n\n// alien-signals v3 flushes effects synchronously. Outlet view-transition\n// swaps also run CRAFT_SYNC_TEMPLATE_FLUSH inside startViewTransition.\nexport const CRAFT_SIGNAL = Symbol('craft-signal');\n\nexport type CraftSignal<T> = (() => T) & {\n readonly [CRAFT_SIGNAL]: true;\n};\n\nexport type CraftWritableSignal<T> = CraftSignal<T> & {\n set(value: T): void;\n update(fn: (value: T) => T): void;\n asReadonly(): CraftSignal<T>;\n};\n\ntype CraftSignalOptions<T> = {\n readonly equal?: (a: T, b: T) => boolean;\n readonly debugName?: string;\n};\n\ntype CraftWatchOptions = {\n readonly debugName?: string;\n readonly injector?: unknown;\n readonly manualCleanup?: boolean;\n};\n\nexport function ɵbrandAsCraftSignal<T>(value: () => T): CraftSignal<T> {\n return brand(value) as CraftSignal<T>;\n}\n\nfunction brand<T, SignalType extends () => T>(value: SignalType): SignalType {\n Object.defineProperties(value, {\n [CRAFT_SIGNAL]: {\n value: true,\n enumerable: false,\n },\n [RAW_REACTIVE_VALUE]: {\n value,\n enumerable: false,\n },\n });\n return value;\n}\n\nfunction withAsReadonly<T>(\n value: CraftWritableSignal<T> | CraftSignal<T>,\n): typeof value {\n const writable = value as CraftWritableSignal<T>;\n if (typeof writable.asReadonly !== 'function') {\n writable.asReadonly = () => value;\n }\n return value;\n}\n\nexport function craftSignal<T>(\n initial: T,\n options?: CraftSignalOptions<T>,\n): CraftWritableSignal<T> {\n // The value travels in a fresh box on every accepted write. alien-signals\n // compares the stored value by identity and drops a write that does not\n // change it — which would silently override `equal`, the very option callers\n // use to publish an in-place mutation (`map.set(k, v); return map`). Boxing\n // makes `equal` the only thing that decides whether a write propagates.\n const raw = signal<{ value: T }>({ value: initial });\n const equal = options?.equal ?? Object.is;\n const read = () => raw().value;\n const value = (() => read()) as CraftWritableSignal<T>;\n value.set = (next) => {\n if (\n !equal(\n untracked(read),\n next,\n )\n ) {\n raw({ value: next });\n }\n };\n value.update = (update) => value.set(update(untracked(read)));\n const branded = brand(value);\n branded.asReadonly = () => craftComputed(() => branded());\n return branded;\n}\n\n/**\n * A computation's outcome, value or throw. Craft signals suspension\n * (`CraftNotSettled`) and business exceptions (`CraftGenShortCircuit`) by\n * throwing out of a computation, and alien-signals leaves a getter that threw\n * marked CLEAN with its value never assigned — every later read would then hand\n * back a stale value (or `undefined`) instead of raising again. Settling the\n * throw into a value keeps the node honest: it is cached, re-raised on read,\n * and invalidated by the same dependencies as a normal result.\n */\ntype CraftSettlement<T> =\n | { readonly ok: true; readonly value: T }\n | { readonly ok: false; readonly error: unknown };\n\nexport function craftComputed<T>(compute: () => T): CraftSignal<T>;\nexport function craftComputed<T>(\n compute: () => T,\n options: CraftSignalOptions<T>,\n): CraftSignal<T>;\nexport function craftComputed<T>(\n compute: () => T,\n options?: CraftSignalOptions<T>,\n): CraftSignal<T> {\n const equal = options?.equal ?? Object.is;\n let hasPrevious = false;\n const derived = computed<CraftSettlement<T>>((previous) => {\n let next: CraftSettlement<T>;\n try {\n next = { ok: true, value: compute() };\n } catch (error) {\n next = { ok: false, error };\n }\n // Identity is preserved only between two equal VALUES: a throw is never\n // equal to anything, so a recovering computation always notifies.\n const result =\n hasPrevious && previous?.ok && next.ok && equal(previous.value, next.value)\n ? previous\n : next;\n hasPrevious = true;\n return result;\n });\n const value = (() => {\n const settlement = derived();\n // A computed read from inside its own first evaluation has nothing settled\n // yet, and alien-signals hands back the node's still-unassigned value. That\n // is a cycle in the graph, and it stays the caller's to resolve — but it\n // reads as `undefined`, exactly as it did before outcomes were boxed, and\n // not as a TypeError raised in here about a wrapper the caller never saw.\n if (settlement === undefined) return undefined as T;\n if (!settlement.ok) throw settlement.error;\n return settlement.value;\n }) as CraftSignal<T>;\n return withAsReadonly(brand(value)) as CraftSignal<T>;\n}\n\nexport function craftLinkedSignal<T>(options: {\n source: () => unknown;\n computation: () => T;\n equal?: (a: T, b: T) => boolean;\n debugName?: string;\n}): CraftWritableSignal<T> {\n const revision = signal(0);\n const equal = options.equal ?? Object.is;\n let hasSource = false;\n let previousSource: unknown;\n let hasComputedValue = false;\n let localOverride = false;\n let localValue!: T;\n\n const derived = computed<T>((previous) => {\n revision();\n const source = options.source();\n if (!hasSource || !Object.is(previousSource, source)) {\n hasSource = true;\n previousSource = source;\n localOverride = false;\n }\n if (localOverride) {\n return localValue;\n }\n const next = options.computation();\n const result =\n hasComputedValue && equal(previous as T, next) ? (previous as T) : next;\n hasComputedValue = true;\n return result;\n });\n const value = (() => derived()) as CraftWritableSignal<T>;\n value.set = (next) => {\n if (!hasSource) {\n previousSource = untracked(options.source);\n hasSource = true;\n }\n localValue = next;\n localOverride = true;\n revision(untracked(() => revision()) + 1);\n };\n value.update = (update) => value.set(update(untracked(() => derived())));\n const branded = brand(value);\n branded.asReadonly = () => craftComputed(() => branded());\n return branded;\n}\n\nexport function craftWatch(\n fn: () => void | (() => void),\n _options?: CraftWatchOptions,\n): { destroy(): void } {\n // alien-signals has no injector ownership. The overload preserves the Task 2\n // call shape; boundary helpers remain responsible for injector teardown.\n // Detach watches from the currently active Alien subscriber so an\n // independently-owned watch is not disposed with a transient parent effect.\n const destroy = untracked(() => effect(fn));\n return { destroy };\n}\n\n/**\n * Publishes every write made inside `fn` as ONE update: readers and effects run\n * after the last write, never between two of them.\n *\n * Craft effects run synchronously, so two writes that only make sense together\n * — a nonce and the params it tags, a value and the status that describes it —\n * have to say so, or a reader woken by the first one observes the half-written\n * state and acts on it.\n */\nexport function craftBatch<T>(fn: () => T): T {\n startBatch();\n try {\n return fn();\n } finally {\n endBatch();\n }\n}\n\nexport function untracked<T>(fn: () => T): T {\n const previous = setActiveSub();\n try {\n return fn();\n } finally {\n setActiveSub(previous);\n }\n}\n\nexport function isCraftSignal(value: unknown): value is CraftSignal<unknown> {\n return (\n typeof value === 'function' &&\n (value as Partial<CraftSignal<unknown>>)[CRAFT_SIGNAL] === true\n );\n}\n"]}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { type CraftInjector } from './craft-injector';
|
|
2
|
+
import { type ProviderToken } from './craft-compat';
|
|
3
|
+
export type CraftComponentFixture<T = unknown> = {
|
|
4
|
+
readonly nativeElement: HTMLElement;
|
|
5
|
+
readonly componentInstance: T;
|
|
6
|
+
detectChanges(): void;
|
|
7
|
+
destroy(): void;
|
|
8
|
+
};
|
|
9
|
+
type CraftTestMounter = (component: unknown, host: Element, injector: CraftInjector) => {
|
|
10
|
+
instance: unknown;
|
|
11
|
+
destroy(): void;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* `@craft-ts/component` installs the renderer here on import — core has no way
|
|
15
|
+
* to mount anything on its own.
|
|
16
|
+
*/
|
|
17
|
+
export declare function ɵsetCraftTestMounter(next: CraftTestMounter): void;
|
|
18
|
+
/**
|
|
19
|
+
* The Craft stand-in for Angular's `TestBed`.
|
|
20
|
+
*
|
|
21
|
+
* Specs only ever used six of its methods, and every one of them is really a
|
|
22
|
+
* question about a root injector: configure providers, resolve a token, run a
|
|
23
|
+
* callback in context. This keeps that call shape so the suites read the same,
|
|
24
|
+
* while the thing underneath is a plain `CraftInjector` — no platform, no
|
|
25
|
+
* testing module, no compiler.
|
|
26
|
+
*/
|
|
27
|
+
declare class CraftTestBed {
|
|
28
|
+
private providers;
|
|
29
|
+
private injector;
|
|
30
|
+
/**
|
|
31
|
+
* Angular needed a platform booted once per process. Craft does not, so this
|
|
32
|
+
* exists purely so the `beforeAll` blocks in the ported specs keep compiling.
|
|
33
|
+
*/
|
|
34
|
+
initTestEnvironment(..._args: unknown[]): void;
|
|
35
|
+
configureTestingModule(config: {
|
|
36
|
+
providers?: readonly unknown[];
|
|
37
|
+
}): this;
|
|
38
|
+
/** Craft has no template compiler, so there is nothing to compile. */
|
|
39
|
+
compileComponents(): Promise<void>;
|
|
40
|
+
/** The lazily built root injector, including Craft's `providedIn: 'root'` defaults. */
|
|
41
|
+
get rootInjector(): CraftInjector;
|
|
42
|
+
inject<T>(token: ProviderToken<T>): T;
|
|
43
|
+
inject<T>(token: ProviderToken<T>, notFoundValue: T | null): T | null;
|
|
44
|
+
runInInjectionContext<T>(fn: () => T): T;
|
|
45
|
+
/**
|
|
46
|
+
* alien-signals notifies effects synchronously, so by the time a write
|
|
47
|
+
* returns its effects have already run and there is nothing left to drain.
|
|
48
|
+
*/
|
|
49
|
+
flushEffects(): void;
|
|
50
|
+
/** Angular's change-detection pump. Same story as {@link flushEffects}. */
|
|
51
|
+
tick(): void;
|
|
52
|
+
/**
|
|
53
|
+
* Mounts a Craft component and returns an Angular-shaped fixture, so the
|
|
54
|
+
* specs written against `TestBed.createComponent(...)` keep their shape.
|
|
55
|
+
* `detectChanges` has nothing to do — the mount already rendered.
|
|
56
|
+
*/
|
|
57
|
+
createComponent<T = unknown>(component: unknown): CraftComponentFixture<T>;
|
|
58
|
+
resetTestingModule(): this;
|
|
59
|
+
private disposeInjector;
|
|
60
|
+
}
|
|
61
|
+
export declare const TestBed: CraftTestBed;
|
|
62
|
+
export {};
|
|
63
|
+
//# sourceMappingURL=craft-test-bed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"craft-test-bed.d.ts","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/host/craft-test-bed.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAML,KAAK,aAAa,EACnB,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,qBAAqB,CAAC,CAAC,GAAG,OAAO,IAAI;IAC/C,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC;IACpC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAC9B,aAAa,IAAI,IAAI,CAAC;IACtB,OAAO,IAAI,IAAI,CAAC;CACjB,CAAC;AAEF,KAAK,gBAAgB,GAAG,CACtB,SAAS,EAAE,OAAO,EAClB,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,aAAa,KACpB;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,OAAO,IAAI,IAAI,CAAA;CAAE,CAAC;AAI5C;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAEjE;AAeD;;;;;;;;GAQG;AACH,cAAM,YAAY;IAChB,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAAqD;IAErE;;;OAGG;IACH,mBAAmB,CAAC,GAAG,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI;IAI9C,sBAAsB,CAAC,MAAM,EAAE;QAAE,SAAS,CAAC,EAAE,SAAS,OAAO,EAAE,CAAA;KAAE,GAAG,IAAI;IAUxE,sEAAsE;IAChE,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxC,uFAAuF;IACvF,IAAI,YAAY,IAAI,aAAa,CAShC;IAED,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC;IACrC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI;IASrE,qBAAqB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;IAIxC;;;OAGG;IACH,YAAY,IAAI,IAAI;IAIpB,2EAA2E;IAC3E,IAAI,IAAI,IAAI;IAIZ;;;;OAIG;IACH,eAAe,CAAC,CAAC,GAAG,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,qBAAqB,CAAC,CAAC,CAAC;IAqB1E,kBAAkB,IAAI,IAAI;IAM1B,OAAO,CAAC,eAAe;CAUxB;AAED,eAAO,MAAM,OAAO,cAAqB,CAAC"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { createCraftInjector, } from './craft-injector';
|
|
2
|
+
import { createEnvironmentInjector, getCraftRootDefaultProviders, ɵdestroyCraftDestroyRef, } from './craft-compat';
|
|
3
|
+
let mounter;
|
|
4
|
+
/**
|
|
5
|
+
* `@craft-ts/component` installs the renderer here on import — core has no way
|
|
6
|
+
* to mount anything on its own.
|
|
7
|
+
*/
|
|
8
|
+
export function ɵsetCraftTestMounter(next) {
|
|
9
|
+
mounter = next;
|
|
10
|
+
}
|
|
11
|
+
function ɵmountCraftTestComponent(component, host, injector) {
|
|
12
|
+
if (!mounter) {
|
|
13
|
+
throw new Error('TestBed.createComponent needs @craft-ts/component; import it in the spec.');
|
|
14
|
+
}
|
|
15
|
+
return mounter(component, host, injector);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* The Craft stand-in for Angular's `TestBed`.
|
|
19
|
+
*
|
|
20
|
+
* Specs only ever used six of its methods, and every one of them is really a
|
|
21
|
+
* question about a root injector: configure providers, resolve a token, run a
|
|
22
|
+
* callback in context. This keeps that call shape so the suites read the same,
|
|
23
|
+
* while the thing underneath is a plain `CraftInjector` — no platform, no
|
|
24
|
+
* testing module, no compiler.
|
|
25
|
+
*/
|
|
26
|
+
class CraftTestBed {
|
|
27
|
+
providers = [];
|
|
28
|
+
injector;
|
|
29
|
+
/**
|
|
30
|
+
* Angular needed a platform booted once per process. Craft does not, so this
|
|
31
|
+
* exists purely so the `beforeAll` blocks in the ported specs keep compiling.
|
|
32
|
+
*/
|
|
33
|
+
initTestEnvironment(..._args) {
|
|
34
|
+
// no platform to boot
|
|
35
|
+
}
|
|
36
|
+
configureTestingModule(config) {
|
|
37
|
+
if (config.providers) {
|
|
38
|
+
this.providers.push(...config.providers);
|
|
39
|
+
}
|
|
40
|
+
// Providers added after the injector was materialised must reach it, so
|
|
41
|
+
// drop it and rebuild lazily on the next access.
|
|
42
|
+
this.disposeInjector();
|
|
43
|
+
return this;
|
|
44
|
+
}
|
|
45
|
+
/** Craft has no template compiler, so there is nothing to compile. */
|
|
46
|
+
async compileComponents() {
|
|
47
|
+
// nothing to compile
|
|
48
|
+
}
|
|
49
|
+
/** The lazily built root injector, including Craft's `providedIn: 'root'` defaults. */
|
|
50
|
+
get rootInjector() {
|
|
51
|
+
if (!this.injector) {
|
|
52
|
+
this.injector = createEnvironmentInjector([...getCraftRootDefaultProviders(), ...this.providers], createCraftInjector([]), 'CraftTestBed');
|
|
53
|
+
}
|
|
54
|
+
return this.injector;
|
|
55
|
+
}
|
|
56
|
+
inject(token, notFoundValue) {
|
|
57
|
+
return arguments.length > 1
|
|
58
|
+
? (this.rootInjector.get(token, notFoundValue) ?? null)
|
|
59
|
+
: this.rootInjector.get(token);
|
|
60
|
+
}
|
|
61
|
+
runInInjectionContext(fn) {
|
|
62
|
+
return this.rootInjector.run(fn);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* alien-signals notifies effects synchronously, so by the time a write
|
|
66
|
+
* returns its effects have already run and there is nothing left to drain.
|
|
67
|
+
*/
|
|
68
|
+
flushEffects() {
|
|
69
|
+
// effects are synchronous
|
|
70
|
+
}
|
|
71
|
+
/** Angular's change-detection pump. Same story as {@link flushEffects}. */
|
|
72
|
+
tick() {
|
|
73
|
+
// effects are synchronous
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Mounts a Craft component and returns an Angular-shaped fixture, so the
|
|
77
|
+
* specs written against `TestBed.createComponent(...)` keep their shape.
|
|
78
|
+
* `detectChanges` has nothing to do — the mount already rendered.
|
|
79
|
+
*/
|
|
80
|
+
createComponent(component) {
|
|
81
|
+
const host = document.createElement('div');
|
|
82
|
+
document.body.append(host);
|
|
83
|
+
const mounted = ɵmountCraftTestComponent(component, host, this.rootInjector);
|
|
84
|
+
return {
|
|
85
|
+
nativeElement: host,
|
|
86
|
+
componentInstance: mounted.instance,
|
|
87
|
+
detectChanges() {
|
|
88
|
+
// rendering is synchronous
|
|
89
|
+
},
|
|
90
|
+
destroy() {
|
|
91
|
+
mounted.destroy();
|
|
92
|
+
host.remove();
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
resetTestingModule() {
|
|
97
|
+
this.disposeInjector();
|
|
98
|
+
this.providers = [];
|
|
99
|
+
return this;
|
|
100
|
+
}
|
|
101
|
+
disposeInjector() {
|
|
102
|
+
const current = this.injector;
|
|
103
|
+
this.injector = undefined;
|
|
104
|
+
if (!current)
|
|
105
|
+
return;
|
|
106
|
+
const destroyRef = current.ɵdestroyRef;
|
|
107
|
+
if (destroyRef) {
|
|
108
|
+
ɵdestroyCraftDestroyRef(destroyRef);
|
|
109
|
+
}
|
|
110
|
+
current.destroy?.();
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
export const TestBed = new CraftTestBed();
|
|
114
|
+
//# sourceMappingURL=craft-test-bed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"craft-test-bed.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/host/craft-test-bed.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n createCraftInjector,\n type CraftInjector,\n} from './craft-injector';\nimport {\n createEnvironmentInjector,\n getCraftRootDefaultProviders,\n ɵdestroyCraftDestroyRef,\n DestroyRef,\n type Provider,\n type ProviderToken,\n} from './craft-compat';\n\nexport type CraftComponentFixture<T = unknown> = {\n readonly nativeElement: HTMLElement;\n readonly componentInstance: T;\n detectChanges(): void;\n destroy(): void;\n};\n\ntype CraftTestMounter = (\n component: unknown,\n host: Element,\n injector: CraftInjector,\n) => { instance: unknown; destroy(): void };\n\nlet mounter: CraftTestMounter | undefined;\n\n/**\n * `@craft-ts/component` installs the renderer here on import — core has no way\n * to mount anything on its own.\n */\nexport function ɵsetCraftTestMounter(next: CraftTestMounter): void {\n mounter = next;\n}\n\nfunction ɵmountCraftTestComponent(\n component: unknown,\n host: Element,\n injector: CraftInjector,\n): { instance: unknown; destroy(): void } {\n if (!mounter) {\n throw new Error(\n 'TestBed.createComponent needs @craft-ts/component; import it in the spec.',\n );\n }\n return mounter(component, host, injector);\n}\n\n/**\n * The Craft stand-in for Angular's `TestBed`.\n *\n * Specs only ever used six of its methods, and every one of them is really a\n * question about a root injector: configure providers, resolve a token, run a\n * callback in context. This keeps that call shape so the suites read the same,\n * while the thing underneath is a plain `CraftInjector` — no platform, no\n * testing module, no compiler.\n */\nclass CraftTestBed {\n private providers: unknown[] = [];\n private injector: (CraftInjector & { destroy?(): void }) | undefined;\n\n /**\n * Angular needed a platform booted once per process. Craft does not, so this\n * exists purely so the `beforeAll` blocks in the ported specs keep compiling.\n */\n initTestEnvironment(..._args: unknown[]): void {\n // no platform to boot\n }\n\n configureTestingModule(config: { providers?: readonly unknown[] }): this {\n if (config.providers) {\n this.providers.push(...config.providers);\n }\n // Providers added after the injector was materialised must reach it, so\n // drop it and rebuild lazily on the next access.\n this.disposeInjector();\n return this;\n }\n\n /** Craft has no template compiler, so there is nothing to compile. */\n async compileComponents(): Promise<void> {\n // nothing to compile\n }\n\n /** The lazily built root injector, including Craft's `providedIn: 'root'` defaults. */\n get rootInjector(): CraftInjector {\n if (!this.injector) {\n this.injector = createEnvironmentInjector(\n [...getCraftRootDefaultProviders(), ...this.providers],\n createCraftInjector([]),\n 'CraftTestBed',\n );\n }\n return this.injector;\n }\n\n inject<T>(token: ProviderToken<T>): T;\n inject<T>(token: ProviderToken<T>, notFoundValue: T | null): T | null;\n inject<T>(token: ProviderToken<T>, notFoundValue?: T | null): T | null {\n return arguments.length > 1\n ? ((this.rootInjector.get(token as object, notFoundValue) ?? null) as\n | T\n | null)\n : (this.rootInjector.get(token as object) as T);\n }\n\n runInInjectionContext<T>(fn: () => T): T {\n return this.rootInjector.run(fn);\n }\n\n /**\n * alien-signals notifies effects synchronously, so by the time a write\n * returns its effects have already run and there is nothing left to drain.\n */\n flushEffects(): void {\n // effects are synchronous\n }\n\n /** Angular's change-detection pump. Same story as {@link flushEffects}. */\n tick(): void {\n // effects are synchronous\n }\n\n /**\n * Mounts a Craft component and returns an Angular-shaped fixture, so the\n * specs written against `TestBed.createComponent(...)` keep their shape.\n * `detectChanges` has nothing to do — the mount already rendered.\n */\n createComponent<T = unknown>(component: unknown): CraftComponentFixture<T> {\n const host = document.createElement('div');\n document.body.append(host);\n const mounted = ɵmountCraftTestComponent(\n component,\n host,\n this.rootInjector,\n );\n return {\n nativeElement: host,\n componentInstance: mounted.instance as T,\n detectChanges() {\n // rendering is synchronous\n },\n destroy() {\n mounted.destroy();\n host.remove();\n },\n };\n }\n\n resetTestingModule(): this {\n this.disposeInjector();\n this.providers = [];\n return this;\n }\n\n private disposeInjector(): void {\n const current = this.injector;\n this.injector = undefined;\n if (!current) return;\n const destroyRef = (current as { ɵdestroyRef?: DestroyRef }).ɵdestroyRef;\n if (destroyRef) {\n ɵdestroyCraftDestroyRef(destroyRef);\n }\n current.destroy?.();\n }\n}\n\nexport const TestBed = new CraftTestBed();\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { type CraftTrackTags, ɵHOST_NAME_META_DATA as HOST_NAME_META_DATA, ɵHOST_TAG_LIST as HOST_TAG_LIST, ɵTRACK_TAGS_LIST as TRACK_TAGS_LIST, ɵHostNameToProvide as HostNameToProvide, ɵHostName as HostName, ɵHostTag as HostTag, ɵTrackTags as TrackTags, type TrackTag, ɵinjectHostName as injectHostName, ɵinjectTrackTags as injectTrackTags, ɵprovideHostName as provideHostName, ɵprovideTrackTags as provideTrackTags, } from './craft-service';
|
|
2
|
+
//# sourceMappingURL=host-tag.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host-tag.d.ts","sourceRoot":"","sources":["../../../../../libs/core/src/lib/host-tag.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EACnB,oBAAoB,IAAI,mBAAmB,EAC3C,cAAc,IAAI,aAAa,EAC/B,gBAAgB,IAAI,eAAe,EACnC,kBAAkB,IAAI,iBAAiB,EACvC,SAAS,IAAI,QAAQ,EACrB,QAAQ,IAAI,OAAO,EACnB,UAAU,IAAI,SAAS,EACvB,KAAK,QAAQ,EACb,eAAe,IAAI,cAAc,EACjC,gBAAgB,IAAI,eAAe,EACnC,gBAAgB,IAAI,eAAe,EACnC,iBAAiB,IAAI,gBAAgB,GACtC,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { ɵHOST_NAME_META_DATA as HOST_NAME_META_DATA, ɵHOST_TAG_LIST as HOST_TAG_LIST, ɵTRACK_TAGS_LIST as TRACK_TAGS_LIST, ɵHostNameToProvide as HostNameToProvide, ɵHostName as HostName, ɵHostTag as HostTag, ɵTrackTags as TrackTags, ɵinjectHostName as injectHostName, ɵinjectTrackTags as injectTrackTags, ɵprovideHostName as provideHostName, ɵprovideTrackTags as provideTrackTags, } from './craft-service';
|
|
2
|
+
//# sourceMappingURL=host-tag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host-tag.js","sourceRoot":"","sources":["../../../../../libs/core/src/lib/host-tag.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,oBAAoB,IAAI,mBAAmB,EAC3C,cAAc,IAAI,aAAa,EAC/B,gBAAgB,IAAI,eAAe,EACnC,kBAAkB,IAAI,iBAAiB,EACvC,SAAS,IAAI,QAAQ,EACrB,QAAQ,IAAI,OAAO,EACnB,UAAU,IAAI,SAAS,EAEvB,eAAe,IAAI,cAAc,EACjC,gBAAgB,IAAI,eAAe,EACnC,gBAAgB,IAAI,eAAe,EACnC,iBAAiB,IAAI,gBAAgB,GACtC,MAAM,iBAAiB,CAAC","sourcesContent":["export {\n type CraftTrackTags,\n ɵHOST_NAME_META_DATA as HOST_NAME_META_DATA,\n ɵHOST_TAG_LIST as HOST_TAG_LIST,\n ɵTRACK_TAGS_LIST as TRACK_TAGS_LIST,\n ɵHostNameToProvide as HostNameToProvide,\n ɵHostName as HostName,\n ɵHostTag as HostTag,\n ɵTrackTags as TrackTags,\n type TrackTag,\n ɵinjectHostName as injectHostName,\n ɵinjectTrackTags as injectTrackTags,\n ɵprovideHostName as provideHostName,\n ɵprovideTrackTags as provideTrackTags,\n} from './craft-service';\n"]}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { InsertionStateFactoryContext } from './query.core';
|
|
2
|
+
import { EntitiesUtilBrand, IdSelector } from './util/entities-util';
|
|
3
|
+
import { AccessTypeObjectPropertyByDottedPath, DottedPathPathToTuple } from './util/types/access-type-object-property-by-dotted-path.type';
|
|
4
|
+
import { ObjectDeepPath } from './util/types/object-deep-path-mapper.type';
|
|
5
|
+
import { MergeObject, Prettify } from './util/util.type';
|
|
6
|
+
type ArrayObjectDeepPath<State extends object> = ObjectDeepPath<State> extends infer Path ? Path extends string ? AccessTypeObjectPropertyByDottedPath<State, DottedPathPathToTuple<Path>> extends Array<any> ? Path : never : never : never;
|
|
7
|
+
type DottedPathToCamel<Path extends string> = Path extends `${infer Head}.${infer Tail}` ? `${Head}${Capitalize<DottedPathToCamel<Tail>>}` : Path;
|
|
8
|
+
type EntitiesUtilsToMap<EntityHelperFns, Entity, K, HasStateIdentifier, StateIdentifier, HasPath, Path, Acc = {}> = EntityHelperFns extends [infer First, ...infer Rest] ? First extends (data: infer Payload) => infer R ? R extends EntitiesUtilBrand<infer Name> ? EntitiesUtilsToMap<Rest, Entity, K, HasStateIdentifier, StateIdentifier, HasPath, Path, Acc & {
|
|
9
|
+
[key in Name as `${HasPath extends true ? `${DottedPathToCamel<Path & string>}${Capitalize<string & key>}` : key & string}`]: (payload: MergeObject<{
|
|
10
|
+
[key in Exclude<keyof Payload, 'identifier'> as `${key extends 'entities' ? never : key & string}`]: key extends 'entity' ? Entity : key extends 'ids' ? K[] : key extends 'newEntities' ? Entity[] : `Not implemented mapping for ${key & string}`;
|
|
11
|
+
}, HasStateIdentifier extends true ? {
|
|
12
|
+
select: StateIdentifier extends (...args: any) => infer R ? R : never;
|
|
13
|
+
} : {}>) => void;
|
|
14
|
+
}> : 'No EntitiesBranded Name Detected' : false : Acc;
|
|
15
|
+
/**
|
|
16
|
+
* Creates an insertion that adds entity collection management methods to state, query, or queryParams primitives.
|
|
17
|
+
*
|
|
18
|
+
* Provides type-safe manipulation of arrays of entities with operations like add, remove, update, and upsert.
|
|
19
|
+
* Supports nested properties via dot notation paths and custom entity identifiers.
|
|
20
|
+
*
|
|
21
|
+
* @template State - The state type (array or object containing arrays)
|
|
22
|
+
* @template K - The type of entity identifiers (string or number)
|
|
23
|
+
* @template PreviousInsertionsOutputs - Combined outputs from previous insertions
|
|
24
|
+
* @template EntityHelperFns - Tuple type of entity utility functions to expose
|
|
25
|
+
* @template StateIdentifier - Type of identifier function for parallel queries
|
|
26
|
+
* @template Path - Dot-notation path to nested array (inferred from state structure)
|
|
27
|
+
*
|
|
28
|
+
* @param config - Configuration object
|
|
29
|
+
* @param config.methods - Array of entity utility functions (addOne, removeOne, updateOne, etc.) to expose as methods
|
|
30
|
+
* @param config.identifier - Optional custom function to extract unique ID from entities.
|
|
31
|
+
* Defaults to `entity.id` for objects or `entity` for primitives
|
|
32
|
+
* @param config.path - Optional dot-notation path to nested array property (e.g., 'catalog.products').
|
|
33
|
+
* Method names are prefixed with camelCase path when provided
|
|
34
|
+
*
|
|
35
|
+
* @returns Insertion function that adds entity management methods to the primitive
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* // Basic usage with primitives
|
|
39
|
+
* const tags = yield* state(
|
|
40
|
+
* [] as string[],
|
|
41
|
+
* insertEntities({
|
|
42
|
+
* methods: [addOne, addMany, removeOne],
|
|
43
|
+
* })
|
|
44
|
+
* ));
|
|
45
|
+
* yield* tags.addOne({ entity: 'typescript' });
|
|
46
|
+
* yield* tags.addMany({ newEntities: ['angular', 'signals'] });
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* // With objects having default id property
|
|
50
|
+
* interface Product {
|
|
51
|
+
* id: string;
|
|
52
|
+
* name: string;
|
|
53
|
+
* price: number;
|
|
54
|
+
* }
|
|
55
|
+
* const products = yield* state(
|
|
56
|
+
* [] as Product[],
|
|
57
|
+
* insertEntities({
|
|
58
|
+
* methods: [addOne, setOne, removeOne],
|
|
59
|
+
* })
|
|
60
|
+
* ));
|
|
61
|
+
* yield* products.addOne({ entity: { id: '1', name: 'Laptop', price: 999 } });
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* // With custom identifier
|
|
65
|
+
* interface User {
|
|
66
|
+
* uuid: string;
|
|
67
|
+
* name: string;
|
|
68
|
+
* }
|
|
69
|
+
* const users = yield* state(
|
|
70
|
+
* [] as User[],
|
|
71
|
+
* insertEntities({
|
|
72
|
+
* methods: [setOne, removeOne],
|
|
73
|
+
* identifier: (user) => user.uuid,
|
|
74
|
+
* })
|
|
75
|
+
* ));
|
|
76
|
+
*
|
|
77
|
+
* @example
|
|
78
|
+
* // With nested path
|
|
79
|
+
* interface Catalog {
|
|
80
|
+
* total: number;
|
|
81
|
+
* products: Array<{ id: string; name: string }>;
|
|
82
|
+
* }
|
|
83
|
+
* const catalog = yield* state(
|
|
84
|
+
* { total: 0, products: [] } as Catalog,
|
|
85
|
+
* insertEntities({
|
|
86
|
+
* methods: [addMany, removeOne],
|
|
87
|
+
* path: 'products',
|
|
88
|
+
* })
|
|
89
|
+
* ));
|
|
90
|
+
* yield* catalog.productsAddMany({ newEntities: [{ id: '1', name: 'Item' }] });
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* // With parallel queries
|
|
94
|
+
* const userQuery = yield* query(
|
|
95
|
+
* {
|
|
96
|
+
* params: () => 'userId',
|
|
97
|
+
* identifier: (params) => params,
|
|
98
|
+
* loader: async ({ params }) => fetchUserPosts(params),
|
|
99
|
+
* },
|
|
100
|
+
* insertEntities({
|
|
101
|
+
* methods: [addOne],
|
|
102
|
+
* })
|
|
103
|
+
* ));
|
|
104
|
+
* yield* userQuery.addOne({
|
|
105
|
+
* select: 'user-123', // Target specific query instance
|
|
106
|
+
* entity: { id: 'post-1', title: 'New Post' },
|
|
107
|
+
* });
|
|
108
|
+
*
|
|
109
|
+
* @see {@link https://github.com/craft-ts/craft-ts/blob/main/apps/docs/insertions/insert-entities.md | insertEntities Documentation}
|
|
110
|
+
*/
|
|
111
|
+
export declare function insertEntities<State, K extends string | number, PreviousInsertionsOutputs, const EntityHelperFns extends unknown[], StateIdentifier, const Path = State extends Array<infer Entity> ? never : State extends object ? ArrayObjectDeepPath<State> : never, StateType = State extends Array<infer R> ? R : State extends object ? Path extends string ? AccessTypeObjectPropertyByDottedPath<State, DottedPathPathToTuple<Path>> extends Array<infer Entity> ? Entity : never : never : never, HasStateIdentifier = [unknown] extends [StateIdentifier] ? false : StateIdentifier extends (...args: any) => infer R ? [unknown] extends [R] ? false : true : false, IsEntityIdentifierOptional = StateType extends {
|
|
112
|
+
id: NoInfer<K>;
|
|
113
|
+
} ? true : StateType extends string | number ? true : false>(config: {
|
|
114
|
+
methods: EntityHelperFns;
|
|
115
|
+
} & MergeObject<IsEntityIdentifierOptional extends true ? {
|
|
116
|
+
identifier?: IdSelector<NoInfer<StateType>, NoInfer<K>>;
|
|
117
|
+
} : {
|
|
118
|
+
identifier: IdSelector<NoInfer<StateType>, NoInfer<K>>;
|
|
119
|
+
}, [
|
|
120
|
+
Path
|
|
121
|
+
] extends [never] ? {} : {
|
|
122
|
+
path: Path;
|
|
123
|
+
}>): (context: InsertionStateFactoryContext<State, PreviousInsertionsOutputs> & {
|
|
124
|
+
identifier?: StateIdentifier;
|
|
125
|
+
}) => Prettify<EntitiesUtilsToMap<EntityHelperFns, StateType, K, HasStateIdentifier, StateIdentifier, "path" extends keyof typeof config ? true : false, Path>> & {
|
|
126
|
+
testState: State;
|
|
127
|
+
testPath: Path;
|
|
128
|
+
testHasPath: "path" extends keyof typeof config ? true : false;
|
|
129
|
+
};
|
|
130
|
+
export {};
|
|
131
|
+
//# sourceMappingURL=insert-entities.d.ts.map
|