mobx-keystone 0.67.4 → 0.68.1-alpha
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/CHANGELOG.md +8 -0
- package/dist/_virtual/_tslib.mjs +12 -0
- package/dist/mobx-keystone.umd.js +5339 -5261
- package/dist/model/utils.d.ts +1 -1
- package/dist/node_modules/fast-deep-equal/es6/index.mjs +68 -0
- package/dist/node_modules/nanoid/non-secure/index.mjs +11 -0
- package/dist/snapshot/index.d.ts +0 -8
- package/dist/{dataModel/_BaseDataModel.d.ts → snapshot/registerDefaultReconcilers.d.ts} +0 -0
- package/dist/{model/_BaseModel.d.ts → snapshot/registerDefaultSnapshotters.d.ts} +0 -0
- package/dist/src/action/actionDecoratorUtils.mjs +25 -0
- package/dist/src/action/applyAction.mjs +54 -0
- package/dist/src/action/applyDelete.mjs +20 -0
- package/dist/src/action/applyMethodCall.mjs +19 -0
- package/dist/src/action/applySet.mjs +25 -0
- package/dist/src/action/builtInActions.mjs +15 -0
- package/dist/src/action/context.mjs +22 -0
- package/dist/src/action/hookActions.mjs +13 -0
- package/dist/src/action/isModelAction.mjs +6 -0
- package/dist/src/action/middleware.mjs +84 -0
- package/dist/src/action/modelAction.mjs +34 -0
- package/dist/src/action/modelFlow.mjs +251 -0
- package/dist/src/action/pendingActions.mjs +30 -0
- package/dist/src/action/protection.mjs +19 -0
- package/dist/src/action/runUnprotected.mjs +24 -0
- package/dist/src/action/wrapInAction.mjs +90 -0
- package/dist/src/actionMiddlewares/actionSerialization/actionSerialization.mjs +131 -0
- package/dist/src/actionMiddlewares/actionSerialization/applySerializedAction.mjs +110 -0
- package/dist/src/actionMiddlewares/actionSerialization/arraySerializer.mjs +15 -0
- package/dist/src/actionMiddlewares/actionSerialization/core.mjs +3 -0
- package/dist/src/actionMiddlewares/actionSerialization/dateSerializer.mjs +15 -0
- package/dist/src/actionMiddlewares/actionSerialization/mapSerializer.mjs +32 -0
- package/dist/src/actionMiddlewares/actionSerialization/objectPathSerializer.mjs +33 -0
- package/dist/src/actionMiddlewares/actionSerialization/objectSnapshotSerializer.mjs +18 -0
- package/dist/src/actionMiddlewares/actionSerialization/plainObjectSerializer.mjs +27 -0
- package/dist/src/actionMiddlewares/actionSerialization/primitiveSerializer.mjs +39 -0
- package/dist/src/actionMiddlewares/actionSerialization/setSerializer.mjs +29 -0
- package/dist/src/actionMiddlewares/actionTrackingMiddleware.mjs +239 -0
- package/dist/src/actionMiddlewares/onActionMiddleware.mjs +44 -0
- package/dist/src/actionMiddlewares/readonlyMiddleware.mjs +49 -0
- package/dist/src/actionMiddlewares/transactionMiddleware.mjs +69 -0
- package/dist/src/actionMiddlewares/undoMiddleware.mjs +472 -0
- package/dist/src/actionMiddlewares/utils.mjs +25 -0
- package/dist/src/computedTree/computedTree.mjs +63 -0
- package/dist/src/context/context.mjs +141 -0
- package/dist/src/dataModel/BaseDataModel.mjs +108 -0
- package/dist/src/dataModel/DataModel.mjs +32 -0
- package/dist/src/dataModel/actions.mjs +12 -0
- package/dist/src/dataModel/getDataModelMetadata.mjs +14 -0
- package/dist/src/dataModel/newDataModel.mjs +31 -0
- package/dist/src/dataModel/utils.mjs +29 -0
- package/dist/src/frozen/Frozen.mjs +68 -0
- package/dist/src/globalConfig/globalConfig.mjs +57 -0
- package/dist/src/index.mjs +97 -0
- package/dist/src/model/BaseModel.mjs +118 -0
- package/dist/src/model/Model.mjs +36 -0
- package/dist/src/model/getModelMetadata.mjs +19 -0
- package/dist/src/model/metadata.mjs +7 -0
- package/dist/src/model/newModel.mjs +95 -0
- package/dist/src/model/utils.mjs +33 -0
- package/dist/src/modelShared/BaseModelShared.mjs +9 -0
- package/dist/src/modelShared/Model.mjs +249 -0
- package/dist/src/modelShared/checkModelDecoratorArgs.mjs +21 -0
- package/dist/src/modelShared/modelClassInitializer.mjs +14 -0
- package/dist/src/modelShared/modelDecorator.mjs +117 -0
- package/dist/src/modelShared/modelInfo.mjs +7 -0
- package/dist/src/modelShared/modelPropsInfo.mjs +9 -0
- package/dist/src/modelShared/modelSymbols.mjs +5 -0
- package/dist/src/modelShared/newModel.mjs +13 -0
- package/dist/src/modelShared/prop.mjs +138 -0
- package/dist/src/modelShared/utils.mjs +10 -0
- package/dist/src/parent/core.mjs +34 -0
- package/dist/src/parent/coreObjectChildren.mjs +98 -0
- package/dist/src/parent/detach.mjs +32 -0
- package/dist/src/parent/findChildren.mjs +16 -0
- package/dist/src/parent/findParent.mjs +30 -0
- package/dist/src/parent/getChildrenObjects.mjs +12 -0
- package/dist/src/parent/onChildAttachedTo.mjs +101 -0
- package/dist/src/parent/path.mjs +149 -0
- package/dist/src/parent/path2.mjs +12 -0
- package/dist/src/parent/setParent.mjs +83 -0
- package/dist/src/parent/walkTree.mjs +104 -0
- package/dist/src/patch/applyPatches.mjs +118 -0
- package/dist/src/patch/emitPatch.mjs +100 -0
- package/dist/src/patch/jsonPatch.mjs +60 -0
- package/dist/src/patch/patchRecorder.mjs +75 -0
- package/dist/src/redux/connectReduxDevTools.mjs +153 -0
- package/dist/src/redux/redux.mjs +60 -0
- package/dist/src/ref/Ref.mjs +38 -0
- package/dist/src/ref/core.mjs +179 -0
- package/dist/src/ref/customRef.mjs +9 -0
- package/dist/src/ref/rootRef.mjs +34 -0
- package/dist/src/rootStore/attachDetach.mjs +53 -0
- package/dist/src/rootStore/rootStore.mjs +50 -0
- package/dist/src/snapshot/SnapshotterAndReconcilerPriority.mjs +9 -0
- package/dist/src/snapshot/applySnapshot.mjs +92 -0
- package/dist/src/snapshot/clone.mjs +29 -0
- package/dist/src/snapshot/fromArraySnapshot.mjs +23 -0
- package/dist/src/snapshot/fromFrozenSnapshot.mjs +13 -0
- package/dist/src/snapshot/fromModelSnapshot.mjs +38 -0
- package/dist/src/snapshot/fromPlainObjectSnapshot.mjs +26 -0
- package/dist/src/snapshot/fromSnapshot.mjs +91 -0
- package/dist/src/snapshot/getSnapshot.mjs +27 -0
- package/dist/src/snapshot/internal.mjs +97 -0
- package/dist/src/snapshot/onSnapshot.mjs +16 -0
- package/dist/src/snapshot/reconcileArraySnapshot.mjs +40 -0
- package/dist/src/snapshot/reconcileFrozenSnapshot.mjs +19 -0
- package/dist/src/snapshot/reconcileModelSnapshot.mjs +77 -0
- package/dist/src/snapshot/reconcilePlainObjectSnapshot.mjs +47 -0
- package/dist/src/snapshot/reconcileSnapshot.mjs +49 -0
- package/dist/src/snapshot/registerDefaultReconcilers.mjs +17 -0
- package/dist/src/snapshot/registerDefaultSnapshotters.mjs +17 -0
- package/dist/src/standardActions/actions.mjs +35 -0
- package/dist/src/standardActions/arrayActions.mjs +66 -0
- package/dist/src/standardActions/objectActions.mjs +36 -0
- package/dist/src/standardActions/standaloneActions.mjs +9 -0
- package/dist/src/transforms/ImmutableDate.mjs +51 -0
- package/dist/src/transforms/asMap.mjs +29 -0
- package/dist/src/transforms/asSet.mjs +12 -0
- package/dist/src/transforms/bigint.mjs +14 -0
- package/dist/src/transforms/date.mjs +27 -0
- package/dist/src/treeUtils/deepEquals.mjs +40 -0
- package/dist/src/treeUtils/draft.mjs +116 -0
- package/dist/src/treeUtils/sandbox.mjs +158 -0
- package/dist/src/tweaker/TweakerPriority.mjs +9 -0
- package/dist/src/tweaker/core.mjs +38 -0
- package/dist/src/tweaker/registerDefaultTweakers.mjs +17 -0
- package/dist/src/tweaker/tweak.mjs +109 -0
- package/dist/src/tweaker/tweakArray.mjs +272 -0
- package/dist/src/tweaker/tweakFrozen.mjs +28 -0
- package/dist/src/tweaker/tweakModel.mjs +26 -0
- package/dist/src/tweaker/tweakPlainObject.mjs +205 -0
- package/dist/src/tweaker/typeChecking.mjs +46 -0
- package/dist/src/tweaker/withoutTypeChecking.mjs +15 -0
- package/dist/src/types/TypeCheckError.mjs +31 -0
- package/dist/src/types/TypeChecker.mjs +165 -0
- package/dist/src/types/arrayBased/array.mjs +68 -0
- package/dist/src/types/arrayBased/tuple.mjs +71 -0
- package/dist/src/types/getTypeInfo.mjs +12 -0
- package/dist/src/types/objectBased/arraySet.mjs +83 -0
- package/dist/src/types/objectBased/dataModelData.mjs +95 -0
- package/dist/src/types/objectBased/model.mjs +133 -0
- package/dist/src/types/objectBased/object.mjs +119 -0
- package/dist/src/types/objectBased/objectMap.mjs +90 -0
- package/dist/src/types/objectBased/record.mjs +80 -0
- package/dist/src/types/objectBased/ref.mjs +62 -0
- package/dist/src/types/primitiveBased/enum.mjs +20 -0
- package/dist/src/types/primitiveBased/primitives.mjs +59 -0
- package/dist/src/types/primitiveBased/refinedPrimitives.mjs +6 -0
- package/dist/src/types/registerDefaultStandardTypeResolvers.mjs +13 -0
- package/dist/src/types/resolveTypeChecker.mjs +52 -0
- package/dist/src/types/tProp.mjs +53 -0
- package/dist/src/types/typeCheck.mjs +11 -0
- package/dist/src/types/types.mjs +69 -0
- package/dist/src/types/utility/maybe.mjs +10 -0
- package/dist/src/types/utility/or.mjs +99 -0
- package/dist/src/types/utility/refinement.mjs +52 -0
- package/dist/src/types/utility/unchecked.mjs +10 -0
- package/dist/src/utils/ModelPool.mjs +50 -0
- package/dist/src/utils/chainFns.mjs +15 -0
- package/dist/src/utils/index.mjs +228 -0
- package/dist/src/utils/mapUtils.mjs +10 -0
- package/dist/src/utils/tag.mjs +16 -0
- package/dist/src/wrappers/ArraySet.mjs +85 -0
- package/dist/src/wrappers/ObjectMap.mjs +96 -0
- package/dist/src/wrappers/asMap.mjs +181 -0
- package/dist/src/wrappers/asSet.mjs +97 -0
- package/dist/tweaker/index.d.ts +0 -4
- package/dist/tweaker/registerDefaultTweakers.d.ts +1 -0
- package/dist/types/registerDefaultStandardTypeResolvers.d.ts +1 -0
- package/package.json +12 -14
- package/src/actionMiddlewares/actionSerialization/actionSerialization.ts +24 -9
- package/src/dataModel/BaseDataModel.ts +0 -3
- package/src/dataModel/utils.ts +4 -4
- package/src/dist/action/actionDecoratorUtils.d.ts +5 -0
- package/src/dist/action/applyAction.d.ts +36 -0
- package/src/dist/action/applyDelete.d.ts +7 -0
- package/src/dist/action/applyMethodCall.d.ts +9 -0
- package/src/dist/action/applySet.d.ts +8 -0
- package/src/dist/action/builtInActions.d.ts +39 -0
- package/src/dist/action/context.d.ts +85 -0
- package/src/dist/action/hookActions.d.ts +32 -0
- package/src/dist/action/index.d.ts +12 -0
- package/src/dist/action/isModelAction.d.ts +7 -0
- package/src/dist/action/middleware.d.ts +34 -0
- package/src/dist/action/modelAction.d.ts +9 -0
- package/src/dist/action/modelFlow.d.ts +34 -0
- package/src/dist/action/pendingActions.d.ts +1 -0
- package/src/dist/action/protection.d.ts +1 -0
- package/src/dist/action/runUnprotected.d.ts +19 -0
- package/src/dist/action/wrapInAction.d.ts +1 -0
- package/src/dist/actionMiddlewares/actionSerialization/actionSerialization.d.ts +84 -0
- package/src/dist/actionMiddlewares/actionSerialization/applySerializedAction.d.ts +45 -0
- package/src/dist/actionMiddlewares/actionSerialization/arraySerializer.d.ts +3 -0
- package/src/dist/actionMiddlewares/actionSerialization/core.d.ts +28 -0
- package/src/dist/actionMiddlewares/actionSerialization/dateSerializer.d.ts +2 -0
- package/src/dist/actionMiddlewares/actionSerialization/index.d.ts +3 -0
- package/src/dist/actionMiddlewares/actionSerialization/mapSerializer.d.ts +6 -0
- package/src/dist/actionMiddlewares/actionSerialization/objectPathSerializer.d.ts +8 -0
- package/src/dist/actionMiddlewares/actionSerialization/objectSnapshotSerializer.d.ts +2 -0
- package/src/dist/actionMiddlewares/actionSerialization/plainObjectSerializer.d.ts +2 -0
- package/src/dist/actionMiddlewares/actionSerialization/primitiveSerializer.d.ts +2 -0
- package/src/dist/actionMiddlewares/actionSerialization/setSerializer.d.ts +3 -0
- package/src/dist/actionMiddlewares/actionTrackingMiddleware.d.ts +122 -0
- package/src/dist/actionMiddlewares/index.d.ts +6 -0
- package/src/dist/actionMiddlewares/onActionMiddleware.d.ts +26 -0
- package/src/dist/actionMiddlewares/readonlyMiddleware.d.ts +35 -0
- package/src/dist/actionMiddlewares/transactionMiddleware.d.ts +21 -0
- package/src/dist/actionMiddlewares/undoMiddleware.d.ts +283 -0
- package/src/dist/actionMiddlewares/utils.d.ts +1 -0
- package/src/dist/computedTree/computedTree.d.ts +16 -0
- package/src/dist/computedTree/index.d.ts +1 -0
- package/src/dist/context/context.d.ts +84 -0
- package/src/dist/context/index.d.ts +1 -0
- package/src/dist/dataModel/BaseDataModel.d.ts +52 -0
- package/src/dist/dataModel/DataModel.d.ts +47 -0
- package/src/dist/dataModel/DataModelConstructorOptions.d.ts +1 -0
- package/src/dist/dataModel/actions.d.ts +1 -0
- package/src/dist/dataModel/getDataModelMetadata.d.ts +19 -0
- package/src/dist/dataModel/index.d.ts +4 -0
- package/src/dist/dataModel/newDataModel.d.ts +1 -0
- package/src/dist/dataModel/utils.d.ts +8 -0
- package/src/dist/frozen/Frozen.d.ts +50 -0
- package/src/dist/frozen/index.d.ts +1 -0
- package/src/dist/globalConfig/globalConfig.d.ts +51 -0
- package/src/dist/globalConfig/index.d.ts +1 -0
- package/src/dist/index.d.ts +23 -0
- package/src/dist/mobx-keystone.umd.js +8201 -0
- package/src/dist/model/BaseModel.d.ts +125 -0
- package/src/dist/model/Model.d.ts +94 -0
- package/src/dist/model/ModelConstructorOptions.d.ts +1 -0
- package/src/dist/model/getModelMetadata.d.ts +27 -0
- package/src/dist/model/index.d.ts +5 -0
- package/src/dist/model/metadata.d.ts +8 -0
- package/src/dist/model/newModel.d.ts +1 -0
- package/src/dist/model/utils.d.ts +8 -0
- package/src/dist/modelShared/BaseModelShared.d.ts +76 -0
- package/src/dist/modelShared/Model.d.ts +15 -0
- package/src/dist/modelShared/checkModelDecoratorArgs.d.ts +1 -0
- package/src/dist/modelShared/index.d.ts +3 -0
- package/src/dist/modelShared/modelClassInitializer.d.ts +1 -0
- package/src/dist/modelShared/modelDecorator.d.ts +24 -0
- package/src/dist/modelShared/modelInfo.d.ts +1 -0
- package/src/dist/modelShared/modelPropsInfo.d.ts +1 -0
- package/src/dist/modelShared/modelSymbols.d.ts +3 -0
- package/src/dist/modelShared/newModel.d.ts +4 -0
- package/src/dist/modelShared/prop.d.ts +179 -0
- package/src/dist/modelShared/utils.d.ts +1 -0
- package/src/dist/parent/core.d.ts +1 -0
- package/src/dist/parent/coreObjectChildren.d.ts +1 -0
- package/src/dist/parent/detach.d.ts +9 -0
- package/src/dist/parent/findChildren.d.ts +13 -0
- package/src/dist/parent/findParent.d.ts +41 -0
- package/src/dist/parent/getChildrenObjects.d.ts +11 -0
- package/src/dist/parent/index.d.ts +9 -0
- package/src/dist/parent/onChildAttachedTo.d.ts +22 -0
- package/src/dist/parent/path.d.ts +107 -0
- package/src/dist/parent/path2.d.ts +16 -0
- package/src/dist/parent/pathTypes.d.ts +12 -0
- package/src/dist/parent/setParent.d.ts +1 -0
- package/src/dist/parent/walkTree.d.ts +25 -0
- package/src/dist/patch/Patch.d.ts +16 -0
- package/src/dist/patch/applyPatches.d.ts +9 -0
- package/src/dist/patch/emitPatch.d.ts +29 -0
- package/src/dist/patch/index.d.ts +5 -0
- package/src/dist/patch/jsonPatch.d.ts +45 -0
- package/src/dist/patch/patchRecorder.d.ts +70 -0
- package/src/dist/redux/connectReduxDevTools.d.ts +12 -0
- package/src/dist/redux/index.d.ts +2 -0
- package/src/dist/redux/redux.d.ts +47 -0
- package/src/dist/ref/Ref.d.ts +53 -0
- package/src/dist/ref/core.d.ts +46 -0
- package/src/dist/ref/customRef.d.ts +38 -0
- package/src/dist/ref/index.d.ts +4 -0
- package/src/dist/ref/rootRef.d.ts +33 -0
- package/src/dist/rootStore/attachDetach.d.ts +1 -0
- package/src/dist/rootStore/index.d.ts +1 -0
- package/src/dist/rootStore/rootStore.d.ts +33 -0
- package/src/dist/snapshot/SnapshotOf.d.ts +47 -0
- package/src/dist/snapshot/SnapshotterAndReconcilerPriority.d.ts +1 -0
- package/src/dist/snapshot/applySnapshot.d.ts +17 -0
- package/src/dist/snapshot/clone.d.ts +18 -0
- package/src/dist/snapshot/fromArraySnapshot.d.ts +1 -0
- package/src/dist/snapshot/fromFrozenSnapshot.d.ts +1 -0
- package/src/dist/snapshot/fromModelSnapshot.d.ts +1 -0
- package/src/dist/snapshot/fromPlainObjectSnapshot.d.ts +1 -0
- package/src/dist/snapshot/fromSnapshot.d.ts +36 -0
- package/src/dist/snapshot/getSnapshot.d.ts +22 -0
- package/src/dist/snapshot/index.d.ts +6 -0
- package/src/dist/snapshot/internal.d.ts +1 -0
- package/src/dist/snapshot/onSnapshot.d.ts +18 -0
- package/src/dist/snapshot/reconcileArraySnapshot.d.ts +1 -0
- package/src/dist/snapshot/reconcileFrozenSnapshot.d.ts +1 -0
- package/src/dist/snapshot/reconcileModelSnapshot.d.ts +1 -0
- package/src/dist/snapshot/reconcilePlainObjectSnapshot.d.ts +1 -0
- package/src/dist/snapshot/reconcileSnapshot.d.ts +1 -0
- package/src/dist/snapshot/registerDefaultReconcilers.d.ts +1 -0
- package/src/dist/snapshot/registerDefaultSnapshotters.d.ts +1 -0
- package/src/dist/standardActions/actions.d.ts +1 -0
- package/src/dist/standardActions/arrayActions.d.ts +18 -0
- package/src/dist/standardActions/index.d.ts +3 -0
- package/src/dist/standardActions/objectActions.d.ts +7 -0
- package/src/dist/standardActions/standaloneActions.d.ts +16 -0
- package/src/dist/transforms/ImmutableDate.d.ts +1 -0
- package/src/dist/transforms/asMap.d.ts +3 -0
- package/src/dist/transforms/asSet.d.ts +2 -0
- package/src/dist/transforms/bigint.d.ts +2 -0
- package/src/dist/transforms/date.d.ts +3 -0
- package/src/dist/transforms/index.d.ts +4 -0
- package/src/dist/treeUtils/deepEquals.d.ts +20 -0
- package/src/dist/treeUtils/draft.d.ts +70 -0
- package/src/dist/treeUtils/index.d.ts +3 -0
- package/src/dist/treeUtils/sandbox.d.ts +85 -0
- package/src/dist/tweaker/TweakerPriority.d.ts +1 -0
- package/src/dist/tweaker/core.d.ts +14 -0
- package/src/dist/tweaker/index.d.ts +2 -0
- package/src/dist/tweaker/registerDefaultTweakers.d.ts +1 -0
- package/src/dist/tweaker/tweak.d.ts +22 -0
- package/src/dist/tweaker/tweakArray.d.ts +1 -0
- package/src/dist/tweaker/tweakFrozen.d.ts +1 -0
- package/src/dist/tweaker/tweakModel.d.ts +1 -0
- package/src/dist/tweaker/tweakPlainObject.d.ts +1 -0
- package/src/dist/tweaker/typeChecking.d.ts +1 -0
- package/src/dist/tweaker/withoutTypeChecking.d.ts +2 -0
- package/src/dist/types/TypeCheckError.d.ts +22 -0
- package/src/dist/types/TypeChecker.d.ts +8 -0
- package/src/dist/types/arrayBased/array.d.ts +23 -0
- package/src/dist/types/arrayBased/tuple.d.ts +24 -0
- package/src/dist/types/getTypeInfo.d.ts +9 -0
- package/src/dist/types/index.d.ts +5 -0
- package/src/dist/types/objectBased/arraySet.d.ts +24 -0
- package/src/dist/types/objectBased/dataModelData.d.ts +44 -0
- package/src/dist/types/objectBased/model.d.ts +43 -0
- package/src/dist/types/objectBased/object.d.ts +63 -0
- package/src/dist/types/objectBased/objectMap.d.ts +24 -0
- package/src/dist/types/objectBased/record.d.ts +24 -0
- package/src/dist/types/objectBased/ref.d.ts +21 -0
- package/src/dist/types/primitiveBased/enum.d.ts +34 -0
- package/src/dist/types/primitiveBased/primitives.d.ts +81 -0
- package/src/dist/types/primitiveBased/refinedPrimitives.d.ts +18 -0
- package/src/dist/types/registerDefaultStandardTypeResolvers.d.ts +1 -0
- package/src/dist/types/resolveTypeChecker.d.ts +1 -0
- package/src/dist/types/schemas.d.ts +53 -0
- package/src/dist/types/tProp.d.ts +92 -0
- package/src/dist/types/typeCheck.d.ts +11 -0
- package/src/dist/types/types.d.ts +51 -0
- package/src/dist/types/utility/maybe.d.ts +29 -0
- package/src/dist/types/utility/or.d.ts +35 -0
- package/src/dist/types/utility/refinement.d.ts +45 -0
- package/src/dist/types/utility/unchecked.d.ts +22 -0
- package/src/dist/utils/ModelPool.d.ts +7 -0
- package/src/dist/utils/chainFns.d.ts +1 -0
- package/src/dist/utils/index.d.ts +6 -0
- package/src/dist/utils/mapUtils.d.ts +2 -0
- package/src/dist/utils/tag.d.ts +13 -0
- package/src/dist/utils/types.d.ts +39 -0
- package/src/dist/wrappers/ArraySet.d.ts +29 -0
- package/src/dist/wrappers/ObjectMap.d.ts +32 -0
- package/src/dist/wrappers/asMap.d.ts +29 -0
- package/src/dist/wrappers/asSet.d.ts +15 -0
- package/src/dist/wrappers/index.d.ts +4 -0
- package/src/model/BaseModel.ts +0 -3
- package/src/model/utils.ts +4 -5
- package/src/modelShared/checkModelDecoratorArgs.ts +6 -6
- package/src/parent/setParent.ts +2 -2
- package/src/rootStore/attachDetach.ts +2 -3
- package/src/snapshot/fromArraySnapshot.ts +11 -6
- package/src/snapshot/fromFrozenSnapshot.ts +11 -6
- package/src/snapshot/fromModelSnapshot.ts +11 -6
- package/src/snapshot/fromPlainObjectSnapshot.ts +11 -6
- package/src/snapshot/fromSnapshot.ts +3 -0
- package/src/snapshot/index.ts +0 -10
- package/src/snapshot/reconcileArraySnapshot.ts +11 -6
- package/src/snapshot/reconcileFrozenSnapshot.ts +11 -6
- package/src/snapshot/reconcileModelSnapshot.ts +11 -6
- package/src/snapshot/reconcilePlainObjectSnapshot.ts +11 -6
- package/src/snapshot/reconcileSnapshot.ts +3 -0
- package/src/snapshot/registerDefaultReconcilers.ts +21 -0
- package/src/snapshot/registerDefaultSnapshotters.ts +21 -0
- package/src/tweaker/index.ts +0 -6
- package/src/tweaker/registerDefaultTweakers.ts +21 -0
- package/src/tweaker/tweak.ts +3 -0
- package/src/tweaker/tweakArray.ts +406 -401
- package/src/tweaker/tweakFrozen.ts +11 -6
- package/src/tweaker/tweakModel.ts +11 -6
- package/src/tweaker/tweakPlainObject.ts +288 -283
- package/src/types/objectBased/model.ts +6 -1
- package/src/types/objectBased/ref.ts +1 -1
- package/src/types/primitiveBased/primitives.ts +177 -166
- package/src/types/registerDefaultStandardTypeResolvers.ts +17 -0
- package/src/types/resolveTypeChecker.ts +7 -1
- package/dist/mobx-keystone.es.js +0 -7856
- package/dist/mobx-keystone.es.mjs +0 -7856
- package/src/dataModel/_BaseDataModel.ts +0 -15
- package/src/model/_BaseModel.ts +0 -15
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { failure } from "../utils/index.mjs";
|
|
2
|
+
const errMessage = "this Date object is immutable";
|
|
3
|
+
class ImmutableDate extends Date {
|
|
4
|
+
setTime() {
|
|
5
|
+
throw failure(errMessage);
|
|
6
|
+
}
|
|
7
|
+
setMilliseconds() {
|
|
8
|
+
throw failure(errMessage);
|
|
9
|
+
}
|
|
10
|
+
setUTCMilliseconds() {
|
|
11
|
+
throw failure(errMessage);
|
|
12
|
+
}
|
|
13
|
+
setSeconds() {
|
|
14
|
+
throw failure(errMessage);
|
|
15
|
+
}
|
|
16
|
+
setUTCSeconds() {
|
|
17
|
+
throw failure(errMessage);
|
|
18
|
+
}
|
|
19
|
+
setMinutes() {
|
|
20
|
+
throw failure(errMessage);
|
|
21
|
+
}
|
|
22
|
+
setUTCMinutes() {
|
|
23
|
+
throw failure(errMessage);
|
|
24
|
+
}
|
|
25
|
+
setHours() {
|
|
26
|
+
throw failure(errMessage);
|
|
27
|
+
}
|
|
28
|
+
setUTCHours() {
|
|
29
|
+
throw failure(errMessage);
|
|
30
|
+
}
|
|
31
|
+
setDate() {
|
|
32
|
+
throw failure(errMessage);
|
|
33
|
+
}
|
|
34
|
+
setUTCDate() {
|
|
35
|
+
throw failure(errMessage);
|
|
36
|
+
}
|
|
37
|
+
setMonth() {
|
|
38
|
+
throw failure(errMessage);
|
|
39
|
+
}
|
|
40
|
+
setUTCMonth() {
|
|
41
|
+
throw failure(errMessage);
|
|
42
|
+
}
|
|
43
|
+
setFullYear() {
|
|
44
|
+
throw failure(errMessage);
|
|
45
|
+
}
|
|
46
|
+
setUTCFullYear() {
|
|
47
|
+
throw failure(errMessage);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
export { ImmutableDate };
|
|
51
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW1tdXRhYmxlRGF0ZS5tanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1zL0ltbXV0YWJsZURhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmFpbHVyZSB9IGZyb20gXCIuLi91dGlsc1wiXG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1tdXRhYmxlRGF0ZVxuICBleHRlbmRzIE9taXQ8XG4gICAgRGF0ZSxcbiAgICB8IFwic2V0VGltZVwiXG4gICAgfCBcInNldE1pbGxpc2Vjb25kc1wiXG4gICAgfCBcInNldFVUQ01pbGxpc2Vjb25kc1wiXG4gICAgfCBcInNldFNlY29uZHNcIlxuICAgIHwgXCJzZXRVVENTZWNvbmRzXCJcbiAgICB8IFwic2V0TWludXRlc1wiXG4gICAgfCBcInNldFVUQ01pbnV0ZXNcIlxuICAgIHwgXCJzZXRIb3Vyc1wiXG4gICAgfCBcInNldFVUQ0hvdXJzXCJcbiAgICB8IFwic2V0RGF0ZVwiXG4gICAgfCBcInNldFVUQ0RhdGVcIlxuICAgIHwgXCJzZXRNb250aFwiXG4gICAgfCBcInNldFVUQ01vbnRoXCJcbiAgICB8IFwic2V0RnVsbFllYXJcIlxuICAgIHwgXCJzZXRVVENGdWxsWWVhclwiXG4gID4ge31cblxuY29uc3QgZXJyTWVzc2FnZSA9IFwidGhpcyBEYXRlIG9iamVjdCBpcyBpbW11dGFibGVcIlxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgSW1tdXRhYmxlRGF0ZSBleHRlbmRzIERhdGUge1xuICAvLyBkaXNhYmxlIG11dGFibGUgbWV0aG9kc1xuXG4gIHNldFRpbWUoKTogYW55IHtcbiAgICB0aHJvdyBmYWlsdXJlKGVyck1lc3NhZ2UpXG4gIH1cblxuICBzZXRNaWxsaXNlY29uZHMoKTogYW55IHtcbiAgICB0aHJvdyBmYWlsdXJlKGVyck1lc3NhZ2UpXG4gIH1cblxuICBzZXRVVENNaWxsaXNlY29uZHMoKTogYW55IHtcbiAgICB0aHJvdyBmYWlsdXJlKGVyck1lc3NhZ2UpXG4gIH1cblxuICBzZXRTZWNvbmRzKCk6IGFueSB7XG4gICAgdGhyb3cgZmFpbHVyZShlcnJNZXNzYWdlKVxuICB9XG5cbiAgc2V0VVRDU2Vjb25kcygpOiBhbnkge1xuICAgIHRocm93IGZhaWx1cmUoZXJyTWVzc2FnZSlcbiAgfVxuXG4gIHNldE1pbnV0ZXMoKTogYW55IHtcbiAgICB0aHJvdyBmYWlsdXJlKGVyck1lc3NhZ2UpXG4gIH1cblxuICBzZXRVVENNaW51dGVzKCk6IGFueSB7XG4gICAgdGhyb3cgZmFpbHVyZShlcnJNZXNzYWdlKVxuICB9XG5cbiAgc2V0SG91cnMoKTogYW55IHtcbiAgICB0aHJvdyBmYWlsdXJlKGVyck1lc3NhZ2UpXG4gIH1cblxuICBzZXRVVENIb3VycygpOiBhbnkge1xuICAgIHRocm93IGZhaWx1cmUoZXJyTWVzc2FnZSlcbiAgfVxuXG4gIHNldERhdGUoKTogYW55IHtcbiAgICB0aHJvdyBmYWlsdXJlKGVyck1lc3NhZ2UpXG4gIH1cblxuICBzZXRVVENEYXRlKCk6IGFueSB7XG4gICAgdGhyb3cgZmFpbHVyZShlcnJNZXNzYWdlKVxuICB9XG5cbiAgc2V0TW9udGgoKTogYW55IHtcbiAgICB0aHJvdyBmYWlsdXJlKGVyck1lc3NhZ2UpXG4gIH1cblxuICBzZXRVVENNb250aCgpOiBhbnkge1xuICAgIHRocm93IGZhaWx1cmUoZXJyTWVzc2FnZSlcbiAgfVxuXG4gIHNldEZ1bGxZZWFyKCk6IGFueSB7XG4gICAgdGhyb3cgZmFpbHVyZShlcnJNZXNzYWdlKVxuICB9XG5cbiAgc2V0VVRDRnVsbFllYXIoKTogYW55IHtcbiAgICB0aHJvdyBmYWlsdXJlKGVyck1lc3NhZ2UpXG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBeUJBLE1BQU0sYUFBYTtNQUtOLHNCQUFzQjtFQUdqQztVQUNRLFFBQVEsVUFBVTtBQUFBO0VBRzFCO1VBQ1EsUUFBUSxVQUFVO0FBQUE7RUFHMUI7VUFDUSxRQUFRLFVBQVU7QUFBQTtFQUcxQjtVQUNRLFFBQVEsVUFBVTtBQUFBO0VBRzFCO1VBQ1EsUUFBUSxVQUFVO0FBQUE7RUFHMUI7VUFDUSxRQUFRLFVBQVU7QUFBQTtFQUcxQjtVQUNRLFFBQVEsVUFBVTtBQUFBO0VBRzFCO1VBQ1EsUUFBUSxVQUFVO0FBQUE7RUFHMUI7VUFDUSxRQUFRLFVBQVU7QUFBQTtFQUcxQjtVQUNRLFFBQVEsVUFBVTtBQUFBO0VBRzFCO1VBQ1EsUUFBUSxVQUFVO0FBQUE7RUFHMUI7VUFDUSxRQUFRLFVBQVU7QUFBQTtFQUcxQjtVQUNRLFFBQVEsVUFBVTtBQUFBO0VBRzFCO1VBQ1EsUUFBUSxVQUFVO0FBQUE7RUFHMUI7VUFDUSxRQUFRLFVBQVU7QUFBQTs7OyJ9
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { asMap } from "../wrappers/asMap.mjs";
|
|
2
|
+
const _objectToMapTransform = {
|
|
3
|
+
transform({ originalValue: obj, cachedTransformedValue: cachedMap }) {
|
|
4
|
+
return cachedMap != null ? cachedMap : asMap(obj);
|
|
5
|
+
},
|
|
6
|
+
untransform({ transformedValue: map }) {
|
|
7
|
+
const obj = {};
|
|
8
|
+
for (const k of map.keys()) {
|
|
9
|
+
obj[k] = map.get(k);
|
|
10
|
+
}
|
|
11
|
+
return obj;
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
const objectToMapTransform = () => _objectToMapTransform;
|
|
15
|
+
const _arrayToMapTransform = {
|
|
16
|
+
transform({ originalValue: arr, cachedTransformedValue: cachedMap }) {
|
|
17
|
+
return cachedMap != null ? cachedMap : asMap(arr);
|
|
18
|
+
},
|
|
19
|
+
untransform({ transformedValue: map }) {
|
|
20
|
+
const arr = [];
|
|
21
|
+
for (const k of map.keys()) {
|
|
22
|
+
arr.push([k, map.get(k)]);
|
|
23
|
+
}
|
|
24
|
+
return arr;
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
const arrayToMapTransform = () => _arrayToMapTransform;
|
|
28
|
+
export { arrayToMapTransform, objectToMapTransform };
|
|
29
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNNYXAubWpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHJhbnNmb3Jtcy9hc01hcC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE1vZGVsUHJvcFRyYW5zZm9ybSB9IGZyb20gXCIuLi9tb2RlbFNoYXJlZC9wcm9wXCJcbmltcG9ydCB7IGFzTWFwIH0gZnJvbSBcIi4uL3dyYXBwZXJzL2FzTWFwXCJcblxuY29uc3QgX29iamVjdFRvTWFwVHJhbnNmb3JtOiBNb2RlbFByb3BUcmFuc2Zvcm08UmVjb3JkPHN0cmluZywgdW5rbm93bj4sIE1hcDxzdHJpbmcsIHVua25vd24+PiA9IHtcbiAgdHJhbnNmb3JtKHsgb3JpZ2luYWxWYWx1ZTogb2JqLCBjYWNoZWRUcmFuc2Zvcm1lZFZhbHVlOiBjYWNoZWRNYXAgfSkge1xuICAgIHJldHVybiBjYWNoZWRNYXAgPz8gYXNNYXAob2JqKVxuICB9LFxuXG4gIHVudHJhbnNmb3JtKHsgdHJhbnNmb3JtZWRWYWx1ZTogbWFwIH0pIHtcbiAgICAvLyBkbyBub3QgY2FjaGUgbWFwIDwtPiBvYmogcmVsYXRpb25zaGlwXG5cbiAgICBjb25zdCBvYmo6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge31cbiAgICBmb3IgKGNvbnN0IGsgb2YgbWFwLmtleXMoKSkge1xuICAgICAgb2JqW2tdID0gbWFwLmdldChrKSFcbiAgICB9XG5cbiAgICByZXR1cm4gb2JqXG4gIH0sXG59XG5cbmV4cG9ydCBjb25zdCBvYmplY3RUb01hcFRyYW5zZm9ybSA9IDxUPigpID0+XG4gIF9vYmplY3RUb01hcFRyYW5zZm9ybSBhcyBNb2RlbFByb3BUcmFuc2Zvcm08UmVjb3JkPHN0cmluZywgVD4sIE1hcDxzdHJpbmcsIFQ+PlxuXG5jb25zdCBfYXJyYXlUb01hcFRyYW5zZm9ybTogTW9kZWxQcm9wVHJhbnNmb3JtPEFycmF5PFt1bmtub3duLCB1bmtub3duXT4sIE1hcDx1bmtub3duLCB1bmtub3duPj4gPSB7XG4gIHRyYW5zZm9ybSh7IG9yaWdpbmFsVmFsdWU6IGFyciwgY2FjaGVkVHJhbnNmb3JtZWRWYWx1ZTogY2FjaGVkTWFwIH0pIHtcbiAgICByZXR1cm4gY2FjaGVkTWFwID8/IGFzTWFwKGFycilcbiAgfSxcblxuICB1bnRyYW5zZm9ybSh7IHRyYW5zZm9ybWVkVmFsdWU6IG1hcCB9KSB7XG4gICAgLy8gZG8gbm90IGNhY2hlIG1hcCA8LT4gYXJyIHJlbGF0aW9uc2hpcFxuXG4gICAgY29uc3QgYXJyOiBBcnJheTxbdW5rbm93biwgdW5rbm93bl0+ID0gW11cbiAgICBmb3IgKGNvbnN0IGsgb2YgbWFwLmtleXMoKSkge1xuICAgICAgYXJyLnB1c2goW2ssIG1hcC5nZXQoaykhXSlcbiAgICB9XG5cbiAgICByZXR1cm4gYXJyXG4gIH0sXG59XG5cbmV4cG9ydCBjb25zdCBhcnJheVRvTWFwVHJhbnNmb3JtID0gPEssIFY+KCkgPT5cbiAgX2FycmF5VG9NYXBUcmFuc2Zvcm0gYXMgTW9kZWxQcm9wVHJhbnNmb3JtPEFycmF5PFtLLCBWXT4sIE1hcDxLLCBWPj5cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBR0EsTUFBTSx3QkFBMkY7QUFBQSxFQUMvRixVQUFVLEVBQUUsZUFBZSxLQUFLLHdCQUF3QjtXQUMvQyxnQ0FBYSxNQUFNLEdBQUc7QUFBQTtFQUcvQixZQUFZLEVBQUUsa0JBQWtCO1VBR3hCLE1BQStCO2VBQzFCLEtBQUssSUFBSSxRQUFRO1VBQ3RCLEtBQUssSUFBSSxJQUFJLENBQUM7QUFBQTtXQUdiO0FBQUE7O01BSUUsdUJBQXVCLE1BQ2xDO0FBRUYsTUFBTSx1QkFBNkY7QUFBQSxFQUNqRyxVQUFVLEVBQUUsZUFBZSxLQUFLLHdCQUF3QjtXQUMvQyxnQ0FBYSxNQUFNLEdBQUc7QUFBQTtFQUcvQixZQUFZLEVBQUUsa0JBQWtCO1VBR3hCLE1BQWlDO2VBQzVCLEtBQUssSUFBSSxRQUFRO1VBQ3RCLEtBQUssQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLENBQUUsQ0FBQztBQUFBO1dBR3BCO0FBQUE7O01BSUUsc0JBQXNCLE1BQ2pDOzsifQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { asSet } from "../wrappers/asSet.mjs";
|
|
2
|
+
const _arrayToSetTransform = {
|
|
3
|
+
transform({ originalValue: arr, cachedTransformedValue: cachedSet }) {
|
|
4
|
+
return cachedSet != null ? cachedSet : asSet(arr);
|
|
5
|
+
},
|
|
6
|
+
untransform({ transformedValue: set }) {
|
|
7
|
+
return Array.from(set.values());
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
const arrayToSetTransform = () => _arrayToSetTransform;
|
|
11
|
+
export { arrayToSetTransform };
|
|
12
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNTZXQubWpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHJhbnNmb3Jtcy9hc1NldC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE1vZGVsUHJvcFRyYW5zZm9ybSB9IGZyb20gXCIuLi9tb2RlbFNoYXJlZC9wcm9wXCJcbmltcG9ydCB7IGFzU2V0IH0gZnJvbSBcIi4uL3dyYXBwZXJzL2FzU2V0XCJcblxuY29uc3QgX2FycmF5VG9TZXRUcmFuc2Zvcm06IE1vZGVsUHJvcFRyYW5zZm9ybTxBcnJheTx1bmtub3duPiwgU2V0PHVua25vd24+PiA9IHtcbiAgdHJhbnNmb3JtKHsgb3JpZ2luYWxWYWx1ZTogYXJyLCBjYWNoZWRUcmFuc2Zvcm1lZFZhbHVlOiBjYWNoZWRTZXQgfSkge1xuICAgIHJldHVybiBjYWNoZWRTZXQgPz8gYXNTZXQoYXJyKVxuICB9LFxuXG4gIHVudHJhbnNmb3JtKHsgdHJhbnNmb3JtZWRWYWx1ZTogc2V0IH0pIHtcbiAgICAvLyBkbyBub3QgY2FjaGUgc2V0IDwtPiBhcnIgcmVsYXRpb25zaGlwXG5cbiAgICByZXR1cm4gQXJyYXkuZnJvbShzZXQudmFsdWVzKCkpXG4gIH0sXG59XG5cbmV4cG9ydCBjb25zdCBhcnJheVRvU2V0VHJhbnNmb3JtID0gPFQ+KCkgPT5cbiAgX2FycmF5VG9TZXRUcmFuc2Zvcm0gYXMgTW9kZWxQcm9wVHJhbnNmb3JtPEFycmF5PFQ+LCBTZXQ8VD4+XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUdBLE1BQU0sdUJBQXlFO0FBQUEsRUFDN0UsVUFBVSxFQUFFLGVBQWUsS0FBSyx3QkFBd0I7V0FDL0MsZ0NBQWEsTUFBTSxHQUFHO0FBQUE7RUFHL0IsWUFBWSxFQUFFLGtCQUFrQjtXQUd2QixNQUFNLEtBQUssSUFBSSxRQUFRO0FBQUE7O01BSXJCLHNCQUFzQixNQUNqQzs7In0=
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
const _stringToBigIntTransform = {
|
|
2
|
+
transform({ originalValue, cachedTransformedValue }) {
|
|
3
|
+
return cachedTransformedValue != null ? cachedTransformedValue : BigInt(originalValue);
|
|
4
|
+
},
|
|
5
|
+
untransform({ transformedValue, cacheTransformedValue }) {
|
|
6
|
+
if (typeof transformedValue === "bigint") {
|
|
7
|
+
cacheTransformedValue();
|
|
8
|
+
}
|
|
9
|
+
return transformedValue.toString();
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
const stringToBigIntTransform = () => _stringToBigIntTransform;
|
|
13
|
+
export { stringToBigIntTransform };
|
|
14
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlnaW50Lm1qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RyYW5zZm9ybXMvYmlnaW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTW9kZWxQcm9wVHJhbnNmb3JtIH0gZnJvbSBcIi4uL21vZGVsU2hhcmVkL3Byb3BcIlxuXG5jb25zdCBfc3RyaW5nVG9CaWdJbnRUcmFuc2Zvcm06IE1vZGVsUHJvcFRyYW5zZm9ybTxzdHJpbmcsIGJpZ2ludD4gPSB7XG4gIHRyYW5zZm9ybSh7IG9yaWdpbmFsVmFsdWUsIGNhY2hlZFRyYW5zZm9ybWVkVmFsdWUgfSkge1xuICAgIHJldHVybiBjYWNoZWRUcmFuc2Zvcm1lZFZhbHVlID8/IEJpZ0ludChvcmlnaW5hbFZhbHVlKVxuICB9LFxuXG4gIHVudHJhbnNmb3JtKHsgdHJhbnNmb3JtZWRWYWx1ZSwgY2FjaGVUcmFuc2Zvcm1lZFZhbHVlIH0pIHtcbiAgICBpZiAodHlwZW9mIHRyYW5zZm9ybWVkVmFsdWUgPT09IFwiYmlnaW50XCIpIHtcbiAgICAgIGNhY2hlVHJhbnNmb3JtZWRWYWx1ZSgpXG4gICAgfVxuICAgIHJldHVybiB0cmFuc2Zvcm1lZFZhbHVlLnRvU3RyaW5nKClcbiAgfSxcbn1cblxuZXhwb3J0IGNvbnN0IHN0cmluZ1RvQmlnSW50VHJhbnNmb3JtID0gKCkgPT4gX3N0cmluZ1RvQmlnSW50VHJhbnNmb3JtXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSwyQkFBK0Q7QUFBQSxFQUNuRSxVQUFVLEVBQUUsZUFBZTtXQUNsQiwwREFBMEIsT0FBTyxhQUFhO0FBQUE7RUFHdkQsWUFBWSxFQUFFLGtCQUFrQjtRQUMxQixPQUFPLHFCQUFxQixVQUFVOzs7V0FHbkMsaUJBQWlCOzs7TUFJZiwwQkFBMEIsTUFBTTs7In0=
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ImmutableDate } from "./ImmutableDate.mjs";
|
|
2
|
+
const _timestampToDateTransform = {
|
|
3
|
+
transform({ originalValue, cachedTransformedValue }) {
|
|
4
|
+
return cachedTransformedValue != null ? cachedTransformedValue : new ImmutableDate(originalValue);
|
|
5
|
+
},
|
|
6
|
+
untransform({ transformedValue, cacheTransformedValue }) {
|
|
7
|
+
if (transformedValue instanceof ImmutableDate) {
|
|
8
|
+
cacheTransformedValue();
|
|
9
|
+
}
|
|
10
|
+
return +transformedValue;
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
const timestampToDateTransform = () => _timestampToDateTransform;
|
|
14
|
+
const _isoStringToDateTransform = {
|
|
15
|
+
transform({ originalValue, cachedTransformedValue }) {
|
|
16
|
+
return cachedTransformedValue != null ? cachedTransformedValue : new ImmutableDate(originalValue);
|
|
17
|
+
},
|
|
18
|
+
untransform({ transformedValue, cacheTransformedValue }) {
|
|
19
|
+
if (transformedValue instanceof ImmutableDate) {
|
|
20
|
+
cacheTransformedValue();
|
|
21
|
+
}
|
|
22
|
+
return transformedValue.toISOString();
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
const isoStringToDateTransform = () => _isoStringToDateTransform;
|
|
26
|
+
export { isoStringToDateTransform, timestampToDateTransform };
|
|
27
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5tanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1zL2RhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBNb2RlbFByb3BUcmFuc2Zvcm0gfSBmcm9tIFwiLi4vbW9kZWxTaGFyZWQvcHJvcFwiXG5pbXBvcnQgeyBJbW11dGFibGVEYXRlIH0gZnJvbSBcIi4vSW1tdXRhYmxlRGF0ZVwiXG5cbmNvbnN0IF90aW1lc3RhbXBUb0RhdGVUcmFuc2Zvcm06IE1vZGVsUHJvcFRyYW5zZm9ybTxudW1iZXIsIERhdGU+ID0ge1xuICB0cmFuc2Zvcm0oeyBvcmlnaW5hbFZhbHVlLCBjYWNoZWRUcmFuc2Zvcm1lZFZhbHVlIH0pIHtcbiAgICByZXR1cm4gY2FjaGVkVHJhbnNmb3JtZWRWYWx1ZSA/PyBuZXcgSW1tdXRhYmxlRGF0ZShvcmlnaW5hbFZhbHVlKVxuICB9LFxuXG4gIHVudHJhbnNmb3JtKHsgdHJhbnNmb3JtZWRWYWx1ZSwgY2FjaGVUcmFuc2Zvcm1lZFZhbHVlIH0pIHtcbiAgICBpZiAodHJhbnNmb3JtZWRWYWx1ZSBpbnN0YW5jZW9mIEltbXV0YWJsZURhdGUpIHtcbiAgICAgIGNhY2hlVHJhbnNmb3JtZWRWYWx1ZSgpXG4gICAgfVxuICAgIHJldHVybiArdHJhbnNmb3JtZWRWYWx1ZVxuICB9LFxufVxuXG5leHBvcnQgY29uc3QgdGltZXN0YW1wVG9EYXRlVHJhbnNmb3JtID0gKCkgPT4gX3RpbWVzdGFtcFRvRGF0ZVRyYW5zZm9ybVxuXG5jb25zdCBfaXNvU3RyaW5nVG9EYXRlVHJhbnNmb3JtOiBNb2RlbFByb3BUcmFuc2Zvcm08c3RyaW5nLCBEYXRlPiA9IHtcbiAgdHJhbnNmb3JtKHsgb3JpZ2luYWxWYWx1ZSwgY2FjaGVkVHJhbnNmb3JtZWRWYWx1ZSB9KSB7XG4gICAgcmV0dXJuIGNhY2hlZFRyYW5zZm9ybWVkVmFsdWUgPz8gbmV3IEltbXV0YWJsZURhdGUob3JpZ2luYWxWYWx1ZSlcbiAgfSxcblxuICB1bnRyYW5zZm9ybSh7IHRyYW5zZm9ybWVkVmFsdWUsIGNhY2hlVHJhbnNmb3JtZWRWYWx1ZSB9KSB7XG4gICAgaWYgKHRyYW5zZm9ybWVkVmFsdWUgaW5zdGFuY2VvZiBJbW11dGFibGVEYXRlKSB7XG4gICAgICBjYWNoZVRyYW5zZm9ybWVkVmFsdWUoKVxuICAgIH1cbiAgICByZXR1cm4gdHJhbnNmb3JtZWRWYWx1ZS50b0lTT1N0cmluZygpXG4gIH0sXG59XG5cbmV4cG9ydCBjb25zdCBpc29TdHJpbmdUb0RhdGVUcmFuc2Zvcm0gPSAoKSA9PiBfaXNvU3RyaW5nVG9EYXRlVHJhbnNmb3JtXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUdBLE1BQU0sNEJBQThEO0FBQUEsRUFDbEUsVUFBVSxFQUFFLGVBQWU7V0FDbEIsMERBQTBCLElBQUksY0FBYyxhQUFhO0FBQUE7RUFHbEUsWUFBWSxFQUFFLGtCQUFrQjtRQUMxQiw0QkFBNEIsZUFBZTs7O1dBR3hDLENBQUM7QUFBQTs7TUFJQywyQkFBMkIsTUFBTTtBQUU5QyxNQUFNLDRCQUE4RDtBQUFBLEVBQ2xFLFVBQVUsRUFBRSxlQUFlO1dBQ2xCLDBEQUEwQixJQUFJLGNBQWMsYUFBYTtBQUFBO0VBR2xFLFlBQVksRUFBRSxrQkFBa0I7UUFDMUIsNEJBQTRCLGVBQWU7OztXQUd4QyxpQkFBaUI7OztNQUlmLDJCQUEyQixNQUFNOzsifQ==
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import es6 from "../../node_modules/fast-deep-equal/es6/index.mjs";
|
|
2
|
+
import { isObservable, toJS } from "mobx";
|
|
3
|
+
import "../action/builtInActions.mjs";
|
|
4
|
+
import "../action/context.mjs";
|
|
5
|
+
import { getMobxVersion } from "../utils/index.mjs";
|
|
6
|
+
import { getSnapshot } from "../snapshot/getSnapshot.mjs";
|
|
7
|
+
import "../types/primitiveBased/primitives.mjs";
|
|
8
|
+
import "../types/TypeChecker.mjs";
|
|
9
|
+
import { isTreeNode } from "../tweaker/core.mjs";
|
|
10
|
+
import "../model/newModel.mjs";
|
|
11
|
+
import "../parent/coreObjectChildren.mjs";
|
|
12
|
+
import "../frozen/Frozen.mjs";
|
|
13
|
+
import "../utils/ModelPool.mjs";
|
|
14
|
+
import "../parent/walkTree.mjs";
|
|
15
|
+
import "../globalConfig/globalConfig.mjs";
|
|
16
|
+
import "../snapshot/fromSnapshot.mjs";
|
|
17
|
+
import "../snapshot/SnapshotterAndReconcilerPriority.mjs";
|
|
18
|
+
import "../tweaker/tweak.mjs";
|
|
19
|
+
function deepEquals(a, b) {
|
|
20
|
+
if (a === b) {
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
if (isTreeNode(a)) {
|
|
24
|
+
a = getSnapshot(a);
|
|
25
|
+
} else if (isObservable(a)) {
|
|
26
|
+
a = toJS(a, toJSOptions);
|
|
27
|
+
}
|
|
28
|
+
if (isTreeNode(b)) {
|
|
29
|
+
b = getSnapshot(b);
|
|
30
|
+
} else if (isObservable(b)) {
|
|
31
|
+
b = toJS(b, toJSOptions);
|
|
32
|
+
}
|
|
33
|
+
return es6(a, b);
|
|
34
|
+
}
|
|
35
|
+
const toJSOptions = getMobxVersion() >= 6 ? void 0 : {
|
|
36
|
+
exportMapsAsObjects: false,
|
|
37
|
+
recurseEverything: false
|
|
38
|
+
};
|
|
39
|
+
export { deepEquals };
|
|
40
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcEVxdWFscy5tanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmVlVXRpbHMvZGVlcEVxdWFscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZmFzdERlZXBFcXVhbCBmcm9tIFwiZmFzdC1kZWVwLWVxdWFsL2VzNlwiXG5pbXBvcnQgeyBpc09ic2VydmFibGUsIHRvSlMgfSBmcm9tIFwibW9ieFwiXG5pbXBvcnQgeyBnZXRTbmFwc2hvdCB9IGZyb20gXCIuLi9zbmFwc2hvdFwiXG5pbXBvcnQgeyBpc1RyZWVOb2RlIH0gZnJvbSBcIi4uL3R3ZWFrZXJcIlxuaW1wb3J0IHsgZ2V0TW9ieFZlcnNpb24gfSBmcm9tIFwiLi4vdXRpbHNcIlxuXG4vKipcbiAqIERlZXBseSBjb21wYXJlcyB0d28gdmFsdWVzLlxuICpcbiAqIFN1cHBvcnRlZCB2YWx1ZXMgYXJlOlxuICogLSBQcmltaXRpdmVzXG4gKiAtIEJveGVkIG9ic2VydmFibGVzXG4gKiAtIE9iamVjdHMsIG9ic2VydmFibGUgb2JqZWN0c1xuICogLSBBcnJheXMsIG9ic2VydmFibGUgYXJyYXlzXG4gKiAtIFR5cGVkIGFycmF5c1xuICogLSBNYXBzLCBvYnNlcnZhYmxlIG1hcHNcbiAqIC0gU2V0cywgb2JzZXJ2YWJsZSBzZXRzXG4gKiAtIFRyZWUgbm9kZXMgKG9wdGltaXplZCBieSB1c2luZyBzbmFwc2hvdCBjb21wYXJpc29uIGludGVybmFsbHkpXG4gKlxuICogTm90ZSB0aGF0IGluIHRoZSBjYXNlIG9mIG1vZGVscyB0aGUgcmVzdWx0IHdpbGwgYmUgZmFsc2UgaWYgdGhlaXIgbW9kZWwgSURzIGFyZSBkaWZmZXJlbnQuXG4gKlxuICogQHBhcmFtIGEgRmlyc3QgdmFsdWUgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSBiIFNlY29uZCB2YWx1ZSB0byBjb21wYXJlLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZXkgYXJlIHRoZSBlcXVpdmFsZW50LCBgZmFsc2VgIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZXBFcXVhbHMoYTogYW55LCBiOiBhbnkpOiBib29sZWFuIHtcbiAgLy8gcXVpY2sgY2hlY2sgZm9yIHJlZmVyZW5jZVxuICBpZiAoYSA9PT0gYikge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICAvLyB1c2Ugc25hcHNob3RzIHRvIGNvbXBhcmUgaWYgcG9zc2libGVcbiAgLy8gc2luY2Ugc25hcHNob3RzIHVzZSBzdHJ1Y3R1cmFsIHNoYXJpbmcgaXQgaXMgbW9yZSBsaWtlbHlcbiAgLy8gdG8gc3BlZWQgdXAgY29tcGFyaXNvbnNcbiAgaWYgKGlzVHJlZU5vZGUoYSkpIHtcbiAgICBhID0gZ2V0U25hcHNob3QoYSlcbiAgfSBlbHNlIGlmIChpc09ic2VydmFibGUoYSkpIHtcbiAgICBhID0gdG9KUyhhLCB0b0pTT3B0aW9ucylcbiAgfVxuICBpZiAoaXNUcmVlTm9kZShiKSkge1xuICAgIGIgPSBnZXRTbmFwc2hvdChiKVxuICB9IGVsc2UgaWYgKGlzT2JzZXJ2YWJsZShiKSkge1xuICAgIGIgPSB0b0pTKGIsIHRvSlNPcHRpb25zKVxuICB9XG5cbiAgcmV0dXJuIGZhc3REZWVwRXF1YWwoYSwgYilcbn1cblxuY29uc3QgdG9KU09wdGlvbnMgPVxuICBnZXRNb2J4VmVyc2lvbigpID49IDZcbiAgICA/IHVuZGVmaW5lZFxuICAgIDoge1xuICAgICAgICBleHBvcnRNYXBzQXNPYmplY3RzOiBmYWxzZSxcbiAgICAgICAgcmVjdXJzZUV2ZXJ5dGhpbmc6IGZhbHNlLFxuICAgICAgfVxuIl0sIm5hbWVzIjpbImZhc3REZWVwRXF1YWwiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztvQkF5QjJCLEdBQVE7TUFFN0IsTUFBTSxHQUFHO1dBQ0o7QUFBQTtNQU1MLFdBQVcsQ0FBQyxHQUFHO1FBQ2IsWUFBWSxDQUFDO0FBQUEsYUFDUixhQUFhLENBQUMsR0FBRztRQUN0QixLQUFLLEdBQUcsV0FBVztBQUFBO01BRXJCLFdBQVcsQ0FBQyxHQUFHO1FBQ2IsWUFBWSxDQUFDO0FBQUEsYUFDUixhQUFhLENBQUMsR0FBRztRQUN0QixLQUFLLEdBQUcsV0FBVztBQUFBO1NBR2xCQSxJQUFjLEdBQUcsQ0FBQztBQUMzQjtBQUVBLE1BQU0sY0FDSixvQkFBb0IsSUFDaEIsU0FDQTtBQUFBLEVBQ0UscUJBQXFCO0FBQUEsRUFDckIsbUJBQW1COzs7In0=
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
+
var __publicField = (obj, key, value) => {
|
|
4
|
+
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
5
|
+
return value;
|
|
6
|
+
};
|
|
7
|
+
import { __decorate } from "../../_virtual/_tslib.mjs";
|
|
8
|
+
import { action, computed } from "mobx";
|
|
9
|
+
import { pathToTargetPathIds } from "../actionMiddlewares/utils.mjs";
|
|
10
|
+
import { resolvePath, resolvePathCheckingIds, skipIdChecking } from "../parent/path.mjs";
|
|
11
|
+
import { applyPatches } from "../patch/applyPatches.mjs";
|
|
12
|
+
import { applySnapshot } from "../snapshot/applySnapshot.mjs";
|
|
13
|
+
import { fromSnapshot } from "../snapshot/fromSnapshot.mjs";
|
|
14
|
+
import { getSnapshot } from "../snapshot/getSnapshot.mjs";
|
|
15
|
+
import { assertTweakedObject } from "../tweaker/core.mjs";
|
|
16
|
+
import { failure } from "../utils/index.mjs";
|
|
17
|
+
import { deepEquals } from "./deepEquals.mjs";
|
|
18
|
+
class Draft {
|
|
19
|
+
constructor(original) {
|
|
20
|
+
__publicField(this, "data");
|
|
21
|
+
__publicField(this, "originalData");
|
|
22
|
+
assertTweakedObject(original, "original");
|
|
23
|
+
this.originalData = original;
|
|
24
|
+
this.data = fromSnapshot(this.originalSnapshot, { generateNewIds: false });
|
|
25
|
+
}
|
|
26
|
+
commit() {
|
|
27
|
+
applySnapshot(this.originalData, getSnapshot(this.data));
|
|
28
|
+
}
|
|
29
|
+
commitByPath(path) {
|
|
30
|
+
const draftTarget = resolvePath(this.data, path);
|
|
31
|
+
if (!draftTarget.resolved) {
|
|
32
|
+
throw failure(`path ${JSON.stringify(path)} could not be resolved in draft object`);
|
|
33
|
+
}
|
|
34
|
+
const draftPathIds = pathToTargetPathIdsIgnoringLast(this.data, path);
|
|
35
|
+
const originalTarget = resolvePathCheckingIds(this.originalData, path, draftPathIds);
|
|
36
|
+
if (!originalTarget.resolved) {
|
|
37
|
+
throw failure(`path ${JSON.stringify(path)} could not be resolved in original object`);
|
|
38
|
+
}
|
|
39
|
+
applyPatches(this.originalData, [
|
|
40
|
+
{
|
|
41
|
+
path,
|
|
42
|
+
op: "replace",
|
|
43
|
+
value: getSnapshot(draftTarget.value)
|
|
44
|
+
}
|
|
45
|
+
]);
|
|
46
|
+
}
|
|
47
|
+
reset() {
|
|
48
|
+
applySnapshot(this.data, this.originalSnapshot);
|
|
49
|
+
}
|
|
50
|
+
resetByPath(path) {
|
|
51
|
+
const originalTarget = resolvePath(this.originalData, path);
|
|
52
|
+
if (!originalTarget.resolved) {
|
|
53
|
+
throw failure(`path ${JSON.stringify(path)} could not be resolved in original object`);
|
|
54
|
+
}
|
|
55
|
+
const originalPathIds = pathToTargetPathIdsIgnoringLast(this.originalData, path);
|
|
56
|
+
const draftTarget = resolvePathCheckingIds(this.data, path, originalPathIds);
|
|
57
|
+
if (!draftTarget.resolved) {
|
|
58
|
+
throw failure(`path ${JSON.stringify(path)} could not be resolved in draft object`);
|
|
59
|
+
}
|
|
60
|
+
applyPatches(this.data, [
|
|
61
|
+
{
|
|
62
|
+
path,
|
|
63
|
+
op: "replace",
|
|
64
|
+
value: getSnapshot(originalTarget.value)
|
|
65
|
+
}
|
|
66
|
+
]);
|
|
67
|
+
}
|
|
68
|
+
get isDirty() {
|
|
69
|
+
return !deepEquals(getSnapshot(this.data), this.originalSnapshot);
|
|
70
|
+
}
|
|
71
|
+
isDirtyByPath(path) {
|
|
72
|
+
const draftTarget = resolvePath(this.data, path);
|
|
73
|
+
if (!draftTarget.resolved) {
|
|
74
|
+
throw failure(`path ${JSON.stringify(path)} could not be resolved in draft object`);
|
|
75
|
+
}
|
|
76
|
+
const draftPathIds = pathToTargetPathIdsIgnoringLast(this.data, path);
|
|
77
|
+
const originalTarget = resolvePathCheckingIds(this.originalData, path, draftPathIds);
|
|
78
|
+
if (!originalTarget.resolved) {
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
return !deepEquals(draftTarget.value, originalTarget.value);
|
|
82
|
+
}
|
|
83
|
+
get originalSnapshot() {
|
|
84
|
+
return getSnapshot(this.originalData);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
__decorate([
|
|
88
|
+
action
|
|
89
|
+
], Draft.prototype, "commit", null);
|
|
90
|
+
__decorate([
|
|
91
|
+
action
|
|
92
|
+
], Draft.prototype, "commitByPath", null);
|
|
93
|
+
__decorate([
|
|
94
|
+
action
|
|
95
|
+
], Draft.prototype, "reset", null);
|
|
96
|
+
__decorate([
|
|
97
|
+
action
|
|
98
|
+
], Draft.prototype, "resetByPath", null);
|
|
99
|
+
__decorate([
|
|
100
|
+
computed
|
|
101
|
+
], Draft.prototype, "isDirty", null);
|
|
102
|
+
__decorate([
|
|
103
|
+
computed
|
|
104
|
+
], Draft.prototype, "originalSnapshot", null);
|
|
105
|
+
function draft(original) {
|
|
106
|
+
return new Draft(original);
|
|
107
|
+
}
|
|
108
|
+
function pathToTargetPathIdsIgnoringLast(root, path) {
|
|
109
|
+
const pathIds = pathToTargetPathIds(root, path);
|
|
110
|
+
if (pathIds.length >= 1) {
|
|
111
|
+
pathIds[pathIds.length - 1] = skipIdChecking;
|
|
112
|
+
}
|
|
113
|
+
return pathIds;
|
|
114
|
+
}
|
|
115
|
+
export { Draft, draft };
|
|
116
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZnQubWpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHJlZVV0aWxzL2RyYWZ0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFjdGlvbiwgY29tcHV0ZWQgfSBmcm9tIFwibW9ieFwiXG5pbXBvcnQgeyBwYXRoVG9UYXJnZXRQYXRoSWRzIH0gZnJvbSBcIi4uL2FjdGlvbk1pZGRsZXdhcmVzL3V0aWxzXCJcbmltcG9ydCB7IHJlc29sdmVQYXRoLCByZXNvbHZlUGF0aENoZWNraW5nSWRzLCBza2lwSWRDaGVja2luZyB9IGZyb20gXCIuLi9wYXJlbnQvcGF0aFwiXG5pbXBvcnQgdHlwZSB7IFBhdGggfSBmcm9tIFwiLi4vcGFyZW50L3BhdGhUeXBlc1wiXG5pbXBvcnQgeyBhcHBseVBhdGNoZXMgfSBmcm9tIFwiLi4vcGF0Y2gvYXBwbHlQYXRjaGVzXCJcbmltcG9ydCB7IGFwcGx5U25hcHNob3QgfSBmcm9tIFwiLi4vc25hcHNob3QvYXBwbHlTbmFwc2hvdFwiXG5pbXBvcnQgeyBmcm9tU25hcHNob3QgfSBmcm9tIFwiLi4vc25hcHNob3QvZnJvbVNuYXBzaG90XCJcbmltcG9ydCB7IGdldFNuYXBzaG90IH0gZnJvbSBcIi4uL3NuYXBzaG90L2dldFNuYXBzaG90XCJcbmltcG9ydCB7IGFzc2VydFR3ZWFrZWRPYmplY3QgfSBmcm9tIFwiLi4vdHdlYWtlci9jb3JlXCJcbmltcG9ydCB7IGZhaWx1cmUgfSBmcm9tIFwiLi4vdXRpbHNcIlxuaW1wb3J0IHsgZGVlcEVxdWFscyB9IGZyb20gXCIuL2RlZXBFcXVhbHNcIlxuXG4vKipcbiAqIEEgY2xhc3Mgd2l0aCB0aGUgaW1wbGVtZW50YXRpb25tIG9mIGRyYWZ0LlxuICogVXNlIGBkcmFmdGAgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIHRoaXMgY2xhc3MuXG4gKlxuICogQHR5cGVwYXJhbSBUIERhdGEgdHlwZS5cbiAqL1xuZXhwb3J0IGNsYXNzIERyYWZ0PFQgZXh0ZW5kcyBvYmplY3Q+IHtcbiAgLyoqXG4gICAqIERyYWZ0IGRhdGEgb2JqZWN0LlxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YTogVFxuXG4gIC8qKlxuICAgKiBDb21taXRzIGN1cnJlbnQgZHJhZnQgY2hhbmdlcyB0byB0aGUgb3JpZ2luYWwgb2JqZWN0LlxuICAgKi9cbiAgQGFjdGlvblxuICBjb21taXQoKTogdm9pZCB7XG4gICAgYXBwbHlTbmFwc2hvdCh0aGlzLm9yaWdpbmFsRGF0YSwgZ2V0U25hcHNob3QodGhpcy5kYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJ0aWFsbHkgY29tbWl0cyBjdXJyZW50IGRyYWZ0IGNoYW5nZXMgdG8gdGhlIG9yaWdpbmFsIG9iamVjdC5cbiAgICogSWYgdGhlIHBhdGggY2Fubm90IGJlIHJlc29sdmVkIGluIGVpdGhlciB0aGUgZHJhZnQgb3IgdGhlIG9yaWdpbmFsIG9iamVjdCBpdCB3aWxsIHRocm93LlxuICAgKiBOb3RlIHRoYXQgbW9kZWwgSURzIGFyZSBjaGVja2VkIHRvIGJlIHRoZSBzYW1lIHdoZW4gcmVzb2x2aW5nIHRoZSBwYXRocy5cbiAgICpcbiAgICogQHBhcmFtIHBhdGggUGF0aCB0byBjb21taXQuXG4gICAqL1xuICBAYWN0aW9uXG4gIGNvbW1pdEJ5UGF0aChwYXRoOiBQYXRoKTogdm9pZCB7XG4gICAgY29uc3QgZHJhZnRUYXJnZXQgPSByZXNvbHZlUGF0aCh0aGlzLmRhdGEsIHBhdGgpXG4gICAgaWYgKCFkcmFmdFRhcmdldC5yZXNvbHZlZCkge1xuICAgICAgdGhyb3cgZmFpbHVyZShgcGF0aCAke0pTT04uc3RyaW5naWZ5KHBhdGgpfSBjb3VsZCBub3QgYmUgcmVzb2x2ZWQgaW4gZHJhZnQgb2JqZWN0YClcbiAgICB9XG5cbiAgICBjb25zdCBkcmFmdFBhdGhJZHMgPSBwYXRoVG9UYXJnZXRQYXRoSWRzSWdub3JpbmdMYXN0KHRoaXMuZGF0YSwgcGF0aClcblxuICAgIGNvbnN0IG9yaWdpbmFsVGFyZ2V0ID0gcmVzb2x2ZVBhdGhDaGVja2luZ0lkcyh0aGlzLm9yaWdpbmFsRGF0YSwgcGF0aCwgZHJhZnRQYXRoSWRzKVxuICAgIGlmICghb3JpZ2luYWxUYXJnZXQucmVzb2x2ZWQpIHtcbiAgICAgIHRocm93IGZhaWx1cmUoYHBhdGggJHtKU09OLnN0cmluZ2lmeShwYXRoKX0gY291bGQgbm90IGJlIHJlc29sdmVkIGluIG9yaWdpbmFsIG9iamVjdGApXG4gICAgfVxuXG4gICAgYXBwbHlQYXRjaGVzKHRoaXMub3JpZ2luYWxEYXRhLCBbXG4gICAgICB7XG4gICAgICAgIHBhdGgsXG4gICAgICAgIG9wOiBcInJlcGxhY2VcIixcbiAgICAgICAgdmFsdWU6IGdldFNuYXBzaG90KGRyYWZ0VGFyZ2V0LnZhbHVlKSxcbiAgICAgIH0sXG4gICAgXSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldHMgdGhlIGRyYWZ0IHRvIGJlIGFuIGV4YWN0IGNvcHkgb2YgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIG9yaWdpbmFsIG9iamVjdC5cbiAgICovXG4gIEBhY3Rpb25cbiAgcmVzZXQoKTogdm9pZCB7XG4gICAgYXBwbHlTbmFwc2hvdCh0aGlzLmRhdGEsIHRoaXMub3JpZ2luYWxTbmFwc2hvdClcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJ0aWFsbHkgcmVzZXRzIGN1cnJlbnQgZHJhZnQgY2hhbmdlcyB0byBiZSB0aGUgc2FtZSBhcyB0aGUgb3JpZ2luYWwgb2JqZWN0LlxuICAgKiBJZiB0aGUgcGF0aCBjYW5ub3QgYmUgcmVzb2x2ZWQgaW4gZWl0aGVyIHRoZSBkcmFmdCBvciB0aGUgb3JpZ2luYWwgb2JqZWN0IGl0IHdpbGwgdGhyb3cuXG4gICAqIE5vdGUgdGhhdCBtb2RlbCBJRHMgYXJlIGNoZWNrZWQgdG8gYmUgdGhlIHNhbWUgd2hlbiByZXNvbHZpbmcgdGhlIHBhdGhzLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aCBQYXRoIHRvIHJlc2V0LlxuICAgKi9cbiAgQGFjdGlvblxuICByZXNldEJ5UGF0aChwYXRoOiBQYXRoKTogdm9pZCB7XG4gICAgY29uc3Qgb3JpZ2luYWxUYXJnZXQgPSByZXNvbHZlUGF0aCh0aGlzLm9yaWdpbmFsRGF0YSwgcGF0aClcbiAgICBpZiAoIW9yaWdpbmFsVGFyZ2V0LnJlc29sdmVkKSB7XG4gICAgICB0aHJvdyBmYWlsdXJlKGBwYXRoICR7SlNPTi5zdHJpbmdpZnkocGF0aCl9IGNvdWxkIG5vdCBiZSByZXNvbHZlZCBpbiBvcmlnaW5hbCBvYmplY3RgKVxuICAgIH1cblxuICAgIGNvbnN0IG9yaWdpbmFsUGF0aElkcyA9IHBhdGhUb1RhcmdldFBhdGhJZHNJZ25vcmluZ0xhc3QodGhpcy5vcmlnaW5hbERhdGEsIHBhdGgpXG5cbiAgICBjb25zdCBkcmFmdFRhcmdldCA9IHJlc29sdmVQYXRoQ2hlY2tpbmdJZHModGhpcy5kYXRhLCBwYXRoLCBvcmlnaW5hbFBhdGhJZHMpXG4gICAgaWYgKCFkcmFmdFRhcmdldC5yZXNvbHZlZCkge1xuICAgICAgdGhyb3cgZmFpbHVyZShgcGF0aCAke0pTT04uc3RyaW5naWZ5KHBhdGgpfSBjb3VsZCBub3QgYmUgcmVzb2x2ZWQgaW4gZHJhZnQgb2JqZWN0YClcbiAgICB9XG5cbiAgICBhcHBseVBhdGNoZXModGhpcy5kYXRhLCBbXG4gICAgICB7XG4gICAgICAgIHBhdGgsXG4gICAgICAgIG9wOiBcInJlcGxhY2VcIixcbiAgICAgICAgdmFsdWU6IGdldFNuYXBzaG90KG9yaWdpbmFsVGFyZ2V0LnZhbHVlKSxcbiAgICAgIH0sXG4gICAgXSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgZHJhZnQgaGFzIGNoYW5nZWQgY29tcGFyZWQgdG8gdGhlIG9yaWdpbmFsIG9iamVjdCwgYGZhbHNlYCBvdGhlcndpc2UuXG4gICAqL1xuICBAY29tcHV0ZWRcbiAgZ2V0IGlzRGlydHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICFkZWVwRXF1YWxzKGdldFNuYXBzaG90KHRoaXMuZGF0YSksIHRoaXMub3JpZ2luYWxTbmFwc2hvdClcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgdmFsdWUgYXQgdGhlIGdpdmVuIHBhdGggb2YgdGhlIGRyYWZ0IGhhcyBjaGFuZ2VkIGNvbXBhcmVkIHRvIHRoZSBvcmlnaW5hbCBvYmplY3QuXG4gICAqIElmIHRoZSBwYXRoIGNhbm5vdCBiZSByZXNvbHZlZCBpbiB0aGUgZHJhZnQgaXQgd2lsbCB0aHJvdy5cbiAgICogSWYgdGhlIHBhdGggY2Fubm90IGJlIHJlc29sdmVkIGluIHRoZSBvcmlnaW5hbCBvYmplY3QgaXQgd2lsbCByZXR1cm4gYHRydWVgLlxuICAgKiBOb3RlIHRoYXQgbW9kZWwgSURzIGFyZSBjaGVja2VkIHRvIGJlIHRoZSBzYW1lIHdoZW4gcmVzb2x2aW5nIHRoZSBwYXRocy5cbiAgICpcbiAgICogQHBhcmFtIHBhdGggUGF0aCB0byBjaGVjay5cbiAgICovXG4gIGlzRGlydHlCeVBhdGgocGF0aDogUGF0aCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGRyYWZ0VGFyZ2V0ID0gcmVzb2x2ZVBhdGgodGhpcy5kYXRhLCBwYXRoKVxuICAgIGlmICghZHJhZnRUYXJnZXQucmVzb2x2ZWQpIHtcbiAgICAgIHRocm93IGZhaWx1cmUoYHBhdGggJHtKU09OLnN0cmluZ2lmeShwYXRoKX0gY291bGQgbm90IGJlIHJlc29sdmVkIGluIGRyYWZ0IG9iamVjdGApXG4gICAgfVxuXG4gICAgY29uc3QgZHJhZnRQYXRoSWRzID0gcGF0aFRvVGFyZ2V0UGF0aElkc0lnbm9yaW5nTGFzdCh0aGlzLmRhdGEsIHBhdGgpXG5cbiAgICBjb25zdCBvcmlnaW5hbFRhcmdldCA9IHJlc29sdmVQYXRoQ2hlY2tpbmdJZHModGhpcy5vcmlnaW5hbERhdGEsIHBhdGgsIGRyYWZ0UGF0aElkcylcbiAgICBpZiAoIW9yaWdpbmFsVGFyZ2V0LnJlc29sdmVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIHJldHVybiAhZGVlcEVxdWFscyhkcmFmdFRhcmdldC52YWx1ZSwgb3JpZ2luYWxUYXJnZXQudmFsdWUpXG4gIH1cblxuICAvKipcbiAgICogT3JpZ2luYWwgZGF0YSBvYmplY3QuXG4gICAqL1xuICByZWFkb25seSBvcmlnaW5hbERhdGE6IFRcblxuICBAY29tcHV0ZWRcbiAgcHJpdmF0ZSBnZXQgb3JpZ2luYWxTbmFwc2hvdCgpIHtcbiAgICByZXR1cm4gZ2V0U25hcHNob3QodGhpcy5vcmlnaW5hbERhdGEpXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBEcmFmdC5cbiAgICogRG8gbm90IHVzZSBkaXJlY3RseSwgdXNlIGBkcmFmdGAgaW5zdGVhZC5cbiAgICpcbiAgICogQHBhcmFtIG9yaWdpbmFsXG4gICAqL1xuICBjb25zdHJ1Y3RvcihvcmlnaW5hbDogVCkge1xuICAgIGFzc2VydFR3ZWFrZWRPYmplY3Qob3JpZ2luYWwsIFwib3JpZ2luYWxcIilcblxuICAgIHRoaXMub3JpZ2luYWxEYXRhID0gb3JpZ2luYWxcbiAgICB0aGlzLmRhdGEgPSBmcm9tU25hcHNob3QodGhpcy5vcmlnaW5hbFNuYXBzaG90LCB7IGdlbmVyYXRlTmV3SWRzOiBmYWxzZSB9KVxuICB9XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIGRyYWZ0IGNvcHkgb2YgYSB0cmVlIG5vZGUgYW5kIGFsbCBpdHMgY2hpbGRyZW4uXG4gKlxuICogQHR5cGVwYXJhbSBUIERhdGEgdHlwZS5cbiAqIEBwYXJhbSBvcmlnaW5hbCBPcmlnaW5hbCBub2RlLlxuICogQHJldHVybnMgVGhlIGRyYWZ0IG9iamVjdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRyYWZ0PFQgZXh0ZW5kcyBvYmplY3Q+KG9yaWdpbmFsOiBUKTogRHJhZnQ8VD4ge1xuICByZXR1cm4gbmV3IERyYWZ0KG9yaWdpbmFsKVxufVxuXG5mdW5jdGlvbiBwYXRoVG9UYXJnZXRQYXRoSWRzSWdub3JpbmdMYXN0KHJvb3Q6IGFueSwgcGF0aDogUGF0aCkge1xuICBjb25zdCBwYXRoSWRzOiAoc3RyaW5nIHwgbnVsbCB8IHR5cGVvZiBza2lwSWRDaGVja2luZylbXSA9IHBhdGhUb1RhcmdldFBhdGhJZHMocm9vdCwgcGF0aClcbiAgaWYgKHBhdGhJZHMubGVuZ3RoID49IDEpIHtcbiAgICAvLyBuZXZlciBjaGVjayB0aGUgbGFzdCBvYmplY3QgaWRcbiAgICBwYXRoSWRzW3BhdGhJZHMubGVuZ3RoIC0gMV0gPSBza2lwSWRDaGVja2luZ1xuICB9XG5cbiAgcmV0dXJuIHBhdGhJZHNcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztNQWtCYTtFQWtJWCxZQUFZO0FBOUhIO0FBaUhBO3dCQWNhLFVBQVUsVUFBVTtTQUVuQyxlQUFlO1NBQ2YsT0FBTyxhQUFhLEtBQUssa0JBQWtCLEVBQUUsZ0JBQWdCLE9BQU87QUFBQTtFQTVIM0U7a0JBQ2dCLEtBQUssY0FBYyxZQUFZLEtBQUssSUFBSSxDQUFDO0FBQUE7RUFXekQsYUFBYTtVQUNMLGNBQWMsWUFBWSxLQUFLLE1BQU0sSUFBSTtRQUMzQyxDQUFDLFlBQVksVUFBVTtZQUNuQixRQUFRLFFBQVEsS0FBSyxVQUFVLElBQUkseUNBQXlDO0FBQUE7VUFHOUUsZUFBZSxnQ0FBZ0MsS0FBSyxNQUFNLElBQUk7VUFFOUQsaUJBQWlCLHVCQUF1QixLQUFLLGNBQWMsTUFBTSxZQUFZO1FBQy9FLENBQUMsZUFBZSxVQUFVO1lBQ3RCLFFBQVEsUUFBUSxLQUFLLFVBQVUsSUFBSSw0Q0FBNEM7QUFBQTtpQkFHMUUsS0FBSyxjQUFjO0FBQUEsTUFDOUI7QUFBQSxRQUNFO0FBQUEsUUFDQSxJQUFJO0FBQUEsUUFDSixPQUFPLFlBQVksWUFBWSxLQUFLO0FBQUE7S0FFdkM7QUFBQTtFQU9IO2tCQUNnQixLQUFLLE1BQU0sS0FBSyxnQkFBZ0I7QUFBQTtFQVdoRCxZQUFZO1VBQ0osaUJBQWlCLFlBQVksS0FBSyxjQUFjLElBQUk7UUFDdEQsQ0FBQyxlQUFlLFVBQVU7WUFDdEIsUUFBUSxRQUFRLEtBQUssVUFBVSxJQUFJLDRDQUE0QztBQUFBO1VBR2pGLGtCQUFrQixnQ0FBZ0MsS0FBSyxjQUFjLElBQUk7VUFFekUsY0FBYyx1QkFBdUIsS0FBSyxNQUFNLE1BQU0sZUFBZTtRQUN2RSxDQUFDLFlBQVksVUFBVTtZQUNuQixRQUFRLFFBQVEsS0FBSyxVQUFVLElBQUkseUNBQXlDO0FBQUE7aUJBR3ZFLEtBQUssTUFBTTtBQUFBLE1BQ3RCO0FBQUEsUUFDRTtBQUFBLFFBQ0EsSUFBSTtBQUFBLFFBQ0osT0FBTyxZQUFZLGVBQWUsS0FBSztBQUFBO0tBRTFDO0FBQUE7TUFPQztXQUNLLENBQUMsV0FBVyxZQUFZLEtBQUssSUFBSSxHQUFHLEtBQUssZ0JBQWdCO0FBQUE7RUFXbEUsY0FBYztVQUNOLGNBQWMsWUFBWSxLQUFLLE1BQU0sSUFBSTtRQUMzQyxDQUFDLFlBQVksVUFBVTtZQUNuQixRQUFRLFFBQVEsS0FBSyxVQUFVLElBQUkseUNBQXlDO0FBQUE7VUFHOUUsZUFBZSxnQ0FBZ0MsS0FBSyxNQUFNLElBQUk7VUFFOUQsaUJBQWlCLHVCQUF1QixLQUFLLGNBQWMsTUFBTSxZQUFZO1FBQy9FLENBQUMsZUFBZSxVQUFVO2FBQ3JCO0FBQUE7V0FHRixDQUFDLFdBQVcsWUFBWSxPQUFPLGVBQWUsS0FBSztBQUFBO01BU2hEO1dBQ0gsWUFBWSxLQUFLLFlBQVk7QUFBQTs7QUEvR3RDO0VBREM7O0FBYUQ7RUFEQzs7QUEyQkQ7RUFEQzs7QUFhRDtFQURDOztBQTJCRDtFQURDOztBQW1DRDtFQURDOztlQTBCcUM7U0FDL0IsSUFBSSxNQUFNLFFBQVE7QUFDM0I7QUFFQSx5Q0FBeUMsTUFBVztRQUM1QyxVQUFxRCxvQkFBb0IsTUFBTSxJQUFJO01BQ3JGLFFBQVEsVUFBVSxHQUFHO1lBRWYsUUFBUSxTQUFTLEtBQUs7QUFBQTtTQUd6QjtBQUNUOzsifQ==
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
+
var __publicField = (obj, key, value) => {
|
|
4
|
+
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
5
|
+
return value;
|
|
6
|
+
};
|
|
7
|
+
import { reaction, runInAction } from "mobx";
|
|
8
|
+
import { readonlyMiddleware } from "../actionMiddlewares/readonlyMiddleware.mjs";
|
|
9
|
+
import { createContext } from "../context/context.mjs";
|
|
10
|
+
import { getParentToChildPath, resolvePath } from "../parent/path.mjs";
|
|
11
|
+
import { applyPatches } from "../patch/applyPatches.mjs";
|
|
12
|
+
import { onPatches } from "../patch/emitPatch.mjs";
|
|
13
|
+
import { patchRecorder } from "../patch/patchRecorder.mjs";
|
|
14
|
+
import { isRootStore, registerRootStore, unregisterRootStore } from "../rootStore/rootStore.mjs";
|
|
15
|
+
import { clone } from "../snapshot/clone.mjs";
|
|
16
|
+
import { assertTweakedObject } from "../tweaker/core.mjs";
|
|
17
|
+
import { failure, assertIsFunction } from "../utils/index.mjs";
|
|
18
|
+
const sandboxManagerContext = createContext();
|
|
19
|
+
function getNodeSandboxManager(node) {
|
|
20
|
+
return sandboxManagerContext.get(node);
|
|
21
|
+
}
|
|
22
|
+
function isSandboxedNode(node) {
|
|
23
|
+
return !!getNodeSandboxManager(node);
|
|
24
|
+
}
|
|
25
|
+
class SandboxManager {
|
|
26
|
+
constructor(subtreeRoot) {
|
|
27
|
+
__publicField(this, "subtreeRoot");
|
|
28
|
+
__publicField(this, "subtreeRootClone");
|
|
29
|
+
__publicField(this, "disposer");
|
|
30
|
+
__publicField(this, "withSandboxPatchRecorder");
|
|
31
|
+
__publicField(this, "allowWrite");
|
|
32
|
+
__publicField(this, "isCommitting", false);
|
|
33
|
+
this.subtreeRoot = subtreeRoot;
|
|
34
|
+
assertTweakedObject(subtreeRoot, "subtreeRoot");
|
|
35
|
+
let previousContextDefault = sandboxManagerContext.getDefault();
|
|
36
|
+
sandboxManagerContext.setDefault(this);
|
|
37
|
+
try {
|
|
38
|
+
this.subtreeRootClone = clone(subtreeRoot, { generateNewIds: false });
|
|
39
|
+
sandboxManagerContext.set(this.subtreeRootClone, this);
|
|
40
|
+
} catch (err) {
|
|
41
|
+
throw err;
|
|
42
|
+
} finally {
|
|
43
|
+
sandboxManagerContext.setDefault(previousContextDefault);
|
|
44
|
+
}
|
|
45
|
+
let wasRS = false;
|
|
46
|
+
const disposeReactionRS = reaction(() => isRootStore(subtreeRoot), (isRS) => {
|
|
47
|
+
if (isRS !== wasRS) {
|
|
48
|
+
wasRS = isRS;
|
|
49
|
+
if (isRS) {
|
|
50
|
+
registerRootStore(this.subtreeRootClone);
|
|
51
|
+
} else {
|
|
52
|
+
unregisterRootStore(this.subtreeRootClone);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}, { fireImmediately: true });
|
|
56
|
+
const disposeOnPatches = onPatches(subtreeRoot, (patches) => {
|
|
57
|
+
if (this.withSandboxPatchRecorder) {
|
|
58
|
+
throw failure("original subtree must not change while 'withSandbox' executes");
|
|
59
|
+
}
|
|
60
|
+
if (!this.isCommitting) {
|
|
61
|
+
this.allowWrite(() => {
|
|
62
|
+
applyPatches(this.subtreeRootClone, patches);
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
const { allowWrite, dispose: disposeReadonlyMW } = readonlyMiddleware(this.subtreeRootClone);
|
|
67
|
+
this.allowWrite = allowWrite;
|
|
68
|
+
this.disposer = () => {
|
|
69
|
+
disposeReactionRS();
|
|
70
|
+
disposeOnPatches();
|
|
71
|
+
disposeReadonlyMW();
|
|
72
|
+
if (isRootStore(this.subtreeRootClone)) {
|
|
73
|
+
unregisterRootStore(this.subtreeRootClone);
|
|
74
|
+
}
|
|
75
|
+
this.disposer = () => {
|
|
76
|
+
};
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
withSandbox(nodes, fn) {
|
|
80
|
+
for (let i = 0; i < nodes.length; i++) {
|
|
81
|
+
assertTweakedObject(nodes[i], `nodes[${i}]`);
|
|
82
|
+
}
|
|
83
|
+
assertIsFunction(fn, "fn");
|
|
84
|
+
const { sandboxNodes, applyRecorderChanges } = this.prepareSandboxChanges(nodes);
|
|
85
|
+
let commit = false;
|
|
86
|
+
try {
|
|
87
|
+
const returnValue = this.allowWrite(() => fn(...sandboxNodes));
|
|
88
|
+
if (typeof returnValue === "boolean") {
|
|
89
|
+
commit = returnValue;
|
|
90
|
+
return void 0;
|
|
91
|
+
} else {
|
|
92
|
+
commit = returnValue.commit;
|
|
93
|
+
return returnValue.return;
|
|
94
|
+
}
|
|
95
|
+
} finally {
|
|
96
|
+
applyRecorderChanges(commit);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
dispose() {
|
|
100
|
+
this.disposer();
|
|
101
|
+
}
|
|
102
|
+
prepareSandboxChanges(nodes) {
|
|
103
|
+
const isNestedWithSandboxCall = !!this.withSandboxPatchRecorder;
|
|
104
|
+
const sandboxNodes = nodes.map((node) => {
|
|
105
|
+
const path = getParentToChildPath(isNestedWithSandboxCall ? this.subtreeRootClone : this.subtreeRoot, node);
|
|
106
|
+
if (!path) {
|
|
107
|
+
throw failure(`node is not a child of subtreeRoot${isNestedWithSandboxCall ? "Clone" : ""}`);
|
|
108
|
+
}
|
|
109
|
+
const sandboxNode = resolvePath(this.subtreeRootClone, path).value;
|
|
110
|
+
if (!sandboxNode) {
|
|
111
|
+
throw failure("path could not be resolved - sandbox may be out of sync with original tree");
|
|
112
|
+
}
|
|
113
|
+
return sandboxNode;
|
|
114
|
+
});
|
|
115
|
+
if (!this.withSandboxPatchRecorder) {
|
|
116
|
+
this.withSandboxPatchRecorder = patchRecorder(this.subtreeRootClone);
|
|
117
|
+
}
|
|
118
|
+
const recorder = this.withSandboxPatchRecorder;
|
|
119
|
+
const numRecorderEvents = recorder.events.length;
|
|
120
|
+
const applyRecorderChanges = (commit) => {
|
|
121
|
+
if (!isNestedWithSandboxCall) {
|
|
122
|
+
recorder.dispose();
|
|
123
|
+
this.withSandboxPatchRecorder = void 0;
|
|
124
|
+
}
|
|
125
|
+
if (commit) {
|
|
126
|
+
if (!isNestedWithSandboxCall) {
|
|
127
|
+
const patches = [];
|
|
128
|
+
const len = recorder.events.length;
|
|
129
|
+
for (let i = 0; i < len; i++) {
|
|
130
|
+
patches.push(...recorder.events[i].patches);
|
|
131
|
+
}
|
|
132
|
+
const isCommitting = this.isCommitting;
|
|
133
|
+
this.isCommitting = true;
|
|
134
|
+
try {
|
|
135
|
+
applyPatches(this.subtreeRoot, patches);
|
|
136
|
+
} finally {
|
|
137
|
+
this.isCommitting = isCommitting;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
} else {
|
|
141
|
+
this.allowWrite(() => {
|
|
142
|
+
runInAction(() => {
|
|
143
|
+
let i = recorder.events.length;
|
|
144
|
+
while (i-- > numRecorderEvents) {
|
|
145
|
+
applyPatches(this.subtreeRootClone, recorder.events[i].inversePatches, true);
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
return { sandboxNodes, applyRecorderChanges };
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
function sandbox(subtreeRoot) {
|
|
155
|
+
return new SandboxManager(subtreeRoot);
|
|
156
|
+
}
|
|
157
|
+
export { SandboxManager, getNodeSandboxManager, isSandboxedNode, sandbox };
|
|
158
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FuZGJveC5tanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmVlVXRpbHMvc2FuZGJveC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZWFjdGlvbiwgcnVuSW5BY3Rpb24gfSBmcm9tIFwibW9ieFwiXG5pbXBvcnQge1xuICByZWFkb25seU1pZGRsZXdhcmUsXG4gIFJlYWRvbmx5TWlkZGxld2FyZVJldHVybixcbn0gZnJvbSBcIi4uL2FjdGlvbk1pZGRsZXdhcmVzL3JlYWRvbmx5TWlkZGxld2FyZVwiXG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0IH0gZnJvbSBcIi4uL2NvbnRleHRcIlxuaW1wb3J0IHsgZ2V0UGFyZW50VG9DaGlsZFBhdGgsIHJlc29sdmVQYXRoIH0gZnJvbSBcIi4uL3BhcmVudC9wYXRoXCJcbmltcG9ydCB7IGFwcGx5UGF0Y2hlcyB9IGZyb20gXCIuLi9wYXRjaC9hcHBseVBhdGNoZXNcIlxuaW1wb3J0IHsgb25QYXRjaGVzIH0gZnJvbSBcIi4uL3BhdGNoL2VtaXRQYXRjaFwiXG5pbXBvcnQgdHlwZSB7IFBhdGNoIH0gZnJvbSBcIi4uL3BhdGNoL1BhdGNoXCJcbmltcG9ydCB7IFBhdGNoUmVjb3JkZXIsIHBhdGNoUmVjb3JkZXIgfSBmcm9tIFwiLi4vcGF0Y2gvcGF0Y2hSZWNvcmRlclwiXG5pbXBvcnQgeyBpc1Jvb3RTdG9yZSwgcmVnaXN0ZXJSb290U3RvcmUsIHVucmVnaXN0ZXJSb290U3RvcmUgfSBmcm9tIFwiLi4vcm9vdFN0b3JlL3Jvb3RTdG9yZVwiXG5pbXBvcnQgeyBjbG9uZSB9IGZyb20gXCIuLi9zbmFwc2hvdC9jbG9uZVwiXG5pbXBvcnQgeyBhc3NlcnRUd2Vha2VkT2JqZWN0IH0gZnJvbSBcIi4uL3R3ZWFrZXIvY29yZVwiXG5pbXBvcnQgeyBhc3NlcnRJc0Z1bmN0aW9uLCBmYWlsdXJlIH0gZnJvbSBcIi4uL3V0aWxzXCJcblxuLyoqXG4gKiBDb250ZXh0IHRoYXQgYWxsb3dzIGFjY2VzcyB0byB0aGUgc2FuZGJveCBtYW5hZ2VyIHRoaXMgbm9kZSBydW5zIHVuZGVyIChpZiBhbnkpLlxuICovXG5jb25zdCBzYW5kYm94TWFuYWdlckNvbnRleHQgPSBjcmVhdGVDb250ZXh0PFNhbmRib3hNYW5hZ2VyPigpXG5cbi8qKlxuICogUmV0dXJucyB0aGUgc2FuZGJveCBtYW5hZ2VyIG9mIGEgbm9kZSwgb3IgYHVuZGVmaW5lZGAgaWYgbm9uZS5cbiAqXG4gKiBAcGFyYW0gbm9kZSBOb2RlIHRvIGNoZWNrLlxuICogQHJldHVybnMgVGhlIHNhbmRib3ggbWFuYWdlciBvZiBhIG5vZGUsIG9yIGB1bmRlZmluZWRgIGlmIG5vbmUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXROb2RlU2FuZGJveE1hbmFnZXIobm9kZTogb2JqZWN0KTogU2FuZGJveE1hbmFnZXIgfCB1bmRlZmluZWQge1xuICByZXR1cm4gc2FuZGJveE1hbmFnZXJDb250ZXh0LmdldChub2RlKVxufVxuXG4vKipcbiAqIFJldHVybnMgaWYgYSBnaXZlbiBub2RlIGlzIGEgc2FuZGJveGVkIG5vZGUuXG4gKlxuICogQHBhcmFtIG5vZGUgTm9kZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiBpdCBpcyBzYW5kYm94ZWQsIGBmYWxzZWBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU2FuZGJveGVkTm9kZShub2RlOiBvYmplY3QpOiBib29sZWFuIHtcbiAgcmV0dXJuICEhZ2V0Tm9kZVNhbmRib3hNYW5hZ2VyKG5vZGUpXG59XG5cbi8qKlxuICogQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIGBTYW5kYm94TWFuYWdlci53aXRoU2FuZGJveGAuXG4gKi9cbmV4cG9ydCB0eXBlIFdpdGhTYW5kYm94Q2FsbGJhY2s8VCBleHRlbmRzIHJlYWRvbmx5IFtvYmplY3QsIC4uLm9iamVjdFtdXSwgUj4gPSAoXG4gIC4uLm5vZGVzOiBUXG4pID0+IGJvb2xlYW4gfCB7IGNvbW1pdDogYm9vbGVhbjsgcmV0dXJuOiBSIH1cblxuLyoqXG4gKiBNYW5hZ2VyIGNsYXNzIHJldHVybmVkIGJ5IGBzYW5kYm94YCB0aGF0IGFsbG93cyB5b3UgdG8gbWFrZSBjaGFuZ2VzIHRvIGEgc2FuZGJveCBjb3B5IG9mIHRoZVxuICogb3JpZ2luYWwgc3VidHJlZSBhbmQgYXBwbHkgdGhlbSB0byB0aGUgb3JpZ2luYWwgc3VidHJlZSBvciByZWplY3QgdGhlbS5cbiAqL1xuZXhwb3J0IGNsYXNzIFNhbmRib3hNYW5hZ2VyIHtcbiAgLyoqXG4gICAqIFRoZSBzYW5kYm94IGNvcHkgb2YgdGhlIG9yaWdpbmFsIHN1YnRyZWUuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHN1YnRyZWVSb290Q2xvbmU6IG9iamVjdFxuXG4gIC8qKlxuICAgKiBUaGUgaW50ZXJuYWwgZGlzcG9zZXIuXG4gICAqL1xuICBwcml2YXRlIGRpc3Bvc2VyOiAoKSA9PiB2b2lkXG5cbiAgLyoqXG4gICAqIFRoZSBpbnRlcm5hbCBgd2l0aFNhbmRib3hgIHBhdGNoIHJlY29yZGVyLiBJZiBgdW5kZWZpbmVkYCwgbm8gYHdpdGhTYW5kYm94YCBjYWxsIGlzIGJlaW5nXG4gICAqIGV4ZWN1dGVkLlxuICAgKi9cbiAgcHJpdmF0ZSB3aXRoU2FuZGJveFBhdGNoUmVjb3JkZXI6IFBhdGNoUmVjb3JkZXIgfCB1bmRlZmluZWRcblxuICAvKipcbiAgICogRnVuY3Rpb24gZnJvbSBgcmVhZG9ubHlNaWRkbGV3YXJlYCB0aGF0IHdpbGwgYWxsb3cgYWN0aW9ucyB0byBiZSBzdGFydGVkIGluc2lkZSB0aGUgcHJvdmlkZWRcbiAgICogY29kZSBibG9jayBvbiBhIHJlYWRvbmx5IG5vZGUuXG4gICAqL1xuICBwcml2YXRlIGFsbG93V3JpdGU6IFJlYWRvbmx5TWlkZGxld2FyZVJldHVybltcImFsbG93V3JpdGVcIl1cblxuICAvKipcbiAgICogV2hldGhlciBjaGFuZ2VzIG1hZGUgaW4gdGhlIHNhbmRib3ggYXJlIGN1cnJlbnRseSBiZWluZyBjb21taXR0ZWQgdG8gdGhlIG9yaWdpbmFsIHN1YnRyZWUuXG4gICAqL1xuICBwcml2YXRlIGlzQ29tbWl0dGluZzogYm9vbGVhbiA9IGZhbHNlXG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgYFNhbmRib3hNYW5hZ2VyYC5cbiAgICogRG8gbm90IHVzZSBkaXJlY3RseSwgdXNlIGBzYW5kYm94YCBpbnN0ZWFkLlxuICAgKlxuICAgKiBAcGFyYW0gc3VidHJlZVJvb3QgU3VidHJlZSByb290IHRhcmdldCBvYmplY3QuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHN1YnRyZWVSb290OiBvYmplY3QpIHtcbiAgICBhc3NlcnRUd2Vha2VkT2JqZWN0KHN1YnRyZWVSb290LCBcInN1YnRyZWVSb290XCIpXG5cbiAgICAvLyB3ZSB0ZW1wb3JhcmlseSBzZXQgdGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlIGNvbnRleHQgbWFuYWdlciBzbyB0aGF0XG4gICAgLy8gY2xvbmVkIG5vZGVzIGNhbiBhY2Nlc3MgaXQgd2hpbGUgaW4gdGhlaXIgb25Jbml0IHBoYXNlXG5cbiAgICBsZXQgcHJldmlvdXNDb250ZXh0RGVmYXVsdCA9IHNhbmRib3hNYW5hZ2VyQ29udGV4dC5nZXREZWZhdWx0KClcbiAgICBzYW5kYm94TWFuYWdlckNvbnRleHQuc2V0RGVmYXVsdCh0aGlzKVxuICAgIHRyeSB7XG4gICAgICB0aGlzLnN1YnRyZWVSb290Q2xvbmUgPSBjbG9uZShzdWJ0cmVlUm9vdCwgeyBnZW5lcmF0ZU5ld0lkczogZmFsc2UgfSlcbiAgICAgIHNhbmRib3hNYW5hZ2VyQ29udGV4dC5zZXQodGhpcy5zdWJ0cmVlUm9vdENsb25lLCB0aGlzKVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhyb3cgZXJyXG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHNhbmRib3hNYW5hZ2VyQ29udGV4dC5zZXREZWZhdWx0KHByZXZpb3VzQ29udGV4dERlZmF1bHQpXG4gICAgfVxuXG4gICAgbGV0IHdhc1JTID0gZmFsc2VcbiAgICBjb25zdCBkaXNwb3NlUmVhY3Rpb25SUyA9IHJlYWN0aW9uKFxuICAgICAgKCkgPT4gaXNSb290U3RvcmUoc3VidHJlZVJvb3QpLFxuICAgICAgKGlzUlMpID0+IHtcbiAgICAgICAgaWYgKGlzUlMgIT09IHdhc1JTKSB7XG4gICAgICAgICAgd2FzUlMgPSBpc1JTXG4gICAgICAgICAgaWYgKGlzUlMpIHtcbiAgICAgICAgICAgIHJlZ2lzdGVyUm9vdFN0b3JlKHRoaXMuc3VidHJlZVJvb3RDbG9uZSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdW5yZWdpc3RlclJvb3RTdG9yZSh0aGlzLnN1YnRyZWVSb290Q2xvbmUpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgeyBmaXJlSW1tZWRpYXRlbHk6IHRydWUgfVxuICAgIClcblxuICAgIGNvbnN0IGRpc3Bvc2VPblBhdGNoZXMgPSBvblBhdGNoZXMoc3VidHJlZVJvb3QsIChwYXRjaGVzKSA9PiB7XG4gICAgICBpZiAodGhpcy53aXRoU2FuZGJveFBhdGNoUmVjb3JkZXIpIHtcbiAgICAgICAgdGhyb3cgZmFpbHVyZShcIm9yaWdpbmFsIHN1YnRyZWUgbXVzdCBub3QgY2hhbmdlIHdoaWxlICd3aXRoU2FuZGJveCcgZXhlY3V0ZXNcIilcbiAgICAgIH1cbiAgICAgIGlmICghdGhpcy5pc0NvbW1pdHRpbmcpIHtcbiAgICAgICAgdGhpcy5hbGxvd1dyaXRlKCgpID0+IHtcbiAgICAgICAgICBhcHBseVBhdGNoZXModGhpcy5zdWJ0cmVlUm9vdENsb25lLCBwYXRjaGVzKVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pXG5cbiAgICBjb25zdCB7IGFsbG93V3JpdGUsIGRpc3Bvc2U6IGRpc3Bvc2VSZWFkb25seU1XIH0gPSByZWFkb25seU1pZGRsZXdhcmUodGhpcy5zdWJ0cmVlUm9vdENsb25lKVxuICAgIHRoaXMuYWxsb3dXcml0ZSA9IGFsbG93V3JpdGVcblxuICAgIHRoaXMuZGlzcG9zZXIgPSAoKSA9PiB7XG4gICAgICBkaXNwb3NlUmVhY3Rpb25SUygpXG4gICAgICBkaXNwb3NlT25QYXRjaGVzKClcbiAgICAgIGRpc3Bvc2VSZWFkb25seU1XKClcbiAgICAgIGlmIChpc1Jvb3RTdG9yZSh0aGlzLnN1YnRyZWVSb290Q2xvbmUpKSB7XG4gICAgICAgIHVucmVnaXN0ZXJSb290U3RvcmUodGhpcy5zdWJ0cmVlUm9vdENsb25lKVxuICAgICAgfVxuICAgICAgdGhpcy5kaXNwb3NlciA9ICgpID0+IHt9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGVzIGBmbmAgd2l0aCBzYW5kYm94IGNvcGllcyBvZiB0aGUgZWxlbWVudHMgb2YgYG5vZGVzYC4gVGhlIGNoYW5nZXMgbWFkZSB0byB0aGUgc2FuZGJveFxuICAgKiBpbiBgZm5gIGNhbiBiZSBhY2NlcHRlZCwgaS5lLiBhcHBsaWVkIHRvIHRoZSBvcmlnaW5hbCBzdWJ0cmVlLCBvciByZWplY3RlZC5cbiAgICpcbiAgICogQHR5cGVwYXJhbSBUIE9iamVjdCB0eXBlLlxuICAgKiBAdHlwZXBhcmFtIFIgUmV0dXJuIHR5cGUuXG4gICAqIEBwYXJhbSBub2RlcyBUdXBsZSBvZiBvYmplY3RzIGZvciB3aGljaCB0byBvYnRhaW4gc2FuZGJveCBjb3BpZXMuXG4gICAqIEBwYXJhbSBmbiBGdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCB3aXRoIHNhbmRib3ggY29waWVzIG9mIHRoZSBlbGVtZW50cyBvZiBgbm9kZXNgLiBBbnkgY2hhbmdlc1xuICAgKiBtYWRlIHRvIHRoZSBzYW5kYm94IGFyZSBhcHBsaWVkIHRvIHRoZSBvcmlnaW5hbCBzdWJ0cmVlIHdoZW4gYGZuYCByZXR1cm5zIGB0cnVlYCBvclxuICAgKiBgeyBjb21taXQ6IHRydWUsIC4uLiB9YC4gV2hlbiBgZm5gIHJldHVybnMgYGZhbHNlYCBvciBgeyBjb21taXQ6IGZhbHNlLCAuLi4gfWAgdGhlIGNoYW5nZXMgbWFkZVxuICAgKiB0byB0aGUgc2FuZGJveCBhcmUgcmVqZWN0ZWQuXG4gICAqIEByZXR1cm5zIFZhbHVlIG9mIHR5cGUgYFJgIHdoZW4gYGZuYCByZXR1cm5zIGFuIG9iamVjdCBvZiB0eXBlIGB7IGNvbW1pdDogYm9vbGVhbjsgcmV0dXJuOiBSIH1gXG4gICAqIG9yIGB2b2lkYCB3aGVuIGBmbmAgcmV0dXJucyBhIGJvb2xlYW4uXG4gICAqL1xuICB3aXRoU2FuZGJveDxUIGV4dGVuZHMgcmVhZG9ubHkgW29iamVjdCwgLi4ub2JqZWN0W11dLCBSID0gdm9pZD4oXG4gICAgbm9kZXM6IFQsXG4gICAgZm46IFdpdGhTYW5kYm94Q2FsbGJhY2s8VCwgUj5cbiAgKTogUiB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykge1xuICAgICAgYXNzZXJ0VHdlYWtlZE9iamVjdChub2Rlc1tpXSwgYG5vZGVzWyR7aX1dYClcbiAgICB9XG4gICAgYXNzZXJ0SXNGdW5jdGlvbihmbiwgXCJmblwiKVxuXG4gICAgY29uc3QgeyBzYW5kYm94Tm9kZXMsIGFwcGx5UmVjb3JkZXJDaGFuZ2VzIH0gPSB0aGlzLnByZXBhcmVTYW5kYm94Q2hhbmdlcyhub2RlcylcblxuICAgIGxldCBjb21taXQgPSBmYWxzZVxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXR1cm5WYWx1ZSA9IHRoaXMuYWxsb3dXcml0ZSgoKSA9PiBmbiguLi5zYW5kYm94Tm9kZXMpKVxuICAgICAgaWYgKHR5cGVvZiByZXR1cm5WYWx1ZSA9PT0gXCJib29sZWFuXCIpIHtcbiAgICAgICAgY29tbWl0ID0gcmV0dXJuVmFsdWVcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZCBhcyBhbnlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbW1pdCA9IHJldHVyblZhbHVlLmNvbW1pdFxuICAgICAgICByZXR1cm4gcmV0dXJuVmFsdWUucmV0dXJuXG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGFwcGx5UmVjb3JkZXJDaGFuZ2VzKGNvbW1pdClcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGlzcG9zZXMgb2YgdGhlIHNhbmRib3guXG4gICAqL1xuICBkaXNwb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzcG9zZXIoKVxuICB9XG5cbiAgcHJpdmF0ZSBwcmVwYXJlU2FuZGJveENoYW5nZXM8VCBleHRlbmRzIHJlYWRvbmx5IFtvYmplY3QsIC4uLm9iamVjdFtdXT4oXG4gICAgbm9kZXM6IFRcbiAgKTogeyBzYW5kYm94Tm9kZXM6IFQ7IGFwcGx5UmVjb3JkZXJDaGFuZ2VzOiAoY29tbWl0OiBib29sZWFuKSA9PiB2b2lkIH0ge1xuICAgIGNvbnN0IGlzTmVzdGVkV2l0aFNhbmRib3hDYWxsID0gISF0aGlzLndpdGhTYW5kYm94UGF0Y2hSZWNvcmRlclxuXG4gICAgY29uc3Qgc2FuZGJveE5vZGVzID0gbm9kZXMubWFwKChub2RlKSA9PiB7XG4gICAgICBjb25zdCBwYXRoID0gZ2V0UGFyZW50VG9DaGlsZFBhdGgoXG4gICAgICAgIGlzTmVzdGVkV2l0aFNhbmRib3hDYWxsID8gdGhpcy5zdWJ0cmVlUm9vdENsb25lIDogdGhpcy5zdWJ0cmVlUm9vdCxcbiAgICAgICAgbm9kZVxuICAgICAgKVxuICAgICAgaWYgKCFwYXRoKSB7XG4gICAgICAgIHRocm93IGZhaWx1cmUoYG5vZGUgaXMgbm90IGEgY2hpbGQgb2Ygc3VidHJlZVJvb3Qke2lzTmVzdGVkV2l0aFNhbmRib3hDYWxsID8gXCJDbG9uZVwiIDogXCJcIn1gKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBzYW5kYm94Tm9kZSA9IHJlc29sdmVQYXRoPHR5cGVvZiBub2RlPih0aGlzLnN1YnRyZWVSb290Q2xvbmUsIHBhdGgpLnZhbHVlXG4gICAgICBpZiAoIXNhbmRib3hOb2RlKSB7XG4gICAgICAgIHRocm93IGZhaWx1cmUoXCJwYXRoIGNvdWxkIG5vdCBiZSByZXNvbHZlZCAtIHNhbmRib3ggbWF5IGJlIG91dCBvZiBzeW5jIHdpdGggb3JpZ2luYWwgdHJlZVwiKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gc2FuZGJveE5vZGVcbiAgICB9KSBhcyB1bmtub3duIGFzIFRcblxuICAgIGlmICghdGhpcy53aXRoU2FuZGJveFBhdGNoUmVjb3JkZXIpIHtcbiAgICAgIHRoaXMud2l0aFNhbmRib3hQYXRjaFJlY29yZGVyID0gcGF0Y2hSZWNvcmRlcih0aGlzLnN1YnRyZWVSb290Q2xvbmUpXG4gICAgfVxuICAgIGNvbnN0IHJlY29yZGVyID0gdGhpcy53aXRoU2FuZGJveFBhdGNoUmVjb3JkZXJcbiAgICBjb25zdCBudW1SZWNvcmRlckV2ZW50cyA9IHJlY29yZGVyLmV2ZW50cy5sZW5ndGhcblxuICAgIGNvbnN0IGFwcGx5UmVjb3JkZXJDaGFuZ2VzID0gKGNvbW1pdDogYm9vbGVhbik6IHZvaWQgPT4ge1xuICAgICAgaWYgKCFpc05lc3RlZFdpdGhTYW5kYm94Q2FsbCkge1xuICAgICAgICByZWNvcmRlci5kaXNwb3NlKClcbiAgICAgICAgdGhpcy53aXRoU2FuZGJveFBhdGNoUmVjb3JkZXIgPSB1bmRlZmluZWRcbiAgICAgIH1cbiAgICAgIGlmIChjb21taXQpIHtcbiAgICAgICAgaWYgKCFpc05lc3RlZFdpdGhTYW5kYm94Q2FsbCkge1xuICAgICAgICAgIGNvbnN0IHBhdGNoZXM6IFBhdGNoW10gPSBbXVxuICAgICAgICAgIGNvbnN0IGxlbiA9IHJlY29yZGVyLmV2ZW50cy5sZW5ndGhcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgICAgICBwYXRjaGVzLnB1c2goLi4ucmVjb3JkZXIuZXZlbnRzW2ldLnBhdGNoZXMpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgaXNDb21taXR0aW5nID0gdGhpcy5pc0NvbW1pdHRpbmdcbiAgICAgICAgICB0aGlzLmlzQ29tbWl0dGluZyA9IHRydWVcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXBwbHlQYXRjaGVzKHRoaXMuc3VidHJlZVJvb3QsIHBhdGNoZXMpXG4gICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIHRoaXMuaXNDb21taXR0aW5nID0gaXNDb21taXR0aW5nXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmFsbG93V3JpdGUoKCkgPT4ge1xuICAgICAgICAgIHJ1bkluQWN0aW9uKCgpID0+IHtcbiAgICAgICAgICAgIGxldCBpID0gcmVjb3JkZXIuZXZlbnRzLmxlbmd0aFxuICAgICAgICAgICAgd2hpbGUgKGktLSA+IG51bVJlY29yZGVyRXZlbnRzKSB7XG4gICAgICAgICAgICAgIGFwcGx5UGF0Y2hlcyh0aGlzLnN1YnRyZWVSb290Q2xvbmUsIHJlY29yZGVyLmV2ZW50c1tpXS5pbnZlcnNlUGF0Y2hlcywgdHJ1ZSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7IHNhbmRib3hOb2RlcywgYXBwbHlSZWNvcmRlckNoYW5nZXMgfVxuICB9XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIHNhbmRib3guXG4gKlxuICogQHBhcmFtIHN1YnRyZWVSb290IFN1YnRyZWUgcm9vdCB0YXJnZXQgb2JqZWN0LlxuICogQHJldHVybnMgQSBgU2FuZGJveE1hbmFnZXJgIHdoaWNoIGFsbG93cyB5b3UgdG8gbWFuYWdlIHRoZSBzYW5kYm94IG9wZXJhdGlvbnMgYW5kIGRpc3Bvc2Ugb2YgdGhlXG4gKiBzYW5kYm94LlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2FuZGJveChzdWJ0cmVlUm9vdDogb2JqZWN0KTogU2FuZGJveE1hbmFnZXIge1xuICByZXR1cm4gbmV3IFNhbmRib3hNYW5hZ2VyKHN1YnRyZWVSb290KVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbUJBLE1BQU0sd0JBQXdCOytCQVFRO1NBQzdCLHNCQUFzQixJQUFJLElBQUk7QUFDdkM7eUJBUWdDO1NBQ3ZCLENBQUMsQ0FBQyxzQkFBc0IsSUFBSTtBQUNyQztNQWFhO0VBa0NYLFlBQTZCO0FBQUE7QUE5Qlo7QUFLVDtBQU1BO0FBTUE7QUFLQSx3Q0FBd0I7dUJBUUg7d0JBQ1AsYUFBYSxhQUFhO1FBSzFDLHlCQUF5QixzQkFBc0I7MEJBQzdCLFdBQVcsSUFBSTtRQUNqQztXQUNHLG1CQUFtQixNQUFNLGFBQWEsRUFBRSxnQkFBZ0IsT0FBTzs0QkFDOUMsSUFBSSxLQUFLLGtCQUFrQixJQUFJO0FBQUEsYUFDOUM7WUFDRDtBQUFBOzRCQUVnQixXQUFXLHNCQUFzQjtBQUFBO1FBR3JELFFBQVE7VUFDTixvQkFBb0IsU0FDeEIsTUFBTSxZQUFZLFdBQVcsR0FDN0IsQ0FBQztVQUNLLFNBQVMsT0FBTztnQkFDVjtZQUNKLE1BQU07NEJBQ1UsS0FBSyxnQkFBZ0I7QUFBQSxlQUNsQzs4QkFDZSxLQUFLLGdCQUFnQjtBQUFBOztPQUkvQyxFQUFFLGlCQUFpQixNQUFNO1VBR3JCLG1CQUFtQixVQUFVLGFBQWEsQ0FBQztVQUMzQyxLQUFLLDBCQUEwQjtjQUMzQixRQUFRLCtEQUErRDtBQUFBO1VBRTNFLENBQUMsS0FBSyxjQUFjO2FBQ2pCLFdBQVc7dUJBQ0QsS0FBSyxrQkFBa0IsT0FBTztBQUFBLFNBQzVDO0FBQUE7S0FFSjtVQUVLLEVBQUUsWUFBWSxTQUFTLHNCQUFzQixtQkFBbUIsS0FBSyxnQkFBZ0I7U0FDdEYsYUFBYTtTQUViLFdBQVc7Ozs7VUFJVixZQUFZLEtBQUssZ0JBQWdCLEdBQUc7NEJBQ2xCLEtBQUssZ0JBQWdCO0FBQUE7V0FFdEMsV0FBVzs7OztFQWtCcEIsWUFDRSxPQUNBO2FBRVMsSUFBSSxHQUFHLElBQUksTUFBTSxRQUFRLEtBQUs7MEJBQ2pCLE1BQU0sSUFBSSxTQUFTLElBQUk7QUFBQTtxQkFFNUIsSUFBSSxJQUFJO1VBRW5CLEVBQUUsY0FBYyx5QkFBeUIsS0FBSyxzQkFBc0IsS0FBSztRQUUzRSxTQUFTO1FBQ1Q7WUFDSSxjQUFjLEtBQUssV0FBVyxNQUFNLEdBQUcsR0FBRyxZQUFZLENBQUM7VUFDekQsT0FBTyxnQkFBZ0IsV0FBVztpQkFDM0I7ZUFDRjtBQUFBLGFBQ0Y7aUJBQ0ksWUFBWTtlQUNkLFlBQVk7QUFBQTs7MkJBR0EsTUFBTTtBQUFBOztFQU8vQjtTQUNPOztFQUdDLHNCQUNOO1VBRU0sMEJBQTBCLENBQUMsQ0FBQyxLQUFLO1VBRWpDLGVBQWUsTUFBTSxJQUFJLENBQUM7WUFDeEIsT0FBTyxxQkFDWCwwQkFBMEIsS0FBSyxtQkFBbUIsS0FBSyxhQUN2RCxJQUFJO1VBRUYsQ0FBQyxNQUFNO2NBQ0gsUUFBUSxxQ0FBcUMsMEJBQTBCLFVBQVUsSUFBSTtBQUFBO1lBR3ZGLGNBQWMsWUFBeUIsS0FBSyxrQkFBa0IsSUFBSSxFQUFFO1VBQ3RFLENBQUMsYUFBYTtjQUNWLFFBQVEsNEVBQTRFO0FBQUE7YUFHckY7QUFBQSxLQUNSO1FBRUcsQ0FBQyxLQUFLLDBCQUEwQjtXQUM3QiwyQkFBMkIsY0FBYyxLQUFLLGdCQUFnQjtBQUFBO1VBRS9ELFdBQVcsS0FBSztVQUNoQixvQkFBb0IsU0FBUyxPQUFPO1VBRXBDLHVCQUF1QixDQUFDO1VBQ3hCLENBQUMseUJBQXlCO2lCQUNuQjthQUNKLDJCQUEyQjtBQUFBO1VBRTlCLFFBQVE7WUFDTixDQUFDLHlCQUF5QjtnQkFDdEIsVUFBbUI7Z0JBQ25CLE1BQU0sU0FBUyxPQUFPO21CQUNuQixJQUFJLEdBQUcsSUFBSSxLQUFLLEtBQUs7b0JBQ3BCLEtBQUssR0FBRyxTQUFTLE9BQU8sR0FBRyxPQUFPO0FBQUE7Z0JBR3RDLGVBQWUsS0FBSztlQUNyQixlQUFlO2NBQ2hCO3lCQUNXLEtBQUssYUFBYSxPQUFPO0FBQUE7aUJBRWpDLGVBQWU7QUFBQTs7YUFHbkI7YUFDQSxXQUFXO3NCQUNGO2dCQUNOLElBQUksU0FBUyxPQUFPO21CQUNqQixNQUFNLG1CQUFtQjsyQkFDakIsS0FBSyxrQkFBa0IsU0FBUyxPQUFPLEdBQUcsZ0JBQWdCLElBQUk7QUFBQTtXQUU5RTtBQUFBLFNBQ0Y7QUFBQTs7V0FJRSxFQUFFLGNBQWM7OztpQkFXSDtTQUNmLElBQUksZUFBZSxXQUFXO0FBQ3ZDOzsifQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
var TweakerPriority;
|
|
2
|
+
(function(TweakerPriority2) {
|
|
3
|
+
TweakerPriority2[TweakerPriority2["Model"] = 0] = "Model";
|
|
4
|
+
TweakerPriority2[TweakerPriority2["Array"] = 1] = "Array";
|
|
5
|
+
TweakerPriority2[TweakerPriority2["PlainObject"] = 2] = "PlainObject";
|
|
6
|
+
TweakerPriority2[TweakerPriority2["Frozen"] = 3] = "Frozen";
|
|
7
|
+
})(TweakerPriority || (TweakerPriority = {}));
|
|
8
|
+
export { TweakerPriority };
|
|
9
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHdlYWtlclByaW9yaXR5Lm1qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R3ZWFrZXIvVHdlYWtlclByaW9yaXR5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBlbnVtIFR3ZWFrZXJQcmlvcml0eSB7XG4gIE1vZGVsLFxuICBBcnJheSxcbiAgUGxhaW5PYmplY3QsXG4gIEZyb3plbixcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiSUFHWTtVQUFBOzs7OztBQUtaLEdBTFk7OyJ9
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { runInAction } from "mobx";
|
|
2
|
+
import { dataObjectParent } from "../parent/core.mjs";
|
|
3
|
+
import { isPrimitive, failure } from "../utils/index.mjs";
|
|
4
|
+
const tweakedObjects = /* @__PURE__ */ new WeakMap();
|
|
5
|
+
function isTweakedObject(value, canBeDataObject) {
|
|
6
|
+
if (!canBeDataObject && dataObjectParent.has(value)) {
|
|
7
|
+
return false;
|
|
8
|
+
}
|
|
9
|
+
return tweakedObjects.has(value);
|
|
10
|
+
}
|
|
11
|
+
function isTreeNode(value) {
|
|
12
|
+
return !isPrimitive(value) && isTweakedObject(value, false);
|
|
13
|
+
}
|
|
14
|
+
function assertTweakedObject(treeNode, argName, canBeDataObject = false) {
|
|
15
|
+
if (!canBeDataObject && dataObjectParent.has(treeNode)) {
|
|
16
|
+
throw failure(`${argName} must be the model object instance instead of the '$' sub-object`);
|
|
17
|
+
}
|
|
18
|
+
if (isPrimitive(treeNode) || !isTweakedObject(treeNode, true)) {
|
|
19
|
+
throw failure(`${argName} must be a tree node (usually a model or a shallow / deep child part of a model 'data' object)`);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function assertIsTreeNode(value, argName = "argument") {
|
|
23
|
+
assertTweakedObject(value, argName, false);
|
|
24
|
+
}
|
|
25
|
+
let runningWithoutSnapshotOrPatches = false;
|
|
26
|
+
function runWithoutSnapshotOrPatches(fn) {
|
|
27
|
+
const old = runningWithoutSnapshotOrPatches;
|
|
28
|
+
runningWithoutSnapshotOrPatches = true;
|
|
29
|
+
try {
|
|
30
|
+
runInAction(() => {
|
|
31
|
+
fn();
|
|
32
|
+
});
|
|
33
|
+
} finally {
|
|
34
|
+
runningWithoutSnapshotOrPatches = old;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export { assertIsTreeNode, assertTweakedObject, isTreeNode, isTweakedObject, runWithoutSnapshotOrPatches, runningWithoutSnapshotOrPatches, tweakedObjects };
|
|
38
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90d2Vha2VyL2NvcmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcnVuSW5BY3Rpb24gfSBmcm9tIFwibW9ieFwiXG5pbXBvcnQgeyBkYXRhT2JqZWN0UGFyZW50IH0gZnJvbSBcIi4uL3BhcmVudC9jb3JlXCJcbmltcG9ydCB7IGZhaWx1cmUsIGlzUHJpbWl0aXZlIH0gZnJvbSBcIi4uL3V0aWxzXCJcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IHR3ZWFrZWRPYmplY3RzID0gbmV3IFdlYWtNYXA8b2JqZWN0LCB1bmRlZmluZWQgfCAoKCkgPT4gdm9pZCk+KClcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVHdlYWtlZE9iamVjdCh2YWx1ZTogdW5rbm93biwgY2FuQmVEYXRhT2JqZWN0OiBib29sZWFuKTogdmFsdWUgaXMgb2JqZWN0IHtcbiAgaWYgKCFjYW5CZURhdGFPYmplY3QgJiYgZGF0YU9iamVjdFBhcmVudC5oYXModmFsdWUgYXMgb2JqZWN0KSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIHJldHVybiB0d2Vha2VkT2JqZWN0cy5oYXModmFsdWUgYXMgb2JqZWN0KVxufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIGdpdmVuIG9iamVjdCBpcyBub3cgYSB0cmVlIG5vZGUuXG4gKlxuICogQHBhcmFtIHZhbHVlIFZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMgdHJ1ZSBpZiBpdCBpcyBhIHRyZWUgbm9kZSwgZmFsc2Ugb3RoZXJ3aXNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNUcmVlTm9kZSh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIG9iamVjdCB7XG4gIHJldHVybiAhaXNQcmltaXRpdmUodmFsdWUpICYmIGlzVHdlYWtlZE9iamVjdCh2YWx1ZSwgZmFsc2UpXG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRUd2Vha2VkT2JqZWN0KFxuICB0cmVlTm9kZTogdW5rbm93bixcbiAgYXJnTmFtZTogc3RyaW5nLFxuICBjYW5CZURhdGFPYmplY3QgPSBmYWxzZVxuKTogYXNzZXJ0cyB0cmVlTm9kZSBpcyBvYmplY3Qge1xuICBpZiAoIWNhbkJlRGF0YU9iamVjdCAmJiBkYXRhT2JqZWN0UGFyZW50Lmhhcyh0cmVlTm9kZSBhcyBvYmplY3QpKSB7XG4gICAgdGhyb3cgZmFpbHVyZShgJHthcmdOYW1lfSBtdXN0IGJlIHRoZSBtb2RlbCBvYmplY3QgaW5zdGFuY2UgaW5zdGVhZCBvZiB0aGUgJyQnIHN1Yi1vYmplY3RgKVxuICB9XG4gIGlmIChpc1ByaW1pdGl2ZSh0cmVlTm9kZSkgfHwgIWlzVHdlYWtlZE9iamVjdCh0cmVlTm9kZSwgdHJ1ZSkpIHtcbiAgICB0aHJvdyBmYWlsdXJlKFxuICAgICAgYCR7YXJnTmFtZX0gbXVzdCBiZSBhIHRyZWUgbm9kZSAodXN1YWxseSBhIG1vZGVsIG9yIGEgc2hhbGxvdyAvIGRlZXAgY2hpbGQgcGFydCBvZiBhIG1vZGVsICdkYXRhJyBvYmplY3QpYFxuICAgIClcbiAgfVxufVxuXG4vKipcbiAqIEFzc2VydHMgYSBnaXZlbiBvYmplY3QgaXMgbm93IGEgdHJlZSBub2RlLCBvciB0aHJvd3Mgb3RoZXJ3aXNlLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSBWYWx1ZSB0byBjaGVjay5cbiAqIEBwYXJhbSBhcmdOYW1lIEFyZ3VtZW50IG5hbWUsIHBhcnQgb2YgdGhlIHRocm93biBlcnJvciBkZXNjcmlwdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydElzVHJlZU5vZGUoXG4gIHZhbHVlOiB1bmtub3duLFxuICBhcmdOYW1lOiBzdHJpbmcgPSBcImFyZ3VtZW50XCJcbik6IGFzc2VydHMgdmFsdWUgaXMgb2JqZWN0IHtcbiAgYXNzZXJ0VHdlYWtlZE9iamVjdCh2YWx1ZSwgYXJnTmFtZSwgZmFsc2UpXG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBsZXQgcnVubmluZ1dpdGhvdXRTbmFwc2hvdE9yUGF0Y2hlcyA9IGZhbHNlXG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydW5XaXRob3V0U25hcHNob3RPclBhdGNoZXMoZm46ICgpID0+IHZvaWQpIHtcbiAgY29uc3Qgb2xkID0gcnVubmluZ1dpdGhvdXRTbmFwc2hvdE9yUGF0Y2hlc1xuICBydW5uaW5nV2l0aG91dFNuYXBzaG90T3JQYXRjaGVzID0gdHJ1ZVxuICB0cnkge1xuICAgIHJ1bkluQWN0aW9uKCgpID0+IHtcbiAgICAgIGZuKClcbiAgICB9KVxuICB9IGZpbmFsbHkge1xuICAgIHJ1bm5pbmdXaXRob3V0U25hcHNob3RPclBhdGNoZXMgPSBvbGRcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztNQU9hLHFDQUFxQjt5QkFLRixPQUFnQjtNQUMxQyxDQUFDLG1CQUFtQixpQkFBaUIsSUFBSSxLQUFlLEdBQUc7V0FDdEQ7QUFBQTtTQUVGLGVBQWUsSUFBSSxLQUFlO0FBQzNDO29CQVEyQjtTQUNsQixDQUFDLFlBQVksS0FBSyxLQUFLLGdCQUFnQixPQUFPLEtBQUs7QUFDNUQ7NkJBTUUsVUFDQSxTQUNBLGtCQUFrQjtNQUVkLENBQUMsbUJBQW1CLGlCQUFpQixJQUFJLFFBQWtCLEdBQUc7VUFDMUQsUUFBUSxHQUFHLHlFQUF5RTtBQUFBO01BRXhGLFlBQVksUUFBUSxLQUFLLENBQUMsZ0JBQWdCLFVBQVUsSUFBSSxHQUFHO1VBQ3ZELFFBQ0osR0FBRyx1R0FBdUc7QUFBQTtBQUdoSDswQkFTRSxPQUNBLFVBQWtCO3NCQUVFLE9BQU8sU0FBUyxLQUFLO0FBQzNDO0lBS1csa0NBQWtDO3FDQUtEO1FBQ3BDLE1BQU07b0NBQ3NCO01BQzlCO2dCQUNVOztLQUVYO0FBQUE7c0NBRWlDO0FBQUE7QUFFdEM7OyJ9
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { registerArrayTweaker } from "./tweakArray.mjs";
|
|
2
|
+
import { registerFrozenTweaker } from "./tweakFrozen.mjs";
|
|
3
|
+
import { registerModelTweaker } from "./tweakModel.mjs";
|
|
4
|
+
import { registerPlainObjectTweaker } from "./tweakPlainObject.mjs";
|
|
5
|
+
let defaultTweakersRegistered = false;
|
|
6
|
+
function registerDefaultTweakers() {
|
|
7
|
+
if (defaultTweakersRegistered) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
defaultTweakersRegistered = true;
|
|
11
|
+
registerArrayTweaker();
|
|
12
|
+
registerFrozenTweaker();
|
|
13
|
+
registerModelTweaker();
|
|
14
|
+
registerPlainObjectTweaker();
|
|
15
|
+
}
|
|
16
|
+
export { registerDefaultTweakers };
|
|
17
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXJEZWZhdWx0VHdlYWtlcnMubWpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHdlYWtlci9yZWdpc3RlckRlZmF1bHRUd2Vha2Vycy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZWdpc3RlckFycmF5VHdlYWtlciB9IGZyb20gXCIuL3R3ZWFrQXJyYXlcIlxuaW1wb3J0IHsgcmVnaXN0ZXJGcm96ZW5Ud2Vha2VyIH0gZnJvbSBcIi4vdHdlYWtGcm96ZW5cIlxuaW1wb3J0IHsgcmVnaXN0ZXJNb2RlbFR3ZWFrZXIgfSBmcm9tIFwiLi90d2Vha01vZGVsXCJcbmltcG9ydCB7IHJlZ2lzdGVyUGxhaW5PYmplY3RUd2Vha2VyIH0gZnJvbSBcIi4vdHdlYWtQbGFpbk9iamVjdFwiXG5cbmxldCBkZWZhdWx0VHdlYWtlcnNSZWdpc3RlcmVkID0gZmFsc2VcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyRGVmYXVsdFR3ZWFrZXJzKCkge1xuICBpZiAoZGVmYXVsdFR3ZWFrZXJzUmVnaXN0ZXJlZCkge1xuICAgIHJldHVyblxuICB9XG4gIGRlZmF1bHRUd2Vha2Vyc1JlZ2lzdGVyZWQgPSB0cnVlXG5cbiAgcmVnaXN0ZXJBcnJheVR3ZWFrZXIoKVxuICByZWdpc3RlckZyb3plblR3ZWFrZXIoKVxuICByZWdpc3Rlck1vZGVsVHdlYWtlcigpXG4gIHJlZ2lzdGVyUGxhaW5PYmplY3RUd2Vha2VyKClcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBS0EsSUFBSSw0QkFBNEI7O01BTTFCLDJCQUEyQjs7OzhCQUdIOzs7OztBQU05Qjs7In0=
|