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,99 @@
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 { lazy, failure } from "../../utils/index.mjs";
8
+ import { getTypeInfo } from "../getTypeInfo.mjs";
9
+ import { resolveStandardTypeNoThrow, resolveTypeChecker, resolveStandardType } from "../resolveTypeChecker.mjs";
10
+ import { TypeInfo, lateTypeChecker, TypeChecker, getTypeCheckerBaseTypeFromValue, TypeCheckerBaseType } from "../TypeChecker.mjs";
11
+ import { TypeCheckError } from "../TypeCheckError.mjs";
12
+ import { typesUnchecked } from "./unchecked.mjs";
13
+ function typesOr(dispatcherOrType, ...moreOrTypes) {
14
+ const orTypes = moreOrTypes.slice();
15
+ let finalDispatcher;
16
+ const firstTypeChecker = resolveStandardTypeNoThrow(dispatcherOrType);
17
+ if (firstTypeChecker) {
18
+ orTypes.unshift(firstTypeChecker);
19
+ } else {
20
+ const dispatcher = dispatcherOrType;
21
+ finalDispatcher = (sn) => {
22
+ const type = dispatcher(sn);
23
+ const typeChecker = resolveTypeChecker(type);
24
+ return typeChecker;
25
+ };
26
+ }
27
+ if (orTypes.length <= 0) {
28
+ throw failure("or type must have at least 1 possible type");
29
+ }
30
+ const typeInfoGen = (t) => new OrTypeInfo(t, orTypes.map(resolveStandardType));
31
+ return lateTypeChecker(() => {
32
+ const checkers = orTypes.map(resolveTypeChecker);
33
+ if (checkers.some((tc) => tc.unchecked)) {
34
+ return typesUnchecked();
35
+ }
36
+ const getTypeName = (...recursiveTypeCheckers) => {
37
+ const typeNames = checkers.map((tc) => {
38
+ if (recursiveTypeCheckers.includes(tc)) {
39
+ return "...";
40
+ }
41
+ return tc.getTypeName(...recursiveTypeCheckers, tc);
42
+ });
43
+ return typeNames.join(" | ");
44
+ };
45
+ let thisTcBaseType;
46
+ if (checkers.some((c) => c.baseType !== checkers[0].baseType)) {
47
+ thisTcBaseType = TypeCheckerBaseType.Any;
48
+ } else {
49
+ thisTcBaseType = checkers[0].baseType;
50
+ }
51
+ const thisTc = new TypeChecker(thisTcBaseType, (value, path) => {
52
+ const someMatchingType = checkers.some((tc) => !tc.check(value, path));
53
+ if (someMatchingType) {
54
+ return null;
55
+ } else {
56
+ return new TypeCheckError(path, getTypeName(thisTc), value);
57
+ }
58
+ }, getTypeName, typeInfoGen, (value) => {
59
+ const valueBaseType = getTypeCheckerBaseTypeFromValue(value);
60
+ const checkerForBaseType = checkers.filter((c) => c.baseType === valueBaseType || c.baseType === TypeCheckerBaseType.Any);
61
+ if (checkerForBaseType.length === 1 && checkerForBaseType[0].baseType === valueBaseType) {
62
+ return checkerForBaseType[0];
63
+ }
64
+ for (let i = 0; i < checkerForBaseType.length; i++) {
65
+ const matchingType = checkerForBaseType[i].snapshotType(value);
66
+ if (matchingType) {
67
+ return matchingType;
68
+ }
69
+ }
70
+ return null;
71
+ }, (sn) => {
72
+ const type = finalDispatcher ? finalDispatcher(sn) : thisTc.snapshotType(sn);
73
+ if (!type) {
74
+ throw failure(`snapshot '${JSON.stringify(sn)}' does not match the following type: ${getTypeName(thisTc)}`);
75
+ }
76
+ return type.fromSnapshotProcessor(sn);
77
+ }, (sn) => {
78
+ const type = finalDispatcher ? finalDispatcher(sn) : thisTc.snapshotType(sn);
79
+ if (!type) {
80
+ throw failure(`snapshot '${JSON.stringify(sn)}' does not match the following type: ${getTypeName(thisTc)}`);
81
+ }
82
+ return type.toSnapshotProcessor(sn);
83
+ });
84
+ return thisTc;
85
+ }, typeInfoGen);
86
+ }
87
+ class OrTypeInfo extends TypeInfo {
88
+ constructor(thisType, orTypes) {
89
+ super(thisType);
90
+ __publicField(this, "orTypes");
91
+ __publicField(this, "_orTypeInfos", lazy(() => this.orTypes.map(getTypeInfo)));
92
+ this.orTypes = orTypes;
93
+ }
94
+ get orTypeInfos() {
95
+ return this._orTypeInfos();
96
+ }
97
+ }
98
+ export { OrTypeInfo, typesOr };
99
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3IubWpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHlwZXMvdXRpbGl0eS9vci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmYWlsdXJlLCBsYXp5IH0gZnJvbSBcIi4uLy4uL3V0aWxzXCJcbmltcG9ydCB7IGdldFR5cGVJbmZvIH0gZnJvbSBcIi4uL2dldFR5cGVJbmZvXCJcbmltcG9ydCB7XG4gIHJlc29sdmVTdGFuZGFyZFR5cGUsXG4gIHJlc29sdmVTdGFuZGFyZFR5cGVOb1Rocm93LFxuICByZXNvbHZlVHlwZUNoZWNrZXIsXG59IGZyb20gXCIuLi9yZXNvbHZlVHlwZUNoZWNrZXJcIlxuaW1wb3J0IHR5cGUgeyBBbnlTdGFuZGFyZFR5cGUsIEFueVR5cGUgfSBmcm9tIFwiLi4vc2NoZW1hc1wiXG5pbXBvcnQge1xuICBnZXRUeXBlQ2hlY2tlckJhc2VUeXBlRnJvbVZhbHVlLFxuICBsYXRlVHlwZUNoZWNrZXIsXG4gIFR5cGVDaGVja2VyLFxuICBUeXBlQ2hlY2tlckJhc2VUeXBlLFxuICBUeXBlSW5mbyxcbiAgVHlwZUluZm9HZW4sXG59IGZyb20gXCIuLi9UeXBlQ2hlY2tlclwiXG5pbXBvcnQgeyBUeXBlQ2hlY2tFcnJvciB9IGZyb20gXCIuLi9UeXBlQ2hlY2tFcnJvclwiXG5pbXBvcnQgeyB0eXBlc1VuY2hlY2tlZCB9IGZyb20gXCIuL3VuY2hlY2tlZFwiXG5cbi8qKlxuICogQSB0eXBlIHRoYXQgcmVwcmVzZW50cyB0aGUgdW5pb24gb2Ygc2V2ZXJhbCBvdGhlciB0eXBlcyAoYSB8IGIgfCBjIHwgLi4uKS5cbiAqIEFjY2VwdHMgYSBkaXNwYXRjaGVyIHRoYXQsIGdpdmVuIGEgc25hcHNob3QsIHJldHVybnMgdGhlIHR5cGVcbiAqIHRoYXQgc25hcHNob3QgaXMuXG4gKlxuICogQHR5cGVwYXJhbSBUIFR5cGUuXG4gKiBAcGFyYW0gZGlzcGF0Y2hlciBGdW5jdGlvbiB0aGF0IGdpdmVuIGEgc25hcHNob3QgcmV0dXJucyB0aGUgdHlwZS5cbiAqIEBwYXJhbSBvclR5cGVzIFBvc3NpYmxlIHR5cGVzLlxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHR5cGVzT3I8VCBleHRlbmRzIEFueVR5cGVbXT4oXG4gIGRpc3BhdGNoZXI6IChzbjogYW55KSA9PiBUW251bWJlcl0sXG4gIC4uLm9yVHlwZXM6IFRcbik6IFRbbnVtYmVyXVxuXG4vKipcbiAqIEEgdHlwZSB0aGF0IHJlcHJlc2VudHMgdGhlIHVuaW9uIG9mIHNldmVyYWwgb3RoZXIgdHlwZXMgKGEgfCBiIHwgYyB8IC4uLikuXG4gKlxuICogRXhhbXBsZTpcbiAqIGBgYHRzXG4gKiBjb25zdCBib29sZWFuT3JOdW1iZXJUeXBlID0gdHlwZXMub3IodHlwZXMuYm9vbGVhbiwgdHlwZXMubnVtYmVyKVxuICogYGBgXG4gKlxuICogQHR5cGVwYXJhbSBUIFR5cGUuXG4gKiBAcGFyYW0gb3JUeXBlcyBQb3NzaWJsZSB0eXBlcy5cbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0eXBlc09yPFQgZXh0ZW5kcyBBbnlUeXBlW10+KC4uLm9yVHlwZXM6IFQpOiBUW251bWJlcl1cblxuZXhwb3J0IGZ1bmN0aW9uIHR5cGVzT3IoXG4gIGRpc3BhdGNoZXJPclR5cGU6ICgoc246IGFueSkgPT4gQW55VHlwZSkgfCBBbnlUeXBlLFxuICAuLi5tb3JlT3JUeXBlczogQW55VHlwZVtdXG4pOiBBbnlUeXBlIHtcbiAgY29uc3Qgb3JUeXBlcyA9IG1vcmVPclR5cGVzLnNsaWNlKClcbiAgbGV0IGZpbmFsRGlzcGF0Y2hlcjogKChzbjogYW55KSA9PiBUeXBlQ2hlY2tlcikgfCB1bmRlZmluZWRcblxuICBjb25zdCBmaXJzdFR5cGVDaGVja2VyID0gcmVzb2x2ZVN0YW5kYXJkVHlwZU5vVGhyb3coZGlzcGF0Y2hlck9yVHlwZSBhcyBBbnlUeXBlKVxuXG4gIGlmIChmaXJzdFR5cGVDaGVja2VyKSB7XG4gICAgb3JUeXBlcy51bnNoaWZ0KGZpcnN0VHlwZUNoZWNrZXIpXG4gIH0gZWxzZSB7XG4gICAgY29uc3QgZGlzcGF0Y2hlciA9IGRpc3BhdGNoZXJPclR5cGUgYXMgKHNuOiBhbnkpID0+IEFueVR5cGVcbiAgICBmaW5hbERpc3BhdGNoZXIgPSAoc246IGFueSkgPT4ge1xuICAgICAgY29uc3QgdHlwZSA9IGRpc3BhdGNoZXIoc24pXG4gICAgICBjb25zdCB0eXBlQ2hlY2tlciA9IHJlc29sdmVUeXBlQ2hlY2tlcih0eXBlKVxuICAgICAgcmV0dXJuIHR5cGVDaGVja2VyXG4gICAgfVxuICB9XG5cbiAgaWYgKG9yVHlwZXMubGVuZ3RoIDw9IDApIHtcbiAgICB0aHJvdyBmYWlsdXJlKFwib3IgdHlwZSBtdXN0IGhhdmUgYXQgbGVhc3QgMSBwb3NzaWJsZSB0eXBlXCIpXG4gIH1cblxuICBjb25zdCB0eXBlSW5mb0dlbjogVHlwZUluZm9HZW4gPSAodCkgPT4gbmV3IE9yVHlwZUluZm8odCwgb3JUeXBlcy5tYXAocmVzb2x2ZVN0YW5kYXJkVHlwZSkpXG5cbiAgcmV0dXJuIGxhdGVUeXBlQ2hlY2tlcigoKSA9PiB7XG4gICAgY29uc3QgY2hlY2tlcnMgPSBvclR5cGVzLm1hcChyZXNvbHZlVHlwZUNoZWNrZXIpXG5cbiAgICAvLyBpZiB0aGUgb3IgaW5jbHVkZXMgdW5jaGVja2VkIHRoZW4gaXQgaXMgdW5jaGVja2VkXG4gICAgaWYgKGNoZWNrZXJzLnNvbWUoKHRjKSA9PiB0Yy51bmNoZWNrZWQpKSB7XG4gICAgICByZXR1cm4gdHlwZXNVbmNoZWNrZWQoKSBhcyBhbnlcbiAgICB9XG5cbiAgICBjb25zdCBnZXRUeXBlTmFtZSA9ICguLi5yZWN1cnNpdmVUeXBlQ2hlY2tlcnM6IFR5cGVDaGVja2VyW10pID0+IHtcbiAgICAgIGNvbnN0IHR5cGVOYW1lcyA9IGNoZWNrZXJzLm1hcCgodGMpID0+IHtcbiAgICAgICAgaWYgKHJlY3Vyc2l2ZVR5cGVDaGVja2Vycy5pbmNsdWRlcyh0YykpIHtcbiAgICAgICAgICByZXR1cm4gXCIuLi5cIlxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0Yy5nZXRUeXBlTmFtZSguLi5yZWN1cnNpdmVUeXBlQ2hlY2tlcnMsIHRjKVxuICAgICAgfSlcblxuICAgICAgcmV0dXJuIHR5cGVOYW1lcy5qb2luKFwiIHwgXCIpXG4gICAgfVxuXG4gICAgbGV0IHRoaXNUY0Jhc2VUeXBlOiBUeXBlQ2hlY2tlckJhc2VUeXBlXG4gICAgaWYgKGNoZWNrZXJzLnNvbWUoKGMpID0+IGMuYmFzZVR5cGUgIT09IGNoZWNrZXJzWzBdLmJhc2VUeXBlKSkge1xuICAgICAgdGhpc1RjQmFzZVR5cGUgPSBUeXBlQ2hlY2tlckJhc2VUeXBlLkFueVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzVGNCYXNlVHlwZSA9IGNoZWNrZXJzWzBdLmJhc2VUeXBlXG4gICAgfVxuXG4gICAgY29uc3QgdGhpc1RjOiBUeXBlQ2hlY2tlciA9IG5ldyBUeXBlQ2hlY2tlcihcbiAgICAgIHRoaXNUY0Jhc2VUeXBlLFxuXG4gICAgICAodmFsdWUsIHBhdGgpID0+IHtcbiAgICAgICAgY29uc3Qgc29tZU1hdGNoaW5nVHlwZSA9IGNoZWNrZXJzLnNvbWUoKHRjKSA9PiAhdGMuY2hlY2sodmFsdWUsIHBhdGgpKVxuICAgICAgICBpZiAoc29tZU1hdGNoaW5nVHlwZSkge1xuICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBUeXBlQ2hlY2tFcnJvcihwYXRoLCBnZXRUeXBlTmFtZSh0aGlzVGMpLCB2YWx1ZSlcbiAgICAgICAgfVxuICAgICAgfSxcblxuICAgICAgZ2V0VHlwZU5hbWUsXG4gICAgICB0eXBlSW5mb0dlbixcblxuICAgICAgKHZhbHVlKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlQmFzZVR5cGUgPSBnZXRUeXBlQ2hlY2tlckJhc2VUeXBlRnJvbVZhbHVlKHZhbHVlKVxuXG4gICAgICAgIGNvbnN0IGNoZWNrZXJGb3JCYXNlVHlwZSA9IGNoZWNrZXJzLmZpbHRlcihcbiAgICAgICAgICAoYykgPT4gYy5iYXNlVHlwZSA9PT0gdmFsdWVCYXNlVHlwZSB8fCBjLmJhc2VUeXBlID09PSBUeXBlQ2hlY2tlckJhc2VUeXBlLkFueVxuICAgICAgICApXG5cbiAgICAgICAgaWYgKGNoZWNrZXJGb3JCYXNlVHlwZS5sZW5ndGggPT09IDEgJiYgY2hlY2tlckZvckJhc2VUeXBlWzBdLmJhc2VUeXBlID09PSB2YWx1ZUJhc2VUeXBlKSB7XG4gICAgICAgICAgLy8gd2hlbiB0aGVyZSBpcyBvbmx5IG9uZSB2YWxpZCBvcHRpb24gYWNjZXB0IGl0IHdpdGhvdXQgYXNraW5nXG4gICAgICAgICAgLy8gdGhpcyBpcyBkb25lIGJlY2F1c2U6XG4gICAgICAgICAgLy8gMSkgcGVyZm9ybWFuY2UgKGF2b2lkIGNoZWNraW5nIHN0cnVjdHVyZSBpZiBub3QgbmVlZGVkKVxuICAgICAgICAgIC8vIDIpIHNvIHdlIGNhbiBhY2NlcHQgdW50eXBlZCBtb2RlbHMgd2hlbiBwYWlyZWQgd2l0aCB1bmRlZmluZWQgfCBudWxsXG4gICAgICAgICAgcmV0dXJuIGNoZWNrZXJGb3JCYXNlVHlwZVswXVxuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGVja2VyRm9yQmFzZVR5cGUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBjb25zdCBtYXRjaGluZ1R5cGUgPSBjaGVja2VyRm9yQmFzZVR5cGVbaV0uc25hcHNob3RUeXBlKHZhbHVlKVxuICAgICAgICAgIGlmIChtYXRjaGluZ1R5cGUpIHtcbiAgICAgICAgICAgIHJldHVybiBtYXRjaGluZ1R5cGVcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfSxcblxuICAgICAgKHNuKSA9PiB7XG4gICAgICAgIGNvbnN0IHR5cGUgPSBmaW5hbERpc3BhdGNoZXIgPyBmaW5hbERpc3BhdGNoZXIoc24pIDogdGhpc1RjLnNuYXBzaG90VHlwZShzbilcbiAgICAgICAgaWYgKCF0eXBlKSB7XG4gICAgICAgICAgdGhyb3cgZmFpbHVyZShcbiAgICAgICAgICAgIGBzbmFwc2hvdCAnJHtKU09OLnN0cmluZ2lmeShzbil9JyBkb2VzIG5vdCBtYXRjaCB0aGUgZm9sbG93aW5nIHR5cGU6ICR7Z2V0VHlwZU5hbWUoXG4gICAgICAgICAgICAgIHRoaXNUY1xuICAgICAgICAgICAgKX1gXG4gICAgICAgICAgKVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHR5cGUuZnJvbVNuYXBzaG90UHJvY2Vzc29yKHNuKVxuICAgICAgfSxcblxuICAgICAgKHNuKSA9PiB7XG4gICAgICAgIGNvbnN0IHR5cGUgPSBmaW5hbERpc3BhdGNoZXIgPyBmaW5hbERpc3BhdGNoZXIoc24pIDogdGhpc1RjLnNuYXBzaG90VHlwZShzbilcbiAgICAgICAgaWYgKCF0eXBlKSB7XG4gICAgICAgICAgdGhyb3cgZmFpbHVyZShcbiAgICAgICAgICAgIGBzbmFwc2hvdCAnJHtKU09OLnN0cmluZ2lmeShzbil9JyBkb2VzIG5vdCBtYXRjaCB0aGUgZm9sbG93aW5nIHR5cGU6ICR7Z2V0VHlwZU5hbWUoXG4gICAgICAgICAgICAgIHRoaXNUY1xuICAgICAgICAgICAgKX1gXG4gICAgICAgICAgKVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHR5cGUudG9TbmFwc2hvdFByb2Nlc3NvcihzbilcbiAgICAgIH1cbiAgICApXG5cbiAgICByZXR1cm4gdGhpc1RjXG4gIH0sIHR5cGVJbmZvR2VuKSBhcyBhbnlcbn1cblxuLyoqXG4gKiBgdHlwZXMub3JgIHR5cGUgaW5mby5cbiAqL1xuZXhwb3J0IGNsYXNzIE9yVHlwZUluZm8gZXh0ZW5kcyBUeXBlSW5mbyB7XG4gIC8vIG1lbW9pemUgdG8gYWx3YXlzIHJldHVybiB0aGUgc2FtZSBhcnJheSBvbiB0aGUgZ2V0dGVyXG4gIHByaXZhdGUgX29yVHlwZUluZm9zID0gbGF6eSgoKSA9PiB0aGlzLm9yVHlwZXMubWFwKGdldFR5cGVJbmZvKSlcblxuICBnZXQgb3JUeXBlSW5mb3MoKTogUmVhZG9ubHlBcnJheTxUeXBlSW5mbz4ge1xuICAgIHJldHVybiB0aGlzLl9vclR5cGVJbmZvcygpXG4gIH1cblxuICBjb25zdHJ1Y3Rvcih0aGlzVHlwZTogQW55U3RhbmRhcmRUeXBlLCByZWFkb25seSBvclR5cGVzOiBSZWFkb25seUFycmF5PEFueVN0YW5kYXJkVHlwZT4pIHtcbiAgICBzdXBlcih0aGlzVHlwZSlcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztpQkFpREUscUJBQ0c7UUFFRyxVQUFVLFlBQVk7TUFDeEI7UUFFRSxtQkFBbUIsMkJBQTJCLGdCQUEyQjtNQUUzRSxrQkFBa0I7WUFDWixRQUFRLGdCQUFnQjtBQUFBLFNBQzNCO1VBQ0MsYUFBYTtzQkFDRCxDQUFDO1lBQ1gsT0FBTyxXQUFXLEVBQUU7WUFDcEIsY0FBYyxtQkFBbUIsSUFBSTthQUNwQztBQUFBOztNQUlQLFFBQVEsVUFBVSxHQUFHO1VBQ2pCLFFBQVEsNENBQTRDO0FBQUE7UUFHdEQsY0FBMkIsQ0FBQyxNQUFNLElBQUksV0FBVyxHQUFHLFFBQVEsSUFBSSxtQkFBbUIsQ0FBQztTQUVuRixnQkFBZ0I7VUFDZixXQUFXLFFBQVEsSUFBSSxrQkFBa0I7UUFHM0MsU0FBUyxLQUFLLENBQUMsT0FBTyxHQUFHLFNBQVMsR0FBRzthQUNoQzs7VUFHSCxjQUFjLElBQUk7WUFDaEIsWUFBWSxTQUFTLElBQUksQ0FBQztZQUMxQixzQkFBc0IsU0FBUyxFQUFFLEdBQUc7aUJBQy9CO0FBQUE7ZUFFRixHQUFHLFlBQVksR0FBRyx1QkFBdUIsRUFBRTtBQUFBLE9BQ25EO2FBRU0sVUFBVSxLQUFLLEtBQUs7QUFBQTtRQUd6QjtRQUNBLFNBQVMsS0FBSyxDQUFDLE1BQU0sRUFBRSxhQUFhLFNBQVMsR0FBRyxRQUFRLEdBQUc7dUJBQzVDLG9CQUFvQjtBQUFBLFdBQ2hDO3VCQUNZLFNBQVMsR0FBRztBQUFBO1VBR3pCLFNBQXNCLElBQUksWUFDOUIsZ0JBRUEsQ0FBQyxPQUFPO1lBQ0EsbUJBQW1CLFNBQVMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLE1BQU0sT0FBTyxJQUFJLENBQUM7VUFDakUsa0JBQWtCO2VBQ2I7QUFBQSxhQUNGO2VBQ0UsSUFBSSxlQUFlLE1BQU0sWUFBWSxNQUFNLEdBQUcsS0FBSztBQUFBO09BSTlELGFBQ0EsYUFFQSxDQUFDO1lBQ08sZ0JBQWdCLGdDQUFnQyxLQUFLO1lBRXJELHFCQUFxQixTQUFTLE9BQ2xDLENBQUMsTUFBTSxFQUFFLGFBQWEsaUJBQWlCLEVBQUUsYUFBYSxvQkFBb0IsR0FBRztVQUczRSxtQkFBbUIsV0FBVyxLQUFLLG1CQUFtQixHQUFHLGFBQWEsZUFBZTtlQUtoRixtQkFBbUI7QUFBQTtlQUduQixJQUFJLEdBQUcsSUFBSSxtQkFBbUIsUUFBUSxLQUFLO2NBQzVDLGVBQWUsbUJBQW1CLEdBQUcsYUFBYSxLQUFLO1lBQ3pELGNBQWM7aUJBQ1Q7QUFBQTs7YUFJSjtBQUFBLE9BR1QsQ0FBQztZQUNPLE9BQU8sa0JBQWtCLGdCQUFnQixFQUFFLElBQUksT0FBTyxhQUFhLEVBQUU7VUFDdkUsQ0FBQyxNQUFNO2NBQ0gsUUFDSixhQUFhLEtBQUssVUFBVSxFQUFFLHlDQUF5QyxZQUNyRSxNQUFNLEdBQ0w7QUFBQTthQUlBLEtBQUssc0JBQXNCLEVBQUU7QUFBQSxPQUd0QyxDQUFDO1lBQ08sT0FBTyxrQkFBa0IsZ0JBQWdCLEVBQUUsSUFBSSxPQUFPLGFBQWEsRUFBRTtVQUN2RSxDQUFDLE1BQU07Y0FDSCxRQUNKLGFBQWEsS0FBSyxVQUFVLEVBQUUseUNBQXlDLFlBQ3JFLE1BQU0sR0FDTDtBQUFBO2FBSUEsS0FBSyxvQkFBb0IsRUFBRTtBQUFBLEtBQ25DO1dBR0k7QUFBQSxLQUNOLFdBQVc7QUFDaEI7TUFLYSxtQkFBbUI7RUFROUIsWUFBWSxVQUFvQztVQUN4QyxRQUFRO0FBRGdDO0FBTnhDLHdDQUFlLEtBQUssTUFBTSxLQUFLLFFBQVEsSUFBSSxXQUFXLENBQUM7bUJBTWY7QUFBQTtNQUo1QztXQUNLLEtBQUs7Ozs7In0=
@@ -0,0 +1,52 @@
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 { getTypeInfo } from "../getTypeInfo.mjs";
8
+ import { resolveTypeChecker, resolveStandardType } from "../resolveTypeChecker.mjs";
9
+ import { lateTypeChecker, TypeChecker, TypeInfo } from "../TypeChecker.mjs";
10
+ import { TypeCheckError } from "../TypeCheckError.mjs";
11
+ function typesRefinement(baseType, checkFn, typeName) {
12
+ const typeInfoGen = (t) => new RefinementTypeInfo(t, resolveStandardType(baseType), checkFn, typeName);
13
+ return lateTypeChecker(() => {
14
+ const baseChecker = resolveTypeChecker(baseType);
15
+ const getTypeName = (...recursiveTypeCheckers) => {
16
+ const baseTypeName = baseChecker.getTypeName(...recursiveTypeCheckers, baseChecker);
17
+ const refinementName = typeName || "refinementOf";
18
+ return `${refinementName}<${baseTypeName}>`;
19
+ };
20
+ const thisTc = new TypeChecker(baseChecker.baseType, (data, path) => {
21
+ const baseErr = baseChecker.check(data, path);
22
+ if (baseErr) {
23
+ return baseErr;
24
+ }
25
+ const refinementErr = checkFn(data);
26
+ if (refinementErr === true) {
27
+ return null;
28
+ } else if (refinementErr === false) {
29
+ return new TypeCheckError(path, getTypeName(thisTc), data);
30
+ } else {
31
+ return refinementErr != null ? refinementErr : null;
32
+ }
33
+ }, getTypeName, typeInfoGen, (sn) => baseChecker.snapshotType(sn), (sn) => baseChecker.fromSnapshotProcessor(sn), (sn) => baseChecker.toSnapshotProcessor(sn));
34
+ return thisTc;
35
+ }, typeInfoGen);
36
+ }
37
+ class RefinementTypeInfo extends TypeInfo {
38
+ constructor(thisType, baseType, checkFunction, typeName) {
39
+ super(thisType);
40
+ __publicField(this, "baseType");
41
+ __publicField(this, "checkFunction");
42
+ __publicField(this, "typeName");
43
+ this.baseType = baseType;
44
+ this.checkFunction = checkFunction;
45
+ this.typeName = typeName;
46
+ }
47
+ get baseTypeInfo() {
48
+ return getTypeInfo(this.baseType);
49
+ }
50
+ }
51
+ export { RefinementTypeInfo, typesRefinement };
52
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmaW5lbWVudC5tanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90eXBlcy91dGlsaXR5L3JlZmluZW1lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0VHlwZUluZm8gfSBmcm9tIFwiLi4vZ2V0VHlwZUluZm9cIlxyXG5pbXBvcnQgeyByZXNvbHZlU3RhbmRhcmRUeXBlLCByZXNvbHZlVHlwZUNoZWNrZXIgfSBmcm9tIFwiLi4vcmVzb2x2ZVR5cGVDaGVja2VyXCJcclxuaW1wb3J0IHR5cGUgeyBBbnlTdGFuZGFyZFR5cGUsIEFueVR5cGUsIFR5cGVUb0RhdGEgfSBmcm9tIFwiLi4vc2NoZW1hc1wiXHJcbmltcG9ydCB7IGxhdGVUeXBlQ2hlY2tlciwgVHlwZUNoZWNrZXIsIFR5cGVJbmZvLCBUeXBlSW5mb0dlbiB9IGZyb20gXCIuLi9UeXBlQ2hlY2tlclwiXHJcbmltcG9ydCB7IFR5cGVDaGVja0Vycm9yIH0gZnJvbSBcIi4uL1R5cGVDaGVja0Vycm9yXCJcclxuXHJcbi8qKlxyXG4gKiBBIHJlZmluZW1lbnQgb3ZlciBhIGdpdmVuIHR5cGUuIFRoaXMgYWxsb3dzIHlvdSB0byBkbyBleHRyYSBjaGVja3NcclxuICogb3ZlciBtb2RlbHMsIGVuc3VyZSBudW1iZXJzIGFyZSBpbnRlZ2VycywgZXRjLlxyXG4gKlxyXG4gKiBFeGFtcGxlOlxyXG4gKiBgYGB0c1xyXG4gKiBjb25zdCBpbnRlZ2VyVHlwZSA9IHR5cGVzLnJlZmluZW1lbnQodHlwZXMubnVtYmVyLCAobikgPT4ge1xyXG4gKiAgIHJldHVybiBOdW1iZXIuaXNJbnRlZ2VyKG4pXHJcbiAqIH0sIFwiaW50ZWdlclwiKVxyXG4gKlxyXG4gKiBjb25zdCBzdW1Nb2RlbFR5cGUgPSB0eXBlcy5yZWZpbmVtZW50KHR5cGVzLm1vZGVsKFN1bSksIChzdW0pID0+IHtcclxuICogICAvLyBpbWFnaW5lIHRoYXQgZm9yIHNvbWUgcmVhc29uIHN1bSBpbmNsdWRlcyBhIG51bWJlciAnYScsIGEgbnVtYmVyICdiJ1xyXG4gKiAgIC8vIGFuZCB0aGUgcmVzdWx0XHJcbiAqXHJcbiAqICAgY29uc3QgcmlnaHRSZXN1bHQgPSBzdW0uYSArIHN1bS5iID09PSBzdW0ucmVzdWx0XHJcbiAqXHJcbiAqICAgLy8gc2ltcGxlIG1vZGUgdGhhdCB3aWxsIGp1c3QgcmV0dXJuIHRoYXQgdGhlIHdob2xlIG1vZGVsIGlzIGluY29ycmVjdFxyXG4gKiAgIHJldHVybiByaWdodFJlc3VsdFxyXG4gKlxyXG4gKiAgIC8vIHRoaXMgd2lsbCByZXR1cm4gdGhhdCB0aGUgcmVzdWx0IGZpZWxkIGlzIHdyb25nXHJcbiAqICAgcmV0dXJuIHJpZ2h0UmVzdWx0ID8gbnVsbCA6IG5ldyBUeXBlQ2hlY2tFcnJvcihbXCJyZXN1bHRcIl0sIFwiYStiXCIsIHN1bS5yZXN1bHQpXHJcbiAqIH0pXHJcbiAqIGBgYFxyXG4gKlxyXG4gKiBAdHlwZXBhcmFtIFQgQmFzZSB0eXBlLlxyXG4gKiBAcGFyYW0gYmFzZVR5cGUgQmFzZSB0eXBlLlxyXG4gKiBAcGFyYW0gY2hlY2tGbiBGdW5jdGlvbiB0aGF0IHdpbGwgcmVjZWl2ZSB0aGUgZGF0YSAoaWYgaXQgcGFzc2VzIHRoZSBiYXNlIHR5cGVcclxuICogY2hlY2spIGFuZCByZXR1cm4gbnVsbCBvciBmYWxzZSBpZiB0aGVyZSB3ZXJlIG5vIGVycm9ycyBvciBlaXRoZXIgYSBUeXBlQ2hlY2tFcnJvciBpbnN0YW5jZSBvclxyXG4gKiB0cnVlIGlmIHRoZXJlIHdlcmUuXHJcbiAqIEByZXR1cm5zXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gdHlwZXNSZWZpbmVtZW50PFQgZXh0ZW5kcyBBbnlUeXBlPihcclxuICBiYXNlVHlwZTogVCxcclxuICBjaGVja0ZuOiAoZGF0YTogVHlwZVRvRGF0YTxUPikgPT4gVHlwZUNoZWNrRXJyb3IgfCBudWxsIHwgYm9vbGVhbixcclxuICB0eXBlTmFtZT86IHN0cmluZ1xyXG4pOiBUIHtcclxuICBjb25zdCB0eXBlSW5mb0dlbjogVHlwZUluZm9HZW4gPSAodCkgPT5cclxuICAgIG5ldyBSZWZpbmVtZW50VHlwZUluZm8odCwgcmVzb2x2ZVN0YW5kYXJkVHlwZShiYXNlVHlwZSksIGNoZWNrRm4sIHR5cGVOYW1lKVxyXG5cclxuICByZXR1cm4gbGF0ZVR5cGVDaGVja2VyKCgpID0+IHtcclxuICAgIGNvbnN0IGJhc2VDaGVja2VyID0gcmVzb2x2ZVR5cGVDaGVja2VyKGJhc2VUeXBlKVxyXG5cclxuICAgIGNvbnN0IGdldFR5cGVOYW1lID0gKC4uLnJlY3Vyc2l2ZVR5cGVDaGVja2VyczogVHlwZUNoZWNrZXJbXSkgPT4ge1xyXG4gICAgICBjb25zdCBiYXNlVHlwZU5hbWUgPSBiYXNlQ2hlY2tlci5nZXRUeXBlTmFtZSguLi5yZWN1cnNpdmVUeXBlQ2hlY2tlcnMsIGJhc2VDaGVja2VyKVxyXG4gICAgICBjb25zdCByZWZpbmVtZW50TmFtZSA9IHR5cGVOYW1lIHx8IFwicmVmaW5lbWVudE9mXCJcclxuICAgICAgcmV0dXJuIGAke3JlZmluZW1lbnROYW1lfTwke2Jhc2VUeXBlTmFtZX0+YFxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHRoaXNUYzogVHlwZUNoZWNrZXIgPSBuZXcgVHlwZUNoZWNrZXIoXHJcbiAgICAgIGJhc2VDaGVja2VyLmJhc2VUeXBlLFxyXG5cclxuICAgICAgKGRhdGEsIHBhdGgpID0+IHtcclxuICAgICAgICBjb25zdCBiYXNlRXJyID0gYmFzZUNoZWNrZXIuY2hlY2soZGF0YSwgcGF0aClcclxuICAgICAgICBpZiAoYmFzZUVycikge1xyXG4gICAgICAgICAgcmV0dXJuIGJhc2VFcnJcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHJlZmluZW1lbnRFcnIgPSBjaGVja0ZuKGRhdGEpXHJcblxyXG4gICAgICAgIGlmIChyZWZpbmVtZW50RXJyID09PSB0cnVlKSB7XHJcbiAgICAgICAgICByZXR1cm4gbnVsbFxyXG4gICAgICAgIH0gZWxzZSBpZiAocmVmaW5lbWVudEVyciA9PT0gZmFsc2UpIHtcclxuICAgICAgICAgIHJldHVybiBuZXcgVHlwZUNoZWNrRXJyb3IocGF0aCwgZ2V0VHlwZU5hbWUodGhpc1RjKSwgZGF0YSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIHJlZmluZW1lbnRFcnIgPz8gbnVsbFxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuXHJcbiAgICAgIGdldFR5cGVOYW1lLFxyXG4gICAgICB0eXBlSW5mb0dlbixcclxuXHJcbiAgICAgIC8vIHdlIGNhbm5vdCBjaGVjayByZWZpbmVtZW50IGhlcmUgc2luY2UgaXQgY2hlY2tzIGRhdGEgaW5zdGFuY2VzLCBub3Qgc25hcHNob3RzXHJcbiAgICAgIChzbikgPT4gYmFzZUNoZWNrZXIuc25hcHNob3RUeXBlKHNuKSxcclxuXHJcbiAgICAgIChzbikgPT4gYmFzZUNoZWNrZXIuZnJvbVNuYXBzaG90UHJvY2Vzc29yKHNuKSxcclxuICAgICAgKHNuKSA9PiBiYXNlQ2hlY2tlci50b1NuYXBzaG90UHJvY2Vzc29yKHNuKVxyXG4gICAgKVxyXG5cclxuICAgIHJldHVybiB0aGlzVGNcclxuICB9LCB0eXBlSW5mb0dlbikgYXMgYW55XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBgdHlwZXMucmVmaW5lbWVudGAgdHlwZSBpbmZvLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFJlZmluZW1lbnRUeXBlSW5mbyBleHRlbmRzIFR5cGVJbmZvIHtcclxuICBnZXQgYmFzZVR5cGVJbmZvKCk6IFR5cGVJbmZvIHtcclxuICAgIHJldHVybiBnZXRUeXBlSW5mbyh0aGlzLmJhc2VUeXBlKVxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICB0aGlzVHlwZTogQW55U3RhbmRhcmRUeXBlLFxyXG4gICAgcmVhZG9ubHkgYmFzZVR5cGU6IEFueVN0YW5kYXJkVHlwZSxcclxuICAgIHJlYWRvbmx5IGNoZWNrRnVuY3Rpb246IChkYXRhOiBhbnkpID0+IFR5cGVDaGVja0Vycm9yIHwgbnVsbCB8IGJvb2xlYW4sXHJcbiAgICByZWFkb25seSB0eXBlTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkXHJcbiAgKSB7XHJcbiAgICBzdXBlcih0aGlzVHlwZSlcclxuICB9XHJcbn1cclxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7eUJBc0NFLFVBQ0EsU0FDQTtRQUVNLGNBQTJCLENBQUMsTUFDaEMsSUFBSSxtQkFBbUIsR0FBRyxvQkFBb0IsUUFBUSxHQUFHLFNBQVMsUUFBUTtTQUVyRSxnQkFBZ0I7VUFDZixjQUFjLG1CQUFtQixRQUFRO1VBRXpDLGNBQWMsSUFBSTtZQUNoQixlQUFlLFlBQVksWUFBWSxHQUFHLHVCQUF1QixXQUFXO1lBQzVFLGlCQUFpQixZQUFZO2FBQzVCLEdBQUcsa0JBQWtCO0FBQUE7VUFHeEIsU0FBc0IsSUFBSSxZQUM5QixZQUFZLFVBRVosQ0FBQyxNQUFNO1lBQ0MsVUFBVSxZQUFZLE1BQU0sTUFBTSxJQUFJO1VBQ3hDLFNBQVM7ZUFDSjtBQUFBO1lBR0gsZ0JBQWdCLFFBQVEsSUFBSTtVQUU5QixrQkFBa0IsTUFBTTtlQUNuQjtBQUFBLGlCQUNFLGtCQUFrQixPQUFPO2VBQzNCLElBQUksZUFBZSxNQUFNLFlBQVksTUFBTSxHQUFHLElBQUk7QUFBQSxhQUNwRDtlQUNFLHdDQUFpQjtBQUFBO09BSTVCLGFBQ0EsYUFHQSxDQUFDLE9BQU8sWUFBWSxhQUFhLEVBQUUsR0FFbkMsQ0FBQyxPQUFPLFlBQVksc0JBQXNCLEVBQUUsR0FDNUMsQ0FBQyxPQUFPLFlBQVksb0JBQW9CLEVBQUUsQ0FBQztXQUd0QztBQUFBLEtBQ04sV0FBVztBQUNoQjtNQUthLDJCQUEyQjtFQUt0QyxZQUNFLFVBQ1MsVUFDQSxlQUNBO1VBRUgsUUFBUTtBQUpMO0FBQ0E7QUFDQTtvQkFGQTt5QkFDQTtvQkFDQTtBQUFBO01BUlA7V0FDSyxZQUFZLEtBQUssUUFBUTtBQUFBOzs7In0=
@@ -0,0 +1,10 @@
1
+ import { identityFn } from "../../utils/index.mjs";
2
+ import { TypeChecker, TypeCheckerBaseType, TypeInfo } from "../TypeChecker.mjs";
3
+ const unchecked = new TypeChecker(TypeCheckerBaseType.Any, null, () => "any", (t) => new UncheckedTypeInfo(t), () => unchecked, identityFn, identityFn);
4
+ function typesUnchecked() {
5
+ return unchecked;
6
+ }
7
+ class UncheckedTypeInfo extends TypeInfo {
8
+ }
9
+ export { UncheckedTypeInfo, typesUnchecked };
10
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5jaGVja2VkLm1qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3R5cGVzL3V0aWxpdHkvdW5jaGVja2VkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlkZW50aXR5Rm4gfSBmcm9tIFwiLi4vLi4vdXRpbHNcIlxyXG5pbXBvcnQgdHlwZSB7IElkZW50aXR5VHlwZSB9IGZyb20gXCIuLi9zY2hlbWFzXCJcclxuaW1wb3J0IHsgVHlwZUNoZWNrZXIsIFR5cGVDaGVja2VyQmFzZVR5cGUsIFR5cGVJbmZvIH0gZnJvbSBcIi4uL1R5cGVDaGVja2VyXCJcclxuXHJcbmNvbnN0IHVuY2hlY2tlZDogSWRlbnRpdHlUeXBlPGFueT4gPSBuZXcgVHlwZUNoZWNrZXIoXHJcbiAgVHlwZUNoZWNrZXJCYXNlVHlwZS5BbnksXHJcbiAgbnVsbCxcclxuICAoKSA9PiBcImFueVwiLFxyXG4gICh0KSA9PiBuZXcgVW5jaGVja2VkVHlwZUluZm8odCksXHJcblxyXG4gICgpID0+IHVuY2hlY2tlZCBhcyBhbnksXHJcblxyXG4gIGlkZW50aXR5Rm4sXHJcbiAgaWRlbnRpdHlGblxyXG4pIGFzIGFueVxyXG5cclxuLyoqXHJcbiAqIEEgdHlwZSB0aGF0IHJlcHJlc2VudHMgYSBnaXZlbiB2YWx1ZSB0aGF0IHdvbid0IGJlIHR5cGUgY2hlY2tlZC5cclxuICogVGhpcyBpcyBiYXNpY2FsbHkgYSB3YXkgdG8gYmFpbCBvdXQgb2YgdGhlIHJ1bnRpbWUgdHlwZSBjaGVja2luZyBzeXN0ZW0uXHJcbiAqXHJcbiAqIEV4YW1wbGU6XHJcbiAqIGBgYHRzXHJcbiAqIGNvbnN0IHVuY2hlY2tlZFNvbWVNb2RlbCA9IHR5cGVzLnVuY2hlY2tlZDxTb21lTW9kZWw+KClcclxuICogY29uc3QgYW55VHlwZSA9IHR5cGVzLnVuY2hlY2tlZDxhbnk+KClcclxuICogY29uc3QgY3VzdG9tVW5jaGVja2VkVHlwZSA9IHR5cGVzLnVuY2hlY2tlZDwoQSAmIEIpIHwgQz4oKVxyXG4gKiBgYGBcclxuICpcclxuICogQHR5cGVwYXJhbSBUIFR5cGUgb2YgdGhlIHZhbHVlLCBvciB1bmtvd24gaWYgbm90IGdpdmVuLlxyXG4gKiBAcmV0dXJuc1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHR5cGVzVW5jaGVja2VkPFQgPSBuZXZlcj4oKTogSWRlbnRpdHlUeXBlPFQ+IHtcclxuICByZXR1cm4gdW5jaGVja2VkXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBgdHlwZXMudW5jaGVja2VkYCB0eXBlIGluZm8uXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgVW5jaGVja2VkVHlwZUluZm8gZXh0ZW5kcyBUeXBlSW5mbyB7fVxyXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSxNQUFNLFlBQStCLElBQUksWUFDdkMsb0JBQW9CLEtBQ3BCLE1BQ0EsTUFBTSxPQUNOLENBQUMsTUFBTSxJQUFJLGtCQUFrQixDQUFDLEdBRTlCLE1BQU0sV0FFTixZQUNBLFVBQVU7O1NBa0JIO0FBQ1Q7TUFLYSwwQkFBMEI7OzsifQ==
@@ -0,0 +1,50 @@
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 { getModelIdPropertyName } from "../model/getModelMetadata.mjs";
8
+ import { modelIdKey, modelTypeKey } from "../model/metadata.mjs";
9
+ import { isModel, isModelSnapshot } from "../model/utils.mjs";
10
+ import { getModelInfoForName } from "../modelShared/modelInfo.mjs";
11
+ import { dataObjectParent } from "../parent/core.mjs";
12
+ import { registerDeepObjectChildrenExtension, getDeepObjectChildren } from "../parent/coreObjectChildren.mjs";
13
+ function byModelTypeAndIdKey(modelType, modelId) {
14
+ return modelType + " " + modelId;
15
+ }
16
+ class ModelPool {
17
+ constructor(root) {
18
+ __publicField(this, "pool");
19
+ var _a;
20
+ root = (_a = dataObjectParent.get(root)) != null ? _a : root;
21
+ this.pool = getDeepChildrenModels(getDeepObjectChildren(root));
22
+ }
23
+ findModelByTypeAndId(modelType, modelId) {
24
+ return modelId ? this.pool.get(byModelTypeAndIdKey(modelType, modelId)) : void 0;
25
+ }
26
+ findModelForSnapshot(sn) {
27
+ if (!isModelSnapshot(sn)) {
28
+ return void 0;
29
+ }
30
+ const modelType = sn[modelTypeKey];
31
+ const modelInfo = getModelInfoForName(modelType);
32
+ const modelIdPropertyName = getModelIdPropertyName(modelInfo.class);
33
+ return modelIdPropertyName ? this.findModelByTypeAndId(sn[modelTypeKey], sn[modelIdPropertyName]) : void 0;
34
+ }
35
+ }
36
+ const getDeepChildrenModels = registerDeepObjectChildrenExtension({
37
+ initData() {
38
+ return /* @__PURE__ */ new Map();
39
+ },
40
+ addNode(node, data) {
41
+ if (isModel(node)) {
42
+ const id = node[modelIdKey];
43
+ if (id) {
44
+ data.set(byModelTypeAndIdKey(node[modelTypeKey], id), node);
45
+ }
46
+ }
47
+ }
48
+ });
49
+ export { ModelPool };
50
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWxQb29sLm1qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL01vZGVsUG9vbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFueU1vZGVsIH0gZnJvbSBcIi4uL21vZGVsL0Jhc2VNb2RlbFwiXG5pbXBvcnQgeyBnZXRNb2RlbElkUHJvcGVydHlOYW1lIH0gZnJvbSBcIi4uL21vZGVsL2dldE1vZGVsTWV0YWRhdGFcIlxuaW1wb3J0IHsgbW9kZWxJZEtleSwgbW9kZWxUeXBlS2V5IH0gZnJvbSBcIi4uL21vZGVsL21ldGFkYXRhXCJcbmltcG9ydCB7IGlzTW9kZWwsIGlzTW9kZWxTbmFwc2hvdCB9IGZyb20gXCIuLi9tb2RlbC91dGlsc1wiXG5pbXBvcnQgeyBNb2RlbENsYXNzIH0gZnJvbSBcIi4uL21vZGVsU2hhcmVkL0Jhc2VNb2RlbFNoYXJlZFwiXG5pbXBvcnQgeyBnZXRNb2RlbEluZm9Gb3JOYW1lIH0gZnJvbSBcIi4uL21vZGVsU2hhcmVkL21vZGVsSW5mb1wiXG5pbXBvcnQgeyBkYXRhT2JqZWN0UGFyZW50IH0gZnJvbSBcIi4uL3BhcmVudC9jb3JlXCJcbmltcG9ydCB7XG4gIGdldERlZXBPYmplY3RDaGlsZHJlbixcbiAgcmVnaXN0ZXJEZWVwT2JqZWN0Q2hpbGRyZW5FeHRlbnNpb24sXG59IGZyb20gXCIuLi9wYXJlbnQvY29yZU9iamVjdENoaWxkcmVuXCJcblxuZnVuY3Rpb24gYnlNb2RlbFR5cGVBbmRJZEtleShtb2RlbFR5cGU6IHN0cmluZywgbW9kZWxJZDogc3RyaW5nKSB7XG4gIHJldHVybiBtb2RlbFR5cGUgKyBcIiBcIiArIG1vZGVsSWRcbn1cblxuZXhwb3J0IGNsYXNzIE1vZGVsUG9vbCB7XG4gIHByaXZhdGUgcG9vbDogUmVhZG9ubHlNYXA8c3RyaW5nLCBBbnlNb2RlbD5cblxuICBjb25zdHJ1Y3Rvcihyb290OiBvYmplY3QpIHtcbiAgICAvLyBtYWtlIHN1cmUgd2UgZG9uJ3QgdXNlIHRoZSBzdWItZGF0YSAkIG9iamVjdFxuICAgIHJvb3QgPSBkYXRhT2JqZWN0UGFyZW50LmdldChyb290KSA/PyByb290XG5cbiAgICB0aGlzLnBvb2wgPSBnZXREZWVwQ2hpbGRyZW5Nb2RlbHMoZ2V0RGVlcE9iamVjdENoaWxkcmVuKHJvb3QpKVxuICB9XG5cbiAgZmluZE1vZGVsQnlUeXBlQW5kSWQobW9kZWxUeXBlOiBzdHJpbmcsIG1vZGVsSWQ6IHN0cmluZyB8IHVuZGVmaW5lZCk6IEFueU1vZGVsIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gbW9kZWxJZCA/IHRoaXMucG9vbC5nZXQoYnlNb2RlbFR5cGVBbmRJZEtleShtb2RlbFR5cGUsIG1vZGVsSWQpKSA6IHVuZGVmaW5lZFxuICB9XG5cbiAgZmluZE1vZGVsRm9yU25hcHNob3Qoc246IGFueSk6IEFueU1vZGVsIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIWlzTW9kZWxTbmFwc2hvdChzbikpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBjb25zdCBtb2RlbFR5cGUgPSBzblttb2RlbFR5cGVLZXldXG4gICAgY29uc3QgbW9kZWxJbmZvID0gZ2V0TW9kZWxJbmZvRm9yTmFtZShtb2RlbFR5cGUpIVxuICAgIGNvbnN0IG1vZGVsSWRQcm9wZXJ0eU5hbWUgPSBnZXRNb2RlbElkUHJvcGVydHlOYW1lKG1vZGVsSW5mby5jbGFzcyBhcyBNb2RlbENsYXNzPEFueU1vZGVsPilcblxuICAgIHJldHVybiBtb2RlbElkUHJvcGVydHlOYW1lXG4gICAgICA/IHRoaXMuZmluZE1vZGVsQnlUeXBlQW5kSWQoc25bbW9kZWxUeXBlS2V5XSwgKHNuIGFzIGFueSlbbW9kZWxJZFByb3BlcnR5TmFtZV0pXG4gICAgICA6IHVuZGVmaW5lZFxuICB9XG59XG5cbmNvbnN0IGdldERlZXBDaGlsZHJlbk1vZGVscyA9IHJlZ2lzdGVyRGVlcE9iamVjdENoaWxkcmVuRXh0ZW5zaW9uPE1hcDxzdHJpbmcsIEFueU1vZGVsPj4oe1xuICBpbml0RGF0YSgpIHtcbiAgICByZXR1cm4gbmV3IE1hcCgpXG4gIH0sXG5cbiAgYWRkTm9kZShub2RlLCBkYXRhKSB7XG4gICAgaWYgKGlzTW9kZWwobm9kZSkpIHtcbiAgICAgIGNvbnN0IGlkID0gbm9kZVttb2RlbElkS2V5XVxuICAgICAgaWYgKGlkKSB7XG4gICAgICAgIGRhdGEuc2V0KGJ5TW9kZWxUeXBlQW5kSWRLZXkobm9kZVttb2RlbFR5cGVLZXldLCBpZCksIG5vZGUpXG4gICAgICB9XG4gICAgfVxuICB9LFxufSlcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFZQSw2QkFBNkIsV0FBbUI7U0FDdkMsWUFBWSxNQUFNO0FBQzNCO01BRWE7RUFHWCxZQUFZO0FBRko7O1dBSUMsdUJBQWlCLElBQUksSUFBSSxNQUF6QixZQUE4QjtTQUVoQyxPQUFPLHNCQUFzQixzQkFBc0IsSUFBSSxDQUFDO0FBQUE7RUFHL0QscUJBQXFCLFdBQW1CO1dBQy9CLFVBQVUsS0FBSyxLQUFLLElBQUksb0JBQW9CLFdBQVcsT0FBTyxDQUFDLElBQUk7QUFBQTtFQUc1RSxxQkFBcUI7UUFDZixDQUFDLGdCQUFnQixFQUFFLEdBQUc7YUFDakI7QUFBQTtVQUdILFlBQVksR0FBRztVQUNmLFlBQVksb0JBQW9CLFNBQVM7VUFDekMsc0JBQXNCLHVCQUF1QixVQUFVLEtBQTZCO1dBRW5GLHNCQUNILEtBQUsscUJBQXFCLEdBQUcsZUFBZ0IsR0FBVyxvQkFBb0IsSUFDNUU7QUFBQTs7QUFJUixNQUFNLHdCQUF3QixvQ0FBMkQ7QUFBQSxFQUN2RjsrQkFDYTs7RUFHYixRQUFRLE1BQU07UUFDUixRQUFRLElBQUksR0FBRztZQUNYLEtBQUssS0FBSztVQUNaLElBQUk7YUFDRCxJQUFJLG9CQUFvQixLQUFLLGVBQWUsRUFBRSxHQUFHLElBQUk7QUFBQTs7O0NBSWpFOzsifQ==
@@ -0,0 +1,15 @@
1
+ function chainFns(...fns) {
2
+ const definedFns = fns.filter((fn) => !!fn);
3
+ if (definedFns.length <= 0)
4
+ return void 0;
5
+ const chainedFn = (v, ...args) => {
6
+ let ret = v;
7
+ for (let i = 0; i < definedFns.length; i++) {
8
+ ret = definedFns[i](ret, ...args);
9
+ }
10
+ return ret;
11
+ };
12
+ return chainedFn;
13
+ }
14
+ export { chainFns };
15
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW5GbnMubWpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvY2hhaW5GbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGNoYWluRm5zPEYgZXh0ZW5kcyBGdW5jdGlvbj4oLi4uZm5zOiAoRiB8IHVuZGVmaW5lZClbXSk6IEYgfCB1bmRlZmluZWQge1xuICBjb25zdCBkZWZpbmVkRm5zID0gZm5zLmZpbHRlcigoZm4pID0+ICEhZm4pXG4gIGlmIChkZWZpbmVkRm5zLmxlbmd0aCA8PSAwKSByZXR1cm4gdW5kZWZpbmVkXG5cbiAgY29uc3QgY2hhaW5lZEZuID0gKHY6IGFueSwgLi4uYXJnczogYW55W10pID0+IHtcbiAgICBsZXQgcmV0ID0gdlxuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkZWZpbmVkRm5zLmxlbmd0aDsgaSsrKSB7XG4gICAgICByZXQgPSBkZWZpbmVkRm5zW2ldIShyZXQsIC4uLmFyZ3MpXG4gICAgfVxuXG4gICAgcmV0dXJuIHJldFxuICB9XG5cbiAgcmV0dXJuIGNoYWluZWRGbiBhcyB1bmtub3duIGFzIEZcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoicUJBQWdEO1FBQ3hDLGFBQWEsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRTtNQUN0QyxXQUFXLFVBQVU7V0FBVTtRQUU3QixZQUFZLENBQUMsTUFBVztRQUN4QixNQUFNO2FBRUQsSUFBSSxHQUFHLElBQUksV0FBVyxRQUFRLEtBQUs7WUFDcEMsV0FBVyxHQUFJLEtBQUssR0FBRyxJQUFJO0FBQUE7V0FHNUI7QUFBQTtTQUdGO0FBQ1Q7OyJ9
@@ -0,0 +1,228 @@
1
+ import * as mobx from "mobx";
2
+ import { isObservableMap, isObservableSet, isObservableArray, isObservableObject } from "mobx";
3
+ class MobxKeystoneError extends Error {
4
+ constructor(msg) {
5
+ super(msg);
6
+ Object.setPrototypeOf(this, MobxKeystoneError.prototype);
7
+ }
8
+ }
9
+ function failure(msg) {
10
+ return new MobxKeystoneError(msg);
11
+ }
12
+ const writableHiddenPropDescriptor = {
13
+ enumerable: false,
14
+ writable: true,
15
+ configurable: false,
16
+ value: void 0
17
+ };
18
+ function addHiddenProp(object, propName, value, writable = true) {
19
+ if (writable) {
20
+ Object.defineProperty(object, propName, writableHiddenPropDescriptor);
21
+ object[propName] = value;
22
+ } else {
23
+ Object.defineProperty(object, propName, {
24
+ enumerable: false,
25
+ writable,
26
+ configurable: true,
27
+ value
28
+ });
29
+ }
30
+ }
31
+ function makePropReadonly(object, propName, enumerable) {
32
+ const propDesc = Object.getOwnPropertyDescriptor(object, propName);
33
+ if (propDesc) {
34
+ propDesc.enumerable = enumerable;
35
+ if (propDesc.get) {
36
+ delete propDesc.set;
37
+ } else {
38
+ propDesc.writable = false;
39
+ }
40
+ Object.defineProperty(object, propName, propDesc);
41
+ }
42
+ }
43
+ function isPlainObject(value) {
44
+ if (!isObject(value))
45
+ return false;
46
+ const proto = Object.getPrototypeOf(value);
47
+ return proto === Object.prototype || proto === null;
48
+ }
49
+ function isObject(value) {
50
+ return value !== null && typeof value === "object";
51
+ }
52
+ function isPrimitive(value) {
53
+ switch (typeof value) {
54
+ case "number":
55
+ case "string":
56
+ case "boolean":
57
+ case "undefined":
58
+ case "bigint":
59
+ return true;
60
+ }
61
+ return value === null;
62
+ }
63
+ function isJSONPrimitive(value) {
64
+ switch (typeof value) {
65
+ case "number":
66
+ return isFinite(value);
67
+ case "string":
68
+ case "boolean":
69
+ return true;
70
+ }
71
+ return value === null;
72
+ }
73
+ function deleteFromArray(array, value) {
74
+ let index = array.indexOf(value);
75
+ if (index >= 0) {
76
+ array.splice(index, 1);
77
+ return true;
78
+ }
79
+ return false;
80
+ }
81
+ function isMap(val) {
82
+ return val instanceof Map || isObservableMap(val);
83
+ }
84
+ function isSet(val) {
85
+ return val instanceof Set || isObservableSet(val);
86
+ }
87
+ function isArray(val) {
88
+ return Array.isArray(val) || isObservableArray(val);
89
+ }
90
+ function inDevMode() {
91
+ return false;
92
+ }
93
+ function assertIsObject(value, argName) {
94
+ if (!isObject(value)) {
95
+ throw failure(`${argName} must be an object`);
96
+ }
97
+ }
98
+ function assertIsPlainObject(value, argName) {
99
+ if (!isPlainObject(value)) {
100
+ throw failure(`${argName} must be a plain object`);
101
+ }
102
+ }
103
+ function assertIsObservableObject(value, argName) {
104
+ if (!isObservableObject(value)) {
105
+ throw failure(`${argName} must be an observable object`);
106
+ }
107
+ }
108
+ function assertIsObservableArray(value, argName) {
109
+ if (!isObservableArray(value)) {
110
+ throw failure(`${argName} must be an observable array`);
111
+ }
112
+ }
113
+ function assertIsMap(value, argName) {
114
+ if (!isMap(value)) {
115
+ throw failure(`${argName} must be a map`);
116
+ }
117
+ }
118
+ function assertIsSet(value, argName) {
119
+ if (!isSet(value)) {
120
+ throw failure(`${argName} must be a set`);
121
+ }
122
+ }
123
+ function assertIsFunction(value, argName) {
124
+ if (typeof value !== "function") {
125
+ throw failure(`${argName} must be a function`);
126
+ }
127
+ }
128
+ function assertIsPrimitive(value, argName) {
129
+ if (!isPrimitive(value)) {
130
+ throw failure(`${argName} must be a primitive`);
131
+ }
132
+ }
133
+ function assertIsString(value, argName) {
134
+ if (typeof value !== "string") {
135
+ throw failure(`${argName} must be a string`);
136
+ }
137
+ }
138
+ const runAfterNewSymbol = Symbol("runAfterNew");
139
+ const runBeforeOnInitSymbol = Symbol("runBeforeOnInit");
140
+ function addLateInitializationFunction(target, symbol, fn) {
141
+ let array = target[symbol];
142
+ if (!array) {
143
+ array = [];
144
+ addHiddenProp(target, symbol, array);
145
+ }
146
+ array.push(fn);
147
+ }
148
+ function decorateWrapMethodOrField(decoratorName, data, wrap) {
149
+ const { target, propertyKey, baseDescriptor } = data;
150
+ const addFieldDecorator = () => {
151
+ addLateInitializationFunction(target, runAfterNewSymbol, (instance) => {
152
+ instance[propertyKey] = wrap(data, instance[propertyKey]);
153
+ });
154
+ };
155
+ if (baseDescriptor) {
156
+ if (baseDescriptor.get !== void 0) {
157
+ throw failure(`@${decoratorName} cannot be used with getters`);
158
+ }
159
+ if (baseDescriptor.value) {
160
+ return {
161
+ enumerable: false,
162
+ writable: true,
163
+ configurable: true,
164
+ value: wrap(data, baseDescriptor.value)
165
+ };
166
+ } else {
167
+ addFieldDecorator();
168
+ }
169
+ } else {
170
+ addFieldDecorator();
171
+ }
172
+ }
173
+ function runLateInitializationFunctions(target, symbol) {
174
+ const fns = target[symbol];
175
+ if (fns) {
176
+ for (const fn of fns) {
177
+ fn(target);
178
+ }
179
+ }
180
+ }
181
+ const warningsAlreadyDisplayed = /* @__PURE__ */ new Set();
182
+ function logWarning(type, msg, uniqueKey) {
183
+ if (uniqueKey) {
184
+ if (warningsAlreadyDisplayed.has(uniqueKey)) {
185
+ return;
186
+ }
187
+ warningsAlreadyDisplayed.add(uniqueKey);
188
+ }
189
+ msg = "[mobx-keystone] " + msg;
190
+ switch (type) {
191
+ case "warn":
192
+ console.warn(msg);
193
+ break;
194
+ case "error":
195
+ console.error(msg);
196
+ break;
197
+ default:
198
+ throw failure(`unknown log type - ${type}`);
199
+ }
200
+ }
201
+ function lazy(getter) {
202
+ let memoizedValue;
203
+ let memoized = false;
204
+ return (...args) => {
205
+ if (!memoized) {
206
+ memoizedValue = getter(...args);
207
+ memoized = true;
208
+ }
209
+ return memoizedValue;
210
+ };
211
+ }
212
+ const identityFn = (x) => x;
213
+ const mobx6 = {
214
+ makeObservable: mobx[String.fromCharCode("l".charCodeAt(0) + 1) + "akeObservable"]
215
+ };
216
+ function propNameToSetterName(propName) {
217
+ return `set${propName[0].toUpperCase()}${propName.slice(1)}`;
218
+ }
219
+ function getMobxVersion() {
220
+ if (mobx6.makeObservable) {
221
+ return 6;
222
+ } else {
223
+ return 5;
224
+ }
225
+ }
226
+ const namespace = "mobx-keystone";
227
+ export { MobxKeystoneError, addHiddenProp, addLateInitializationFunction, assertIsFunction, assertIsMap, assertIsObject, assertIsObservableArray, assertIsObservableObject, assertIsPlainObject, assertIsPrimitive, assertIsSet, assertIsString, decorateWrapMethodOrField, deleteFromArray, failure, getMobxVersion, identityFn, inDevMode, isArray, isJSONPrimitive, isMap, isObject, isPlainObject, isPrimitive, isSet, lazy, logWarning, makePropReadonly, mobx6, namespace, propNameToSetterName, runAfterNewSymbol, runBeforeOnInitSymbol, runLateInitializationFunctions };
228
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgubWpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgbW9ieCBmcm9tIFwibW9ieFwiXG5pbXBvcnQge1xuICBJT2JzZXJ2YWJsZUFycmF5LFxuICBpc09ic2VydmFibGVBcnJheSxcbiAgaXNPYnNlcnZhYmxlTWFwLFxuICBpc09ic2VydmFibGVPYmplY3QsXG4gIGlzT2JzZXJ2YWJsZVNldCxcbiAgT2JzZXJ2YWJsZU1hcCxcbiAgT2JzZXJ2YWJsZVNldCxcbn0gZnJvbSBcIm1vYnhcIlxuaW1wb3J0IHsgSlNPTlByaW1pdGl2ZVZhbHVlLCBQcmltaXRpdmVWYWx1ZSB9IGZyb20gXCIuL3R5cGVzXCJcblxuLyoqXG4gKiBBIG1vYngta2V5c3RvbmUgZXJyb3IuXG4gKi9cbmV4cG9ydCBjbGFzcyBNb2J4S2V5c3RvbmVFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IobXNnOiBzdHJpbmcpIHtcbiAgICBzdXBlcihtc2cpXG5cbiAgICAvLyBTZXQgdGhlIHByb3RvdHlwZSBleHBsaWNpdGx5LlxuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBNb2J4S2V5c3RvbmVFcnJvci5wcm90b3R5cGUpXG4gIH1cbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZhaWx1cmUobXNnOiBzdHJpbmcpIHtcbiAgcmV0dXJuIG5ldyBNb2J4S2V5c3RvbmVFcnJvcihtc2cpXG59XG5cbmNvbnN0IHdyaXRhYmxlSGlkZGVuUHJvcERlc2NyaXB0b3I6IFByb3BlcnR5RGVzY3JpcHRvciA9IHtcbiAgZW51bWVyYWJsZTogZmFsc2UsXG4gIHdyaXRhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IGZhbHNlLFxuICB2YWx1ZTogdW5kZWZpbmVkLFxufVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkSGlkZGVuUHJvcChvYmplY3Q6IGFueSwgcHJvcE5hbWU6IFByb3BlcnR5S2V5LCB2YWx1ZTogYW55LCB3cml0YWJsZSA9IHRydWUpIHtcbiAgaWYgKHdyaXRhYmxlKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iamVjdCwgcHJvcE5hbWUsIHdyaXRhYmxlSGlkZGVuUHJvcERlc2NyaXB0b3IpXG4gICAgb2JqZWN0W3Byb3BOYW1lXSA9IHZhbHVlXG4gIH0gZWxzZSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iamVjdCwgcHJvcE5hbWUsIHtcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgd3JpdGFibGUsXG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICB2YWx1ZSxcbiAgICB9KVxuICB9XG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYWtlUHJvcFJlYWRvbmx5PFQ+KG9iamVjdDogVCwgcHJvcE5hbWU6IGtleW9mIFQsIGVudW1lcmFibGU6IGJvb2xlYW4pIHtcbiAgY29uc3QgcHJvcERlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCwgcHJvcE5hbWUpXG4gIGlmIChwcm9wRGVzYykge1xuICAgIHByb3BEZXNjLmVudW1lcmFibGUgPSBlbnVtZXJhYmxlXG4gICAgaWYgKHByb3BEZXNjLmdldCkge1xuICAgICAgZGVsZXRlIHByb3BEZXNjLnNldFxuICAgIH0gZWxzZSB7XG4gICAgICBwcm9wRGVzYy53cml0YWJsZSA9IGZhbHNlXG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmplY3QsIHByb3BOYW1lLCBwcm9wRGVzYylcbiAgfVxufVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNQbGFpbk9iamVjdCh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIFJlY29yZDxQcm9wZXJ0eUtleSwgdW5rbm93bj4ge1xuICBpZiAoIWlzT2JqZWN0KHZhbHVlKSkgcmV0dXJuIGZhbHNlXG4gIGNvbnN0IHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHZhbHVlKVxuICByZXR1cm4gcHJvdG8gPT09IE9iamVjdC5wcm90b3R5cGUgfHwgcHJvdG8gPT09IG51bGxcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzT2JqZWN0KHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgUmVjb3JkPFByb3BlcnR5S2V5LCB1bmtub3duPiB7XG4gIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCJcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUHJpbWl0aXZlKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgUHJpbWl0aXZlVmFsdWUge1xuICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkge1xuICAgIGNhc2UgXCJudW1iZXJcIjpcbiAgICBjYXNlIFwic3RyaW5nXCI6XG4gICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICBjYXNlIFwidW5kZWZpbmVkXCI6XG4gICAgY2FzZSBcImJpZ2ludFwiOlxuICAgICAgcmV0dXJuIHRydWVcbiAgfVxuICByZXR1cm4gdmFsdWUgPT09IG51bGxcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzSlNPTlByaW1pdGl2ZSh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIEpTT05QcmltaXRpdmVWYWx1ZSB7XG4gIHN3aXRjaCAodHlwZW9mIHZhbHVlKSB7XG4gICAgY2FzZSBcIm51bWJlclwiOlxuICAgICAgcmV0dXJuIGlzRmluaXRlKHZhbHVlKVxuICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICBjYXNlIFwiYm9vbGVhblwiOlxuICAgICAgcmV0dXJuIHRydWVcbiAgfVxuICByZXR1cm4gdmFsdWUgPT09IG51bGxcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlbGV0ZUZyb21BcnJheTxUPihhcnJheTogVFtdLCB2YWx1ZTogVCk6IGJvb2xlYW4ge1xuICBsZXQgaW5kZXggPSBhcnJheS5pbmRleE9mKHZhbHVlKVxuICBpZiAoaW5kZXggPj0gMCkge1xuICAgIGFycmF5LnNwbGljZShpbmRleCwgMSlcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG4gIHJldHVybiBmYWxzZVxufVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNNYXAodmFsOiB1bmtub3duKTogdmFsIGlzIE1hcDxhbnksIGFueT4gfCBPYnNlcnZhYmxlTWFwIHtcbiAgcmV0dXJuIHZhbCBpbnN0YW5jZW9mIE1hcCB8fCBpc09ic2VydmFibGVNYXAodmFsKVxufVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTZXQodmFsOiB1bmtub3duKTogdmFsIGlzIFNldDxhbnk+IHwgT2JzZXJ2YWJsZVNldCB7XG4gIHJldHVybiB2YWwgaW5zdGFuY2VvZiBTZXQgfHwgaXNPYnNlcnZhYmxlU2V0KHZhbClcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQXJyYXkodmFsOiB1bmtub3duKTogdmFsIGlzIGFueVtdIHwgSU9ic2VydmFibGVBcnJheSB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KHZhbCkgfHwgaXNPYnNlcnZhYmxlQXJyYXkodmFsKVxufVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5EZXZNb2RlKCk6IGJvb2xlYW4ge1xuICByZXR1cm4gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiXG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRJc09iamVjdCh2YWx1ZTogdW5rbm93biwgYXJnTmFtZTogc3RyaW5nKTogYXNzZXJ0cyB2YWx1ZSBpcyBvYmplY3Qge1xuICBpZiAoIWlzT2JqZWN0KHZhbHVlKSkge1xuICAgIHRocm93IGZhaWx1cmUoYCR7YXJnTmFtZX0gbXVzdCBiZSBhbiBvYmplY3RgKVxuICB9XG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRJc1BsYWluT2JqZWN0KHZhbHVlOiB1bmtub3duLCBhcmdOYW1lOiBzdHJpbmcpOiBhc3NlcnRzIHZhbHVlIGlzIG9iamVjdCB7XG4gIGlmICghaXNQbGFpbk9iamVjdCh2YWx1ZSkpIHtcbiAgICB0aHJvdyBmYWlsdXJlKGAke2FyZ05hbWV9IG11c3QgYmUgYSBwbGFpbiBvYmplY3RgKVxuICB9XG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRJc09ic2VydmFibGVPYmplY3QodmFsdWU6IHVua25vd24sIGFyZ05hbWU6IHN0cmluZyk6IGFzc2VydHMgdmFsdWUgaXMgb2JqZWN0IHtcbiAgaWYgKCFpc09ic2VydmFibGVPYmplY3QodmFsdWUpKSB7XG4gICAgdGhyb3cgZmFpbHVyZShgJHthcmdOYW1lfSBtdXN0IGJlIGFuIG9ic2VydmFibGUgb2JqZWN0YClcbiAgfVxufVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0SXNPYnNlcnZhYmxlQXJyYXkoXG4gIHZhbHVlOiB1bmtub3duLFxuICBhcmdOYW1lOiBzdHJpbmdcbik6IGFzc2VydHMgdmFsdWUgaXMgSU9ic2VydmFibGVBcnJheSB7XG4gIGlmICghaXNPYnNlcnZhYmxlQXJyYXkodmFsdWUpKSB7XG4gICAgdGhyb3cgZmFpbHVyZShgJHthcmdOYW1lfSBtdXN0IGJlIGFuIG9ic2VydmFibGUgYXJyYXlgKVxuICB9XG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRJc01hcCh2YWx1ZTogdW5rbm93biwgYXJnTmFtZTogc3RyaW5nKTogYXNzZXJ0cyB2YWx1ZSBpcyBNYXA8YW55LCBhbnk+IHtcbiAgaWYgKCFpc01hcCh2YWx1ZSkpIHtcbiAgICB0aHJvdyBmYWlsdXJlKGAke2FyZ05hbWV9IG11c3QgYmUgYSBtYXBgKVxuICB9XG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRJc1NldCh2YWx1ZTogdW5rbm93biwgYXJnTmFtZTogc3RyaW5nKTogYXNzZXJ0cyB2YWx1ZSBpcyBTZXQ8YW55PiB7XG4gIGlmICghaXNTZXQodmFsdWUpKSB7XG4gICAgdGhyb3cgZmFpbHVyZShgJHthcmdOYW1lfSBtdXN0IGJlIGEgc2V0YClcbiAgfVxufVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0SXNGdW5jdGlvbih2YWx1ZTogdW5rbm93biwgYXJnTmFtZTogc3RyaW5nKTogYXNzZXJ0cyB2YWx1ZSBpcyBGdW5jdGlvbiB7XG4gIGlmICh0eXBlb2YgdmFsdWUgIT09IFwiZnVuY3Rpb25cIikge1xuICAgIHRocm93IGZhaWx1cmUoYCR7YXJnTmFtZX0gbXVzdCBiZSBhIGZ1bmN0aW9uYClcbiAgfVxufVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0SXNQcmltaXRpdmUoXG4gIHZhbHVlOiB1bmtub3duLFxuICBhcmdOYW1lOiBzdHJpbmdcbik6IGFzc2VydHMgdmFsdWUgaXMgUHJpbWl0aXZlVmFsdWUge1xuICBpZiAoIWlzUHJpbWl0aXZlKHZhbHVlKSkge1xuICAgIHRocm93IGZhaWx1cmUoYCR7YXJnTmFtZX0gbXVzdCBiZSBhIHByaW1pdGl2ZWApXG4gIH1cbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydElzU3RyaW5nKHZhbHVlOiB1bmtub3duLCBhcmdOYW1lOiBzdHJpbmcpOiBhc3NlcnRzIHZhbHVlIGlzIHN0cmluZyB7XG4gIGlmICh0eXBlb2YgdmFsdWUgIT09IFwic3RyaW5nXCIpIHtcbiAgICB0aHJvdyBmYWlsdXJlKGAke2FyZ05hbWV9IG11c3QgYmUgYSBzdHJpbmdgKVxuICB9XG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVjb3JhdGVNZXRob2RPckZpZWxkRGF0YSB7XG4gIHRhcmdldDogYW55XG4gIHByb3BlcnR5S2V5OiBzdHJpbmdcbiAgYmFzZURlc2NyaXB0b3I/OiBQcm9wZXJ0eURlc2NyaXB0b3IgJiB7IGluaXRpYWxpemVyPzogKCkgPT4gYW55IH1cbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IHJ1bkFmdGVyTmV3U3ltYm9sID0gU3ltYm9sKFwicnVuQWZ0ZXJOZXdcIilcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IHJ1bkJlZm9yZU9uSW5pdFN5bWJvbCA9IFN5bWJvbChcInJ1bkJlZm9yZU9uSW5pdFwiKVxuXG50eXBlIFdyYXBGdW5jdGlvbiA9IChkYXRhOiBEZWNvcmF0ZU1ldGhvZE9yRmllbGREYXRhLCBmbjogYW55KSA9PiBhbnlcbnR5cGUgTGF0ZUluaXRpYWxpemF0aW9uRnVuY3Rpb25zQXJyYXkgPSAoKGluc3RhbmNlOiBhbnkpID0+IHZvaWQpW11cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZExhdGVJbml0aWFsaXphdGlvbkZ1bmN0aW9uKFxuICB0YXJnZXQ6IGFueSxcbiAgc3ltYm9sOiBzeW1ib2wsXG4gIGZuOiAoaW5zdGFuY2U6IGFueSkgPT4gdm9pZFxuKSB7XG4gIGxldCBhcnJheTogTGF0ZUluaXRpYWxpemF0aW9uRnVuY3Rpb25zQXJyYXkgPSB0YXJnZXRbc3ltYm9sXVxuICBpZiAoIWFycmF5KSB7XG4gICAgYXJyYXkgPSBbXVxuICAgIGFkZEhpZGRlblByb3AodGFyZ2V0LCBzeW1ib2wsIGFycmF5KVxuICB9XG4gIGFycmF5LnB1c2goZm4pXG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWNvcmF0ZVdyYXBNZXRob2RPckZpZWxkKFxuICBkZWNvcmF0b3JOYW1lOiBzdHJpbmcsXG4gIGRhdGE6IERlY29yYXRlTWV0aG9kT3JGaWVsZERhdGEsXG4gIHdyYXA6IFdyYXBGdW5jdGlvblxuKTogYW55IHtcbiAgY29uc3QgeyB0YXJnZXQsIHByb3BlcnR5S2V5LCBiYXNlRGVzY3JpcHRvciB9ID0gZGF0YVxuXG4gIGNvbnN0IGFkZEZpZWxkRGVjb3JhdG9yID0gKCkgPT4ge1xuICAgIGFkZExhdGVJbml0aWFsaXphdGlvbkZ1bmN0aW9uKHRhcmdldCwgcnVuQWZ0ZXJOZXdTeW1ib2wsIChpbnN0YW5jZSkgPT4ge1xuICAgICAgaW5zdGFuY2VbcHJvcGVydHlLZXldID0gd3JhcChkYXRhLCBpbnN0YW5jZVtwcm9wZXJ0eUtleV0pXG4gICAgfSlcbiAgfVxuXG4gIGlmIChiYXNlRGVzY3JpcHRvcikge1xuICAgIGlmIChiYXNlRGVzY3JpcHRvci5nZXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgZmFpbHVyZShgQCR7ZGVjb3JhdG9yTmFtZX0gY2Fubm90IGJlIHVzZWQgd2l0aCBnZXR0ZXJzYClcbiAgICB9XG5cbiAgICBpZiAoYmFzZURlc2NyaXB0b3IudmFsdWUpIHtcbiAgICAgIC8vIGJhYmVsIC8gdHlwZXNjcmlwdCAtIG1ldGhvZCBkZWNvcmF0b3JcbiAgICAgIC8vIEBhY3Rpb24gbWV0aG9kKCkgeyB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgdmFsdWU6IHdyYXAoZGF0YSwgYmFzZURlc2NyaXB0b3IudmFsdWUpLFxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBiYWJlbCAtIGZpZWxkIGRlY29yYXRvcjogQGFjdGlvbiBtZXRob2QgPSAoKSA9PiB7fVxuICAgICAgYWRkRmllbGREZWNvcmF0b3IoKVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyB0eXBlc2NyaXB0IC0gZmllbGQgZGVjb3JhdG9yXG4gICAgYWRkRmllbGREZWNvcmF0b3IoKVxuICB9XG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydW5MYXRlSW5pdGlhbGl6YXRpb25GdW5jdGlvbnModGFyZ2V0OiBhbnksIHN5bWJvbDogc3ltYm9sKTogdm9pZCB7XG4gIGNvbnN0IGZuczogTGF0ZUluaXRpYWxpemF0aW9uRnVuY3Rpb25zQXJyYXkgfCB1bmRlZmluZWQgPSB0YXJnZXRbc3ltYm9sXVxuICBpZiAoZm5zKSB7XG4gICAgZm9yIChjb25zdCBmbiBvZiBmbnMpIHtcbiAgICAgIGZuKHRhcmdldClcbiAgICB9XG4gIH1cbn1cblxuY29uc3Qgd2FybmluZ3NBbHJlYWR5RGlzcGxheWVkID0gbmV3IFNldDxzdHJpbmc+KClcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvZ1dhcm5pbmcodHlwZTogXCJ3YXJuXCIgfCBcImVycm9yXCIsIG1zZzogc3RyaW5nLCB1bmlxdWVLZXk/OiBzdHJpbmcpOiB2b2lkIHtcbiAgaWYgKHVuaXF1ZUtleSkge1xuICAgIGlmICh3YXJuaW5nc0FscmVhZHlEaXNwbGF5ZWQuaGFzKHVuaXF1ZUtleSkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICB3YXJuaW5nc0FscmVhZHlEaXNwbGF5ZWQuYWRkKHVuaXF1ZUtleSlcbiAgfVxuXG4gIG1zZyA9IFwiW21vYngta2V5c3RvbmVdIFwiICsgbXNnXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgXCJ3YXJuXCI6XG4gICAgICBjb25zb2xlLndhcm4obXNnKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIFwiZXJyb3JcIjpcbiAgICAgIGNvbnNvbGUuZXJyb3IobXNnKVxuICAgICAgYnJlYWtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgZmFpbHVyZShgdW5rbm93biBsb2cgdHlwZSAtICR7dHlwZX1gKVxuICB9XG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsYXp5PEEgZXh0ZW5kcyB1bmtub3duW10sIFI+KGdldHRlcjogKC4uLmFyZ3M6IEEpID0+IFIpOiB0eXBlb2YgZ2V0dGVyIHtcbiAgbGV0IG1lbW9pemVkVmFsdWU6IFJcbiAgbGV0IG1lbW9pemVkID0gZmFsc2VcblxuICByZXR1cm4gKC4uLmFyZ3M6IEEpOiBSID0+IHtcbiAgICBpZiAoIW1lbW9pemVkKSB7XG4gICAgICBtZW1vaXplZFZhbHVlID0gZ2V0dGVyKC4uLmFyZ3MpXG4gICAgICBtZW1vaXplZCA9IHRydWVcbiAgICB9XG4gICAgcmV0dXJuIG1lbW9pemVkVmFsdWVcbiAgfVxufVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgaWRlbnRpdHlGbiA9IDxUPih4OiBUKTogVCA9PiB4XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCBtb2J4NiA9IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtY29uY2F0XG4gIG1ha2VPYnNlcnZhYmxlOiAobW9ieCBhcyBhbnkpW1xuICAgIC8vIGp1c3QgdG8gZW5zdXJlIGltcG9ydCAqIGlzIGtlcHQgcHJvcGVybHlcbiAgICBTdHJpbmcuZnJvbUNoYXJDb2RlKFwibFwiLmNoYXJDb2RlQXQoMCkgKyAxKSArIFwiYWtlT2JzZXJ2YWJsZVwiXG4gIF0sXG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm9wTmFtZVRvU2V0dGVyTmFtZShwcm9wTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBzZXQke3Byb3BOYW1lWzBdLnRvVXBwZXJDYXNlKCl9JHtwcm9wTmFtZS5zbGljZSgxKX1gXG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRNb2J4VmVyc2lvbigpOiBudW1iZXIge1xuICBpZiAobW9ieDYubWFrZU9ic2VydmFibGUhKSB7XG4gICAgcmV0dXJuIDZcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gNVxuICB9XG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCBuYW1lc3BhY2UgPSBcIm1vYngta2V5c3RvbmVcIlxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O01BZWEsMEJBQTBCO0VBQ3JDLFlBQVk7VUFDSixHQUFHO1dBR0YsZUFBZSxNQUFNLGtCQUFrQixTQUFTO0FBQUE7O2lCQU9uQztTQUNmLElBQUksa0JBQWtCLEdBQUc7QUFDbEM7QUFFQSxNQUFNLCtCQUFtRDtBQUFBLEVBQ3ZELFlBQVk7QUFBQSxFQUNaLFVBQVU7QUFBQSxFQUNWLGNBQWM7QUFBQSxFQUNkLE9BQU87O3VCQU1xQixRQUFhLFVBQXVCLE9BQVksV0FBVztNQUNuRixVQUFVO1dBQ0wsZUFBZSxRQUFRLFVBQVUsNEJBQTRCO1dBQzdELFlBQVk7QUFBQSxTQUNkO1dBQ0UsZUFBZSxRQUFRLFVBQVU7QUFBQSxNQUN0QyxZQUFZO0FBQUEsTUFDWjtBQUFBLE1BQ0EsY0FBYztBQUFBLE1BQ2Q7QUFBQSxLQUNEO0FBQUE7QUFFTDswQkFLb0MsUUFBVyxVQUFtQjtRQUMxRCxXQUFXLE9BQU8seUJBQXlCLFFBQVEsUUFBUTtNQUM3RCxVQUFVO2FBQ0gsYUFBYTtRQUNsQixTQUFTLEtBQUs7YUFDVCxTQUFTO0FBQUEsV0FDWDtlQUNJLFdBQVc7QUFBQTtXQUVmLGVBQWUsUUFBUSxVQUFVLFFBQVE7QUFBQTtBQUVwRDt1QkFLOEI7TUFDeEIsQ0FBQyxTQUFTLEtBQUs7V0FBVTtRQUN2QixRQUFRLE9BQU8sZUFBZSxLQUFLO1NBQ2xDLFVBQVUsT0FBTyxhQUFhLFVBQVU7QUFDakQ7a0JBS3lCO1NBQ2hCLFVBQVUsUUFBUSxPQUFPLFVBQVU7QUFDNUM7cUJBSzRCO1VBQ2xCLE9BQU87QUFBQSxTQUNSO0FBQUEsU0FDQTtBQUFBLFNBQ0E7QUFBQSxTQUNBO0FBQUEsU0FDQTthQUNJO0FBQUE7U0FFSixVQUFVO0FBQ25CO3lCQUtnQztVQUN0QixPQUFPO0FBQUEsU0FDUjthQUNJLFNBQVMsS0FBSztBQUFBLFNBQ2xCO0FBQUEsU0FDQTthQUNJO0FBQUE7U0FFSixVQUFVO0FBQ25CO3lCQUttQyxPQUFZO01BQ3pDLFFBQVEsTUFBTSxRQUFRLEtBQUs7TUFDM0IsU0FBUyxHQUFHO1VBQ1IsT0FBTyxPQUFPLENBQUM7V0FDZDtBQUFBO1NBRUY7QUFDVDtlQUtzQjtTQUNiLGVBQWUsT0FBTyxnQkFBZ0IsR0FBRztBQUNsRDtlQUtzQjtTQUNiLGVBQWUsT0FBTyxnQkFBZ0IsR0FBRztBQUNsRDtpQkFLd0I7U0FDZixNQUFNLFFBQVEsR0FBRyxLQUFLLGtCQUFrQixHQUFHO0FBQ3BEOztTQU1TO0FBQ1Q7d0JBSytCLE9BQWdCO01BQ3pDLENBQUMsU0FBUyxLQUFLLEdBQUc7VUFDZCxRQUFRLEdBQUcsMkJBQTJCO0FBQUE7QUFFaEQ7NkJBS29DLE9BQWdCO01BQzlDLENBQUMsY0FBYyxLQUFLLEdBQUc7VUFDbkIsUUFBUSxHQUFHLGdDQUFnQztBQUFBO0FBRXJEO2tDQUt5QyxPQUFnQjtNQUNuRCxDQUFDLG1CQUFtQixLQUFLLEdBQUc7VUFDeEIsUUFBUSxHQUFHLHNDQUFzQztBQUFBO0FBRTNEO2lDQU1FLE9BQ0E7TUFFSSxDQUFDLGtCQUFrQixLQUFLLEdBQUc7VUFDdkIsUUFBUSxHQUFHLHFDQUFxQztBQUFBO0FBRTFEO3FCQUs0QixPQUFnQjtNQUN0QyxDQUFDLE1BQU0sS0FBSyxHQUFHO1VBQ1gsUUFBUSxHQUFHLHVCQUF1QjtBQUFBO0FBRTVDO3FCQUs0QixPQUFnQjtNQUN0QyxDQUFDLE1BQU0sS0FBSyxHQUFHO1VBQ1gsUUFBUSxHQUFHLHVCQUF1QjtBQUFBO0FBRTVDOzBCQUtpQyxPQUFnQjtNQUMzQyxPQUFPLFVBQVUsWUFBWTtVQUN6QixRQUFRLEdBQUcsNEJBQTRCO0FBQUE7QUFFakQ7MkJBTUUsT0FDQTtNQUVJLENBQUMsWUFBWSxLQUFLLEdBQUc7VUFDakIsUUFBUSxHQUFHLDZCQUE2QjtBQUFBO0FBRWxEO3dCQUsrQixPQUFnQjtNQUN6QyxPQUFPLFVBQVUsVUFBVTtVQUN2QixRQUFRLEdBQUcsMEJBQTBCO0FBQUE7QUFFL0M7TUFjYSxvQkFBb0IsT0FBTyxhQUFhO01BS3hDLHdCQUF3QixPQUFPLGlCQUFpQjt1Q0FTM0QsUUFDQSxRQUNBO01BRUksUUFBMEMsT0FBTztNQUNqRCxDQUFDLE9BQU87WUFDRjtrQkFDTSxRQUFRLFFBQVEsS0FBSztBQUFBO1FBRS9CLEtBQUssRUFBRTtBQUNmO21DQU1FLGVBQ0EsTUFDQTtRQUVNLEVBQUUsUUFBUSxhQUFhLG1CQUFtQjtRQUUxQyxvQkFBb0I7a0NBQ00sUUFBUSxtQkFBbUIsQ0FBQztlQUMvQyxlQUFlLEtBQUssTUFBTSxTQUFTLFlBQVk7QUFBQSxLQUN6RDtBQUFBO01BR0MsZ0JBQWdCO1FBQ2QsZUFBZSxRQUFRLFFBQVc7WUFDOUIsUUFBUSxJQUFJLDJDQUEyQztBQUFBO1FBRzNELGVBQWUsT0FBTzthQUdqQjtBQUFBLFFBQ0wsWUFBWTtBQUFBLFFBQ1osVUFBVTtBQUFBLFFBQ1YsY0FBYztBQUFBLFFBQ2QsT0FBTyxLQUFLLE1BQU0sZUFBZSxLQUFLO0FBQUE7V0FFbkM7OztTQUlGOzs7QUFJVDt3Q0FLK0MsUUFBYTtRQUNwRCxNQUFvRCxPQUFPO01BQzdELEtBQUs7ZUFDSSxNQUFNLEtBQUs7U0FDakIsTUFBTTtBQUFBOztBQUdmO0FBRUEsTUFBTSwrQ0FBK0I7b0JBS1YsTUFBd0IsS0FBYTtNQUMxRCxXQUFXO1FBQ1QseUJBQXlCLElBQUksU0FBUyxHQUFHOzs7NkJBR3BCLElBQUksU0FBUztBQUFBO1FBR2xDLHFCQUFxQjtVQUNuQjtBQUFBLFNBQ0Q7Y0FDSyxLQUFLLEdBQUc7O1NBRWI7Y0FDSyxNQUFNLEdBQUc7OztZQUdYLFFBQVEsc0JBQXNCLE1BQU07QUFBQTtBQUVoRDtjQUs2QztNQUN2QztNQUNBLFdBQVc7U0FFUixJQUFJO1FBQ0wsQ0FBQyxVQUFVO3NCQUNHLE9BQU8sR0FBRyxJQUFJO2lCQUNuQjtBQUFBO1dBRU47QUFBQTtBQUVYO01BS2EsYUFBYSxDQUFJLE1BQVk7TUFLN0IsUUFBUTtBQUFBLEVBRW5CLGdCQUFpQixLQUVmLE9BQU8sYUFBYSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSTs7OEJBT1o7U0FDNUIsTUFBTSxTQUFTLEdBQUcsZ0JBQWdCLFNBQVMsTUFBTSxDQUFDO0FBQzNEOztNQU1NLE1BQU0sZ0JBQWlCO1dBQ2xCO0FBQUEsU0FDRjtXQUNFO0FBQUE7QUFFWDtNQUthLFlBQVk7OyJ9
@@ -0,0 +1,10 @@
1
+ function getOrCreate(map, key, create) {
2
+ let value = map.get(key);
3
+ if (value === void 0) {
4
+ value = create();
5
+ map.set(key, value);
6
+ }
7
+ return value;
8
+ }
9
+ export { getOrCreate };
10
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwVXRpbHMubWpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvbWFwVXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsidHlwZSBBbnlNYXA8ViA9IGFueT4gPSBNYXA8YW55LCBWPiB8IFdlYWtNYXA8YW55LCBWPlxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3JDcmVhdGU8SywgViwgQyA9IFY+KG1hcDogTWFwPEssIFY+LCBrZXk6IEssIGNyZWF0ZTogKCkgPT4gQyk6IFZcbmV4cG9ydCBmdW5jdGlvbiBnZXRPckNyZWF0ZTxLIGV4dGVuZHMgb2JqZWN0LCBWLCBDID0gVj4oXG4gIG1hcDogV2Vha01hcDxLLCBWPixcbiAga2V5OiBLLFxuICBjcmVhdGU6ICgpID0+IENcbik6IFZcblxuZXhwb3J0IGZ1bmN0aW9uIGdldE9yQ3JlYXRlPFY+KG1hcDogQW55TWFwPFY+LCBrZXk6IGFueSwgY3JlYXRlOiAoKSA9PiBWKSB7XG4gIGxldCB2YWx1ZSA9IG1hcC5nZXQoa2V5KVxuICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgIHZhbHVlID0gY3JlYXRlKClcbiAgICBtYXAuc2V0KGtleSwgdmFsdWUpXG4gIH1cbiAgcmV0dXJuIHZhbHVlXG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6InFCQVMrQixLQUFnQixLQUFVO01BQ25ELFFBQVEsSUFBSSxJQUFJLEdBQUc7TUFDbkIsVUFBVSxRQUFXO1lBQ2Y7UUFDSixJQUFJLEtBQUssS0FBSztBQUFBO1NBRWI7QUFDVDs7In0=
@@ -0,0 +1,16 @@
1
+ function tag(tagDataConstructor) {
2
+ const map = /* @__PURE__ */ new WeakMap();
3
+ return {
4
+ for(target) {
5
+ if (!map.has(target)) {
6
+ const data = tagDataConstructor(target);
7
+ map.set(target, data);
8
+ return data;
9
+ } else {
10
+ return map.get(target);
11
+ }
12
+ }
13
+ };
14
+ }
15
+ export { tag };
16
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLm1qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL3RhZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENyZWF0ZXMgYSB0YWcgZGF0YSBhY2Nlc3NvciBmb3IgYSB0YXJnZXQgb2JqZWN0IG9mIGEgY2VydGFpbiB0eXBlLlxuICogVGFnIGRhdGEgd2lsbCBiZSBsYXp5IGNyZWF0ZWQgb24gYWNjZXNzIGFuZCByZXVzZWQgZm9yIHRoZSBzYW1lIHRhcmdldCBvYmplY3QuXG4gKlxuICogQHR5cGVwYXJhbSBUYXJnZXQgVGFyZ2V0IHR5cGUuXG4gKiBAdHlwZXBhcmFtIFRhZ0RhdGEgVGFnIGRhdGEgdHlwZS5cbiAqIEBwYXJhbSB0YWdEYXRhQ29uc3RydWN0b3IgRnVuY3Rpb24gdGhhdCB3aWxsIGJlIGNhbGxlZCB0aGUgZmlyc3QgdGltZSB0aGUgdGFnXG4gKiBmb3IgYSBnaXZlbiBvYmplY3QgaXMgcmVxdWVzdGVkLlxuICogQHJldHVybnMgVGhlIHRhZyBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgdGFyZ2V0IG9iamVjdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRhZzxUYXJnZXQgZXh0ZW5kcyBvYmplY3QsIFRhZ0RhdGE+KFxuICB0YWdEYXRhQ29uc3RydWN0b3I6ICh0YXJnZXQ6IFRhcmdldCkgPT4gVGFnRGF0YVxuKToge1xuICBmb3IodGFyZ2V0OiBUYXJnZXQpOiBUYWdEYXRhXG59IHtcbiAgY29uc3QgbWFwID0gbmV3IFdlYWtNYXA8VGFyZ2V0LCBUYWdEYXRhPigpXG5cbiAgcmV0dXJuIHtcbiAgICBmb3IodGFyZ2V0KTogVGFnRGF0YSB7XG4gICAgICBpZiAoIW1hcC5oYXModGFyZ2V0KSkge1xuICAgICAgICBjb25zdCBkYXRhID0gdGFnRGF0YUNvbnN0cnVjdG9yKHRhcmdldClcbiAgICAgICAgbWFwLnNldCh0YXJnZXQsIGRhdGEpXG4gICAgICAgIHJldHVybiBkYXRhXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbWFwLmdldCh0YXJnZXQpIVxuICAgICAgfVxuICAgIH0sXG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiYUFXRTtRQUlNLDBCQUFVO1NBRVQ7QUFBQSxJQUNMLElBQUk7VUFDRSxDQUFDLElBQUksSUFBSSxNQUFNLEdBQUc7Y0FDZCxPQUFPLG1CQUFtQixNQUFNO1lBQ2xDLElBQUksUUFBUSxJQUFJO2VBQ2I7QUFBQSxhQUNGO2VBQ0UsSUFBSSxJQUFJLE1BQU07QUFBQTs7O0FBSTdCOzsifQ==
@@ -0,0 +1,85 @@
1
+ import { __decorate } from "../../_virtual/_tslib.mjs";
2
+ import { values } from "mobx";
3
+ import { modelAction } from "../action/modelAction.mjs";
4
+ import { modelIdKey } from "../model/metadata.mjs";
5
+ import { Model } from "../model/Model.mjs";
6
+ import { model } from "../modelShared/modelDecorator.mjs";
7
+ import { idProp } from "../modelShared/prop.mjs";
8
+ import { typesArray } from "../types/arrayBased/array.mjs";
9
+ import { tProp } from "../types/tProp.mjs";
10
+ import { typesUnchecked } from "../types/utility/unchecked.mjs";
11
+ import { namespace } from "../utils/index.mjs";
12
+ let ArraySet = class ArraySet2 extends Model({
13
+ [modelIdKey]: idProp,
14
+ items: tProp(typesArray(typesUnchecked()), () => [])
15
+ }) {
16
+ add(value) {
17
+ const items = this.items;
18
+ if (!items.includes(value)) {
19
+ items.push(value);
20
+ }
21
+ return this;
22
+ }
23
+ clear() {
24
+ this.items.length = 0;
25
+ }
26
+ delete(value) {
27
+ const items = this.items;
28
+ const index = items.findIndex((t) => t === value);
29
+ if (index >= 0) {
30
+ items.splice(index, 1);
31
+ return true;
32
+ } else {
33
+ return false;
34
+ }
35
+ }
36
+ forEach(callbackfn, thisArg) {
37
+ const items = this.items;
38
+ const len = items.length;
39
+ for (let i = 0; i < len; i++) {
40
+ const k = items[i];
41
+ callbackfn.call(thisArg, k, k, this);
42
+ }
43
+ }
44
+ has(value) {
45
+ return this.items.includes(value);
46
+ }
47
+ get size() {
48
+ return this.items.length;
49
+ }
50
+ keys() {
51
+ return this.values();
52
+ }
53
+ values() {
54
+ const items = this.items;
55
+ return values(items)[Symbol.iterator]();
56
+ }
57
+ entries() {
58
+ const items = this.items;
59
+ return items.map((v) => [v, v]).values();
60
+ }
61
+ [Symbol.iterator]() {
62
+ return this.values();
63
+ }
64
+ get [Symbol.toStringTag]() {
65
+ return "ArraySet";
66
+ }
67
+ };
68
+ __decorate([
69
+ modelAction
70
+ ], ArraySet.prototype, "add", null);
71
+ __decorate([
72
+ modelAction
73
+ ], ArraySet.prototype, "clear", null);
74
+ __decorate([
75
+ modelAction
76
+ ], ArraySet.prototype, "delete", null);
77
+ ArraySet = __decorate([
78
+ model(`${namespace}/ArraySet`)
79
+ ], ArraySet);
80
+ function arraySet(values2) {
81
+ const initialArr = values2 ? values2.slice() : [];
82
+ return new ArraySet({ items: initialArr });
83
+ }
84
+ export { ArraySet, arraySet };
85
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJyYXlTZXQubWpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvd3JhcHBlcnMvQXJyYXlTZXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdmFsdWVzIH0gZnJvbSBcIm1vYnhcIlxuaW1wb3J0IHsgbW9kZWxBY3Rpb24gfSBmcm9tIFwiLi4vYWN0aW9uL21vZGVsQWN0aW9uXCJcbmltcG9ydCB7IG1vZGVsSWRLZXkgfSBmcm9tIFwiLi4vbW9kZWwvbWV0YWRhdGFcIlxuaW1wb3J0IHsgTW9kZWwgfSBmcm9tIFwiLi4vbW9kZWwvTW9kZWxcIlxuaW1wb3J0IHsgbW9kZWwgfSBmcm9tIFwiLi4vbW9kZWxTaGFyZWQvbW9kZWxEZWNvcmF0b3JcIlxuaW1wb3J0IHsgaWRQcm9wIH0gZnJvbSBcIi4uL21vZGVsU2hhcmVkL3Byb3BcIlxuaW1wb3J0IHsgdHlwZXNBcnJheSB9IGZyb20gXCIuLi90eXBlcy9hcnJheUJhc2VkL2FycmF5XCJcbmltcG9ydCB7IHRQcm9wIH0gZnJvbSBcIi4uL3R5cGVzL3RQcm9wXCJcbmltcG9ydCB7IHR5cGVzVW5jaGVja2VkIH0gZnJvbSBcIi4uL3R5cGVzL3V0aWxpdHkvdW5jaGVja2VkXCJcbmltcG9ydCB7IG5hbWVzcGFjZSB9IGZyb20gXCIuLi91dGlsc1wiXG5cbi8qKlxuICogQSBzZXQgdGhhdCBpcyBiYWNrZWQgYnkgYW4gYXJyYXkuXG4gKiBVc2UgYGFycmF5U2V0YCB0byBjcmVhdGUgaXQuXG4gKi9cbkBtb2RlbChgJHtuYW1lc3BhY2V9L0FycmF5U2V0YClcbmV4cG9ydCBjbGFzcyBBcnJheVNldDxWPlxuICBleHRlbmRzIE1vZGVsKHtcbiAgICBbbW9kZWxJZEtleV06IGlkUHJvcCxcbiAgICBpdGVtczogdFByb3AodHlwZXNBcnJheSh0eXBlc1VuY2hlY2tlZDxhbnk+KCkpLCAoKSA9PiBbXSksIC8vIHdpbGwgYmUgcHJvcGVybHkgY2hlY2tlZCBieSB0eXBlcy5hcnJheVNldChzdWJUeXBlKVxuICB9KVxuICBpbXBsZW1lbnRzIFNldDxWPlxue1xuICBAbW9kZWxBY3Rpb25cbiAgYWRkKHZhbHVlOiBWKTogdGhpcyB7XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLml0ZW1zXG5cbiAgICBpZiAoIWl0ZW1zLmluY2x1ZGVzKHZhbHVlKSkge1xuICAgICAgaXRlbXMucHVzaCh2YWx1ZSlcbiAgICB9XG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIEBtb2RlbEFjdGlvblxuICBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLml0ZW1zLmxlbmd0aCA9IDBcbiAgfVxuXG4gIEBtb2RlbEFjdGlvblxuICBkZWxldGUodmFsdWU6IFYpOiBib29sZWFuIHtcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuaXRlbXNcblxuICAgIGNvbnN0IGluZGV4ID0gaXRlbXMuZmluZEluZGV4KCh0KSA9PiB0ID09PSB2YWx1ZSlcbiAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgaXRlbXMuc3BsaWNlKGluZGV4LCAxKVxuICAgICAgcmV0dXJuIHRydWVcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICB9XG5cbiAgZm9yRWFjaChjYWxsYmFja2ZuOiAodmFsdWU6IFYsIHZhbHVlMjogViwgc2V0OiBTZXQ8Vj4pID0+IHZvaWQsIHRoaXNBcmc/OiBhbnkpOiB2b2lkIHtcbiAgICAvLyB3ZSBjYW5ub3QgdXNlIHRoZSBzZXQgaW1wbGVtZW50YXRpb24gc2luY2Ugd2UgbmVlZCB0byBwYXNzIHRoaXMgYXMgc2V0XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLml0ZW1zXG4gICAgY29uc3QgbGVuID0gaXRlbXMubGVuZ3RoXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgY29uc3QgayA9IGl0ZW1zW2ldXG4gICAgICBjYWxsYmFja2ZuLmNhbGwodGhpc0FyZywgaywgaywgdGhpcylcbiAgICB9XG4gIH1cblxuICBoYXModmFsdWU6IFYpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5pbmNsdWRlcyh2YWx1ZSlcbiAgfVxuXG4gIGdldCBzaXplKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMubGVuZ3RoXG4gIH1cblxuICBrZXlzKCk6IEl0ZXJhYmxlSXRlcmF0b3I8Vj4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlcygpIC8vIHllcywgdmFsdWVzXG4gIH1cblxuICB2YWx1ZXMoKTogSXRlcmFibGVJdGVyYXRvcjxWPiB7XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLml0ZW1zXG5cbiAgICByZXR1cm4gdmFsdWVzKGl0ZW1zKVtTeW1ib2wuaXRlcmF0b3JdKClcbiAgfVxuXG4gIGVudHJpZXMoKTogSXRlcmFibGVJdGVyYXRvcjxbViwgVl0+IHtcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuaXRlbXNcblxuICAgIC8vIFRPRE86IHNob3VsZCB1c2UgYW4gYWN0dWFsIGl0ZXJhdG9yXG4gICAgcmV0dXJuIGl0ZW1zLm1hcCgodikgPT4gW3YsIHZdIGFzIFtWLCBWXSkudmFsdWVzKClcbiAgfVxuXG4gIFtTeW1ib2wuaXRlcmF0b3JdKCk6IEl0ZXJhYmxlSXRlcmF0b3I8Vj4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlcygpXG4gIH1cblxuICBnZXQgW1N5bWJvbC50b1N0cmluZ1RhZ10oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJBcnJheVNldFwiXG4gIH1cbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IEFycmF5U2V0IG1vZGVsIGluc3RhbmNlLlxuICpcbiAqIEB0eXBlcGFyYW0gViBWYWx1ZSB0eXBlLlxuICogQHBhcmFtIFtlbnRyaWVzXSBPcHRpb25hbCBpbml0aWFsIHZhbHVlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFycmF5U2V0PFY+KHZhbHVlcz86IFJlYWRvbmx5QXJyYXk8Vj4gfCBudWxsKTogQXJyYXlTZXQ8Vj4ge1xuICBjb25zdCBpbml0aWFsQXJyOiBWW10gPSB2YWx1ZXMgPyB2YWx1ZXMuc2xpY2UoKSA6IFtdXG5cbiAgcmV0dXJuIG5ldyBBcnJheVNldCh7IGl0ZW1zOiBpbml0aWFsQXJyIH0pXG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUFnQmEsV0FBYixNQUFhLGtCQUNILE1BQU07QUFBQSxHQUNYLGFBQWE7QUFBQSxFQUNkLE9BQU8sTUFBTSxXQUFXLGdCQUFxQixHQUFHLE1BQU0sRUFBRTtDQUN6RDtFQUlELElBQUk7VUFDSSxRQUFRLEtBQUs7UUFFZixDQUFDLE1BQU0sU0FBUyxLQUFLLEdBQUc7WUFDcEIsS0FBSyxLQUFLO0FBQUE7V0FFWDtBQUFBO0VBSVQ7U0FDTyxNQUFNLFNBQVM7QUFBQTtFQUl0QixPQUFPO1VBQ0MsUUFBUSxLQUFLO1VBRWIsUUFBUSxNQUFNLFVBQVUsQ0FBQyxNQUFNLE1BQU0sS0FBSztRQUM1QyxTQUFTLEdBQUc7WUFDUixPQUFPLE9BQU8sQ0FBQzthQUNkO0FBQUEsV0FDRjthQUNFO0FBQUE7O0VBSVgsUUFBUSxZQUF3RDtVQUV4RCxRQUFRLEtBQUs7VUFDYixNQUFNLE1BQU07YUFDVCxJQUFJLEdBQUcsSUFBSSxLQUFLLEtBQUs7WUFDdEIsSUFBSSxNQUFNO2lCQUNMLEtBQUssU0FBUyxHQUFHLEdBQUcsSUFBSTtBQUFBOztFQUl2QyxJQUFJO1dBQ0ssS0FBSyxNQUFNLFNBQVMsS0FBSztBQUFBO01BRzlCO1dBQ0ssS0FBSyxNQUFNO0FBQUE7RUFHcEI7V0FDUyxLQUFLOztFQUdkO1VBQ1EsUUFBUSxLQUFLO1dBRVosT0FBTyxLQUFLLEVBQUUsT0FBTzs7RUFHOUI7VUFDUSxRQUFRLEtBQUs7V0FHWixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQVcsRUFBRTs7R0FHM0MsT0FBTztXQUNDLEtBQUs7O09BR1QsT0FBTztXQUNIO0FBQUE7O0FBbkVUO0VBREM7O0FBV0Q7RUFEQzs7QUFNRDtFQURDOztBQXRCVTtFQURaLE1BQU0sR0FBRyxvQkFBb0I7R0FDakIsUUFBUTtrQkFxRk87UUFDcEIsYUFBa0IsVUFBUyxRQUFPLFVBQVU7U0FFM0MsSUFBSSxTQUFTLEVBQUUsT0FBTyxZQUFZO0FBQzNDOzsifQ==