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,110 @@
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
+ import { runInAction } from "mobx";
21
+ import { applyAction } from "../../action/applyAction.mjs";
22
+ import { frozenKey } from "../../frozen/Frozen.mjs";
23
+ import { getModelIdPropertyName } from "../../model/getModelMetadata.mjs";
24
+ import { isModel } from "../../model/utils.mjs";
25
+ import { resolvePath } from "../../parent/path.mjs";
26
+ import { applyPatches } from "../../patch/applyPatches.mjs";
27
+ import { onPatches } from "../../patch/emitPatch.mjs";
28
+ import { assertTweakedObject } from "../../tweaker/core.mjs";
29
+ import { failure, isObject } from "../../utils/index.mjs";
30
+ import { deserializeActionCall } from "./actionSerialization.mjs";
31
+ function applySerializedActionAndTrackNewModelIds(subtreeRoot, call) {
32
+ if (!call.serialized) {
33
+ throw failure("cannot apply a non-serialized action call, use 'applyAction' instead");
34
+ }
35
+ assertTweakedObject(subtreeRoot, "subtreeRoot");
36
+ const deserializedCall = deserializeActionCall(call, subtreeRoot);
37
+ const modelIdOverrides = [];
38
+ const patchDisposer = onPatches(subtreeRoot, (patches) => {
39
+ scanPatchesForModelIdChanges(subtreeRoot, modelIdOverrides, patches);
40
+ });
41
+ try {
42
+ const returnValue = applyAction(subtreeRoot, deserializedCall);
43
+ return {
44
+ returnValue,
45
+ serializedActionCall: __spreadProps(__spreadValues({}, call), {
46
+ modelIdOverrides
47
+ })
48
+ };
49
+ } finally {
50
+ patchDisposer();
51
+ }
52
+ }
53
+ function scanPatchesForModelIdChanges(root, modelIdOverrides, patches) {
54
+ const len = patches.length;
55
+ for (let i = 0; i < len; i++) {
56
+ const patch = patches[i];
57
+ if (patch.op === "replace" || patch.op === "add") {
58
+ deepScanValueForModelIdChanges(root, modelIdOverrides, patch.value, patch.path);
59
+ }
60
+ }
61
+ }
62
+ function deepScanValueForModelIdChanges(root, modelIdOverrides, value, path) {
63
+ if (path.length >= 1 && typeof value === "string") {
64
+ const parent = resolvePath(root, path.slice(0, path.length - 1)).value;
65
+ if (isModel(parent)) {
66
+ const propertyName = path[path.length - 1];
67
+ if (propertyName === getModelIdPropertyName(parent.constructor)) {
68
+ modelIdOverrides.push({
69
+ op: "replace",
70
+ path: path.slice(),
71
+ value
72
+ });
73
+ }
74
+ }
75
+ } else if (Array.isArray(value)) {
76
+ const len = value.length;
77
+ for (let i = 0; i < len; i++) {
78
+ path.push(i);
79
+ deepScanValueForModelIdChanges(root, modelIdOverrides, value[i], path);
80
+ path.pop();
81
+ }
82
+ } else if (isObject(value)) {
83
+ if (!value[frozenKey]) {
84
+ const keys = Object.keys(value);
85
+ const len = keys.length;
86
+ for (let i = 0; i < len; i++) {
87
+ const propName = keys[i];
88
+ const propValue = value[propName];
89
+ path.push(propName);
90
+ deepScanValueForModelIdChanges(root, modelIdOverrides, propValue, path);
91
+ path.pop();
92
+ }
93
+ }
94
+ }
95
+ }
96
+ function applySerializedActionAndSyncNewModelIds(subtreeRoot, call) {
97
+ if (!call.serialized) {
98
+ throw failure("cannot apply a non-serialized action call, use 'applyAction' instead");
99
+ }
100
+ assertTweakedObject(subtreeRoot, "subtreeRoot");
101
+ const deserializedCall = deserializeActionCall(call, subtreeRoot);
102
+ let returnValue;
103
+ runInAction(() => {
104
+ returnValue = applyAction(subtreeRoot, deserializedCall);
105
+ applyPatches(subtreeRoot, call.modelIdOverrides);
106
+ });
107
+ return returnValue;
108
+ }
109
+ export { applySerializedActionAndSyncNewModelIds, applySerializedActionAndTrackNewModelIds };
110
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbHlTZXJpYWxpemVkQWN0aW9uLm1qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FjdGlvbk1pZGRsZXdhcmVzL2FjdGlvblNlcmlhbGl6YXRpb24vYXBwbHlTZXJpYWxpemVkQWN0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJ1bkluQWN0aW9uIH0gZnJvbSBcIm1vYnhcIlxuaW1wb3J0IHsgYXBwbHlBY3Rpb24gfSBmcm9tIFwiLi4vLi4vYWN0aW9uL2FwcGx5QWN0aW9uXCJcbmltcG9ydCB7IGZyb3plbktleSB9IGZyb20gXCIuLi8uLi9mcm96ZW4vRnJvemVuXCJcbmltcG9ydCB7IGdldE1vZGVsSWRQcm9wZXJ0eU5hbWUgfSBmcm9tIFwiLi4vLi4vbW9kZWwvZ2V0TW9kZWxNZXRhZGF0YVwiXG5pbXBvcnQgeyBpc01vZGVsIH0gZnJvbSBcIi4uLy4uL21vZGVsL3V0aWxzXCJcbmltcG9ydCB7IHJlc29sdmVQYXRoIH0gZnJvbSBcIi4uLy4uL3BhcmVudC9wYXRoXCJcbmltcG9ydCB0eXBlIHsgV3JpdGFibGVQYXRoIH0gZnJvbSBcIi4uLy4uL3BhcmVudC9wYXRoVHlwZXNcIlxuaW1wb3J0IHsgYXBwbHlQYXRjaGVzIH0gZnJvbSBcIi4uLy4uL3BhdGNoL2FwcGx5UGF0Y2hlc1wiXG5pbXBvcnQgeyBvblBhdGNoZXMgfSBmcm9tIFwiLi4vLi4vcGF0Y2gvZW1pdFBhdGNoXCJcbmltcG9ydCB0eXBlIHsgUGF0Y2ggfSBmcm9tIFwiLi4vLi4vcGF0Y2gvUGF0Y2hcIlxuaW1wb3J0IHsgYXNzZXJ0VHdlYWtlZE9iamVjdCB9IGZyb20gXCIuLi8uLi90d2Vha2VyL2NvcmVcIlxuaW1wb3J0IHsgZmFpbHVyZSwgaXNPYmplY3QgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIlxuaW1wb3J0IHsgZGVzZXJpYWxpemVBY3Rpb25DYWxsLCBTZXJpYWxpemVkQWN0aW9uQ2FsbCB9IGZyb20gXCIuL2FjdGlvblNlcmlhbGl6YXRpb25cIlxuXG4vKipcbiAqIFNlcmlhbGl6ZWQgYWN0aW9uIGNhbGwgd2l0aCBtb2RlbCBJRCBvdmVycmlkZXMuXG4gKiBDYW4gYmUgZ2VuZXJhdGVkIHdpdGggYGFwcGx5U2VyaWFsaXplZEFjdGlvbkFuZFRyYWNrTmV3TW9kZWxJZHNgLlxuICogVG8gYmUgYXBwbGllZCB3aXRoIGBhcHBseVNlcmlhbGl6ZWRBY3Rpb25BbmRTeW5jTmV3TW9kZWxJZHNgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlcmlhbGl6ZWRBY3Rpb25DYWxsV2l0aE1vZGVsSWRPdmVycmlkZXMgZXh0ZW5kcyBTZXJpYWxpemVkQWN0aW9uQ2FsbCB7XG4gIC8qKlxuICAgKiBNb2RlbCBJZCBvdmVycmlkZXMgdG8gYmUgYXBwbGllZCBhdCB0aGUgZW5kIG9mIGFwcGx5aW5nIHRoZSBhY3Rpb24uXG4gICAqL1xuICByZWFkb25seSBtb2RlbElkT3ZlcnJpZGVzOiBSZWFkb25seUFycmF5PFBhdGNoPlxufVxuXG4vKipcbiAqIEFwcGxpZXMgKHJ1bnMpIGEgc2VyaWFsaXplZCBhY3Rpb24gb3ZlciBhIHRhcmdldCBvYmplY3QuXG4gKiBJbiB0aGlzIG1vZGUgbmV3bHkgZ2VuZXJhdGVkIC8gbW9kaWZpZWQgbW9kZWwgSURzIHdpbGwgYmUgdHJhY2tlZFxuICogc28gdGhleSBjYW4gYmUgbGF0ZXIgc3luY2hyb25pemVkIHdoZW4gYXBwbHlpbmcgaXQgb24gYW5vdGhlciBtYWNoaW5lXG4gKiB2aWEgYGFwcGx5U2VyaWFsaXplZEFjdGlvbkFuZFN5bmNOZXdNb2RlbElkc2AuXG4gKiBUaGlzIG1lYW5zIHRoaXMgbWV0aG9kIGlzIHVzdWFsbHkgdXNlZCBvbiB0aGUgc2VydmVyIHNpZGUuXG4gKlxuICogSWYgeW91IGludGVuZCB0byBhcHBseSBub24tc2VyaWFsaXplZCBhY3Rpb25zIGNoZWNrIGBhcHBseUFjdGlvbmAgaW5zdGVhZC5cbiAqXG4gKiBAcGFyYW0gc3VidHJlZVJvb3QgU3VidHJlZSByb290IHRhcmdldCBvYmplY3QgdG8gcnVuIHRoZSBhY3Rpb24gb3Zlci5cbiAqIEBwYXJhbSBjYWxsIFRoZSBzZXJpYWxpemVkIGFjdGlvbiwgdXN1YWxseSBhcyBjb21pbmcgZnJvbSB0aGUgc2VydmVyL2NsaWVudC5cbiAqIEByZXR1cm5zIFRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGFjdGlvbiwgaWYgYW55LCBwbHVzIGEgbmV3IHNlcmlhbGl6ZWQgYWN0aW9uXG4gKiB3aXRoIG1vZGVsIG92ZXJyaWRlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5U2VyaWFsaXplZEFjdGlvbkFuZFRyYWNrTmV3TW9kZWxJZHM8VFJldCA9IGFueT4oXG4gIHN1YnRyZWVSb290OiBvYmplY3QsXG4gIGNhbGw6IFNlcmlhbGl6ZWRBY3Rpb25DYWxsXG4pOiB7XG4gIHJldHVyblZhbHVlOiBUUmV0XG4gIHNlcmlhbGl6ZWRBY3Rpb25DYWxsOiBTZXJpYWxpemVkQWN0aW9uQ2FsbFdpdGhNb2RlbElkT3ZlcnJpZGVzXG59IHtcbiAgaWYgKCFjYWxsLnNlcmlhbGl6ZWQpIHtcbiAgICB0aHJvdyBmYWlsdXJlKFwiY2Fubm90IGFwcGx5IGEgbm9uLXNlcmlhbGl6ZWQgYWN0aW9uIGNhbGwsIHVzZSAnYXBwbHlBY3Rpb24nIGluc3RlYWRcIilcbiAgfVxuXG4gIGFzc2VydFR3ZWFrZWRPYmplY3Qoc3VidHJlZVJvb3QsIFwic3VidHJlZVJvb3RcIilcblxuICBjb25zdCBkZXNlcmlhbGl6ZWRDYWxsID0gZGVzZXJpYWxpemVBY3Rpb25DYWxsKGNhbGwsIHN1YnRyZWVSb290KVxuXG4gIGNvbnN0IG1vZGVsSWRPdmVycmlkZXM6IFBhdGNoW10gPSBbXVxuXG4gIC8vIHNldCBhIHBhdGNoIGxpc3RlbmVyIHRvIHRyYWNrIGNoYW5nZXMgdG8gbW9kZWwgaWRzXG4gIGNvbnN0IHBhdGNoRGlzcG9zZXIgPSBvblBhdGNoZXMoc3VidHJlZVJvb3QsIChwYXRjaGVzKSA9PiB7XG4gICAgc2NhblBhdGNoZXNGb3JNb2RlbElkQ2hhbmdlcyhzdWJ0cmVlUm9vdCwgbW9kZWxJZE92ZXJyaWRlcywgcGF0Y2hlcylcbiAgfSlcblxuICB0cnkge1xuICAgIGNvbnN0IHJldHVyblZhbHVlID0gYXBwbHlBY3Rpb24oc3VidHJlZVJvb3QsIGRlc2VyaWFsaXplZENhbGwpXG5cbiAgICByZXR1cm4ge1xuICAgICAgcmV0dXJuVmFsdWUsXG4gICAgICBzZXJpYWxpemVkQWN0aW9uQ2FsbDoge1xuICAgICAgICAuLi5jYWxsLFxuICAgICAgICBtb2RlbElkT3ZlcnJpZGVzLFxuICAgICAgfSxcbiAgICB9XG4gIH0gZmluYWxseSB7XG4gICAgcGF0Y2hEaXNwb3NlcigpXG4gIH1cbn1cblxuZnVuY3Rpb24gc2NhblBhdGNoZXNGb3JNb2RlbElkQ2hhbmdlcyhyb290OiBvYmplY3QsIG1vZGVsSWRPdmVycmlkZXM6IFBhdGNoW10sIHBhdGNoZXM6IFBhdGNoW10pIHtcbiAgY29uc3QgbGVuID0gcGF0Y2hlcy5sZW5ndGhcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIGNvbnN0IHBhdGNoID0gcGF0Y2hlc1tpXVxuICAgIGlmIChwYXRjaC5vcCA9PT0gXCJyZXBsYWNlXCIgfHwgcGF0Y2gub3AgPT09IFwiYWRkXCIpIHtcbiAgICAgIGRlZXBTY2FuVmFsdWVGb3JNb2RlbElkQ2hhbmdlcyhcbiAgICAgICAgcm9vdCxcbiAgICAgICAgbW9kZWxJZE92ZXJyaWRlcyxcbiAgICAgICAgcGF0Y2gudmFsdWUsXG4gICAgICAgIHBhdGNoLnBhdGggYXMgV3JpdGFibGVQYXRoXG4gICAgICApXG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGRlZXBTY2FuVmFsdWVGb3JNb2RlbElkQ2hhbmdlcyhcbiAgcm9vdDogb2JqZWN0LFxuICBtb2RlbElkT3ZlcnJpZGVzOiBQYXRjaFtdLFxuICB2YWx1ZTogYW55LFxuICBwYXRoOiBXcml0YWJsZVBhdGhcbikge1xuICBpZiAocGF0aC5sZW5ndGggPj0gMSAmJiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAvLyBlbnN1cmUgdGhlIHBhcmVudCBpcyBhbiBhY3R1YWwgbW9kZWxcbiAgICBjb25zdCBwYXJlbnQgPSByZXNvbHZlUGF0aChyb290LCBwYXRoLnNsaWNlKDAsIHBhdGgubGVuZ3RoIC0gMSkpLnZhbHVlXG5cbiAgICBpZiAoaXNNb2RlbChwYXJlbnQpKSB7XG4gICAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPSBwYXRoW3BhdGgubGVuZ3RoIC0gMV1cbiAgICAgIGlmIChwcm9wZXJ0eU5hbWUgPT09IGdldE1vZGVsSWRQcm9wZXJ0eU5hbWUocGFyZW50LmNvbnN0cnVjdG9yIGFzIGFueSkpIHtcbiAgICAgICAgLy8gZm91bmQgb25lXG4gICAgICAgIG1vZGVsSWRPdmVycmlkZXMucHVzaCh7XG4gICAgICAgICAgb3A6IFwicmVwbGFjZVwiLFxuICAgICAgICAgIHBhdGg6IHBhdGguc2xpY2UoKSxcbiAgICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgY29uc3QgbGVuID0gdmFsdWUubGVuZ3RoXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgcGF0aC5wdXNoKGkpXG4gICAgICBkZWVwU2NhblZhbHVlRm9yTW9kZWxJZENoYW5nZXMocm9vdCwgbW9kZWxJZE92ZXJyaWRlcywgdmFsdWVbaV0sIHBhdGgpXG4gICAgICBwYXRoLnBvcCgpXG4gICAgfVxuICB9IGVsc2UgaWYgKGlzT2JqZWN0KHZhbHVlKSkge1xuICAgIC8vIHNraXAgZnJvemVuIHZhbHVlc1xuICAgIGlmICghdmFsdWVbZnJvemVuS2V5XSkge1xuICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHZhbHVlKVxuICAgICAgY29uc3QgbGVuID0ga2V5cy5sZW5ndGhcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgY29uc3QgcHJvcE5hbWUgPSBrZXlzW2ldXG4gICAgICAgIGNvbnN0IHByb3BWYWx1ZSA9IHZhbHVlW3Byb3BOYW1lXVxuXG4gICAgICAgIHBhdGgucHVzaChwcm9wTmFtZSlcbiAgICAgICAgZGVlcFNjYW5WYWx1ZUZvck1vZGVsSWRDaGFuZ2VzKHJvb3QsIG1vZGVsSWRPdmVycmlkZXMsIHByb3BWYWx1ZSwgcGF0aClcbiAgICAgICAgcGF0aC5wb3AoKVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEFwcGxpZXMgKHJ1bnMpIGEgc2VyaWFsaXplZCBhY3Rpb24gb3ZlciBhIHRhcmdldCBvYmplY3QuXG4gKiBJbiB0aGlzIG1vZGUgbmV3bHkgZ2VuZXJhdGVkIC8gbW9kaWZpZWQgbW9kZWwgSURzIHByZXZpb3VzbHkgdHJhY2tlZFxuICogYnkgYGFwcGx5U2VyaWFsaXplZEFjdGlvbkFuZFRyYWNrTmV3TW9kZWxJZHNgIHdpbGwgYmUgc3luY2hyb25pemVkIGFmdGVyXG4gKiB0aGUgYWN0aW9uIGlzIGFwcGxpZWQuXG4gKiBUaGlzIG1lYW5zIHRoaXMgbWV0aG9kIGlzIHVzdWFsbHkgdXNlZCBvbiB0aGUgY2xpZW50IHNpZGUuXG4gKlxuICogSWYgeW91IGludGVuZCB0byBhcHBseSBub24tc2VyaWFsaXplZCBhY3Rpb25zIGNoZWNrIGBhcHBseUFjdGlvbmAgaW5zdGVhZC5cbiAqXG4gKiBAcGFyYW0gc3VidHJlZVJvb3QgU3VidHJlZSByb290IHRhcmdldCBvYmplY3QgdG8gcnVuIHRoZSBhY3Rpb24gb3Zlci5cbiAqIEBwYXJhbSBjYWxsIFRoZSBzZXJpYWxpemVkIGFjdGlvbiwgdXN1YWxseSBhcyBjb21pbmcgZnJvbSB0aGUgc2VydmVyL2NsaWVudC5cbiAqIEByZXR1cm5zIFRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGFjdGlvbiwgaWYgYW55LlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlTZXJpYWxpemVkQWN0aW9uQW5kU3luY05ld01vZGVsSWRzPFRSZXQgPSBhbnk+KFxuICBzdWJ0cmVlUm9vdDogb2JqZWN0LFxuICBjYWxsOiBTZXJpYWxpemVkQWN0aW9uQ2FsbFdpdGhNb2RlbElkT3ZlcnJpZGVzXG4pOiBUUmV0IHtcbiAgaWYgKCFjYWxsLnNlcmlhbGl6ZWQpIHtcbiAgICB0aHJvdyBmYWlsdXJlKFwiY2Fubm90IGFwcGx5IGEgbm9uLXNlcmlhbGl6ZWQgYWN0aW9uIGNhbGwsIHVzZSAnYXBwbHlBY3Rpb24nIGluc3RlYWRcIilcbiAgfVxuXG4gIGFzc2VydFR3ZWFrZWRPYmplY3Qoc3VidHJlZVJvb3QsIFwic3VidHJlZVJvb3RcIilcblxuICBjb25zdCBkZXNlcmlhbGl6ZWRDYWxsID0gZGVzZXJpYWxpemVBY3Rpb25DYWxsKGNhbGwsIHN1YnRyZWVSb290KVxuXG4gIGxldCByZXR1cm5WYWx1ZTogYW55XG4gIHJ1bkluQWN0aW9uKCgpID0+IHtcbiAgICByZXR1cm5WYWx1ZSA9IGFwcGx5QWN0aW9uKHN1YnRyZWVSb290LCBkZXNlcmlhbGl6ZWRDYWxsKVxuXG4gICAgLy8gYXBwbHkgbW9kZWwgaWQgb3ZlcnJpZGVzXG4gICAgYXBwbHlQYXRjaGVzKHN1YnRyZWVSb290LCBjYWxsLm1vZGVsSWRPdmVycmlkZXMpXG4gIH0pXG5cbiAgcmV0dXJuIHJldHVyblZhbHVlXG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2tEQXlDRSxhQUNBO01BS0ksQ0FBQyxLQUFLLFlBQVk7VUFDZCxRQUFRLHNFQUFzRTtBQUFBO3NCQUdsRSxhQUFhLGFBQWE7UUFFeEMsbUJBQW1CLHNCQUFzQixNQUFNLFdBQVc7UUFFMUQsbUJBQTRCO1FBRzVCLGdCQUFnQixVQUFVLGFBQWEsQ0FBQztpQ0FDZixhQUFhLGtCQUFrQixPQUFPO0FBQUEsR0FDcEU7TUFFRztVQUNJLGNBQWMsWUFBWSxhQUFhLGdCQUFnQjtXQUV0RDtBQUFBLE1BQ0w7QUFBQSxNQUNBLHNCQUFzQixpQ0FDakIsT0FEaUI7QUFBQSxRQUVwQjtBQUFBOzs7OztBQU1SO0FBRUEsc0NBQXNDLE1BQWMsa0JBQTJCO1FBQ3ZFLE1BQU0sUUFBUTtXQUNYLElBQUksR0FBRyxJQUFJLEtBQUssS0FBSztVQUN0QixRQUFRLFFBQVE7UUFDbEIsTUFBTSxPQUFPLGFBQWEsTUFBTSxPQUFPLE9BQU87cUNBRTlDLE1BQ0Esa0JBQ0EsTUFBTSxPQUNOLE1BQU0sSUFBb0I7QUFBQTs7QUFJbEM7QUFFQSx3Q0FDRSxNQUNBLGtCQUNBLE9BQ0E7TUFFSSxLQUFLLFVBQVUsS0FBSyxPQUFPLFVBQVUsVUFBVTtVQUUzQyxTQUFTLFlBQVksTUFBTSxLQUFLLE1BQU0sR0FBRyxLQUFLLFNBQVMsQ0FBQyxDQUFDLEVBQUU7UUFFN0QsUUFBUSxNQUFNLEdBQUc7WUFDYixlQUFlLEtBQUssS0FBSyxTQUFTO1VBQ3BDLGlCQUFpQix1QkFBdUIsT0FBTyxXQUFrQixHQUFHO3lCQUVyRCxLQUFLO0FBQUEsVUFDcEIsSUFBSTtBQUFBLFVBQ0osTUFBTSxLQUFLO1VBQ1g7QUFBQSxTQUNEO0FBQUE7O2FBR0ksTUFBTSxRQUFRLEtBQUssR0FBRztVQUN6QixNQUFNLE1BQU07YUFDVCxJQUFJLEdBQUcsSUFBSSxLQUFLLEtBQUs7V0FDdkIsS0FBSyxDQUFDO3FDQUNvQixNQUFNLGtCQUFrQixNQUFNLElBQUksSUFBSTtXQUNoRTs7YUFFRSxTQUFTLEtBQUssR0FBRztRQUV0QixDQUFDLE1BQU0sWUFBWTtZQUNmLE9BQU8sT0FBTyxLQUFLLEtBQUs7WUFDeEIsTUFBTSxLQUFLO2VBQ1IsSUFBSSxHQUFHLElBQUksS0FBSyxLQUFLO2NBQ3RCLFdBQVcsS0FBSztjQUNoQixZQUFZLE1BQU07YUFFbkIsS0FBSyxRQUFRO3VDQUNhLE1BQU0sa0JBQWtCLFdBQVcsSUFBSTthQUNqRTs7OztBQUliO2lEQWdCRSxhQUNBO01BRUksQ0FBQyxLQUFLLFlBQVk7VUFDZCxRQUFRLHNFQUFzRTtBQUFBO3NCQUdsRSxhQUFhLGFBQWE7UUFFeEMsbUJBQW1CLHNCQUFzQixNQUFNLFdBQVc7TUFFNUQ7Y0FDUTtrQkFDSSxZQUFZLGFBQWEsZ0JBQWdCO2lCQUcxQyxhQUFhLEtBQUssZ0JBQWdCO0FBQUEsR0FDaEQ7U0FFTTtBQUNUOzsifQ==
@@ -0,0 +1,15 @@
1
+ import { namespace, isArray } from "../../utils/index.mjs";
2
+ import { cannotSerialize } from "./core.mjs";
3
+ const arraySerializer = {
4
+ id: `${namespace}/array`,
5
+ serialize(value, serialize) {
6
+ if (!isArray(value))
7
+ return cannotSerialize;
8
+ return value.map(serialize);
9
+ },
10
+ deserialize(arr, deserialize) {
11
+ return arr.map(deserialize);
12
+ }
13
+ };
14
+ export { arraySerializer };
15
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXlTZXJpYWxpemVyLm1qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FjdGlvbk1pZGRsZXdhcmVzL2FjdGlvblNlcmlhbGl6YXRpb24vYXJyYXlTZXJpYWxpemVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSU9ic2VydmFibGVBcnJheSB9IGZyb20gXCJtb2J4XCJcbmltcG9ydCB7IGlzQXJyYXksIG5hbWVzcGFjZSB9IGZyb20gXCIuLi8uLi91dGlsc1wiXG5pbXBvcnQgeyBBY3Rpb25DYWxsQXJndW1lbnRTZXJpYWxpemVyLCBjYW5ub3RTZXJpYWxpemUgfSBmcm9tIFwiLi9jb3JlXCJcblxuZXhwb3J0IGNvbnN0IGFycmF5U2VyaWFsaXplcjogQWN0aW9uQ2FsbEFyZ3VtZW50U2VyaWFsaXplcjxhbnlbXSB8IElPYnNlcnZhYmxlQXJyYXk8YW55PiwgYW55W10+ID0ge1xuICBpZDogYCR7bmFtZXNwYWNlfS9hcnJheWAsXG5cbiAgc2VyaWFsaXplKHZhbHVlLCBzZXJpYWxpemUpIHtcbiAgICBpZiAoIWlzQXJyYXkodmFsdWUpKSByZXR1cm4gY2Fubm90U2VyaWFsaXplXG5cbiAgICAvLyB0aGlzIHdpbGwgYWxzbyB0cmFuc2Zvcm0gb2JzZXJ2YWJsZSBhcnJheXMgaW50byBub24tb2JzZXJ2YWJsZSBvbmVzXG4gICAgcmV0dXJuIHZhbHVlLm1hcChzZXJpYWxpemUpXG4gIH0sXG5cbiAgZGVzZXJpYWxpemUoYXJyLCBkZXNlcmlhbGl6ZSkge1xuICAgIHJldHVybiBhcnIubWFwKGRlc2VyaWFsaXplKVxuICB9LFxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O01BSWEsa0JBQXNGO0FBQUEsRUFDakcsSUFBSSxHQUFHO0FBQUEsRUFFUCxVQUFVLE9BQU87UUFDWCxDQUFDLFFBQVEsS0FBSzthQUFVO1dBR3JCLE1BQU0sSUFBSSxTQUFTO0FBQUE7RUFHNUIsWUFBWSxLQUFLO1dBQ1IsSUFBSSxJQUFJLFdBQVc7QUFBQTs7OyJ9
@@ -0,0 +1,3 @@
1
+ const cannotSerialize = Symbol("cannotSerialize");
2
+ export { cannotSerialize };
3
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hY3Rpb25NaWRkbGV3YXJlcy9hY3Rpb25TZXJpYWxpemF0aW9uL2NvcmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGNhbm5vdFNlcmlhbGl6ZSA9IFN5bWJvbChcImNhbm5vdFNlcmlhbGl6ZVwiKVxuXG4vKipcbiAqIFNlcmlhbGl6ZXIgb2YgYWN0aW9uIGNhbGwgYXJndW1lbnRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFjdGlvbkNhbGxBcmd1bWVudFNlcmlhbGl6ZXI8VE9yaWdpbmFsLCBUU2VyaWFsaXplZD4ge1xuICAvKipcbiAgICogU2VyaWFsaXplciBJRCwgbXVzdCBiZSB1bmlxdWUuXG4gICAqL1xuICBpZDogc3RyaW5nXG5cbiAgLyoqXG4gICAqIFNlcmlhbGl6ZXMgYW4gYWN0aW9uIGNhbGwgYXJndW1lbnQsIHJldHVybmluZyBgY2Fubm90U2VyaWFsaXplYCBpZiBub3QgcG9zc2libGUuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSBWYWx1ZSB0byBzZXJpYWxpemUuXG4gICAqIEBwYXJhbSB0YXJnZXRSb290IFRhcmdldCByb290LCBpZiBwcm92aWRlZC5cbiAgICogQHBhcmFtIHNlcmlhbGl6ZUNoaWxkIFNlcmlhbGl6ZSBhIGNoaWxkLlxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgc2VyaWFsaXplKFxuICAgIHZhbHVlOiB1bmtub3duLFxuICAgIHNlcmlhbGl6ZUNoaWxkOiAodjogdW5rbm93bikgPT4gdW5rbm93bixcbiAgICB0YXJnZXRSb290OiBvYmplY3QgfCB1bmRlZmluZWRcbiAgKTogVFNlcmlhbGl6ZWQgfCB0eXBlb2YgY2Fubm90U2VyaWFsaXplXG5cbiAgLyoqXG4gICAqIERlc2VyaWFsaXplcyBhbiBhY3Rpb24gY2FsbCBhcmd1bWVudC5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIFZhbHVlIHRvIGRlc2VyaWFsaXplLlxuICAgKiBAcGFyYW0gdGFyZ2V0Um9vdCBUYXJnZXQgcm9vdCwgaWYgcHJvdmlkZWQuXG4gICAqIEBwYXJhbSBkZXNlcmlhbGl6ZUNoaWxkIERlc2VyaWFsaXplIGEgY2hpbGQuXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBkZXNlcmlhbGl6ZShcbiAgICB2YWx1ZTogVFNlcmlhbGl6ZWQsXG4gICAgZGVzZXJpYWxpemVDaGlsZDogKHY6IHVua25vd24pID0+IHVua25vd24sXG4gICAgdGFyZ2V0Um9vdDogb2JqZWN0IHwgdW5kZWZpbmVkXG4gICk6IFRPcmlnaW5hbFxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJNQUFhLGtCQUFrQixPQUFPLGlCQUFpQjs7In0=
@@ -0,0 +1,15 @@
1
+ import { namespace } from "../../utils/index.mjs";
2
+ import { cannotSerialize } from "./core.mjs";
3
+ const dateSerializer = {
4
+ id: `${namespace}/dateAsTimestamp`,
5
+ serialize(date) {
6
+ if (!(date instanceof Date))
7
+ return cannotSerialize;
8
+ return +date;
9
+ },
10
+ deserialize(timestamp) {
11
+ return new Date(timestamp);
12
+ }
13
+ };
14
+ export { dateSerializer };
15
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZVNlcmlhbGl6ZXIubWpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYWN0aW9uTWlkZGxld2FyZXMvYWN0aW9uU2VyaWFsaXphdGlvbi9kYXRlU2VyaWFsaXplci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBuYW1lc3BhY2UgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIlxuaW1wb3J0IHsgQWN0aW9uQ2FsbEFyZ3VtZW50U2VyaWFsaXplciwgY2Fubm90U2VyaWFsaXplIH0gZnJvbSBcIi4vY29yZVwiXG5cbmV4cG9ydCBjb25zdCBkYXRlU2VyaWFsaXplcjogQWN0aW9uQ2FsbEFyZ3VtZW50U2VyaWFsaXplcjxEYXRlLCBudW1iZXI+ID0ge1xuICBpZDogYCR7bmFtZXNwYWNlfS9kYXRlQXNUaW1lc3RhbXBgLFxuXG4gIHNlcmlhbGl6ZShkYXRlKSB7XG4gICAgaWYgKCEoZGF0ZSBpbnN0YW5jZW9mIERhdGUpKSByZXR1cm4gY2Fubm90U2VyaWFsaXplXG4gICAgcmV0dXJuICtkYXRlXG4gIH0sXG5cbiAgZGVzZXJpYWxpemUodGltZXN0YW1wKSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKHRpbWVzdGFtcClcbiAgfSxcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztNQUdhLGlCQUE2RDtBQUFBLEVBQ3hFLElBQUksR0FBRztBQUFBLEVBRVAsVUFBVTtRQUNKLGtCQUFrQjthQUFjO1dBQzdCLENBQUM7QUFBQTtFQUdWLFlBQVk7V0FDSCxJQUFJLEtBQUssU0FBUztBQUFBOzs7In0=
@@ -0,0 +1,32 @@
1
+ import { isObservableMap } from "mobx";
2
+ import { namespace } from "../../utils/index.mjs";
3
+ import { cannotSerialize } from "./core.mjs";
4
+ const mapSerializer = {
5
+ id: `${namespace}/mapAsArray`,
6
+ serialize(map, serialize) {
7
+ if (!(map instanceof Map) && !isObservableMap(map))
8
+ return cannotSerialize;
9
+ const arr = [];
10
+ const iter = map.keys();
11
+ let cur = iter.next();
12
+ while (!cur.done) {
13
+ const k = cur.value;
14
+ const v = map.get(k);
15
+ arr.push([serialize(k), serialize(v)]);
16
+ cur = iter.next();
17
+ }
18
+ return arr;
19
+ },
20
+ deserialize(arr, deserialize) {
21
+ const map = /* @__PURE__ */ new Map();
22
+ const len = arr.length;
23
+ for (let i = 0; i < len; i++) {
24
+ const k = arr[i][0];
25
+ const v = arr[i][1];
26
+ map.set(deserialize(k), deserialize(v));
27
+ }
28
+ return map;
29
+ }
30
+ };
31
+ export { mapSerializer };
32
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwU2VyaWFsaXplci5tanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hY3Rpb25NaWRkbGV3YXJlcy9hY3Rpb25TZXJpYWxpemF0aW9uL21hcFNlcmlhbGl6ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNPYnNlcnZhYmxlTWFwLCBPYnNlcnZhYmxlTWFwIH0gZnJvbSBcIm1vYnhcIlxuaW1wb3J0IHsgbmFtZXNwYWNlIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCJcbmltcG9ydCB7IEFjdGlvbkNhbGxBcmd1bWVudFNlcmlhbGl6ZXIsIGNhbm5vdFNlcmlhbGl6ZSB9IGZyb20gXCIuL2NvcmVcIlxuXG5leHBvcnQgY29uc3QgbWFwU2VyaWFsaXplcjogQWN0aW9uQ2FsbEFyZ3VtZW50U2VyaWFsaXplcjxcbiAgTWFwPGFueSwgYW55PiB8IE9ic2VydmFibGVNYXA8YW55LCBhbnk+LFxuICBbYW55LCBhbnldW11cbj4gPSB7XG4gIGlkOiBgJHtuYW1lc3BhY2V9L21hcEFzQXJyYXlgLFxuXG4gIHNlcmlhbGl6ZShtYXAsIHNlcmlhbGl6ZSkge1xuICAgIGlmICghKG1hcCBpbnN0YW5jZW9mIE1hcCkgJiYgIWlzT2JzZXJ2YWJsZU1hcChtYXApKSByZXR1cm4gY2Fubm90U2VyaWFsaXplXG5cbiAgICBjb25zdCBhcnI6IFthbnksIGFueV1bXSA9IFtdXG5cbiAgICBjb25zdCBpdGVyID0gbWFwLmtleXMoKVxuICAgIGxldCBjdXIgPSBpdGVyLm5leHQoKVxuICAgIHdoaWxlICghY3VyLmRvbmUpIHtcbiAgICAgIGNvbnN0IGsgPSBjdXIudmFsdWVcbiAgICAgIGNvbnN0IHYgPSBtYXAuZ2V0KGspXG4gICAgICBhcnIucHVzaChbc2VyaWFsaXplKGspLCBzZXJpYWxpemUodildKVxuICAgICAgY3VyID0gaXRlci5uZXh0KClcbiAgICB9XG5cbiAgICByZXR1cm4gYXJyXG4gIH0sXG5cbiAgZGVzZXJpYWxpemUoYXJyLCBkZXNlcmlhbGl6ZSkge1xuICAgIGNvbnN0IG1hcCA9IG5ldyBNYXAoKVxuXG4gICAgY29uc3QgbGVuID0gYXJyLmxlbmd0aFxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGNvbnN0IGsgPSBhcnJbaV1bMF1cbiAgICAgIGNvbnN0IHYgPSBhcnJbaV1bMV1cbiAgICAgIG1hcC5zZXQoZGVzZXJpYWxpemUoayksIGRlc2VyaWFsaXplKHYpKVxuICAgIH1cblxuICAgIHJldHVybiBtYXBcbiAgfSxcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7TUFJYSxnQkFHVDtBQUFBLEVBQ0YsSUFBSSxHQUFHO0FBQUEsRUFFUCxVQUFVLEtBQUs7UUFDVCxpQkFBaUIsUUFBUSxDQUFDLGdCQUFnQixHQUFHO2FBQVU7VUFFckQsTUFBb0I7VUFFcEIsT0FBTyxJQUFJO1FBQ2IsTUFBTSxLQUFLO1dBQ1IsQ0FBQyxJQUFJLE1BQU07WUFDVixJQUFJLElBQUk7WUFDUixJQUFJLElBQUksSUFBSSxDQUFDO1VBQ2YsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFDL0IsS0FBSzs7V0FHTjtBQUFBO0VBR1QsWUFBWSxLQUFLO1VBQ1QsMEJBQVU7VUFFVixNQUFNLElBQUk7YUFDUCxJQUFJLEdBQUcsSUFBSSxLQUFLLEtBQUs7WUFDdEIsSUFBSSxJQUFJLEdBQUc7WUFDWCxJQUFJLElBQUksR0FBRztVQUNiLElBQUksWUFBWSxDQUFDLEdBQUcsWUFBWSxDQUFDLENBQUM7QUFBQTtXQUdqQztBQUFBOzs7In0=
@@ -0,0 +1,33 @@
1
+ import { fastGetRootPath, resolvePathCheckingIds } from "../../parent/path.mjs";
2
+ import { isTweakedObject } from "../../tweaker/core.mjs";
3
+ import { namespace, failure } from "../../utils/index.mjs";
4
+ import { rootPathToTargetPathIds } from "../utils.mjs";
5
+ import { cannotSerialize } from "./core.mjs";
6
+ const objectPathSerializer = {
7
+ id: `${namespace}/objectPath`,
8
+ serialize(value, _, targetRoot) {
9
+ if (typeof value !== "object" || value === null || !isTweakedObject(value, false))
10
+ return cannotSerialize;
11
+ if (targetRoot) {
12
+ const rootPath = fastGetRootPath(value);
13
+ if (rootPath.root === targetRoot) {
14
+ return {
15
+ targetPath: rootPath.path,
16
+ targetPathIds: rootPathToTargetPathIds(rootPath)
17
+ };
18
+ }
19
+ }
20
+ return cannotSerialize;
21
+ },
22
+ deserialize(ref, _, targetRoot) {
23
+ if (targetRoot) {
24
+ const result = resolvePathCheckingIds(targetRoot, ref.targetPath, ref.targetPathIds);
25
+ if (result.resolved) {
26
+ return result.value;
27
+ }
28
+ }
29
+ throw failure(`object at path ${JSON.stringify(ref.targetPath)} with ids ${JSON.stringify(ref.targetPathIds)} could not be resolved`);
30
+ }
31
+ };
32
+ export { objectPathSerializer };
33
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0UGF0aFNlcmlhbGl6ZXIubWpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYWN0aW9uTWlkZGxld2FyZXMvYWN0aW9uU2VyaWFsaXphdGlvbi9vYmplY3RQYXRoU2VyaWFsaXplci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmYXN0R2V0Um9vdFBhdGgsIHJlc29sdmVQYXRoQ2hlY2tpbmdJZHMgfSBmcm9tIFwiLi4vLi4vcGFyZW50L3BhdGhcIlxuaW1wb3J0IHsgUGF0aCB9IGZyb20gXCIuLi8uLi9wYXJlbnQvcGF0aFR5cGVzXCJcbmltcG9ydCB7IGlzVHdlYWtlZE9iamVjdCB9IGZyb20gXCIuLi8uLi90d2Vha2VyL2NvcmVcIlxuaW1wb3J0IHsgZmFpbHVyZSwgbmFtZXNwYWNlIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCJcbmltcG9ydCB7IHJvb3RQYXRoVG9UYXJnZXRQYXRoSWRzIH0gZnJvbSBcIi4uL3V0aWxzXCJcbmltcG9ydCB7IEFjdGlvbkNhbGxBcmd1bWVudFNlcmlhbGl6ZXIsIGNhbm5vdFNlcmlhbGl6ZSB9IGZyb20gXCIuL2NvcmVcIlxuXG5pbnRlcmZhY2UgT2JqZWN0UGF0aCB7XG4gIHRhcmdldFBhdGg6IFBhdGhcbiAgdGFyZ2V0UGF0aElkczogKHN0cmluZyB8IG51bGwpW11cbn1cblxuZXhwb3J0IGNvbnN0IG9iamVjdFBhdGhTZXJpYWxpemVyOiBBY3Rpb25DYWxsQXJndW1lbnRTZXJpYWxpemVyPG9iamVjdCwgT2JqZWN0UGF0aD4gPSB7XG4gIGlkOiBgJHtuYW1lc3BhY2V9L29iamVjdFBhdGhgLFxuXG4gIHNlcmlhbGl6ZSh2YWx1ZSwgXywgdGFyZ2V0Um9vdCkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwib2JqZWN0XCIgfHwgdmFsdWUgPT09IG51bGwgfHwgIWlzVHdlYWtlZE9iamVjdCh2YWx1ZSwgZmFsc2UpKVxuICAgICAgcmV0dXJuIGNhbm5vdFNlcmlhbGl6ZVxuXG4gICAgLy8gdHJ5IHRvIHNlcmlhbGl6ZSBhIHJlZiB0byBpdHMgcGF0aCBpZiBwb3NzaWJsZSBpbnN0ZWFkXG4gICAgaWYgKHRhcmdldFJvb3QpIHtcbiAgICAgIGNvbnN0IHJvb3RQYXRoID0gZmFzdEdldFJvb3RQYXRoKHZhbHVlKVxuICAgICAgaWYgKHJvb3RQYXRoLnJvb3QgPT09IHRhcmdldFJvb3QpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB0YXJnZXRQYXRoOiByb290UGF0aC5wYXRoLFxuICAgICAgICAgIHRhcmdldFBhdGhJZHM6IHJvb3RQYXRoVG9UYXJnZXRQYXRoSWRzKHJvb3RQYXRoKSxcbiAgICAgICAgfSBhcyBPYmplY3RQYXRoXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNhbm5vdFNlcmlhbGl6ZVxuICB9LFxuXG4gIGRlc2VyaWFsaXplKHJlZiwgXywgdGFyZ2V0Um9vdCkge1xuICAgIC8vIHRyeSB0byByZXNvbHZlIHRoZSBub2RlIGJhY2tcbiAgICBpZiAodGFyZ2V0Um9vdCkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gcmVzb2x2ZVBhdGhDaGVja2luZ0lkcyh0YXJnZXRSb290LCByZWYudGFyZ2V0UGF0aCwgcmVmLnRhcmdldFBhdGhJZHMpXG4gICAgICBpZiAocmVzdWx0LnJlc29sdmVkKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQudmFsdWVcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aHJvdyBmYWlsdXJlKFxuICAgICAgYG9iamVjdCBhdCBwYXRoICR7SlNPTi5zdHJpbmdpZnkocmVmLnRhcmdldFBhdGgpfSB3aXRoIGlkcyAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICByZWYudGFyZ2V0UGF0aElkc1xuICAgICAgKX0gY291bGQgbm90IGJlIHJlc29sdmVkYFxuICAgIClcbiAgfSxcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztNQVlhLHVCQUF5RTtBQUFBLEVBQ3BGLElBQUksR0FBRztBQUFBLEVBRVAsVUFBVSxPQUFPLEdBQUc7UUFDZCxPQUFPLFVBQVUsWUFBWSxVQUFVLFFBQVEsQ0FBQyxnQkFBZ0IsT0FBTyxLQUFLO2FBQ3ZFO1FBR0wsWUFBWTtZQUNSLFdBQVcsZ0JBQWdCLEtBQUs7VUFDbEMsU0FBUyxTQUFTLFlBQVk7ZUFDekI7QUFBQSxVQUNMLFlBQVksU0FBUztBQUFBLFVBQ3JCLGVBQWUsd0JBQXdCLFFBQVE7QUFBQTs7O1dBSzlDO0FBQUE7RUFHVCxZQUFZLEtBQUssR0FBRztRQUVkLFlBQVk7WUFDUixTQUFTLHVCQUF1QixZQUFZLElBQUksWUFBWSxJQUFJLGFBQWE7VUFDL0UsT0FBTyxVQUFVO2VBQ1osT0FBTztBQUFBOztVQUlaLFFBQ0osa0JBQWtCLEtBQUssVUFBVSxJQUFJLFVBQVUsY0FBYyxLQUFLLFVBQ2hFLElBQUksYUFBYSx5QkFDTTtBQUFBOzs7In0=
@@ -0,0 +1,18 @@
1
+ import { fromSnapshot } from "../../snapshot/fromSnapshot.mjs";
2
+ import { getSnapshot } from "../../snapshot/getSnapshot.mjs";
3
+ import { isTweakedObject } from "../../tweaker/core.mjs";
4
+ import { namespace } from "../../utils/index.mjs";
5
+ import { cannotSerialize } from "./core.mjs";
6
+ const objectSnapshotSerializer = {
7
+ id: `${namespace}/objectSnapshot`,
8
+ serialize(value) {
9
+ if (typeof value !== "object" || value === null || !isTweakedObject(value, false))
10
+ return cannotSerialize;
11
+ return getSnapshot(value);
12
+ },
13
+ deserialize(snapshot) {
14
+ return fromSnapshot(snapshot);
15
+ }
16
+ };
17
+ export { objectSnapshotSerializer };
18
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0U25hcHNob3RTZXJpYWxpemVyLm1qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FjdGlvbk1pZGRsZXdhcmVzL2FjdGlvblNlcmlhbGl6YXRpb24vb2JqZWN0U25hcHNob3RTZXJpYWxpemVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZyb21TbmFwc2hvdCB9IGZyb20gXCIuLi8uLi9zbmFwc2hvdC9mcm9tU25hcHNob3RcIlxuaW1wb3J0IHsgZ2V0U25hcHNob3QgfSBmcm9tIFwiLi4vLi4vc25hcHNob3QvZ2V0U25hcHNob3RcIlxuaW1wb3J0IHsgaXNUd2Vha2VkT2JqZWN0IH0gZnJvbSBcIi4uLy4uL3R3ZWFrZXIvY29yZVwiXG5pbXBvcnQgeyBuYW1lc3BhY2UgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIlxuaW1wb3J0IHsgQWN0aW9uQ2FsbEFyZ3VtZW50U2VyaWFsaXplciwgY2Fubm90U2VyaWFsaXplIH0gZnJvbSBcIi4vY29yZVwiXG5cbmV4cG9ydCBjb25zdCBvYmplY3RTbmFwc2hvdFNlcmlhbGl6ZXI6IEFjdGlvbkNhbGxBcmd1bWVudFNlcmlhbGl6ZXI8b2JqZWN0LCBvYmplY3Q+ID0ge1xuICBpZDogYCR7bmFtZXNwYWNlfS9vYmplY3RTbmFwc2hvdGAsXG5cbiAgc2VyaWFsaXplKHZhbHVlKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJvYmplY3RcIiB8fCB2YWx1ZSA9PT0gbnVsbCB8fCAhaXNUd2Vha2VkT2JqZWN0KHZhbHVlLCBmYWxzZSkpXG4gICAgICByZXR1cm4gY2Fubm90U2VyaWFsaXplXG5cbiAgICByZXR1cm4gZ2V0U25hcHNob3QodmFsdWUpXG4gIH0sXG5cbiAgZGVzZXJpYWxpemUoc25hcHNob3QpIHtcbiAgICByZXR1cm4gZnJvbVNuYXBzaG90KHNuYXBzaG90KVxuICB9LFxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O01BTWEsMkJBQXlFO0FBQUEsRUFDcEYsSUFBSSxHQUFHO0FBQUEsRUFFUCxVQUFVO1FBQ0osT0FBTyxVQUFVLFlBQVksVUFBVSxRQUFRLENBQUMsZ0JBQWdCLE9BQU8sS0FBSzthQUN2RTtXQUVGLFlBQVksS0FBSztBQUFBO0VBRzFCLFlBQVk7V0FDSCxhQUFhLFFBQVE7QUFBQTs7OyJ9
@@ -0,0 +1,27 @@
1
+ import { isObservableObject } from "mobx";
2
+ import { namespace, isPlainObject } from "../../utils/index.mjs";
3
+ import { cannotSerialize } from "./core.mjs";
4
+ const plainObjectSerializer = {
5
+ id: `${namespace}/plainObject`,
6
+ serialize(value, serialize) {
7
+ if (!isPlainObject(value) && !isObservableObject(value))
8
+ return cannotSerialize;
9
+ return mapObjectFields(value, serialize);
10
+ },
11
+ deserialize(obj, serialize) {
12
+ return mapObjectFields(obj, serialize);
13
+ }
14
+ };
15
+ function mapObjectFields(originalObj, mapFn) {
16
+ const obj = {};
17
+ const keys = Object.keys(originalObj);
18
+ const len = keys.length;
19
+ for (let i = 0; i < len; i++) {
20
+ const k = keys[i];
21
+ const v = originalObj[k];
22
+ obj[k] = mapFn(v);
23
+ }
24
+ return obj;
25
+ }
26
+ export { plainObjectSerializer };
27
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhaW5PYmplY3RTZXJpYWxpemVyLm1qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FjdGlvbk1pZGRsZXdhcmVzL2FjdGlvblNlcmlhbGl6YXRpb24vcGxhaW5PYmplY3RTZXJpYWxpemVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzT2JzZXJ2YWJsZU9iamVjdCB9IGZyb20gXCJtb2J4XCJcbmltcG9ydCB7IGlzUGxhaW5PYmplY3QsIG5hbWVzcGFjZSB9IGZyb20gXCIuLi8uLi91dGlsc1wiXG5pbXBvcnQgeyBBY3Rpb25DYWxsQXJndW1lbnRTZXJpYWxpemVyLCBjYW5ub3RTZXJpYWxpemUgfSBmcm9tIFwiLi9jb3JlXCJcblxuZXhwb3J0IGNvbnN0IHBsYWluT2JqZWN0U2VyaWFsaXplcjogQWN0aW9uQ2FsbEFyZ3VtZW50U2VyaWFsaXplcjxvYmplY3QsIG9iamVjdD4gPSB7XG4gIGlkOiBgJHtuYW1lc3BhY2V9L3BsYWluT2JqZWN0YCxcblxuICBzZXJpYWxpemUodmFsdWUsIHNlcmlhbGl6ZSkge1xuICAgIGlmICghaXNQbGFpbk9iamVjdCh2YWx1ZSkgJiYgIWlzT2JzZXJ2YWJsZU9iamVjdCh2YWx1ZSkpIHJldHVybiBjYW5ub3RTZXJpYWxpemVcblxuICAgIC8vIHRoaXMgd2lsbCBtYWtlIG9ic2VydmFibGUgb2JqZWN0cyBub24tb2JzZXJ2YWJsZSBvbmVzXG4gICAgcmV0dXJuIG1hcE9iamVjdEZpZWxkcyh2YWx1ZSwgc2VyaWFsaXplKVxuICB9LFxuXG4gIGRlc2VyaWFsaXplKG9iaiwgc2VyaWFsaXplKSB7XG4gICAgcmV0dXJuIG1hcE9iamVjdEZpZWxkcyhvYmosIHNlcmlhbGl6ZSlcbiAgfSxcbn1cblxuZnVuY3Rpb24gbWFwT2JqZWN0RmllbGRzKG9yaWdpbmFsT2JqOiBhbnksIG1hcEZuOiAoeDogYW55KSA9PiBhbnkpOiBhbnkge1xuICBjb25zdCBvYmo6IGFueSA9IHt9XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvcmlnaW5hbE9iailcbiAgY29uc3QgbGVuID0ga2V5cy5sZW5ndGhcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIGNvbnN0IGsgPSBrZXlzW2ldXG4gICAgY29uc3QgdiA9IG9yaWdpbmFsT2JqW2tdXG4gICAgb2JqW2tdID0gbWFwRm4odilcbiAgfVxuICByZXR1cm4gb2JqXG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O01BSWEsd0JBQXNFO0FBQUEsRUFDakYsSUFBSSxHQUFHO0FBQUEsRUFFUCxVQUFVLE9BQU87UUFDWCxDQUFDLGNBQWMsS0FBSyxLQUFLLENBQUMsbUJBQW1CLEtBQUs7YUFBVTtXQUd6RCxnQkFBZ0IsT0FBTyxTQUFTO0FBQUE7RUFHekMsWUFBWSxLQUFLO1dBQ1IsZ0JBQWdCLEtBQUssU0FBUztBQUFBOztBQUl6Qyx5QkFBeUIsYUFBa0I7UUFDbkMsTUFBVztRQUNYLE9BQU8sT0FBTyxLQUFLLFdBQVc7UUFDOUIsTUFBTSxLQUFLO1dBQ1IsSUFBSSxHQUFHLElBQUksS0FBSyxLQUFLO1VBQ3RCLElBQUksS0FBSztVQUNULElBQUksWUFBWTtRQUNsQixLQUFLLE1BQU0sQ0FBQztBQUFBO1NBRVg7QUFDVDs7In0=
@@ -0,0 +1,39 @@
1
+ import { namespace } from "../../utils/index.mjs";
2
+ import { cannotSerialize } from "./core.mjs";
3
+ const primitiveSerializer = {
4
+ id: `${namespace}/primitiveAsString`,
5
+ serialize(value) {
6
+ if (Number.isNaN(value)) {
7
+ return "nan";
8
+ }
9
+ switch (value) {
10
+ case Infinity:
11
+ return "+inf";
12
+ case -Infinity:
13
+ return "-inf";
14
+ }
15
+ if (typeof value === "bigint") {
16
+ return value.toString();
17
+ }
18
+ if (value === void 0) {
19
+ return "undefined";
20
+ }
21
+ return cannotSerialize;
22
+ },
23
+ deserialize(str) {
24
+ switch (str) {
25
+ case "nan":
26
+ return NaN;
27
+ case "+inf":
28
+ return Infinity;
29
+ case "-inf":
30
+ return -Infinity;
31
+ case "undefined":
32
+ return void 0;
33
+ default:
34
+ return BigInt(str);
35
+ }
36
+ }
37
+ };
38
+ export { primitiveSerializer };
39
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlU2VyaWFsaXplci5tanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hY3Rpb25NaWRkbGV3YXJlcy9hY3Rpb25TZXJpYWxpemF0aW9uL3ByaW1pdGl2ZVNlcmlhbGl6ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbmFtZXNwYWNlIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCJcbmltcG9ydCB7IEFjdGlvbkNhbGxBcmd1bWVudFNlcmlhbGl6ZXIsIGNhbm5vdFNlcmlhbGl6ZSB9IGZyb20gXCIuL2NvcmVcIlxuXG5leHBvcnQgY29uc3QgcHJpbWl0aXZlU2VyaWFsaXplcjogQWN0aW9uQ2FsbEFyZ3VtZW50U2VyaWFsaXplcjxcbiAgbnVtYmVyIHwgYmlnaW50IHwgdW5kZWZpbmVkLFxuICBzdHJpbmdcbj4gPSB7XG4gIGlkOiBgJHtuYW1lc3BhY2V9L3ByaW1pdGl2ZUFzU3RyaW5nYCxcblxuICBzZXJpYWxpemUodmFsdWUpIHtcbiAgICAvLyBudW1iZXJcbiAgICBpZiAoTnVtYmVyLmlzTmFOKHZhbHVlKSkge1xuICAgICAgcmV0dXJuIFwibmFuXCJcbiAgICB9XG4gICAgc3dpdGNoICh2YWx1ZSkge1xuICAgICAgY2FzZSArSW5maW5pdHk6XG4gICAgICAgIHJldHVybiBcIitpbmZcIlxuICAgICAgY2FzZSAtSW5maW5pdHk6XG4gICAgICAgIHJldHVybiBcIi1pbmZcIlxuICAgIH1cblxuICAgIC8vIGJpZ2ludFxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwiYmlnaW50XCIpIHtcbiAgICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygpXG4gICAgfVxuXG4gICAgLy8gdW5kZWZpbmVkXG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBcInVuZGVmaW5lZFwiXG4gICAgfVxuXG4gICAgcmV0dXJuIGNhbm5vdFNlcmlhbGl6ZVxuICB9LFxuXG4gIGRlc2VyaWFsaXplKHN0cikge1xuICAgIHN3aXRjaCAoc3RyKSB7XG4gICAgICBjYXNlIFwibmFuXCI6XG4gICAgICAgIHJldHVybiBOYU5cbiAgICAgIGNhc2UgXCIraW5mXCI6XG4gICAgICAgIHJldHVybiArSW5maW5pdHlcbiAgICAgIGNhc2UgXCItaW5mXCI6XG4gICAgICAgIHJldHVybiAtSW5maW5pdHlcbiAgICAgIGNhc2UgXCJ1bmRlZmluZWRcIjpcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIEJpZ0ludChzdHIpXG4gICAgfVxuICB9LFxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O01BR2Esc0JBR1Q7QUFBQSxFQUNGLElBQUksR0FBRztBQUFBLEVBRVAsVUFBVTtRQUVKLE9BQU8sTUFBTSxLQUFLLEdBQUc7YUFDaEI7QUFBQTtZQUVEO0FBQUEsV0FDRDtlQUNJO0FBQUEsV0FDSjtlQUNJO0FBQUE7UUFJUCxPQUFPLFVBQVUsVUFBVTthQUN0QixNQUFNOztRQUlYLFVBQVUsUUFBVzthQUNoQjtBQUFBO1dBR0Y7QUFBQTtFQUdULFlBQVk7WUFDRjtBQUFBLFdBQ0Q7ZUFDSTtBQUFBLFdBQ0o7ZUFDSTtBQUFBLFdBQ0o7ZUFDSTtBQUFBLFdBQ0o7ZUFDSTtBQUFBO2VBRUEsT0FBTyxHQUFHO0FBQUE7QUFBQTs7OyJ9
@@ -0,0 +1,29 @@
1
+ import { namespace } from "../../utils/index.mjs";
2
+ import { cannotSerialize } from "./core.mjs";
3
+ const setSerializer = {
4
+ id: `${namespace}/setAsArray`,
5
+ serialize(set, serialize) {
6
+ if (!(set instanceof Set))
7
+ return cannotSerialize;
8
+ const arr = [];
9
+ const iter = set.keys();
10
+ let cur = iter.next();
11
+ while (!cur.done) {
12
+ const k = cur.value;
13
+ arr.push(serialize(k));
14
+ cur = iter.next();
15
+ }
16
+ return arr;
17
+ },
18
+ deserialize(arr, deserialize) {
19
+ const set = /* @__PURE__ */ new Set();
20
+ const len = arr.length;
21
+ for (let i = 0; i < len; i++) {
22
+ const k = arr[i];
23
+ set.add(deserialize(k));
24
+ }
25
+ return set;
26
+ }
27
+ };
28
+ export { setSerializer };
29
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0U2VyaWFsaXplci5tanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hY3Rpb25NaWRkbGV3YXJlcy9hY3Rpb25TZXJpYWxpemF0aW9uL3NldFNlcmlhbGl6ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBPYnNlcnZhYmxlU2V0IH0gZnJvbSBcIm1vYnhcIlxuaW1wb3J0IHsgbmFtZXNwYWNlIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCJcbmltcG9ydCB7IEFjdGlvbkNhbGxBcmd1bWVudFNlcmlhbGl6ZXIsIGNhbm5vdFNlcmlhbGl6ZSB9IGZyb20gXCIuL2NvcmVcIlxuXG5leHBvcnQgY29uc3Qgc2V0U2VyaWFsaXplcjogQWN0aW9uQ2FsbEFyZ3VtZW50U2VyaWFsaXplcjxTZXQ8YW55PiB8IE9ic2VydmFibGVTZXQ8YW55PiwgYW55W10+ID0ge1xuICBpZDogYCR7bmFtZXNwYWNlfS9zZXRBc0FycmF5YCxcblxuICBzZXJpYWxpemUoc2V0LCBzZXJpYWxpemUpIHtcbiAgICBpZiAoIShzZXQgaW5zdGFuY2VvZiBTZXQpKSByZXR1cm4gY2Fubm90U2VyaWFsaXplXG5cbiAgICBjb25zdCBhcnI6IGFueVtdID0gW11cblxuICAgIGNvbnN0IGl0ZXIgPSBzZXQua2V5cygpXG4gICAgbGV0IGN1ciA9IGl0ZXIubmV4dCgpXG4gICAgd2hpbGUgKCFjdXIuZG9uZSkge1xuICAgICAgY29uc3QgayA9IGN1ci52YWx1ZVxuICAgICAgYXJyLnB1c2goc2VyaWFsaXplKGspKVxuICAgICAgY3VyID0gaXRlci5uZXh0KClcbiAgICB9XG5cbiAgICByZXR1cm4gYXJyXG4gIH0sXG5cbiAgZGVzZXJpYWxpemUoYXJyLCBkZXNlcmlhbGl6ZSkge1xuICAgIGNvbnN0IHNldCA9IG5ldyBTZXQoKVxuXG4gICAgY29uc3QgbGVuID0gYXJyLmxlbmd0aFxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGNvbnN0IGsgPSBhcnJbaV1cbiAgICAgIHNldC5hZGQoZGVzZXJpYWxpemUoaykpXG4gICAgfVxuXG4gICAgcmV0dXJuIHNldFxuICB9LFxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O01BSWEsZ0JBQW9GO0FBQUEsRUFDL0YsSUFBSSxHQUFHO0FBQUEsRUFFUCxVQUFVLEtBQUs7UUFDVCxpQkFBaUI7YUFBYTtVQUU1QixNQUFhO1VBRWIsT0FBTyxJQUFJO1FBQ2IsTUFBTSxLQUFLO1dBQ1IsQ0FBQyxJQUFJLE1BQU07WUFDVixJQUFJLElBQUk7VUFDVixLQUFLLFVBQVUsQ0FBQyxDQUFDO1lBQ2YsS0FBSzs7V0FHTjtBQUFBO0VBR1QsWUFBWSxLQUFLO1VBQ1QsMEJBQVU7VUFFVixNQUFNLElBQUk7YUFDUCxJQUFJLEdBQUcsSUFBSSxLQUFLLEtBQUs7WUFDdEIsSUFBSSxJQUFJO1VBQ1YsSUFBSSxZQUFZLENBQUMsQ0FBQztBQUFBO1dBR2pCO0FBQUE7OzsifQ==