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,622 @@
|
|
|
1
|
+
import type { PersistManager } from "../persist/persistManager";
|
|
2
|
+
import type { EntityNode } from "../entityRegistry/types";
|
|
3
|
+
import type { MappableKey, MappableConfigKey } from "../constants";
|
|
4
|
+
/**
|
|
5
|
+
* Внутренний тип для рекурсивного обхода дерева конфига.
|
|
6
|
+
* Используется в registerNodes, buildProxy, applyPatch, recomputeAll и др.
|
|
7
|
+
*/
|
|
8
|
+
export interface AnyConfigNode {
|
|
9
|
+
[key: string]: AnyConfigNode | unknown;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Функция перевода (next-intl, i18next, …).
|
|
13
|
+
* label/placeholder/description в конфиге могут быть функцией от TranslateFn.
|
|
14
|
+
* Принимает любое количество аргументов — совместима с next-intl `t`, i18next `t` и др.
|
|
15
|
+
*/
|
|
16
|
+
export type TranslateFn = (...args: any[]) => string;
|
|
17
|
+
/**
|
|
18
|
+
* Тип конфигурации формы: объект, где каждый ключ — узел конфига с типами TValues.
|
|
19
|
+
*/
|
|
20
|
+
export type FormConfig<TValues = Record<string, unknown>> = Record<string, ConfigNode<any, TValues>>;
|
|
21
|
+
import type { NotifyFn, Resolve } from "../resolvePipeline";
|
|
22
|
+
import type { SubmitResult } from "../submitPipeline/submitPipeline";
|
|
23
|
+
/** Функция отписки от подписки. */
|
|
24
|
+
export type Unsubscribe = () => void;
|
|
25
|
+
/**
|
|
26
|
+
* Значение либо функция, вычисляемая из текущих значений формы.
|
|
27
|
+
* Большинство свойств конфига (isVisible, isRequired, label, …) могут быть
|
|
28
|
+
* либо статическим значением, либо функцией от всего дерева значений.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* // статическое
|
|
32
|
+
* isVisible: true
|
|
33
|
+
* // вычисляемое
|
|
34
|
+
* isVisible: (values) => values.paymentType === "bank"
|
|
35
|
+
*/
|
|
36
|
+
export type MaybeComputed<TResult, TValues = Record<string, unknown>> = TResult | ((values: TValues) => TResult);
|
|
37
|
+
/**
|
|
38
|
+
* Используется для label / placeholder / description, которые могут быть:
|
|
39
|
+
* - статической строкой
|
|
40
|
+
* - `(t: TranslateFn, values: TValues) => string` — перевод + вычисление
|
|
41
|
+
*/
|
|
42
|
+
export type MaybeTranslatable<TResult, TValues = Record<string, unknown>> = TResult | ((t: TranslateFn, values: TValues) => TResult);
|
|
43
|
+
/**
|
|
44
|
+
* Глубокая опциональная версия значений.
|
|
45
|
+
* Рекурсирует только в «плоские» объекты; массивы, Date, Map, Set и т.д.
|
|
46
|
+
* остаются как есть.
|
|
47
|
+
*/
|
|
48
|
+
export type DeepPartialValues<T> = {
|
|
49
|
+
[K in keyof T]?: T[K] extends readonly unknown[] ? T[K] : T[K] extends Date ? T[K] : T[K] extends Map<unknown, unknown> ? T[K] : T[K] extends Set<unknown> ? T[K] : T[K] extends Record<string, unknown> ? DeepPartialValues<T[K]> : T[K];
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Расширяет тип значения, чтобы допустить типичные «входные» типы форматтеров.
|
|
53
|
+
* Числовые поля принимают string (Input возвращает строку), булевы — string/number.
|
|
54
|
+
* Остальные типы остаются как есть.
|
|
55
|
+
*/
|
|
56
|
+
type ProxyValueType<T> = T extends number ? T | string : T extends boolean ? T | string | number : T;
|
|
57
|
+
/**
|
|
58
|
+
* Метаданные типа поля (для будущей валидации по типам / кодогенерации).
|
|
59
|
+
*/
|
|
60
|
+
export interface FieldTypeMeta {
|
|
61
|
+
readonly dataType: "String" | "Number" | "Boolean" | "Date" | "Array" | "Object";
|
|
62
|
+
readonly type: string;
|
|
63
|
+
}
|
|
64
|
+
export type { Setter } from "../writePipeline/writePipeline";
|
|
65
|
+
/**
|
|
66
|
+
* Универсальный узел конфига — описывает и поле, и группу.
|
|
67
|
+
*
|
|
68
|
+
* Поведение узла определяется наличием свойств:
|
|
69
|
+
* - Есть `value` → листовой узел (поле формы)
|
|
70
|
+
* - Нет `value` → групповой узел (контейнер для дочерних)
|
|
71
|
+
*
|
|
72
|
+
* Все свойства кроме `value` — опциональны.
|
|
73
|
+
* Любое computed-свойство может быть константой или функцией от `TValues`.
|
|
74
|
+
*
|
|
75
|
+
* @template TValue — тип значения поля (актуально для листовых узлов)
|
|
76
|
+
* @template TValues — форма дерева всех значений (по умолчанию Record<string,any>)
|
|
77
|
+
*/
|
|
78
|
+
export interface ConfigNode<TValue = unknown, TValues = Record<string, unknown>> {
|
|
79
|
+
value?: MaybeComputed<TValue, TValues>;
|
|
80
|
+
label?: MaybeTranslatable<string, TValues>;
|
|
81
|
+
placeholder?: MaybeTranslatable<string, TValues>;
|
|
82
|
+
description?: MaybeTranslatable<string, TValues>;
|
|
83
|
+
/**
|
|
84
|
+
* Возвращает строку с ошибкой или falsy-значение если поле валидно.
|
|
85
|
+
* `false` допускается для удобства паттерна `!v && "required"`.
|
|
86
|
+
*/
|
|
87
|
+
validate?: (value: TValue, values: TValues, t: TranslateFn) => string | undefined | false;
|
|
88
|
+
/** Преобразует входное значение перед сохранением (например, обрезает пробелы) */
|
|
89
|
+
formatter?: (value: string | boolean, values: TValues) => string | number | boolean;
|
|
90
|
+
/** Сайд-эффект записи: возвращает патч других полей */
|
|
91
|
+
setter?: (value: TValue, values: TValues, previousValue: TValue | undefined) => DeepPartialValues<TValues>;
|
|
92
|
+
/** Дополнительные пропсы для UI-компонента */
|
|
93
|
+
componentProps?: Readonly<Record<string, unknown>>;
|
|
94
|
+
/** Список имён полей, при изменении которых пересчитывается состояние этого поля */
|
|
95
|
+
dependencies?: readonly string[];
|
|
96
|
+
/** Метаданные типа поля */
|
|
97
|
+
types?: FieldTypeMeta;
|
|
98
|
+
isRequired?: MaybeComputed<boolean, TValues>;
|
|
99
|
+
isReadOnly?: MaybeComputed<boolean, TValues>;
|
|
100
|
+
isDisabled?: MaybeComputed<boolean, TValues>;
|
|
101
|
+
isVisible?: MaybeComputed<boolean, TValues>;
|
|
102
|
+
/**
|
|
103
|
+
* Трансформирует значение перед submit (не мутирует store).
|
|
104
|
+
* На листовом узле: `(value, values) → value`
|
|
105
|
+
* На групповом узле: `(values) → values`
|
|
106
|
+
*/
|
|
107
|
+
beforeSubmit?: ((value: TValue, values: TValues) => TValue) | ((values: TValues) => TValues);
|
|
108
|
+
/** Callback отправки формы. Вызывается после валидации в submit pipeline. */
|
|
109
|
+
onSubmit?: (value: TValue | TValues, store: ProxyStore<any>, parent?: any) => Promise<unknown> | unknown;
|
|
110
|
+
/** Пост-обработка после успешного onSubmit. */
|
|
111
|
+
afterSubmit?: (result: unknown, actions: {
|
|
112
|
+
reset: () => void;
|
|
113
|
+
}) => void | Promise<void>;
|
|
114
|
+
/** Трансформер для reset: принимает defaults, возвращает окончательные значения. */
|
|
115
|
+
reset?: (defaults: TValues) => TValues;
|
|
116
|
+
/**
|
|
117
|
+
* Вызывается после изменения любого поля в группе (fire-and-forget).
|
|
118
|
+
* Может вернуть патч для мержа обратно в store.
|
|
119
|
+
*/
|
|
120
|
+
onChange?: (info: {
|
|
121
|
+
fieldKey: string;
|
|
122
|
+
newValue: unknown;
|
|
123
|
+
previousValue: unknown;
|
|
124
|
+
allValues: TValues;
|
|
125
|
+
}) => DeepPartialValues<TValues> | void | Promise<DeepPartialValues<TValues> | void>;
|
|
126
|
+
/**
|
|
127
|
+
* Per-entity field resolver (only valid inside a list template).
|
|
128
|
+
* resolver receives the entity's current values and returns the new field value.
|
|
129
|
+
* Triggered automatically after the list resolver completes, or lazily on first
|
|
130
|
+
* access to field.value / field.loading.
|
|
131
|
+
*/
|
|
132
|
+
resolve?: Resolve<TValue>;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Ключи конфига, которые не являются дочерними полями (скрываются при маппинге
|
|
136
|
+
* группового узла).
|
|
137
|
+
*/
|
|
138
|
+
type ConfigSkipKeys = "value" | "label" | "placeholder" | "description" | "validate" | "formatter" | "setter" | "isRequired" | "isReadOnly" | "isDisabled" | "isVisible" | "isInvalid" | "errorMessage" | "componentProps" | "types" | "dependencies" | "onSubmit" | "beforeSubmit" | "afterSubmit" | "reset" | "onChange" | "resolve" | "deps";
|
|
139
|
+
/**
|
|
140
|
+
* Форма доступного через прокси листового поля.
|
|
141
|
+
* Все функции (isVisible, validate, …) уже вычислены.
|
|
142
|
+
*/
|
|
143
|
+
export interface FieldProxyNode<TValue = unknown> {
|
|
144
|
+
/** Чтение возвращает типизированное значение, запись принимает расширенный тип (string для number-полей и т.д.) */
|
|
145
|
+
get value(): TValue;
|
|
146
|
+
set value(v: ProxyValueType<TValue>);
|
|
147
|
+
readonly label: string | undefined;
|
|
148
|
+
readonly placeholder: string | undefined;
|
|
149
|
+
readonly description: string | undefined;
|
|
150
|
+
readonly isRequired: boolean;
|
|
151
|
+
readonly isReadOnly: boolean;
|
|
152
|
+
readonly isDisabled: boolean;
|
|
153
|
+
readonly isVisible: boolean;
|
|
154
|
+
/** true если поле имеет ошибку валидации */
|
|
155
|
+
readonly isInvalid: boolean | undefined;
|
|
156
|
+
readonly errorMessage: string | undefined;
|
|
157
|
+
/** true если текущее значение отличается от initial */
|
|
158
|
+
readonly dirty: boolean;
|
|
159
|
+
readonly onValueChange: (v: ProxyValueType<TValue>) => void;
|
|
160
|
+
/** true пока выполняется submit pipeline (аналогично GroupProxyNode). */
|
|
161
|
+
readonly submitting: boolean;
|
|
162
|
+
/** Submit pipeline: submitting → beforeSubmit → validate → onSubmit → afterSubmit. */
|
|
163
|
+
submit(): Promise<SubmitResult>;
|
|
164
|
+
}
|
|
165
|
+
/** Извлекает тип значения из узла конфига. */
|
|
166
|
+
type ExtractNodeValue<T> = T extends {
|
|
167
|
+
value: (...args: any[]) => infer R;
|
|
168
|
+
} ? R : T extends {
|
|
169
|
+
value: infer V;
|
|
170
|
+
} ? V : never;
|
|
171
|
+
/**
|
|
172
|
+
* Вычисленные флаги группового узла (присутствуют, если заданы в конфиге;
|
|
173
|
+
* могут быть boolean-константой или функцией — в прокси уже разрешены).
|
|
174
|
+
*/
|
|
175
|
+
export interface GroupProxyNode {
|
|
176
|
+
readonly isVisible: boolean;
|
|
177
|
+
readonly isRequired: boolean | undefined;
|
|
178
|
+
readonly isReadOnly: boolean | undefined;
|
|
179
|
+
readonly isDisabled: boolean | undefined;
|
|
180
|
+
readonly isInvalid: boolean | undefined;
|
|
181
|
+
readonly errorMessage: string | undefined;
|
|
182
|
+
/** true пока выполняется submit pipeline. */
|
|
183
|
+
readonly submitting: boolean;
|
|
184
|
+
/** true while async resolver is loading (only for nodes with resolve). */
|
|
185
|
+
readonly loading: boolean;
|
|
186
|
+
/** true если хотя бы одно поле в группе отличается от initial. */
|
|
187
|
+
readonly dirty: boolean;
|
|
188
|
+
/**
|
|
189
|
+
* true после первого неудачного submit — ошибки показываются в реальном времени.
|
|
190
|
+
* false до первого submit — ошибки скрыты.
|
|
191
|
+
*/
|
|
192
|
+
readonly revalidate: boolean;
|
|
193
|
+
/** Текущие значения всех листовых полей поддерева в виде вложенного объекта. Живая ссылка (не клон). */
|
|
194
|
+
readonly values: Record<string, unknown>;
|
|
195
|
+
/** Submit pipeline: submitting → beforeSubmit → validate → onSubmit → afterSubmit. */
|
|
196
|
+
submit(): Promise<SubmitResult>;
|
|
197
|
+
/** Reset поддерево к defaults из конфига (или к переданным значениям). */
|
|
198
|
+
reset(values?: Record<string, unknown>): void;
|
|
199
|
+
/**
|
|
200
|
+
* Bulk-обновление значений: применяет патч к поддереву за один recompute + notify.
|
|
201
|
+
* Без setters (чтобы избежать рекурсии) и без форматтеров.
|
|
202
|
+
* Используется для подлива серверных данных или bulk-изменений из React.
|
|
203
|
+
*/
|
|
204
|
+
setValues(patch: Record<string, unknown>): void;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Конфигурация resolver-а для ListNode (аналог Resolve для группы, но возвращает
|
|
208
|
+
* массив entity-данных). Минимальный интерфейс без импорта Resolve из resolvePipeline
|
|
209
|
+
* (избегает циклических зависимостей).
|
|
210
|
+
*/
|
|
211
|
+
export interface ListResolveConfig {
|
|
212
|
+
/** Async data loader — returns array of entity records. */
|
|
213
|
+
resolver: (values: any, store: ProxyStore<any>) => Promise<Array<Record<string, unknown>>>;
|
|
214
|
+
/**
|
|
215
|
+
* Error handler called when resolver throws.
|
|
216
|
+
* ctx.notify — notification function from useNotifier.
|
|
217
|
+
*/
|
|
218
|
+
onError?: (error: unknown, ctx: {
|
|
219
|
+
notify: (...args: any[]) => void;
|
|
220
|
+
}) => void;
|
|
221
|
+
/** Explicit dependency paths — re-trigger resolver when these paths change. */
|
|
222
|
+
deps?: string[];
|
|
223
|
+
options?: {
|
|
224
|
+
/** Wait for first access to the list. Default: true */
|
|
225
|
+
lazy?: boolean;
|
|
226
|
+
/** Throw Promise for React Suspense. Default: false */
|
|
227
|
+
suspense?: boolean;
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Конфигурация уровня списка (второй элемент ListNode-массива).
|
|
232
|
+
* Resolver и прочие опции уровня списка добавляются здесь.
|
|
233
|
+
*/
|
|
234
|
+
export interface ListConfig {
|
|
235
|
+
resolve?: ListResolveConfig;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Внутреннее состояние списка — ЕДИНЫЙ кубик «список» (root + per-entity).
|
|
239
|
+
*
|
|
240
|
+
* Идентичность узла для tracking/resolve — сам объект `ListState` (ключ в хабе),
|
|
241
|
+
* а не отдельное поле version. Root-list — вырожденный случай `ownerEntity === null`;
|
|
242
|
+
* per-entity-list (вариант C) — `ownerEntity` указывает на владельца.
|
|
243
|
+
*
|
|
244
|
+
* Root-`ListState` хранится в `NodeRegistry.listStates` (ключ — `listConfigNode`),
|
|
245
|
+
* per-entity — в `owner.lists` (ключ — тот же `listConfigNode`).
|
|
246
|
+
*/
|
|
247
|
+
export interface ListState {
|
|
248
|
+
/** Сам array-узел конфига [template, listConfig?] — ключ во всех реестрах. */
|
|
249
|
+
listConfigNode: object;
|
|
250
|
+
/** Шаблон элемента — describes поля для отображения. listConfigNode[0]. */
|
|
251
|
+
template: object;
|
|
252
|
+
/** Конфигурация списка (resolve и т.д.). listConfigNode[1] — опционально. */
|
|
253
|
+
listConfig?: ListConfig;
|
|
254
|
+
/** Владелец списка. `null` = root list; иначе — entity-владелец (вариант C). */
|
|
255
|
+
ownerEntity: EntityNode | null;
|
|
256
|
+
/** ID сущностей, входящих в список (в порядке отображения). */
|
|
257
|
+
itemIds: string[];
|
|
258
|
+
/** Сохраняется при init/resolve — для dirty-tracking по составу. */
|
|
259
|
+
initialItemIds: string[];
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Прокси-интерфейс для списка (ListNode в конфиге).
|
|
263
|
+
* TItem — тип одного элемента (EntityProjectionProxy в Phase 2B).
|
|
264
|
+
*/
|
|
265
|
+
export interface ListProxyNode<TItem> {
|
|
266
|
+
readonly items: ReadonlyArray<TItem>;
|
|
267
|
+
readonly length: number;
|
|
268
|
+
readonly loading: boolean;
|
|
269
|
+
/** true если состав списка изменился с момента init/последнего resolve. */
|
|
270
|
+
readonly dirty: boolean;
|
|
271
|
+
add(id: string): void;
|
|
272
|
+
add(values: Record<string, unknown>): TItem;
|
|
273
|
+
remove(id: string): void;
|
|
274
|
+
getById(id: string): TItem | undefined;
|
|
275
|
+
setItems(ids: string[]): void;
|
|
276
|
+
map<R>(fn: (item: TItem, index: number, id: string) => R): R[];
|
|
277
|
+
getValues(): Array<Record<string, unknown>>;
|
|
278
|
+
[Symbol.iterator](): Iterator<TItem>;
|
|
279
|
+
}
|
|
280
|
+
declare const __palistorRefBrand: unique symbol;
|
|
281
|
+
declare const __typedListBrand: unique symbol;
|
|
282
|
+
/** Opaque-ссылка на entity proxy. Передаётся как prop, разворачивается через useForm(). */
|
|
283
|
+
export type PalistorRef<T extends Record<string, any>> = {
|
|
284
|
+
readonly [__palistorRefBrand]: T;
|
|
285
|
+
} & object;
|
|
286
|
+
/** Типизированный список entity. */
|
|
287
|
+
export type PalistorList<T extends Record<string, any>> = ListProxyNode<PalistorRef<T>>;
|
|
288
|
+
/** Маркерный тип для typed list node в конфиге. */
|
|
289
|
+
export type TypedListNode<TEntity extends Record<string, any>> = readonly [any, any?] & {
|
|
290
|
+
readonly [__typedListBrand]: TEntity;
|
|
291
|
+
};
|
|
292
|
+
/** Typed resolver для списка. */
|
|
293
|
+
export type ListResolver<TEntity extends Record<string, any>> = (values: any, store: ProxyStore<any>) => Promise<TEntity[]>;
|
|
294
|
+
/** Typed template: каждый ключ Entity → ConfigNode с нужным типом value. */
|
|
295
|
+
export type TemplateConfig<TEntity extends Record<string, any>> = {
|
|
296
|
+
[K in keyof TEntity]: ConfigNode<TEntity[K], TEntity>;
|
|
297
|
+
};
|
|
298
|
+
/** Извлечь entity type из PalistorRef. */
|
|
299
|
+
export type InferEntity<T> = T extends PalistorRef<infer E> ? E : never;
|
|
300
|
+
/**
|
|
301
|
+
* Рекурсивно конвертирует узел конфига в его прокси-тип:
|
|
302
|
+
* - TypedListNode (defineList<TEntity>) → `ListProxyNode<PalistorRef<TEntity>>`
|
|
303
|
+
* - ListNode (массив `[template, listConfig?]`) → `ListProxyNode<...>`
|
|
304
|
+
* - Листовой узел (есть `value`) → `FieldProxyNode<TValue>`
|
|
305
|
+
* - Групповой узел → `GroupProxyNode & { дочерние поля… }`
|
|
306
|
+
*/
|
|
307
|
+
type ConfigNodeToProxy<T, M extends FieldMapping = {}> = T extends {
|
|
308
|
+
readonly [__typedListBrand]: infer TEntity extends Record<string, any>;
|
|
309
|
+
} ? ApplyFieldMapping<ListProxyNode<PalistorRef<TEntity>>, M> : T extends readonly [infer Item, ...any[]] ? ApplyFieldMapping<ListProxyNode<ConfigNodeToProxy<Item, M>>, M> : T extends {
|
|
310
|
+
value: any;
|
|
311
|
+
} ? ApplyFieldMapping<FieldProxyNode<ExtractNodeValue<T>>, M> : T extends Record<string, any> ? ApplyFieldMapping<GroupProxyNode, M> & {
|
|
312
|
+
[K in keyof T as K extends ConfigSkipKeys ? never : K]: ConfigNodeToProxy<T[K], M>;
|
|
313
|
+
} : never;
|
|
314
|
+
/**
|
|
315
|
+
* Полный прокси для конфига формы: каждый ключ маппируется в прокси-узел.
|
|
316
|
+
* Корневой прокси также включает GroupProxyNode (submit, reset, setValues, dirty, …).
|
|
317
|
+
*
|
|
318
|
+
* `M` — карта переименования полей (см. {@link FieldMapping}). По умолчанию `{}`
|
|
319
|
+
* (identity: имена свойств не меняются).
|
|
320
|
+
*/
|
|
321
|
+
export type ConfigProxy<TConfig extends Record<string, any>, M extends FieldMapping = {}> = ApplyFieldMapping<GroupProxyNode, M> & {
|
|
322
|
+
[K in keyof TConfig]: ConfigNodeToProxy<TConfig[K], M>;
|
|
323
|
+
};
|
|
324
|
+
declare const __rawStoreBrand: unique symbol;
|
|
325
|
+
/**
|
|
326
|
+
* Маркер «сырого» узла из `store.proxy`. Не передавайте такие значения в
|
|
327
|
+
* `useForm()` — используйте `useForm(store)` и обращайтесь к поддеревьям
|
|
328
|
+
* через возвращённый tracking-proxy.
|
|
329
|
+
*/
|
|
330
|
+
export interface RawStoreProxyMarker {
|
|
331
|
+
readonly [__rawStoreBrand]: "Do not pass store.proxy or store.proxy.subtree to useForm. Use: const form = useForm(store); then form.subtree";
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* Та же рекурсивная конвертация конфига в прокси, что и `ConfigNodeToProxy`,
|
|
335
|
+
* но на каждом уровне (группа / лист / список) пересекается с
|
|
336
|
+
* `RawStoreProxyMarker`, чтобы бренд распространялся по всему дереву.
|
|
337
|
+
*/
|
|
338
|
+
type ConfigNodeToProxyRaw<T, M extends FieldMapping = {}> = T extends {
|
|
339
|
+
readonly [__typedListBrand]: infer TEntity extends Record<string, any>;
|
|
340
|
+
} ? ApplyFieldMapping<ListProxyNode<PalistorRef<TEntity>>, M> & RawStoreProxyMarker : T extends readonly [infer Item, ...any[]] ? ApplyFieldMapping<ListProxyNode<ConfigNodeToProxyRaw<Item, M>>, M> & RawStoreProxyMarker : T extends {
|
|
341
|
+
value: any;
|
|
342
|
+
} ? ApplyFieldMapping<FieldProxyNode<ExtractNodeValue<T>>, M> & RawStoreProxyMarker : T extends Record<string, any> ? ApplyFieldMapping<GroupProxyNode, M> & RawStoreProxyMarker & {
|
|
343
|
+
[K in keyof T as K extends ConfigSkipKeys ? never : K]: ConfigNodeToProxyRaw<T[K], M>;
|
|
344
|
+
} : never;
|
|
345
|
+
/**
|
|
346
|
+
* Тип значения `store.proxy`. Структурно повторяет `ConfigProxy<TConfig>`,
|
|
347
|
+
* но на каждом узле дерева добавляет {@link RawStoreProxyMarker} —
|
|
348
|
+
* это позволяет TypeScript ругаться на `useForm(store.proxy.X)`.
|
|
349
|
+
*
|
|
350
|
+
* Передача такого значения (или его поддерева) в `useForm` ведёт к
|
|
351
|
+
* ошибке вида:
|
|
352
|
+
* Argument of type 'X' is not assignable to parameter of type
|
|
353
|
+
* '_PALISTOR_ERROR__do_not_pass_store_proxy_subtree_to_useForm__call_useForm_store_first'.
|
|
354
|
+
*/
|
|
355
|
+
export type RawStoreProxy<TConfig extends Record<string, any>, M extends FieldMapping = {}> = ApplyFieldMapping<GroupProxyNode, M> & RawStoreProxyMarker & {
|
|
356
|
+
[K in keyof TConfig]: ConfigNodeToProxyRaw<TConfig[K], M>;
|
|
357
|
+
};
|
|
358
|
+
/**
|
|
359
|
+
* Прокси для отдельной entity: id отображается как string,
|
|
360
|
+
* остальные поля — аналогично Palistor<T>.
|
|
361
|
+
*/
|
|
362
|
+
export type PalistorEntityProxy<T extends {
|
|
363
|
+
id?: any;
|
|
364
|
+
}> = GroupProxyNode & {
|
|
365
|
+
readonly id: string;
|
|
366
|
+
} & {
|
|
367
|
+
[K in Exclude<keyof T, "id">]: T[K] extends Record<string, any> ? Palistor<T[K]> : FieldProxyNode<T[K]>;
|
|
368
|
+
};
|
|
369
|
+
/**
|
|
370
|
+
* Маппит интерфейс значений формы на прокси-типы.
|
|
371
|
+
* В отличие от ConfigProxy (работает с конфиг-нодами), Palistor
|
|
372
|
+
* принимает простой интерфейс значений — удобно для типизации пропсов
|
|
373
|
+
* дочерних компонентов, получающих поддерево из useForm.
|
|
374
|
+
*
|
|
375
|
+
* **Важно:** из пакета этот тип экспортируется под именем `PalistorProxy`,
|
|
376
|
+
* так как имя `Palistor` занято одноимённым классом.
|
|
377
|
+
* Используйте `import type { PalistorProxy } from "palistor"`.
|
|
378
|
+
*
|
|
379
|
+
* @example
|
|
380
|
+
* ```ts
|
|
381
|
+
* import type { PalistorProxy } from "palistor";
|
|
382
|
+
*
|
|
383
|
+
* interface CompanyFormData {
|
|
384
|
+
* name: string;
|
|
385
|
+
* email: string;
|
|
386
|
+
* bank: { name: string; number: string };
|
|
387
|
+
* }
|
|
388
|
+
* type Props = { company: PalistorProxy<CompanyFormData> };
|
|
389
|
+
* ```
|
|
390
|
+
*/
|
|
391
|
+
export type Palistor<T extends Record<string, any> = {}, M extends FieldMapping = {}> = ApplyFieldMapping<GroupProxyNode, M> & {
|
|
392
|
+
[K in keyof T]: T[K] extends Array<infer Item> ? Item extends Record<string, any> ? ApplyFieldMapping<ListProxyNode<Palistor<Item, M>>, M> : ApplyFieldMapping<ListProxyNode<FieldProxyNode<Item>>, M> : T[K] extends Record<string, any> ? Palistor<T[K], M> : ApplyFieldMapping<FieldProxyNode<T[K]>, M>;
|
|
393
|
+
};
|
|
394
|
+
/**
|
|
395
|
+
* Рекурсивно извлекает типы значений из конфига формы.
|
|
396
|
+
* Листовые узлы (содержащие `value`) → тип значения.
|
|
397
|
+
* Групповые узлы → вложенный объект с теми же правилами.
|
|
398
|
+
* Служебные ключи (validate, formatter, …) — пропускаются.
|
|
399
|
+
*/
|
|
400
|
+
export type ExtractValues<T> = {
|
|
401
|
+
[K in keyof T as K extends ConfigSkipKeys ? never : K]: T[K] extends readonly [infer Item, ...any[]] ? Array<ExtractValues<Item>> : T[K] extends {
|
|
402
|
+
value: any;
|
|
403
|
+
} ? ExtractNodeValue<T[K]> : T[K] extends Record<string, any> ? ExtractValues<T[K]> : never;
|
|
404
|
+
};
|
|
405
|
+
/**
|
|
406
|
+
* Карта переименования internal → external для проекции полей через proxy.
|
|
407
|
+
*
|
|
408
|
+
* Sparse: указываем только те ключи, которые переименовываем; остальные
|
|
409
|
+
* остаются с оригинальными именами. Применяется на границе proxy
|
|
410
|
+
* (GET/SET/ownKeys/spread) и в tracking-proxy; internal-логика (FieldState,
|
|
411
|
+
* compute, pipelines) остаётся неизменной.
|
|
412
|
+
*
|
|
413
|
+
* **Инвариант:** карта — биекция. External-имя не должно совпадать с именем
|
|
414
|
+
* соседнего дочернего поля и не должно указывать на два разных internal-ключа.
|
|
415
|
+
*
|
|
416
|
+
* @example
|
|
417
|
+
* fieldMapping: {
|
|
418
|
+
* isRequired: 'required',
|
|
419
|
+
* isInvalid: 'error',
|
|
420
|
+
* errorMessage: 'helperText',
|
|
421
|
+
* }
|
|
422
|
+
*/
|
|
423
|
+
export type FieldMapping = Partial<Record<MappableKey, string>>;
|
|
424
|
+
/**
|
|
425
|
+
* Применяет карту переименования `M` (internal → external) к типу прокси-узла `T`:
|
|
426
|
+
* каждый ключ `K`, присутствующий в `M`, переименовывается в `M[K]`; остальные
|
|
427
|
+
* остаются как есть. Модификаторы (`readonly`, геттер/сеттер `value`) сохраняются.
|
|
428
|
+
*
|
|
429
|
+
* Пустая карта (`{}`) → identity: возвращается исходный `T` без перестроения,
|
|
430
|
+
* поэтому поведение по умолчанию строго совпадает с прежним (нулевой оверхед).
|
|
431
|
+
*/
|
|
432
|
+
export type ApplyFieldMapping<T, M extends FieldMapping> = keyof M extends never ? T : {
|
|
433
|
+
[K in keyof T as K extends keyof M ? (M[K] extends string ? M[K] : K) : K]: T[K];
|
|
434
|
+
};
|
|
435
|
+
declare const CONFIG_KEY_ERROR: unique symbol;
|
|
436
|
+
/** Брендированный тип-ошибка: делает свойство неприсваиваемым и выносит текст
|
|
437
|
+
* подсказки в сообщение компилятора. */
|
|
438
|
+
export type ConfigKeyError<Msg extends string> = {
|
|
439
|
+
readonly [CONFIG_KEY_ERROR]: Msg;
|
|
440
|
+
};
|
|
441
|
+
/** Internal-имена config-ключей, которые карта `M` активно переименовывает. */
|
|
442
|
+
type RemappedInternalConfigKey<M extends FieldMapping> = keyof M & MappableConfigKey;
|
|
443
|
+
/**
|
|
444
|
+
* Проверяет дерево конфига `T` против карты `M`: любой узел, содержащий
|
|
445
|
+
* INTERNAL-имя ремапленного config-ключа (`isRequired` при `isRequired→required`),
|
|
446
|
+
* получает на этом ключе {@link ConfigKeyError} → присваивание падает с читаемым
|
|
447
|
+
* текстом. Пустая карта → `unknown` (пересечение-identity, нулевой оверхед).
|
|
448
|
+
*
|
|
449
|
+
* Пересекается с `TConfig` в опции `config`, поэтому валидные ключи сохраняют
|
|
450
|
+
* исходный тип (`T[K] & unknown`), а ошибочные становятся неприсваиваемыми.
|
|
451
|
+
*/
|
|
452
|
+
export type ValidateExternalConfig<T, M extends FieldMapping> = keyof M extends never ? unknown : T extends object ? {
|
|
453
|
+
[K in keyof T]: K extends RemappedInternalConfigKey<M> ? ConfigKeyError<`palistor: write "${M[K] & string}" instead of internal "${K & string}" — fieldMapping is active`> : ValidateExternalConfig<T[K], M>;
|
|
454
|
+
} : unknown;
|
|
455
|
+
/**
|
|
456
|
+
* Тип узла конфига в ЕДИНОМ публичном словаре карты `M` (external-имена).
|
|
457
|
+
* Опционально: аннотируйте узел/константу конфига этим типом, чтобы получить
|
|
458
|
+
* автокомплит external-имён (`required`, `helpText`, …). Для строгости аннотация
|
|
459
|
+
* не обязательна — валидатор в `config` уже ловит internal-имена.
|
|
460
|
+
*/
|
|
461
|
+
export type ExternalConfigNode<M extends FieldMapping, TValue = unknown, TValues = Record<string, unknown>> = ApplyFieldMapping<ConfigNode<TValue, TValues>, M>;
|
|
462
|
+
/**
|
|
463
|
+
* Тип конфига формы в external-именах карты `M` (аналог {@link FormConfig}, но с
|
|
464
|
+
* переименованными состояниями поля). Для ОПЦИОНАЛЬНОЙ аннотации ради автокомплита
|
|
465
|
+
* external-имён.
|
|
466
|
+
*
|
|
467
|
+
* ⚠️ Компромисс: это `Record<string, …>` (как {@link FormConfig}), поэтому
|
|
468
|
+
* аннотация расширяет тип литерала и `ExtractValues`/типизация `initialValues`
|
|
469
|
+
* теряют точность. Рекомендуемый путь — **не аннотировать**: валидатор в опции
|
|
470
|
+
* `config` (см. {@link ValidateExternalConfig}) и так ловит internal-имена, а
|
|
471
|
+
* точный вывод значений полей из литерала сохраняется. Аннотацию используйте
|
|
472
|
+
* только там, где точный `ExtractValues` не нужен.
|
|
473
|
+
*/
|
|
474
|
+
export type ExternalConfig<M extends FieldMapping, TValues = Record<string, unknown>> = Record<string, ExternalConfigNode<M, any, TValues>>;
|
|
475
|
+
export interface ProxyStoreOptions<TConfig extends Record<string, any>, TMapping extends FieldMapping = {}> {
|
|
476
|
+
/**
|
|
477
|
+
* Декларативное описание структуры и полей формы. Остаётся неизменяемым.
|
|
478
|
+
*
|
|
479
|
+
* При активном `fieldMapping` конфиг пишется в ЕДИНОМ публичном словаре карты
|
|
480
|
+
* (external-имена: `required`, `helpText`, …). Пересечение с
|
|
481
|
+
* {@link ValidateExternalConfig} ловит internal-имена (`isRequired`, …) как
|
|
482
|
+
* ошибку типа с подсказкой. `NoInfer` не даёт `TMapping` «протечь» из конфига —
|
|
483
|
+
* карта выводится только из `fieldMapping`.
|
|
484
|
+
*/
|
|
485
|
+
config: TConfig & ValidateExternalConfig<TConfig, NoInfer<TMapping>>;
|
|
486
|
+
/**
|
|
487
|
+
* Стартовые значения, которые перекрывают значения по умолчанию из конфига.
|
|
488
|
+
* Структура совпадает со структурой конфига, но все поля опциональны.
|
|
489
|
+
*/
|
|
490
|
+
initialValues?: DeepPartialValues<ExtractValues<TConfig>>;
|
|
491
|
+
/**
|
|
492
|
+
* Начальный контекст. Если передан, eager resolvers увидят его при первом запуске.
|
|
493
|
+
* Аналогично вызову `setContext()` до `launchEager()`.
|
|
494
|
+
*/
|
|
495
|
+
context?: Record<string, unknown>;
|
|
496
|
+
/**
|
|
497
|
+
* Необязательная карта переименования internal → external. Задаёт, под какими
|
|
498
|
+
* именами внутренние свойства поля видны через proxy (GET + ownKeys/spread +
|
|
499
|
+
* tracking). Если не передан — поведение и производительность без изменений.
|
|
500
|
+
*
|
|
501
|
+
* Тип литерала карты захватывается (через `const`-параметр класса Palistor) и
|
|
502
|
+
* прокидывается в тип `store.proxy` / `useForm(store)`, поэтому переименованные
|
|
503
|
+
* имена типизируются статически — без `as any`.
|
|
504
|
+
*
|
|
505
|
+
* @see FieldMapping
|
|
506
|
+
*/
|
|
507
|
+
fieldMapping?: TMapping;
|
|
508
|
+
}
|
|
509
|
+
export interface ProxyStore<TConfig extends Record<string, any>, TMapping extends FieldMapping = {}> {
|
|
510
|
+
/**
|
|
511
|
+
* @internal Обратная карта переименования external → internal (sparse).
|
|
512
|
+
* Используется на входе proxy (GET/SET/tracking): приходящий external-ключ
|
|
513
|
+
* переводится в internal одной строкой. Пустая, если `fieldMapping` не задан.
|
|
514
|
+
*/
|
|
515
|
+
readonly externalToInternal: Record<string, string>;
|
|
516
|
+
/**
|
|
517
|
+
* Реактивный прокси. Повторяет структуру конфига.
|
|
518
|
+
* GET .value / .isVisible / … → из вычисленного FieldState
|
|
519
|
+
* SET .value = X → formatter → validate → recompute → notify
|
|
520
|
+
*
|
|
521
|
+
* Имена свойств спроецированы согласно `TMapping` (см. {@link FieldMapping}).
|
|
522
|
+
*
|
|
523
|
+
* Тип помечен {@link RawStoreProxyMarker} — этот узел и все его поддеревья
|
|
524
|
+
* **нельзя** передавать в `useForm()` (ни на root-, ни на subtree-уровне).
|
|
525
|
+
* Для подписки в React используйте `useForm(store)` и обращайтесь к
|
|
526
|
+
* полям через возвращённый tracking-proxy.
|
|
527
|
+
*/
|
|
528
|
+
proxy: RawStoreProxy<TConfig, TMapping>;
|
|
529
|
+
/**
|
|
530
|
+
* Нереактивный контекст — произвольные данные, доступные во всех callback-ах
|
|
531
|
+
* (resolve.resolver, onSubmit, onChange, …) через `store.context`.
|
|
532
|
+
*
|
|
533
|
+
* Устанавливается через `setContext()` или хук `useStoreContext()`.
|
|
534
|
+
* Не является частью формы — не попадает в getValues(), submit, persist.
|
|
535
|
+
*
|
|
536
|
+
* @example
|
|
537
|
+
* store.context.accountId; // read
|
|
538
|
+
*/
|
|
539
|
+
readonly context: Record<string, unknown>;
|
|
540
|
+
/**
|
|
541
|
+
* Установить нереактивный контекст. Заменяет текущий context целиком.
|
|
542
|
+
* Вызывается из React (useStoreContext) или императивно.
|
|
543
|
+
*
|
|
544
|
+
* @example
|
|
545
|
+
* store.setContext({ accountId: "abc", tenant: "acme" });
|
|
546
|
+
*/
|
|
547
|
+
setContext(ctx: Record<string, unknown>): void;
|
|
548
|
+
/**
|
|
549
|
+
* Подписаться на изменение состояния конкретного узла конфига.
|
|
550
|
+
* Возвращает функцию-отписку.
|
|
551
|
+
*/
|
|
552
|
+
subscribe: (node: object, listener: () => void) => Unsubscribe;
|
|
553
|
+
/**
|
|
554
|
+
* Подписаться на ЛЮБОЕ изменение в хранилище.
|
|
555
|
+
* Используется useForm для useSyncExternalStore.
|
|
556
|
+
* Возвращает функцию-отписку.
|
|
557
|
+
*/
|
|
558
|
+
subscribeGlobal: (listener: () => void) => Unsubscribe;
|
|
559
|
+
/**
|
|
560
|
+
* Глобальная версия хранилища. Инкрементируется при каждом изменении.
|
|
561
|
+
* Используется как snapshot для useSyncExternalStore.
|
|
562
|
+
*/
|
|
563
|
+
getVersion: () => number;
|
|
564
|
+
/**
|
|
565
|
+
* Версия конкретного узла. Обновляется при изменении состояния узла.
|
|
566
|
+
* Используется для точечной подписки (re-render только по прочитанным полям).
|
|
567
|
+
*/
|
|
568
|
+
getNodeVersion: (node: object) => number;
|
|
569
|
+
/**
|
|
570
|
+
* Все текущие значения полей в виде вложенного объекта.
|
|
571
|
+
*/
|
|
572
|
+
getValues: () => ExtractValues<TConfig>;
|
|
573
|
+
/**
|
|
574
|
+
* Регистрирует функцию перевода (next-intl, i18next, …) для резолва
|
|
575
|
+
* label / placeholder / description.
|
|
576
|
+
*
|
|
577
|
+
* При смене транслятора — все подписанные компоненты перерендерятся
|
|
578
|
+
* с актуальными переводами.
|
|
579
|
+
*
|
|
580
|
+
* @param t — функция перевода или null для сброса
|
|
581
|
+
*/
|
|
582
|
+
setTranslator: (t: TranslateFn | null) => void;
|
|
583
|
+
/**
|
|
584
|
+
* Менеджер персистенции — гидратация и автосохранение состояния формы.
|
|
585
|
+
*/
|
|
586
|
+
persist: PersistManager;
|
|
587
|
+
/**
|
|
588
|
+
* Регистрирует функцию уведомления (toast, alert, …) для resolver onError.
|
|
589
|
+
*
|
|
590
|
+
* @param fn — функция уведомления или null для сброса
|
|
591
|
+
*/
|
|
592
|
+
setNotifier: (fn: NotifyFn | null) => void;
|
|
593
|
+
/**
|
|
594
|
+
* Submit root form.
|
|
595
|
+
* Lifecycle: submitting → beforeSubmit → validate → onSubmit → afterSubmit.
|
|
596
|
+
*/
|
|
597
|
+
submit(): Promise<SubmitResult>;
|
|
598
|
+
/**
|
|
599
|
+
* Reset root form к defaults из конфига (или к переданным значениям).
|
|
600
|
+
*/
|
|
601
|
+
reset(values?: DeepPartialValues<ExtractValues<TConfig>>): void;
|
|
602
|
+
/**
|
|
603
|
+
* Bulk-обновление значений: применяет патч ко всему store за один recompute + notify.
|
|
604
|
+
* Без setters (чтобы избежать рекурсии) и без форматтеров.
|
|
605
|
+
* Используется для подлива серверных данных или bulk-изменений из React.
|
|
606
|
+
*/
|
|
607
|
+
setValues(patch: DeepPartialValues<ExtractValues<TConfig>>): void;
|
|
608
|
+
/**
|
|
609
|
+
* Создать или обновить entity (или массив entities) в реестре.
|
|
610
|
+
* - Если entity с таким id не существует — создаётся, leaf-ноды регистрируются.
|
|
611
|
+
* - Если существует — рекурсивный merge; изменённые leaf-ноды уведомляются.
|
|
612
|
+
* - Batch-режим: массив обрабатывается одним recompute + notifyChanged.
|
|
613
|
+
*/
|
|
614
|
+
set(data: import("../entityRegistry").EntityData | import("../entityRegistry").EntityData[]): void;
|
|
615
|
+
/**
|
|
616
|
+
* Удалить entity из реестра по ID.
|
|
617
|
+
* Очищает leaf-ноды, bindings и resolvedCache. Уведомляет подписчиков.
|
|
618
|
+
* No-op если entity не существует.
|
|
619
|
+
*/
|
|
620
|
+
delete(id: string): void;
|
|
621
|
+
}
|
|
622
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../store/store/types.ts"],"names":[],"mappings":"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"}
|