palistor 0.0.24
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/README.md +947 -0
- package/dist/index.d.ts +54 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +58 -0
- package/dist/index.js.map +1 -0
- package/dist/react/createTrackingProxy.d.ts +55 -0
- package/dist/react/createTrackingProxy.d.ts.map +1 -0
- package/dist/react/createTrackingProxy.js +149 -0
- package/dist/react/createTrackingProxy.js.map +1 -0
- package/dist/react/useForm.d.ts +108 -0
- package/dist/react/useForm.d.ts.map +1 -0
- package/dist/react/useForm.js +180 -0
- package/dist/react/useForm.js.map +1 -0
- package/dist/react/useNotifier.d.ts +35 -0
- package/dist/react/useNotifier.d.ts.map +1 -0
- package/dist/react/useNotifier.js +41 -0
- package/dist/react/useNotifier.js.map +1 -0
- package/dist/react/usePersist.d.ts +45 -0
- package/dist/react/usePersist.d.ts.map +1 -0
- package/dist/react/usePersist.js +60 -0
- package/dist/react/usePersist.js.map +1 -0
- package/dist/react/useStoreContext.d.ts +42 -0
- package/dist/react/useStoreContext.d.ts.map +1 -0
- package/dist/react/useStoreContext.js +46 -0
- package/dist/react/useStoreContext.js.map +1 -0
- package/dist/react/useTranslator.d.ts +37 -0
- package/dist/react/useTranslator.d.ts.map +1 -0
- package/dist/react/useTranslator.js +43 -0
- package/dist/react/useTranslator.js.map +1 -0
- package/dist/store/applyPatch/applyPatch.d.ts +17 -0
- package/dist/store/applyPatch/applyPatch.d.ts.map +1 -0
- package/dist/store/applyPatch/applyPatch.js +44 -0
- package/dist/store/applyPatch/applyPatch.js.map +1 -0
- package/dist/store/buildProxy/buildEntityProjectionProxy.d.ts +52 -0
- package/dist/store/buildProxy/buildEntityProjectionProxy.d.ts.map +1 -0
- package/dist/store/buildProxy/buildEntityProjectionProxy.js +321 -0
- package/dist/store/buildProxy/buildEntityProjectionProxy.js.map +1 -0
- package/dist/store/buildProxy/buildListProxy.d.ts +33 -0
- package/dist/store/buildProxy/buildListProxy.d.ts.map +1 -0
- package/dist/store/buildProxy/buildListProxy.js +306 -0
- package/dist/store/buildProxy/buildListProxy.js.map +1 -0
- package/dist/store/buildProxy/buildProxy.d.ts +41 -0
- package/dist/store/buildProxy/buildProxy.d.ts.map +1 -0
- package/dist/store/buildProxy/buildProxy.js +380 -0
- package/dist/store/buildProxy/buildProxy.js.map +1 -0
- package/dist/store/buildProxy/computeProxyKeys.d.ts +15 -0
- package/dist/store/buildProxy/computeProxyKeys.d.ts.map +1 -0
- package/dist/store/buildProxy/computeProxyKeys.js +28 -0
- package/dist/store/buildProxy/computeProxyKeys.js.map +1 -0
- package/dist/store/buildProxy/handleLazyResolve.d.ts +10 -0
- package/dist/store/buildProxy/handleLazyResolve.d.ts.map +1 -0
- package/dist/store/buildProxy/handleLazyResolve.js +26 -0
- package/dist/store/buildProxy/handleLazyResolve.js.map +1 -0
- package/dist/store/buildProxy/initProxyCaches.d.ts +16 -0
- package/dist/store/buildProxy/initProxyCaches.d.ts.map +1 -0
- package/dist/store/buildProxy/initProxyCaches.js +17 -0
- package/dist/store/buildProxy/initProxyCaches.js.map +1 -0
- package/dist/store/compute/computeFieldState.d.ts +10 -0
- package/dist/store/compute/computeFieldState.d.ts.map +1 -0
- package/dist/store/compute/computeFieldState.js +53 -0
- package/dist/store/compute/computeFieldState.js.map +1 -0
- package/dist/store/compute/fieldStateChanged.d.ts +6 -0
- package/dist/store/compute/fieldStateChanged.d.ts.map +1 -0
- package/dist/store/compute/fieldStateChanged.js +20 -0
- package/dist/store/compute/fieldStateChanged.js.map +1 -0
- package/dist/store/compute/index.d.ts +7 -0
- package/dist/store/compute/index.d.ts.map +1 -0
- package/dist/store/compute/index.js +6 -0
- package/dist/store/compute/index.js.map +1 -0
- package/dist/store/compute/isEmpty.d.ts +6 -0
- package/dist/store/compute/isEmpty.d.ts.map +1 -0
- package/dist/store/compute/isEmpty.js +14 -0
- package/dist/store/compute/isEmpty.js.map +1 -0
- package/dist/store/compute/recompute/collectGroupComputeNodes.d.ts +11 -0
- package/dist/store/compute/recompute/collectGroupComputeNodes.d.ts.map +1 -0
- package/dist/store/compute/recompute/collectGroupComputeNodes.js +26 -0
- package/dist/store/compute/recompute/collectGroupComputeNodes.js.map +1 -0
- package/dist/store/compute/recompute/collectGroupLeafNodes.d.ts +11 -0
- package/dist/store/compute/recompute/collectGroupLeafNodes.d.ts.map +1 -0
- package/dist/store/compute/recompute/collectGroupLeafNodes.js +26 -0
- package/dist/store/compute/recompute/collectGroupLeafNodes.js.map +1 -0
- package/dist/store/compute/recompute/index.d.ts +7 -0
- package/dist/store/compute/recompute/index.d.ts.map +1 -0
- package/dist/store/compute/recompute/index.js +6 -0
- package/dist/store/compute/recompute/index.js.map +1 -0
- package/dist/store/compute/recompute/recomputeAndNotify.d.ts +8 -0
- package/dist/store/compute/recompute/recomputeAndNotify.d.ts.map +1 -0
- package/dist/store/compute/recompute/recomputeAndNotify.js +13 -0
- package/dist/store/compute/recompute/recomputeAndNotify.js.map +1 -0
- package/dist/store/compute/recompute/recomputeLeaves.d.ts +23 -0
- package/dist/store/compute/recompute/recomputeLeaves.d.ts.map +1 -0
- package/dist/store/compute/recompute/recomputeLeaves.js +77 -0
- package/dist/store/compute/recompute/recomputeLeaves.js.map +1 -0
- package/dist/store/compute/recompute/recomputeTargeted.d.ts +14 -0
- package/dist/store/compute/recompute/recomputeTargeted.d.ts.map +1 -0
- package/dist/store/compute/recompute/recomputeTargeted.js +50 -0
- package/dist/store/compute/recompute/recomputeTargeted.js.map +1 -0
- package/dist/store/compute/recompute/topologicalSortComputed.d.ts +16 -0
- package/dist/store/compute/recompute/topologicalSortComputed.d.ts.map +1 -0
- package/dist/store/compute/recompute/topologicalSortComputed.js +60 -0
- package/dist/store/compute/recompute/topologicalSortComputed.js.map +1 -0
- package/dist/store/compute/recompute/types.d.ts +24 -0
- package/dist/store/compute/recompute/types.d.ts.map +1 -0
- package/dist/store/compute/recompute/types.js +2 -0
- package/dist/store/compute/recompute/types.js.map +1 -0
- package/dist/store/compute/resolveFlag.d.ts +7 -0
- package/dist/store/compute/resolveFlag.d.ts.map +1 -0
- package/dist/store/compute/resolveFlag.js +12 -0
- package/dist/store/compute/resolveFlag.js.map +1 -0
- package/dist/store/compute/resolveString.d.ts +11 -0
- package/dist/store/compute/resolveString.d.ts.map +1 -0
- package/dist/store/compute/resolveString.js +18 -0
- package/dist/store/compute/resolveString.js.map +1 -0
- package/dist/store/compute/types.d.ts +37 -0
- package/dist/store/compute/types.d.ts.map +1 -0
- package/dist/store/compute/types.js +2 -0
- package/dist/store/compute/types.js.map +1 -0
- package/dist/store/constants.d.ts +83 -0
- package/dist/store/constants.d.ts.map +1 -0
- package/dist/store/constants.js +145 -0
- package/dist/store/constants.js.map +1 -0
- package/dist/store/defineFieldMapping.d.ts +41 -0
- package/dist/store/defineFieldMapping.d.ts.map +1 -0
- package/dist/store/defineFieldMapping.js +42 -0
- package/dist/store/defineFieldMapping.js.map +1 -0
- package/dist/store/defineList.d.ts +14 -0
- package/dist/store/defineList.d.ts.map +1 -0
- package/dist/store/defineList.js +7 -0
- package/dist/store/defineList.js.map +1 -0
- package/dist/store/dirtyTracking/captureInitialValues.d.ts +8 -0
- package/dist/store/dirtyTracking/captureInitialValues.d.ts.map +1 -0
- package/dist/store/dirtyTracking/captureInitialValues.js +16 -0
- package/dist/store/dirtyTracking/captureInitialValues.js.map +1 -0
- package/dist/store/dirtyTracking/collectInitialSnapshot.d.ts +10 -0
- package/dist/store/dirtyTracking/collectInitialSnapshot.d.ts.map +1 -0
- package/dist/store/dirtyTracking/collectInitialSnapshot.js +35 -0
- package/dist/store/dirtyTracking/collectInitialSnapshot.js.map +1 -0
- package/dist/store/dirtyTracking/index.d.ts +7 -0
- package/dist/store/dirtyTracking/index.d.ts.map +1 -0
- package/dist/store/dirtyTracking/index.js +6 -0
- package/dist/store/dirtyTracking/index.js.map +1 -0
- package/dist/store/dirtyTracking/isDirtyValue.d.ts +7 -0
- package/dist/store/dirtyTracking/isDirtyValue.d.ts.map +1 -0
- package/dist/store/dirtyTracking/isDirtyValue.js +25 -0
- package/dist/store/dirtyTracking/isDirtyValue.js.map +1 -0
- package/dist/store/dirtyTracking/mergeInitialValues.d.ts +11 -0
- package/dist/store/dirtyTracking/mergeInitialValues.d.ts.map +1 -0
- package/dist/store/dirtyTracking/mergeInitialValues.js +29 -0
- package/dist/store/dirtyTracking/mergeInitialValues.js.map +1 -0
- package/dist/store/dirtyTracking/recomputeDirtyTargeted.d.ts +17 -0
- package/dist/store/dirtyTracking/recomputeDirtyTargeted.d.ts.map +1 -0
- package/dist/store/dirtyTracking/recomputeDirtyTargeted.js +90 -0
- package/dist/store/dirtyTracking/recomputeDirtyTargeted.js.map +1 -0
- package/dist/store/dirtyTracking/setGroupRevalidate.d.ts +13 -0
- package/dist/store/dirtyTracking/setGroupRevalidate.d.ts.map +1 -0
- package/dist/store/dirtyTracking/setGroupRevalidate.js +32 -0
- package/dist/store/dirtyTracking/setGroupRevalidate.js.map +1 -0
- package/dist/store/entityRegistry/entityRegistry.d.ts +166 -0
- package/dist/store/entityRegistry/entityRegistry.d.ts.map +1 -0
- package/dist/store/entityRegistry/entityRegistry.js +402 -0
- package/dist/store/entityRegistry/entityRegistry.js.map +1 -0
- package/dist/store/entityRegistry/generateId.d.ts +7 -0
- package/dist/store/entityRegistry/generateId.d.ts.map +1 -0
- package/dist/store/entityRegistry/generateId.js +18 -0
- package/dist/store/entityRegistry/generateId.js.map +1 -0
- package/dist/store/entityRegistry/index.d.ts +4 -0
- package/dist/store/entityRegistry/index.d.ts.map +1 -0
- package/dist/store/entityRegistry/index.js +3 -0
- package/dist/store/entityRegistry/index.js.map +1 -0
- package/dist/store/entityRegistry/types.d.ts +50 -0
- package/dist/store/entityRegistry/types.d.ts.map +1 -0
- package/dist/store/entityRegistry/types.js +2 -0
- package/dist/store/entityRegistry/types.js.map +1 -0
- package/dist/store/fieldMapping.typecheck.d.ts +2 -0
- package/dist/store/fieldMapping.typecheck.d.ts.map +1 -0
- package/dist/store/fieldMapping.typecheck.js +71 -0
- package/dist/store/fieldMapping.typecheck.js.map +1 -0
- package/dist/store/groupDeps/createGroupDeps.d.ts +9 -0
- package/dist/store/groupDeps/createGroupDeps.d.ts.map +1 -0
- package/dist/store/groupDeps/createGroupDeps.js +29 -0
- package/dist/store/groupDeps/createGroupDeps.js.map +1 -0
- package/dist/store/groupDeps/createTrackingValues.d.ts +15 -0
- package/dist/store/groupDeps/createTrackingValues.d.ts.map +1 -0
- package/dist/store/groupDeps/createTrackingValues.js +39 -0
- package/dist/store/groupDeps/createTrackingValues.js.map +1 -0
- package/dist/store/groupDeps/getNodeGroupPath.d.ts +9 -0
- package/dist/store/groupDeps/getNodeGroupPath.d.ts.map +1 -0
- package/dist/store/groupDeps/getNodeGroupPath.js +20 -0
- package/dist/store/groupDeps/getNodeGroupPath.js.map +1 -0
- package/dist/store/groupDeps/getRecipientGroups.d.ts +5 -0
- package/dist/store/groupDeps/getRecipientGroups.d.ts.map +1 -0
- package/dist/store/groupDeps/getRecipientGroups.js +15 -0
- package/dist/store/groupDeps/getRecipientGroups.js.map +1 -0
- package/dist/store/groupDeps/groupDeps.d.ts +19 -0
- package/dist/store/groupDeps/groupDeps.d.ts.map +1 -0
- package/dist/store/groupDeps/groupDeps.js +19 -0
- package/dist/store/groupDeps/groupDeps.js.map +1 -0
- package/dist/store/groupDeps/index.d.ts +7 -0
- package/dist/store/groupDeps/index.d.ts.map +1 -0
- package/dist/store/groupDeps/index.js +7 -0
- package/dist/store/groupDeps/index.js.map +1 -0
- package/dist/store/groupDeps/pairKey.d.ts +7 -0
- package/dist/store/groupDeps/pairKey.d.ts.map +1 -0
- package/dist/store/groupDeps/pairKey.js +12 -0
- package/dist/store/groupDeps/pairKey.js.map +1 -0
- package/dist/store/groupDeps/resolveGroupByPath.d.ts +8 -0
- package/dist/store/groupDeps/resolveGroupByPath.d.ts.map +1 -0
- package/dist/store/groupDeps/resolveGroupByPath.js +19 -0
- package/dist/store/groupDeps/resolveGroupByPath.js.map +1 -0
- package/dist/store/init/createNotificationHub.d.ts +81 -0
- package/dist/store/init/createNotificationHub.d.ts.map +1 -0
- package/dist/store/init/createNotificationHub.js +149 -0
- package/dist/store/init/createNotificationHub.js.map +1 -0
- package/dist/store/init/createResolveManager.d.ts +166 -0
- package/dist/store/init/createResolveManager.d.ts.map +1 -0
- package/dist/store/init/createResolveManager.js +502 -0
- package/dist/store/init/createResolveManager.js.map +1 -0
- package/dist/store/init/initGroupSubmitting.d.ts +8 -0
- package/dist/store/init/initGroupSubmitting.d.ts.map +1 -0
- package/dist/store/init/initGroupSubmitting.js +39 -0
- package/dist/store/init/initGroupSubmitting.js.map +1 -0
- package/dist/store/normalizeConfig.d.ts +28 -0
- package/dist/store/normalizeConfig.d.ts.map +1 -0
- package/dist/store/normalizeConfig.js +76 -0
- package/dist/store/normalizeConfig.js.map +1 -0
- package/dist/store/onChangePipeline/computeFieldKey.d.ts +11 -0
- package/dist/store/onChangePipeline/computeFieldKey.d.ts.map +1 -0
- package/dist/store/onChangePipeline/computeFieldKey.js +18 -0
- package/dist/store/onChangePipeline/computeFieldKey.js.map +1 -0
- package/dist/store/onChangePipeline/findOnChangeAncestors.d.ts +8 -0
- package/dist/store/onChangePipeline/findOnChangeAncestors.d.ts.map +1 -0
- package/dist/store/onChangePipeline/findOnChangeAncestors.js +22 -0
- package/dist/store/onChangePipeline/findOnChangeAncestors.js.map +1 -0
- package/dist/store/onChangePipeline/onChangePipeline.d.ts +29 -0
- package/dist/store/onChangePipeline/onChangePipeline.d.ts.map +1 -0
- package/dist/store/onChangePipeline/onChangePipeline.js +99 -0
- package/dist/store/onChangePipeline/onChangePipeline.js.map +1 -0
- package/dist/store/persist/drivers.d.ts +34 -0
- package/dist/store/persist/drivers.d.ts.map +1 -0
- package/dist/store/persist/drivers.js +89 -0
- package/dist/store/persist/drivers.js.map +1 -0
- package/dist/store/persist/index.d.ts +7 -0
- package/dist/store/persist/index.d.ts.map +1 -0
- package/dist/store/persist/index.js +3 -0
- package/dist/store/persist/index.js.map +1 -0
- package/dist/store/persist/persistManager.d.ts +67 -0
- package/dist/store/persist/persistManager.d.ts.map +1 -0
- package/dist/store/persist/persistManager.js +198 -0
- package/dist/store/persist/persistManager.js.map +1 -0
- package/dist/store/persist/types.d.ts +66 -0
- package/dist/store/persist/types.d.ts.map +1 -0
- package/dist/store/persist/types.js +9 -0
- package/dist/store/persist/types.js.map +1 -0
- package/dist/store/resetPipeline/buildResetPatch.d.ts +11 -0
- package/dist/store/resetPipeline/buildResetPatch.d.ts.map +1 -0
- package/dist/store/resetPipeline/buildResetPatch.js +22 -0
- package/dist/store/resetPipeline/buildResetPatch.js.map +1 -0
- package/dist/store/resetPipeline/collectDefaults.d.ts +12 -0
- package/dist/store/resetPipeline/collectDefaults.d.ts.map +1 -0
- package/dist/store/resetPipeline/collectDefaults.js +31 -0
- package/dist/store/resetPipeline/collectDefaults.js.map +1 -0
- package/dist/store/resetPipeline/resetPipeline.d.ts +19 -0
- package/dist/store/resetPipeline/resetPipeline.d.ts.map +1 -0
- package/dist/store/resetPipeline/resetPipeline.js +49 -0
- package/dist/store/resetPipeline/resetPipeline.js.map +1 -0
- package/dist/store/resolvePipeline/applyPendingWrites.d.ts +26 -0
- package/dist/store/resolvePipeline/applyPendingWrites.d.ts.map +1 -0
- package/dist/store/resolvePipeline/applyPendingWrites.js +68 -0
- package/dist/store/resolvePipeline/applyPendingWrites.js.map +1 -0
- package/dist/store/resolvePipeline/createContextTrackingProxy.d.ts +16 -0
- package/dist/store/resolvePipeline/createContextTrackingProxy.d.ts.map +1 -0
- package/dist/store/resolvePipeline/createContextTrackingProxy.js +29 -0
- package/dist/store/resolvePipeline/createContextTrackingProxy.js.map +1 -0
- package/dist/store/resolvePipeline/createValuesTrackingProxy.d.ts +75 -0
- package/dist/store/resolvePipeline/createValuesTrackingProxy.d.ts.map +1 -0
- package/dist/store/resolvePipeline/createValuesTrackingProxy.js +128 -0
- package/dist/store/resolvePipeline/createValuesTrackingProxy.js.map +1 -0
- package/dist/store/resolvePipeline/executeEntityFieldResolve.d.ts +29 -0
- package/dist/store/resolvePipeline/executeEntityFieldResolve.d.ts.map +1 -0
- package/dist/store/resolvePipeline/executeEntityFieldResolve.js +218 -0
- package/dist/store/resolvePipeline/executeEntityFieldResolve.js.map +1 -0
- package/dist/store/resolvePipeline/executeListResolve.d.ts +32 -0
- package/dist/store/resolvePipeline/executeListResolve.d.ts.map +1 -0
- package/dist/store/resolvePipeline/executeListResolve.js +157 -0
- package/dist/store/resolvePipeline/executeListResolve.js.map +1 -0
- package/dist/store/resolvePipeline/executeResolve.d.ts +26 -0
- package/dist/store/resolvePipeline/executeResolve.d.ts.map +1 -0
- package/dist/store/resolvePipeline/executeResolve.js +201 -0
- package/dist/store/resolvePipeline/executeResolve.js.map +1 -0
- package/dist/store/resolvePipeline/findResolvesToRetrigger.d.ts +10 -0
- package/dist/store/resolvePipeline/findResolvesToRetrigger.d.ts.map +1 -0
- package/dist/store/resolvePipeline/findResolvesToRetrigger.js +29 -0
- package/dist/store/resolvePipeline/findResolvesToRetrigger.js.map +1 -0
- package/dist/store/resolvePipeline/index.d.ts +22 -0
- package/dist/store/resolvePipeline/index.d.ts.map +1 -0
- package/dist/store/resolvePipeline/index.js +18 -0
- package/dist/store/resolvePipeline/index.js.map +1 -0
- package/dist/store/resolvePipeline/initResolveStates.d.ts +41 -0
- package/dist/store/resolvePipeline/initResolveStates.d.ts.map +1 -0
- package/dist/store/resolvePipeline/initResolveStates.js +95 -0
- package/dist/store/resolvePipeline/initResolveStates.js.map +1 -0
- package/dist/store/resolvePipeline/resetResolveState.d.ts +8 -0
- package/dist/store/resolvePipeline/resetResolveState.d.ts.map +1 -0
- package/dist/store/resolvePipeline/resetResolveState.js +18 -0
- package/dist/store/resolvePipeline/resetResolveState.js.map +1 -0
- package/dist/store/resolvePipeline/types.d.ts +134 -0
- package/dist/store/resolvePipeline/types.d.ts.map +1 -0
- package/dist/store/resolvePipeline/types.js +54 -0
- package/dist/store/resolvePipeline/types.js.map +1 -0
- package/dist/store/store/NodeRegistry/index.d.ts +3 -0
- package/dist/store/store/NodeRegistry/index.d.ts.map +1 -0
- package/dist/store/store/NodeRegistry/index.js +2 -0
- package/dist/store/store/NodeRegistry/index.js.map +1 -0
- package/dist/store/store/NodeRegistry/nodeRegistry.d.ts +139 -0
- package/dist/store/store/NodeRegistry/nodeRegistry.d.ts.map +1 -0
- package/dist/store/store/NodeRegistry/nodeRegistry.js +255 -0
- package/dist/store/store/NodeRegistry/nodeRegistry.js.map +1 -0
- package/dist/store/store/NodeRegistry/nodeUtils.d.ts +17 -0
- package/dist/store/store/NodeRegistry/nodeUtils.d.ts.map +1 -0
- package/dist/store/store/NodeRegistry/nodeUtils.js +21 -0
- package/dist/store/store/NodeRegistry/nodeUtils.js.map +1 -0
- package/dist/store/store/NodeRegistry/nodeView.d.ts +28 -0
- package/dist/store/store/NodeRegistry/nodeView.d.ts.map +1 -0
- package/dist/store/store/NodeRegistry/nodeView.js +16 -0
- package/dist/store/store/NodeRegistry/nodeView.js.map +1 -0
- package/dist/store/store/dirtyTracker.d.ts +27 -0
- package/dist/store/store/dirtyTracker.d.ts.map +1 -0
- package/dist/store/store/dirtyTracker.js +38 -0
- package/dist/store/store/dirtyTracker.js.map +1 -0
- package/dist/store/store/groupDepsMap.d.ts +52 -0
- package/dist/store/store/groupDepsMap.d.ts.map +1 -0
- package/dist/store/store/groupDepsMap.js +84 -0
- package/dist/store/store/groupDepsMap.js.map +1 -0
- package/dist/store/store/hasComputedProps.d.ts +7 -0
- package/dist/store/store/hasComputedProps.d.ts.map +1 -0
- package/dist/store/store/hasComputedProps.js +15 -0
- package/dist/store/store/hasComputedProps.js.map +1 -0
- package/dist/store/store/index.d.ts +6 -0
- package/dist/store/store/index.d.ts.map +1 -0
- package/dist/store/store/index.js +3 -0
- package/dist/store/store/index.js.map +1 -0
- package/dist/store/store/nodeMap.d.ts +12 -0
- package/dist/store/store/nodeMap.d.ts.map +1 -0
- package/dist/store/store/nodeMap.js +30 -0
- package/dist/store/store/nodeMap.js.map +1 -0
- package/dist/store/store/palistor.d.ts +256 -0
- package/dist/store/store/palistor.d.ts.map +1 -0
- package/dist/store/store/palistor.js +772 -0
- package/dist/store/store/palistor.js.map +1 -0
- package/dist/store/store/registerNodes.d.ts +33 -0
- package/dist/store/store/registerNodes.d.ts.map +1 -0
- package/dist/store/store/registerNodes.js +88 -0
- package/dist/store/store/registerNodes.js.map +1 -0
- package/dist/store/store/serviceRegistry.d.ts +24 -0
- package/dist/store/store/serviceRegistry.d.ts.map +1 -0
- package/dist/store/store/serviceRegistry.js +32 -0
- package/dist/store/store/serviceRegistry.js.map +1 -0
- package/dist/store/store/types.d.ts +622 -0
- package/dist/store/store/types.d.ts.map +1 -0
- package/dist/store/store/types.js +2 -0
- package/dist/store/store/types.js.map +1 -0
- package/dist/store/submitPipeline/applyLeafBeforeSubmit.d.ts +7 -0
- package/dist/store/submitPipeline/applyLeafBeforeSubmit.d.ts.map +1 -0
- package/dist/store/submitPipeline/applyLeafBeforeSubmit.js +26 -0
- package/dist/store/submitPipeline/applyLeafBeforeSubmit.js.map +1 -0
- package/dist/store/submitPipeline/collectLeafStates.d.ts +11 -0
- package/dist/store/submitPipeline/collectLeafStates.d.ts.map +1 -0
- package/dist/store/submitPipeline/collectLeafStates.js +17 -0
- package/dist/store/submitPipeline/collectLeafStates.js.map +1 -0
- package/dist/store/submitPipeline/getSubValues.d.ts +9 -0
- package/dist/store/submitPipeline/getSubValues.d.ts.map +1 -0
- package/dist/store/submitPipeline/getSubValues.js +26 -0
- package/dist/store/submitPipeline/getSubValues.js.map +1 -0
- package/dist/store/submitPipeline/submitPipeline.d.ts +32 -0
- package/dist/store/submitPipeline/submitPipeline.d.ts.map +1 -0
- package/dist/store/submitPipeline/submitPipeline.js +119 -0
- package/dist/store/submitPipeline/submitPipeline.js.map +1 -0
- package/dist/store/submitPipeline/types.d.ts +12 -0
- package/dist/store/submitPipeline/types.d.ts.map +1 -0
- package/dist/store/submitPipeline/types.js +2 -0
- package/dist/store/submitPipeline/types.js.map +1 -0
- package/dist/store/traversal/index.d.ts +4 -0
- package/dist/store/traversal/index.d.ts.map +1 -0
- package/dist/store/traversal/index.js +3 -0
- package/dist/store/traversal/index.js.map +1 -0
- package/dist/store/traversal/nodeClassifier.d.ts +23 -0
- package/dist/store/traversal/nodeClassifier.d.ts.map +1 -0
- package/dist/store/traversal/nodeClassifier.js +46 -0
- package/dist/store/traversal/nodeClassifier.js.map +1 -0
- package/dist/store/traversal/walkFull.d.ts +33 -0
- package/dist/store/traversal/walkFull.d.ts.map +1 -0
- package/dist/store/traversal/walkFull.js +28 -0
- package/dist/store/traversal/walkFull.js.map +1 -0
- package/dist/store/valuesCache/valuesCache.d.ts +27 -0
- package/dist/store/valuesCache/valuesCache.d.ts.map +1 -0
- package/dist/store/valuesCache/valuesCache.js +58 -0
- package/dist/store/valuesCache/valuesCache.js.map +1 -0
- package/dist/store/writePipeline/formatPatch.d.ts +14 -0
- package/dist/store/writePipeline/formatPatch.d.ts.map +1 -0
- package/dist/store/writePipeline/formatPatch.js +35 -0
- package/dist/store/writePipeline/formatPatch.js.map +1 -0
- package/dist/store/writePipeline/formatValue.d.ts +12 -0
- package/dist/store/writePipeline/formatValue.d.ts.map +1 -0
- package/dist/store/writePipeline/formatValue.js +15 -0
- package/dist/store/writePipeline/formatValue.js.map +1 -0
- package/dist/store/writePipeline/index.d.ts +8 -0
- package/dist/store/writePipeline/index.d.ts.map +1 -0
- package/dist/store/writePipeline/index.js +7 -0
- package/dist/store/writePipeline/index.js.map +1 -0
- package/dist/store/writePipeline/mergeChanged.d.ts +9 -0
- package/dist/store/writePipeline/mergeChanged.d.ts.map +1 -0
- package/dist/store/writePipeline/mergeChanged.js +15 -0
- package/dist/store/writePipeline/mergeChanged.js.map +1 -0
- package/dist/store/writePipeline/runSetter.d.ts +16 -0
- package/dist/store/writePipeline/runSetter.d.ts.map +1 -0
- package/dist/store/writePipeline/runSetter.js +35 -0
- package/dist/store/writePipeline/runSetter.js.map +1 -0
- package/dist/store/writePipeline/storeValue.d.ts +11 -0
- package/dist/store/writePipeline/storeValue.d.ts.map +1 -0
- package/dist/store/writePipeline/storeValue.js +17 -0
- package/dist/store/writePipeline/storeValue.js.map +1 -0
- package/dist/store/writePipeline/types.d.ts +10 -0
- package/dist/store/writePipeline/types.d.ts.map +1 -0
- package/dist/store/writePipeline/types.js +2 -0
- package/dist/store/writePipeline/types.js.map +1 -0
- package/dist/store/writePipeline/writePipeline.d.ts +31 -0
- package/dist/store/writePipeline/writePipeline.d.ts.map +1 -0
- package/dist/store/writePipeline/writePipeline.js +97 -0
- package/dist/store/writePipeline/writePipeline.js.map +1 -0
- package/package.json +79 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { CONFIG_PROPS } from "../constants";
|
|
2
|
+
import { isListNode } from "../store/NodeRegistry/nodeUtils";
|
|
3
|
+
import { isGroupNode } from "../traversal";
|
|
4
|
+
import { resetResolveState } from "./resetResolveState";
|
|
5
|
+
// ─── Initialization ──────────────────────────────────────────────────────────
|
|
6
|
+
/**
|
|
7
|
+
* Recursively finds all nodes with `resolve` in the config tree.
|
|
8
|
+
* Initializes ResolveState for each of them.
|
|
9
|
+
* Returns the list of { node, resolve, isListNode } entries.
|
|
10
|
+
*
|
|
11
|
+
* Phase 2C: also walks ListNodes and extracts listConfig.resolve.
|
|
12
|
+
*/
|
|
13
|
+
export function initResolveStates(rootConfig, resolveStates) {
|
|
14
|
+
const entries = [];
|
|
15
|
+
/** Walk a template (list[0]) and collect all fields with `resolve`. */
|
|
16
|
+
function walkTemplateFields(template, listNode) {
|
|
17
|
+
for (const key of Object.keys(template)) {
|
|
18
|
+
if (CONFIG_PROPS.has(key))
|
|
19
|
+
continue;
|
|
20
|
+
const field = template[key];
|
|
21
|
+
if (!field || typeof field !== "object" || Array.isArray(field))
|
|
22
|
+
continue;
|
|
23
|
+
if (field.resolve && typeof field.resolve === "object" && typeof field.resolve.resolver === "function") {
|
|
24
|
+
entries.push({
|
|
25
|
+
node: field,
|
|
26
|
+
resolve: field.resolve,
|
|
27
|
+
isListNode: false,
|
|
28
|
+
isTemplateField: true,
|
|
29
|
+
listNode,
|
|
30
|
+
fieldKey: key,
|
|
31
|
+
});
|
|
32
|
+
// NOTE: No ResolveState created here — created per-entity in Phase 2.
|
|
33
|
+
}
|
|
34
|
+
// Recurse into nested groups within the template field
|
|
35
|
+
if (isGroupNode(field)) {
|
|
36
|
+
walkTemplateFields(field, listNode);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
function walk(node) {
|
|
41
|
+
// Check if this node has a resolve
|
|
42
|
+
if (node.resolve && typeof node.resolve === "object" && typeof node.resolve.resolver === "function") {
|
|
43
|
+
const resolve = node.resolve;
|
|
44
|
+
entries.push({ node, resolve, isListNode: false });
|
|
45
|
+
resetResolveState(node, resolveStates, new Set(resolve.deps ?? []));
|
|
46
|
+
}
|
|
47
|
+
// Recurse into children
|
|
48
|
+
for (const key of Object.keys(node)) {
|
|
49
|
+
if (CONFIG_PROPS.has(key))
|
|
50
|
+
continue;
|
|
51
|
+
const child = node[key];
|
|
52
|
+
if (!child || typeof child !== "object")
|
|
53
|
+
continue;
|
|
54
|
+
if (Array.isArray(child)) {
|
|
55
|
+
// Phase 2C: handle ListNode resolve from listConfig (array[1])
|
|
56
|
+
if (isListNode(child) && child.length > 1) {
|
|
57
|
+
const listConfig = child[1];
|
|
58
|
+
if (listConfig?.resolve && typeof listConfig.resolve.resolver === "function") {
|
|
59
|
+
entries.push({
|
|
60
|
+
node: child,
|
|
61
|
+
resolve: listConfig.resolve,
|
|
62
|
+
isListNode: true,
|
|
63
|
+
});
|
|
64
|
+
resetResolveState(child, resolveStates, new Set(listConfig.resolve.deps ?? []));
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
// Phase 1: walk template fields for per-entity field resolves
|
|
68
|
+
if (isListNode(child)) {
|
|
69
|
+
walkTemplateFields(child[0], child);
|
|
70
|
+
}
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
if (isGroupNode(child)) {
|
|
74
|
+
walk(child);
|
|
75
|
+
}
|
|
76
|
+
else if (child.resolve && typeof child.resolve.resolver === "function") {
|
|
77
|
+
// Leaf node with resolve → per-entity field resolve (e.g. bio inside editUser template group).
|
|
78
|
+
// Use the parent group node as listNode — it won't appear in listNodeToTemplateFieldEntries
|
|
79
|
+
// (since it's not a list), but the entry will be in templateFieldEntryMap for lazy triggering
|
|
80
|
+
// from buildEntityProjectionProxy.
|
|
81
|
+
entries.push({
|
|
82
|
+
node: child,
|
|
83
|
+
resolve: child.resolve,
|
|
84
|
+
isListNode: false,
|
|
85
|
+
isTemplateField: true,
|
|
86
|
+
listNode: node,
|
|
87
|
+
fieldKey: key,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
walk(rootConfig);
|
|
93
|
+
return entries;
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=initResolveStates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initResolveStates.js","sourceRoot":"","sources":["../../../store/resolvePipeline/initResolveStates.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type AnyConfigNode } from "../store/types";
|
|
2
|
+
import type { ResolveState } from "./types";
|
|
3
|
+
/**
|
|
4
|
+
* Reset a resolve state back to idle (used when dependencies change).
|
|
5
|
+
* If `dependencies` is provided and the state doesn't exist yet, it is created (used during init).
|
|
6
|
+
*/
|
|
7
|
+
export declare function resetResolveState(node: AnyConfigNode, resolveStates: Map<object, ResolveState>, dependencies?: Set<string>): void;
|
|
8
|
+
//# sourceMappingURL=resetResolveState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resetResolveState.d.ts","sourceRoot":"","sources":["../../../store/resolvePipeline/resetResolveState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,aAAa,EACnB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,EACxC,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACzB,IAAI,CAWN"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reset a resolve state back to idle (used when dependencies change).
|
|
3
|
+
* If `dependencies` is provided and the state doesn't exist yet, it is created (used during init).
|
|
4
|
+
*/
|
|
5
|
+
export function resetResolveState(node, resolveStates, dependencies) {
|
|
6
|
+
const state = resolveStates.get(node);
|
|
7
|
+
if (!state) {
|
|
8
|
+
if (dependencies === undefined)
|
|
9
|
+
return;
|
|
10
|
+
resolveStates.set(node, { status: "idle", promise: null, error: null, dependencies, attempt: 0 });
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
state.status = "idle";
|
|
14
|
+
state.promise = null;
|
|
15
|
+
state.error = null;
|
|
16
|
+
state.attempt = 0;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=resetResolveState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resetResolveState.js","sourceRoot":"","sources":["../../../store/resolvePipeline/resetResolveState.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAmB,EACnB,aAAwC,EACxC,YAA0B;IAE1B,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,IAAI,YAAY,KAAK,SAAS;YAAE,OAAO;QACvC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QAClG,OAAO;IACT,CAAC;IACD,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;IACrB,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;IACnB,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { type AnyConfigNode, type ProxyStore } from "../store/types";
|
|
2
|
+
import type { FieldState } from "../compute/index";
|
|
3
|
+
import type { ValuesCache } from "../valuesCache/valuesCache";
|
|
4
|
+
/** Notification function registered via useNotifier. User defines the signature. */
|
|
5
|
+
export type NotifyFn = (...args: any[]) => void;
|
|
6
|
+
/** Error context passed to resolve.onError */
|
|
7
|
+
export interface ResolveErrorContext {
|
|
8
|
+
/** Notification function from useNotifier. */
|
|
9
|
+
notify: NotifyFn;
|
|
10
|
+
}
|
|
11
|
+
/** Async resolver configuration for a group node. */
|
|
12
|
+
export interface Resolve<T = Record<string, unknown>> {
|
|
13
|
+
/**
|
|
14
|
+
* Async data loader.
|
|
15
|
+
* `thisForm` is a tracking write-proxy of the current form/group values:
|
|
16
|
+
* - Read: tracks dependencies (auto-deps)
|
|
17
|
+
* - Write: buffers side-effects (batch)
|
|
18
|
+
* `store` is the ProxyStore instance for accessing other parts of the store.
|
|
19
|
+
* Returns an object with values for THIS node's subtree.
|
|
20
|
+
*/
|
|
21
|
+
resolver: (thisForm: Record<string, unknown>, store: ProxyStore<any>) => Promise<T>;
|
|
22
|
+
/**
|
|
23
|
+
* Synchronous placeholder — set instantly before resolver completes.
|
|
24
|
+
* Structure mirrors resolver return type.
|
|
25
|
+
*/
|
|
26
|
+
optimisticResolver?: (values: Record<string, unknown>) => Partial<T>;
|
|
27
|
+
/**
|
|
28
|
+
* Error handler called after retry exhaustion.
|
|
29
|
+
* `ctx.notify` is the notification function from useNotifier.
|
|
30
|
+
*/
|
|
31
|
+
onError: (error: unknown, ctx: ResolveErrorContext) => void;
|
|
32
|
+
/**
|
|
33
|
+
* Explicit dependencies — paths in the values tree.
|
|
34
|
+
* When any of these paths change → re-run resolver.
|
|
35
|
+
* Takes priority for first run (auto-deps not yet collected).
|
|
36
|
+
* After first run: merged with auto-deps.
|
|
37
|
+
*/
|
|
38
|
+
deps?: string[];
|
|
39
|
+
/**
|
|
40
|
+
* Context keys that must be present (non-null/undefined) before the resolver
|
|
41
|
+
* is allowed to start. The resolver is queued until all keys satisfy the check.
|
|
42
|
+
*
|
|
43
|
+
* Prevents the initial "flash of error" when context is set asynchronously
|
|
44
|
+
* (e.g., after the first render).
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* contextDeps: ['accountId'] // resolver won't run until context.accountId != null
|
|
48
|
+
*/
|
|
49
|
+
contextDeps?: string[];
|
|
50
|
+
options?: {
|
|
51
|
+
/** Wait for first access to the node. Default: true */
|
|
52
|
+
lazy?: boolean;
|
|
53
|
+
/** Throw Promise for React Suspense (loading only). Default: false */
|
|
54
|
+
suspense?: boolean;
|
|
55
|
+
/** Retry options on error */
|
|
56
|
+
retry?: {
|
|
57
|
+
attempts: number;
|
|
58
|
+
delay: number;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Skip field resolve if the entity leaf already has a value !== template default.
|
|
62
|
+
* Applies to per-entity field resolves only. Default: true
|
|
63
|
+
*/
|
|
64
|
+
skipIfResolved?: boolean;
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
export type ResolveStatus = "idle" | "pending" | "resolved" | "error";
|
|
68
|
+
export interface ResolveState {
|
|
69
|
+
status: ResolveStatus;
|
|
70
|
+
/** Current promise (for suspense and deduplication) */
|
|
71
|
+
promise: Promise<unknown> | null;
|
|
72
|
+
/** Last error */
|
|
73
|
+
error: unknown | null;
|
|
74
|
+
/** Paths in values tree that the resolver depends on (auto-deps) */
|
|
75
|
+
dependencies: Set<string>;
|
|
76
|
+
/** Current retry attempt number */
|
|
77
|
+
attempt: number;
|
|
78
|
+
/**
|
|
79
|
+
* Set to true when a dep changes while this resolver is pending.
|
|
80
|
+
* After the current resolution completes, the resolver will be retriggered.
|
|
81
|
+
*/
|
|
82
|
+
pendingRetrigger?: boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Number of consecutive automatic retriggers (via postNotifyHook).
|
|
85
|
+
* Reset when the resolver is triggered manually (triggerResolve / retriggerByPaths).
|
|
86
|
+
* Used to detect infinite dependency cycles (A→B→A) and cap execution.
|
|
87
|
+
*/
|
|
88
|
+
autoRetriggerCount?: number;
|
|
89
|
+
/**
|
|
90
|
+
* Submit pipeline in progress for entity-template binding.
|
|
91
|
+
* Used in entityStates keyed by (entityId, templateNode) to track submitting state.
|
|
92
|
+
*/
|
|
93
|
+
submitting?: boolean;
|
|
94
|
+
}
|
|
95
|
+
export interface ResolveDeps {
|
|
96
|
+
rootConfig: AnyConfigNode;
|
|
97
|
+
nodeState: WeakMap<object, FieldState>;
|
|
98
|
+
resolveStates: Map<object, ResolveState>;
|
|
99
|
+
recompute: () => Set<object>;
|
|
100
|
+
notifyChanged: (changed: Set<object>) => void;
|
|
101
|
+
notify: NotifyFn;
|
|
102
|
+
getValues: () => Record<string, unknown>;
|
|
103
|
+
/** Initial value snapshot for dirty tracking — updated after resolver success. */
|
|
104
|
+
initialValueMap: WeakMap<object, unknown>;
|
|
105
|
+
valuesCache: ValuesCache;
|
|
106
|
+
/** The ProxyStore instance — passed as second argument to resolver. */
|
|
107
|
+
store: ProxyStore<any>;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Two-level Map for per-entity field resolve state.
|
|
111
|
+
* Key: (entityId, templateFieldNode) → ResolveState
|
|
112
|
+
*
|
|
113
|
+
* Used for Phase 0+ entity field resolve — resolve state is per-entity,
|
|
114
|
+
* not per-node (since the same entity may appear under different templates).
|
|
115
|
+
*/
|
|
116
|
+
export declare class EntityResolveStateMap {
|
|
117
|
+
private _map;
|
|
118
|
+
get(entityId: string, node: object): ResolveState | undefined;
|
|
119
|
+
getOrCreate(entityId: string, node: object, deps?: Set<string>): ResolveState;
|
|
120
|
+
/**
|
|
121
|
+
* Delete resolve state(s) for an entity.
|
|
122
|
+
* - If `node` is provided: delete only that specific (entityId, node) entry.
|
|
123
|
+
* - If `node` is omitted: delete all entries for the entity.
|
|
124
|
+
*/
|
|
125
|
+
delete(entityId: string, node?: object): void;
|
|
126
|
+
/** Remove all entries for all entities. Used on full form reset. */
|
|
127
|
+
clearAll(): void;
|
|
128
|
+
entries(): Iterable<{
|
|
129
|
+
entityId: string;
|
|
130
|
+
node: object;
|
|
131
|
+
state: ResolveState;
|
|
132
|
+
}>;
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../store/resolvePipeline/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// ─── EntityResolveStateMap ────────────────────────────────────────────────────
|
|
2
|
+
/**
|
|
3
|
+
* Two-level Map for per-entity field resolve state.
|
|
4
|
+
* Key: (entityId, templateFieldNode) → ResolveState
|
|
5
|
+
*
|
|
6
|
+
* Used for Phase 0+ entity field resolve — resolve state is per-entity,
|
|
7
|
+
* not per-node (since the same entity may appear under different templates).
|
|
8
|
+
*/
|
|
9
|
+
export class EntityResolveStateMap {
|
|
10
|
+
constructor() {
|
|
11
|
+
this._map = new Map();
|
|
12
|
+
}
|
|
13
|
+
get(entityId, node) {
|
|
14
|
+
return this._map.get(entityId)?.get(node);
|
|
15
|
+
}
|
|
16
|
+
getOrCreate(entityId, node, deps = new Set()) {
|
|
17
|
+
let byNode = this._map.get(entityId);
|
|
18
|
+
if (!byNode) {
|
|
19
|
+
byNode = new Map();
|
|
20
|
+
this._map.set(entityId, byNode);
|
|
21
|
+
}
|
|
22
|
+
let state = byNode.get(node);
|
|
23
|
+
if (!state) {
|
|
24
|
+
state = { status: "idle", promise: null, error: null, dependencies: deps, attempt: 0 };
|
|
25
|
+
byNode.set(node, state);
|
|
26
|
+
}
|
|
27
|
+
return state;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Delete resolve state(s) for an entity.
|
|
31
|
+
* - If `node` is provided: delete only that specific (entityId, node) entry.
|
|
32
|
+
* - If `node` is omitted: delete all entries for the entity.
|
|
33
|
+
*/
|
|
34
|
+
delete(entityId, node) {
|
|
35
|
+
if (node === undefined) {
|
|
36
|
+
this._map.delete(entityId);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
this._map.get(entityId)?.delete(node);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/** Remove all entries for all entities. Used on full form reset. */
|
|
43
|
+
clearAll() {
|
|
44
|
+
this._map.clear();
|
|
45
|
+
}
|
|
46
|
+
*entries() {
|
|
47
|
+
for (const [entityId, byNode] of this._map) {
|
|
48
|
+
for (const [node, state] of byNode) {
|
|
49
|
+
yield { entityId, node, state };
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../store/resolvePipeline/types.ts"],"names":[],"mappings":"AA8HA,iFAAiF;AAEjF;;;;;;GAMG;AACH,MAAM,OAAO,qBAAqB;IAAlC;QACU,SAAI,GAAG,IAAI,GAAG,EAAqC,CAAC;IA6C9D,CAAC;IA3CC,GAAG,CAAC,QAAgB,EAAE,IAAY;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,WAAW,CAAC,QAAgB,EAAE,IAAY,EAAE,OAAoB,IAAI,GAAG,EAAE;QACvE,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;YACvF,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,QAAgB,EAAE,IAAa;QACpC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,oEAAoE;IACpE,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAED,CAAC,OAAO;QACN,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC3C,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;gBACnC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YAClC,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../store/store/NodeRegistry/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../store/store/NodeRegistry/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { type FieldState } from "../../compute/index";
|
|
2
|
+
import { type GroupComputeMap, type ComputeEntry } from "../registerNodes";
|
|
3
|
+
import type { AnyConfigNode, TranslateFn, ListState } from "../types";
|
|
4
|
+
import { isLeafNode, isGroupNode, isListNode } from "./nodeUtils";
|
|
5
|
+
import { type NodeView, type NodeViewKernel } from "./nodeView";
|
|
6
|
+
/**
|
|
7
|
+
* Реестр узлов конфига.
|
|
8
|
+
*
|
|
9
|
+
* Объединяет данные,
|
|
10
|
+
* `Palistor`: nodeState, nodePaths, nodeParents, computeNodes,
|
|
11
|
+
* groupComputeMap, proxyCache.
|
|
12
|
+
*
|
|
13
|
+
* Выполняет инициализацию (registerNodes + buildNodeMaps + initGroupSubmitting)
|
|
14
|
+
* в конструкторе.
|
|
15
|
+
*
|
|
16
|
+
* @internal используется пайплайнами и подсистемами через kernel
|
|
17
|
+
*/
|
|
18
|
+
export declare class NodeRegistry {
|
|
19
|
+
constructor(rootConfig: AnyConfigNode, initialValues: Record<string, unknown>, translate: TranslateFn);
|
|
20
|
+
/**
|
|
21
|
+
* Вычисленное состояние каждого узла конфига.
|
|
22
|
+
* Ключ — объект-узел, значение — FieldState.
|
|
23
|
+
*/
|
|
24
|
+
readonly nodeState: WeakMap<object, FieldState>;
|
|
25
|
+
/**
|
|
26
|
+
* Абсолютный dot-путь каждого узла конфига.
|
|
27
|
+
* Например, passport.number → "passport.number".
|
|
28
|
+
* Корневой узел не имеет пути в этой карте (используется "").
|
|
29
|
+
*/
|
|
30
|
+
readonly nodePaths: WeakMap<object, string>;
|
|
31
|
+
/**
|
|
32
|
+
* Прямой родитель каждого узла конфига.
|
|
33
|
+
* Корневой узел → не имеет записи.
|
|
34
|
+
*/
|
|
35
|
+
readonly nodeParents: WeakMap<object, object>;
|
|
36
|
+
/**
|
|
37
|
+
* Все compute-узлы в порядке обхода (DFS).
|
|
38
|
+
* Содержит листовые узлы и групповые узлы с computed-свойствами.
|
|
39
|
+
* Используется NotificationHub для bumpLeafVersions().
|
|
40
|
+
*/
|
|
41
|
+
readonly computeNodes: ComputeEntry[];
|
|
42
|
+
/**
|
|
43
|
+
* Маппинг группового узла → массив его прямых дочерних записей (листья + группы с computed-свойствами).
|
|
44
|
+
* Используется recomputeTargeted для пересчёта поддерева.
|
|
45
|
+
*/
|
|
46
|
+
readonly groupComputeMap: GroupComputeMap;
|
|
47
|
+
/**
|
|
48
|
+
* Кэш Proxy-объектов — один прокси на узел конфига.
|
|
49
|
+
* Гарантирует стабильность ссылок (===) на proxy.
|
|
50
|
+
*/
|
|
51
|
+
readonly proxyCache: WeakMap<object, unknown>;
|
|
52
|
+
/**
|
|
53
|
+
* ListState для каждого ListNode в конфиге.
|
|
54
|
+
* Ключ — объект-массив конфига (сам ListNode).
|
|
55
|
+
* Заполняется при registerNodes (Phase 2A).
|
|
56
|
+
*/
|
|
57
|
+
readonly listStates: WeakMap<object, ListState>;
|
|
58
|
+
/**
|
|
59
|
+
* Все ListState-объекты в порядке регистрации.
|
|
60
|
+
* Используется Palistor для регистрации списков в EntityRegistry.rekey() (Phase 2C).
|
|
61
|
+
*/
|
|
62
|
+
readonly allListStates: ListState[];
|
|
63
|
+
/**
|
|
64
|
+
* Единый кэш list proxy (root + per-entity) — ключ: объект `ListState`.
|
|
65
|
+
* Гарантирует стабильные ссылки на list-proxy для React (как proxyCache для групп).
|
|
66
|
+
* Каждой паре (owner, listConfigNode) и каждому root-списку соответствует свой
|
|
67
|
+
* `ListState`, поэтому ключевание по нему даёт корректную изоляцию.
|
|
68
|
+
*/
|
|
69
|
+
readonly listProxyCache: WeakMap<object, object>;
|
|
70
|
+
/**
|
|
71
|
+
* Обратный индекс `listConfigNode → fieldPath` (вариант C, C3/C4).
|
|
72
|
+
* Путь — массив ключей относительно entity-scope владельца
|
|
73
|
+
* (`["contacts"]` или `["profile", "contacts"]` для списка в nested-группе).
|
|
74
|
+
* Используется для записи состава per-entity списка в нужное вложенное место
|
|
75
|
+
* projectionObj владельца — чтобы `store.getValues()` включал вложенные списки.
|
|
76
|
+
*/
|
|
77
|
+
readonly listFieldKeys: WeakMap<object, string[]>;
|
|
78
|
+
/**
|
|
79
|
+
* NodeView per storage node.
|
|
80
|
+
* - Config-mode: populated lazily via getView (identity views cached in _identityViews).
|
|
81
|
+
* - Entity-mode: populated by Palistor._setEntitiesRaw per (entityLeaf, templateField) pair.
|
|
82
|
+
* Map key = templateField (rules); supports multiple template bindings for one entity leaf.
|
|
83
|
+
*/
|
|
84
|
+
readonly nodeViews: WeakMap<object, Map<object, NodeView>>;
|
|
85
|
+
private _kernel?;
|
|
86
|
+
private readonly _identityViews;
|
|
87
|
+
/** Called by Palistor after construction to wire the kernel reference. */
|
|
88
|
+
setKernel(kernel: NodeViewKernel): void;
|
|
89
|
+
/**
|
|
90
|
+
* Get NodeView for a node.
|
|
91
|
+
* - via absent → identity view (storage === rules === node), cached.
|
|
92
|
+
* - via present → entity view registered by _setEntitiesRaw; throws if not found.
|
|
93
|
+
*/
|
|
94
|
+
getView(storage: AnyConfigNode, via?: object): NodeView;
|
|
95
|
+
/** Получить вычисленное состояние узла. */
|
|
96
|
+
getState(node: object): FieldState | undefined;
|
|
97
|
+
/** Установить состояние узла. */
|
|
98
|
+
setState(node: object, state: FieldState): void;
|
|
99
|
+
/** Получить абсолютный dot-путь узла. Для корневого — undefined. */
|
|
100
|
+
getPath(node: object): string | undefined;
|
|
101
|
+
/** Получить непосредственного родителя узла. */
|
|
102
|
+
getParent(node: object): object | undefined;
|
|
103
|
+
/**
|
|
104
|
+
* Получить path группы, к которой принадлежит узел.
|
|
105
|
+
* - Листовой узел → path родительской группы
|
|
106
|
+
* - Групповой узел → собственный path
|
|
107
|
+
* - Корневой → ""
|
|
108
|
+
*/
|
|
109
|
+
getGroupPath(node: object): string;
|
|
110
|
+
/** Найти узел по dot-пути. Перебирает computeNodes и проверяет их пути. */
|
|
111
|
+
findByPath(path: string): object | undefined;
|
|
112
|
+
/** Перебрать все compute-узлы. */
|
|
113
|
+
forEachCompute(callback: (entry: ComputeEntry) => void): void;
|
|
114
|
+
isLeafNode: typeof isLeafNode;
|
|
115
|
+
isGroupNode: typeof isGroupNode;
|
|
116
|
+
isListNode: typeof isListNode;
|
|
117
|
+
/**
|
|
118
|
+
* Зарегистрировать листовой узел, созданный в runtime (например, entity leaf при store.set()).
|
|
119
|
+
*
|
|
120
|
+
* Обновляет все WeakMap-ы реестра и добавляет запись в `computeNodes`,
|
|
121
|
+
* чтобы `bumpLeafVersions` (NotificationHub) автоматически захватил новый узел.
|
|
122
|
+
*
|
|
123
|
+
* @param node Объект-узел (`{ value }`)
|
|
124
|
+
* @param path Абсолютный dot-путь, e.g. "users.0.name"
|
|
125
|
+
* @param parent Непосредственный родительский объект-узел
|
|
126
|
+
* @param state Начальное FieldState
|
|
127
|
+
*/
|
|
128
|
+
registerDynamicLeaf(node: object, path: string, parent: object, state: import("../../compute/index").FieldState): void;
|
|
129
|
+
/**
|
|
130
|
+
* Снять регистрацию листового узла (например, при удалении entity).
|
|
131
|
+
*
|
|
132
|
+
* Удаляет запись из `computeNodes` и из `groupComputeMap` родителя.
|
|
133
|
+
* WeakMap-записи (nodeState, nodePaths, nodeParents) утилизируются GC автоматически.
|
|
134
|
+
*
|
|
135
|
+
* @param node Листовой объект-узел
|
|
136
|
+
*/
|
|
137
|
+
unregisterLeaf(node: object): void;
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=nodeRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodeRegistry.d.ts","sourceRoot":"","sources":["../../../../store/store/NodeRegistry/nodeRegistry.ts"],"names":[],"mappings":"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"}
|