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.
Files changed (394) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/_virtual/_tslib.mjs +12 -0
  3. package/dist/mobx-keystone.umd.js +5339 -5261
  4. package/dist/model/utils.d.ts +1 -1
  5. package/dist/node_modules/fast-deep-equal/es6/index.mjs +68 -0
  6. package/dist/node_modules/nanoid/non-secure/index.mjs +11 -0
  7. package/dist/snapshot/index.d.ts +0 -8
  8. package/dist/{dataModel/_BaseDataModel.d.ts → snapshot/registerDefaultReconcilers.d.ts} +0 -0
  9. package/dist/{model/_BaseModel.d.ts → snapshot/registerDefaultSnapshotters.d.ts} +0 -0
  10. package/dist/src/action/actionDecoratorUtils.mjs +25 -0
  11. package/dist/src/action/applyAction.mjs +54 -0
  12. package/dist/src/action/applyDelete.mjs +20 -0
  13. package/dist/src/action/applyMethodCall.mjs +19 -0
  14. package/dist/src/action/applySet.mjs +25 -0
  15. package/dist/src/action/builtInActions.mjs +15 -0
  16. package/dist/src/action/context.mjs +22 -0
  17. package/dist/src/action/hookActions.mjs +13 -0
  18. package/dist/src/action/isModelAction.mjs +6 -0
  19. package/dist/src/action/middleware.mjs +84 -0
  20. package/dist/src/action/modelAction.mjs +34 -0
  21. package/dist/src/action/modelFlow.mjs +251 -0
  22. package/dist/src/action/pendingActions.mjs +30 -0
  23. package/dist/src/action/protection.mjs +19 -0
  24. package/dist/src/action/runUnprotected.mjs +24 -0
  25. package/dist/src/action/wrapInAction.mjs +90 -0
  26. package/dist/src/actionMiddlewares/actionSerialization/actionSerialization.mjs +131 -0
  27. package/dist/src/actionMiddlewares/actionSerialization/applySerializedAction.mjs +110 -0
  28. package/dist/src/actionMiddlewares/actionSerialization/arraySerializer.mjs +15 -0
  29. package/dist/src/actionMiddlewares/actionSerialization/core.mjs +3 -0
  30. package/dist/src/actionMiddlewares/actionSerialization/dateSerializer.mjs +15 -0
  31. package/dist/src/actionMiddlewares/actionSerialization/mapSerializer.mjs +32 -0
  32. package/dist/src/actionMiddlewares/actionSerialization/objectPathSerializer.mjs +33 -0
  33. package/dist/src/actionMiddlewares/actionSerialization/objectSnapshotSerializer.mjs +18 -0
  34. package/dist/src/actionMiddlewares/actionSerialization/plainObjectSerializer.mjs +27 -0
  35. package/dist/src/actionMiddlewares/actionSerialization/primitiveSerializer.mjs +39 -0
  36. package/dist/src/actionMiddlewares/actionSerialization/setSerializer.mjs +29 -0
  37. package/dist/src/actionMiddlewares/actionTrackingMiddleware.mjs +239 -0
  38. package/dist/src/actionMiddlewares/onActionMiddleware.mjs +44 -0
  39. package/dist/src/actionMiddlewares/readonlyMiddleware.mjs +49 -0
  40. package/dist/src/actionMiddlewares/transactionMiddleware.mjs +69 -0
  41. package/dist/src/actionMiddlewares/undoMiddleware.mjs +472 -0
  42. package/dist/src/actionMiddlewares/utils.mjs +25 -0
  43. package/dist/src/computedTree/computedTree.mjs +63 -0
  44. package/dist/src/context/context.mjs +141 -0
  45. package/dist/src/dataModel/BaseDataModel.mjs +108 -0
  46. package/dist/src/dataModel/DataModel.mjs +32 -0
  47. package/dist/src/dataModel/actions.mjs +12 -0
  48. package/dist/src/dataModel/getDataModelMetadata.mjs +14 -0
  49. package/dist/src/dataModel/newDataModel.mjs +31 -0
  50. package/dist/src/dataModel/utils.mjs +29 -0
  51. package/dist/src/frozen/Frozen.mjs +68 -0
  52. package/dist/src/globalConfig/globalConfig.mjs +57 -0
  53. package/dist/src/index.mjs +97 -0
  54. package/dist/src/model/BaseModel.mjs +118 -0
  55. package/dist/src/model/Model.mjs +36 -0
  56. package/dist/src/model/getModelMetadata.mjs +19 -0
  57. package/dist/src/model/metadata.mjs +7 -0
  58. package/dist/src/model/newModel.mjs +95 -0
  59. package/dist/src/model/utils.mjs +33 -0
  60. package/dist/src/modelShared/BaseModelShared.mjs +9 -0
  61. package/dist/src/modelShared/Model.mjs +249 -0
  62. package/dist/src/modelShared/checkModelDecoratorArgs.mjs +21 -0
  63. package/dist/src/modelShared/modelClassInitializer.mjs +14 -0
  64. package/dist/src/modelShared/modelDecorator.mjs +117 -0
  65. package/dist/src/modelShared/modelInfo.mjs +7 -0
  66. package/dist/src/modelShared/modelPropsInfo.mjs +9 -0
  67. package/dist/src/modelShared/modelSymbols.mjs +5 -0
  68. package/dist/src/modelShared/newModel.mjs +13 -0
  69. package/dist/src/modelShared/prop.mjs +138 -0
  70. package/dist/src/modelShared/utils.mjs +10 -0
  71. package/dist/src/parent/core.mjs +34 -0
  72. package/dist/src/parent/coreObjectChildren.mjs +98 -0
  73. package/dist/src/parent/detach.mjs +32 -0
  74. package/dist/src/parent/findChildren.mjs +16 -0
  75. package/dist/src/parent/findParent.mjs +30 -0
  76. package/dist/src/parent/getChildrenObjects.mjs +12 -0
  77. package/dist/src/parent/onChildAttachedTo.mjs +101 -0
  78. package/dist/src/parent/path.mjs +149 -0
  79. package/dist/src/parent/path2.mjs +12 -0
  80. package/dist/src/parent/setParent.mjs +83 -0
  81. package/dist/src/parent/walkTree.mjs +104 -0
  82. package/dist/src/patch/applyPatches.mjs +118 -0
  83. package/dist/src/patch/emitPatch.mjs +100 -0
  84. package/dist/src/patch/jsonPatch.mjs +60 -0
  85. package/dist/src/patch/patchRecorder.mjs +75 -0
  86. package/dist/src/redux/connectReduxDevTools.mjs +153 -0
  87. package/dist/src/redux/redux.mjs +60 -0
  88. package/dist/src/ref/Ref.mjs +38 -0
  89. package/dist/src/ref/core.mjs +179 -0
  90. package/dist/src/ref/customRef.mjs +9 -0
  91. package/dist/src/ref/rootRef.mjs +34 -0
  92. package/dist/src/rootStore/attachDetach.mjs +53 -0
  93. package/dist/src/rootStore/rootStore.mjs +50 -0
  94. package/dist/src/snapshot/SnapshotterAndReconcilerPriority.mjs +9 -0
  95. package/dist/src/snapshot/applySnapshot.mjs +92 -0
  96. package/dist/src/snapshot/clone.mjs +29 -0
  97. package/dist/src/snapshot/fromArraySnapshot.mjs +23 -0
  98. package/dist/src/snapshot/fromFrozenSnapshot.mjs +13 -0
  99. package/dist/src/snapshot/fromModelSnapshot.mjs +38 -0
  100. package/dist/src/snapshot/fromPlainObjectSnapshot.mjs +26 -0
  101. package/dist/src/snapshot/fromSnapshot.mjs +91 -0
  102. package/dist/src/snapshot/getSnapshot.mjs +27 -0
  103. package/dist/src/snapshot/internal.mjs +97 -0
  104. package/dist/src/snapshot/onSnapshot.mjs +16 -0
  105. package/dist/src/snapshot/reconcileArraySnapshot.mjs +40 -0
  106. package/dist/src/snapshot/reconcileFrozenSnapshot.mjs +19 -0
  107. package/dist/src/snapshot/reconcileModelSnapshot.mjs +77 -0
  108. package/dist/src/snapshot/reconcilePlainObjectSnapshot.mjs +47 -0
  109. package/dist/src/snapshot/reconcileSnapshot.mjs +49 -0
  110. package/dist/src/snapshot/registerDefaultReconcilers.mjs +17 -0
  111. package/dist/src/snapshot/registerDefaultSnapshotters.mjs +17 -0
  112. package/dist/src/standardActions/actions.mjs +35 -0
  113. package/dist/src/standardActions/arrayActions.mjs +66 -0
  114. package/dist/src/standardActions/objectActions.mjs +36 -0
  115. package/dist/src/standardActions/standaloneActions.mjs +9 -0
  116. package/dist/src/transforms/ImmutableDate.mjs +51 -0
  117. package/dist/src/transforms/asMap.mjs +29 -0
  118. package/dist/src/transforms/asSet.mjs +12 -0
  119. package/dist/src/transforms/bigint.mjs +14 -0
  120. package/dist/src/transforms/date.mjs +27 -0
  121. package/dist/src/treeUtils/deepEquals.mjs +40 -0
  122. package/dist/src/treeUtils/draft.mjs +116 -0
  123. package/dist/src/treeUtils/sandbox.mjs +158 -0
  124. package/dist/src/tweaker/TweakerPriority.mjs +9 -0
  125. package/dist/src/tweaker/core.mjs +38 -0
  126. package/dist/src/tweaker/registerDefaultTweakers.mjs +17 -0
  127. package/dist/src/tweaker/tweak.mjs +109 -0
  128. package/dist/src/tweaker/tweakArray.mjs +272 -0
  129. package/dist/src/tweaker/tweakFrozen.mjs +28 -0
  130. package/dist/src/tweaker/tweakModel.mjs +26 -0
  131. package/dist/src/tweaker/tweakPlainObject.mjs +205 -0
  132. package/dist/src/tweaker/typeChecking.mjs +46 -0
  133. package/dist/src/tweaker/withoutTypeChecking.mjs +15 -0
  134. package/dist/src/types/TypeCheckError.mjs +31 -0
  135. package/dist/src/types/TypeChecker.mjs +165 -0
  136. package/dist/src/types/arrayBased/array.mjs +68 -0
  137. package/dist/src/types/arrayBased/tuple.mjs +71 -0
  138. package/dist/src/types/getTypeInfo.mjs +12 -0
  139. package/dist/src/types/objectBased/arraySet.mjs +83 -0
  140. package/dist/src/types/objectBased/dataModelData.mjs +95 -0
  141. package/dist/src/types/objectBased/model.mjs +133 -0
  142. package/dist/src/types/objectBased/object.mjs +119 -0
  143. package/dist/src/types/objectBased/objectMap.mjs +90 -0
  144. package/dist/src/types/objectBased/record.mjs +80 -0
  145. package/dist/src/types/objectBased/ref.mjs +62 -0
  146. package/dist/src/types/primitiveBased/enum.mjs +20 -0
  147. package/dist/src/types/primitiveBased/primitives.mjs +59 -0
  148. package/dist/src/types/primitiveBased/refinedPrimitives.mjs +6 -0
  149. package/dist/src/types/registerDefaultStandardTypeResolvers.mjs +13 -0
  150. package/dist/src/types/resolveTypeChecker.mjs +52 -0
  151. package/dist/src/types/tProp.mjs +53 -0
  152. package/dist/src/types/typeCheck.mjs +11 -0
  153. package/dist/src/types/types.mjs +69 -0
  154. package/dist/src/types/utility/maybe.mjs +10 -0
  155. package/dist/src/types/utility/or.mjs +99 -0
  156. package/dist/src/types/utility/refinement.mjs +52 -0
  157. package/dist/src/types/utility/unchecked.mjs +10 -0
  158. package/dist/src/utils/ModelPool.mjs +50 -0
  159. package/dist/src/utils/chainFns.mjs +15 -0
  160. package/dist/src/utils/index.mjs +228 -0
  161. package/dist/src/utils/mapUtils.mjs +10 -0
  162. package/dist/src/utils/tag.mjs +16 -0
  163. package/dist/src/wrappers/ArraySet.mjs +85 -0
  164. package/dist/src/wrappers/ObjectMap.mjs +96 -0
  165. package/dist/src/wrappers/asMap.mjs +181 -0
  166. package/dist/src/wrappers/asSet.mjs +97 -0
  167. package/dist/tweaker/index.d.ts +0 -4
  168. package/dist/tweaker/registerDefaultTweakers.d.ts +1 -0
  169. package/dist/types/registerDefaultStandardTypeResolvers.d.ts +1 -0
  170. package/package.json +12 -14
  171. package/src/actionMiddlewares/actionSerialization/actionSerialization.ts +24 -9
  172. package/src/dataModel/BaseDataModel.ts +0 -3
  173. package/src/dataModel/utils.ts +4 -4
  174. package/src/dist/action/actionDecoratorUtils.d.ts +5 -0
  175. package/src/dist/action/applyAction.d.ts +36 -0
  176. package/src/dist/action/applyDelete.d.ts +7 -0
  177. package/src/dist/action/applyMethodCall.d.ts +9 -0
  178. package/src/dist/action/applySet.d.ts +8 -0
  179. package/src/dist/action/builtInActions.d.ts +39 -0
  180. package/src/dist/action/context.d.ts +85 -0
  181. package/src/dist/action/hookActions.d.ts +32 -0
  182. package/src/dist/action/index.d.ts +12 -0
  183. package/src/dist/action/isModelAction.d.ts +7 -0
  184. package/src/dist/action/middleware.d.ts +34 -0
  185. package/src/dist/action/modelAction.d.ts +9 -0
  186. package/src/dist/action/modelFlow.d.ts +34 -0
  187. package/src/dist/action/pendingActions.d.ts +1 -0
  188. package/src/dist/action/protection.d.ts +1 -0
  189. package/src/dist/action/runUnprotected.d.ts +19 -0
  190. package/src/dist/action/wrapInAction.d.ts +1 -0
  191. package/src/dist/actionMiddlewares/actionSerialization/actionSerialization.d.ts +84 -0
  192. package/src/dist/actionMiddlewares/actionSerialization/applySerializedAction.d.ts +45 -0
  193. package/src/dist/actionMiddlewares/actionSerialization/arraySerializer.d.ts +3 -0
  194. package/src/dist/actionMiddlewares/actionSerialization/core.d.ts +28 -0
  195. package/src/dist/actionMiddlewares/actionSerialization/dateSerializer.d.ts +2 -0
  196. package/src/dist/actionMiddlewares/actionSerialization/index.d.ts +3 -0
  197. package/src/dist/actionMiddlewares/actionSerialization/mapSerializer.d.ts +6 -0
  198. package/src/dist/actionMiddlewares/actionSerialization/objectPathSerializer.d.ts +8 -0
  199. package/src/dist/actionMiddlewares/actionSerialization/objectSnapshotSerializer.d.ts +2 -0
  200. package/src/dist/actionMiddlewares/actionSerialization/plainObjectSerializer.d.ts +2 -0
  201. package/src/dist/actionMiddlewares/actionSerialization/primitiveSerializer.d.ts +2 -0
  202. package/src/dist/actionMiddlewares/actionSerialization/setSerializer.d.ts +3 -0
  203. package/src/dist/actionMiddlewares/actionTrackingMiddleware.d.ts +122 -0
  204. package/src/dist/actionMiddlewares/index.d.ts +6 -0
  205. package/src/dist/actionMiddlewares/onActionMiddleware.d.ts +26 -0
  206. package/src/dist/actionMiddlewares/readonlyMiddleware.d.ts +35 -0
  207. package/src/dist/actionMiddlewares/transactionMiddleware.d.ts +21 -0
  208. package/src/dist/actionMiddlewares/undoMiddleware.d.ts +283 -0
  209. package/src/dist/actionMiddlewares/utils.d.ts +1 -0
  210. package/src/dist/computedTree/computedTree.d.ts +16 -0
  211. package/src/dist/computedTree/index.d.ts +1 -0
  212. package/src/dist/context/context.d.ts +84 -0
  213. package/src/dist/context/index.d.ts +1 -0
  214. package/src/dist/dataModel/BaseDataModel.d.ts +52 -0
  215. package/src/dist/dataModel/DataModel.d.ts +47 -0
  216. package/src/dist/dataModel/DataModelConstructorOptions.d.ts +1 -0
  217. package/src/dist/dataModel/actions.d.ts +1 -0
  218. package/src/dist/dataModel/getDataModelMetadata.d.ts +19 -0
  219. package/src/dist/dataModel/index.d.ts +4 -0
  220. package/src/dist/dataModel/newDataModel.d.ts +1 -0
  221. package/src/dist/dataModel/utils.d.ts +8 -0
  222. package/src/dist/frozen/Frozen.d.ts +50 -0
  223. package/src/dist/frozen/index.d.ts +1 -0
  224. package/src/dist/globalConfig/globalConfig.d.ts +51 -0
  225. package/src/dist/globalConfig/index.d.ts +1 -0
  226. package/src/dist/index.d.ts +23 -0
  227. package/src/dist/mobx-keystone.umd.js +8201 -0
  228. package/src/dist/model/BaseModel.d.ts +125 -0
  229. package/src/dist/model/Model.d.ts +94 -0
  230. package/src/dist/model/ModelConstructorOptions.d.ts +1 -0
  231. package/src/dist/model/getModelMetadata.d.ts +27 -0
  232. package/src/dist/model/index.d.ts +5 -0
  233. package/src/dist/model/metadata.d.ts +8 -0
  234. package/src/dist/model/newModel.d.ts +1 -0
  235. package/src/dist/model/utils.d.ts +8 -0
  236. package/src/dist/modelShared/BaseModelShared.d.ts +76 -0
  237. package/src/dist/modelShared/Model.d.ts +15 -0
  238. package/src/dist/modelShared/checkModelDecoratorArgs.d.ts +1 -0
  239. package/src/dist/modelShared/index.d.ts +3 -0
  240. package/src/dist/modelShared/modelClassInitializer.d.ts +1 -0
  241. package/src/dist/modelShared/modelDecorator.d.ts +24 -0
  242. package/src/dist/modelShared/modelInfo.d.ts +1 -0
  243. package/src/dist/modelShared/modelPropsInfo.d.ts +1 -0
  244. package/src/dist/modelShared/modelSymbols.d.ts +3 -0
  245. package/src/dist/modelShared/newModel.d.ts +4 -0
  246. package/src/dist/modelShared/prop.d.ts +179 -0
  247. package/src/dist/modelShared/utils.d.ts +1 -0
  248. package/src/dist/parent/core.d.ts +1 -0
  249. package/src/dist/parent/coreObjectChildren.d.ts +1 -0
  250. package/src/dist/parent/detach.d.ts +9 -0
  251. package/src/dist/parent/findChildren.d.ts +13 -0
  252. package/src/dist/parent/findParent.d.ts +41 -0
  253. package/src/dist/parent/getChildrenObjects.d.ts +11 -0
  254. package/src/dist/parent/index.d.ts +9 -0
  255. package/src/dist/parent/onChildAttachedTo.d.ts +22 -0
  256. package/src/dist/parent/path.d.ts +107 -0
  257. package/src/dist/parent/path2.d.ts +16 -0
  258. package/src/dist/parent/pathTypes.d.ts +12 -0
  259. package/src/dist/parent/setParent.d.ts +1 -0
  260. package/src/dist/parent/walkTree.d.ts +25 -0
  261. package/src/dist/patch/Patch.d.ts +16 -0
  262. package/src/dist/patch/applyPatches.d.ts +9 -0
  263. package/src/dist/patch/emitPatch.d.ts +29 -0
  264. package/src/dist/patch/index.d.ts +5 -0
  265. package/src/dist/patch/jsonPatch.d.ts +45 -0
  266. package/src/dist/patch/patchRecorder.d.ts +70 -0
  267. package/src/dist/redux/connectReduxDevTools.d.ts +12 -0
  268. package/src/dist/redux/index.d.ts +2 -0
  269. package/src/dist/redux/redux.d.ts +47 -0
  270. package/src/dist/ref/Ref.d.ts +53 -0
  271. package/src/dist/ref/core.d.ts +46 -0
  272. package/src/dist/ref/customRef.d.ts +38 -0
  273. package/src/dist/ref/index.d.ts +4 -0
  274. package/src/dist/ref/rootRef.d.ts +33 -0
  275. package/src/dist/rootStore/attachDetach.d.ts +1 -0
  276. package/src/dist/rootStore/index.d.ts +1 -0
  277. package/src/dist/rootStore/rootStore.d.ts +33 -0
  278. package/src/dist/snapshot/SnapshotOf.d.ts +47 -0
  279. package/src/dist/snapshot/SnapshotterAndReconcilerPriority.d.ts +1 -0
  280. package/src/dist/snapshot/applySnapshot.d.ts +17 -0
  281. package/src/dist/snapshot/clone.d.ts +18 -0
  282. package/src/dist/snapshot/fromArraySnapshot.d.ts +1 -0
  283. package/src/dist/snapshot/fromFrozenSnapshot.d.ts +1 -0
  284. package/src/dist/snapshot/fromModelSnapshot.d.ts +1 -0
  285. package/src/dist/snapshot/fromPlainObjectSnapshot.d.ts +1 -0
  286. package/src/dist/snapshot/fromSnapshot.d.ts +36 -0
  287. package/src/dist/snapshot/getSnapshot.d.ts +22 -0
  288. package/src/dist/snapshot/index.d.ts +6 -0
  289. package/src/dist/snapshot/internal.d.ts +1 -0
  290. package/src/dist/snapshot/onSnapshot.d.ts +18 -0
  291. package/src/dist/snapshot/reconcileArraySnapshot.d.ts +1 -0
  292. package/src/dist/snapshot/reconcileFrozenSnapshot.d.ts +1 -0
  293. package/src/dist/snapshot/reconcileModelSnapshot.d.ts +1 -0
  294. package/src/dist/snapshot/reconcilePlainObjectSnapshot.d.ts +1 -0
  295. package/src/dist/snapshot/reconcileSnapshot.d.ts +1 -0
  296. package/src/dist/snapshot/registerDefaultReconcilers.d.ts +1 -0
  297. package/src/dist/snapshot/registerDefaultSnapshotters.d.ts +1 -0
  298. package/src/dist/standardActions/actions.d.ts +1 -0
  299. package/src/dist/standardActions/arrayActions.d.ts +18 -0
  300. package/src/dist/standardActions/index.d.ts +3 -0
  301. package/src/dist/standardActions/objectActions.d.ts +7 -0
  302. package/src/dist/standardActions/standaloneActions.d.ts +16 -0
  303. package/src/dist/transforms/ImmutableDate.d.ts +1 -0
  304. package/src/dist/transforms/asMap.d.ts +3 -0
  305. package/src/dist/transforms/asSet.d.ts +2 -0
  306. package/src/dist/transforms/bigint.d.ts +2 -0
  307. package/src/dist/transforms/date.d.ts +3 -0
  308. package/src/dist/transforms/index.d.ts +4 -0
  309. package/src/dist/treeUtils/deepEquals.d.ts +20 -0
  310. package/src/dist/treeUtils/draft.d.ts +70 -0
  311. package/src/dist/treeUtils/index.d.ts +3 -0
  312. package/src/dist/treeUtils/sandbox.d.ts +85 -0
  313. package/src/dist/tweaker/TweakerPriority.d.ts +1 -0
  314. package/src/dist/tweaker/core.d.ts +14 -0
  315. package/src/dist/tweaker/index.d.ts +2 -0
  316. package/src/dist/tweaker/registerDefaultTweakers.d.ts +1 -0
  317. package/src/dist/tweaker/tweak.d.ts +22 -0
  318. package/src/dist/tweaker/tweakArray.d.ts +1 -0
  319. package/src/dist/tweaker/tweakFrozen.d.ts +1 -0
  320. package/src/dist/tweaker/tweakModel.d.ts +1 -0
  321. package/src/dist/tweaker/tweakPlainObject.d.ts +1 -0
  322. package/src/dist/tweaker/typeChecking.d.ts +1 -0
  323. package/src/dist/tweaker/withoutTypeChecking.d.ts +2 -0
  324. package/src/dist/types/TypeCheckError.d.ts +22 -0
  325. package/src/dist/types/TypeChecker.d.ts +8 -0
  326. package/src/dist/types/arrayBased/array.d.ts +23 -0
  327. package/src/dist/types/arrayBased/tuple.d.ts +24 -0
  328. package/src/dist/types/getTypeInfo.d.ts +9 -0
  329. package/src/dist/types/index.d.ts +5 -0
  330. package/src/dist/types/objectBased/arraySet.d.ts +24 -0
  331. package/src/dist/types/objectBased/dataModelData.d.ts +44 -0
  332. package/src/dist/types/objectBased/model.d.ts +43 -0
  333. package/src/dist/types/objectBased/object.d.ts +63 -0
  334. package/src/dist/types/objectBased/objectMap.d.ts +24 -0
  335. package/src/dist/types/objectBased/record.d.ts +24 -0
  336. package/src/dist/types/objectBased/ref.d.ts +21 -0
  337. package/src/dist/types/primitiveBased/enum.d.ts +34 -0
  338. package/src/dist/types/primitiveBased/primitives.d.ts +81 -0
  339. package/src/dist/types/primitiveBased/refinedPrimitives.d.ts +18 -0
  340. package/src/dist/types/registerDefaultStandardTypeResolvers.d.ts +1 -0
  341. package/src/dist/types/resolveTypeChecker.d.ts +1 -0
  342. package/src/dist/types/schemas.d.ts +53 -0
  343. package/src/dist/types/tProp.d.ts +92 -0
  344. package/src/dist/types/typeCheck.d.ts +11 -0
  345. package/src/dist/types/types.d.ts +51 -0
  346. package/src/dist/types/utility/maybe.d.ts +29 -0
  347. package/src/dist/types/utility/or.d.ts +35 -0
  348. package/src/dist/types/utility/refinement.d.ts +45 -0
  349. package/src/dist/types/utility/unchecked.d.ts +22 -0
  350. package/src/dist/utils/ModelPool.d.ts +7 -0
  351. package/src/dist/utils/chainFns.d.ts +1 -0
  352. package/src/dist/utils/index.d.ts +6 -0
  353. package/src/dist/utils/mapUtils.d.ts +2 -0
  354. package/src/dist/utils/tag.d.ts +13 -0
  355. package/src/dist/utils/types.d.ts +39 -0
  356. package/src/dist/wrappers/ArraySet.d.ts +29 -0
  357. package/src/dist/wrappers/ObjectMap.d.ts +32 -0
  358. package/src/dist/wrappers/asMap.d.ts +29 -0
  359. package/src/dist/wrappers/asSet.d.ts +15 -0
  360. package/src/dist/wrappers/index.d.ts +4 -0
  361. package/src/model/BaseModel.ts +0 -3
  362. package/src/model/utils.ts +4 -5
  363. package/src/modelShared/checkModelDecoratorArgs.ts +6 -6
  364. package/src/parent/setParent.ts +2 -2
  365. package/src/rootStore/attachDetach.ts +2 -3
  366. package/src/snapshot/fromArraySnapshot.ts +11 -6
  367. package/src/snapshot/fromFrozenSnapshot.ts +11 -6
  368. package/src/snapshot/fromModelSnapshot.ts +11 -6
  369. package/src/snapshot/fromPlainObjectSnapshot.ts +11 -6
  370. package/src/snapshot/fromSnapshot.ts +3 -0
  371. package/src/snapshot/index.ts +0 -10
  372. package/src/snapshot/reconcileArraySnapshot.ts +11 -6
  373. package/src/snapshot/reconcileFrozenSnapshot.ts +11 -6
  374. package/src/snapshot/reconcileModelSnapshot.ts +11 -6
  375. package/src/snapshot/reconcilePlainObjectSnapshot.ts +11 -6
  376. package/src/snapshot/reconcileSnapshot.ts +3 -0
  377. package/src/snapshot/registerDefaultReconcilers.ts +21 -0
  378. package/src/snapshot/registerDefaultSnapshotters.ts +21 -0
  379. package/src/tweaker/index.ts +0 -6
  380. package/src/tweaker/registerDefaultTweakers.ts +21 -0
  381. package/src/tweaker/tweak.ts +3 -0
  382. package/src/tweaker/tweakArray.ts +406 -401
  383. package/src/tweaker/tweakFrozen.ts +11 -6
  384. package/src/tweaker/tweakModel.ts +11 -6
  385. package/src/tweaker/tweakPlainObject.ts +288 -283
  386. package/src/types/objectBased/model.ts +6 -1
  387. package/src/types/objectBased/ref.ts +1 -1
  388. package/src/types/primitiveBased/primitives.ts +177 -166
  389. package/src/types/registerDefaultStandardTypeResolvers.ts +17 -0
  390. package/src/types/resolveTypeChecker.ts +7 -1
  391. package/dist/mobx-keystone.es.js +0 -7856
  392. package/dist/mobx-keystone.es.mjs +0 -7856
  393. package/src/dataModel/_BaseDataModel.ts +0 -15
  394. 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=