@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":"entities-util.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/util/entities-util.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Type to extract the identifier from an entity\n */\nexport type IdSelector<Entity, Key = string | number> = (entity: Entity) => Key;\n\n/**\n * Type for partial updates\n */\nexport type Update<T, K = string | number> = {\n id: K;\n changes: Partial<T>;\n};\n\nexport type EntitiesUtilBrand<Name> = { __brand: Name };\n\n/**\n * Helper function to get the default identifier.\n * For primitives (string | number), the entity itself is used as the identifier.\n * For objects with an `id` property, the `id` property is used.\n */\nfunction getDefaultIdentifier<T, K>(): IdSelector<T, K> {\n return (e: T) => {\n if (typeof e === 'string' || typeof e === 'number') {\n return e as unknown as K;\n }\n return (e as T & { id: K }).id;\n };\n}\n\n/**\n * Removes all elements from the list\n */\nexport function removeAll<T>(): T[] & EntitiesUtilBrand<'removeAll'> {\n return [] as unknown as T[] & EntitiesUtilBrand<'removeAll'>;\n}\n\n/**\n * Adds an element to the end of the list\n */\nexport function addOne<T>({\n entity,\n entities,\n}: {\n entity: T;\n entities: T[];\n}): T[] & EntitiesUtilBrand<'addOne'> {\n return [...entities, entity] as T[] & EntitiesUtilBrand<'addOne'>;\n}\n\n/**\n * Adds multiple elements to the end of the list\n */\nexport function addMany<T>({\n newEntities,\n entities,\n}: {\n newEntities: T[];\n entities: T[];\n}): T[] & EntitiesUtilBrand<'addMany'> {\n return [...entities, ...newEntities] as T[] & EntitiesUtilBrand<'addMany'>;\n}\n\n/**\n * Replaces the entire list with new elements\n */\nexport function setAll<T>({\n newEntities,\n}: {\n newEntities: T[];\n}): T[] & EntitiesUtilBrand<'setAll'> {\n return [...newEntities] as T[] & EntitiesUtilBrand<'setAll'>;\n}\n\n/**\n * Replaces or adds an element (based on id).\n * If the entity has an `id` property, the identifier is optional.\n * For primitives (string | number), the entity itself is used as the identifier.\n */\nexport function setOne<T extends string | number>(params: {\n entity: T;\n entities: T[];\n identifier?: IdSelector<T, T>;\n}): T[] & EntitiesUtilBrand<'setOne'>;\nexport function setOne<\n T extends { id: K },\n K = T extends { id: infer I } ? I : string | number,\n>(params: {\n entity: T;\n entities: T[];\n identifier?: IdSelector<T, K>;\n}): T[] & EntitiesUtilBrand<'setOne'>;\nexport function setOne<T, K = string | number>(params: {\n entity: T;\n entities: T[];\n identifier: IdSelector<T, K>;\n}): T[] & EntitiesUtilBrand<'setOne'>;\nexport function setOne<T, K = string | number>({\n entity,\n entities,\n identifier,\n}: {\n entity: T;\n entities: T[];\n identifier?: IdSelector<T, K>;\n}): T[] & EntitiesUtilBrand<'setOne'> {\n const getId = identifier ?? getDefaultIdentifier<T, K>();\n const id = getId(entity);\n const index = entities.findIndex((e) => getId(e) === id);\n\n if (index === -1) {\n return [...entities, entity] as T[] & EntitiesUtilBrand<'setOne'>;\n }\n\n return entities.map((e, i) => (i === index ? entity : e)) as T[] &\n EntitiesUtilBrand<'setOne'>;\n}\n\n/**\n * Replaces or adds multiple elements (based on id).\n * If the entity has an `id` property, the identifier is optional.\n * For primitives (string | number), the entity itself is used as the identifier.\n */\nexport function setMany<T extends string | number>(params: {\n newEntities: T[];\n entities: T[];\n identifier?: IdSelector<T, T>;\n}): T[] & EntitiesUtilBrand<'setMany'>;\nexport function setMany<\n T extends { id: K },\n K = T extends { id: infer I } ? I : string | number,\n>(params: {\n newEntities: T[];\n entities: T[];\n identifier?: IdSelector<T, K>;\n}): T[] & EntitiesUtilBrand<'setMany'>;\nexport function setMany<T, K = string | number>(params: {\n newEntities: T[];\n entities: T[];\n identifier: IdSelector<T, K>;\n}): T[] & EntitiesUtilBrand<'setMany'>;\nexport function setMany<T, K = string | number>({\n newEntities,\n entities,\n identifier,\n}: {\n newEntities: T[];\n entities: T[];\n identifier?: IdSelector<T, K>;\n}): T[] & EntitiesUtilBrand<'setMany'> {\n const getId = identifier ?? getDefaultIdentifier<T, K>();\n let result = [...entities];\n\n for (const entity of newEntities) {\n result = setOne({ entity, entities: result, identifier: getId }) as T[];\n }\n\n return result as T[] & EntitiesUtilBrand<'setMany'>;\n}\n\n/**\n * Partially updates an existing element.\n * If the entity has an `id` property, the identifier is optional.\n * For primitives (string | number), the entity itself is used as the identifier.\n */\nexport function updateOne<T extends string | number>(params: {\n update: Update<T, T>;\n entities: T[];\n identifier?: IdSelector<T, T>;\n}): T[] & EntitiesUtilBrand<'updateOne'>;\nexport function updateOne<\n T extends { id: K },\n K = T extends { id: infer I } ? I : string | number,\n>(params: {\n update: Update<T, K>;\n entities: T[];\n identifier?: IdSelector<T, K>;\n}): T[] & EntitiesUtilBrand<'updateOne'>;\nexport function updateOne<T, K = string | number>(params: {\n update: Update<T, K>;\n entities: T[];\n identifier: IdSelector<T, K>;\n}): T[] & EntitiesUtilBrand<'updateOne'>;\nexport function updateOne<T, K = string | number>({\n update,\n entities,\n identifier,\n}: {\n update: Update<T, K>;\n entities: T[];\n identifier?: IdSelector<T, K>;\n}): T[] & EntitiesUtilBrand<'updateOne'> {\n const getId = identifier ?? getDefaultIdentifier<T, K>();\n const index = entities.findIndex((e) => getId(e) === update.id);\n\n if (index === -1) {\n return entities as T[] & EntitiesUtilBrand<'updateOne'>;\n }\n\n return entities.map((e, i) =>\n i === index ? { ...e, ...update.changes } : e,\n ) as T[] & EntitiesUtilBrand<'updateOne'>;\n}\n\n/**\n * Partially updates multiple existing elements.\n * If the entity has an `id` property, the identifier is optional.\n * For primitives (string | number), the entity itself is used as the identifier.\n */\nexport function updateMany<T extends string | number>(params: {\n updates: Update<T, T>[];\n entities: T[];\n identifier?: IdSelector<T, T>;\n}): T[] & EntitiesUtilBrand<'updateMany'>;\nexport function updateMany<\n T extends { id: K },\n K = T extends { id: infer I } ? I : string | number,\n>(params: {\n updates: Update<T, K>[];\n entities: T[];\n identifier?: IdSelector<T, K>;\n}): T[] & EntitiesUtilBrand<'updateMany'>;\nexport function updateMany<T, K = string | number>(params: {\n updates: Update<T, K>[];\n entities: T[];\n identifier: IdSelector<T, K>;\n}): T[] & EntitiesUtilBrand<'updateMany'>;\nexport function updateMany<T, K = string | number>({\n updates,\n entities,\n identifier,\n}: {\n updates: Update<T, K>[];\n entities: T[];\n identifier?: IdSelector<T, K>;\n}): T[] & EntitiesUtilBrand<'updateMany'> {\n const getId = identifier ?? getDefaultIdentifier<T, K>();\n let result = [...entities];\n\n for (const update of updates) {\n result = updateOne({ update, entities: result, identifier: getId }) as T[];\n }\n\n return result as T[] & EntitiesUtilBrand<'updateMany'>;\n}\n\n/**\n * Updates an element if it exists, otherwise adds it.\n * If the entity has an `id` property, the identifier is optional.\n * For primitives (string | number), the entity itself is used as the identifier.\n */\nexport function upsertOne<T extends string | number>(params: {\n entity: T;\n entities: T[];\n identifier?: IdSelector<T, T>;\n}): T[] & EntitiesUtilBrand<'upsertOne'>;\nexport function upsertOne<\n T extends { id: K },\n K = T extends { id: infer I } ? I : string | number,\n>(params: {\n entity: T;\n entities: T[];\n identifier?: IdSelector<T, K>;\n}): T[] & EntitiesUtilBrand<'upsertOne'>;\nexport function upsertOne<T, K = string | number>(params: {\n entity: T;\n entities: T[];\n identifier: IdSelector<T, K>;\n}): T[] & EntitiesUtilBrand<'upsertOne'>;\nexport function upsertOne<T, K = string | number>({\n entity,\n entities,\n identifier,\n}: {\n entity: T;\n entities: T[];\n identifier?: IdSelector<T, K>;\n}): T[] & EntitiesUtilBrand<'upsertOne'> {\n const getId = identifier ?? getDefaultIdentifier<T, K>();\n const id = getId(entity);\n const index = entities.findIndex((e) => getId(e) === id);\n\n if (index === -1) {\n return [...entities, entity] as T[] & EntitiesUtilBrand<'upsertOne'>;\n }\n\n // For primitives, just replace; for objects, merge\n const isPrimitive = typeof entity === 'string' || typeof entity === 'number';\n return entities.map((e, i) =>\n i === index ? (isPrimitive ? entity : { ...e, ...entity }) : e,\n ) as T[] & EntitiesUtilBrand<'upsertOne'>;\n}\n\n/**\n * Updates multiple elements if they exist, otherwise adds them.\n * If the entity has an `id` property, the identifier is optional.\n * For primitives (string | number), the entity itself is used as the identifier.\n */\nexport function upsertMany<T extends string | number>(params: {\n newEntities: T[];\n entities: T[];\n identifier?: IdSelector<T, T>;\n}): T[] & EntitiesUtilBrand<'upsertMany'>;\nexport function upsertMany<\n T extends { id: K },\n K = T extends { id: infer I } ? I : string | number,\n>(params: {\n newEntities: T[];\n entities: T[];\n identifier?: IdSelector<T, K>;\n}): T[] & EntitiesUtilBrand<'upsertMany'>;\nexport function upsertMany<T, K = string | number>(params: {\n newEntities: T[];\n entities: T[];\n identifier: IdSelector<T, K>;\n}): T[] & EntitiesUtilBrand<'upsertMany'>;\nexport function upsertMany<T, K = string | number>({\n newEntities,\n entities,\n identifier,\n}: {\n newEntities: T[];\n entities: T[];\n identifier?: IdSelector<T, K>;\n}): T[] & EntitiesUtilBrand<'upsertMany'> {\n const getId = identifier ?? getDefaultIdentifier<T, K>();\n let result = [...entities];\n\n for (const entity of newEntities) {\n result = upsertOne({ entity, entities: result, identifier: getId }) as T[];\n }\n\n return result as T[] & EntitiesUtilBrand<'upsertMany'>;\n}\n\n/**\n * Removes an element by its id.\n * If the entity has an `id` property, the identifier is optional.\n * For primitives (string | number), the entity itself is used as the identifier.\n */\nexport function removeOne<T extends string | number>(params: {\n id: T;\n entities: T[];\n identifier?: IdSelector<T, T>;\n}): T[] & EntitiesUtilBrand<'removeOne'>;\nexport function removeOne<\n T extends { id: K },\n K = T extends { id: infer I } ? I : string | number,\n>(params: {\n id: K;\n entities: T[];\n identifier?: IdSelector<T, K>;\n}): T[] & EntitiesUtilBrand<'removeOne'>;\nexport function removeOne<T, K = string | number>(params: {\n id: K;\n entities: T[];\n identifier: IdSelector<T, K>;\n}): T[] & EntitiesUtilBrand<'removeOne'>;\nexport function removeOne<T, K = string | number>({\n id,\n entities,\n identifier,\n}: {\n id: K;\n entities: T[];\n identifier?: IdSelector<T, K>;\n}): T[] & EntitiesUtilBrand<'removeOne'> {\n const getId = identifier ?? getDefaultIdentifier<T, K>();\n return entities.filter((e) => getId(e) !== id) as T[] &\n EntitiesUtilBrand<'removeOne'>;\n}\n\n/**\n * Removes multiple elements by their ids.\n * If the entity has an `id` property, the identifier is optional.\n * For primitives (string | number), the entity itself is used as the identifier.\n */\nexport function removeMany<T extends string | number>(params: {\n ids: T[];\n entities: T[];\n identifier?: IdSelector<T, T>;\n}): T[] & EntitiesUtilBrand<'removeMany'>;\nexport function removeMany<\n T extends { id: K },\n K = T extends { id: infer I } ? I : string | number,\n>(params: {\n ids: K[];\n entities: T[];\n identifier?: IdSelector<T, K>;\n}): T[] & EntitiesUtilBrand<'removeMany'>;\nexport function removeMany<T, K = string | number>(params: {\n ids: K[];\n entities: T[];\n identifier: IdSelector<T, K>;\n}): T[] & EntitiesUtilBrand<'removeMany'>;\nexport function removeMany<T, K = string | number>({\n ids,\n entities,\n identifier,\n}: {\n ids: K[];\n entities: T[];\n identifier?: IdSelector<T, K>;\n}): T[] & EntitiesUtilBrand<'removeMany'> {\n const getId = identifier ?? getDefaultIdentifier<T, K>();\n const idSet = new Set(ids);\n return entities.filter((e) => !idSet.has(getId(e))) as T[] &\n EntitiesUtilBrand<'removeMany'>;\n}\n\n/**\n * Toggles an element: removes it if it exists, adds it if it doesn't.\n * If the entity has an `id` property, the identifier is optional.\n * For primitives (string | number), the entity itself is used as the identifier.\n */\nexport function toggleOne<T extends string | number>(params: {\n entity: T;\n entities: T[];\n identifier?: IdSelector<T, T>;\n}): T[] & EntitiesUtilBrand<'toggleOne'>;\nexport function toggleOne<\n T extends { id: K },\n K = T extends { id: infer I } ? I : string | number,\n>(params: {\n entity: T;\n entities: T[];\n identifier?: IdSelector<T, K>;\n}): T[] & EntitiesUtilBrand<'toggleOne'>;\nexport function toggleOne<T, K = string | number>(params: {\n entity: T;\n entities: T[];\n identifier: IdSelector<T, K>;\n}): T[] & EntitiesUtilBrand<'toggleOne'>;\nexport function toggleOne<T, K = string | number>({\n entity,\n entities,\n identifier,\n}: {\n entity: T;\n entities: T[];\n identifier?: IdSelector<T, K>;\n}): T[] & EntitiesUtilBrand<'toggleOne'> {\n const getId = identifier ?? getDefaultIdentifier<T, K>();\n const id = getId(entity);\n const exists = entities.some((e) => getId(e) === id);\n\n if (exists) {\n return entities.filter((e) => getId(e) !== id) as T[] &\n EntitiesUtilBrand<'toggleOne'>;\n }\n return [...entities, entity] as T[] & EntitiesUtilBrand<'toggleOne'>;\n}\n\n/**\n * Toggles multiple elements: removes them if they exist, adds them if they don't.\n * If the entity has an `id` property, the identifier is optional.\n * For primitives (string | number), the entity itself is used as the identifier.\n */\nexport function toggleMany<T extends string | number>(params: {\n newEntities: T[];\n entities: T[];\n identifier?: IdSelector<T, T>;\n}): T[] & EntitiesUtilBrand<'toggleMany'>;\nexport function toggleMany<\n T extends { id: K },\n K = T extends { id: infer I } ? I : string | number,\n>(params: {\n newEntities: T[];\n entities: T[];\n identifier?: IdSelector<T, K>;\n}): T[] & EntitiesUtilBrand<'toggleMany'>;\nexport function toggleMany<T, K = string | number>(params: {\n newEntities: T[];\n entities: T[];\n identifier: IdSelector<T, K>;\n}): T[] & EntitiesUtilBrand<'toggleMany'>;\nexport function toggleMany<T, K = string | number>({\n newEntities,\n entities,\n identifier,\n}: {\n newEntities: T[];\n entities: T[];\n identifier?: IdSelector<T, K>;\n}): T[] & EntitiesUtilBrand<'toggleMany'> {\n const getId = identifier ?? getDefaultIdentifier<T, K>();\n let result = [...entities];\n\n for (const entity of newEntities) {\n result = toggleOne({ entity, entities: result, identifier: getId }) as T[];\n }\n\n return result as T[] & EntitiesUtilBrand<'toggleMany'>;\n}\n\n/**\n * Applies a transformation function to all elements\n */\nexport function map<T>({\n mapFn,\n entities,\n}: {\n mapFn: (entity: T) => T;\n entities: T[];\n}): T[] & EntitiesUtilBrand<'map'> {\n return entities.map(mapFn) as T[] & EntitiesUtilBrand<'map'>;\n}\n\n/**\n * Applies a transformation function to a single element by its id.\n * If the entity has an `id` property, the identifier is optional.\n * For primitives (string | number), the entity itself is used as the identifier.\n */\nexport function mapOne<T extends string | number>(params: {\n id: T;\n mapFn: (entity: T) => T;\n entities: T[];\n identifier?: IdSelector<T, T>;\n}): T[] & EntitiesUtilBrand<'mapOne'>;\nexport function mapOne<\n T extends { id: K },\n K = T extends { id: infer I } ? I : string | number,\n>(params: {\n id: K;\n mapFn: (entity: T) => T;\n entities: T[];\n identifier?: IdSelector<T, K>;\n}): T[] & EntitiesUtilBrand<'mapOne'>;\nexport function mapOne<T, K = string | number>(params: {\n id: K;\n mapFn: (entity: T) => T;\n entities: T[];\n identifier: IdSelector<T, K>;\n}): T[] & EntitiesUtilBrand<'mapOne'>;\nexport function mapOne<T, K = string | number>({\n id,\n mapFn,\n entities,\n identifier,\n}: {\n id: K;\n mapFn: (entity: T) => T;\n entities: T[];\n identifier?: IdSelector<T, K>;\n}): T[] & EntitiesUtilBrand<'mapOne'> {\n const getId = identifier ?? getDefaultIdentifier<T, K>();\n return entities.map((e) => (getId(e) === id ? mapFn(e) : e)) as T[] &\n EntitiesUtilBrand<'mapOne'>;\n}\n\n/**\n * Returns the total count of entities\n */\nexport function computedTotal<T>({ entities }: { entities: T[] }): number {\n return entities.length;\n}\n\n/**\n * Returns all ids from the entities list.\n * If the entity has an `id` property, the identifier is optional.\n * For primitives (string | number), the entity itself is used as the identifier.\n */\nexport function computedIds<T extends string | number>(params: {\n entities: T[];\n identifier?: IdSelector<T, T>;\n}): T[] & EntitiesUtilBrand<'computedIds'>;\nexport function computedIds<\n T extends { id: K },\n K = T extends { id: infer I } ? I : string | number,\n>(params: {\n entities: T[];\n identifier?: IdSelector<T, K>;\n}): K[] & EntitiesUtilBrand<'computedIds'>;\nexport function computedIds<T, K = string | number>(params: {\n entities: T[];\n identifier: IdSelector<T, K>;\n}): K[] & EntitiesUtilBrand<'computedIds'>;\nexport function computedIds<T, K = string | number>({\n entities,\n identifier,\n}: {\n entities: T[];\n identifier?: IdSelector<T, K>;\n}): K[] & EntitiesUtilBrand<'computedIds'> {\n const getId = identifier ?? getDefaultIdentifier<T, K>();\n return entities.map(getId) as K[] & EntitiesUtilBrand<'computedIds'>;\n}\n"]}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { CreateEffectOptions, EffectCleanupRegisterFn, EffectRef } from '../host/craft-compat';
|
|
2
|
+
/**
|
|
3
|
+
* We want to have the Tuple in order to use the types in the function signature
|
|
4
|
+
*/
|
|
5
|
+
export type ExplicitEffectValues<T> = {
|
|
6
|
+
[K in keyof T]: () => T[K];
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Extend the regular set of effect options
|
|
10
|
+
*/
|
|
11
|
+
declare interface CreateExplicitEffectOptions extends CreateEffectOptions {
|
|
12
|
+
/**
|
|
13
|
+
* Option that allows the computation not to execute immediately, but only run on first change.
|
|
14
|
+
*/
|
|
15
|
+
defer?: boolean;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* This explicit effect function will take the dependencies and the function to run when the dependencies change.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```typescript
|
|
22
|
+
* import { explicitEffect } from 'ngxtension/explicit-effect';
|
|
23
|
+
*
|
|
24
|
+
* const count = signal(0);
|
|
25
|
+
* const state = signal('idle');
|
|
26
|
+
*
|
|
27
|
+
* explicitEffect([count, state], ([count, state], cleanup) => {
|
|
28
|
+
* console.log('count updated', count, state);
|
|
29
|
+
*
|
|
30
|
+
* cleanup(() => {
|
|
31
|
+
* console.log('cleanup');
|
|
32
|
+
* });
|
|
33
|
+
* });
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
36
|
+
* @param deps - The dependencies that the effect will run on
|
|
37
|
+
* @param fn - The function to run when the dependencies change
|
|
38
|
+
* @param options - The options for the effect with the addition of defer (it allows the computation to run on first change, not immediately)
|
|
39
|
+
*/
|
|
40
|
+
export declare function explicitEffect<Input extends readonly unknown[], Params = Input>(deps: readonly [...ExplicitEffectValues<Input>], fn: (deps: Params, onCleanup: EffectCleanupRegisterFn) => void, options?: CreateExplicitEffectOptions | undefined): EffectRef;
|
|
41
|
+
export {};
|
|
42
|
+
//# sourceMappingURL=explicit-effect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"explicit-effect.d.ts","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/util/explicit-effect.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,SAAS,EAGV,MAAM,sBAAsB,CAAC;AAG9B;;GAEG;AACH,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI;KACnC,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;CAC3B,CAAC;AAEF;;GAEG;AACH,OAAO,WAAW,2BAA4B,SAAQ,mBAAmB;IACvE;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,cAAc,CAC5B,KAAK,SAAS,SAAS,OAAO,EAAE,EAChC,MAAM,GAAG,KAAK,EAEd,IAAI,EAAE,SAAS,CAAC,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC,EAC/C,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,uBAAuB,KAAK,IAAI,EAC9D,OAAO,CAAC,EAAE,2BAA2B,GAAG,SAAS,GAChD,SAAS,CAWX"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { effect, untracked, } from '../host/craft-compat';
|
|
2
|
+
/**
|
|
3
|
+
* This explicit effect function will take the dependencies and the function to run when the dependencies change.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```typescript
|
|
7
|
+
* import { explicitEffect } from 'ngxtension/explicit-effect';
|
|
8
|
+
*
|
|
9
|
+
* const count = signal(0);
|
|
10
|
+
* const state = signal('idle');
|
|
11
|
+
*
|
|
12
|
+
* explicitEffect([count, state], ([count, state], cleanup) => {
|
|
13
|
+
* console.log('count updated', count, state);
|
|
14
|
+
*
|
|
15
|
+
* cleanup(() => {
|
|
16
|
+
* console.log('cleanup');
|
|
17
|
+
* });
|
|
18
|
+
* });
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* @param deps - The dependencies that the effect will run on
|
|
22
|
+
* @param fn - The function to run when the dependencies change
|
|
23
|
+
* @param options - The options for the effect with the addition of defer (it allows the computation to run on first change, not immediately)
|
|
24
|
+
*/
|
|
25
|
+
export function explicitEffect(deps, fn, options) {
|
|
26
|
+
let defer = options && options.defer;
|
|
27
|
+
return effect((onCleanup) => {
|
|
28
|
+
const depValues = deps.map((s) => s());
|
|
29
|
+
untracked(() => {
|
|
30
|
+
if (!defer) {
|
|
31
|
+
fn(depValues, onCleanup);
|
|
32
|
+
}
|
|
33
|
+
defer = false;
|
|
34
|
+
});
|
|
35
|
+
}, options);
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=explicit-effect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"explicit-effect.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/util/explicit-effect.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,MAAM,EACN,SAAS,GACV,MAAM,sBAAsB,CAAC;AAoB9B;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,cAAc,CAI5B,IAA+C,EAC/C,EAA8D,EAC9D,OAAiD;IAEjD,IAAI,KAAK,GAAG,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC;IACrC,OAAO,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACvC,SAAS,CAAC,GAAG,EAAE;YACb,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,EAAE,CAAC,SAAgB,EAAE,SAAS,CAAC,CAAC;YAClC,CAAC;YACD,KAAK,GAAG,KAAK,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,OAAO,CAAC,CAAC;AACd,CAAC","sourcesContent":["import {\n CreateEffectOptions,\n EffectCleanupRegisterFn,\n EffectRef,\n effect,\n untracked,\n} from '../host/craft-compat';\n// from https://github.com/ngxtension/ngxtension-platform\n\n/**\n * We want to have the Tuple in order to use the types in the function signature\n */\nexport type ExplicitEffectValues<T> = {\n [K in keyof T]: () => T[K];\n};\n\n/**\n * Extend the regular set of effect options\n */\ndeclare interface CreateExplicitEffectOptions extends CreateEffectOptions {\n /**\n * Option that allows the computation not to execute immediately, but only run on first change.\n */\n defer?: boolean;\n}\n\n/**\n * This explicit effect function will take the dependencies and the function to run when the dependencies change.\n *\n * @example\n * ```typescript\n * import { explicitEffect } from 'ngxtension/explicit-effect';\n *\n * const count = signal(0);\n * const state = signal('idle');\n *\n * explicitEffect([count, state], ([count, state], cleanup) => {\n * console.log('count updated', count, state);\n *\n * cleanup(() => {\n * console.log('cleanup');\n * });\n * });\n * ```\n *\n * @param deps - The dependencies that the effect will run on\n * @param fn - The function to run when the dependencies change\n * @param options - The options for the effect with the addition of defer (it allows the computation to run on first change, not immediately)\n */\nexport function explicitEffect<\n Input extends readonly unknown[],\n Params = Input,\n>(\n deps: readonly [...ExplicitEffectValues<Input>],\n fn: (deps: Params, onCleanup: EffectCleanupRegisterFn) => void,\n options?: CreateExplicitEffectOptions | undefined,\n): EffectRef {\n let defer = options && options.defer;\n return effect((onCleanup) => {\n const depValues = deps.map((s) => s());\n untracked(() => {\n if (!defer) {\n fn(depValues as any, onCleanup);\n }\n defer = false;\n });\n }, options);\n}\n"]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Signal } from '../host/craft-compat';
|
|
2
|
+
import { FilterSource, RemoveIndexSignature } from './util.type';
|
|
3
|
+
export type ExtractSignalPropsAndMethods<State, StateKeysTuple, Acc extends {
|
|
4
|
+
props: {};
|
|
5
|
+
methods: Record<string, Function>;
|
|
6
|
+
}> = StateKeysTuple extends [infer Head, ...infer Tail] ? Head extends keyof State ? [State[Head]] extends [Signal<any>] ? ExtractSignalPropsAndMethods<State, Tail, {
|
|
7
|
+
props: {
|
|
8
|
+
[K in Head]: State[Head];
|
|
9
|
+
} & Acc['props'];
|
|
10
|
+
methods: Acc['methods'];
|
|
11
|
+
}> : ExtractSignalPropsAndMethods<State, Tail, {
|
|
12
|
+
props: Acc['props'];
|
|
13
|
+
methods: Acc['methods'] & FilterSource<{
|
|
14
|
+
[K in Head]: State[Head];
|
|
15
|
+
}>;
|
|
16
|
+
}> : Acc : {
|
|
17
|
+
props: Acc['props'];
|
|
18
|
+
methods: RemoveIndexSignature<Acc['methods']>;
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=extract-signal-props-and-methods.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extract-signal-props-and-methods.d.ts","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/util/extract-signal-props-and-methods.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEjE,MAAM,MAAM,4BAA4B,CACtC,KAAK,EACL,cAAc,EACd,GAAG,SAAS;IAAE,KAAK,EAAE,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;CAAE,IAC1D,cAAc,SAAS,CAAC,MAAM,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,GAClD,IAAI,SAAS,MAAM,KAAK,GACtB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GACjC,4BAA4B,CAC1B,KAAK,EACL,IAAI,EACJ;IACE,KAAK,EAAE;SAAG,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;KAAE,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;IACnD,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;CACzB,CACF,GACD,4BAA4B,CAC1B,KAAK,EACL,IAAI,EACJ;IACE,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACpB,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,GACrB,YAAY,CAAC;SAAG,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;KAAE,CAAC,CAAC;CAC9C,CACF,GACH,GAAG,GACL;IACE,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACpB,OAAO,EAAE,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;CAC/C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=extract-signal-props-and-methods.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extract-signal-props-and-methods.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/util/extract-signal-props-and-methods.ts"],"names":[],"mappings":"","sourcesContent":["import { Signal } from '../host/craft-compat';\nimport { FilterSource, RemoveIndexSignature } from './util.type';\n\nexport type ExtractSignalPropsAndMethods<\n State,\n StateKeysTuple,\n Acc extends { props: {}; methods: Record<string, Function> }\n> = StateKeysTuple extends [infer Head, ...infer Tail]\n ? Head extends keyof State\n ? [State[Head]] extends [Signal<any>]\n ? ExtractSignalPropsAndMethods<\n State,\n Tail,\n {\n props: { [K in Head]: State[Head] } & Acc['props'];\n methods: Acc['methods'];\n }\n >\n : ExtractSignalPropsAndMethods<\n State,\n Tail,\n {\n props: Acc['props'];\n methods: Acc['methods'] &\n FilterSource<{ [K in Head]: State[Head] }>;\n }\n >\n : Acc\n : {\n props: Acc['props'];\n methods: RemoveIndexSignature<Acc['methods']>;\n };\n"]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { ValueEqualityFn } from '../host/craft-compat';
|
|
2
|
+
/**
|
|
3
|
+
* Internal machinery that forces a method-based primitive (`query` / `mutation` /
|
|
4
|
+
* `asyncProcess`) to re-run its loader on every explicit call, even when the
|
|
5
|
+
* `method` returns the same value or `undefined`.
|
|
6
|
+
*
|
|
7
|
+
* Angular's native `resource()` (a) treats an `undefined` request as idle and never
|
|
8
|
+
* runs the loader, and (b) only re-runs the loader when the request changes under
|
|
9
|
+
* `Object.is`. A `method: () => undefined` (e.g. a logout mutation) therefore never
|
|
10
|
+
* triggers, and a `method: () => 'X'` triggers at most once.
|
|
11
|
+
*
|
|
12
|
+
* The fix wraps the raw params in a nonce-tagged object `{ params, seq }` that is
|
|
13
|
+
* always defined and whose `seq` increments on every call, so the request always
|
|
14
|
+
* changes. The wrapper is unwrapped inside the primitive's `wrappedLoader` before it
|
|
15
|
+
* reaches the user loader, so nothing downstream ever observes it. The public
|
|
16
|
+
* `resourceParamsSrc` signal keeps holding the raw params.
|
|
17
|
+
*
|
|
18
|
+
* A unique symbol key guarantees the wrapper cannot collide with user param object
|
|
19
|
+
* keys and makes {@link isMethodParamsWrapper} unambiguous.
|
|
20
|
+
*/
|
|
21
|
+
declare const METHOD_TRIGGER_NONCE: unique symbol;
|
|
22
|
+
interface MethodParamsWrapper<P> {
|
|
23
|
+
[METHOD_TRIGGER_NONCE]: {
|
|
24
|
+
params: P | undefined;
|
|
25
|
+
seq: number;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/** Tag raw params with the current call sequence so the request always changes. */
|
|
29
|
+
export declare function wrapMethodParams<P>(params: P | undefined, seq: number): MethodParamsWrapper<P>;
|
|
30
|
+
export declare function isMethodParamsWrapper(value: unknown): value is MethodParamsWrapper<unknown>;
|
|
31
|
+
/**
|
|
32
|
+
* Return the raw params from a wrapper, or the value untouched when it is not a
|
|
33
|
+
* wrapper. Idempotent and safe on plain params, so it can be applied unconditionally
|
|
34
|
+
* (source / params-fn / byId modes pass through unchanged).
|
|
35
|
+
*/
|
|
36
|
+
export declare function unwrapMethodParams<P>(value: P | MethodParamsWrapper<P>): P | undefined;
|
|
37
|
+
/**
|
|
38
|
+
* Build an equality function for the wrapped request: a different `seq` always
|
|
39
|
+
* forces a re-run; an identical `seq` delegates to the user-provided `equal` (or
|
|
40
|
+
* `Object.is`) on the *unwrapped* value. Non-wrapped values fall back to the same
|
|
41
|
+
* base rule, so this is safe to pass even when the wrapper is not in play.
|
|
42
|
+
*/
|
|
43
|
+
export declare function methodParamsWrapperEqual<P>(userEqual?: (a: P, b: P) => boolean): ValueEqualityFn<unknown>;
|
|
44
|
+
export {};
|
|
45
|
+
//# sourceMappingURL=method-trigger-nonce.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"method-trigger-nonce.d.ts","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/util/method-trigger-nonce.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;;;;;;;;;;;;;;;;;GAkBG;AACH,QAAA,MAAM,oBAAoB,eAAoC,CAAC;AAE/D,UAAU,mBAAmB,CAAC,CAAC;IAC7B,CAAC,oBAAoB,CAAC,EAAE;QAAE,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CAChE;AAED,mFAAmF;AACnF,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,MAAM,EAAE,CAAC,GAAG,SAAS,EACrB,GAAG,EAAE,MAAM,GACV,mBAAmB,CAAC,CAAC,CAAC,CAExB;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAIvC;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,KAAK,EAAE,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,GAChC,CAAC,GAAG,SAAS,CAIf;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,EACxC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO,GAClC,eAAe,CAAC,OAAO,CAAC,CAa1B"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal machinery that forces a method-based primitive (`query` / `mutation` /
|
|
3
|
+
* `asyncProcess`) to re-run its loader on every explicit call, even when the
|
|
4
|
+
* `method` returns the same value or `undefined`.
|
|
5
|
+
*
|
|
6
|
+
* Angular's native `resource()` (a) treats an `undefined` request as idle and never
|
|
7
|
+
* runs the loader, and (b) only re-runs the loader when the request changes under
|
|
8
|
+
* `Object.is`. A `method: () => undefined` (e.g. a logout mutation) therefore never
|
|
9
|
+
* triggers, and a `method: () => 'X'` triggers at most once.
|
|
10
|
+
*
|
|
11
|
+
* The fix wraps the raw params in a nonce-tagged object `{ params, seq }` that is
|
|
12
|
+
* always defined and whose `seq` increments on every call, so the request always
|
|
13
|
+
* changes. The wrapper is unwrapped inside the primitive's `wrappedLoader` before it
|
|
14
|
+
* reaches the user loader, so nothing downstream ever observes it. The public
|
|
15
|
+
* `resourceParamsSrc` signal keeps holding the raw params.
|
|
16
|
+
*
|
|
17
|
+
* A unique symbol key guarantees the wrapper cannot collide with user param object
|
|
18
|
+
* keys and makes {@link isMethodParamsWrapper} unambiguous.
|
|
19
|
+
*/
|
|
20
|
+
const METHOD_TRIGGER_NONCE = Symbol('craftMethodTriggerNonce');
|
|
21
|
+
/** Tag raw params with the current call sequence so the request always changes. */
|
|
22
|
+
export function wrapMethodParams(params, seq) {
|
|
23
|
+
return { [METHOD_TRIGGER_NONCE]: { params, seq } };
|
|
24
|
+
}
|
|
25
|
+
export function isMethodParamsWrapper(value) {
|
|
26
|
+
return (typeof value === 'object' && value !== null && METHOD_TRIGGER_NONCE in value);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Return the raw params from a wrapper, or the value untouched when it is not a
|
|
30
|
+
* wrapper. Idempotent and safe on plain params, so it can be applied unconditionally
|
|
31
|
+
* (source / params-fn / byId modes pass through unchanged).
|
|
32
|
+
*/
|
|
33
|
+
export function unwrapMethodParams(value) {
|
|
34
|
+
return isMethodParamsWrapper(value)
|
|
35
|
+
? value[METHOD_TRIGGER_NONCE].params
|
|
36
|
+
: value;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Build an equality function for the wrapped request: a different `seq` always
|
|
40
|
+
* forces a re-run; an identical `seq` delegates to the user-provided `equal` (or
|
|
41
|
+
* `Object.is`) on the *unwrapped* value. Non-wrapped values fall back to the same
|
|
42
|
+
* base rule, so this is safe to pass even when the wrapper is not in play.
|
|
43
|
+
*/
|
|
44
|
+
export function methodParamsWrapperEqual(userEqual) {
|
|
45
|
+
const base = userEqual ?? ((a, b) => Object.is(a, b));
|
|
46
|
+
return (a, b) => {
|
|
47
|
+
if (isMethodParamsWrapper(a) && isMethodParamsWrapper(b)) {
|
|
48
|
+
const wrappedA = a[METHOD_TRIGGER_NONCE];
|
|
49
|
+
const wrappedB = b[METHOD_TRIGGER_NONCE];
|
|
50
|
+
if (wrappedA.seq !== wrappedB.seq) {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
return base(wrappedA.params, wrappedB.params);
|
|
54
|
+
}
|
|
55
|
+
return base(a, b);
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=method-trigger-nonce.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"method-trigger-nonce.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/util/method-trigger-nonce.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,oBAAoB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;AAM/D,mFAAmF;AACnF,MAAM,UAAU,gBAAgB,CAC9B,MAAqB,EACrB,GAAW;IAEX,OAAO,EAAE,CAAC,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,KAAc;IAEd,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,oBAAoB,IAAI,KAAK,CAC7E,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAAiC;IAEjC,OAAO,qBAAqB,CAAC,KAAK,CAAC;QACjC,CAAC,CAAE,KAAK,CAAC,oBAAoB,CAAC,CAAC,MAAY;QAC3C,CAAC,CAAE,KAAW,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CACtC,SAAmC;IAEnC,MAAM,IAAI,GAAG,SAAS,IAAI,CAAC,CAAC,CAAI,EAAE,CAAI,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5D,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACd,IAAI,qBAAqB,CAAC,CAAC,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,MAAM,QAAQ,GAAI,CAA4B,CAAC,oBAAoB,CAAC,CAAC;YACrE,MAAM,QAAQ,GAAI,CAA4B,CAAC,oBAAoB,CAAC,CAAC;YACrE,IAAI,QAAQ,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,EAAE,CAAC;gBAClC,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAW,EAAE,QAAQ,CAAC,MAAW,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,IAAI,CAAC,CAAM,EAAE,CAAM,CAAC,CAAC;IAC9B,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { ValueEqualityFn } from '../host/craft-compat';\n\n/**\n * Internal machinery that forces a method-based primitive (`query` / `mutation` /\n * `asyncProcess`) to re-run its loader on every explicit call, even when the\n * `method` returns the same value or `undefined`.\n *\n * Angular's native `resource()` (a) treats an `undefined` request as idle and never\n * runs the loader, and (b) only re-runs the loader when the request changes under\n * `Object.is`. A `method: () => undefined` (e.g. a logout mutation) therefore never\n * triggers, and a `method: () => 'X'` triggers at most once.\n *\n * The fix wraps the raw params in a nonce-tagged object `{ params, seq }` that is\n * always defined and whose `seq` increments on every call, so the request always\n * changes. The wrapper is unwrapped inside the primitive's `wrappedLoader` before it\n * reaches the user loader, so nothing downstream ever observes it. The public\n * `resourceParamsSrc` signal keeps holding the raw params.\n *\n * A unique symbol key guarantees the wrapper cannot collide with user param object\n * keys and makes {@link isMethodParamsWrapper} unambiguous.\n */\nconst METHOD_TRIGGER_NONCE = Symbol('craftMethodTriggerNonce');\n\ninterface MethodParamsWrapper<P> {\n [METHOD_TRIGGER_NONCE]: { params: P | undefined; seq: number };\n}\n\n/** Tag raw params with the current call sequence so the request always changes. */\nexport function wrapMethodParams<P>(\n params: P | undefined,\n seq: number,\n): MethodParamsWrapper<P> {\n return { [METHOD_TRIGGER_NONCE]: { params, seq } };\n}\n\nexport function isMethodParamsWrapper(\n value: unknown,\n): value is MethodParamsWrapper<unknown> {\n return (\n typeof value === 'object' && value !== null && METHOD_TRIGGER_NONCE in value\n );\n}\n\n/**\n * Return the raw params from a wrapper, or the value untouched when it is not a\n * wrapper. Idempotent and safe on plain params, so it can be applied unconditionally\n * (source / params-fn / byId modes pass through unchanged).\n */\nexport function unwrapMethodParams<P>(\n value: P | MethodParamsWrapper<P>,\n): P | undefined {\n return isMethodParamsWrapper(value)\n ? (value[METHOD_TRIGGER_NONCE].params as P)\n : (value as P);\n}\n\n/**\n * Build an equality function for the wrapped request: a different `seq` always\n * forces a re-run; an identical `seq` delegates to the user-provided `equal` (or\n * `Object.is`) on the *unwrapped* value. Non-wrapped values fall back to the same\n * base rule, so this is safe to pass even when the wrapper is not in play.\n */\nexport function methodParamsWrapperEqual<P>(\n userEqual?: (a: P, b: P) => boolean,\n): ValueEqualityFn<unknown> {\n const base = userEqual ?? ((a: P, b: P) => Object.is(a, b));\n return (a, b) => {\n if (isMethodParamsWrapper(a) && isMethodParamsWrapper(b)) {\n const wrappedA = (a as MethodParamsWrapper<P>)[METHOD_TRIGGER_NONCE];\n const wrappedB = (b as MethodParamsWrapper<P>)[METHOD_TRIGGER_NONCE];\n if (wrappedA.seq !== wrappedB.seq) {\n return false;\n }\n return base(wrappedA.params as P, wrappedB.params as P);\n }\n return base(a as P, b as P);\n };\n}\n"]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { ResourceRef, Signal } from '../host/craft-compat';
|
|
2
|
+
import { ResourceByIdRef } from '../resource-by-id';
|
|
3
|
+
export interface PersistedQuery {
|
|
4
|
+
key: string;
|
|
5
|
+
/** Optional per-insertion namespace; defaults to the persister namespace. */
|
|
6
|
+
storeName?: string;
|
|
7
|
+
queryResource: ResourceRef<any>;
|
|
8
|
+
queryResourceParamsSrc: Signal<unknown>;
|
|
9
|
+
waitForParamsSrcToBeEqualToPreviousValue: boolean;
|
|
10
|
+
cacheTime: number;
|
|
11
|
+
/** Time in ms after which cached data is restored but a reload() is triggered in background (SWR pattern). Must be less than cacheTime. */
|
|
12
|
+
staleTime?: number;
|
|
13
|
+
/** Called on the deserialized value before restoring it. Return false to discard and reload fresh. */
|
|
14
|
+
validate?: (value: unknown) => boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface PersistedQueryById {
|
|
17
|
+
key: string;
|
|
18
|
+
/** Optional per-insertion namespace; defaults to the persister namespace. */
|
|
19
|
+
storeName?: string;
|
|
20
|
+
queryByIdResource: ResourceByIdRef<string, unknown, unknown>;
|
|
21
|
+
queryResourceParamsSrc: Signal<unknown>;
|
|
22
|
+
cacheTime: number;
|
|
23
|
+
/** Time in ms after which cached data is restored but a reload() is triggered in background (SWR pattern). Must be less than cacheTime. */
|
|
24
|
+
staleTime?: number;
|
|
25
|
+
/** Called on the deserialized value before restoring it. Return false to discard and reload fresh. */
|
|
26
|
+
validate?: (value: unknown) => boolean;
|
|
27
|
+
}
|
|
28
|
+
export interface QueriesPersister {
|
|
29
|
+
addQueryToPersist(data: PersistedQuery): void;
|
|
30
|
+
addQueryByIdToPersist(data: PersistedQueryById): void;
|
|
31
|
+
clearQuery(queryKey: string): void;
|
|
32
|
+
clearQueryBy(queryKey: string): void;
|
|
33
|
+
clearAllQueries(): void;
|
|
34
|
+
clearAllQueriesById(): void;
|
|
35
|
+
clearAllCache(): void;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=persister.type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persister.type.d.ts","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/util/persister.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;IAChC,sBAAsB,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACxC,wCAAwC,EAAE,OAAO,CAAC;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,2IAA2I;IAC3I,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sGAAsG;IACtG,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;CACxC;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7D,sBAAsB,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,2IAA2I;IAC3I,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sGAAsG;IACtG,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;CACxC;AAED,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9C,qBAAqB,CAAC,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACtD,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,eAAe,IAAI,IAAI,CAAC;IACxB,mBAAmB,IAAI,IAAI,CAAC;IAC5B,aAAa,IAAI,IAAI,CAAC;CACvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=persister.type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persister.type.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/util/persister.type.ts"],"names":[],"mappings":"","sourcesContent":["import { ResourceRef, Signal } from '../host/craft-compat';\nimport { ResourceByIdRef } from '../resource-by-id';\n\nexport interface PersistedQuery {\n key: string;\n /** Optional per-insertion namespace; defaults to the persister namespace. */\n storeName?: string;\n queryResource: ResourceRef<any>;\n queryResourceParamsSrc: Signal<unknown>;\n waitForParamsSrcToBeEqualToPreviousValue: boolean;\n cacheTime: number;\n /** Time in ms after which cached data is restored but a reload() is triggered in background (SWR pattern). Must be less than cacheTime. */\n staleTime?: number;\n /** Called on the deserialized value before restoring it. Return false to discard and reload fresh. */\n validate?: (value: unknown) => boolean;\n}\n\nexport interface PersistedQueryById {\n key: string;\n /** Optional per-insertion namespace; defaults to the persister namespace. */\n storeName?: string;\n queryByIdResource: ResourceByIdRef<string, unknown, unknown>;\n queryResourceParamsSrc: Signal<unknown>;\n cacheTime: number;\n /** Time in ms after which cached data is restored but a reload() is triggered in background (SWR pattern). Must be less than cacheTime. */\n staleTime?: number;\n /** Called on the deserialized value before restoring it. Return false to discard and reload fresh. */\n validate?: (value: unknown) => boolean;\n}\n\nexport interface QueriesPersister {\n addQueryToPersist(data: PersistedQuery): void;\n addQueryByIdToPersist(data: PersistedQueryById): void;\n clearQuery(queryKey: string): void;\n clearQueryBy(queryKey: string): void;\n clearAllQueries(): void;\n clearAllQueriesById(): void;\n clearAllCache(): void;\n}\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare function isEqual<T>(a: T, b: T): boolean;
|
|
2
|
+
/**
|
|
3
|
+
* This function returns `a` if `b` is deeply equal.
|
|
4
|
+
* If not, it will replace any deeply equal children of `b` with those of `a`.
|
|
5
|
+
* This can be used for structural sharing between JSON values for example.
|
|
6
|
+
*/
|
|
7
|
+
export declare function replaceEqualDeep<T>(a: unknown, b: T): T;
|
|
8
|
+
//# sourceMappingURL=persister.util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persister.util.d.ts","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/util/persister.util.ts"],"names":[],"mappings":"AACA,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,OAAO,CAE9C;AAGD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
// Not optimized for performance
|
|
2
|
+
export function isEqual(a, b) {
|
|
3
|
+
return replaceEqualDeep(a, b) === a;
|
|
4
|
+
}
|
|
5
|
+
export function replaceEqualDeep(a, b) {
|
|
6
|
+
if (a === b) {
|
|
7
|
+
return a;
|
|
8
|
+
}
|
|
9
|
+
const array = isPlainArray(a) && isPlainArray(b);
|
|
10
|
+
if (array || (isPlainObject(a) && isPlainObject(b))) {
|
|
11
|
+
const aItems = array ? a : Object.keys(a);
|
|
12
|
+
const aSize = aItems.length;
|
|
13
|
+
const bItems = array ? b : Object.keys(b);
|
|
14
|
+
const bSize = bItems.length;
|
|
15
|
+
const copy = array ? [] : {};
|
|
16
|
+
const aItemsSet = new Set(aItems);
|
|
17
|
+
let equalItems = 0;
|
|
18
|
+
for (let i = 0; i < bSize; i++) {
|
|
19
|
+
const key = array ? i : bItems[i];
|
|
20
|
+
if (((!array && aItemsSet.has(key)) || array) &&
|
|
21
|
+
a[key] === undefined &&
|
|
22
|
+
b[key] === undefined) {
|
|
23
|
+
copy[key] = undefined;
|
|
24
|
+
equalItems++;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
copy[key] = replaceEqualDeep(a[key], b[key]);
|
|
28
|
+
if (copy[key] === a[key] && a[key] !== undefined) {
|
|
29
|
+
equalItems++;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return aSize === bSize && equalItems === aSize ? a : copy;
|
|
34
|
+
}
|
|
35
|
+
return b;
|
|
36
|
+
}
|
|
37
|
+
function isPlainArray(value) {
|
|
38
|
+
return Array.isArray(value) && value.length === Object.keys(value).length;
|
|
39
|
+
}
|
|
40
|
+
// Copied from: https://github.com/jonschlinkert/is-plain-object
|
|
41
|
+
// eslint-disable-next-line @typescript-eslint/no-wrapper-object-types
|
|
42
|
+
function isPlainObject(o) {
|
|
43
|
+
if (!hasObjectPrototype(o)) {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
// If has no constructor
|
|
47
|
+
const ctor = o.constructor;
|
|
48
|
+
if (ctor === undefined) {
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
// If has modified prototype
|
|
52
|
+
const prot = ctor.prototype;
|
|
53
|
+
if (!hasObjectPrototype(prot)) {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
// If constructor does not have an Object-specific method
|
|
57
|
+
// eslint-disable-next-line no-prototype-builtins
|
|
58
|
+
if (!prot.hasOwnProperty('isPrototypeOf')) {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
// Handles Objects created by Object.create(<arbitrary prototype>)
|
|
62
|
+
if (Object.getPrototypeOf(o) !== Object.prototype) {
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
// Most likely a plain Object
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
function hasObjectPrototype(o) {
|
|
69
|
+
return Object.prototype.toString.call(o) === '[object Object]';
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=persister.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persister.util.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/util/persister.util.ts"],"names":[],"mappings":"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","sourcesContent":["// Not optimized for performance\nexport function isEqual<T>(a: T, b: T): boolean {\n return replaceEqualDeep(a, b) === a;\n}\n\n// Copied From https://github.dev/TanStack/query\n/**\n * This function returns `a` if `b` is deeply equal.\n * If not, it will replace any deeply equal children of `b` with those of `a`.\n * This can be used for structural sharing between JSON values for example.\n */\nexport function replaceEqualDeep<T>(a: unknown, b: T): T;\nexport function replaceEqualDeep(a: any, b: any): any {\n if (a === b) {\n return a;\n }\n\n const array = isPlainArray(a) && isPlainArray(b);\n\n if (array || (isPlainObject(a) && isPlainObject(b))) {\n const aItems = array ? a : Object.keys(a);\n const aSize = aItems.length;\n const bItems = array ? b : Object.keys(b);\n const bSize = bItems.length;\n const copy: any = array ? [] : {};\n const aItemsSet = new Set(aItems);\n\n let equalItems = 0;\n\n for (let i = 0; i < bSize; i++) {\n const key = array ? i : bItems[i];\n if (\n ((!array && aItemsSet.has(key)) || array) &&\n a[key] === undefined &&\n b[key] === undefined\n ) {\n copy[key] = undefined;\n equalItems++;\n } else {\n copy[key] = replaceEqualDeep(a[key], b[key]);\n if (copy[key] === a[key] && a[key] !== undefined) {\n equalItems++;\n }\n }\n }\n\n return aSize === bSize && equalItems === aSize ? a : copy;\n }\n\n return b;\n}\n\nfunction isPlainArray(value: unknown) {\n return Array.isArray(value) && value.length === Object.keys(value).length;\n}\n\n// Copied from: https://github.com/jonschlinkert/is-plain-object\n// eslint-disable-next-line @typescript-eslint/no-wrapper-object-types\nfunction isPlainObject(o: any): o is Object {\n if (!hasObjectPrototype(o)) {\n return false;\n }\n\n // If has no constructor\n const ctor = o.constructor;\n if (ctor === undefined) {\n return true;\n }\n\n // If has modified prototype\n const prot = ctor.prototype;\n if (!hasObjectPrototype(prot)) {\n return false;\n }\n\n // If constructor does not have an Object-specific method\n\n // eslint-disable-next-line no-prototype-builtins\n if (!prot.hasOwnProperty('isPrototypeOf')) {\n return false;\n }\n\n // Handles Objects created by Object.create(<arbitrary prototype>)\n if (Object.getPrototypeOf(o) !== Object.prototype) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nfunction hasObjectPrototype(o: any): boolean {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ResourceLikeMutationRef, ResourceByIdLikeMutationRef } from '../mutation';
|
|
2
|
+
import { QueryDeclarativeEffect, ResourceExceptionConstraints } from '../query.core';
|
|
3
|
+
import { InternalType } from './types/util.type';
|
|
4
|
+
import { ResourceByIdLikeQueryRef, ResourceLikeQueryRef } from '../query';
|
|
5
|
+
export declare function reactOnMutationEffect<QueryResourceState, QueryResourceParams, QueryResourceArgsParams, QueryIsMethod extends boolean, QuerySourceParams, QueryGroupIdentifier, QueryInsertions, MutationResourceState, MutationResourceParams, MutationResourceArgsParams, MutationIsMethod, MutationSourceParams, MutationGroupIdentifier, MutationInsertions, MutationExceptions extends ResourceExceptionConstraints, QueryExceptions extends ResourceExceptionConstraints>({ queryTargeted, mutationTargeted, }: {
|
|
6
|
+
queryTargeted: ResourceLikeQueryRef<QueryResourceState, QueryResourceParams, QueryIsMethod, QueryResourceArgsParams, QuerySourceParams, QueryInsertions, QueryExceptions> | ResourceByIdLikeQueryRef<QueryResourceState, QueryResourceParams, QueryIsMethod, QueryResourceArgsParams, QuerySourceParams, QueryInsertions, QueryGroupIdentifier, QueryExceptions>;
|
|
7
|
+
mutationTargeted: ResourceLikeMutationRef<MutationResourceState, MutationResourceParams, MutationIsMethod, MutationResourceArgsParams, MutationSourceParams, MutationInsertions, MutationExceptions> | ResourceByIdLikeMutationRef<MutationResourceState, MutationResourceParams, MutationIsMethod, MutationResourceArgsParams, MutationSourceParams, MutationInsertions, MutationGroupIdentifier, MutationExceptions>;
|
|
8
|
+
}, mutationEffectOptions: QueryDeclarativeEffect<{
|
|
9
|
+
query: InternalType<NoInfer<QueryResourceState>, NoInfer<QueryResourceParams>, NoInfer<QueryResourceArgsParams>, [
|
|
10
|
+
unknown
|
|
11
|
+
] extends [NoInfer<QueryGroupIdentifier>] ? false : true, NoInfer<QueryIsMethod>, NoInfer<QueryInsertions>, NoInfer<QueryGroupIdentifier>, NoInfer<QuerySourceParams>, NoInfer<QueryExceptions>>;
|
|
12
|
+
mutation: InternalType<NoInfer<MutationResourceState>, NoInfer<MutationResourceParams>, NoInfer<MutationResourceArgsParams>, [
|
|
13
|
+
unknown
|
|
14
|
+
] extends [MutationGroupIdentifier] ? false : true, NoInfer<MutationIsMethod>, NoInfer<MutationInsertions>, NoInfer<MutationGroupIdentifier>, NoInfer<MutationSourceParams>, NoInfer<MutationExceptions>>;
|
|
15
|
+
}>): import("../..").EffectRef;
|
|
16
|
+
//# sourceMappingURL=react-on-mutation-effect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-on-mutation-effect.d.ts","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/util/react-on-mutation-effect.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC5B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,sBAAsB,EAItB,4BAA4B,EAC7B,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAI1E,wBAAgB,qBAAqB,CACnC,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,aAAa,SAAS,OAAO,EAC7B,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,EAC1B,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,SAAS,4BAA4B,EACvD,eAAe,SAAS,4BAA4B,EAEpD,EACE,aAAa,EACb,gBAAgB,GACjB,EAAE;IACD,aAAa,EACT,oBAAoB,CAClB,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,EACf,eAAe,CAChB,GACD,wBAAwB,CACtB,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,eAAe,CAChB,CAAC;IACN,gBAAgB,EACZ,uBAAuB,CACrB,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,0BAA0B,EAC1B,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,CACnB,GACD,2BAA2B,CACzB,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,0BAA0B,EAC1B,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,CACnB,CAAC;CACP,EACD,qBAAqB,EAAE,sBAAsB,CAAC;IAC5C,KAAK,EAAE,YAAY,CACjB,OAAO,CAAC,kBAAkB,CAAC,EAC3B,OAAO,CAAC,mBAAmB,CAAC,EAC5B,OAAO,CAAC,uBAAuB,CAAC,EAChC;QAAC,OAAO;KAAC,SAAS,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,EAChE,OAAO,CAAC,aAAa,CAAC,EACtB,OAAO,CAAC,eAAe,CAAC,EACxB,OAAO,CAAC,oBAAoB,CAAC,EAC7B,OAAO,CAAC,iBAAiB,CAAC,EAC1B,OAAO,CAAC,eAAe,CAAC,CACzB,CAAC;IACF,QAAQ,EAAE,YAAY,CACpB,OAAO,CAAC,qBAAqB,CAAC,EAC9B,OAAO,CAAC,sBAAsB,CAAC,EAC/B,OAAO,CAAC,0BAA0B,CAAC,EACnC;QAAC,OAAO;KAAC,SAAS,CAAC,uBAAuB,CAAC,GAAG,KAAK,GAAG,IAAI,EAC1D,OAAO,CAAC,gBAAgB,CAAC,EACzB,OAAO,CAAC,kBAAkB,CAAC,EAC3B,OAAO,CAAC,uBAAuB,CAAC,EAChC,OAAO,CAAC,oBAAoB,CAAC,EAC7B,OAAO,CAAC,kBAAkB,CAAC,CAC5B,CAAC;CACH,CAAC,6BAgMH"}
|