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,29 @@
|
|
|
1
|
+
import { CONFIG_PROPS } from "../constants";
|
|
2
|
+
import { isLeafNode } from "../traversal";
|
|
3
|
+
/**
|
|
4
|
+
* Incrementally merges initial values from a patch into the initialValueMap.
|
|
5
|
+
* Only updates leaf nodes whose keys are present in the patch.
|
|
6
|
+
*
|
|
7
|
+
* Called after resolver success to make resolver data part of the initial state.
|
|
8
|
+
* Optimistic resolver does NOT call this — only the real resolver result counts.
|
|
9
|
+
*/
|
|
10
|
+
export function mergeInitialValues(node, nodeState, initialValueMap, patch) {
|
|
11
|
+
for (const key of Object.keys(patch)) {
|
|
12
|
+
if (CONFIG_PROPS.has(key))
|
|
13
|
+
continue;
|
|
14
|
+
const child = node[key];
|
|
15
|
+
if (!child || typeof child !== "object")
|
|
16
|
+
continue;
|
|
17
|
+
const patchValue = patch[key];
|
|
18
|
+
if (isLeafNode(child)) {
|
|
19
|
+
const state = nodeState.get(child);
|
|
20
|
+
if (state) {
|
|
21
|
+
initialValueMap.set(child, state.value);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
else if (patchValue && typeof patchValue === "object" && !Array.isArray(patchValue)) {
|
|
25
|
+
mergeInitialValues(child, nodeState, initialValueMap, patchValue);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=mergeInitialValues.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mergeInitialValues.js","sourceRoot":"","sources":["../../../store/dirtyTracking/mergeInitialValues.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI1C;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAmB,EACnB,SAAsC,EACtC,eAAyC,EACzC,KAA8B;IAE9B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAEpC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAkB,CAAC;QACzC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,SAAS;QAElD,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QAE9B,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,KAAK,EAAE,CAAC;gBACV,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;aAAM,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YACtF,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,UAAqC,CAAC,CAAC;QAC/F,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { AnyConfigNode } from "../store/types";
|
|
2
|
+
import type { FieldState } from "../compute/index";
|
|
3
|
+
export interface RecomputeDirtyResult {
|
|
4
|
+
anyDirty: boolean;
|
|
5
|
+
changed: Set<object>;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Scoped recompute dirty: пересчитывает dirty только для групп,
|
|
9
|
+
* содержащих изменённые узлы, и bubble-up к предкам.
|
|
10
|
+
*
|
|
11
|
+
* Сложность: O(affectedGroups × childrenPerGroup) вместо O(allNodes).
|
|
12
|
+
*/
|
|
13
|
+
export declare function recomputeDirtyTargeted(changedNodes: Set<object>, rootConfig: AnyConfigNode, nodeState: WeakMap<object, FieldState>, initialValueMap: WeakMap<object, unknown>, nodeParents: WeakMap<object, object>, nodePaths: WeakMap<object, string>, listStates?: WeakMap<object, {
|
|
14
|
+
itemIds: string[];
|
|
15
|
+
initialItemIds: string[];
|
|
16
|
+
}>): RecomputeDirtyResult;
|
|
17
|
+
//# sourceMappingURL=recomputeDirtyTargeted.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recomputeDirtyTargeted.d.ts","sourceRoot":"","sources":["../../../store/dirtyTracking/recomputeDirtyTargeted.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGnD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACtB;AAWD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,EACzB,UAAU,EAAE,aAAa,EACzB,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,EACtC,eAAe,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,EACzC,WAAW,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,cAAc,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,GAC5E,oBAAoB,CA2EtB"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { configKeys, isLeafNode, isListNode } from "../traversal";
|
|
2
|
+
import { resolveGroupByPath } from "../groupDeps/resolveGroupByPath";
|
|
3
|
+
import { getNodeGroupPath } from "../groupDeps/getNodeGroupPath";
|
|
4
|
+
import { isDirtyValue } from "./isDirtyValue";
|
|
5
|
+
/** Check whether two string arrays have identical contents in the same order. */
|
|
6
|
+
function arraysEqual(a, b) {
|
|
7
|
+
if (a.length !== b.length)
|
|
8
|
+
return false;
|
|
9
|
+
for (let i = 0; i < a.length; i++) {
|
|
10
|
+
if (a[i] !== b[i])
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Scoped recompute dirty: пересчитывает dirty только для групп,
|
|
17
|
+
* содержащих изменённые узлы, и bubble-up к предкам.
|
|
18
|
+
*
|
|
19
|
+
* Сложность: O(affectedGroups × childrenPerGroup) вместо O(allNodes).
|
|
20
|
+
*/
|
|
21
|
+
export function recomputeDirtyTargeted(changedNodes, rootConfig, nodeState, initialValueMap, nodeParents, nodePaths, listStates) {
|
|
22
|
+
const changed = new Set();
|
|
23
|
+
// 1. Пересчитать dirty только для ЛИСТЬЕВ из changedNodes
|
|
24
|
+
const affectedGroupPaths = new Set();
|
|
25
|
+
for (const node of changedNodes) {
|
|
26
|
+
if (isLeafNode(node)) {
|
|
27
|
+
const state = nodeState.get(node);
|
|
28
|
+
if (state) {
|
|
29
|
+
const initial = initialValueMap.get(node);
|
|
30
|
+
const dirty = isDirtyValue(state.value, initial);
|
|
31
|
+
if (state.dirty !== dirty) {
|
|
32
|
+
nodeState.set(node, { ...state, dirty });
|
|
33
|
+
changed.add(node);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
affectedGroupPaths.add(getNodeGroupPath(node, nodeParents, nodePaths));
|
|
38
|
+
}
|
|
39
|
+
// 2. Для каждой affected group — агрегировать dirty из immediate children
|
|
40
|
+
// и bubble-up к предкам
|
|
41
|
+
const processed = new Set();
|
|
42
|
+
const queue = [...affectedGroupPaths];
|
|
43
|
+
while (queue.length > 0) {
|
|
44
|
+
const groupPath = queue.shift();
|
|
45
|
+
if (processed.has(groupPath))
|
|
46
|
+
continue;
|
|
47
|
+
processed.add(groupPath);
|
|
48
|
+
const groupNode = resolveGroupByPath(rootConfig, groupPath);
|
|
49
|
+
if (!groupNode)
|
|
50
|
+
continue; // entity-пути — пропускаем
|
|
51
|
+
// Агрегировать dirty из immediate children
|
|
52
|
+
let anyChildDirty = false;
|
|
53
|
+
for (const key of configKeys(groupNode)) {
|
|
54
|
+
const child = groupNode[key];
|
|
55
|
+
if (!child || typeof child !== "object")
|
|
56
|
+
continue;
|
|
57
|
+
if (isListNode(child)) {
|
|
58
|
+
if (listStates) {
|
|
59
|
+
const ls = listStates.get(child);
|
|
60
|
+
if (ls && !arraysEqual(ls.itemIds, ls.initialItemIds)) {
|
|
61
|
+
anyChildDirty = true;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
const childState = nodeState.get(child);
|
|
67
|
+
if (childState?.dirty)
|
|
68
|
+
anyChildDirty = true;
|
|
69
|
+
}
|
|
70
|
+
// Обновить dirty на самой group-ноде
|
|
71
|
+
const groupState = nodeState.get(groupNode);
|
|
72
|
+
if (groupState && groupState.dirty !== anyChildDirty) {
|
|
73
|
+
nodeState.set(groupNode, { ...groupState, dirty: anyChildDirty });
|
|
74
|
+
changed.add(groupNode);
|
|
75
|
+
// Bubble-up: добавить parent group в очередь
|
|
76
|
+
const parent = nodeParents.get(groupNode);
|
|
77
|
+
if (parent) {
|
|
78
|
+
const parentPath = nodePaths.get(parent) ?? "";
|
|
79
|
+
if (!processed.has(parentPath)) {
|
|
80
|
+
queue.push(parentPath);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// 3. Определить anyDirty по root
|
|
86
|
+
const rootState = nodeState.get(rootConfig);
|
|
87
|
+
const anyDirty = rootState?.dirty ?? false;
|
|
88
|
+
return { anyDirty, changed };
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=recomputeDirtyTargeted.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recomputeDirtyTargeted.js","sourceRoot":"","sources":["../../../store/dirtyTracking/recomputeDirtyTargeted.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { AnyConfigNode } from "../store/types";
|
|
2
|
+
import type { FieldState } from "../compute/index";
|
|
3
|
+
/**
|
|
4
|
+
* Устанавливает флаг `revalidate` на узле-группе и рекурсивно распространяет его
|
|
5
|
+
* на ВСЕ дочерние узлы — как на листовые поля, так и на вложенные группы.
|
|
6
|
+
*
|
|
7
|
+
* @param node — узел конфига (группа или поле)
|
|
8
|
+
* @param revalidate — значение флага, которое нужно установить
|
|
9
|
+
* @param nodeState — WeakMap с текущим состоянием каждого узла (FieldState)
|
|
10
|
+
* @returns — множество узлов, у которых флаг revalidate действительно изменился
|
|
11
|
+
*/
|
|
12
|
+
export declare function setGroupRevalidate(node: AnyConfigNode, revalidate: boolean, nodeState: WeakMap<object, FieldState>): Set<object>;
|
|
13
|
+
//# sourceMappingURL=setGroupRevalidate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setGroupRevalidate.d.ts","sourceRoot":"","sources":["../../../store/dirtyTracking/setGroupRevalidate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,aAAa,EACnB,UAAU,EAAE,OAAO,EACnB,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,GACrC,GAAG,CAAC,MAAM,CAAC,CAgBb"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { walkFull } from "../traversal";
|
|
2
|
+
/**
|
|
3
|
+
* Устанавливает флаг `revalidate` на узле-группе и рекурсивно распространяет его
|
|
4
|
+
* на ВСЕ дочерние узлы — как на листовые поля, так и на вложенные группы.
|
|
5
|
+
*
|
|
6
|
+
* @param node — узел конфига (группа или поле)
|
|
7
|
+
* @param revalidate — значение флага, которое нужно установить
|
|
8
|
+
* @param nodeState — WeakMap с текущим состоянием каждого узла (FieldState)
|
|
9
|
+
* @returns — множество узлов, у которых флаг revalidate действительно изменился
|
|
10
|
+
*/
|
|
11
|
+
export function setGroupRevalidate(node, revalidate, nodeState) {
|
|
12
|
+
const changed = new Set();
|
|
13
|
+
// Обновляем сам корневой узел (walkFull его не посещает).
|
|
14
|
+
updateRevalidate(node, revalidate, nodeState, changed);
|
|
15
|
+
walkFull(node, {
|
|
16
|
+
onLeaf(leafNode) {
|
|
17
|
+
updateRevalidate(leafNode, revalidate, nodeState, changed);
|
|
18
|
+
},
|
|
19
|
+
onGroupEnter(groupNode) {
|
|
20
|
+
updateRevalidate(groupNode, revalidate, nodeState, changed);
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
return changed;
|
|
24
|
+
}
|
|
25
|
+
function updateRevalidate(node, revalidate, nodeState, changed) {
|
|
26
|
+
const state = nodeState.get(node);
|
|
27
|
+
if (state && state.revalidate !== revalidate) {
|
|
28
|
+
nodeState.set(node, { ...state, revalidate });
|
|
29
|
+
changed.add(node);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=setGroupRevalidate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setGroupRevalidate.js","sourceRoot":"","sources":["../../../store/dirtyTracking/setGroupRevalidate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAIxC;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAmB,EACnB,UAAmB,EACnB,SAAsC;IAEtC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAElC,0DAA0D;IAC1D,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAEvD,QAAQ,CAAC,IAAI,EAAE;QACb,MAAM,CAAC,QAAQ;YACb,gBAAgB,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAC7D,CAAC;QACD,YAAY,CAAC,SAAS;YACpB,gBAAgB,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAC9D,CAAC;KACF,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,gBAAgB,CACvB,IAAY,EACZ,UAAmB,EACnB,SAAsC,EACtC,OAAoB;IAEpB,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,KAAK,IAAI,KAAK,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QAC7C,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import type { EntityNode, EntityGroupNode, EntityData } from "./types";
|
|
2
|
+
import type { ListState } from "../store/types";
|
|
3
|
+
/**
|
|
4
|
+
* Создать новую EntityNode из плоского объекта данных.
|
|
5
|
+
* Каждое поле (кроме id) оборачивается в { value }.
|
|
6
|
+
* Поддерживает вложенные объекты — рекурсивно создаёт EntityGroupNode.
|
|
7
|
+
*
|
|
8
|
+
* @param data Плоский или вложенный объект данных
|
|
9
|
+
* @param id Строковый ID (обязателен на верхнем уровне)
|
|
10
|
+
*/
|
|
11
|
+
export declare function createEntityNode(data: EntityData, id: string): EntityNode;
|
|
12
|
+
/**
|
|
13
|
+
* Рекурсивный merge данных в существующую EntityNode.
|
|
14
|
+
*
|
|
15
|
+
* Правила:
|
|
16
|
+
* - Существующие leaf-поля: обновить `.value`
|
|
17
|
+
* - Новые поля: создать leaf `{ value }`
|
|
18
|
+
* - Отсутствующие поля: НЕ удалять
|
|
19
|
+
* - Вложенные объекты в data: рекурсивный merge в group
|
|
20
|
+
*
|
|
21
|
+
* @param target Существующая EntityNode или EntityGroupNode
|
|
22
|
+
* @param data Входные данные (flat или вложенные)
|
|
23
|
+
*/
|
|
24
|
+
export declare function mergeEntityNode(target: EntityNode | EntityGroupNode, data: Record<string, unknown>): void;
|
|
25
|
+
/**
|
|
26
|
+
* Реестр сущностей.
|
|
27
|
+
*
|
|
28
|
+
* Полностью изолирован от Palistor: не имеет зависимостей на store.
|
|
29
|
+
* Хранит EntityNode-ы, bindings (template-привязки), resolved-кэш.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* const registry = new EntityRegistry();
|
|
33
|
+
* const entity = registry.upsert({ id: 'u1', name: 'Alice' });
|
|
34
|
+
* const node = registry.get('u1');
|
|
35
|
+
* registry.bind('u1', formTemplate);
|
|
36
|
+
*/
|
|
37
|
+
export declare class EntityRegistry {
|
|
38
|
+
/** Основное хранилище: id → EntityNode */
|
|
39
|
+
private readonly entities;
|
|
40
|
+
/**
|
|
41
|
+
* Привязки entity к template-нодам.
|
|
42
|
+
* Один entity может быть привязан к нескольким templates.
|
|
43
|
+
*/
|
|
44
|
+
private readonly bindings;
|
|
45
|
+
/**
|
|
46
|
+
* Кэш «resolve выполнен»: id → Set<templateNode>.
|
|
47
|
+
* Если templateNode есть в Set, resolve для этой пары можно пропустить.
|
|
48
|
+
*/
|
|
49
|
+
private readonly resolvedCache;
|
|
50
|
+
/**
|
|
51
|
+
* Зарегистрированные ListState-объекты.
|
|
52
|
+
* Используются в rekey() для обновления itemIds при смене id entity.
|
|
53
|
+
* Структурный тип { itemIds: string[] } — не зависит от импорта ListState.
|
|
54
|
+
*/
|
|
55
|
+
private readonly registeredLists;
|
|
56
|
+
/**
|
|
57
|
+
* Обратный индекс владения (вариант C): ownerId → Set<childId>.
|
|
58
|
+
* Заполняется `setEntityOwner` при заливке результатов child-list resolver-а.
|
|
59
|
+
* Нужен для каскадного удаления (C2); заводится с C1, чтобы owner-link
|
|
60
|
+
* регистрировался с самого начала.
|
|
61
|
+
*/
|
|
62
|
+
private readonly childrenByOwner;
|
|
63
|
+
/**
|
|
64
|
+
* Создать или обновить entity.
|
|
65
|
+
*
|
|
66
|
+
* - Если entity с таким id не существует — создаётся новая EntityNode.
|
|
67
|
+
* - Если существует — рекурсивный merge (существующие поля обновляются,
|
|
68
|
+
* новые добавляются, отсутствующие в data не удаляются).
|
|
69
|
+
* - Если id не указан или пустой — генерируется `_tmp_` id.
|
|
70
|
+
*
|
|
71
|
+
* @returns Итоговая EntityNode
|
|
72
|
+
*/
|
|
73
|
+
upsert(data: EntityData): EntityNode;
|
|
74
|
+
/**
|
|
75
|
+
* Получить EntityNode по id.
|
|
76
|
+
* Возвращает undefined, если entity не найдена.
|
|
77
|
+
*/
|
|
78
|
+
get(id: string): EntityNode | undefined;
|
|
79
|
+
/**
|
|
80
|
+
* Удалить entity по id.
|
|
81
|
+
* Очищает все bindings и resolvedCache для этого id.
|
|
82
|
+
*
|
|
83
|
+
* @returns true, если entity существовала и была удалена
|
|
84
|
+
*/
|
|
85
|
+
delete(id: string): boolean;
|
|
86
|
+
/** Количество зарегистрированных entities. */
|
|
87
|
+
get size(): number;
|
|
88
|
+
/** Проверить наличие entity. */
|
|
89
|
+
has(id: string): boolean;
|
|
90
|
+
/**
|
|
91
|
+
* Получить (или лениво создать) EntityListState для пары (entity, listConfigNode).
|
|
92
|
+
*
|
|
93
|
+
* `entity.lists` создаётся при первом обращении как **non-enumerable** поле,
|
|
94
|
+
* чтобы не протекать в плоские values через `Object.keys`.
|
|
95
|
+
*/
|
|
96
|
+
getOrCreateEntityListState(entity: EntityNode, listConfigNode: object): ListState;
|
|
97
|
+
/**
|
|
98
|
+
* Проставить owner-ссылку на child-entity (**non-enumerable**) и
|
|
99
|
+
* проиндексировать её в `childrenByOwner`.
|
|
100
|
+
*
|
|
101
|
+
* Модель «один владелец на child» (C2, Q3): если child уже принадлежал
|
|
102
|
+
* другому владельцу — снимаем устаревшее членство, чтобы каскадное удаление
|
|
103
|
+
* старого владельца не затронуло уже переадресованного child-а.
|
|
104
|
+
*/
|
|
105
|
+
setEntityOwner(child: EntityNode, ownerId: string, ownerListNode: object): void;
|
|
106
|
+
/** Получить ID всех child-entity, принадлежащих владельцу. */
|
|
107
|
+
getChildrenByOwner(ownerId: string): ReadonlySet<string> | undefined;
|
|
108
|
+
/**
|
|
109
|
+
* Восстановить состав всех per-entity списков к initial-снимку (C2 reset).
|
|
110
|
+
*
|
|
111
|
+
* Возвращает затронутые пары `{ owner, state }`, чтобы вызывающий код
|
|
112
|
+
* (resetPipeline) бампнул версии узлов в хабе → React перерисует списки —
|
|
113
|
+
* и пересинхронизировал projectionObj владельца для getValues (C3).
|
|
114
|
+
*/
|
|
115
|
+
resetEntityListStates(): Array<{
|
|
116
|
+
owner: EntityNode;
|
|
117
|
+
state: ListState;
|
|
118
|
+
}>;
|
|
119
|
+
/**
|
|
120
|
+
* Привязать entity к template-ноде.
|
|
121
|
+
* Один entity может быть привязан к нескольким templates.
|
|
122
|
+
*/
|
|
123
|
+
bind(id: string, templateNode: object): void;
|
|
124
|
+
/**
|
|
125
|
+
* Отвязать entity от template-ноды.
|
|
126
|
+
* Если entity не привязана к этому template — no-op.
|
|
127
|
+
*/
|
|
128
|
+
unbind(id: string, templateNode: object): void;
|
|
129
|
+
/**
|
|
130
|
+
* Получить все template-ноды, привязанные к entity.
|
|
131
|
+
* Возвращает undefined, если привязок нет.
|
|
132
|
+
*/
|
|
133
|
+
getBindings(id: string): ReadonlySet<object> | undefined;
|
|
134
|
+
/**
|
|
135
|
+
* Пометить пару (entityId, templateNode) как «resolve выполнен».
|
|
136
|
+
* Повторный resolve для этой пары будет пропущен.
|
|
137
|
+
*/
|
|
138
|
+
markResolved(id: string, templateNode: object): void;
|
|
139
|
+
/**
|
|
140
|
+
* Проверить, был ли resolve выполнен для пары (entityId, templateNode).
|
|
141
|
+
*/
|
|
142
|
+
isResolved(id: string, templateNode: object): boolean;
|
|
143
|
+
/**
|
|
144
|
+
* Сбросить resolved-кэш:
|
|
145
|
+
* - `clearResolved(id)` — очистить весь кэш для entity
|
|
146
|
+
* - `clearResolved(id, templateNode)` — очистить только для конкретного template
|
|
147
|
+
*/
|
|
148
|
+
clearResolved(id: string, templateNode?: object): void;
|
|
149
|
+
/**
|
|
150
|
+
* Переименовать entity: перенести запись с oldId на newId.
|
|
151
|
+
*
|
|
152
|
+
* Обновляет: entities Map, bindings, resolvedCache, id leaf value,
|
|
153
|
+
* и itemIds в всех зарегистрированных ListState-объектах.
|
|
154
|
+
*
|
|
155
|
+
* No-op если entity с oldId не существует.
|
|
156
|
+
*/
|
|
157
|
+
rekey(oldId: string, newId: string): void;
|
|
158
|
+
/**
|
|
159
|
+
* Зарегистрировать ListState для автоматического обновления itemIds при rekey().
|
|
160
|
+
* Вызывается из Palistor после инициализации NodeRegistry.
|
|
161
|
+
*/
|
|
162
|
+
registerList(list: {
|
|
163
|
+
itemIds: string[];
|
|
164
|
+
}): void;
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=entityRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entityRegistry.d.ts","sourceRoot":"","sources":["../../../store/entityRegistry/entityRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACvE,OAAO,KAAK,EAAc,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAI5D;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU,CAiBzE;AAqBD;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,UAAU,GAAG,eAAe,EACpC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,IAAI,CA8BN;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,cAAc;IACzB,0CAA0C;IAC1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiC;IAE1D;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkC;IAE3D;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkC;IAEhE;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoC;IAEpE;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkC;IAIlE;;;;;;;;;OASG;IACH,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU;IAgBpC;;;OAGG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAIvC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAiB3B,8CAA8C;IAC9C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,gCAAgC;IAChC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAMxB;;;;;OAKG;IACH,0BAA0B,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,GAAG,SAAS;IA2BjF;;;;;;;OAOG;IACH,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI;IAoB/E,8DAA8D;IAC9D,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS;IAIpE;;;;;;OAMG;IACH,qBAAqB,IAAI,KAAK,CAAC;QAAE,KAAK,EAAE,UAAU,CAAC;QAAC,KAAK,EAAE,SAAS,CAAA;KAAE,CAAC;IAevE;;;OAGG;IACH,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAS5C;;;OAGG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAI9C;;;OAGG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS;IAMxD;;;OAGG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IASpD;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO;IAIrD;;;;OAIG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI;IAUtD;;;;;;;OAOG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAgDzC;;;OAGG;IACH,YAAY,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,IAAI;CAGhD"}
|