@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,148 @@
|
|
|
1
|
+
import { Injector, effect, untracked, inject, computed, } from '../host/craft-compat';
|
|
2
|
+
import { craftLinkedSignal as linkedSignal } from '../host/craft-linked-signal';
|
|
3
|
+
import { setAllUpdatesFromMutationOnQueryValue, triggerQueryReloadOnMutationStatusChange, setAllPatchFromMutationOnQueryValue, } from '../query.core';
|
|
4
|
+
import { explicitNestedEffect } from './types/util';
|
|
5
|
+
// todo improve internal function types
|
|
6
|
+
export function reactOnMutationEffect({ queryTargeted, mutationTargeted, }, mutationEffectOptions) {
|
|
7
|
+
const _injector = inject(Injector);
|
|
8
|
+
if (mutationTargeted.type === 'resourceLike') {
|
|
9
|
+
const mutationResource = mutationTargeted;
|
|
10
|
+
return effect(() => {
|
|
11
|
+
const mutationStatus = mutationResource.status();
|
|
12
|
+
const mutationParamsSrc = mutationTargeted.resourceParamsSrc;
|
|
13
|
+
// use to track the value of the mutation
|
|
14
|
+
const _mutationValueChanged = mutationResource.hasValue()
|
|
15
|
+
? mutationResource.value()
|
|
16
|
+
: undefined;
|
|
17
|
+
if (mutationEffectOptions?.optimisticUpdate ||
|
|
18
|
+
mutationEffectOptions.update) {
|
|
19
|
+
untracked(() => {
|
|
20
|
+
setAllUpdatesFromMutationOnQueryValue({
|
|
21
|
+
mutationStatus,
|
|
22
|
+
queryResourceTarget: queryTargeted,
|
|
23
|
+
mutationEffectOptions: mutationEffectOptions,
|
|
24
|
+
mutationResource: mutationResource,
|
|
25
|
+
mutationParamsSrc,
|
|
26
|
+
mutationIdentifier: undefined,
|
|
27
|
+
mutationResources: undefined,
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
const reloadCConfig = mutationEffectOptions.reload;
|
|
32
|
+
if (reloadCConfig) {
|
|
33
|
+
untracked(() => {
|
|
34
|
+
triggerQueryReloadOnMutationStatusChange({
|
|
35
|
+
mutationStatus,
|
|
36
|
+
queryResourceTarget: queryTargeted,
|
|
37
|
+
mutationEffectOptions: mutationEffectOptions,
|
|
38
|
+
mutationResource: mutationResource,
|
|
39
|
+
mutationParamsSrc,
|
|
40
|
+
reloadCConfig,
|
|
41
|
+
mutationIdentifier: undefined,
|
|
42
|
+
mutationResources: undefined,
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
if (mutationEffectOptions.optimisticPatch ||
|
|
47
|
+
mutationEffectOptions.patch) {
|
|
48
|
+
untracked(() => {
|
|
49
|
+
setAllPatchFromMutationOnQueryValue({
|
|
50
|
+
mutationStatus,
|
|
51
|
+
//@ts-expect-error not understand from where the error come from
|
|
52
|
+
queryResourceTarget: queryTargeted,
|
|
53
|
+
mutationEffectOptions: mutationEffectOptions,
|
|
54
|
+
mutationResource: mutationResource,
|
|
55
|
+
mutationParamsSrc,
|
|
56
|
+
mutationIdentifier: undefined,
|
|
57
|
+
mutationResources: undefined,
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
const mutationResources = mutationTargeted._resourceById;
|
|
64
|
+
const newMutationResourceRefForNestedEffect = linkedSignal({
|
|
65
|
+
//@ts-expect-error I do not understand why it is not satisfies
|
|
66
|
+
source: mutationResources,
|
|
67
|
+
injector: _injector,
|
|
68
|
+
computation: (currentSource, previous) => {
|
|
69
|
+
if (!currentSource || !Object.keys(currentSource).length) {
|
|
70
|
+
return undefined;
|
|
71
|
+
}
|
|
72
|
+
const currentKeys = Object.keys(currentSource);
|
|
73
|
+
const previousKeys = Object.keys(previous?.source || {});
|
|
74
|
+
// Find keys that exist in current but not in previous
|
|
75
|
+
const newKeys = currentKeys.filter((key) => !previousKeys.includes(key));
|
|
76
|
+
return newKeys.length > 0 ? { newKeys } : previous?.value;
|
|
77
|
+
},
|
|
78
|
+
});
|
|
79
|
+
return effect(() => {
|
|
80
|
+
if (!newMutationResourceRefForNestedEffect()?.newKeys) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
newMutationResourceRefForNestedEffect()?.newKeys.forEach((mutationIdentifier) => {
|
|
84
|
+
const mutationResource = mutationResources()[mutationIdentifier];
|
|
85
|
+
if (!mutationResource) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
const safeMutationResourceValue = computed(() => mutationResource.hasValue()
|
|
89
|
+
? mutationResource.value()
|
|
90
|
+
: undefined);
|
|
91
|
+
explicitNestedEffect(_injector, [
|
|
92
|
+
mutationResource.status,
|
|
93
|
+
safeMutationResourceValue,
|
|
94
|
+
mutationResource.paramSrc,
|
|
95
|
+
], ([mutationStatus, _value]) => {
|
|
96
|
+
const mutationParamsSrc = mutationResource.paramSrc;
|
|
97
|
+
if (typeof mutationParamsSrc === 'function' &&
|
|
98
|
+
mutationParamsSrc()) {
|
|
99
|
+
// ! keep this check, it is used to track mutationParamsSrc, otherwise it does not works
|
|
100
|
+
}
|
|
101
|
+
if (mutationEffectOptions?.optimisticUpdate ||
|
|
102
|
+
mutationEffectOptions.update) {
|
|
103
|
+
untracked(() => {
|
|
104
|
+
setAllUpdatesFromMutationOnQueryValue({
|
|
105
|
+
mutationStatus,
|
|
106
|
+
queryResourceTarget: queryTargeted,
|
|
107
|
+
mutationEffectOptions: mutationEffectOptions,
|
|
108
|
+
mutationResource,
|
|
109
|
+
mutationParamsSrc,
|
|
110
|
+
mutationIdentifier,
|
|
111
|
+
mutationResources: mutationResources,
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
const reloadCConfig = mutationEffectOptions.reload;
|
|
116
|
+
if (reloadCConfig) {
|
|
117
|
+
untracked(() => {
|
|
118
|
+
triggerQueryReloadOnMutationStatusChange({
|
|
119
|
+
mutationStatus,
|
|
120
|
+
queryResourceTarget: queryTargeted,
|
|
121
|
+
mutationEffectOptions: mutationEffectOptions,
|
|
122
|
+
mutationResource,
|
|
123
|
+
mutationParamsSrc,
|
|
124
|
+
reloadCConfig,
|
|
125
|
+
mutationIdentifier,
|
|
126
|
+
mutationResources: mutationResources,
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
if (mutationEffectOptions.optimisticPatch ||
|
|
131
|
+
mutationEffectOptions.patch) {
|
|
132
|
+
untracked(() => {
|
|
133
|
+
setAllPatchFromMutationOnQueryValue({
|
|
134
|
+
mutationStatus,
|
|
135
|
+
queryResourceTarget: queryTargeted,
|
|
136
|
+
mutationEffectOptions: mutationEffectOptions,
|
|
137
|
+
mutationResource: mutationResource,
|
|
138
|
+
mutationParamsSrc,
|
|
139
|
+
mutationIdentifier: mutationIdentifier,
|
|
140
|
+
mutationResources: mutationTargeted,
|
|
141
|
+
});
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=react-on-mutation-effect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-on-mutation-effect.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/util/react-on-mutation-effect.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ResourceRef,\n Injector,\n effect,\n untracked,\n Signal,\n inject,\n computed,\n} from '../host/craft-compat';\nimport { craftLinkedSignal as linkedSignal } from '../host/craft-linked-signal';\nimport {\n ResourceLikeMutationRef,\n ResourceByIdLikeMutationRef,\n} from '../mutation';\nimport {\n QueryDeclarativeEffect,\n setAllUpdatesFromMutationOnQueryValue,\n triggerQueryReloadOnMutationStatusChange,\n setAllPatchFromMutationOnQueryValue,\n ResourceExceptionConstraints,\n} from '../query.core';\nimport { ResourceByIdRef } from '../resource-by-id';\nimport { explicitNestedEffect } from './types/util';\nimport { InternalType } from './types/util.type';\nimport { ResourceByIdLikeQueryRef, ResourceLikeQueryRef } from '../query';\nimport { CraftResourceRef } from './craft-resource-ref';\n\n// todo improve internal function types\nexport function reactOnMutationEffect<\n QueryResourceState,\n QueryResourceParams,\n QueryResourceArgsParams,\n QueryIsMethod extends boolean,\n QuerySourceParams,\n QueryGroupIdentifier,\n QueryInsertions,\n MutationResourceState,\n MutationResourceParams,\n MutationResourceArgsParams,\n MutationIsMethod,\n MutationSourceParams,\n MutationGroupIdentifier,\n MutationInsertions,\n MutationExceptions extends ResourceExceptionConstraints,\n QueryExceptions extends ResourceExceptionConstraints,\n>(\n {\n queryTargeted,\n mutationTargeted,\n }: {\n queryTargeted:\n | ResourceLikeQueryRef<\n QueryResourceState,\n QueryResourceParams,\n QueryIsMethod,\n QueryResourceArgsParams,\n QuerySourceParams,\n QueryInsertions,\n QueryExceptions\n >\n | ResourceByIdLikeQueryRef<\n QueryResourceState,\n QueryResourceParams,\n QueryIsMethod,\n QueryResourceArgsParams,\n QuerySourceParams,\n QueryInsertions,\n QueryGroupIdentifier,\n QueryExceptions\n >;\n mutationTargeted:\n | ResourceLikeMutationRef<\n MutationResourceState,\n MutationResourceParams,\n MutationIsMethod,\n MutationResourceArgsParams,\n MutationSourceParams,\n MutationInsertions,\n MutationExceptions\n >\n | ResourceByIdLikeMutationRef<\n MutationResourceState,\n MutationResourceParams,\n MutationIsMethod,\n MutationResourceArgsParams,\n MutationSourceParams,\n MutationInsertions,\n MutationGroupIdentifier,\n MutationExceptions\n >;\n },\n mutationEffectOptions: QueryDeclarativeEffect<{\n query: InternalType<\n NoInfer<QueryResourceState>,\n NoInfer<QueryResourceParams>,\n NoInfer<QueryResourceArgsParams>,\n [unknown] extends [NoInfer<QueryGroupIdentifier>] ? false : true,\n NoInfer<QueryIsMethod>,\n NoInfer<QueryInsertions>,\n NoInfer<QueryGroupIdentifier>,\n NoInfer<QuerySourceParams>,\n NoInfer<QueryExceptions>\n >;\n mutation: InternalType<\n NoInfer<MutationResourceState>,\n NoInfer<MutationResourceParams>,\n NoInfer<MutationResourceArgsParams>,\n [unknown] extends [MutationGroupIdentifier] ? false : true,\n NoInfer<MutationIsMethod>,\n NoInfer<MutationInsertions>,\n NoInfer<MutationGroupIdentifier>,\n NoInfer<MutationSourceParams>,\n NoInfer<MutationExceptions>\n >;\n }>,\n) {\n const _injector = inject(Injector);\n if (mutationTargeted.type === 'resourceLike') {\n const mutationResource = mutationTargeted;\n return effect(() => {\n const mutationStatus = mutationResource.status();\n const mutationParamsSrc = mutationTargeted.resourceParamsSrc;\n // use to track the value of the mutation\n const _mutationValueChanged = mutationResource.hasValue()\n ? mutationResource.value()\n : undefined;\n\n if (\n mutationEffectOptions?.optimisticUpdate ||\n mutationEffectOptions.update\n ) {\n untracked(() => {\n setAllUpdatesFromMutationOnQueryValue({\n mutationStatus,\n queryResourceTarget: queryTargeted,\n mutationEffectOptions: mutationEffectOptions,\n mutationResource: mutationResource as any,\n mutationParamsSrc,\n mutationIdentifier: undefined,\n mutationResources: undefined,\n } as any);\n });\n }\n const reloadCConfig = mutationEffectOptions.reload;\n if (reloadCConfig) {\n untracked(() => {\n triggerQueryReloadOnMutationStatusChange({\n mutationStatus,\n queryResourceTarget: queryTargeted,\n mutationEffectOptions: mutationEffectOptions as any,\n mutationResource: mutationResource as unknown as ResourceRef<any>,\n mutationParamsSrc,\n reloadCConfig,\n mutationIdentifier: undefined,\n mutationResources: undefined,\n } as any);\n });\n }\n if (\n mutationEffectOptions.optimisticPatch ||\n mutationEffectOptions.patch\n ) {\n untracked(() => {\n setAllPatchFromMutationOnQueryValue({\n mutationStatus,\n //@ts-expect-error not understand from where the error come from\n queryResourceTarget: queryTargeted,\n mutationEffectOptions: mutationEffectOptions as any,\n mutationResource: mutationResource as unknown as CraftResourceRef<\n any,\n any\n >,\n mutationParamsSrc,\n mutationIdentifier: undefined,\n mutationResources: undefined,\n });\n });\n }\n });\n }\n const mutationResources = mutationTargeted._resourceById;\n\n const newMutationResourceRefForNestedEffect = linkedSignal<\n ResourceByIdRef<\n MutationGroupIdentifier & string,\n MutationResourceState,\n MutationResourceParams\n >,\n { newKeys: QueryGroupIdentifier[] } | undefined\n >({\n //@ts-expect-error I do not understand why it is not satisfies\n source: mutationResources,\n injector: _injector,\n computation: (currentSource, previous) => {\n if (!currentSource || !Object.keys(currentSource).length) {\n return undefined;\n }\n\n const currentKeys = Object.keys(currentSource) as QueryGroupIdentifier[];\n const previousKeys = Object.keys(\n previous?.source || {},\n ) as QueryGroupIdentifier[];\n\n // Find keys that exist in current but not in previous\n const newKeys = currentKeys.filter((key) => !previousKeys.includes(key));\n\n return newKeys.length > 0 ? { newKeys } : previous?.value;\n },\n }) as unknown as Signal<{ newKeys: MutationGroupIdentifier[] } | undefined>;\n\n return effect(() => {\n if (!newMutationResourceRefForNestedEffect()?.newKeys) {\n return;\n }\n newMutationResourceRefForNestedEffect()?.newKeys.forEach(\n (mutationIdentifier) => {\n const mutationResource =\n mutationResources()[\n mutationIdentifier as MutationGroupIdentifier & string\n ];\n if (!mutationResource) {\n return;\n }\n const safeMutationResourceValue = computed(() =>\n mutationResource.hasValue()\n ? mutationResource.value()\n : (undefined as unknown as MutationResourceState),\n );\n explicitNestedEffect(\n _injector,\n [\n mutationResource.status,\n safeMutationResourceValue,\n mutationResource.paramSrc,\n ],\n ([mutationStatus, _value]) => {\n const mutationParamsSrc = mutationResource.paramSrc;\n if (\n typeof mutationParamsSrc === 'function' &&\n mutationParamsSrc()\n ) {\n // ! keep this check, it is used to track mutationParamsSrc, otherwise it does not works\n }\n if (\n mutationEffectOptions?.optimisticUpdate ||\n mutationEffectOptions.update\n ) {\n untracked(() => {\n setAllUpdatesFromMutationOnQueryValue({\n mutationStatus,\n queryResourceTarget: queryTargeted as any,\n mutationEffectOptions: mutationEffectOptions as any,\n mutationResource,\n mutationParamsSrc,\n mutationIdentifier,\n mutationResources:\n mutationResources as unknown as ResourceByIdRef<\n string,\n any,\n any\n >,\n });\n });\n }\n const reloadCConfig = mutationEffectOptions.reload;\n if (reloadCConfig) {\n untracked(() => {\n triggerQueryReloadOnMutationStatusChange({\n mutationStatus,\n queryResourceTarget: queryTargeted,\n mutationEffectOptions: mutationEffectOptions as any,\n mutationResource,\n mutationParamsSrc,\n reloadCConfig,\n mutationIdentifier,\n mutationResources:\n mutationResources as unknown as ResourceByIdRef<\n string,\n any,\n any\n >,\n } as any);\n });\n }\n if (\n mutationEffectOptions.optimisticPatch ||\n mutationEffectOptions.patch\n ) {\n untracked(() => {\n setAllPatchFromMutationOnQueryValue({\n mutationStatus,\n queryResourceTarget: queryTargeted as any,\n mutationEffectOptions: mutationEffectOptions as any,\n mutationResource:\n mutationResource as unknown as CraftResourceRef<any, any>,\n mutationParamsSrc,\n mutationIdentifier: mutationIdentifier,\n mutationResources: mutationTargeted as any,\n });\n });\n }\n },\n );\n },\n );\n });\n}\n"]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Signal } from '../host/craft-compat';
|
|
2
|
+
import { CraftResourceRef } from './craft-resource-ref';
|
|
3
|
+
export type resourceByIdChangesTrackerResult<GroupIdentifier extends string> = {
|
|
4
|
+
hasChange: Signal<boolean>;
|
|
5
|
+
ids: Signal<GroupIdentifier[]>;
|
|
6
|
+
resolved: Signal<GroupIdentifier[]>;
|
|
7
|
+
loading: Signal<GroupIdentifier[]>;
|
|
8
|
+
reloading: Signal<GroupIdentifier[]>;
|
|
9
|
+
exception: Signal<GroupIdentifier[]>;
|
|
10
|
+
onlyValueChange: Signal<GroupIdentifier[]>;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Tracks the status and value changes of resources in a ResourceByIdRef.
|
|
14
|
+
* Returns an object with signals for:
|
|
15
|
+
* - hasChange: true when any ID has changed status or value
|
|
16
|
+
* - ids: all IDs that changed (status or value)
|
|
17
|
+
* - resolved: IDs that transitioned to 'resolved' status
|
|
18
|
+
* - loading: IDs that transitioned to 'loading' status
|
|
19
|
+
* - reloading: IDs that transitioned to 'reloading' status
|
|
20
|
+
* - exception: IDs that transitioned to 'exception' status
|
|
21
|
+
* - onlyValueChange: IDs where only the value changed (status stayed the same)
|
|
22
|
+
*
|
|
23
|
+
* @param resourceByIdSignal - The signal containing the resource map to track
|
|
24
|
+
* @returns An object with signals for different change types
|
|
25
|
+
*/
|
|
26
|
+
export declare function resourceByIdChangesTracker<GroupIdentifier extends string, State, ResourceParams>(resourceByIdSignal: Signal<Partial<Record<GroupIdentifier, CraftResourceRef<State, ResourceParams>>>>): resourceByIdChangesTrackerResult<GroupIdentifier>;
|
|
27
|
+
//# sourceMappingURL=resource-by-id-changes-tracker.util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-by-id-changes-tracker.util.d.ts","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/util/resource-by-id-changes-tracker.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAQxD,MAAM,MAAM,gCAAgC,CAAC,eAAe,SAAS,MAAM,IAAI;IAC7E,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;IACrC,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;CAC5C,CAAC;AAWF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,CACxC,eAAe,SAAS,MAAM,EAC9B,KAAK,EACL,cAAc,EAEd,kBAAkB,EAAE,MAAM,CACxB,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,CAC1E,GACA,gCAAgC,CAAC,eAAe,CAAC,CAuEnD"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { computed, linkedSignal } from '../host/craft-compat';
|
|
2
|
+
import { toCraftStatus } from './craft-resource-status';
|
|
3
|
+
/**
|
|
4
|
+
* Tracks the status and value changes of resources in a ResourceByIdRef.
|
|
5
|
+
* Returns an object with signals for:
|
|
6
|
+
* - hasChange: true when any ID has changed status or value
|
|
7
|
+
* - ids: all IDs that changed (status or value)
|
|
8
|
+
* - resolved: IDs that transitioned to 'resolved' status
|
|
9
|
+
* - loading: IDs that transitioned to 'loading' status
|
|
10
|
+
* - reloading: IDs that transitioned to 'reloading' status
|
|
11
|
+
* - exception: IDs that transitioned to 'exception' status
|
|
12
|
+
* - onlyValueChange: IDs where only the value changed (status stayed the same)
|
|
13
|
+
*
|
|
14
|
+
* @param resourceByIdSignal - The signal containing the resource map to track
|
|
15
|
+
* @returns An object with signals for different change types
|
|
16
|
+
*/
|
|
17
|
+
export function resourceByIdChangesTracker(resourceByIdSignal) {
|
|
18
|
+
const changes = linkedSignal({
|
|
19
|
+
source: () => getFullStatusSnapshot(resourceByIdSignal()),
|
|
20
|
+
computation: (currentSnapshot, previous) => {
|
|
21
|
+
const emptyChanges = {
|
|
22
|
+
ids: [],
|
|
23
|
+
resolved: [],
|
|
24
|
+
loading: [],
|
|
25
|
+
reloading: [],
|
|
26
|
+
exception: [],
|
|
27
|
+
onlyValueChange: [],
|
|
28
|
+
};
|
|
29
|
+
if (!previous) {
|
|
30
|
+
// First read - return empty arrays
|
|
31
|
+
return emptyChanges;
|
|
32
|
+
}
|
|
33
|
+
const previousSnapshot = previous.source;
|
|
34
|
+
const result = {
|
|
35
|
+
ids: [],
|
|
36
|
+
resolved: [],
|
|
37
|
+
loading: [],
|
|
38
|
+
reloading: [],
|
|
39
|
+
exception: [],
|
|
40
|
+
onlyValueChange: [],
|
|
41
|
+
};
|
|
42
|
+
// Find IDs that changed status or value
|
|
43
|
+
for (const [id, current] of currentSnapshot.entries()) {
|
|
44
|
+
const prev = previousSnapshot.get(id);
|
|
45
|
+
const statusChanged = prev?.status !== current.status;
|
|
46
|
+
const valueChanged = prev?.value !== current.value;
|
|
47
|
+
if (statusChanged || valueChanged) {
|
|
48
|
+
result.ids.push(id);
|
|
49
|
+
if (statusChanged) {
|
|
50
|
+
// Add to the appropriate status array
|
|
51
|
+
if (current.status === 'resolved' || current.status === 'local') {
|
|
52
|
+
result.resolved.push(id);
|
|
53
|
+
}
|
|
54
|
+
else if (current.status === 'loading') {
|
|
55
|
+
result.loading.push(id);
|
|
56
|
+
}
|
|
57
|
+
else if (current.status === 'reloading') {
|
|
58
|
+
result.reloading.push(id);
|
|
59
|
+
}
|
|
60
|
+
else if (current.status === 'exception') {
|
|
61
|
+
result.exception.push(id);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
else if (valueChanged) {
|
|
65
|
+
// Only value changed, not status
|
|
66
|
+
result.onlyValueChange.push(id);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return result;
|
|
71
|
+
},
|
|
72
|
+
});
|
|
73
|
+
return {
|
|
74
|
+
hasChange: computed(() => changes().ids.length > 0),
|
|
75
|
+
ids: computed(() => changes().ids),
|
|
76
|
+
resolved: computed(() => changes().resolved),
|
|
77
|
+
loading: computed(() => changes().loading),
|
|
78
|
+
reloading: computed(() => changes().reloading),
|
|
79
|
+
exception: computed(() => changes().exception),
|
|
80
|
+
onlyValueChange: computed(() => changes().onlyValueChange),
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
function getFullStatusSnapshot(resources) {
|
|
84
|
+
const snapshot = new Map();
|
|
85
|
+
for (const [id, resourceRef] of Object.entries(resources)) {
|
|
86
|
+
if (!resourceRef)
|
|
87
|
+
continue;
|
|
88
|
+
snapshot.set(id, {
|
|
89
|
+
// These are the raw (internal) Angular resources; map their technical
|
|
90
|
+
// `'error'` status onto the craft-facing `'exception'` status.
|
|
91
|
+
status: toCraftStatus(resourceRef.status(), false),
|
|
92
|
+
value: resourceRef.hasValue() ? resourceRef.value() : undefined,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
return snapshot;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=resource-by-id-changes-tracker.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-by-id-changes-tracker.util.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/util/resource-by-id-changes-tracker.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAU,MAAM,sBAAsB,CAAC;AAEtE,OAAO,EAAuB,aAAa,EAAE,MAAM,yBAAyB,CAAC;AA0B7E;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,0BAA0B,CAKxC,kBAEC;IAED,MAAM,OAAO,GAAG,YAAY,CAG1B;QACA,MAAM,EAAE,GAAG,EAAE,CAAC,qBAAqB,CAAC,kBAAkB,EAAE,CAAC;QACzD,WAAW,EAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,EAAE;YACzC,MAAM,YAAY,GAAqC;gBACrD,GAAG,EAAE,EAAE;gBACP,QAAQ,EAAE,EAAE;gBACZ,OAAO,EAAE,EAAE;gBACX,SAAS,EAAE,EAAE;gBACb,SAAS,EAAE,EAAE;gBACb,eAAe,EAAE,EAAE;aACpB,CAAC;YAEF,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,mCAAmC;gBACnC,OAAO,YAAY,CAAC;YACtB,CAAC;YAED,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC;YACzC,MAAM,MAAM,GAAqC;gBAC/C,GAAG,EAAE,EAAE;gBACP,QAAQ,EAAE,EAAE;gBACZ,OAAO,EAAE,EAAE;gBACX,SAAS,EAAE,EAAE;gBACb,SAAS,EAAE,EAAE;gBACb,eAAe,EAAE,EAAE;aACpB,CAAC;YAEF,wCAAwC;YACxC,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,eAAe,CAAC,OAAO,EAAE,EAAE,CAAC;gBACtD,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACtC,MAAM,aAAa,GAAG,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC;gBACtD,MAAM,YAAY,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,KAAK,CAAC;gBAEnD,IAAI,aAAa,IAAI,YAAY,EAAE,CAAC;oBAClC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAEpB,IAAI,aAAa,EAAE,CAAC;wBAClB,sCAAsC;wBACtC,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;4BAChE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBAC3B,CAAC;6BAAM,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;4BACxC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBAC1B,CAAC;6BAAM,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;4BAC1C,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBAC5B,CAAC;6BAAM,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;4BAC1C,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBAC5B,CAAC;oBACH,CAAC;yBAAM,IAAI,YAAY,EAAE,CAAC;wBACxB,iCAAiC;wBACjC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAClC,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC,CAAC;IAEH,OAAO;QACL,SAAS,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;QACnD,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC;QAClC,QAAQ,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;QAC5C,OAAO,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC;QAC1C,SAAS,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC;QAC9C,SAAS,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC;QAC9C,eAAe,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,eAAe,CAAC;KAC3D,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAK5B,SAEC;IAED,MAAM,QAAQ,GAAG,IAAI,GAAG,EAGrB,CAAC;IAEJ,KAAK,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAGrD,EAAE,CAAC;QACJ,IAAI,CAAC,WAAW;YAAE,SAAS;QAC3B,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE;YACf,sEAAsE;YACtE,+DAA+D;YAC/D,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC;YAClD,KAAK,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS;SAChE,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC","sourcesContent":["import { computed, linkedSignal, Signal } from '../host/craft-compat';\nimport { CraftResourceRef } from './craft-resource-ref';\nimport { CraftResourceStatus, toCraftStatus } from './craft-resource-status';\n\ntype FullResourceStatusSnapshot<GroupIdentifier extends string> = Map<\n GroupIdentifier,\n { status: CraftResourceStatus; value: unknown }\n>;\n\nexport type resourceByIdChangesTrackerResult<GroupIdentifier extends string> = {\n hasChange: Signal<boolean>;\n ids: Signal<GroupIdentifier[]>;\n resolved: Signal<GroupIdentifier[]>;\n loading: Signal<GroupIdentifier[]>;\n reloading: Signal<GroupIdentifier[]>;\n exception: Signal<GroupIdentifier[]>;\n onlyValueChange: Signal<GroupIdentifier[]>;\n};\n\ntype ChangesByStatus<GroupIdentifier extends string> = {\n ids: GroupIdentifier[];\n resolved: GroupIdentifier[];\n loading: GroupIdentifier[];\n reloading: GroupIdentifier[];\n exception: GroupIdentifier[];\n onlyValueChange: GroupIdentifier[];\n};\n\n/**\n * Tracks the status and value changes of resources in a ResourceByIdRef.\n * Returns an object with signals for:\n * - hasChange: true when any ID has changed status or value\n * - ids: all IDs that changed (status or value)\n * - resolved: IDs that transitioned to 'resolved' status\n * - loading: IDs that transitioned to 'loading' status\n * - reloading: IDs that transitioned to 'reloading' status\n * - exception: IDs that transitioned to 'exception' status\n * - onlyValueChange: IDs where only the value changed (status stayed the same)\n *\n * @param resourceByIdSignal - The signal containing the resource map to track\n * @returns An object with signals for different change types\n */\nexport function resourceByIdChangesTracker<\n GroupIdentifier extends string,\n State,\n ResourceParams,\n>(\n resourceByIdSignal: Signal<\n Partial<Record<GroupIdentifier, CraftResourceRef<State, ResourceParams>>>\n >,\n): resourceByIdChangesTrackerResult<GroupIdentifier> {\n const changes = linkedSignal<\n FullResourceStatusSnapshot<GroupIdentifier>,\n ChangesByStatus<GroupIdentifier>\n >({\n source: () => getFullStatusSnapshot(resourceByIdSignal()),\n computation: (currentSnapshot, previous) => {\n const emptyChanges: ChangesByStatus<GroupIdentifier> = {\n ids: [],\n resolved: [],\n loading: [],\n reloading: [],\n exception: [],\n onlyValueChange: [],\n };\n\n if (!previous) {\n // First read - return empty arrays\n return emptyChanges;\n }\n\n const previousSnapshot = previous.source;\n const result: ChangesByStatus<GroupIdentifier> = {\n ids: [],\n resolved: [],\n loading: [],\n reloading: [],\n exception: [],\n onlyValueChange: [],\n };\n\n // Find IDs that changed status or value\n for (const [id, current] of currentSnapshot.entries()) {\n const prev = previousSnapshot.get(id);\n const statusChanged = prev?.status !== current.status;\n const valueChanged = prev?.value !== current.value;\n\n if (statusChanged || valueChanged) {\n result.ids.push(id);\n\n if (statusChanged) {\n // Add to the appropriate status array\n if (current.status === 'resolved' || current.status === 'local') {\n result.resolved.push(id);\n } else if (current.status === 'loading') {\n result.loading.push(id);\n } else if (current.status === 'reloading') {\n result.reloading.push(id);\n } else if (current.status === 'exception') {\n result.exception.push(id);\n }\n } else if (valueChanged) {\n // Only value changed, not status\n result.onlyValueChange.push(id);\n }\n }\n }\n\n return result;\n },\n });\n\n return {\n hasChange: computed(() => changes().ids.length > 0),\n ids: computed(() => changes().ids),\n resolved: computed(() => changes().resolved),\n loading: computed(() => changes().loading),\n reloading: computed(() => changes().reloading),\n exception: computed(() => changes().exception),\n onlyValueChange: computed(() => changes().onlyValueChange),\n };\n}\n\nfunction getFullStatusSnapshot<\n GroupIdentifier extends string,\n State,\n ResourceParams,\n>(\n resources: Partial<\n Record<GroupIdentifier, CraftResourceRef<State, ResourceParams>>\n >,\n): FullResourceStatusSnapshot<GroupIdentifier> {\n const snapshot = new Map<\n GroupIdentifier,\n { status: CraftResourceStatus; value: unknown }\n >();\n\n for (const [id, resourceRef] of Object.entries(resources) as [\n GroupIdentifier,\n CraftResourceRef<State, ResourceParams> | undefined,\n ][]) {\n if (!resourceRef) continue;\n snapshot.set(id, {\n // These are the raw (internal) Angular resources; map their technical\n // `'error'` status onto the craft-facing `'exception'` status.\n status: toCraftStatus(resourceRef.status(), false),\n value: resourceRef.hasValue() ? resourceRef.value() : undefined,\n });\n }\n\n return snapshot;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source.type.d.ts","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/util/source.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG;IACtD,iBAAiB,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;CAC1C,GAAG,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=source.type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source.type.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/util/source.type.ts"],"names":[],"mappings":"","sourcesContent":["import { Signal } from '../host/craft-compat';\nimport { SourceBranded } from './util';\n\nexport type ReadonlySource<T> = Signal<T | undefined> & {\n preserveLastValue: Signal<T | undefined>;\n} & SourceBranded;\n"]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { MakeOptionalPropertiesRequired } from './util.type';
|
|
2
|
+
export type AccessTypeObjectPropertyByDottedPath<State extends object, DottedPathPathTuple extends string[]> = DottedPathPathTuple extends [infer Head, ...infer Tail] ? Head extends keyof State ? Tail extends string[] ? Tail['length'] extends 0 ? State[Head] : MakeOptionalPropertiesRequired<State[Head]> extends infer RequiredStateHead ? RequiredStateHead extends object ? AccessTypeObjectPropertyByDottedPath<RequiredStateHead, Tail> : 'lol' : 'Head' : State[Head] : 'ErrorTypeNotFound' : 'ErrorTypeNotFound';
|
|
3
|
+
export type DottedPathPathToTuple<DottedPath extends string, Tuple extends string[] = []> = DottedPath extends `${infer Head}.${infer Tail}` ? DottedPathPathToTuple<Tail, [...Tuple, Head]> : [...Tuple, DottedPath];
|
|
4
|
+
//# sourceMappingURL=access-type-object-property-by-dotted-path.type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"access-type-object-property-by-dotted-path.type.d.ts","sourceRoot":"","sources":["../../../../../../../libs/core/src/lib/util/types/access-type-object-property-by-dotted-path.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC;AAE7D,MAAM,MAAM,oCAAoC,CAC9C,KAAK,SAAS,MAAM,EACpB,mBAAmB,SAAS,MAAM,EAAE,IAClC,mBAAmB,SAAS,CAAC,MAAM,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,GACvD,IAAI,SAAS,MAAM,KAAK,GACtB,IAAI,SAAS,MAAM,EAAE,GACnB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GACtB,KAAK,CAAC,IAAI,CAAC,GACX,8BAA8B,CAC5B,KAAK,CAAC,IAAI,CAAC,CACZ,SAAS,MAAM,iBAAiB,GACjC,iBAAiB,SAAS,MAAM,GAC9B,oCAAoC,CAAC,iBAAiB,EAAE,IAAI,CAAC,GAC7D,KAAK,GACP,MAAM,GACR,KAAK,CAAC,IAAI,CAAC,GACb,mBAAmB,GACrB,mBAAmB,CAAC;AAExB,MAAM,MAAM,qBAAqB,CAC/B,UAAU,SAAS,MAAM,EACzB,KAAK,SAAS,MAAM,EAAE,GAAG,EAAE,IACzB,UAAU,SAAS,GAAG,MAAM,IAAI,IAAI,MAAM,IAAI,EAAE,GAChD,qBAAqB,CAAC,IAAI,EAAE,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,GAC7C,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=access-type-object-property-by-dotted-path.type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"access-type-object-property-by-dotted-path.type.js","sourceRoot":"","sources":["../../../../../../../libs/core/src/lib/util/types/access-type-object-property-by-dotted-path.type.ts"],"names":[],"mappings":"","sourcesContent":["import { MakeOptionalPropertiesRequired } from './util.type';\n\nexport type AccessTypeObjectPropertyByDottedPath<\n State extends object,\n DottedPathPathTuple extends string[]\n> = DottedPathPathTuple extends [infer Head, ...infer Tail]\n ? Head extends keyof State\n ? Tail extends string[]\n ? Tail['length'] extends 0\n ? State[Head]\n : MakeOptionalPropertiesRequired<\n State[Head]\n > extends infer RequiredStateHead\n ? RequiredStateHead extends object\n ? AccessTypeObjectPropertyByDottedPath<RequiredStateHead, Tail>\n : 'lol'\n : 'Head'\n : State[Head]\n : 'ErrorTypeNotFound'\n : 'ErrorTypeNotFound';\n\nexport type DottedPathPathToTuple<\n DottedPath extends string,\n Tuple extends string[] = []\n> = DottedPath extends `${infer Head}.${infer Tail}`\n ? DottedPathPathToTuple<Tail, [...Tuple, Head]>\n : [...Tuple, DottedPath];\n"]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ResourceRef } from '../../host/craft-compat';
|
|
2
|
+
import { HasChild, MakeOptionalPropertiesRequired, MergeObject, UnionToTuple } from './util.type';
|
|
3
|
+
import { ResourceByIdRef } from '../../resource-by-id';
|
|
4
|
+
import { Prettify } from '../util.type';
|
|
5
|
+
/**
|
|
6
|
+
* Does not work with number/symbole keys
|
|
7
|
+
* Does not go into arrays
|
|
8
|
+
* Does not handle optional path
|
|
9
|
+
*/
|
|
10
|
+
export type BooleanOrMapperFnByPathById<State extends object, QueryState, QueryParams, QueryIdentifier extends string> = Prettify<FlatAllObjectDeepPath<MakeOptionalPropertiesRequired<State>, QueryState, QueryParams, QueryIdentifier>>;
|
|
11
|
+
type FlatAllObjectDeepPath<State extends object, QueryState, QueryParams, QueryIdentifier extends string> = UnionToTuple<keyof State> extends string[] ? __ObjectDeep<UnionToTuple<keyof State>, State, QueryState, QueryParams, QueryIdentifier> : never;
|
|
12
|
+
type DefaultObject = {};
|
|
13
|
+
type __ObjectDeep<keys extends string[], State, QueryState, QueryParams, QueryIdentifier extends string, Acc extends {} = DefaultObject, RootPath extends string = ''> = keys extends [infer Head, ...infer Tail] ? Head extends keyof State ? HasChild<State[Head]> extends true ? keyof State[Head] extends string ? UnionToTuple<keyof State[Head]> extends string[] ? Tail extends string[] ? __ObjectDeep<Tail, MakeOptionalPropertiesRequired<State>, QueryState, QueryParams, QueryIdentifier, __ObjectDeep<UnionToTuple<keyof State[Head]>, MakeOptionalPropertiesRequired<State[Head]>, QueryState, QueryParams, QueryIdentifier, MergeObject<Acc, {
|
|
14
|
+
[key in `${RootPath}${Head & string}`]: NonNullable<State[Head]> extends NonNullable<QueryState> ? boolean | AssociatedStateMapperFnById<QueryState, QueryParams, State[Head], QueryIdentifier> : AssociatedStateMapperFnById<QueryState, QueryParams, State[Head], QueryIdentifier>;
|
|
15
|
+
}>, `${RootPath}${Head & string}.`>, RootPath> : __ObjectDeep<UnionToTuple<keyof State[Head]>, State[Head], QueryState, QueryParams, QueryIdentifier, MergeObject<Acc, {
|
|
16
|
+
[key in `${RootPath}${Head & string}`]: NonNullable<State[Head]> extends NonNullable<QueryState> ? boolean | AssociatedStateMapperFnById<QueryState, QueryParams, State[Head], QueryIdentifier> : AssociatedStateMapperFnById<QueryState, QueryParams, State[Head], QueryIdentifier>;
|
|
17
|
+
}>, `${RootPath}${Head & string}.`> : Acc : Acc : Tail extends string[] ? __ObjectDeep<Tail, State, QueryState, QueryParams, QueryIdentifier, MergeObject<Acc, {
|
|
18
|
+
[key in `${RootPath}${Head & string}`]: NonNullable<State[Head]> extends NonNullable<QueryState> ? boolean | AssociatedStateMapperFnById<QueryState, QueryParams, State[Head], QueryIdentifier> : AssociatedStateMapperFnById<QueryState, QueryParams, State[Head], QueryIdentifier>;
|
|
19
|
+
}>, RootPath> : Acc : Acc : Acc;
|
|
20
|
+
export type AssociatedStateMapperFnById<QueryState, QueryParams, ResultState, QueryIdentifier extends string> = (data: {
|
|
21
|
+
queryResource: ResourceRef<QueryState>;
|
|
22
|
+
queryParams: QueryParams;
|
|
23
|
+
queryIdentifier: QueryIdentifier;
|
|
24
|
+
queryResources: ResourceByIdRef<QueryIdentifier, QueryState, QueryParams>;
|
|
25
|
+
}) => ResultState;
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=boolean-or-mapper-fn-by-path-by-id.type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boolean-or-mapper-fn-by-path-by-id.type.d.ts","sourceRoot":"","sources":["../../../../../../../libs/core/src/lib/util/types/boolean-or-mapper-fn-by-path-by-id.type.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=boolean-or-mapper-fn-by-path-by-id.type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boolean-or-mapper-fn-by-path-by-id.type.js","sourceRoot":"","sources":["../../../../../../../libs/core/src/lib/util/types/boolean-or-mapper-fn-by-path-by-id.type.ts"],"names":[],"mappings":"","sourcesContent":["import { ResourceRef } from '../../host/craft-compat';\nimport {\n HasChild,\n MakeOptionalPropertiesRequired,\n MergeObject,\n UnionToTuple,\n} from './util.type';\nimport { ResourceByIdRef } from '../../resource-by-id';\nimport { Prettify } from '../util.type';\n\n/**\n * Does not work with number/symbole keys\n * Does not go into arrays\n * Does not handle optional path\n */\nexport type BooleanOrMapperFnByPathById<\n State extends object,\n QueryState,\n QueryParams,\n QueryIdentifier extends string\n> = Prettify<\n FlatAllObjectDeepPath<\n MakeOptionalPropertiesRequired<State>,\n QueryState,\n QueryParams,\n QueryIdentifier\n >\n>;\n\ntype FlatAllObjectDeepPath<\n State extends object,\n QueryState,\n QueryParams,\n QueryIdentifier extends string\n> = UnionToTuple<keyof State> extends string[]\n ? __ObjectDeep<\n UnionToTuple<keyof State>,\n State,\n QueryState,\n QueryParams,\n QueryIdentifier\n >\n : never;\n\ntype DefaultObject = {};\n\n// return an union type of all the paths in the state\ntype __ObjectDeep<\n keys extends string[],\n State,\n QueryState,\n QueryParams,\n QueryIdentifier extends string,\n Acc extends {} = DefaultObject,\n RootPath extends string = ''\n> = keys extends [infer Head, ...infer Tail]\n ? Head extends keyof State\n ? HasChild<State[Head]> extends true\n ? keyof State[Head] extends string\n ? UnionToTuple<keyof State[Head]> extends string[]\n ? Tail extends string[]\n ? __ObjectDeep<\n Tail,\n MakeOptionalPropertiesRequired<State>,\n QueryState,\n QueryParams,\n QueryIdentifier,\n __ObjectDeep<\n UnionToTuple<keyof State[Head]>,\n MakeOptionalPropertiesRequired<State[Head]>,\n QueryState,\n QueryParams,\n QueryIdentifier,\n MergeObject<\n Acc,\n {\n [key in `${RootPath}${Head & string}`]: NonNullable<\n State[Head]\n > extends NonNullable<QueryState>\n ?\n | boolean\n | AssociatedStateMapperFnById<\n QueryState,\n QueryParams,\n State[Head],\n QueryIdentifier\n >\n : AssociatedStateMapperFnById<\n QueryState,\n QueryParams,\n State[Head],\n QueryIdentifier\n >;\n }\n >,\n `${RootPath}${Head & string}.`\n >,\n RootPath\n >\n : __ObjectDeep<\n UnionToTuple<keyof State[Head]>,\n State[Head],\n QueryState,\n QueryParams,\n QueryIdentifier,\n MergeObject<\n Acc,\n {\n [key in `${RootPath}${Head & string}`]: NonNullable<\n State[Head]\n > extends NonNullable<QueryState>\n ?\n | boolean\n | AssociatedStateMapperFnById<\n QueryState,\n QueryParams,\n State[Head],\n QueryIdentifier\n >\n : AssociatedStateMapperFnById<\n QueryState,\n QueryParams,\n State[Head],\n QueryIdentifier\n >;\n }\n >,\n `${RootPath}${Head & string}.`\n >\n : Acc\n : Acc\n : Tail extends string[]\n ? __ObjectDeep<\n Tail,\n State,\n QueryState,\n QueryParams,\n QueryIdentifier,\n MergeObject<\n Acc,\n {\n [key in `${RootPath}${Head & string}`]: NonNullable<\n State[Head]\n > extends NonNullable<QueryState>\n ?\n | boolean\n | AssociatedStateMapperFnById<\n QueryState,\n QueryParams,\n State[Head],\n QueryIdentifier\n >\n : AssociatedStateMapperFnById<\n QueryState,\n QueryParams,\n State[Head],\n QueryIdentifier\n >;\n }\n >,\n RootPath\n >\n : Acc\n : Acc\n : Acc;\n\nexport type AssociatedStateMapperFnById<\n QueryState,\n QueryParams,\n ResultState,\n QueryIdentifier extends string\n> = (data: {\n queryResource: ResourceRef<QueryState>;\n queryParams: QueryParams;\n queryIdentifier: QueryIdentifier;\n queryResources: ResourceByIdRef<QueryIdentifier, QueryState, QueryParams>;\n}) => ResultState;\n"]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ResourceRef } from '../../host/craft-compat';
|
|
2
|
+
import { HasChild, MakeOptionalPropertiesRequired, MergeObject, UnionToTuple } from './util.type';
|
|
3
|
+
import { Prettify } from '../util.type';
|
|
4
|
+
/**
|
|
5
|
+
* Does not work with number/symbole keys
|
|
6
|
+
* Does not go into arrays
|
|
7
|
+
* Does not handle optional path
|
|
8
|
+
*/
|
|
9
|
+
export type BooleanOrMapperFnByPath<State extends object, QueryState, QueryParams> = Prettify<FlatAllObjectDeepPath<MakeOptionalPropertiesRequired<State>, QueryState, QueryParams>>;
|
|
10
|
+
type FlatAllObjectDeepPath<State extends object, QueryState, QueryParams> = UnionToTuple<keyof State> extends string[] ? __ObjectDeep<UnionToTuple<keyof State>, State, QueryState, QueryParams> : never;
|
|
11
|
+
type DefaultObject = {};
|
|
12
|
+
type __ObjectDeep<keys extends string[], State, QueryState, QueryParams, Acc extends {} = DefaultObject, RootPath extends string = ''> = keys extends [infer Head, ...infer Tail] ? Head extends keyof State ? HasChild<State[Head]> extends true ? keyof State[Head] extends string ? UnionToTuple<keyof State[Head]> extends string[] ? Tail extends string[] ? __ObjectDeep<Tail, MakeOptionalPropertiesRequired<State>, QueryState, QueryParams, __ObjectDeep<UnionToTuple<keyof State[Head]>, MakeOptionalPropertiesRequired<State[Head]>, QueryState, QueryParams, MergeObject<Acc, {
|
|
13
|
+
[key in `${RootPath}${Head & string}`]: NonNullable<State[Head]> extends NonNullable<QueryState> ? boolean | AssociatedStateMapperFn<QueryState, QueryParams, State[Head]> : AssociatedStateMapperFn<QueryState, QueryParams, State[Head]>;
|
|
14
|
+
}>, `${RootPath}${Head & string}.`>, RootPath> : __ObjectDeep<UnionToTuple<keyof State[Head]>, State[Head], QueryState, QueryParams, MergeObject<Acc, {
|
|
15
|
+
[key in `${RootPath}${Head & string}`]: NonNullable<State[Head]> extends NonNullable<QueryState> ? boolean | AssociatedStateMapperFn<QueryState, QueryParams, State[Head]> : AssociatedStateMapperFn<QueryState, QueryParams, State[Head]>;
|
|
16
|
+
}>, `${RootPath}${Head & string}.`> : Acc : Acc : Tail extends string[] ? __ObjectDeep<Tail, State, QueryState, QueryParams, MergeObject<Acc, {
|
|
17
|
+
[key in `${RootPath}${Head & string}`]: NonNullable<State[Head]> extends NonNullable<QueryState> ? boolean | AssociatedStateMapperFn<QueryState, QueryParams, State[Head]> : AssociatedStateMapperFn<QueryState, QueryParams, State[Head]>;
|
|
18
|
+
}>, RootPath> : Acc : Acc : Acc;
|
|
19
|
+
export type AssociatedStateMapperFn<QueryState, QueryParams, ResultState> = (data: {
|
|
20
|
+
queryResource: ResourceRef<QueryState>;
|
|
21
|
+
queryParams: QueryParams;
|
|
22
|
+
}) => ResultState;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=boolean-or-mapper-fn-by-path.type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boolean-or-mapper-fn-by-path.type.d.ts","sourceRoot":"","sources":["../../../../../../../libs/core/src/lib/util/types/boolean-or-mapper-fn-by-path.type.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=boolean-or-mapper-fn-by-path.type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boolean-or-mapper-fn-by-path.type.js","sourceRoot":"","sources":["../../../../../../../libs/core/src/lib/util/types/boolean-or-mapper-fn-by-path.type.ts"],"names":[],"mappings":"","sourcesContent":["import { ResourceRef } from '../../host/craft-compat';\nimport {\n HasChild,\n MakeOptionalPropertiesRequired,\n MergeObject,\n UnionToTuple,\n} from './util.type';\nimport { Prettify } from '../util.type';\n\n/**\n * Does not work with number/symbole keys\n * Does not go into arrays\n * Does not handle optional path\n */\nexport type BooleanOrMapperFnByPath<\n State extends object,\n QueryState,\n QueryParams\n> = Prettify<\n FlatAllObjectDeepPath<\n MakeOptionalPropertiesRequired<State>,\n QueryState,\n QueryParams\n >\n>;\n\ntype FlatAllObjectDeepPath<\n State extends object,\n QueryState,\n QueryParams\n> = UnionToTuple<keyof State> extends string[]\n ? __ObjectDeep<UnionToTuple<keyof State>, State, QueryState, QueryParams>\n : never;\n\ntype DefaultObject = {};\n\n// return an union type of all the paths in the state\ntype __ObjectDeep<\n keys extends string[],\n State,\n QueryState,\n QueryParams,\n Acc extends {} = DefaultObject,\n RootPath extends string = ''\n> = keys extends [infer Head, ...infer Tail]\n ? Head extends keyof State\n ? HasChild<State[Head]> extends true\n ? keyof State[Head] extends string\n ? UnionToTuple<keyof State[Head]> extends string[]\n ? Tail extends string[]\n ? __ObjectDeep<\n Tail,\n MakeOptionalPropertiesRequired<State>,\n QueryState,\n QueryParams,\n __ObjectDeep<\n UnionToTuple<keyof State[Head]>,\n MakeOptionalPropertiesRequired<State[Head]>,\n QueryState,\n QueryParams,\n MergeObject<\n Acc,\n {\n [key in `${RootPath}${Head & string}`]: NonNullable<\n State[Head]\n > extends NonNullable<QueryState>\n ?\n | boolean\n | AssociatedStateMapperFn<\n QueryState,\n QueryParams,\n State[Head]\n >\n : AssociatedStateMapperFn<\n QueryState,\n QueryParams,\n State[Head]\n >;\n }\n >,\n `${RootPath}${Head & string}.`\n >,\n RootPath\n >\n : __ObjectDeep<\n UnionToTuple<keyof State[Head]>,\n State[Head],\n QueryState,\n QueryParams,\n MergeObject<\n Acc,\n {\n [key in `${RootPath}${Head & string}`]: NonNullable<\n State[Head]\n > extends NonNullable<QueryState>\n ?\n | boolean\n | AssociatedStateMapperFn<\n QueryState,\n QueryParams,\n State[Head]\n >\n : AssociatedStateMapperFn<\n QueryState,\n QueryParams,\n State[Head]\n >;\n }\n >,\n `${RootPath}${Head & string}.`\n >\n : Acc\n : Acc\n : Tail extends string[]\n ? __ObjectDeep<\n Tail,\n State,\n QueryState,\n QueryParams,\n MergeObject<\n Acc,\n {\n [key in `${RootPath}${Head & string}`]: NonNullable<\n State[Head]\n > extends NonNullable<QueryState>\n ?\n | boolean\n | AssociatedStateMapperFn<\n QueryState,\n QueryParams,\n State[Head]\n >\n : AssociatedStateMapperFn<QueryState, QueryParams, State[Head]>;\n }\n >,\n RootPath\n >\n : Acc\n : Acc\n : Acc;\n\nexport type AssociatedStateMapperFn<QueryState, QueryParams, ResultState> =\n (data: {\n queryResource: ResourceRef<QueryState>;\n queryParams: QueryParams;\n }) => ResultState;\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const __INTERNAL_QueryBrand: unique symbol;
|
|
2
|
+
export type HasQueryBrand<T> = typeof __INTERNAL_QueryBrand extends keyof T ? true : false;
|
|
3
|
+
export declare function brandQueryFunction<F extends (...args: any[]) => any>(fn: F): F & {
|
|
4
|
+
[__INTERNAL_QueryBrand]: true;
|
|
5
|
+
};
|
|
6
|
+
export declare function isBrandQueryFn(fn: unknown): boolean;
|
|
7
|
+
//# sourceMappingURL=brand.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brand.d.ts","sourceRoot":"","sources":["../../../../../../../libs/core/src/lib/util/types/brand.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,EAAE,OAAO,MAE1C,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,OAAO,qBAAqB,SAAS,MAAM,CAAC,GACvE,IAAI,GACJ,KAAK,CAAC;AAEV,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAClE,EAAE,EAAE,CAAC,GACJ,CAAC,GAAG;IAAE,CAAC,qBAAqB,CAAC,EAAE,IAAI,CAAA;CAAE,CAGvC;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAInD"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export const __INTERNAL_QueryBrand = Symbol('__INTERNAL_QueryBrand');
|
|
2
|
+
export function brandQueryFunction(fn) {
|
|
3
|
+
// Attach a non-enumerable brand if you prefer DefineProperty; Object.assign is fine too
|
|
4
|
+
return Object.assign(fn, { [__INTERNAL_QueryBrand]: true });
|
|
5
|
+
}
|
|
6
|
+
export function isBrandQueryFn(fn) {
|
|
7
|
+
return (typeof fn === 'function' && fn[__INTERNAL_QueryBrand] === true);
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=brand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brand.js","sourceRoot":"","sources":["../../../../../../../libs/core/src/lib/util/types/brand.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAkB,MAAM,CACxD,uBAAuB,CACxB,CAAC;AAMF,MAAM,UAAU,kBAAkB,CAChC,EAAK;IAEL,wFAAwF;IACxF,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,qBAAqB,CAAC,EAAE,IAAa,EAAE,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAAW;IACxC,OAAO,CACL,OAAO,EAAE,KAAK,UAAU,IAAK,EAAU,CAAC,qBAAqB,CAAC,KAAK,IAAI,CACxE,CAAC;AACJ,CAAC","sourcesContent":["export const __INTERNAL_QueryBrand: unique symbol = Symbol(\n '__INTERNAL_QueryBrand'\n);\n\nexport type HasQueryBrand<T> = typeof __INTERNAL_QueryBrand extends keyof T\n ? true\n : false;\n\nexport function brandQueryFunction<F extends (...args: any[]) => any>(\n fn: F\n): F & { [__INTERNAL_QueryBrand]: true } {\n // Attach a non-enumerable brand if you prefer DefineProperty; Object.assign is fine too\n return Object.assign(fn, { [__INTERNAL_QueryBrand]: true as const });\n}\n\nexport function isBrandQueryFn(fn: unknown): boolean {\n return (\n typeof fn === 'function' && (fn as any)[__INTERNAL_QueryBrand] === true\n );\n}\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { HasChild, MakeOptionalPropertiesRequired, UnionToTuple } from './util.type';
|
|
2
|
+
/**
|
|
3
|
+
* Does not work with number/symbole keys
|
|
4
|
+
* Does not go into arrays
|
|
5
|
+
* Does not handle optional path
|
|
6
|
+
*/
|
|
7
|
+
export type ObjectDeepPath<State extends object> = Exclude<GetAllStatePath<MakeOptionalPropertiesRequired<State>>, DefaultUnion>;
|
|
8
|
+
type GetAllStatePath<State extends object> = UnionToTuple<keyof State> extends string[] ? __ObjectDeepPath<UnionToTuple<keyof State>, State> : never;
|
|
9
|
+
type DefaultUnion = '__ROOT';
|
|
10
|
+
type __ObjectDeepPath<keys extends string[], State, Acc extends string = DefaultUnion, RootPath extends string = ''> = keys extends [infer Head, ...infer Tail] ? Head extends keyof State ? HasChild<State[Head]> extends true ? keyof State[Head] extends string ? UnionToTuple<keyof State[Head]> extends string[] ? Tail extends string[] ? __ObjectDeepPath<Tail, MakeOptionalPropertiesRequired<State>, __ObjectDeepPath<UnionToTuple<keyof State[Head]>, MakeOptionalPropertiesRequired<State[Head]>, MergeStatePaths<Acc, `${RootPath}${Head & string}`>, `${RootPath}${Head & string}.`>, RootPath> : __ObjectDeepPath<UnionToTuple<keyof State[Head]>, State[Head], MergeStatePaths<Acc, `${RootPath}${Head & string}`>, `${RootPath}${Head & string}.`> : Acc : Acc : Tail extends string[] ? __ObjectDeepPath<Tail, State, MergeStatePaths<Acc, `${RootPath}${Head & string}`>, RootPath> : Acc : Acc : Acc;
|
|
11
|
+
type MergeStatePaths<A, B> = A | B;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=object-deep-path-mapper.type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object-deep-path-mapper.type.d.ts","sourceRoot":"","sources":["../../../../../../../libs/core/src/lib/util/types/object-deep-path-mapper.type.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,8BAA8B,EAC9B,YAAY,EACb,MAAM,aAAa,CAAC;AAErB;;;;GAIG;AACH,MAAM,MAAM,cAAc,CAAC,KAAK,SAAS,MAAM,IAAI,OAAO,CACxD,eAAe,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC,EACtD,YAAY,CACb,CAAC;AAEF,KAAK,eAAe,CAAC,KAAK,SAAS,MAAM,IACvC,YAAY,CAAC,MAAM,KAAK,CAAC,SAAS,MAAM,EAAE,GACtC,gBAAgB,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,KAAK,CAAC,GAClD,KAAK,CAAC;AAEZ,KAAK,YAAY,GAAG,QAAQ,CAAC;AAG7B,KAAK,gBAAgB,CACnB,IAAI,SAAS,MAAM,EAAE,EACrB,KAAK,EACL,GAAG,SAAS,MAAM,GAAG,YAAY,EACjC,QAAQ,SAAS,MAAM,GAAG,EAAE,IAC1B,IAAI,SAAS,CAAC,MAAM,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,GACxC,IAAI,SAAS,MAAM,KAAK,GACtB,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,IAAI,GAChC,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,MAAM,GAC9B,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,GAC9C,IAAI,SAAS,MAAM,EAAE,GACnB,gBAAgB,CACd,IAAI,EACJ,8BAA8B,CAAC,KAAK,CAAC,EACrC,gBAAgB,CACd,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,EAC/B,8BAA8B,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAC3C,eAAe,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,IAAI,GAAG,MAAM,EAAE,CAAC,EACnD,GAAG,QAAQ,GAAG,IAAI,GAAG,MAAM,GAAG,CAC/B,EACD,QAAQ,CACT,GACD,gBAAgB,CACd,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,EAC/B,KAAK,CAAC,IAAI,CAAC,EACX,eAAe,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,IAAI,GAAG,MAAM,EAAE,CAAC,EACnD,GAAG,QAAQ,GAAG,IAAI,GAAG,MAAM,GAAG,CAC/B,GACH,GAAG,GACL,GAAG,GACL,IAAI,SAAS,MAAM,EAAE,GACnB,gBAAgB,CACd,IAAI,EACJ,KAAK,EACL,eAAe,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,IAAI,GAAG,MAAM,EAAE,CAAC,EACnD,QAAQ,CACT,GACD,GAAG,GACP,GAAG,GACL,GAAG,CAAC;AAER,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=object-deep-path-mapper.type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object-deep-path-mapper.type.js","sourceRoot":"","sources":["../../../../../../../libs/core/src/lib/util/types/object-deep-path-mapper.type.ts"],"names":[],"mappings":"","sourcesContent":["import {\n HasChild,\n MakeOptionalPropertiesRequired,\n UnionToTuple,\n} from './util.type';\n\n/**\n * Does not work with number/symbole keys\n * Does not go into arrays\n * Does not handle optional path\n */\nexport type ObjectDeepPath<State extends object> = Exclude<\n GetAllStatePath<MakeOptionalPropertiesRequired<State>>,\n DefaultUnion\n>;\n\ntype GetAllStatePath<State extends object> =\n UnionToTuple<keyof State> extends string[]\n ? __ObjectDeepPath<UnionToTuple<keyof State>, State>\n : never;\n\ntype DefaultUnion = '__ROOT';\n\n// return an union type of all the paths in the state\ntype __ObjectDeepPath<\n keys extends string[],\n State,\n Acc extends string = DefaultUnion,\n RootPath extends string = '',\n> = keys extends [infer Head, ...infer Tail]\n ? Head extends keyof State\n ? HasChild<State[Head]> extends true\n ? keyof State[Head] extends string\n ? UnionToTuple<keyof State[Head]> extends string[]\n ? Tail extends string[]\n ? __ObjectDeepPath<\n Tail,\n MakeOptionalPropertiesRequired<State>,\n __ObjectDeepPath<\n UnionToTuple<keyof State[Head]>,\n MakeOptionalPropertiesRequired<State[Head]>,\n MergeStatePaths<Acc, `${RootPath}${Head & string}`>,\n `${RootPath}${Head & string}.`\n >,\n RootPath\n >\n : __ObjectDeepPath<\n UnionToTuple<keyof State[Head]>,\n State[Head],\n MergeStatePaths<Acc, `${RootPath}${Head & string}`>,\n `${RootPath}${Head & string}.`\n >\n : Acc\n : Acc\n : Tail extends string[]\n ? __ObjectDeepPath<\n Tail,\n State,\n MergeStatePaths<Acc, `${RootPath}${Head & string}`>,\n RootPath\n >\n : Acc\n : Acc\n : Acc;\n\ntype MergeStatePaths<A, B> = A | B;\n"]}
|