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