mobx-keystone 0.68.0 → 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/dist/_virtual/_tslib.mjs +12 -0
- 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/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/package.json +8 -11
- 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/dist/mobx-keystone.es.js +0 -7934
- package/dist/mobx-keystone.es.mjs +0 -7934
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
export { applyAction } from "./action/applyAction.mjs";
|
|
2
|
+
export { applyDelete, internalApplyDelete } from "./action/applyDelete.mjs";
|
|
3
|
+
export { applyMethodCall, internalApplyMethodCall } from "./action/applyMethodCall.mjs";
|
|
4
|
+
export { applySet } from "./action/applySet.mjs";
|
|
5
|
+
export { BuiltInAction, isBuiltInAction } from "./action/builtInActions.mjs";
|
|
6
|
+
export { ActionContextActionType, ActionContextAsyncStepType, getCurrentActionContext, setCurrentActionContext } from "./action/context.mjs";
|
|
7
|
+
export { HookAction, isHookAction } from "./action/hookActions.mjs";
|
|
8
|
+
export { isModelAction, modelActionSymbol } from "./action/isModelAction.mjs";
|
|
9
|
+
export { addActionMiddleware, getActionMiddlewares } from "./action/middleware.mjs";
|
|
10
|
+
export { modelAction } from "./action/modelAction.mjs";
|
|
11
|
+
export { _async, _await, flow, isModelFlow, modelFlow } from "./action/modelFlow.mjs";
|
|
12
|
+
export { runUnprotected } from "./action/runUnprotected.mjs";
|
|
13
|
+
export { deserializeActionCall, deserializeActionCallArgument, registerActionCallArgumentSerializer, serializeActionCall, serializeActionCallArgument } from "./actionMiddlewares/actionSerialization/actionSerialization.mjs";
|
|
14
|
+
export { applySerializedActionAndSyncNewModelIds, applySerializedActionAndTrackNewModelIds } from "./actionMiddlewares/actionSerialization/applySerializedAction.mjs";
|
|
15
|
+
export { cannotSerialize } from "./actionMiddlewares/actionSerialization/core.mjs";
|
|
16
|
+
export { ActionTrackingResult, actionTrackingMiddleware, simplifyActionContext } from "./actionMiddlewares/actionTrackingMiddleware.mjs";
|
|
17
|
+
export { onActionMiddleware } from "./actionMiddlewares/onActionMiddleware.mjs";
|
|
18
|
+
export { readonlyMiddleware } from "./actionMiddlewares/readonlyMiddleware.mjs";
|
|
19
|
+
export { transaction, transactionMiddleware } from "./actionMiddlewares/transactionMiddleware.mjs";
|
|
20
|
+
export { UndoEventType, UndoManager, UndoStore, isGlobalUndoRecordingDisabled, undoMiddleware, withoutUndo } from "./actionMiddlewares/undoMiddleware.mjs";
|
|
21
|
+
export { computedTree, isComputedTreeNode } from "./computedTree/computedTree.mjs";
|
|
22
|
+
export { createContext } from "./context/context.mjs";
|
|
23
|
+
export { BaseDataModel, baseDataModelPropNames } from "./dataModel/BaseDataModel.mjs";
|
|
24
|
+
export { DataModel, ExtendedDataModel } from "./dataModel/DataModel.mjs";
|
|
25
|
+
export { getDataModelMetadata } from "./dataModel/getDataModelMetadata.mjs";
|
|
26
|
+
export { assertIsDataModel, assertIsDataModelClass, isDataModel, isDataModelClass } from "./dataModel/utils.mjs";
|
|
27
|
+
export { Frozen, FrozenCheckMode, frozen, frozenKey, isFrozenSnapshot } from "./frozen/Frozen.mjs";
|
|
28
|
+
export { ModelAutoTypeCheckingMode, getGlobalConfig, isModelAutoTypeCheckingEnabled, setGlobalConfig } from "./globalConfig/globalConfig.mjs";
|
|
29
|
+
export { BaseModel, abstractModelClass, baseModelPropNames, modelIdPropertyNameSymbol, modelSnapshotInWithMetadata, modelSnapshotOutWithMetadata } from "./model/BaseModel.mjs";
|
|
30
|
+
export { getModelIdPropertyName, getModelMetadata } from "./model/getModelMetadata.mjs";
|
|
31
|
+
export { isReservedModelKey, modelIdKey, modelTypeKey } from "./model/metadata.mjs";
|
|
32
|
+
export { ExtendedModel, Model } from "./model/Model.mjs";
|
|
33
|
+
export { assertIsModel, assertIsModelClass, isModel, isModelClass, isModelSnapshot } from "./model/utils.mjs";
|
|
34
|
+
export { fromSnapshotOverrideTypeSymbol, modelClass, modelInitializedSymbol, propsTypeSymbol, toSnapshotOverrideTypeSymbol } from "./modelShared/BaseModelShared.mjs";
|
|
35
|
+
export { decoratedModel, model } from "./modelShared/modelDecorator.mjs";
|
|
36
|
+
export { idProp, noDefaultValue, prop } from "./modelShared/prop.mjs";
|
|
37
|
+
export { detach } from "./parent/detach.mjs";
|
|
38
|
+
export { findChildren } from "./parent/findChildren.mjs";
|
|
39
|
+
export { findParent, findParentPath } from "./parent/findParent.mjs";
|
|
40
|
+
export { getChildrenObjects } from "./parent/getChildrenObjects.mjs";
|
|
41
|
+
export { onChildAttachedTo } from "./parent/onChildAttachedTo.mjs";
|
|
42
|
+
export { fastGetParent, fastGetParentIncludingDataObjects, fastGetParentPath, fastGetParentPathIncludingDataObjects, fastGetRoot, fastGetRootPath, fastIsModelDataObject, getParent, getParentPath, getParentToChildPath, getRoot, getRootPath, isModelDataObject, isRoot, resolvePath, resolvePathCheckingIds, skipIdChecking } from "./parent/path.mjs";
|
|
43
|
+
export { isChildOfParent, isParentOfChild } from "./parent/path2.mjs";
|
|
44
|
+
export { WalkTreeMode, computedWalkTreeAggregate, walkTree } from "./parent/walkTree.mjs";
|
|
45
|
+
export { applyPatches, internalApplyPatches } from "./patch/applyPatches.mjs";
|
|
46
|
+
export { InternalPatchRecorder, onGlobalPatches, onPatches } from "./patch/emitPatch.mjs";
|
|
47
|
+
export { jsonPatchToPatch, jsonPointerToPath, patchToJsonPatch, pathToJsonPointer } from "./patch/jsonPatch.mjs";
|
|
48
|
+
export { internalPatchRecorder, patchRecorder } from "./patch/patchRecorder.mjs";
|
|
49
|
+
export { connectReduxDevTools } from "./redux/connectReduxDevTools.mjs";
|
|
50
|
+
export { actionCallToReduxAction, asReduxStore, reduxActionType } from "./redux/redux.mjs";
|
|
51
|
+
export { getModelRefId, getRefsResolvingTo, internalCustomRef, resolveId } from "./ref/core.mjs";
|
|
52
|
+
export { customRef } from "./ref/customRef.mjs";
|
|
53
|
+
export { Ref, isRefOfType } from "./ref/Ref.mjs";
|
|
54
|
+
export { rootRef } from "./ref/rootRef.mjs";
|
|
55
|
+
export { fastGetRootStore, fastIsRootStore, getRootStore, isRootStore, registerRootStore, unregisterRootStore } from "./rootStore/rootStore.mjs";
|
|
56
|
+
export { applySnapshot, internalApplySnapshot } from "./snapshot/applySnapshot.mjs";
|
|
57
|
+
export { clone } from "./snapshot/clone.mjs";
|
|
58
|
+
export { fromSnapshot, internalFromSnapshot, observableOptions, registerSnapshotter } from "./snapshot/fromSnapshot.mjs";
|
|
59
|
+
export { getSnapshot } from "./snapshot/getSnapshot.mjs";
|
|
60
|
+
export { onSnapshot } from "./snapshot/onSnapshot.mjs";
|
|
61
|
+
export { arrayActions } from "./standardActions/arrayActions.mjs";
|
|
62
|
+
export { objectActions } from "./standardActions/objectActions.mjs";
|
|
63
|
+
export { standaloneAction, standaloneFlow } from "./standardActions/standaloneActions.mjs";
|
|
64
|
+
export { arrayToMapTransform, objectToMapTransform } from "./transforms/asMap.mjs";
|
|
65
|
+
export { arrayToSetTransform } from "./transforms/asSet.mjs";
|
|
66
|
+
export { stringToBigIntTransform } from "./transforms/bigint.mjs";
|
|
67
|
+
export { isoStringToDateTransform, timestampToDateTransform } from "./transforms/date.mjs";
|
|
68
|
+
export { deepEquals } from "./treeUtils/deepEquals.mjs";
|
|
69
|
+
export { Draft, draft } from "./treeUtils/draft.mjs";
|
|
70
|
+
export { SandboxManager, getNodeSandboxManager, isSandboxedNode, sandbox } from "./treeUtils/sandbox.mjs";
|
|
71
|
+
export { assertIsTreeNode, assertTweakedObject, isTreeNode, isTweakedObject, runWithoutSnapshotOrPatches, runningWithoutSnapshotOrPatches, tweakedObjects } from "./tweaker/core.mjs";
|
|
72
|
+
export { registerTweaker, toTreeNode, tryUntweak, tweak } from "./tweaker/tweak.mjs";
|
|
73
|
+
export { tProp } from "./types/tProp.mjs";
|
|
74
|
+
export { typeCheck } from "./types/typeCheck.mjs";
|
|
75
|
+
export { TypeCheckError } from "./types/TypeCheckError.mjs";
|
|
76
|
+
export { types } from "./types/types.mjs";
|
|
77
|
+
export { MobxKeystoneError, addHiddenProp, addLateInitializationFunction, assertIsFunction, assertIsMap, assertIsObject, assertIsObservableArray, assertIsObservableObject, assertIsPlainObject, assertIsPrimitive, assertIsSet, assertIsString, decorateWrapMethodOrField, deleteFromArray, failure, getMobxVersion, identityFn, inDevMode, isArray, isJSONPrimitive, isMap, isObject, isPlainObject, isPrimitive, isSet, lazy, logWarning, makePropReadonly, mobx6, namespace, propNameToSetterName, runAfterNewSymbol, runBeforeOnInitSymbol, runLateInitializationFunctions } from "./utils/index.mjs";
|
|
78
|
+
export { tag } from "./utils/tag.mjs";
|
|
79
|
+
export { ArraySet, arraySet } from "./wrappers/ArraySet.mjs";
|
|
80
|
+
export { asMap, mapToArray, mapToObject } from "./wrappers/asMap.mjs";
|
|
81
|
+
export { asSet, setToArray } from "./wrappers/asSet.mjs";
|
|
82
|
+
export { ObjectMap, objectMap } from "./wrappers/ObjectMap.mjs";
|
|
83
|
+
export { getTypeInfo } from "./types/getTypeInfo.mjs";
|
|
84
|
+
export { TypeInfo } from "./types/TypeChecker.mjs";
|
|
85
|
+
export { BooleanTypeInfo, LiteralTypeInfo, NumberTypeInfo, StringTypeInfo } from "./types/primitiveBased/primitives.mjs";
|
|
86
|
+
export { FrozenTypeInfo, ObjectTypeInfo } from "./types/objectBased/object.mjs";
|
|
87
|
+
export { ObjectMapTypeInfo } from "./types/objectBased/objectMap.mjs";
|
|
88
|
+
export { RefinementTypeInfo } from "./types/utility/refinement.mjs";
|
|
89
|
+
export { RecordTypeInfo } from "./types/objectBased/record.mjs";
|
|
90
|
+
export { RefTypeInfo } from "./types/objectBased/ref.mjs";
|
|
91
|
+
export { UncheckedTypeInfo } from "./types/utility/unchecked.mjs";
|
|
92
|
+
export { ArraySetTypeInfo } from "./types/objectBased/arraySet.mjs";
|
|
93
|
+
export { ArrayTypeInfo } from "./types/arrayBased/array.mjs";
|
|
94
|
+
export { ModelTypeInfo } from "./types/objectBased/model.mjs";
|
|
95
|
+
export { OrTypeInfo } from "./types/utility/or.mjs";
|
|
96
|
+
export { TupleTypeInfo } from "./types/arrayBased/tuple.mjs";
|
|
97
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgubWpzIiwic291cmNlcyI6W10sInNvdXJjZXNDb250ZW50IjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyJ9
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defProps = Object.defineProperties;
|
|
3
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
+
var __spreadValues = (a, b) => {
|
|
9
|
+
for (var prop in b || (b = {}))
|
|
10
|
+
if (__hasOwnProp.call(b, prop))
|
|
11
|
+
__defNormalProp(a, prop, b[prop]);
|
|
12
|
+
if (__getOwnPropSymbols)
|
|
13
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
+
if (__propIsEnum.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
}
|
|
17
|
+
return a;
|
|
18
|
+
};
|
|
19
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
+
var __publicField = (obj, key, value) => {
|
|
21
|
+
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
22
|
+
return value;
|
|
23
|
+
};
|
|
24
|
+
var _a, _b, _c, _d, _e;
|
|
25
|
+
import { observable } from "mobx";
|
|
26
|
+
import { propsTypeSymbol, fromSnapshotOverrideTypeSymbol, toSnapshotOverrideTypeSymbol } from "../modelShared/BaseModelShared.mjs";
|
|
27
|
+
import { modelInfoByClass } from "../modelShared/modelInfo.mjs";
|
|
28
|
+
import { getSnapshot } from "../snapshot/getSnapshot.mjs";
|
|
29
|
+
import { typesModel } from "../types/objectBased/model.mjs";
|
|
30
|
+
import { typeCheck } from "../types/typeCheck.mjs";
|
|
31
|
+
import { failure, assertIsObject } from "../utils/index.mjs";
|
|
32
|
+
import { getModelIdPropertyName } from "./getModelMetadata.mjs";
|
|
33
|
+
import { modelTypeKey, modelIdKey } from "./metadata.mjs";
|
|
34
|
+
import { internalNewModel } from "./newModel.mjs";
|
|
35
|
+
import { assertIsModelClass } from "./utils.mjs";
|
|
36
|
+
const modelIdPropertyNameSymbol = Symbol("modelIdPropertyName");
|
|
37
|
+
class BaseModel {
|
|
38
|
+
constructor(data) {
|
|
39
|
+
__publicField(this, _a);
|
|
40
|
+
__publicField(this, _b);
|
|
41
|
+
__publicField(this, _c);
|
|
42
|
+
__publicField(this, _d);
|
|
43
|
+
__publicField(this, _e);
|
|
44
|
+
__publicField(this, "$");
|
|
45
|
+
let initialData = data;
|
|
46
|
+
const { snapshotInitialData, modelClass, generateNewIds } = arguments[1];
|
|
47
|
+
Object.setPrototypeOf(this, modelClass.prototype);
|
|
48
|
+
const self = this;
|
|
49
|
+
delete self[propsTypeSymbol];
|
|
50
|
+
delete self[fromSnapshotOverrideTypeSymbol];
|
|
51
|
+
delete self[toSnapshotOverrideTypeSymbol];
|
|
52
|
+
delete self[modelIdPropertyNameSymbol];
|
|
53
|
+
if (!snapshotInitialData) {
|
|
54
|
+
assertIsObject(initialData, "initialData");
|
|
55
|
+
internalNewModel(this, observable.object(initialData, void 0, { deep: false }), {
|
|
56
|
+
modelClass,
|
|
57
|
+
generateNewIds: true
|
|
58
|
+
});
|
|
59
|
+
} else {
|
|
60
|
+
internalNewModel(this, void 0, { modelClass, snapshotInitialData, generateNewIds });
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
get [(_a = propsTypeSymbol, _b = fromSnapshotOverrideTypeSymbol, _c = toSnapshotOverrideTypeSymbol, _d = modelIdPropertyNameSymbol, _e = modelTypeKey, modelIdKey)]() {
|
|
64
|
+
const idProp = getModelIdPropertyName(this.constructor);
|
|
65
|
+
return idProp ? this.$[idProp] : void 0;
|
|
66
|
+
}
|
|
67
|
+
set [modelIdKey](newId) {
|
|
68
|
+
const idProp = getModelIdPropertyName(this.constructor);
|
|
69
|
+
if (!idProp) {
|
|
70
|
+
throw failure("$modelId cannot be set when there is no idProp set in the model");
|
|
71
|
+
}
|
|
72
|
+
this.$[idProp] = newId;
|
|
73
|
+
}
|
|
74
|
+
getRefId() {
|
|
75
|
+
return this[modelIdKey];
|
|
76
|
+
}
|
|
77
|
+
typeCheck() {
|
|
78
|
+
const type = typesModel(this.constructor);
|
|
79
|
+
return typeCheck(type, this);
|
|
80
|
+
}
|
|
81
|
+
toString(options) {
|
|
82
|
+
const finalOptions = __spreadValues({
|
|
83
|
+
withData: true
|
|
84
|
+
}, options);
|
|
85
|
+
const firstPart = `${this.constructor.name}#${this[modelTypeKey]}`;
|
|
86
|
+
return finalOptions.withData ? `[${firstPart} ${JSON.stringify(getSnapshot(this))}]` : `[${firstPart}]`;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
const baseModelPropNames = /* @__PURE__ */ new Set([
|
|
90
|
+
modelTypeKey,
|
|
91
|
+
modelIdKey,
|
|
92
|
+
"onInit",
|
|
93
|
+
"$",
|
|
94
|
+
"getRefId",
|
|
95
|
+
"onAttachedToRootStore",
|
|
96
|
+
"typeCheck"
|
|
97
|
+
]);
|
|
98
|
+
function abstractModelClass(type) {
|
|
99
|
+
return type;
|
|
100
|
+
}
|
|
101
|
+
function modelSnapshotInWithMetadata(modelClass, snapshot) {
|
|
102
|
+
assertIsModelClass(modelClass, "modelClass");
|
|
103
|
+
assertIsObject(snapshot, "initialData");
|
|
104
|
+
const modelInfo = modelInfoByClass.get(modelClass);
|
|
105
|
+
return __spreadProps(__spreadValues({}, snapshot), {
|
|
106
|
+
[modelTypeKey]: modelInfo.name
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
function modelSnapshotOutWithMetadata(modelClass, snapshot) {
|
|
110
|
+
assertIsModelClass(modelClass, "modelClass");
|
|
111
|
+
assertIsObject(snapshot, "initialData");
|
|
112
|
+
const modelInfo = modelInfoByClass.get(modelClass);
|
|
113
|
+
return __spreadProps(__spreadValues({}, snapshot), {
|
|
114
|
+
[modelTypeKey]: modelInfo.name
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
export { BaseModel, abstractModelClass, baseModelPropNames, modelIdPropertyNameSymbol, modelSnapshotInWithMetadata, modelSnapshotOutWithMetadata };
|
|
118
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzZU1vZGVsLm1qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZGVsL0Jhc2VNb2RlbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBvYnNlcnZhYmxlIH0gZnJvbSBcIm1vYnhcIlxuaW1wb3J0IHtcbiAgZnJvbVNuYXBzaG90T3ZlcnJpZGVUeXBlU3ltYm9sLFxuICBNb2RlbENsYXNzLFxuICBwcm9wc1R5cGVTeW1ib2wsXG4gIHRvU25hcHNob3RPdmVycmlkZVR5cGVTeW1ib2wsXG59IGZyb20gXCIuLi9tb2RlbFNoYXJlZC9CYXNlTW9kZWxTaGFyZWRcIlxuaW1wb3J0IHsgbW9kZWxJbmZvQnlDbGFzcyB9IGZyb20gXCIuLi9tb2RlbFNoYXJlZC9tb2RlbEluZm9cIlxuaW1wb3J0IHR5cGUge1xuICBNb2RlbFByb3BzLFxuICBNb2RlbFByb3BzVG9EYXRhLFxuICBNb2RlbFByb3BzVG9UcmFuc2Zvcm1lZENyZWF0aW9uRGF0YSxcbn0gZnJvbSBcIi4uL21vZGVsU2hhcmVkL3Byb3BcIlxuaW1wb3J0IHsgZ2V0U25hcHNob3QgfSBmcm9tIFwiLi4vc25hcHNob3QvZ2V0U25hcHNob3RcIlxuaW1wb3J0IHR5cGUgeyBTbmFwc2hvdEluT2ZNb2RlbCwgU25hcHNob3RPdXRPZk1vZGVsIH0gZnJvbSBcIi4uL3NuYXBzaG90L1NuYXBzaG90T2ZcIlxuaW1wb3J0IHsgdHlwZXNNb2RlbCB9IGZyb20gXCIuLi90eXBlcy9vYmplY3RCYXNlZC9tb2RlbFwiXG5pbXBvcnQgeyB0eXBlQ2hlY2sgfSBmcm9tIFwiLi4vdHlwZXMvdHlwZUNoZWNrXCJcbmltcG9ydCB0eXBlIHsgVHlwZUNoZWNrRXJyb3IgfSBmcm9tIFwiLi4vdHlwZXMvVHlwZUNoZWNrRXJyb3JcIlxuaW1wb3J0IHsgYXNzZXJ0SXNPYmplY3QsIGZhaWx1cmUgfSBmcm9tIFwiLi4vdXRpbHNcIlxuaW1wb3J0IHsgZ2V0TW9kZWxJZFByb3BlcnR5TmFtZSB9IGZyb20gXCIuL2dldE1vZGVsTWV0YWRhdGFcIlxuaW1wb3J0IHsgbW9kZWxJZEtleSwgbW9kZWxUeXBlS2V5IH0gZnJvbSBcIi4vbWV0YWRhdGFcIlxuaW1wb3J0IHR5cGUgeyBNb2RlbENvbnN0cnVjdG9yT3B0aW9ucyB9IGZyb20gXCIuL01vZGVsQ29uc3RydWN0b3JPcHRpb25zXCJcbmltcG9ydCB7IGludGVybmFsTmV3TW9kZWwgfSBmcm9tIFwiLi9uZXdNb2RlbFwiXG5pbXBvcnQgeyBhc3NlcnRJc01vZGVsQ2xhc3MgfSBmcm9tIFwiLi91dGlsc1wiXG5cbi8qKlxuICogQGlnbm9yZVxuICovXG5leHBvcnQgY29uc3QgbW9kZWxJZFByb3BlcnR5TmFtZVN5bWJvbCA9IFN5bWJvbChcIm1vZGVsSWRQcm9wZXJ0eU5hbWVcIilcblxuLyoqXG4gKiBCYXNlIGFic3RyYWN0IGNsYXNzIGZvciBtb2RlbHMuIFVzZSBgTW9kZWxgIGluc3RlYWQgd2hlbiBleHRlbmRpbmcuXG4gKlxuICogTmV2ZXIgb3ZlcnJpZGUgdGhlIGNvbnN0cnVjdG9yLCB1c2UgYG9uSW5pdGAgb3IgYG9uQXR0YWNoZWRUb1Jvb3RTdG9yZWAgaW5zdGVhZC5cbiAqXG4gKiBAdHlwZXBhcmFtIERhdGEgRGF0YSB0eXBlLlxuICogQHR5cGVwYXJhbSBDcmVhdGlvbkRhdGEgQ3JlYXRpb24gZGF0YSB0eXBlLlxuICogQHR5cGVwYXJhbSBNb2RlbElkUHJvcGVydHlOYW1lIE1vZGVsIGlkIHByb3BlcnR5IG5hbWUuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlTW9kZWw8XG4gIFRQcm9wcyBleHRlbmRzIE1vZGVsUHJvcHMsXG4gIEZyb21TbmFwc2hvdE92ZXJyaWRlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PixcbiAgVG9TbmFwc2hvdE92ZXJyaWRlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PixcbiAgTW9kZWxJZFByb3BlcnR5TmFtZSBleHRlbmRzIHN0cmluZyA9IG5ldmVyXG4+IHtcbiAgLy8ganVzdCB0byBtYWtlIHR5cGluZyB3b3JrIHByb3Blcmx5XG4gIFtwcm9wc1R5cGVTeW1ib2xdITogVFByb3BzO1xuICBbZnJvbVNuYXBzaG90T3ZlcnJpZGVUeXBlU3ltYm9sXSE6IEZyb21TbmFwc2hvdE92ZXJyaWRlO1xuICBbdG9TbmFwc2hvdE92ZXJyaWRlVHlwZVN5bWJvbF0hOiBUb1NuYXBzaG90T3ZlcnJpZGU7XG4gIFttb2RlbElkUHJvcGVydHlOYW1lU3ltYm9sXSE6IE1vZGVsSWRQcm9wZXJ0eU5hbWU7XG5cbiAgLyoqXG4gICAqIE1vZGVsIHR5cGUgbmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IFttb2RlbFR5cGVLZXldITogc3RyaW5nXG5cbiAgLyoqXG4gICAqIE1vZGVsIGludGVybmFsIGlkLiBDYW4gYmUgbW9kaWZpZWQgaW5zaWRlIGEgbW9kZWwgYWN0aW9uLlxuICAgKiBJdCB3aWxsIHJldHVybiBgdW5kZWZpbmVkYCBpZiB0aGVyZSdzIG5vIGlkIHByb3Agc2V0LlxuICAgKi9cbiAgZ2V0IFttb2RlbElkS2V5XSgpOiBbTW9kZWxJZFByb3BlcnR5TmFtZV0gZXh0ZW5kcyBbbmV2ZXJdID8gbmV2ZXIgOiBzdHJpbmcge1xuICAgIGNvbnN0IGlkUHJvcCA9IGdldE1vZGVsSWRQcm9wZXJ0eU5hbWUodGhpcy5jb25zdHJ1Y3RvciBhcyBhbnkpXG4gICAgcmV0dXJuIGlkUHJvcCA/IHRoaXMuJFtpZFByb3BdIDogKHVuZGVmaW5lZCBhcyBhbnkpXG4gIH1cblxuICBzZXQgW21vZGVsSWRLZXldKG5ld0lkOiBbTW9kZWxJZFByb3BlcnR5TmFtZV0gZXh0ZW5kcyBbbmV2ZXJdID8gbmV2ZXIgOiBzdHJpbmcpIHtcbiAgICBjb25zdCBpZFByb3AgPSBnZXRNb2RlbElkUHJvcGVydHlOYW1lKHRoaXMuY29uc3RydWN0b3IgYXMgYW55KVxuICAgIGlmICghaWRQcm9wKSB7XG4gICAgICB0aHJvdyBmYWlsdXJlKFwiJG1vZGVsSWQgY2Fubm90IGJlIHNldCB3aGVuIHRoZXJlIGlzIG5vIGlkUHJvcCBzZXQgaW4gdGhlIG1vZGVsXCIpXG4gICAgfVxuICAgIDsodGhpcy4kIGFzIGFueSlbaWRQcm9wXSA9IG5ld0lkXG4gIH1cblxuICAvKipcbiAgICogQ2FuIGJlIG92ZXJyaWRkZW4gdG8gb2ZmZXIgYSByZWZlcmVuY2UgaWQgdG8gYmUgdXNlZCBpbiByZWZlcmVuY2UgcmVzb2x1dGlvbi5cbiAgICogQnkgZGVmYXVsdCBpdCB3aWxsIHVzZSB0aGUgYGlkUHJvcGAgaWYgYXZhaWxhYmxlIG9yIHJldHVybiBgdW5kZWZpbmVkYCBvdGhlcndpc2UuXG4gICAqL1xuICBnZXRSZWZJZCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzW21vZGVsSWRLZXldXG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIGFmdGVyIHRoZSBtb2RlbCBoYXMgYmVlbiBjcmVhdGVkLlxuICAgKi9cbiAgcHJvdGVjdGVkIG9uSW5pdD8oKTogdm9pZFxuXG4gIC8qKlxuICAgKiBEYXRhIHBhcnQgb2YgdGhlIG1vZGVsLCB3aGljaCBpcyBvYnNlcnZhYmxlIGFuZCB3aWxsIGJlIHNlcmlhbGl6ZWQgaW4gc25hcHNob3RzLlxuICAgKiBVc2UgaXQgaWYgb25lIG9mIHRoZSBkYXRhIHByb3BlcnRpZXMgbWF0Y2hlcyBvbmUgb2YgdGhlIG1vZGVsIHByb3BlcnRpZXMvZnVuY3Rpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgJCE6IE1vZGVsUHJvcHNUb0RhdGE8VFByb3BzPlxuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBob29rIHRoYXQgd2lsbCBydW4gb25jZSB0aGlzIG1vZGVsIGluc3RhbmNlIGlzIGF0dGFjaGVkIHRvIHRoZSB0cmVlIG9mIGEgbW9kZWwgbWFya2VkIGFzXG4gICAqIHJvb3Qgc3RvcmUgdmlhIGByZWdpc3RlclJvb3RTdG9yZWAuXG4gICAqIEJhc2ljYWxseSB0aGlzIGlzIHRoZSBwbGFjZSB3aGVyZSB5b3Uga25vdyB0aGUgZnVsbCByb290IHN0b3JlIGlzIGNvbXBsZXRlIGFuZCB3aGVyZSB0aGluZ3Mgc3VjaCBhc1xuICAgKiBtaWRkbGV3YXJlcywgZWZmZWN0cyAocmVhY3Rpb25zLCBldGMpLCBhbmQgb3RoZXIgc2lkZSBlZmZlY3RzIHNob3VsZCBiZSByZWdpc3RlcmVkLCBzaW5jZSBpdCBtZWFuc1xuICAgKiB0aGF0IHRoZSBtb2RlbCBpcyBub3cgcGFydCBvZiB0aGUgYWN0aXZlIGFwcGxpY2F0aW9uIHN0YXRlLlxuICAgKlxuICAgKiBJdCBjYW4gcmV0dXJuIGEgZGlzcG9zZXIgdGhhdCB3aWxsIGJlIHJ1biBvbmNlIHRoaXMgbW9kZWwgaW5zdGFuY2UgaXMgZGV0YWNoZWQgZnJvbSBzdWNoIHJvb3Qgc3RvcmUgdHJlZS5cbiAgICpcbiAgICogQHBhcmFtIHJvb3RTdG9yZVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHJvdGVjdGVkIG9uQXR0YWNoZWRUb1Jvb3RTdG9yZT8ocm9vdFN0b3JlOiBvYmplY3QpOiAoKCkgPT4gdm9pZCkgfCB2b2lkXG5cbiAgLyoqXG4gICAqIFBlcmZvcm1zIGEgdHlwZSBjaGVjayBvdmVyIHRoZSBtb2RlbCBpbnN0YW5jZS5cbiAgICogRm9yIHRoaXMgdG8gd29yayBhIGRhdGEgdHlwZSBoYXMgdG8gYmUgZGVjbGFyZWQgYXMgcGFydCBvZiB0aGUgbW9kZWwgcHJvcGVydGllcy5cbiAgICpcbiAgICogQHJldHVybnMgQSBgVHlwZUNoZWNrRXJyb3JgIG9yIGBudWxsYCBpZiB0aGVyZSBpcyBubyBlcnJvci5cbiAgICovXG4gIHR5cGVDaGVjaygpOiBUeXBlQ2hlY2tFcnJvciB8IG51bGwge1xuICAgIGNvbnN0IHR5cGUgPSB0eXBlc01vZGVsPHRoaXM+KHRoaXMuY29uc3RydWN0b3IgYXMgYW55KVxuICAgIHJldHVybiB0eXBlQ2hlY2sodHlwZSwgdGhpcyBhcyBhbnkpXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBhIG1vZGVsLlxuICAgKi9cbiAgY29uc3RydWN0b3IoZGF0YTogTW9kZWxQcm9wc1RvVHJhbnNmb3JtZWRDcmVhdGlvbkRhdGE8VFByb3BzPikge1xuICAgIGxldCBpbml0aWFsRGF0YSA9IGRhdGEgYXMgYW55XG4gICAgY29uc3QgeyBzbmFwc2hvdEluaXRpYWxEYXRhLCBtb2RlbENsYXNzLCBnZW5lcmF0ZU5ld0lkcyB9OiBNb2RlbENvbnN0cnVjdG9yT3B0aW9ucyA9XG4gICAgICBhcmd1bWVudHNbMV0gYXMgYW55XG5cbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgbW9kZWxDbGFzcyEucHJvdG90eXBlKVxuXG4gICAgY29uc3Qgc2VsZiA9IHRoaXMgYXMgYW55XG5cbiAgICAvLyBkZWxldGUgdW5uZWNlc3NhcnkgcHJvcHNcbiAgICBkZWxldGUgc2VsZltwcm9wc1R5cGVTeW1ib2xdXG4gICAgZGVsZXRlIHNlbGZbZnJvbVNuYXBzaG90T3ZlcnJpZGVUeXBlU3ltYm9sXVxuICAgIGRlbGV0ZSBzZWxmW3RvU25hcHNob3RPdmVycmlkZVR5cGVTeW1ib2xdXG4gICAgZGVsZXRlIHNlbGZbbW9kZWxJZFByb3BlcnR5TmFtZVN5bWJvbF1cblxuICAgIGlmICghc25hcHNob3RJbml0aWFsRGF0YSkge1xuICAgICAgLy8gcGxhaW4gbmV3XG4gICAgICBhc3NlcnRJc09iamVjdChpbml0aWFsRGF0YSwgXCJpbml0aWFsRGF0YVwiKVxuXG4gICAgICBpbnRlcm5hbE5ld01vZGVsKHRoaXMsIG9ic2VydmFibGUub2JqZWN0KGluaXRpYWxEYXRhIGFzIGFueSwgdW5kZWZpbmVkLCB7IGRlZXA6IGZhbHNlIH0pLCB7XG4gICAgICAgIG1vZGVsQ2xhc3MsXG4gICAgICAgIGdlbmVyYXRlTmV3SWRzOiB0cnVlLFxuICAgICAgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gZnJvbSBzbmFwc2hvdFxuICAgICAgaW50ZXJuYWxOZXdNb2RlbCh0aGlzLCB1bmRlZmluZWQsIHsgbW9kZWxDbGFzcywgc25hcHNob3RJbml0aWFsRGF0YSwgZ2VuZXJhdGVOZXdJZHMgfSlcbiAgICB9XG4gIH1cblxuICB0b1N0cmluZyhvcHRpb25zPzogeyB3aXRoRGF0YT86IGJvb2xlYW4gfSkge1xuICAgIGNvbnN0IGZpbmFsT3B0aW9ucyA9IHtcbiAgICAgIHdpdGhEYXRhOiB0cnVlLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9XG5cbiAgICBjb25zdCBmaXJzdFBhcnQgPSBgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9IyR7dGhpc1ttb2RlbFR5cGVLZXldfWBcblxuICAgIHJldHVybiBmaW5hbE9wdGlvbnMud2l0aERhdGFcbiAgICAgID8gYFske2ZpcnN0UGFydH0gJHtKU09OLnN0cmluZ2lmeShnZXRTbmFwc2hvdCh0aGlzKSl9XWBcbiAgICAgIDogYFske2ZpcnN0UGFydH1dYFxuICB9XG59XG5cbi8qKlxuICogQGlnbm9yZVxuICovXG5leHBvcnQgdHlwZSBCYXNlTW9kZWxLZXlzID0ga2V5b2YgQW55TW9kZWwgfCBcIm9uSW5pdFwiIHwgXCJvbkF0dGFjaGVkVG9Sb290U3RvcmVcIlxuXG4vLyB0aGVzZSBwcm9wcyB3aWxsIG5ldmVyIGJlIGhvaXN0ZWQgdG8gdGhpcyAoZXhjZXB0IGZvciBtb2RlbCBpZClcbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCBiYXNlTW9kZWxQcm9wTmFtZXMgPSBuZXcgU2V0PEJhc2VNb2RlbEtleXM+KFtcbiAgbW9kZWxUeXBlS2V5LFxuICBtb2RlbElkS2V5LFxuICBcIm9uSW5pdFwiLFxuICBcIiRcIixcbiAgXCJnZXRSZWZJZFwiLFxuICBcIm9uQXR0YWNoZWRUb1Jvb3RTdG9yZVwiLFxuICBcInR5cGVDaGVja1wiLFxuXSlcblxuLyoqXG4gKiBBbnkga2luZCBvZiBtb2RlbCBpbnN0YW5jZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBbnlNb2RlbCBleHRlbmRzIEJhc2VNb2RlbDxhbnksIGFueSwgYW55LCBhbnk+IHt9XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgU2hvdWxkIG5vdCBiZSBuZWVkZWQgYW55bW9yZS5cbiAqXG4gKiBUcmlja3MgVHlwZVNjcmlwdCBpbnRvIGFjY2VwdGluZyBhYnN0cmFjdCBjbGFzc2VzIGFzIGEgcGFyYW1ldGVyIGZvciBgRXh0ZW5kZWRNb2RlbGAuXG4gKiBEb2VzIG5vdGhpbmcgaW4gcnVudGltZS5cbiAqXG4gKiBAdHlwZXBhcmFtIFQgQWJzdHJhY3QgbW9kZWwgY2xhc3MgdHlwZS5cbiAqIEBwYXJhbSB0eXBlIEFic3RyYWN0IG1vZGVsIGNsYXNzLlxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFic3RyYWN0TW9kZWxDbGFzczxUPih0eXBlOiBUKTogVCAmIE9iamVjdCB7XG4gIHJldHVybiB0eXBlIGFzIGFueVxufVxuXG4vKipcbiAqIFRoZSBtb2RlbCBpZCBwcm9wZXJ0eSBuYW1lLlxuICovXG5leHBvcnQgdHlwZSBNb2RlbElkUHJvcGVydHlOYW1lPE0gZXh0ZW5kcyBBbnlNb2RlbD4gPSBNW3R5cGVvZiBtb2RlbElkUHJvcGVydHlOYW1lU3ltYm9sXVxuXG4vKipcbiAqIEFkZCBtaXNzaW5nIG1vZGVsIG1ldGFkYXRhIHRvIGEgbW9kZWwgY3JlYXRpb24gc25hcHNob3QgdG8gZ2VuZXJhdGUgYSBwcm9wZXIgbW9kZWwgc25hcHNob3QuXG4gKiBVc3VhbGx5IHVzZWQgYWxvbmdzaWRlIGBmcm9tU25hcHNob3RgLlxuICpcbiAqIEB0eXBlcGFyYW0gTSBNb2RlbCB0eXBlLlxuICogQHBhcmFtIG1vZGVsQ2xhc3MgTW9kZWwgY2xhc3MuXG4gKiBAcGFyYW0gc25hcHNob3QgTW9kZWwgY3JlYXRpb24gc25hcHNob3Qgd2l0aG91dCBtZXRhZGF0YS5cbiAqIEByZXR1cm5zIFRoZSBtb2RlbCBzbmFwc2hvdCAoaW5jbHVkaW5nIG1ldGFkYXRhKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1vZGVsU25hcHNob3RJbldpdGhNZXRhZGF0YTxNIGV4dGVuZHMgQW55TW9kZWw+KFxuICBtb2RlbENsYXNzOiBNb2RlbENsYXNzPE0+LFxuICBzbmFwc2hvdDogT21pdDxTbmFwc2hvdEluT2ZNb2RlbDxNPiwgdHlwZW9mIG1vZGVsVHlwZUtleT5cbik6IFNuYXBzaG90SW5PZk1vZGVsPE0+IHtcbiAgYXNzZXJ0SXNNb2RlbENsYXNzKG1vZGVsQ2xhc3MsIFwibW9kZWxDbGFzc1wiKVxuICBhc3NlcnRJc09iamVjdChzbmFwc2hvdCwgXCJpbml0aWFsRGF0YVwiKVxuXG4gIGNvbnN0IG1vZGVsSW5mbyA9IG1vZGVsSW5mb0J5Q2xhc3MuZ2V0KG1vZGVsQ2xhc3MpIVxuXG4gIHJldHVybiB7XG4gICAgLi4uc25hcHNob3QsXG4gICAgW21vZGVsVHlwZUtleV06IG1vZGVsSW5mby5uYW1lLFxuICB9IGFzIGFueVxufVxuXG4vKipcbiAqIEFkZCBtaXNzaW5nIG1vZGVsIG1ldGFkYXRhIHRvIGEgbW9kZWwgb3V0cHV0IHNuYXBzaG90IHRvIGdlbmVyYXRlIGEgcHJvcGVyIG1vZGVsIHNuYXBzaG90LlxuICogVXN1YWxseSB1c2VkIGFsb25nc2lkZSBgYXBwbHlTbmFwc2hvdGAuXG4gKlxuICogQHR5cGVwYXJhbSBNIE1vZGVsIHR5cGUuXG4gKiBAcGFyYW0gbW9kZWxDbGFzcyBNb2RlbCBjbGFzcy5cbiAqIEBwYXJhbSBzbmFwc2hvdCBNb2RlbCBvdXRwdXQgc25hcHNob3Qgd2l0aG91dCBtZXRhZGF0YS5cbiAqIEByZXR1cm5zIFRoZSBtb2RlbCBzbmFwc2hvdCAoaW5jbHVkaW5nIG1ldGFkYXRhKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1vZGVsU25hcHNob3RPdXRXaXRoTWV0YWRhdGE8TSBleHRlbmRzIEFueU1vZGVsPihcbiAgbW9kZWxDbGFzczogTW9kZWxDbGFzczxNPixcbiAgc25hcHNob3Q6IE9taXQ8U25hcHNob3RPdXRPZk1vZGVsPE0+LCB0eXBlb2YgbW9kZWxUeXBlS2V5PlxuKTogU25hcHNob3RPdXRPZk1vZGVsPE0+IHtcbiAgYXNzZXJ0SXNNb2RlbENsYXNzKG1vZGVsQ2xhc3MsIFwibW9kZWxDbGFzc1wiKVxuICBhc3NlcnRJc09iamVjdChzbmFwc2hvdCwgXCJpbml0aWFsRGF0YVwiKVxuXG4gIGNvbnN0IG1vZGVsSW5mbyA9IG1vZGVsSW5mb0J5Q2xhc3MuZ2V0KG1vZGVsQ2xhc3MpIVxuXG4gIHJldHVybiB7XG4gICAgLi4uc25hcHNob3QsXG4gICAgW21vZGVsVHlwZUtleV06IG1vZGVsSW5mby5uYW1lLFxuICB9IGFzIGFueVxufVxuXG4vKipcbiAqIEEgbW9kZWwgY2xhc3MgZGVjbGFyYXRpb24sIG1hZGUgb2YgYSBiYXNlIG1vZGVsIGFuZCB0aGUgbW9kZWwgaW50ZXJmYWNlLlxuICovXG5leHBvcnQgdHlwZSBNb2RlbENsYXNzRGVjbGFyYXRpb248QmFzZU1vZGVsQ2xhc3MsIE1vZGVsSW50ZXJmYWNlPiA9IEJhc2VNb2RlbENsYXNzICYge1xuICBuZXcgKC4uLmFyZ3M6IGFueVtdKTogTW9kZWxJbnRlcmZhY2Vcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQTRCYSw0QkFBNEIsT0FBTyxxQkFBcUI7TUFXL0M7RUFpRnBCLFlBQVk7QUExRVg7QUFDQTtBQUNBO0FBQ0E7QUFLUztBQW9DRDtRQStCSCxjQUFjO1VBQ1osRUFBRSxxQkFBcUIsWUFBWSxtQkFDdkMsVUFBVTtXQUVMLGVBQWUsTUFBTSxXQUFZLFNBQVM7VUFFM0MsT0FBTztXQUdOLEtBQUs7V0FDTCxLQUFLO1dBQ0wsS0FBSztXQUNMLEtBQUs7UUFFUixDQUFDLHFCQUFxQjtxQkFFVCxhQUFhLGFBQWE7dUJBRXhCLE1BQU0sV0FBVyxPQUFPLGFBQW9CLFFBQVcsRUFBRSxNQUFNLE9BQU8sR0FBRztBQUFBLFFBQ3hGO0FBQUEsUUFDQSxnQkFBZ0I7QUFBQSxPQUNqQjtBQUFBLFdBQ0k7dUJBRVksTUFBTSxRQUFXLEVBQUUsWUFBWSxxQkFBcUIsZ0JBQWdCO0FBQUE7O09Bbkd4Rix1QkFDQSxxQ0FDQSxtQ0FDQSxnQ0FLUyxtQkFNTDtVQUNHLFNBQVMsdUJBQXVCLEtBQUssV0FBa0I7V0FDdEQsU0FBUyxLQUFLLEVBQUUsVUFBVztBQUFBO09BRy9CLFlBQVk7VUFDVCxTQUFTLHVCQUF1QixLQUFLLFdBQWtCO1FBQ3pELENBQUMsUUFBUTtZQUNMLFFBQVEsaUVBQWlFO0FBQUE7U0FFMUUsRUFBVSxVQUFVO0FBQUE7RUFPN0I7V0FDUyxLQUFLO0FBQUE7RUFrQ2Q7VUFDUSxPQUFPLFdBQWlCLEtBQUssV0FBa0I7V0FDOUMsVUFBVSxNQUFNLElBQVc7QUFBQTtFQW1DcEMsU0FBUztVQUNELGVBQWU7QUFBQSxNQUNuQixVQUFVO0FBQUEsT0FDUDtVQUdDLFlBQVksR0FBRyxLQUFLLFlBQVksUUFBUSxLQUFLO1dBRTVDLGFBQWEsV0FDaEIsSUFBSSxhQUFhLEtBQUssVUFBVSxZQUFZLElBQUksQ0FBQyxPQUNqRCxJQUFJO0FBQUE7O01BYUMseUNBQXlCLElBQW1CO0FBQUEsRUFDdkQ7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7Q0FDRDs0QkFpQnFDO1NBQzdCO0FBQ1Q7cUNBaUJFLFlBQ0E7cUJBRW1CLFlBQVksWUFBWTtpQkFDNUIsVUFBVSxhQUFhO1FBRWhDLFlBQVksaUJBQWlCLElBQUksVUFBVTtTQUUxQyxpQ0FDRixXQURFO0FBQUEsS0FFSixlQUFlLFVBQVU7QUFBQTtBQUU5QjtzQ0FZRSxZQUNBO3FCQUVtQixZQUFZLFlBQVk7aUJBQzVCLFVBQVUsYUFBYTtRQUVoQyxZQUFZLGlCQUFpQixJQUFJLFVBQVU7U0FFMUMsaUNBQ0YsV0FERTtBQUFBLEtBRUosZUFBZSxVQUFVO0FBQUE7QUFFOUI7OyJ9
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { sharedInternalModel } from "../modelShared/Model.mjs";
|
|
2
|
+
import { isModelClass, assertIsModelClass } from "./utils.mjs";
|
|
3
|
+
function ExtendedModel(...args) {
|
|
4
|
+
let baseModel;
|
|
5
|
+
let modelProps;
|
|
6
|
+
let modelOptions;
|
|
7
|
+
if (isModelClass(args[0])) {
|
|
8
|
+
baseModel = args[0];
|
|
9
|
+
modelProps = args[1];
|
|
10
|
+
modelOptions = args[2];
|
|
11
|
+
} else {
|
|
12
|
+
const gen = args[0]();
|
|
13
|
+
baseModel = gen.baseModel;
|
|
14
|
+
modelProps = gen.props;
|
|
15
|
+
modelOptions = args[1];
|
|
16
|
+
}
|
|
17
|
+
assertIsModelClass(baseModel, "baseModel");
|
|
18
|
+
return internalModel(modelProps, baseModel, modelOptions);
|
|
19
|
+
}
|
|
20
|
+
function Model(fnModelPropsOrModelProps, modelOptions) {
|
|
21
|
+
const modelProps = typeof fnModelPropsOrModelProps === "function" ? fnModelPropsOrModelProps() : fnModelPropsOrModelProps;
|
|
22
|
+
return internalModel(modelProps, void 0, modelOptions);
|
|
23
|
+
}
|
|
24
|
+
function internalModel(modelProps, baseModel, modelOptions) {
|
|
25
|
+
var _a;
|
|
26
|
+
return sharedInternalModel({
|
|
27
|
+
modelProps,
|
|
28
|
+
baseModel,
|
|
29
|
+
type: "class",
|
|
30
|
+
valueType: (_a = modelOptions == null ? void 0 : modelOptions.valueType) != null ? _a : false,
|
|
31
|
+
fromSnapshotProcessor: modelOptions == null ? void 0 : modelOptions.fromSnapshotProcessor,
|
|
32
|
+
toSnapshotProcessor: modelOptions == null ? void 0 : modelOptions.toSnapshotProcessor
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
export { ExtendedModel, Model };
|
|
36
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWwubWpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWwvTW9kZWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBBYnN0cmFjdE1vZGVsQ2xhc3MsXG4gIE1vZGVsQ2xhc3MsXG4gIE1vZGVsVHJhbnNmb3JtZWRDcmVhdGlvbkRhdGEsXG59IGZyb20gXCIuLi9tb2RlbFNoYXJlZC9CYXNlTW9kZWxTaGFyZWRcIlxuaW1wb3J0IHsgc2hhcmVkSW50ZXJuYWxNb2RlbCB9IGZyb20gXCIuLi9tb2RlbFNoYXJlZC9Nb2RlbFwiXG5pbXBvcnQgdHlwZSB7XG4gIE1vZGVsUHJvcHMsXG4gIE1vZGVsUHJvcHNUb1NldHRlcixcbiAgTW9kZWxQcm9wc1RvU25hcHNob3RDcmVhdGlvbkRhdGEsXG4gIE1vZGVsUHJvcHNUb1NuYXBzaG90RGF0YSxcbiAgTW9kZWxQcm9wc1RvVHJhbnNmb3JtZWRDcmVhdGlvbkRhdGEsXG4gIE1vZGVsUHJvcHNUb1RyYW5zZm9ybWVkRGF0YSxcbn0gZnJvbSBcIi4uL21vZGVsU2hhcmVkL3Byb3BcIlxuaW1wb3J0IHR5cGUgeyBBbnlNb2RlbCwgQmFzZU1vZGVsLCBCYXNlTW9kZWxLZXlzLCBNb2RlbElkUHJvcGVydHlOYW1lIH0gZnJvbSBcIi4vQmFzZU1vZGVsXCJcbmltcG9ydCB7IGFzc2VydElzTW9kZWxDbGFzcywgaXNNb2RlbENsYXNzIH0gZnJvbSBcIi4vdXRpbHNcIlxuXG5leHBvcnQgdHlwZSBfQ29tcG9zZWRDcmVhdGlvbkRhdGE8XG4gIFN1cGVyTW9kZWwsXG4gIFRQcm9wcyBleHRlbmRzIE1vZGVsUHJvcHNcbj4gPSBTdXBlck1vZGVsIGV4dGVuZHMgQW55TW9kZWxcbiAgPyBNb2RlbFByb3BzVG9UcmFuc2Zvcm1lZENyZWF0aW9uRGF0YTxUUHJvcHM+ICYgTW9kZWxUcmFuc2Zvcm1lZENyZWF0aW9uRGF0YTxTdXBlck1vZGVsPlxuICA6IE1vZGVsUHJvcHNUb1RyYW5zZm9ybWVkQ3JlYXRpb25EYXRhPFRQcm9wcz5cblxuLyoqXG4gKiBUaGUgZGVmYXVsdCB0eXBlIHVzZWQgYnkgZnJvbVNuYXBzaG90IGJlZm9yZSBwcm9jZXNzb3JzIGFyZSBhcHBsaWVkLlxuICovXG5leHBvcnQgdHlwZSBGcm9tU25hcHNob3REZWZhdWx0VHlwZTxUUHJvcHMgZXh0ZW5kcyBNb2RlbFByb3BzPiA9XG4gIE1vZGVsUHJvcHNUb1NuYXBzaG90Q3JlYXRpb25EYXRhPFRQcm9wcz5cblxuLyoqXG4gKiBUaGUgZGVmYXVsdCB0eXBlIHVzZWQgYnkgZ2V0U25hcHNob3QgYmVmb3JlIHByb2Nlc3NvcnMgYXJlIGFwcGxpZWQuXG4gKi9cbmV4cG9ydCB0eXBlIFRvU25hcHNob3REZWZhdWx0VHlwZTxUUHJvcHMgZXh0ZW5kcyBNb2RlbFByb3BzPiA9IE1vZGVsUHJvcHNUb1NuYXBzaG90RGF0YTxUUHJvcHM+XG5cbmV4cG9ydCB0eXBlIF9Nb2RlbElkPFN1cGVyTW9kZWwsIFRQcm9wcyBleHRlbmRzIE1vZGVsUHJvcHM+ID0gU3VwZXJNb2RlbCBleHRlbmRzIEFueU1vZGVsXG4gID8gTW9kZWxJZFByb3BlcnR5TmFtZTxTdXBlck1vZGVsPlxuICA6IEV4dHJhY3RNb2RlbElkUHJvcDxUUHJvcHM+ICYgc3RyaW5nXG5cbmV4cG9ydCBpbnRlcmZhY2UgX01vZGVsPFxuICBTdXBlck1vZGVsLFxuICBUUHJvcHMgZXh0ZW5kcyBNb2RlbFByb3BzLFxuICBGcm9tU25hcHNob3RPdmVycmlkZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4sXG4gIFRvU25hcHNob3RPdmVycmlkZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT5cbj4ge1xuICBuZXcgKGRhdGE6IF9Db21wb3NlZENyZWF0aW9uRGF0YTxTdXBlck1vZGVsLCBUUHJvcHM+KTogU3VwZXJNb2RlbCAmXG4gICAgQmFzZU1vZGVsPFRQcm9wcywgRnJvbVNuYXBzaG90T3ZlcnJpZGUsIFRvU25hcHNob3RPdmVycmlkZSwgX01vZGVsSWQ8U3VwZXJNb2RlbCwgVFByb3BzPj4gJlxuICAgIE9taXQ8TW9kZWxQcm9wc1RvVHJhbnNmb3JtZWREYXRhPFRQcm9wcz4sIEJhc2VNb2RlbEtleXM+ICZcbiAgICBNb2RlbFByb3BzVG9TZXR0ZXI8VFByb3BzPlxufVxuXG4vKipcbiAqIEV4dHJhY3QgdGhlIG1vZGVsIGlkIHByb3BlcnR5IGZyb20gdGhlIG1vZGVsIHByb3BzLlxuICovXG5leHBvcnQgdHlwZSBFeHRyYWN0TW9kZWxJZFByb3A8VFByb3BzIGV4dGVuZHMgTW9kZWxQcm9wcz4gPSB7XG4gIFtLIGluIGtleW9mIFRQcm9wc106IFRQcm9wc1tLXVtcIl9pbnRlcm5hbFwiXVtcIiRpc0lkXCJdIGV4dGVuZHMgdHJ1ZSA/IEsgOiBuZXZlclxufVtrZXlvZiBUUHJvcHNdXG5cbi8qKlxuICogQmFzZSBhYnN0cmFjdCBjbGFzcyBmb3IgbW9kZWxzIHRoYXQgZXh0ZW5kcyBhbm90aGVyIG1vZGVsLlxuICpcbiAqIEB0eXBlcGFyYW0gVFByb3BzIE5ldyBtb2RlbCBwcm9wZXJ0aWVzIHR5cGUuXG4gKiBAdHlwZXBhcmFtIFRNb2RlbENsYXNzIE1vZGVsIGNsYXNzIHR5cGUuXG4gKiBAcGFyYW0gZ2VuRm4gRnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZSBiYXNlIG1vZGVsIGFuZCBtb2RlbCBwcm9wZXJ0aWVzLlxuICogQHBhcmFtIG1vZGVsT3B0aW9ucyBNb2RlbCBvcHRpb25zLlxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEV4dGVuZGVkTW9kZWw8XG4gIFRQcm9wcyBleHRlbmRzIE1vZGVsUHJvcHMsXG4gIFRNb2RlbENsYXNzIGV4dGVuZHMgQWJzdHJhY3RNb2RlbENsYXNzPEFueU1vZGVsPixcbiAgQSBleHRlbmRzIFtdLFxuICBGUyBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4gPSBuZXZlcixcbiAgVFMgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gbmV2ZXJcbj4oXG4gIGdlbkZuOiAoLi4uYXJnczogQSkgPT4ge1xuICAgIGJhc2VNb2RlbDogVE1vZGVsQ2xhc3NcbiAgICBwcm9wczogVFByb3BzXG4gIH0sXG4gIG1vZGVsT3B0aW9ucz86IE1vZGVsT3B0aW9uczxUUHJvcHMsIEZTLCBUUz5cbik6IF9Nb2RlbDxJbnN0YW5jZVR5cGU8VE1vZGVsQ2xhc3M+LCBUUHJvcHMsIEZTLCBUUz5cblxuLyoqXG4gKiBCYXNlIGFic3RyYWN0IGNsYXNzIGZvciBtb2RlbHMgdGhhdCBleHRlbmRzIGFub3RoZXIgbW9kZWwuXG4gKlxuICogQHR5cGVwYXJhbSBUUHJvcHMgTmV3IG1vZGVsIHByb3BlcnRpZXMgdHlwZS5cbiAqIEB0eXBlcGFyYW0gVE1vZGVsQ2xhc3MgTW9kZWwgY2xhc3MgdHlwZS5cbiAqIEBwYXJhbSBiYXNlTW9kZWwgQmFzZSBtb2RlbCB0eXBlLlxuICogQHBhcmFtIG1vZGVsUHJvcHMgTW9kZWwgcHJvcGVydGllcy5cbiAqIEBwYXJhbSBtb2RlbE9wdGlvbnMgTW9kZWwgb3B0aW9ucy5cbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBFeHRlbmRlZE1vZGVsPFxuICBUUHJvcHMgZXh0ZW5kcyBNb2RlbFByb3BzLFxuICBUTW9kZWxDbGFzcyBleHRlbmRzIEFic3RyYWN0TW9kZWxDbGFzczxBbnlNb2RlbD4sXG4gIEZTIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IG5ldmVyLFxuICBUUyBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4gPSBuZXZlclxuPihcbiAgYmFzZU1vZGVsOiBUTW9kZWxDbGFzcyxcbiAgbW9kZWxQcm9wczogVFByb3BzLFxuICBtb2RlbE9wdGlvbnM/OiBNb2RlbE9wdGlvbnM8VFByb3BzLCBGUywgVFM+XG4pOiBfTW9kZWw8SW5zdGFuY2VUeXBlPFRNb2RlbENsYXNzPiwgVFByb3BzLCBGUywgVFM+ICYge1xuICBbUCBpbiBFeGNsdWRlPGtleW9mIFRNb2RlbENsYXNzLCBcInByb3RvdHlwZVwiPl06IFRNb2RlbENsYXNzW1BdXG59XG5cbi8vIGJhc2VcbmV4cG9ydCBmdW5jdGlvbiBFeHRlbmRlZE1vZGVsPFxuICBUUHJvcHMgZXh0ZW5kcyBNb2RlbFByb3BzLFxuICBUTW9kZWxDbGFzcyBleHRlbmRzIEFic3RyYWN0TW9kZWxDbGFzczxBbnlNb2RlbD4sXG4gIEZTIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IG5ldmVyLFxuICBUUyBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4gPSBuZXZlclxuPiguLi5hcmdzOiBhbnlbXSk6IF9Nb2RlbDxJbnN0YW5jZVR5cGU8VE1vZGVsQ2xhc3M+LCBUUHJvcHMsIEZTLCBUUz4ge1xuICBsZXQgYmFzZU1vZGVsXG4gIGxldCBtb2RlbFByb3BzXG4gIGxldCBtb2RlbE9wdGlvbnNcbiAgaWYgKGlzTW9kZWxDbGFzcyhhcmdzWzBdKSkge1xuICAgIGJhc2VNb2RlbCA9IGFyZ3NbMF1cbiAgICBtb2RlbFByb3BzID0gYXJnc1sxXVxuICAgIG1vZGVsT3B0aW9ucyA9IGFyZ3NbMl1cbiAgfSBlbHNlIHtcbiAgICBjb25zdCBnZW4gPSBhcmdzWzBdKClcblxuICAgIGJhc2VNb2RlbCA9IGdlbi5iYXNlTW9kZWxcbiAgICBtb2RlbFByb3BzID0gZ2VuLnByb3BzXG4gICAgbW9kZWxPcHRpb25zID0gYXJnc1sxXVxuICB9XG5cbiAgYXNzZXJ0SXNNb2RlbENsYXNzKGJhc2VNb2RlbCwgXCJiYXNlTW9kZWxcIilcblxuICByZXR1cm4gaW50ZXJuYWxNb2RlbChtb2RlbFByb3BzLCBiYXNlTW9kZWwgYXMgYW55LCBtb2RlbE9wdGlvbnMpXG59XG5cbi8qKlxuICogQmFzZSBhYnN0cmFjdCBjbGFzcyBmb3IgbW9kZWxzLlxuICpcbiAqIE5ldmVyIG92ZXJyaWRlIHRoZSBjb25zdHJ1Y3RvciwgdXNlIGBvbkluaXRgIG9yIGBvbkF0dGFjaGVkVG9Sb290U3RvcmVgIGluc3RlYWQuXG4gKlxuICogQHR5cGVwYXJhbSBUUHJvcHMgTW9kZWwgcHJvcGVydGllcyB0eXBlLlxuICogQHBhcmFtIGZuTW9kZWxQcm9wcyBGdW5jdGlvbiB0aGF0IGdlbmVyYXRlcyBtb2RlbCBwcm9wZXJ0aWVzLlxuICogQHBhcmFtIG1vZGVsT3B0aW9ucyBNb2RlbCBvcHRpb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gTW9kZWw8XG4gIFRQcm9wcyBleHRlbmRzIE1vZGVsUHJvcHMsXG4gIEEgZXh0ZW5kcyBbXSxcbiAgRlMgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gbmV2ZXIsXG4gIFRTIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IG5ldmVyXG4+KFxuICBmbk1vZGVsUHJvcHM6ICguLi5hcmdzOiBBKSA9PiBUUHJvcHMsXG4gIG1vZGVsT3B0aW9ucz86IE1vZGVsT3B0aW9uczxUUHJvcHMsIEZTLCBUUz5cbik6IF9Nb2RlbDx1bmtub3duLCBUUHJvcHMsIEZTLCBUUz5cblxuLyoqXG4gKiBCYXNlIGFic3RyYWN0IGNsYXNzIGZvciBtb2RlbHMuXG4gKlxuICogTmV2ZXIgb3ZlcnJpZGUgdGhlIGNvbnN0cnVjdG9yLCB1c2UgYG9uSW5pdGAgb3IgYG9uQXR0YWNoZWRUb1Jvb3RTdG9yZWAgaW5zdGVhZC5cbiAqXG4gKiBAdHlwZXBhcmFtIFRQcm9wcyBNb2RlbCBwcm9wZXJ0aWVzIHR5cGUuXG4gKiBAcGFyYW0gbW9kZWxQcm9wcyBNb2RlbCBwcm9wZXJ0aWVzLlxuICogQHBhcmFtIG1vZGVsT3B0aW9ucyBNb2RlbCBvcHRpb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gTW9kZWw8XG4gIFRQcm9wcyBleHRlbmRzIE1vZGVsUHJvcHMsXG4gIEZTIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IG5ldmVyLFxuICBUUyBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4gPSBuZXZlclxuPihtb2RlbFByb3BzOiBUUHJvcHMsIG1vZGVsT3B0aW9ucz86IE1vZGVsT3B0aW9uczxUUHJvcHMsIEZTLCBUUz4pOiBfTW9kZWw8dW5rbm93biwgVFByb3BzLCBGUywgVFM+XG5cbi8vIGJhc2VcbmV4cG9ydCBmdW5jdGlvbiBNb2RlbDxcbiAgVFByb3BzIGV4dGVuZHMgTW9kZWxQcm9wcyxcbiAgRlMgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gbmV2ZXIsXG4gIFRTIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IG5ldmVyXG4+KFxuICBmbk1vZGVsUHJvcHNPck1vZGVsUHJvcHM6ICgoKSA9PiBUUHJvcHMpIHwgVFByb3BzLFxuICBtb2RlbE9wdGlvbnM/OiBNb2RlbE9wdGlvbnM8VFByb3BzLCBGUywgVFM+XG4pOiBfTW9kZWw8dW5rbm93biwgVFByb3BzLCBGUywgVFM+IHtcbiAgY29uc3QgbW9kZWxQcm9wcyA9XG4gICAgdHlwZW9mIGZuTW9kZWxQcm9wc09yTW9kZWxQcm9wcyA9PT0gXCJmdW5jdGlvblwiXG4gICAgICA/IGZuTW9kZWxQcm9wc09yTW9kZWxQcm9wcygpXG4gICAgICA6IGZuTW9kZWxQcm9wc09yTW9kZWxQcm9wc1xuICByZXR1cm4gaW50ZXJuYWxNb2RlbChtb2RlbFByb3BzLCB1bmRlZmluZWQsIG1vZGVsT3B0aW9ucylcbn1cblxuZnVuY3Rpb24gaW50ZXJuYWxNb2RlbDxcbiAgVFByb3BzIGV4dGVuZHMgTW9kZWxQcm9wcyxcbiAgVEJhc2VNb2RlbCBleHRlbmRzIEFueU1vZGVsLFxuICBGUyBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4gPSBuZXZlcixcbiAgVFMgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gbmV2ZXJcbj4oXG4gIG1vZGVsUHJvcHM6IFRQcm9wcyxcbiAgYmFzZU1vZGVsOiBNb2RlbENsYXNzPFRCYXNlTW9kZWw+IHwgdW5kZWZpbmVkLFxuICBtb2RlbE9wdGlvbnM/OiBNb2RlbE9wdGlvbnM8VFByb3BzLCBGUywgVFM+XG4pOiBfTW9kZWw8VEJhc2VNb2RlbCwgVFByb3BzLCBGUywgVFM+IHtcbiAgcmV0dXJuIHNoYXJlZEludGVybmFsTW9kZWwoe1xuICAgIG1vZGVsUHJvcHMsXG4gICAgYmFzZU1vZGVsLFxuICAgIHR5cGU6IFwiY2xhc3NcIixcbiAgICB2YWx1ZVR5cGU6IG1vZGVsT3B0aW9ucz8udmFsdWVUeXBlID8/IGZhbHNlLFxuICAgIGZyb21TbmFwc2hvdFByb2Nlc3NvcjogbW9kZWxPcHRpb25zPy5mcm9tU25hcHNob3RQcm9jZXNzb3IsXG4gICAgdG9TbmFwc2hvdFByb2Nlc3NvcjogbW9kZWxPcHRpb25zPy50b1NuYXBzaG90UHJvY2Vzc29yLFxuICB9KVxufVxuXG4vKipcbiAqIE1vZGVsIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTW9kZWxPcHRpb25zPFRQcm9wcyBleHRlbmRzIE1vZGVsUHJvcHMsIEZTLCBUUz4ge1xuICAvKipcbiAgICogQSB2YWx1ZSB0eXBlIHdpbGwgYmUgY2xvbmVkIGF1dG9tYXRpY2FsbHkgd2hlbiBiZWluZyBhdHRhY2hlZCB0byBhIG5ldyB0cmVlLlxuICAgKiBUaGUgZGVmYXVsdCBpcyBgZmFsc2VgLlxuICAgKi9cbiAgdmFsdWVUeXBlPzogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBPcHRpb25hbCB0cmFuc2Zvcm1hdGlvbiB0aGF0IHdpbGwgYmUgcnVuIHdoZW4gY29udmVydGluZyBmcm9tIGEgc25hcHNob3QgdG8gdGhlIGRhdGEgcGFydCBvZiB0aGUgbW9kZWwuXG4gICAqIFVzZWZ1bCBmb3IgZXhhbXBsZSB0byBkbyB2ZXJzaW9uaW5nIGFuZCBrZWVwIHRoZSBkYXRhIHBhcnQgdXAgdG8gZGF0ZSB3aXRoIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGUgbW9kZWwuXG4gICAqXG4gICAqIEBwYXJhbSBzbiBUaGUgY3VzdG9tIGlucHV0IHNuYXBzaG90LlxuICAgKiBAcmV0dXJucyBBbiBpbnB1dCBzbmFwc2hvdCB0aGF0IG11c3QgbWF0Y2ggdGhlIGV4cGVjdGVkIG1vZGVsIGlucHV0IHNuYXBzaG90LlxuICAgKi9cbiAgZnJvbVNuYXBzaG90UHJvY2Vzc29yPyhzbjogRlMpOiBGcm9tU25hcHNob3REZWZhdWx0VHlwZTxUUHJvcHM+XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIHRyYW5zZm9ybWF0aW9uIHRoYXQgd2lsbCBiZSBydW4gd2hlbiBjb252ZXJ0aW5nIHRoZSBkYXRhIHBhcnQgb2YgdGhlIG1vZGVsIGludG8gYSBzbmFwc2hvdC5cbiAgICpcbiAgICogQHBhcmFtIHNuIFRoZSBvdXRwdXQgc25hcHNob3QuXG4gICAqIEBwYXJhbSBtb2RlbEluc3RhbmNlIFRoZSBtb2RlbCBpbnN0YW5jZS5cbiAgICogQHJldHVybnMgIGEgY3VzdG9tIG91dHB1dCBzbmFwc2hvdC5cbiAgICovXG4gIHRvU25hcHNob3RQcm9jZXNzb3I/KHNuOiBUb1NuYXBzaG90RGVmYXVsdFR5cGU8VFByb3BzPiwgbW9kZWxJbnN0YW5jZTogYW55KTogVFNcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzswQkE4R0s7TUFDQztNQUNBO01BQ0E7TUFDQSxhQUFhLEtBQUssRUFBRSxHQUFHO2dCQUNiLEtBQUs7aUJBQ0osS0FBSzttQkFDSCxLQUFLO0FBQUEsU0FDZjtVQUNDLE1BQU0sS0FBSztnQkFFTCxJQUFJO2lCQUNILElBQUk7bUJBQ0YsS0FBSztBQUFBO3FCQUdILFdBQVcsV0FBVztTQUVsQyxjQUFjLFlBQVksV0FBa0IsWUFBWTtBQUNqRTtlQTBDRSwwQkFDQTtRQUVNLGFBQ0osT0FBTyw2QkFBNkIsYUFDaEMsNkJBQ0E7U0FDQyxjQUFjLFlBQVksUUFBVyxZQUFZO0FBQzFEO0FBRUEsdUJBTUUsWUFDQSxXQUNBOztTQUVPLG9CQUFvQjtBQUFBLElBQ3pCO0FBQUEsSUFDQTtBQUFBLElBQ0EsTUFBTTtBQUFBLElBQ04sV0FBVyxtREFBYyxjQUFkLFlBQTJCO0FBQUEsSUFDdEMsdUJBQXVCLDZDQUFjO0FBQUEsSUFDckMscUJBQXFCLDZDQUFjO0FBQUEsR0FDcEM7QUFDSDs7In0=
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { modelMetadataSymbol } from "../modelShared/modelSymbols.mjs";
|
|
2
|
+
import { failure } from "../utils/index.mjs";
|
|
3
|
+
import { getOrCreate } from "../utils/mapUtils.mjs";
|
|
4
|
+
import { isModel, isModelClass } from "./utils.mjs";
|
|
5
|
+
function getModelMetadata(modelClassOrInstance) {
|
|
6
|
+
if (isModel(modelClassOrInstance)) {
|
|
7
|
+
return modelClassOrInstance.constructor[modelMetadataSymbol];
|
|
8
|
+
} else if (isModelClass(modelClassOrInstance)) {
|
|
9
|
+
return modelClassOrInstance[modelMetadataSymbol];
|
|
10
|
+
} else {
|
|
11
|
+
throw failure(`modelClassOrInstance must be a model class or instance`);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
const modelIdPropertyNameCache = /* @__PURE__ */ new WeakMap();
|
|
15
|
+
function getModelIdPropertyName(modelClass) {
|
|
16
|
+
return getOrCreate(modelIdPropertyNameCache, modelClass, () => getModelMetadata(modelClass).modelIdProperty);
|
|
17
|
+
}
|
|
18
|
+
export { getModelIdPropertyName, getModelMetadata };
|
|
19
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0TW9kZWxNZXRhZGF0YS5tanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbC9nZXRNb2RlbE1ldGFkYXRhLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTW9kZWxDbGFzcyB9IGZyb20gXCIuLi9tb2RlbFNoYXJlZC9CYXNlTW9kZWxTaGFyZWRcIlxuaW1wb3J0IHsgbW9kZWxNZXRhZGF0YVN5bWJvbCB9IGZyb20gXCIuLi9tb2RlbFNoYXJlZC9tb2RlbFN5bWJvbHNcIlxuaW1wb3J0IHR5cGUgeyBBbnlUeXBlIH0gZnJvbSBcIi4uL3R5cGVzL3NjaGVtYXNcIlxuaW1wb3J0IHsgZmFpbHVyZSB9IGZyb20gXCIuLi91dGlsc1wiXG5pbXBvcnQgeyBnZXRPckNyZWF0ZSB9IGZyb20gXCIuLi91dGlscy9tYXBVdGlsc1wiXG5pbXBvcnQgdHlwZSB7IEFueU1vZGVsIH0gZnJvbSBcIi4vQmFzZU1vZGVsXCJcbmltcG9ydCB7IGlzTW9kZWwsIGlzTW9kZWxDbGFzcyB9IGZyb20gXCIuL3V0aWxzXCJcblxuLyoqXG4gKiBBc3NvY2lhdGVkIG1vZGVsIG1ldGFkYXRhLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1vZGVsTWV0YWRhdGEge1xuICAvKipcbiAgICogQXNzb2NpYXRlZCBkYXRhIHR5cGUgZm9yIHJ1bnRpbWUgY2hlY2tpbmcgKGlmIGFueSkuXG4gICAqL1xuICBkYXRhVHlwZT86IEFueVR5cGVcblxuICAvKipcbiAgICogUHJvcGVydHkgdXNlZCBhcyBtb2RlbCBpZC5cbiAgICovXG4gIG1vZGVsSWRQcm9wZXJ0eTogc3RyaW5nIHwgdW5kZWZpbmVkXG5cbiAgLyoqXG4gICAqIEEgdmFsdWUgdHlwZSB3aWxsIGJlIGNsb25lZCBhdXRvbWF0aWNhbGx5IHdoZW4gYmVpbmcgYXR0YWNoZWQgdG8gYSBuZXcgdHJlZS5cbiAgICovXG4gIHZhbHVlVHlwZTogYm9vbGVhblxufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGFzc29jaWF0ZWQgbWV0YWRhdGEgZm9yIGEgbW9kZWwgaW5zdGFuY2Ugb3IgY2xhc3MuXG4gKlxuICogQHBhcmFtIG1vZGVsQ2xhc3NPckluc3RhbmNlIE1vZGVsIGNsYXNzIG9yIGluc3RhbmNlLlxuICogQHJldHVybnMgVGhlIGFzc29jaWF0ZWQgbWV0YWRhdGEuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRNb2RlbE1ldGFkYXRhKFxuICBtb2RlbENsYXNzT3JJbnN0YW5jZTogQW55TW9kZWwgfCBNb2RlbENsYXNzPEFueU1vZGVsPlxuKTogTW9kZWxNZXRhZGF0YSB7XG4gIGlmIChpc01vZGVsKG1vZGVsQ2xhc3NPckluc3RhbmNlKSkge1xuICAgIHJldHVybiAobW9kZWxDbGFzc09ySW5zdGFuY2UgYXMgYW55KS5jb25zdHJ1Y3Rvclttb2RlbE1ldGFkYXRhU3ltYm9sXVxuICB9IGVsc2UgaWYgKGlzTW9kZWxDbGFzcyhtb2RlbENsYXNzT3JJbnN0YW5jZSkpIHtcbiAgICByZXR1cm4gKG1vZGVsQ2xhc3NPckluc3RhbmNlIGFzIGFueSlbbW9kZWxNZXRhZGF0YVN5bWJvbF1cbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBmYWlsdXJlKGBtb2RlbENsYXNzT3JJbnN0YW5jZSBtdXN0IGJlIGEgbW9kZWwgY2xhc3Mgb3IgaW5zdGFuY2VgKVxuICB9XG59XG5cbmNvbnN0IG1vZGVsSWRQcm9wZXJ0eU5hbWVDYWNoZSA9IG5ldyBXZWFrTWFwPG9iamVjdCwgc3RyaW5nIHwgdW5kZWZpbmVkPigpXG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRNb2RlbElkUHJvcGVydHlOYW1lKG1vZGVsQ2xhc3M6IE1vZGVsQ2xhc3M8QW55TW9kZWw+KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGdldE9yQ3JlYXRlKFxuICAgIG1vZGVsSWRQcm9wZXJ0eU5hbWVDYWNoZSxcbiAgICBtb2RlbENsYXNzLFxuICAgICgpID0+IGdldE1vZGVsTWV0YWRhdGEobW9kZWxDbGFzcykubW9kZWxJZFByb3BlcnR5XG4gIClcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OzBCQW1DRTtNQUVJLFFBQVEsb0JBQW9CLEdBQUc7V0FDekIscUJBQTZCLFlBQVk7QUFBQSxhQUN4QyxhQUFhLG9CQUFvQixHQUFHO1dBQ3JDLHFCQUE2QjtBQUFBLFNBQ2hDO1VBQ0MsUUFBUSx3REFBd0Q7QUFBQTtBQUUxRTtBQUVBLE1BQU0sK0NBQStCO2dDQUtFO1NBQzlCLFlBQ0wsMEJBQ0EsWUFDQSxNQUFNLGlCQUFpQixVQUFVLEVBQUUsZUFBZTtBQUV0RDs7In0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
const modelTypeKey = "$modelType";
|
|
2
|
+
const modelIdKey = "$modelId";
|
|
3
|
+
function isReservedModelKey(key) {
|
|
4
|
+
return key === modelTypeKey;
|
|
5
|
+
}
|
|
6
|
+
export { isReservedModelKey, modelIdKey, modelTypeKey };
|
|
7
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEubWpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWwvbWV0YWRhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBLZXkgd2hlcmUgbW9kZWwgc25hcHNob3RzIHdpbGwgc3RvcmUgbW9kZWwgdHlwZSBtZXRhZGF0YS5cbiAqL1xuZXhwb3J0IGNvbnN0IG1vZGVsVHlwZUtleSA9IFwiJG1vZGVsVHlwZVwiXG5cbi8qKlxuICogS2V5IHRoYXQgc2VydmVzIGFzIHByb3h5IHRvIHRoZSBtb2RlbCBwcm9wZXJ0eSBkZXNpZ25lZCBhcyAnaWRQcm9wJyAoaWYgYW55KS5cbiAqL1xuZXhwb3J0IGNvbnN0IG1vZGVsSWRLZXkgPSBcIiRtb2RlbElkXCJcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIFJldHVybnMgaWYgYSBnaXZlbiBrZXkgaXMgYSByZXNlcnZlZCBrZXkgaW4gbW9kZWwgc25hcHNob3RzLlxuICpcbiAqIEBwYXJhbSBrZXlcbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1Jlc2VydmVkTW9kZWxLZXkoa2V5OiBzdHJpbmcpIHtcbiAgLy8gbm90ZSAkbW9kZWxJZCBpcyBOT1QgYSByZXNlcnZlZCBrZXksIHNpbmNlIGl0IHdpbGwgZXZlbnR1YWxseSBlbmQgdXAgaW4gdGhlIGRhdGFcbiAgLy8gYW5kIGNhbiBhY3R1YWxseSBiZSBjaGFuZ2VkXG4gIHJldHVybiBrZXkgPT09IG1vZGVsVHlwZUtleVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJNQUdhLGVBQWU7TUFLZixhQUFhOzRCQVNTO1NBRzFCLFFBQVE7QUFDakI7OyJ9
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { action, set } from "mobx";
|
|
2
|
+
import { isModelAutoTypeCheckingEnabled } from "../globalConfig/globalConfig.mjs";
|
|
3
|
+
import { modelInfoByClass } from "../modelShared/modelInfo.mjs";
|
|
4
|
+
import { getInternalModelClassPropsInfo } from "../modelShared/modelPropsInfo.mjs";
|
|
5
|
+
import { applyModelInitializers } from "../modelShared/newModel.mjs";
|
|
6
|
+
import { noDefaultValue } from "../modelShared/prop.mjs";
|
|
7
|
+
import { tweakModel } from "../tweaker/tweakModel.mjs";
|
|
8
|
+
import { tweakPlainObject } from "../tweaker/tweakPlainObject.mjs";
|
|
9
|
+
import { failure } from "../utils/index.mjs";
|
|
10
|
+
import { getModelIdPropertyName, getModelMetadata } from "./getModelMetadata.mjs";
|
|
11
|
+
import { modelTypeKey } from "./metadata.mjs";
|
|
12
|
+
import "../types/TypeChecker.mjs";
|
|
13
|
+
import "../types/primitiveBased/primitives.mjs";
|
|
14
|
+
import "../snapshot/internal.mjs";
|
|
15
|
+
const internalNewModel = action("newModel", (origModelObj, initialData, options) => {
|
|
16
|
+
const mode = initialData ? "new" : "fromSnapshot";
|
|
17
|
+
const { modelClass: _modelClass, snapshotInitialData, generateNewIds } = options;
|
|
18
|
+
const modelClass = _modelClass;
|
|
19
|
+
const modelObj = origModelObj;
|
|
20
|
+
const modelInfo = modelInfoByClass.get(modelClass);
|
|
21
|
+
if (!modelInfo) {
|
|
22
|
+
throw failure(`no model info for class ${modelClass.name} could be found - did you forget to add the @model decorator?`);
|
|
23
|
+
}
|
|
24
|
+
const modelIdPropertyName = getModelIdPropertyName(modelClass);
|
|
25
|
+
const modelProps = getInternalModelClassPropsInfo(modelClass);
|
|
26
|
+
const modelIdPropData = modelIdPropertyName ? modelProps[modelIdPropertyName] : void 0;
|
|
27
|
+
let id;
|
|
28
|
+
if (snapshotInitialData) {
|
|
29
|
+
let sn = snapshotInitialData.unprocessedSnapshot;
|
|
30
|
+
if (modelIdPropData && modelIdPropertyName) {
|
|
31
|
+
if (generateNewIds) {
|
|
32
|
+
id = modelIdPropData._internal.defaultFn();
|
|
33
|
+
} else {
|
|
34
|
+
id = sn[modelIdPropertyName];
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
if (modelClass.fromSnapshotProcessor) {
|
|
38
|
+
sn = modelClass.fromSnapshotProcessor(sn);
|
|
39
|
+
}
|
|
40
|
+
initialData = snapshotInitialData.snapshotToInitialData(sn);
|
|
41
|
+
} else {
|
|
42
|
+
if (modelIdPropData && modelIdPropertyName) {
|
|
43
|
+
if (initialData[modelIdPropertyName]) {
|
|
44
|
+
id = initialData[modelIdPropertyName];
|
|
45
|
+
} else {
|
|
46
|
+
id = modelIdPropData._internal.defaultFn();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
modelObj[modelTypeKey] = modelInfo.name;
|
|
51
|
+
const modelPropsKeys = Object.keys(modelProps);
|
|
52
|
+
for (let i = 0; i < modelPropsKeys.length; i++) {
|
|
53
|
+
const k = modelPropsKeys[i];
|
|
54
|
+
if (k === modelIdPropertyName) {
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
const propData = modelProps[k];
|
|
58
|
+
let newValue = initialData[k];
|
|
59
|
+
let changed = false;
|
|
60
|
+
if (mode === "new" && propData._internal.transform) {
|
|
61
|
+
changed = true;
|
|
62
|
+
newValue = propData._internal.transform.untransform(newValue, modelObj, k);
|
|
63
|
+
}
|
|
64
|
+
if (newValue == null) {
|
|
65
|
+
if (propData._internal.defaultFn !== noDefaultValue) {
|
|
66
|
+
changed = true;
|
|
67
|
+
newValue = propData._internal.defaultFn();
|
|
68
|
+
} else if (propData._internal.defaultValue !== noDefaultValue) {
|
|
69
|
+
changed = true;
|
|
70
|
+
newValue = propData._internal.defaultValue;
|
|
71
|
+
} else if (!("k" in initialData)) {
|
|
72
|
+
changed = true;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
if (changed) {
|
|
76
|
+
set(initialData, k, newValue);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
if (modelIdPropertyName) {
|
|
80
|
+
set(initialData, modelIdPropertyName, id);
|
|
81
|
+
}
|
|
82
|
+
tweakModel(modelObj, void 0);
|
|
83
|
+
let obsData = tweakPlainObject(initialData, { parent: modelObj, path: "$" }, modelObj[modelTypeKey], false, true);
|
|
84
|
+
modelObj.$ = obsData;
|
|
85
|
+
if (isModelAutoTypeCheckingEnabled() && getModelMetadata(modelClass).dataType) {
|
|
86
|
+
const err = modelObj.typeCheck();
|
|
87
|
+
if (err) {
|
|
88
|
+
err.throw(modelObj);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
applyModelInitializers(modelClass, modelObj);
|
|
92
|
+
return modelObj;
|
|
93
|
+
});
|
|
94
|
+
export { internalNewModel };
|
|
95
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3TW9kZWwubWpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWwvbmV3TW9kZWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWN0aW9uLCBzZXQgfSBmcm9tIFwibW9ieFwiXG5pbXBvcnQgdHlwZSB7IE8gfSBmcm9tIFwidHMtdG9vbGJlbHRcIlxuaW1wb3J0IHsgaXNNb2RlbEF1dG9UeXBlQ2hlY2tpbmdFbmFibGVkIH0gZnJvbSBcIi4uL2dsb2JhbENvbmZpZy9nbG9iYWxDb25maWdcIlxuaW1wb3J0IHR5cGUgeyBNb2RlbFRyYW5zZm9ybWVkQ3JlYXRpb25EYXRhIH0gZnJvbSBcIi4uL21vZGVsU2hhcmVkL0Jhc2VNb2RlbFNoYXJlZFwiXG5pbXBvcnQgeyBtb2RlbEluZm9CeUNsYXNzIH0gZnJvbSBcIi4uL21vZGVsU2hhcmVkL21vZGVsSW5mb1wiXG5pbXBvcnQgeyBnZXRJbnRlcm5hbE1vZGVsQ2xhc3NQcm9wc0luZm8gfSBmcm9tIFwiLi4vbW9kZWxTaGFyZWQvbW9kZWxQcm9wc0luZm9cIlxuaW1wb3J0IHsgYXBwbHlNb2RlbEluaXRpYWxpemVycyB9IGZyb20gXCIuLi9tb2RlbFNoYXJlZC9uZXdNb2RlbFwiXG5pbXBvcnQgeyBub0RlZmF1bHRWYWx1ZSB9IGZyb20gXCIuLi9tb2RlbFNoYXJlZC9wcm9wXCJcbmltcG9ydCB7IHR3ZWFrTW9kZWwgfSBmcm9tIFwiLi4vdHdlYWtlci90d2Vha01vZGVsXCJcbmltcG9ydCB7IHR3ZWFrUGxhaW5PYmplY3QgfSBmcm9tIFwiLi4vdHdlYWtlci90d2Vha1BsYWluT2JqZWN0XCJcbmltcG9ydCB7IGZhaWx1cmUsIGluRGV2TW9kZSwgbWFrZVByb3BSZWFkb25seSB9IGZyb20gXCIuLi91dGlsc1wiXG5pbXBvcnQgdHlwZSB7IEFueU1vZGVsIH0gZnJvbSBcIi4vQmFzZU1vZGVsXCJcbmltcG9ydCB7IGdldE1vZGVsSWRQcm9wZXJ0eU5hbWUsIGdldE1vZGVsTWV0YWRhdGEgfSBmcm9tIFwiLi9nZXRNb2RlbE1ldGFkYXRhXCJcbmltcG9ydCB7IG1vZGVsVHlwZUtleSB9IGZyb20gXCIuL21ldGFkYXRhXCJcbmltcG9ydCB0eXBlIHsgTW9kZWxDb25zdHJ1Y3Rvck9wdGlvbnMgfSBmcm9tIFwiLi9Nb2RlbENvbnN0cnVjdG9yT3B0aW9uc1wiXG5pbXBvcnQgeyBhc3NlcnRJc01vZGVsQ2xhc3MgfSBmcm9tIFwiLi91dGlsc1wiXG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCBpbnRlcm5hbE5ld01vZGVsID0gYWN0aW9uKFxuICBcIm5ld01vZGVsXCIsXG4gIDxNIGV4dGVuZHMgQW55TW9kZWw+KFxuICAgIG9yaWdNb2RlbE9iajogTSxcbiAgICBpbml0aWFsRGF0YTogTW9kZWxUcmFuc2Zvcm1lZENyZWF0aW9uRGF0YTxNPiB8IHVuZGVmaW5lZCxcbiAgICBvcHRpb25zOiBQaWNrPE1vZGVsQ29uc3RydWN0b3JPcHRpb25zLCBcIm1vZGVsQ2xhc3NcIiB8IFwic25hcHNob3RJbml0aWFsRGF0YVwiIHwgXCJnZW5lcmF0ZU5ld0lkc1wiPlxuICApOiBNID0+IHtcbiAgICBjb25zdCBtb2RlID0gaW5pdGlhbERhdGEgPyBcIm5ld1wiIDogXCJmcm9tU25hcHNob3RcIlxuICAgIGNvbnN0IHsgbW9kZWxDbGFzczogX21vZGVsQ2xhc3MsIHNuYXBzaG90SW5pdGlhbERhdGEsIGdlbmVyYXRlTmV3SWRzIH0gPSBvcHRpb25zXG4gICAgY29uc3QgbW9kZWxDbGFzcyA9IF9tb2RlbENsYXNzIVxuXG4gICAgaWYgKGluRGV2TW9kZSgpKSB7XG4gICAgICBhc3NlcnRJc01vZGVsQ2xhc3MobW9kZWxDbGFzcywgXCJtb2RlbENsYXNzXCIpXG4gICAgfVxuXG4gICAgY29uc3QgbW9kZWxPYmogPSBvcmlnTW9kZWxPYmogYXMgTy5Xcml0YWJsZTxNPlxuXG4gICAgY29uc3QgbW9kZWxJbmZvID0gbW9kZWxJbmZvQnlDbGFzcy5nZXQobW9kZWxDbGFzcylcbiAgICBpZiAoIW1vZGVsSW5mbykge1xuICAgICAgdGhyb3cgZmFpbHVyZShcbiAgICAgICAgYG5vIG1vZGVsIGluZm8gZm9yIGNsYXNzICR7bW9kZWxDbGFzcy5uYW1lfSBjb3VsZCBiZSBmb3VuZCAtIGRpZCB5b3UgZm9yZ2V0IHRvIGFkZCB0aGUgQG1vZGVsIGRlY29yYXRvcj9gXG4gICAgICApXG4gICAgfVxuXG4gICAgY29uc3QgbW9kZWxJZFByb3BlcnR5TmFtZSA9IGdldE1vZGVsSWRQcm9wZXJ0eU5hbWUobW9kZWxDbGFzcylcbiAgICBjb25zdCBtb2RlbFByb3BzID0gZ2V0SW50ZXJuYWxNb2RlbENsYXNzUHJvcHNJbmZvKG1vZGVsQ2xhc3MpXG4gICAgY29uc3QgbW9kZWxJZFByb3BEYXRhID0gbW9kZWxJZFByb3BlcnR5TmFtZSA/IG1vZGVsUHJvcHNbbW9kZWxJZFByb3BlcnR5TmFtZV0hIDogdW5kZWZpbmVkXG5cbiAgICBsZXQgaWQ6IHN0cmluZyB8IHVuZGVmaW5lZFxuICAgIGlmIChzbmFwc2hvdEluaXRpYWxEYXRhKSB7XG4gICAgICBsZXQgc24gPSBzbmFwc2hvdEluaXRpYWxEYXRhLnVucHJvY2Vzc2VkU25hcHNob3RcblxuICAgICAgaWYgKG1vZGVsSWRQcm9wRGF0YSAmJiBtb2RlbElkUHJvcGVydHlOYW1lKSB7XG4gICAgICAgIGlmIChnZW5lcmF0ZU5ld0lkcykge1xuICAgICAgICAgIGlkID0gKG1vZGVsSWRQcm9wRGF0YS5faW50ZXJuYWwuZGVmYXVsdEZuIGFzICgpID0+IHN0cmluZykoKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlkID0gc25bbW9kZWxJZFByb3BlcnR5TmFtZV1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAobW9kZWxDbGFzcy5mcm9tU25hcHNob3RQcm9jZXNzb3IpIHtcbiAgICAgICAgc24gPSBtb2RlbENsYXNzLmZyb21TbmFwc2hvdFByb2Nlc3NvcihzbilcbiAgICAgIH1cblxuICAgICAgaW5pdGlhbERhdGEgPSBzbmFwc2hvdEluaXRpYWxEYXRhLnNuYXBzaG90VG9Jbml0aWFsRGF0YShzbilcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gdXNlIHN5bWJvbCBpZiBwcm92aWRlZFxuICAgICAgaWYgKG1vZGVsSWRQcm9wRGF0YSAmJiBtb2RlbElkUHJvcGVydHlOYW1lKSB7XG4gICAgICAgIGlmIChpbml0aWFsRGF0YSFbbW9kZWxJZFByb3BlcnR5TmFtZV0pIHtcbiAgICAgICAgICBpZCA9IGluaXRpYWxEYXRhIVttb2RlbElkUHJvcGVydHlOYW1lXVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlkID0gKG1vZGVsSWRQcm9wRGF0YS5faW50ZXJuYWwuZGVmYXVsdEZuIGFzICgpID0+IHN0cmluZykoKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgbW9kZWxPYmpbbW9kZWxUeXBlS2V5XSA9IG1vZGVsSW5mby5uYW1lXG5cbiAgICAvLyBmaWxsIGluIGRlZmF1bHRzIGluIGluaXRpYWwgZGF0YVxuICAgIGNvbnN0IG1vZGVsUHJvcHNLZXlzID0gT2JqZWN0LmtleXMobW9kZWxQcm9wcylcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1vZGVsUHJvcHNLZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBrID0gbW9kZWxQcm9wc0tleXNbaV1cblxuICAgICAgLy8gaWQgaXMgYWxyZWFkeSBpbml0aWFsaXplZCBhYm92ZVxuICAgICAgaWYgKGsgPT09IG1vZGVsSWRQcm9wZXJ0eU5hbWUpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgY29uc3QgcHJvcERhdGEgPSBtb2RlbFByb3BzW2tdXG5cbiAgICAgIGxldCBuZXdWYWx1ZSA9IGluaXRpYWxEYXRhIVtrXVxuICAgICAgbGV0IGNoYW5nZWQgPSBmYWxzZVxuXG4gICAgICAvLyBhcHBseSB1bnRyYW5zZm9ybSAoaWYgYW55KVxuICAgICAgaWYgKG1vZGUgPT09IFwibmV3XCIgJiYgcHJvcERhdGEuX2ludGVybmFsLnRyYW5zZm9ybSkge1xuICAgICAgICBjaGFuZ2VkID0gdHJ1ZVxuICAgICAgICBuZXdWYWx1ZSA9IHByb3BEYXRhLl9pbnRlcm5hbC50cmFuc2Zvcm0udW50cmFuc2Zvcm0obmV3VmFsdWUsIG1vZGVsT2JqLCBrKVxuICAgICAgfVxuXG4gICAgICAvLyBhcHBseSBkZWZhdWx0IHZhbHVlIChpZiBuZWVkZWQpXG4gICAgICBpZiAobmV3VmFsdWUgPT0gbnVsbCkge1xuICAgICAgICBpZiAocHJvcERhdGEuX2ludGVybmFsLmRlZmF1bHRGbiAhPT0gbm9EZWZhdWx0VmFsdWUpIHtcbiAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZVxuICAgICAgICAgIG5ld1ZhbHVlID0gcHJvcERhdGEuX2ludGVybmFsLmRlZmF1bHRGbigpXG4gICAgICAgIH0gZWxzZSBpZiAocHJvcERhdGEuX2ludGVybmFsLmRlZmF1bHRWYWx1ZSAhPT0gbm9EZWZhdWx0VmFsdWUpIHtcbiAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZVxuICAgICAgICAgIG5ld1ZhbHVlID0gcHJvcERhdGEuX2ludGVybmFsLmRlZmF1bHRWYWx1ZVxuICAgICAgICB9IGVsc2UgaWYgKCEoXCJrXCIgaW4gaW5pdGlhbERhdGEhKSkge1xuICAgICAgICAgIC8vIGZvciBtb2J4NCwgd2UgbmVlZCB0byBzZXQgdXAgcHJvcGVydGllcyBldmVuIGlmIHRoZXkgYXJlIHVuZGVmaW5lZFxuICAgICAgICAgIGNoYW5nZWQgPSB0cnVlXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGNoYW5nZWQpIHtcbiAgICAgICAgc2V0KGluaXRpYWxEYXRhIGFzIGFueSwgaywgbmV3VmFsdWUpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG1vZGVsSWRQcm9wZXJ0eU5hbWUpIHtcbiAgICAgIHNldChpbml0aWFsRGF0YSBhcyBhbnksIG1vZGVsSWRQcm9wZXJ0eU5hbWUsIGlkKVxuICAgIH1cblxuICAgIHR3ZWFrTW9kZWwobW9kZWxPYmosIHVuZGVmaW5lZClcblxuICAgIC8vIGNyZWF0ZSBvYnNlcnZhYmxlIGRhdGEgb2JqZWN0IHdpdGggaW5pdGlhbCBkYXRhXG4gICAgbGV0IG9ic0RhdGEgPSB0d2Vha1BsYWluT2JqZWN0KFxuICAgICAgaW5pdGlhbERhdGEhLFxuICAgICAgeyBwYXJlbnQ6IG1vZGVsT2JqLCBwYXRoOiBcIiRcIiB9LFxuICAgICAgbW9kZWxPYmpbbW9kZWxUeXBlS2V5XSxcbiAgICAgIGZhbHNlLFxuICAgICAgdHJ1ZVxuICAgIClcblxuICAgIC8vIGxpbmsgaXQsIGFuZCBtYWtlIGl0IHJlYWRvbmx5XG4gICAgbW9kZWxPYmouJCA9IG9ic0RhdGFcbiAgICBpZiAoaW5EZXZNb2RlKCkpIHtcbiAgICAgIG1ha2VQcm9wUmVhZG9ubHkobW9kZWxPYmosIFwiJFwiLCB0cnVlKVxuICAgIH1cblxuICAgIC8vIHR5cGUgY2hlY2sgaXQgaWYgbmVlZGVkXG4gICAgaWYgKGlzTW9kZWxBdXRvVHlwZUNoZWNraW5nRW5hYmxlZCgpICYmIGdldE1vZGVsTWV0YWRhdGEobW9kZWxDbGFzcykuZGF0YVR5cGUpIHtcbiAgICAgIGNvbnN0IGVyciA9IG1vZGVsT2JqLnR5cGVDaGVjaygpXG4gICAgICBpZiAoZXJyKSB7XG4gICAgICAgIGVyci50aHJvdyhtb2RlbE9iailcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBydW4gYW55IGV4dHJhIGluaXRpYWxpemVycyBmb3IgdGhlIGNsYXNzIGFzIG5lZWRlZFxuICAgIGFwcGx5TW9kZWxJbml0aWFsaXplcnMobW9kZWxDbGFzcywgbW9kZWxPYmopXG5cbiAgICByZXR1cm4gbW9kZWxPYmogYXMgTVxuICB9XG4pXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7TUFvQmEsbUJBQW1CLE9BQzlCLFlBQ0EsQ0FDRSxjQUNBLGFBQ0E7UUFFTSxPQUFPLGNBQWMsUUFBUTtRQUM3QixFQUFFLFlBQVksYUFBYSxxQkFBcUIsbUJBQW1CO1FBQ25FLGFBQWE7UUFNYixXQUFXO1FBRVgsWUFBWSxpQkFBaUIsSUFBSSxVQUFVO01BQzdDLENBQUMsV0FBVztVQUNSLFFBQ0osMkJBQTJCLFdBQVcsbUVBQW1FO0FBQUE7UUFJdkcsc0JBQXNCLHVCQUF1QixVQUFVO1FBQ3ZELGFBQWEsK0JBQStCLFVBQVU7UUFDdEQsa0JBQWtCLHNCQUFzQixXQUFXLHVCQUF3QjtNQUU3RTtNQUNBLHFCQUFxQjtRQUNuQixLQUFLLG9CQUFvQjtRQUV6QixtQkFBbUIscUJBQXFCO1VBQ3RDLGdCQUFnQjthQUNaLGdCQUFnQixVQUFVO2FBQzNCO2FBQ0EsR0FBRztBQUFBOztRQUlSLFdBQVcsdUJBQXVCO1dBQy9CLFdBQVcsc0JBQXNCLEVBQUU7QUFBQTtrQkFHNUIsb0JBQW9CLHNCQUFzQixFQUFFO0FBQUEsU0FDckQ7UUFFRCxtQkFBbUIscUJBQXFCO1VBQ3RDLFlBQWEsc0JBQXNCO2FBQ2hDLFlBQWE7QUFBQSxhQUNiO2FBQ0MsZ0JBQWdCLFVBQVU7Ozs7V0FLN0IsZ0JBQWdCLFVBQVU7UUFHN0IsaUJBQWlCLE9BQU8sS0FBSyxVQUFVO1dBQ3BDLElBQUksR0FBRyxJQUFJLGVBQWUsUUFBUSxLQUFLO1VBQ3hDLElBQUksZUFBZTtRQUdyQixNQUFNLHFCQUFxQjs7O1VBSXpCLFdBQVcsV0FBVztRQUV4QixXQUFXLFlBQWE7UUFDeEIsVUFBVTtRQUdWLFNBQVMsU0FBUyxTQUFTLFVBQVUsV0FBVztnQkFDeEM7aUJBQ0MsU0FBUyxVQUFVLFVBQVUsWUFBWSxVQUFVLFVBQVUsQ0FBQztBQUFBO1FBSXZFLFlBQVksTUFBTTtVQUNoQixTQUFTLFVBQVUsY0FBYyxnQkFBZ0I7a0JBQ3pDO21CQUNDLFNBQVMsVUFBVTtpQkFDckIsU0FBUyxVQUFVLGlCQUFpQixnQkFBZ0I7a0JBQ25EO21CQUNDLFNBQVMsVUFBVTtBQUFBLGlCQUNyQixTQUFTLGNBQWU7a0JBRXZCO0FBQUE7O1FBSVYsU0FBUztVQUNQLGFBQW9CLEdBQUcsUUFBUTtBQUFBOztNQUluQyxxQkFBcUI7UUFDbkIsYUFBb0IscUJBQXFCLEVBQUU7QUFBQTthQUd0QyxVQUFVLE1BQVM7TUFHMUIsVUFBVSxpQkFDWixhQUNBLEVBQUUsUUFBUSxVQUFVLE1BQU0sT0FDMUIsU0FBUyxlQUNULE9BQ0EsSUFBSTtXQUlHLElBQUk7TUFNVCxvQ0FBb0MsaUJBQWlCLFVBQVUsRUFBRSxVQUFVO1VBQ3ZFLE1BQU0sU0FBUztRQUNqQixLQUFLO1VBQ0gsTUFBTSxRQUFRO0FBQUE7O3lCQUtDLFlBQVksUUFBUTtTQUVwQztBQUNULENBQUM7OyJ9
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { isPlainObject, failure } from "../utils/index.mjs";
|
|
2
|
+
import { BaseModel } from "./BaseModel.mjs";
|
|
3
|
+
import { modelTypeKey } from "./metadata.mjs";
|
|
4
|
+
function isModel(model) {
|
|
5
|
+
return model instanceof BaseModel;
|
|
6
|
+
}
|
|
7
|
+
function assertIsModel(model, argName, customErrMsg = "must be a model instance") {
|
|
8
|
+
if (!isModel(model)) {
|
|
9
|
+
throw failure(`${argName} ${customErrMsg}`);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
function isModelClass(modelClass) {
|
|
13
|
+
if (typeof modelClass !== "function") {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
if (modelClass !== BaseModel && !(modelClass.prototype instanceof BaseModel)) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
function assertIsModelClass(modelClass, argName) {
|
|
22
|
+
if (typeof modelClass !== "function") {
|
|
23
|
+
throw failure(`${argName} must be a class`);
|
|
24
|
+
}
|
|
25
|
+
if (modelClass !== BaseModel && !(modelClass.prototype instanceof BaseModel)) {
|
|
26
|
+
throw failure(`${argName} must extend Model`);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
function isModelSnapshot(sn) {
|
|
30
|
+
return isPlainObject(sn) && modelTypeKey in sn;
|
|
31
|
+
}
|
|
32
|
+
export { assertIsModel, assertIsModelClass, isModel, isModelClass, isModelSnapshot };
|
|
33
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMubWpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWwvdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBNb2RlbENsYXNzIH0gZnJvbSBcIi4uL21vZGVsU2hhcmVkL0Jhc2VNb2RlbFNoYXJlZFwiXG5pbXBvcnQgeyBmYWlsdXJlLCBpc1BsYWluT2JqZWN0IH0gZnJvbSBcIi4uL3V0aWxzXCJcbmltcG9ydCB7IEFueU1vZGVsLCBCYXNlTW9kZWwgfSBmcm9tIFwiLi9CYXNlTW9kZWxcIlxuaW1wb3J0IHsgbW9kZWxUeXBlS2V5IH0gZnJvbSBcIi4vbWV0YWRhdGFcIlxuXG4vKipcbiAqIENoZWNrcyBpZiBhbiBvYmplY3QgaXMgYSBtb2RlbCBpbnN0YW5jZS5cbiAqXG4gKiBAcGFyYW0gbW9kZWxcbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc01vZGVsKG1vZGVsOiB1bmtub3duKTogbW9kZWwgaXMgQW55TW9kZWwge1xuICByZXR1cm4gbW9kZWwgaW5zdGFuY2VvZiBCYXNlTW9kZWxcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqXG4gKiBBc3NlcnRzIHNvbWV0aGluZyBpcyBhY3R1YWxseSBhIG1vZGVsLlxuICpcbiAqIEBwYXJhbSBtb2RlbFxuICogQHBhcmFtIGFyZ05hbWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydElzTW9kZWwoXG4gIG1vZGVsOiB1bmtub3duLFxuICBhcmdOYW1lOiBzdHJpbmcsXG4gIGN1c3RvbUVyck1zZyA9IFwibXVzdCBiZSBhIG1vZGVsIGluc3RhbmNlXCJcbik6IGFzc2VydHMgbW9kZWwgaXMgQW55TW9kZWwge1xuICBpZiAoIWlzTW9kZWwobW9kZWwpKSB7XG4gICAgdGhyb3cgZmFpbHVyZShgJHthcmdOYW1lfSAke2N1c3RvbUVyck1zZ31gKVxuICB9XG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc01vZGVsQ2xhc3MobW9kZWxDbGFzczogdW5rbm93bik6IG1vZGVsQ2xhc3MgaXMgTW9kZWxDbGFzczxBbnlNb2RlbD4ge1xuICBpZiAodHlwZW9mIG1vZGVsQ2xhc3MgIT09IFwiZnVuY3Rpb25cIikge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgaWYgKG1vZGVsQ2xhc3MgIT09IEJhc2VNb2RlbCAmJiAhKG1vZGVsQ2xhc3MucHJvdG90eXBlIGluc3RhbmNlb2YgQmFzZU1vZGVsKSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydElzTW9kZWxDbGFzcyhcbiAgbW9kZWxDbGFzczogdW5rbm93bixcbiAgYXJnTmFtZTogc3RyaW5nXG4pOiBhc3NlcnRzIG1vZGVsQ2xhc3MgaXMgTW9kZWxDbGFzczxBbnlNb2RlbD4ge1xuICBpZiAodHlwZW9mIG1vZGVsQ2xhc3MgIT09IFwiZnVuY3Rpb25cIikge1xuICAgIHRocm93IGZhaWx1cmUoYCR7YXJnTmFtZX0gbXVzdCBiZSBhIGNsYXNzYClcbiAgfVxuXG4gIGlmIChtb2RlbENsYXNzICE9PSBCYXNlTW9kZWwgJiYgIShtb2RlbENsYXNzLnByb3RvdHlwZSBpbnN0YW5jZW9mIEJhc2VNb2RlbCkpIHtcbiAgICB0aHJvdyBmYWlsdXJlKGAke2FyZ05hbWV9IG11c3QgZXh0ZW5kIE1vZGVsYClcbiAgfVxufVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNNb2RlbFNuYXBzaG90KHNuOiB1bmtub3duKTogc24gaXMgeyBbbW9kZWxUeXBlS2V5XTogc3RyaW5nIH0ge1xuICByZXR1cm4gaXNQbGFpbk9iamVjdChzbikgJiYgbW9kZWxUeXBlS2V5IGluIHNuXG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O2lCQVd3QjtTQUNmLGlCQUFpQjtBQUMxQjt1QkFXRSxPQUNBLFNBQ0EsZUFBZTtNQUVYLENBQUMsUUFBUSxLQUFLLEdBQUc7VUFDYixRQUFRLEdBQUcsV0FBVyxjQUFjO0FBQUE7QUFFOUM7c0JBSzZCO01BQ3ZCLE9BQU8sZUFBZSxZQUFZO1dBQzdCO0FBQUE7TUFHTCxlQUFlLGFBQWEsYUFBYSxxQkFBcUIsWUFBWTtXQUNyRTtBQUFBO1NBR0Y7QUFDVDs0QkFNRSxZQUNBO01BRUksT0FBTyxlQUFlLFlBQVk7VUFDOUIsUUFBUSxHQUFHLHlCQUF5QjtBQUFBO01BR3hDLGVBQWUsYUFBYSxhQUFhLHFCQUFxQixZQUFZO1VBQ3RFLFFBQVEsR0FBRywyQkFBMkI7QUFBQTtBQUVoRDt5QkFLZ0M7U0FDdkIsY0FBYyxFQUFFLEtBQUssZ0JBQWdCO0FBQzlDOzsifQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const propsTypeSymbol = Symbol("propsType");
|
|
2
|
+
const fromSnapshotOverrideTypeSymbol = Symbol("fromSnapshotOverrideType");
|
|
3
|
+
const toSnapshotOverrideTypeSymbol = Symbol("toSnapshotOverrideType");
|
|
4
|
+
const modelInitializedSymbol = Symbol("modelInitialized");
|
|
5
|
+
function modelClass(type) {
|
|
6
|
+
return type;
|
|
7
|
+
}
|
|
8
|
+
export { fromSnapshotOverrideTypeSymbol, modelClass, modelInitializedSymbol, propsTypeSymbol, toSnapshotOverrideTypeSymbol };
|
|
9
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzZU1vZGVsU2hhcmVkLm1qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZGVsU2hhcmVkL0Jhc2VNb2RlbFNoYXJlZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFueURhdGFNb2RlbCB9IGZyb20gXCIuLi9kYXRhTW9kZWwvQmFzZURhdGFNb2RlbFwiXG5pbXBvcnQgdHlwZSB7IEFueU1vZGVsIH0gZnJvbSBcIi4uL21vZGVsL0Jhc2VNb2RlbFwiXG5pbXBvcnQgdHlwZSB7IG1vZGVsVHlwZUtleSB9IGZyb20gXCIuLi9tb2RlbC9tZXRhZGF0YVwiXG5pbXBvcnQgdHlwZSB7IEZsYXR0ZW4sIElzTmV2ZXJUeXBlIH0gZnJvbSBcIi4uL3V0aWxzL3R5cGVzXCJcbmltcG9ydCB0eXBlIHtcbiAgTW9kZWxQcm9wc1RvQ3JlYXRpb25EYXRhLFxuICBNb2RlbFByb3BzVG9TbmFwc2hvdENyZWF0aW9uRGF0YSxcbiAgTW9kZWxQcm9wc1RvU25hcHNob3REYXRhLFxuICBNb2RlbFByb3BzVG9UcmFuc2Zvcm1lZENyZWF0aW9uRGF0YSxcbiAgTW9kZWxQcm9wc1RvVHJhbnNmb3JtZWREYXRhLFxufSBmcm9tIFwiLi9wcm9wXCJcblxuLyoqXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBjb25zdCBwcm9wc1R5cGVTeW1ib2wgPSBTeW1ib2woXCJwcm9wc1R5cGVcIilcblxuLyoqXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBjb25zdCBmcm9tU25hcHNob3RPdmVycmlkZVR5cGVTeW1ib2wgPSBTeW1ib2woXCJmcm9tU25hcHNob3RPdmVycmlkZVR5cGVcIilcblxuLyoqXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBjb25zdCB0b1NuYXBzaG90T3ZlcnJpZGVUeXBlU3ltYm9sID0gU3ltYm9sKFwidG9TbmFwc2hvdE92ZXJyaWRlVHlwZVwiKVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgbW9kZWxJbml0aWFsaXplZFN5bWJvbCA9IFN5bWJvbChcIm1vZGVsSW5pdGlhbGl6ZWRcIilcblxuLyoqXG4gKiBFeHRyYWN0cyB0aGUgaW5zdGFuY2UgdHlwZSBvZiBhIG1vZGVsIGNsYXNzLlxuICovXG5leHBvcnQgdHlwZSBNb2RlbENsYXNzPE0gZXh0ZW5kcyBBbnlNb2RlbCB8IEFueURhdGFNb2RlbD4gPSB7XG4gIG5ldyAoaW5pdGlhbERhdGE6IGFueSk6IE1cblxuICBmcm9tU25hcHNob3RQcm9jZXNzb3I/KHNuOiBhbnkpOiBhbnlcbiAgdG9TbmFwc2hvdFByb2Nlc3Nvcj8oc246IGFueSwgbW9kZWxJbnN0YW5jZTogYW55KTogYW55XG59XG5cbi8qKlxuICogRXh0cmFjdHMgdGhlIGluc3RhbmNlIHR5cGUgb2YgYW4gYWJzdHJhY3QgbW9kZWwgY2xhc3MuXG4gKi9cbmV4cG9ydCB0eXBlIEFic3RyYWN0TW9kZWxDbGFzczxNIGV4dGVuZHMgQW55TW9kZWwgfCBBbnlEYXRhTW9kZWw+ID0gYWJzdHJhY3QgbmV3IChcbiAgaW5pdGlhbERhdGE6IGFueVxuKSA9PiBNXG5cbi8qKlxuICogVGhlIHByb3BzIG9mIGEgbW9kZWwuXG4gKi9cbmV4cG9ydCB0eXBlIE1vZGVsUHJvcHNPZjxNIGV4dGVuZHMgQW55TW9kZWwgfCBBbnlEYXRhTW9kZWw+ID0gTVt0eXBlb2YgcHJvcHNUeXBlU3ltYm9sXVxuXG4vKipcbiAqIFRoZSBkYXRhIHR5cGUgb2YgYSBtb2RlbC5cbiAqL1xuZXhwb3J0IHR5cGUgTW9kZWxEYXRhPE0gZXh0ZW5kcyBBbnlNb2RlbCB8IEFueURhdGFNb2RlbD4gPSBGbGF0dGVuPE1bXCIkXCJdPlxuXG4vKipcbiAqIFRoZSBjcmVhdGlvbiBkYXRhIHR5cGUgb2YgYSBtb2RlbC5cbiAqL1xuZXhwb3J0IHR5cGUgTW9kZWxDcmVhdGlvbkRhdGE8TSBleHRlbmRzIEFueU1vZGVsIHwgQW55RGF0YU1vZGVsPiA9IE1vZGVsUHJvcHNUb0NyZWF0aW9uRGF0YTxcbiAgTW9kZWxQcm9wc09mPE0+XG4+XG5cbi8qKlxuICogVGhlIHRyYW5zZm9ybWVkIGRhdGEgdHlwZSBvZiBhIG1vZGVsLlxuICovXG5leHBvcnQgdHlwZSBNb2RlbFRyYW5zZm9ybWVkRGF0YTxNIGV4dGVuZHMgQW55TW9kZWwgfCBBbnlEYXRhTW9kZWw+ID0gTW9kZWxQcm9wc1RvVHJhbnNmb3JtZWREYXRhPFxuICBNb2RlbFByb3BzT2Y8TT5cbj5cblxuLyoqXG4gKiBUaGUgdHJhbnNmb3JtZWQgY3JlYXRpb24gZGF0YSB0eXBlIG9mIGEgbW9kZWwuXG4gKi9cbmV4cG9ydCB0eXBlIE1vZGVsVHJhbnNmb3JtZWRDcmVhdGlvbkRhdGE8TSBleHRlbmRzIEFueU1vZGVsIHwgQW55RGF0YU1vZGVsPiA9XG4gIE1vZGVsUHJvcHNUb1RyYW5zZm9ybWVkQ3JlYXRpb25EYXRhPE1vZGVsUHJvcHNPZjxNPj5cblxuLyoqXG4gKiBUaGUgZnJvbSBzbmFwc2hvdCB0eXBlIG9mIGEgbW9kZWwuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIFNuYXBzaG90SW5PZjxNb2RlbD4gaW5zdGVhZC5cbiAqL1xuZXhwb3J0IHR5cGUgTW9kZWxGcm9tU25hcHNob3Q8TSBleHRlbmRzIEFueU1vZGVsPiA9IElzTmV2ZXJUeXBlPFxuICBNW3R5cGVvZiBmcm9tU25hcHNob3RPdmVycmlkZVR5cGVTeW1ib2xdLFxuICBNb2RlbFByb3BzVG9TbmFwc2hvdENyZWF0aW9uRGF0YTxNb2RlbFByb3BzT2Y8TT4+LFxuICBNW3R5cGVvZiBmcm9tU25hcHNob3RPdmVycmlkZVR5cGVTeW1ib2xdXG4+ICYgeyBbbW9kZWxUeXBlS2V5XT86IHN0cmluZyB9XG5cbi8qKlxuICogVGhlIHRvIHNuYXBzaG90IHR5cGUgb2YgYSBtb2RlbC5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgU25hcHNob3RPdXRPZjxNb2RlbD4gaW5zdGVhZC5cbiAqL1xuZXhwb3J0IHR5cGUgTW9kZWxUb1NuYXBzaG90PE0gZXh0ZW5kcyBBbnlNb2RlbD4gPSBJc05ldmVyVHlwZTxcbiAgTVt0eXBlb2YgdG9TbmFwc2hvdE92ZXJyaWRlVHlwZVN5bWJvbF0sXG4gIE1vZGVsUHJvcHNUb1NuYXBzaG90RGF0YTxNb2RlbFByb3BzT2Y8TT4+LFxuICBNW3R5cGVvZiB0b1NuYXBzaG90T3ZlcnJpZGVUeXBlU3ltYm9sXVxuPiAmIHsgW21vZGVsVHlwZUtleV0/OiBzdHJpbmcgfVxuXG4vKipcbiAqIFRyaWNrcyBUeXBlU2NyaXB0IGludG8gYWNjZXB0aW5nIGEgcGFydGljdWxhciBraW5kIG9mIGdlbmVyaWMgY2xhc3MgYXMgYSBwYXJhbWV0ZXIgZm9yIGBFeHRlbmRlZE1vZGVsYC5cbiAqIERvZXMgbm90aGluZyBpbiBydW50aW1lLlxuICpcbiAqIEB0eXBlcGFyYW0gVCBHZW5lcmljIG1vZGVsIGNsYXNzIHR5cGUuXG4gKiBAcGFyYW0gdHlwZSBHZW5lcmljIG1vZGVsIGNsYXNzLlxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1vZGVsQ2xhc3M8VCBleHRlbmRzIEFueU1vZGVsIHwgQW55RGF0YU1vZGVsPih0eXBlOiB7XG4gIHByb3RvdHlwZTogVFxufSk6IE1vZGVsQ2xhc3M8VD4ge1xuICByZXR1cm4gdHlwZSBhcyBhbnlcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiTUFlYSxrQkFBa0IsT0FBTyxXQUFXO01BS3BDLGlDQUFpQyxPQUFPLDBCQUEwQjtNQUtsRSwrQkFBK0IsT0FBTyx3QkFBd0I7TUFLOUQseUJBQXlCLE9BQU8sa0JBQWtCO29CQStFRDtTQUdyRDtBQUNUOzsifQ==
|