mobx-keystone 0.68.0 → 0.68.1-alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (350) hide show
  1. package/dist/_virtual/_tslib.mjs +12 -0
  2. package/dist/node_modules/fast-deep-equal/es6/index.mjs +68 -0
  3. package/dist/node_modules/nanoid/non-secure/index.mjs +11 -0
  4. package/dist/src/action/actionDecoratorUtils.mjs +25 -0
  5. package/dist/src/action/applyAction.mjs +54 -0
  6. package/dist/src/action/applyDelete.mjs +20 -0
  7. package/dist/src/action/applyMethodCall.mjs +19 -0
  8. package/dist/src/action/applySet.mjs +25 -0
  9. package/dist/src/action/builtInActions.mjs +15 -0
  10. package/dist/src/action/context.mjs +22 -0
  11. package/dist/src/action/hookActions.mjs +13 -0
  12. package/dist/src/action/isModelAction.mjs +6 -0
  13. package/dist/src/action/middleware.mjs +84 -0
  14. package/dist/src/action/modelAction.mjs +34 -0
  15. package/dist/src/action/modelFlow.mjs +251 -0
  16. package/dist/src/action/pendingActions.mjs +30 -0
  17. package/dist/src/action/protection.mjs +19 -0
  18. package/dist/src/action/runUnprotected.mjs +24 -0
  19. package/dist/src/action/wrapInAction.mjs +90 -0
  20. package/dist/src/actionMiddlewares/actionSerialization/actionSerialization.mjs +131 -0
  21. package/dist/src/actionMiddlewares/actionSerialization/applySerializedAction.mjs +110 -0
  22. package/dist/src/actionMiddlewares/actionSerialization/arraySerializer.mjs +15 -0
  23. package/dist/src/actionMiddlewares/actionSerialization/core.mjs +3 -0
  24. package/dist/src/actionMiddlewares/actionSerialization/dateSerializer.mjs +15 -0
  25. package/dist/src/actionMiddlewares/actionSerialization/mapSerializer.mjs +32 -0
  26. package/dist/src/actionMiddlewares/actionSerialization/objectPathSerializer.mjs +33 -0
  27. package/dist/src/actionMiddlewares/actionSerialization/objectSnapshotSerializer.mjs +18 -0
  28. package/dist/src/actionMiddlewares/actionSerialization/plainObjectSerializer.mjs +27 -0
  29. package/dist/src/actionMiddlewares/actionSerialization/primitiveSerializer.mjs +39 -0
  30. package/dist/src/actionMiddlewares/actionSerialization/setSerializer.mjs +29 -0
  31. package/dist/src/actionMiddlewares/actionTrackingMiddleware.mjs +239 -0
  32. package/dist/src/actionMiddlewares/onActionMiddleware.mjs +44 -0
  33. package/dist/src/actionMiddlewares/readonlyMiddleware.mjs +49 -0
  34. package/dist/src/actionMiddlewares/transactionMiddleware.mjs +69 -0
  35. package/dist/src/actionMiddlewares/undoMiddleware.mjs +472 -0
  36. package/dist/src/actionMiddlewares/utils.mjs +25 -0
  37. package/dist/src/computedTree/computedTree.mjs +63 -0
  38. package/dist/src/context/context.mjs +141 -0
  39. package/dist/src/dataModel/BaseDataModel.mjs +108 -0
  40. package/dist/src/dataModel/DataModel.mjs +32 -0
  41. package/dist/src/dataModel/actions.mjs +12 -0
  42. package/dist/src/dataModel/getDataModelMetadata.mjs +14 -0
  43. package/dist/src/dataModel/newDataModel.mjs +31 -0
  44. package/dist/src/dataModel/utils.mjs +29 -0
  45. package/dist/src/frozen/Frozen.mjs +68 -0
  46. package/dist/src/globalConfig/globalConfig.mjs +57 -0
  47. package/dist/src/index.mjs +97 -0
  48. package/dist/src/model/BaseModel.mjs +118 -0
  49. package/dist/src/model/Model.mjs +36 -0
  50. package/dist/src/model/getModelMetadata.mjs +19 -0
  51. package/dist/src/model/metadata.mjs +7 -0
  52. package/dist/src/model/newModel.mjs +95 -0
  53. package/dist/src/model/utils.mjs +33 -0
  54. package/dist/src/modelShared/BaseModelShared.mjs +9 -0
  55. package/dist/src/modelShared/Model.mjs +249 -0
  56. package/dist/src/modelShared/checkModelDecoratorArgs.mjs +21 -0
  57. package/dist/src/modelShared/modelClassInitializer.mjs +14 -0
  58. package/dist/src/modelShared/modelDecorator.mjs +117 -0
  59. package/dist/src/modelShared/modelInfo.mjs +7 -0
  60. package/dist/src/modelShared/modelPropsInfo.mjs +9 -0
  61. package/dist/src/modelShared/modelSymbols.mjs +5 -0
  62. package/dist/src/modelShared/newModel.mjs +13 -0
  63. package/dist/src/modelShared/prop.mjs +138 -0
  64. package/dist/src/modelShared/utils.mjs +10 -0
  65. package/dist/src/parent/core.mjs +34 -0
  66. package/dist/src/parent/coreObjectChildren.mjs +98 -0
  67. package/dist/src/parent/detach.mjs +32 -0
  68. package/dist/src/parent/findChildren.mjs +16 -0
  69. package/dist/src/parent/findParent.mjs +30 -0
  70. package/dist/src/parent/getChildrenObjects.mjs +12 -0
  71. package/dist/src/parent/onChildAttachedTo.mjs +101 -0
  72. package/dist/src/parent/path.mjs +149 -0
  73. package/dist/src/parent/path2.mjs +12 -0
  74. package/dist/src/parent/setParent.mjs +83 -0
  75. package/dist/src/parent/walkTree.mjs +104 -0
  76. package/dist/src/patch/applyPatches.mjs +118 -0
  77. package/dist/src/patch/emitPatch.mjs +100 -0
  78. package/dist/src/patch/jsonPatch.mjs +60 -0
  79. package/dist/src/patch/patchRecorder.mjs +75 -0
  80. package/dist/src/redux/connectReduxDevTools.mjs +153 -0
  81. package/dist/src/redux/redux.mjs +60 -0
  82. package/dist/src/ref/Ref.mjs +38 -0
  83. package/dist/src/ref/core.mjs +179 -0
  84. package/dist/src/ref/customRef.mjs +9 -0
  85. package/dist/src/ref/rootRef.mjs +34 -0
  86. package/dist/src/rootStore/attachDetach.mjs +53 -0
  87. package/dist/src/rootStore/rootStore.mjs +50 -0
  88. package/dist/src/snapshot/SnapshotterAndReconcilerPriority.mjs +9 -0
  89. package/dist/src/snapshot/applySnapshot.mjs +92 -0
  90. package/dist/src/snapshot/clone.mjs +29 -0
  91. package/dist/src/snapshot/fromArraySnapshot.mjs +23 -0
  92. package/dist/src/snapshot/fromFrozenSnapshot.mjs +13 -0
  93. package/dist/src/snapshot/fromModelSnapshot.mjs +38 -0
  94. package/dist/src/snapshot/fromPlainObjectSnapshot.mjs +26 -0
  95. package/dist/src/snapshot/fromSnapshot.mjs +91 -0
  96. package/dist/src/snapshot/getSnapshot.mjs +27 -0
  97. package/dist/src/snapshot/internal.mjs +97 -0
  98. package/dist/src/snapshot/onSnapshot.mjs +16 -0
  99. package/dist/src/snapshot/reconcileArraySnapshot.mjs +40 -0
  100. package/dist/src/snapshot/reconcileFrozenSnapshot.mjs +19 -0
  101. package/dist/src/snapshot/reconcileModelSnapshot.mjs +77 -0
  102. package/dist/src/snapshot/reconcilePlainObjectSnapshot.mjs +47 -0
  103. package/dist/src/snapshot/reconcileSnapshot.mjs +49 -0
  104. package/dist/src/snapshot/registerDefaultReconcilers.mjs +17 -0
  105. package/dist/src/snapshot/registerDefaultSnapshotters.mjs +17 -0
  106. package/dist/src/standardActions/actions.mjs +35 -0
  107. package/dist/src/standardActions/arrayActions.mjs +66 -0
  108. package/dist/src/standardActions/objectActions.mjs +36 -0
  109. package/dist/src/standardActions/standaloneActions.mjs +9 -0
  110. package/dist/src/transforms/ImmutableDate.mjs +51 -0
  111. package/dist/src/transforms/asMap.mjs +29 -0
  112. package/dist/src/transforms/asSet.mjs +12 -0
  113. package/dist/src/transforms/bigint.mjs +14 -0
  114. package/dist/src/transforms/date.mjs +27 -0
  115. package/dist/src/treeUtils/deepEquals.mjs +40 -0
  116. package/dist/src/treeUtils/draft.mjs +116 -0
  117. package/dist/src/treeUtils/sandbox.mjs +158 -0
  118. package/dist/src/tweaker/TweakerPriority.mjs +9 -0
  119. package/dist/src/tweaker/core.mjs +38 -0
  120. package/dist/src/tweaker/registerDefaultTweakers.mjs +17 -0
  121. package/dist/src/tweaker/tweak.mjs +109 -0
  122. package/dist/src/tweaker/tweakArray.mjs +272 -0
  123. package/dist/src/tweaker/tweakFrozen.mjs +28 -0
  124. package/dist/src/tweaker/tweakModel.mjs +26 -0
  125. package/dist/src/tweaker/tweakPlainObject.mjs +205 -0
  126. package/dist/src/tweaker/typeChecking.mjs +46 -0
  127. package/dist/src/tweaker/withoutTypeChecking.mjs +15 -0
  128. package/dist/src/types/TypeCheckError.mjs +31 -0
  129. package/dist/src/types/TypeChecker.mjs +165 -0
  130. package/dist/src/types/arrayBased/array.mjs +68 -0
  131. package/dist/src/types/arrayBased/tuple.mjs +71 -0
  132. package/dist/src/types/getTypeInfo.mjs +12 -0
  133. package/dist/src/types/objectBased/arraySet.mjs +83 -0
  134. package/dist/src/types/objectBased/dataModelData.mjs +95 -0
  135. package/dist/src/types/objectBased/model.mjs +133 -0
  136. package/dist/src/types/objectBased/object.mjs +119 -0
  137. package/dist/src/types/objectBased/objectMap.mjs +90 -0
  138. package/dist/src/types/objectBased/record.mjs +80 -0
  139. package/dist/src/types/objectBased/ref.mjs +62 -0
  140. package/dist/src/types/primitiveBased/enum.mjs +20 -0
  141. package/dist/src/types/primitiveBased/primitives.mjs +59 -0
  142. package/dist/src/types/primitiveBased/refinedPrimitives.mjs +6 -0
  143. package/dist/src/types/registerDefaultStandardTypeResolvers.mjs +13 -0
  144. package/dist/src/types/resolveTypeChecker.mjs +52 -0
  145. package/dist/src/types/tProp.mjs +53 -0
  146. package/dist/src/types/typeCheck.mjs +11 -0
  147. package/dist/src/types/types.mjs +69 -0
  148. package/dist/src/types/utility/maybe.mjs +10 -0
  149. package/dist/src/types/utility/or.mjs +99 -0
  150. package/dist/src/types/utility/refinement.mjs +52 -0
  151. package/dist/src/types/utility/unchecked.mjs +10 -0
  152. package/dist/src/utils/ModelPool.mjs +50 -0
  153. package/dist/src/utils/chainFns.mjs +15 -0
  154. package/dist/src/utils/index.mjs +228 -0
  155. package/dist/src/utils/mapUtils.mjs +10 -0
  156. package/dist/src/utils/tag.mjs +16 -0
  157. package/dist/src/wrappers/ArraySet.mjs +85 -0
  158. package/dist/src/wrappers/ObjectMap.mjs +96 -0
  159. package/dist/src/wrappers/asMap.mjs +181 -0
  160. package/dist/src/wrappers/asSet.mjs +97 -0
  161. package/package.json +8 -11
  162. package/src/dist/action/actionDecoratorUtils.d.ts +5 -0
  163. package/src/dist/action/applyAction.d.ts +36 -0
  164. package/src/dist/action/applyDelete.d.ts +7 -0
  165. package/src/dist/action/applyMethodCall.d.ts +9 -0
  166. package/src/dist/action/applySet.d.ts +8 -0
  167. package/src/dist/action/builtInActions.d.ts +39 -0
  168. package/src/dist/action/context.d.ts +85 -0
  169. package/src/dist/action/hookActions.d.ts +32 -0
  170. package/src/dist/action/index.d.ts +12 -0
  171. package/src/dist/action/isModelAction.d.ts +7 -0
  172. package/src/dist/action/middleware.d.ts +34 -0
  173. package/src/dist/action/modelAction.d.ts +9 -0
  174. package/src/dist/action/modelFlow.d.ts +34 -0
  175. package/src/dist/action/pendingActions.d.ts +1 -0
  176. package/src/dist/action/protection.d.ts +1 -0
  177. package/src/dist/action/runUnprotected.d.ts +19 -0
  178. package/src/dist/action/wrapInAction.d.ts +1 -0
  179. package/src/dist/actionMiddlewares/actionSerialization/actionSerialization.d.ts +84 -0
  180. package/src/dist/actionMiddlewares/actionSerialization/applySerializedAction.d.ts +45 -0
  181. package/src/dist/actionMiddlewares/actionSerialization/arraySerializer.d.ts +3 -0
  182. package/src/dist/actionMiddlewares/actionSerialization/core.d.ts +28 -0
  183. package/src/dist/actionMiddlewares/actionSerialization/dateSerializer.d.ts +2 -0
  184. package/src/dist/actionMiddlewares/actionSerialization/index.d.ts +3 -0
  185. package/src/dist/actionMiddlewares/actionSerialization/mapSerializer.d.ts +6 -0
  186. package/src/dist/actionMiddlewares/actionSerialization/objectPathSerializer.d.ts +8 -0
  187. package/src/dist/actionMiddlewares/actionSerialization/objectSnapshotSerializer.d.ts +2 -0
  188. package/src/dist/actionMiddlewares/actionSerialization/plainObjectSerializer.d.ts +2 -0
  189. package/src/dist/actionMiddlewares/actionSerialization/primitiveSerializer.d.ts +2 -0
  190. package/src/dist/actionMiddlewares/actionSerialization/setSerializer.d.ts +3 -0
  191. package/src/dist/actionMiddlewares/actionTrackingMiddleware.d.ts +122 -0
  192. package/src/dist/actionMiddlewares/index.d.ts +6 -0
  193. package/src/dist/actionMiddlewares/onActionMiddleware.d.ts +26 -0
  194. package/src/dist/actionMiddlewares/readonlyMiddleware.d.ts +35 -0
  195. package/src/dist/actionMiddlewares/transactionMiddleware.d.ts +21 -0
  196. package/src/dist/actionMiddlewares/undoMiddleware.d.ts +283 -0
  197. package/src/dist/actionMiddlewares/utils.d.ts +1 -0
  198. package/src/dist/computedTree/computedTree.d.ts +16 -0
  199. package/src/dist/computedTree/index.d.ts +1 -0
  200. package/src/dist/context/context.d.ts +84 -0
  201. package/src/dist/context/index.d.ts +1 -0
  202. package/src/dist/dataModel/BaseDataModel.d.ts +52 -0
  203. package/src/dist/dataModel/DataModel.d.ts +47 -0
  204. package/src/dist/dataModel/DataModelConstructorOptions.d.ts +1 -0
  205. package/src/dist/dataModel/actions.d.ts +1 -0
  206. package/src/dist/dataModel/getDataModelMetadata.d.ts +19 -0
  207. package/src/dist/dataModel/index.d.ts +4 -0
  208. package/src/dist/dataModel/newDataModel.d.ts +1 -0
  209. package/src/dist/dataModel/utils.d.ts +8 -0
  210. package/src/dist/frozen/Frozen.d.ts +50 -0
  211. package/src/dist/frozen/index.d.ts +1 -0
  212. package/src/dist/globalConfig/globalConfig.d.ts +51 -0
  213. package/src/dist/globalConfig/index.d.ts +1 -0
  214. package/src/dist/index.d.ts +23 -0
  215. package/src/dist/mobx-keystone.umd.js +8201 -0
  216. package/src/dist/model/BaseModel.d.ts +125 -0
  217. package/src/dist/model/Model.d.ts +94 -0
  218. package/src/dist/model/ModelConstructorOptions.d.ts +1 -0
  219. package/src/dist/model/getModelMetadata.d.ts +27 -0
  220. package/src/dist/model/index.d.ts +5 -0
  221. package/src/dist/model/metadata.d.ts +8 -0
  222. package/src/dist/model/newModel.d.ts +1 -0
  223. package/src/dist/model/utils.d.ts +8 -0
  224. package/src/dist/modelShared/BaseModelShared.d.ts +76 -0
  225. package/src/dist/modelShared/Model.d.ts +15 -0
  226. package/src/dist/modelShared/checkModelDecoratorArgs.d.ts +1 -0
  227. package/src/dist/modelShared/index.d.ts +3 -0
  228. package/src/dist/modelShared/modelClassInitializer.d.ts +1 -0
  229. package/src/dist/modelShared/modelDecorator.d.ts +24 -0
  230. package/src/dist/modelShared/modelInfo.d.ts +1 -0
  231. package/src/dist/modelShared/modelPropsInfo.d.ts +1 -0
  232. package/src/dist/modelShared/modelSymbols.d.ts +3 -0
  233. package/src/dist/modelShared/newModel.d.ts +4 -0
  234. package/src/dist/modelShared/prop.d.ts +179 -0
  235. package/src/dist/modelShared/utils.d.ts +1 -0
  236. package/src/dist/parent/core.d.ts +1 -0
  237. package/src/dist/parent/coreObjectChildren.d.ts +1 -0
  238. package/src/dist/parent/detach.d.ts +9 -0
  239. package/src/dist/parent/findChildren.d.ts +13 -0
  240. package/src/dist/parent/findParent.d.ts +41 -0
  241. package/src/dist/parent/getChildrenObjects.d.ts +11 -0
  242. package/src/dist/parent/index.d.ts +9 -0
  243. package/src/dist/parent/onChildAttachedTo.d.ts +22 -0
  244. package/src/dist/parent/path.d.ts +107 -0
  245. package/src/dist/parent/path2.d.ts +16 -0
  246. package/src/dist/parent/pathTypes.d.ts +12 -0
  247. package/src/dist/parent/setParent.d.ts +1 -0
  248. package/src/dist/parent/walkTree.d.ts +25 -0
  249. package/src/dist/patch/Patch.d.ts +16 -0
  250. package/src/dist/patch/applyPatches.d.ts +9 -0
  251. package/src/dist/patch/emitPatch.d.ts +29 -0
  252. package/src/dist/patch/index.d.ts +5 -0
  253. package/src/dist/patch/jsonPatch.d.ts +45 -0
  254. package/src/dist/patch/patchRecorder.d.ts +70 -0
  255. package/src/dist/redux/connectReduxDevTools.d.ts +12 -0
  256. package/src/dist/redux/index.d.ts +2 -0
  257. package/src/dist/redux/redux.d.ts +47 -0
  258. package/src/dist/ref/Ref.d.ts +53 -0
  259. package/src/dist/ref/core.d.ts +46 -0
  260. package/src/dist/ref/customRef.d.ts +38 -0
  261. package/src/dist/ref/index.d.ts +4 -0
  262. package/src/dist/ref/rootRef.d.ts +33 -0
  263. package/src/dist/rootStore/attachDetach.d.ts +1 -0
  264. package/src/dist/rootStore/index.d.ts +1 -0
  265. package/src/dist/rootStore/rootStore.d.ts +33 -0
  266. package/src/dist/snapshot/SnapshotOf.d.ts +47 -0
  267. package/src/dist/snapshot/SnapshotterAndReconcilerPriority.d.ts +1 -0
  268. package/src/dist/snapshot/applySnapshot.d.ts +17 -0
  269. package/src/dist/snapshot/clone.d.ts +18 -0
  270. package/src/dist/snapshot/fromArraySnapshot.d.ts +1 -0
  271. package/src/dist/snapshot/fromFrozenSnapshot.d.ts +1 -0
  272. package/src/dist/snapshot/fromModelSnapshot.d.ts +1 -0
  273. package/src/dist/snapshot/fromPlainObjectSnapshot.d.ts +1 -0
  274. package/src/dist/snapshot/fromSnapshot.d.ts +36 -0
  275. package/src/dist/snapshot/getSnapshot.d.ts +22 -0
  276. package/src/dist/snapshot/index.d.ts +6 -0
  277. package/src/dist/snapshot/internal.d.ts +1 -0
  278. package/src/dist/snapshot/onSnapshot.d.ts +18 -0
  279. package/src/dist/snapshot/reconcileArraySnapshot.d.ts +1 -0
  280. package/src/dist/snapshot/reconcileFrozenSnapshot.d.ts +1 -0
  281. package/src/dist/snapshot/reconcileModelSnapshot.d.ts +1 -0
  282. package/src/dist/snapshot/reconcilePlainObjectSnapshot.d.ts +1 -0
  283. package/src/dist/snapshot/reconcileSnapshot.d.ts +1 -0
  284. package/src/dist/snapshot/registerDefaultReconcilers.d.ts +1 -0
  285. package/src/dist/snapshot/registerDefaultSnapshotters.d.ts +1 -0
  286. package/src/dist/standardActions/actions.d.ts +1 -0
  287. package/src/dist/standardActions/arrayActions.d.ts +18 -0
  288. package/src/dist/standardActions/index.d.ts +3 -0
  289. package/src/dist/standardActions/objectActions.d.ts +7 -0
  290. package/src/dist/standardActions/standaloneActions.d.ts +16 -0
  291. package/src/dist/transforms/ImmutableDate.d.ts +1 -0
  292. package/src/dist/transforms/asMap.d.ts +3 -0
  293. package/src/dist/transforms/asSet.d.ts +2 -0
  294. package/src/dist/transforms/bigint.d.ts +2 -0
  295. package/src/dist/transforms/date.d.ts +3 -0
  296. package/src/dist/transforms/index.d.ts +4 -0
  297. package/src/dist/treeUtils/deepEquals.d.ts +20 -0
  298. package/src/dist/treeUtils/draft.d.ts +70 -0
  299. package/src/dist/treeUtils/index.d.ts +3 -0
  300. package/src/dist/treeUtils/sandbox.d.ts +85 -0
  301. package/src/dist/tweaker/TweakerPriority.d.ts +1 -0
  302. package/src/dist/tweaker/core.d.ts +14 -0
  303. package/src/dist/tweaker/index.d.ts +2 -0
  304. package/src/dist/tweaker/registerDefaultTweakers.d.ts +1 -0
  305. package/src/dist/tweaker/tweak.d.ts +22 -0
  306. package/src/dist/tweaker/tweakArray.d.ts +1 -0
  307. package/src/dist/tweaker/tweakFrozen.d.ts +1 -0
  308. package/src/dist/tweaker/tweakModel.d.ts +1 -0
  309. package/src/dist/tweaker/tweakPlainObject.d.ts +1 -0
  310. package/src/dist/tweaker/typeChecking.d.ts +1 -0
  311. package/src/dist/tweaker/withoutTypeChecking.d.ts +2 -0
  312. package/src/dist/types/TypeCheckError.d.ts +22 -0
  313. package/src/dist/types/TypeChecker.d.ts +8 -0
  314. package/src/dist/types/arrayBased/array.d.ts +23 -0
  315. package/src/dist/types/arrayBased/tuple.d.ts +24 -0
  316. package/src/dist/types/getTypeInfo.d.ts +9 -0
  317. package/src/dist/types/index.d.ts +5 -0
  318. package/src/dist/types/objectBased/arraySet.d.ts +24 -0
  319. package/src/dist/types/objectBased/dataModelData.d.ts +44 -0
  320. package/src/dist/types/objectBased/model.d.ts +43 -0
  321. package/src/dist/types/objectBased/object.d.ts +63 -0
  322. package/src/dist/types/objectBased/objectMap.d.ts +24 -0
  323. package/src/dist/types/objectBased/record.d.ts +24 -0
  324. package/src/dist/types/objectBased/ref.d.ts +21 -0
  325. package/src/dist/types/primitiveBased/enum.d.ts +34 -0
  326. package/src/dist/types/primitiveBased/primitives.d.ts +81 -0
  327. package/src/dist/types/primitiveBased/refinedPrimitives.d.ts +18 -0
  328. package/src/dist/types/registerDefaultStandardTypeResolvers.d.ts +1 -0
  329. package/src/dist/types/resolveTypeChecker.d.ts +1 -0
  330. package/src/dist/types/schemas.d.ts +53 -0
  331. package/src/dist/types/tProp.d.ts +92 -0
  332. package/src/dist/types/typeCheck.d.ts +11 -0
  333. package/src/dist/types/types.d.ts +51 -0
  334. package/src/dist/types/utility/maybe.d.ts +29 -0
  335. package/src/dist/types/utility/or.d.ts +35 -0
  336. package/src/dist/types/utility/refinement.d.ts +45 -0
  337. package/src/dist/types/utility/unchecked.d.ts +22 -0
  338. package/src/dist/utils/ModelPool.d.ts +7 -0
  339. package/src/dist/utils/chainFns.d.ts +1 -0
  340. package/src/dist/utils/index.d.ts +6 -0
  341. package/src/dist/utils/mapUtils.d.ts +2 -0
  342. package/src/dist/utils/tag.d.ts +13 -0
  343. package/src/dist/utils/types.d.ts +39 -0
  344. package/src/dist/wrappers/ArraySet.d.ts +29 -0
  345. package/src/dist/wrappers/ObjectMap.d.ts +32 -0
  346. package/src/dist/wrappers/asMap.d.ts +29 -0
  347. package/src/dist/wrappers/asSet.d.ts +15 -0
  348. package/src/dist/wrappers/index.d.ts +4 -0
  349. package/dist/mobx-keystone.es.js +0 -7934
  350. package/dist/mobx-keystone.es.mjs +0 -7934
@@ -0,0 +1,249 @@
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 prop2 in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop2))
11
+ __defNormalProp(a, prop2, b[prop2]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop2 of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop2))
15
+ __defNormalProp(a, prop2, b[prop2]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ import { applySet } from "../action/applySet.mjs";
21
+ import { getCurrentActionContext } from "../action/context.mjs";
22
+ import { modelAction } from "../action/modelAction.mjs";
23
+ import { baseDataModelPropNames, BaseDataModel } from "../dataModel/BaseDataModel.mjs";
24
+ import { getGlobalConfig } from "../globalConfig/globalConfig.mjs";
25
+ import { baseModelPropNames, BaseModel } from "../model/BaseModel.mjs";
26
+ import { modelTypeKey } from "../model/metadata.mjs";
27
+ import { typesObject } from "../types/objectBased/object.mjs";
28
+ import { typesString } from "../types/primitiveBased/primitives.mjs";
29
+ import { tProp } from "../types/tProp.mjs";
30
+ import { typesUnchecked } from "../types/utility/unchecked.mjs";
31
+ import { assertIsObject, failure, propNameToSetterName } from "../utils/index.mjs";
32
+ import { chainFns } from "../utils/chainFns.mjs";
33
+ import { modelInitializedSymbol } from "./BaseModelShared.mjs";
34
+ import { modelInitializersSymbol } from "./modelClassInitializer.mjs";
35
+ import { getInternalModelClassPropsInfo, setInternalModelClassPropsInfo } from "./modelPropsInfo.mjs";
36
+ import { modelUnwrappedClassSymbol, modelMetadataSymbol } from "./modelSymbols.mjs";
37
+ import { prop } from "./prop.mjs";
38
+ import { assertIsClassOrDataModelClass } from "./utils.mjs";
39
+ function __extends(subClass, superClass) {
40
+ Object.setPrototypeOf(subClass, superClass);
41
+ function __() {
42
+ this.constructor = subClass;
43
+ }
44
+ __.prototype = superClass.prototype;
45
+ subClass.prototype = new __();
46
+ }
47
+ function createModelPropDescriptor(modelPropName, modelProp, enumerable) {
48
+ return {
49
+ enumerable,
50
+ configurable: true,
51
+ get() {
52
+ return getModelInstanceDataField(this, modelProp, modelPropName);
53
+ },
54
+ set(v) {
55
+ if (!(modelInitializedSymbol in this)) {
56
+ return;
57
+ }
58
+ setModelInstanceDataField(this, modelProp, modelPropName, v);
59
+ }
60
+ };
61
+ }
62
+ function getModelInstanceDataField(model, modelProp, modelPropName) {
63
+ const value = model.$[modelPropName];
64
+ if (modelProp == null ? void 0 : modelProp._internal.transform) {
65
+ return modelProp._internal.transform.transform(value, model, modelPropName, (newValue) => {
66
+ applySet(model.$, modelPropName, newValue);
67
+ });
68
+ }
69
+ return value;
70
+ }
71
+ function setModelInstanceDataField(model, modelProp, modelPropName, value) {
72
+ if ((modelProp == null ? void 0 : modelProp._internal.setter) === "assign" && !getCurrentActionContext()) {
73
+ applySet(model, modelPropName, value);
74
+ return;
75
+ }
76
+ const transformedValue = (modelProp == null ? void 0 : modelProp._internal.transform) ? modelProp._internal.transform.untransform(value, model, modelPropName) : value;
77
+ model.$[modelPropName] = transformedValue;
78
+ }
79
+ const idGenerator = () => getGlobalConfig().modelIdGenerator();
80
+ const tPropForId = tProp(typesString, idGenerator);
81
+ tPropForId._internal.isId = true;
82
+ const propForId = prop(idGenerator);
83
+ propForId._internal.isId = true;
84
+ function sharedInternalModel({ modelProps, baseModel, type, valueType, fromSnapshotProcessor, toSnapshotProcessor }) {
85
+ assertIsObject(modelProps, "modelProps");
86
+ if (baseModel) {
87
+ assertIsClassOrDataModelClass(baseModel, "baseModel");
88
+ const unwrappedClass = baseModel[modelUnwrappedClassSymbol];
89
+ if (unwrappedClass) {
90
+ baseModel = unwrappedClass;
91
+ assertIsClassOrDataModelClass(baseModel, "baseModel");
92
+ }
93
+ }
94
+ const extraDescriptors = {};
95
+ const composedModelProps = modelProps;
96
+ if (baseModel) {
97
+ const oldModelProps = getInternalModelClassPropsInfo(baseModel);
98
+ for (const oldModelPropKey of Object.keys(oldModelProps)) {
99
+ if (modelProps[oldModelPropKey]) {
100
+ throw failure(`extended model cannot redeclare base model property named '${oldModelPropKey}'`);
101
+ }
102
+ composedModelProps[oldModelPropKey] = oldModelProps[oldModelPropKey];
103
+ }
104
+ }
105
+ const idKeys = Object.keys(composedModelProps).filter((k) => {
106
+ const p = composedModelProps[k];
107
+ return p._internal.isId;
108
+ });
109
+ if (type === "class") {
110
+ if (idKeys.length > 1) {
111
+ throw failure(`expected at most one idProp but got many: ${JSON.stringify(idKeys)}`);
112
+ }
113
+ } else {
114
+ if (idKeys.length >= 1) {
115
+ throw failure(`expected no idProp but got some: ${JSON.stringify(idKeys)}`);
116
+ }
117
+ }
118
+ const needsTypeChecker = Object.values(composedModelProps).some((mp) => !!mp._internal.typeChecker);
119
+ let idKey;
120
+ if (idKeys.length >= 1) {
121
+ idKey = idKeys[0];
122
+ const idProp = composedModelProps[idKey];
123
+ let baseProp = needsTypeChecker ? tPropForId : propForId;
124
+ switch (idProp == null ? void 0 : idProp._internal.setter) {
125
+ case true:
126
+ baseProp = baseProp.withSetter();
127
+ break;
128
+ case "assign":
129
+ baseProp = baseProp.withSetter("assign");
130
+ break;
131
+ }
132
+ composedModelProps[idKey] = baseProp;
133
+ }
134
+ let dataTypeChecker;
135
+ if (needsTypeChecker) {
136
+ const typeCheckerObj = {};
137
+ for (const [k, mp] of Object.entries(composedModelProps)) {
138
+ typeCheckerObj[k] = !mp._internal.typeChecker ? typesUnchecked() : mp._internal.typeChecker;
139
+ }
140
+ dataTypeChecker = typesObject(() => typeCheckerObj);
141
+ }
142
+ const basePropNames = type === "class" ? baseModelPropNames : baseDataModelPropNames;
143
+ for (const modelPropName of Object.keys(modelProps).filter((mp) => !basePropNames.has(mp))) {
144
+ extraDescriptors[modelPropName] = createModelPropDescriptor(modelPropName, modelProps[modelPropName], false);
145
+ }
146
+ const extraPropNames = Object.keys(extraDescriptors);
147
+ const extraPropNamesLen = extraPropNames.length;
148
+ const base = baseModel != null ? baseModel : type === "class" ? BaseModel : BaseDataModel;
149
+ const CustomBaseModel = function(_base) {
150
+ __extends(CustomBaseModel2, _base);
151
+ function CustomBaseModel2(initialData, constructorOptions) {
152
+ var _a;
153
+ const modelClass = (_a = constructorOptions == null ? void 0 : constructorOptions.modelClass) != null ? _a : this.constructor;
154
+ const baseModel2 = new _base(initialData, __spreadProps(__spreadValues({}, constructorOptions), {
155
+ modelClass
156
+ }));
157
+ for (let i = 0; i < extraPropNamesLen; i++) {
158
+ const extraPropName = extraPropNames[i];
159
+ if (Object.getOwnPropertyDescriptor(baseModel2, extraPropName)) {
160
+ delete baseModel2[extraPropName];
161
+ }
162
+ }
163
+ return baseModel2;
164
+ }
165
+ return CustomBaseModel2;
166
+ }(base);
167
+ const initializers = base[modelInitializersSymbol];
168
+ if (initializers) {
169
+ CustomBaseModel[modelInitializersSymbol] = initializers.slice();
170
+ }
171
+ setInternalModelClassPropsInfo(CustomBaseModel, composedModelProps);
172
+ if (type === "class") {
173
+ const metadata = {
174
+ dataType: dataTypeChecker,
175
+ modelIdProperty: idKey,
176
+ valueType
177
+ };
178
+ CustomBaseModel[modelMetadataSymbol] = metadata;
179
+ } else {
180
+ const metadata = {
181
+ dataType: dataTypeChecker
182
+ };
183
+ CustomBaseModel[modelMetadataSymbol] = metadata;
184
+ }
185
+ Object.defineProperties(CustomBaseModel.prototype, extraDescriptors);
186
+ for (const [propName, propData] of Object.entries(modelProps)) {
187
+ if (propData._internal.setter === true) {
188
+ const setterName = propNameToSetterName(propName);
189
+ CustomBaseModel.prototype[setterName] = function(value) {
190
+ this[propName] = value;
191
+ };
192
+ const newPropDescriptor = modelAction(CustomBaseModel.prototype, setterName, Object.getOwnPropertyDescriptor(CustomBaseModel.prototype, setterName));
193
+ Object.defineProperty(CustomBaseModel.prototype, setterName, newPropDescriptor);
194
+ }
195
+ }
196
+ const modelPropsFromSnapshotProcessor = getModelPropsFromSnapshotProcessor(composedModelProps);
197
+ const modelPropsToSnapshotProcessor = getModelPropsToSnapshotProcessor(composedModelProps);
198
+ if (fromSnapshotProcessor) {
199
+ const fn = fromSnapshotProcessor;
200
+ fromSnapshotProcessor = (sn) => {
201
+ return __spreadProps(__spreadValues({}, fn(sn)), {
202
+ [modelTypeKey]: sn[modelTypeKey]
203
+ });
204
+ };
205
+ }
206
+ if (toSnapshotProcessor) {
207
+ const fn = toSnapshotProcessor;
208
+ toSnapshotProcessor = (sn, modelInstance) => {
209
+ return __spreadProps(__spreadValues({}, fn(sn, modelInstance)), {
210
+ [modelTypeKey]: sn[modelTypeKey]
211
+ });
212
+ };
213
+ }
214
+ CustomBaseModel.fromSnapshotProcessor = chainFns(fromSnapshotProcessor, modelPropsFromSnapshotProcessor);
215
+ CustomBaseModel.toSnapshotProcessor = chainFns(modelPropsToSnapshotProcessor, toSnapshotProcessor);
216
+ return CustomBaseModel;
217
+ }
218
+ function getModelPropsFromSnapshotProcessor(composedModelProps) {
219
+ const propsWithFromSnapshotProcessor = Object.entries(composedModelProps).filter(([_propName, propData]) => propData._internal.fromSnapshotProcessor);
220
+ if (propsWithFromSnapshotProcessor.length <= 0) {
221
+ return void 0;
222
+ }
223
+ return (sn) => {
224
+ const newSn = __spreadValues({}, sn);
225
+ for (const [propName, propData] of propsWithFromSnapshotProcessor) {
226
+ if (propData._internal.fromSnapshotProcessor) {
227
+ newSn[propName] = propData._internal.fromSnapshotProcessor(sn[propName]);
228
+ }
229
+ }
230
+ return newSn;
231
+ };
232
+ }
233
+ function getModelPropsToSnapshotProcessor(composedModelProps) {
234
+ const propsWithToSnapshotProcessor = Object.entries(composedModelProps).filter(([_propName, propData]) => propData._internal.toSnapshotProcessor);
235
+ if (propsWithToSnapshotProcessor.length <= 0) {
236
+ return void 0;
237
+ }
238
+ return (sn) => {
239
+ const newSn = __spreadValues({}, sn);
240
+ for (const [propName, propData] of propsWithToSnapshotProcessor) {
241
+ if (propData._internal.toSnapshotProcessor) {
242
+ newSn[propName] = propData._internal.toSnapshotProcessor(sn[propName]);
243
+ }
244
+ }
245
+ return newSn;
246
+ };
247
+ }
248
+ export { sharedInternalModel };
249
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWwubWpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWxTaGFyZWQvTW9kZWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXBwbHlTZXQgfSBmcm9tIFwiLi4vYWN0aW9uL2FwcGx5U2V0XCJcclxuaW1wb3J0IHsgZ2V0Q3VycmVudEFjdGlvbkNvbnRleHQgfSBmcm9tIFwiLi4vYWN0aW9uL2NvbnRleHRcIlxyXG5pbXBvcnQgeyBtb2RlbEFjdGlvbiB9IGZyb20gXCIuLi9hY3Rpb24vbW9kZWxBY3Rpb25cIlxyXG5pbXBvcnQgeyBBbnlEYXRhTW9kZWwsIEJhc2VEYXRhTW9kZWwsIGJhc2VEYXRhTW9kZWxQcm9wTmFtZXMgfSBmcm9tIFwiLi4vZGF0YU1vZGVsL0Jhc2VEYXRhTW9kZWxcIlxyXG5pbXBvcnQgdHlwZSB7IERhdGFNb2RlbENvbnN0cnVjdG9yT3B0aW9ucyB9IGZyb20gXCIuLi9kYXRhTW9kZWwvRGF0YU1vZGVsQ29uc3RydWN0b3JPcHRpb25zXCJcclxuaW1wb3J0IHR5cGUgeyBEYXRhTW9kZWxNZXRhZGF0YSB9IGZyb20gXCIuLi9kYXRhTW9kZWwvZ2V0RGF0YU1vZGVsTWV0YWRhdGFcIlxyXG5pbXBvcnQgeyBnZXRHbG9iYWxDb25maWcgfSBmcm9tIFwiLi4vZ2xvYmFsQ29uZmlnL2dsb2JhbENvbmZpZ1wiXHJcbmltcG9ydCB7IEFueU1vZGVsLCBCYXNlTW9kZWwsIGJhc2VNb2RlbFByb3BOYW1lcyB9IGZyb20gXCIuLi9tb2RlbC9CYXNlTW9kZWxcIlxyXG5pbXBvcnQgdHlwZSB7IE1vZGVsTWV0YWRhdGEgfSBmcm9tIFwiLi4vbW9kZWwvZ2V0TW9kZWxNZXRhZGF0YVwiXHJcbmltcG9ydCB7IG1vZGVsVHlwZUtleSB9IGZyb20gXCIuLi9tb2RlbC9tZXRhZGF0YVwiXHJcbmltcG9ydCB0eXBlIHsgTW9kZWxDb25zdHJ1Y3Rvck9wdGlvbnMgfSBmcm9tIFwiLi4vbW9kZWwvTW9kZWxDb25zdHJ1Y3Rvck9wdGlvbnNcIlxyXG5pbXBvcnQgeyB0eXBlc09iamVjdCB9IGZyb20gXCIuLi90eXBlcy9vYmplY3RCYXNlZC9vYmplY3RcIlxyXG5pbXBvcnQgeyB0eXBlc1N0cmluZyB9IGZyb20gXCIuLi90eXBlcy9wcmltaXRpdmVCYXNlZC9wcmltaXRpdmVzXCJcclxuaW1wb3J0IHR5cGUgeyBBbnlUeXBlIH0gZnJvbSBcIi4uL3R5cGVzL3NjaGVtYXNcIlxyXG5pbXBvcnQgeyB0UHJvcCB9IGZyb20gXCIuLi90eXBlcy90UHJvcFwiXHJcbmltcG9ydCB0eXBlIHsgTGF0ZVR5cGVDaGVja2VyIH0gZnJvbSBcIi4uL3R5cGVzL1R5cGVDaGVja2VyXCJcclxuaW1wb3J0IHsgdHlwZXNVbmNoZWNrZWQgfSBmcm9tIFwiLi4vdHlwZXMvdXRpbGl0eS91bmNoZWNrZWRcIlxyXG5pbXBvcnQgeyBhc3NlcnRJc09iamVjdCwgZmFpbHVyZSwgcHJvcE5hbWVUb1NldHRlck5hbWUgfSBmcm9tIFwiLi4vdXRpbHNcIlxyXG5pbXBvcnQgeyBjaGFpbkZucyB9IGZyb20gXCIuLi91dGlscy9jaGFpbkZuc1wiXHJcbmltcG9ydCB7IE1vZGVsQ2xhc3MsIG1vZGVsSW5pdGlhbGl6ZWRTeW1ib2wgfSBmcm9tIFwiLi9CYXNlTW9kZWxTaGFyZWRcIlxyXG5pbXBvcnQgeyBtb2RlbEluaXRpYWxpemVyc1N5bWJvbCB9IGZyb20gXCIuL21vZGVsQ2xhc3NJbml0aWFsaXplclwiXHJcbmltcG9ydCB7IGdldEludGVybmFsTW9kZWxDbGFzc1Byb3BzSW5mbywgc2V0SW50ZXJuYWxNb2RlbENsYXNzUHJvcHNJbmZvIH0gZnJvbSBcIi4vbW9kZWxQcm9wc0luZm9cIlxyXG5pbXBvcnQgeyBtb2RlbE1ldGFkYXRhU3ltYm9sLCBtb2RlbFVud3JhcHBlZENsYXNzU3ltYm9sIH0gZnJvbSBcIi4vbW9kZWxTeW1ib2xzXCJcclxuaW1wb3J0IHsgQW55TW9kZWxQcm9wLCBNb2RlbFByb3BzLCBwcm9wIH0gZnJvbSBcIi4vcHJvcFwiXHJcbmltcG9ydCB7IGFzc2VydElzQ2xhc3NPckRhdGFNb2RlbENsYXNzIH0gZnJvbSBcIi4vdXRpbHNcIlxyXG5cclxuZnVuY3Rpb24gX19leHRlbmRzKHN1YkNsYXNzOiBhbnksIHN1cGVyQ2xhc3M6IGFueSkge1xyXG4gIE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcylcclxuICBmdW5jdGlvbiBfXyh0aGlzOiBhbnkpIHtcclxuICAgIHRoaXMuY29uc3RydWN0b3IgPSBzdWJDbGFzc1xyXG4gIH1cclxuICBfXy5wcm90b3R5cGUgPSBzdXBlckNsYXNzLnByb3RvdHlwZVxyXG4gIHN1YkNsYXNzLnByb3RvdHlwZSA9IG5ldyAoX18gYXMgYW55KSgpXHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNyZWF0ZU1vZGVsUHJvcERlc2NyaXB0b3IoXHJcbiAgbW9kZWxQcm9wTmFtZTogc3RyaW5nLFxyXG4gIG1vZGVsUHJvcDogQW55TW9kZWxQcm9wIHwgdW5kZWZpbmVkLFxyXG4gIGVudW1lcmFibGU6IGJvb2xlYW5cclxuKTogUHJvcGVydHlEZXNjcmlwdG9yIHtcclxuICByZXR1cm4ge1xyXG4gICAgZW51bWVyYWJsZSxcclxuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcclxuICAgIGdldCh0aGlzOiBBbnlNb2RlbCB8IEFueURhdGFNb2RlbCkge1xyXG4gICAgICByZXR1cm4gZ2V0TW9kZWxJbnN0YW5jZURhdGFGaWVsZCh0aGlzLCBtb2RlbFByb3AsIG1vZGVsUHJvcE5hbWUpXHJcbiAgICB9LFxyXG4gICAgc2V0KHRoaXM6IEFueU1vZGVsIHwgQW55RGF0YU1vZGVsLCB2PzogYW55KSB7XHJcbiAgICAgIC8vIGhhY2sgdG8gb25seSBwZXJtaXQgc2V0dGluZyB0aGVzZSB2YWx1ZXMgb25jZSBmdWxseSBjb25zdHJ1Y3RlZFxyXG4gICAgICAvLyB0aGlzIGlzIHRvIGlnbm9yZSBhYnN0cmFjdCBwcm9wZXJ0aWVzIGJlaW5nIHNldCBieSBiYWJlbFxyXG4gICAgICAvLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3hhdmllcmdvbnovbW9ieC1rZXlzdG9uZS9pc3N1ZXMvMThcclxuICAgICAgaWYgKCEobW9kZWxJbml0aWFsaXplZFN5bWJvbCBpbiB0aGlzKSkge1xyXG4gICAgICAgIHJldHVyblxyXG4gICAgICB9XHJcbiAgICAgIHNldE1vZGVsSW5zdGFuY2VEYXRhRmllbGQodGhpcywgbW9kZWxQcm9wLCBtb2RlbFByb3BOYW1lLCB2KVxyXG4gICAgfSxcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldE1vZGVsSW5zdGFuY2VEYXRhRmllbGQ8TSBleHRlbmRzIEFueU1vZGVsIHwgQW55RGF0YU1vZGVsPihcclxuICBtb2RlbDogTSxcclxuICBtb2RlbFByb3A6IEFueU1vZGVsUHJvcCB8IHVuZGVmaW5lZCxcclxuICBtb2RlbFByb3BOYW1lOiBzdHJpbmdcclxuKTogYW55IHtcclxuICAvLyBubyBuZWVkIHRvIHVzZSBnZXQgc2luY2UgdGhlc2UgdmFycyBhbHdheXMgZ2V0IG9uIHRoZSBpbml0aWFsICRcclxuICBjb25zdCB2YWx1ZSA9IG1vZGVsLiRbbW9kZWxQcm9wTmFtZV1cclxuXHJcbiAgaWYgKG1vZGVsUHJvcD8uX2ludGVybmFsLnRyYW5zZm9ybSkge1xyXG4gICAgcmV0dXJuIG1vZGVsUHJvcC5faW50ZXJuYWwudHJhbnNmb3JtLnRyYW5zZm9ybSh2YWx1ZSwgbW9kZWwsIG1vZGVsUHJvcE5hbWUsIChuZXdWYWx1ZSkgPT4ge1xyXG4gICAgICAvLyB1c2UgYXBwbHkgc2V0IGluc3RlYWQgdG8gd3JhcCBpdCBpbiBhbiBhY3Rpb25cclxuICAgICAgLy8gc2V0IHRoZSAkIG9iamVjdCB0byBzZXQgdGhlIG9yaWdpbmFsIHZhbHVlIGRpcmVjdGx5XHJcbiAgICAgIGFwcGx5U2V0KG1vZGVsLiQsIG1vZGVsUHJvcE5hbWUsIG5ld1ZhbHVlKVxyXG4gICAgfSkgYXMgYW55XHJcbiAgfVxyXG5cclxuICByZXR1cm4gdmFsdWVcclxufVxyXG5cclxuZnVuY3Rpb24gc2V0TW9kZWxJbnN0YW5jZURhdGFGaWVsZDxNIGV4dGVuZHMgQW55TW9kZWwgfCBBbnlEYXRhTW9kZWw+KFxyXG4gIG1vZGVsOiBNLFxyXG4gIG1vZGVsUHJvcDogQW55TW9kZWxQcm9wIHwgdW5kZWZpbmVkLFxyXG4gIG1vZGVsUHJvcE5hbWU6IHN0cmluZyxcclxuICB2YWx1ZTogYW55XHJcbik6IHZvaWQge1xyXG4gIGlmIChtb2RlbFByb3A/Ll9pbnRlcm5hbC5zZXR0ZXIgPT09IFwiYXNzaWduXCIgJiYgIWdldEN1cnJlbnRBY3Rpb25Db250ZXh0KCkpIHtcclxuICAgIC8vIHVzZSBhcHBseSBzZXQgaW5zdGVhZCB0byB3cmFwIGl0IGluIGFuIGFjdGlvblxyXG4gICAgYXBwbHlTZXQobW9kZWwsIG1vZGVsUHJvcE5hbWUgYXMgYW55LCB2YWx1ZSlcclxuICAgIHJldHVyblxyXG4gIH1cclxuXHJcbiAgY29uc3QgdHJhbnNmb3JtZWRWYWx1ZSA9IG1vZGVsUHJvcD8uX2ludGVybmFsLnRyYW5zZm9ybVxyXG4gICAgPyBtb2RlbFByb3AuX2ludGVybmFsLnRyYW5zZm9ybS51bnRyYW5zZm9ybSh2YWx1ZSwgbW9kZWwsIG1vZGVsUHJvcE5hbWUpXHJcbiAgICA6IHZhbHVlXHJcbiAgLy8gbm8gbmVlZCB0byB1c2Ugc2V0IHNpbmNlIHRoZXNlIHZhcnMgYWx3YXlzIGdldCBvbiB0aGUgaW5pdGlhbCAkXHJcbiAgbW9kZWwuJFttb2RlbFByb3BOYW1lXSA9IHRyYW5zZm9ybWVkVmFsdWVcclxufVxyXG5cclxuY29uc3QgaWRHZW5lcmF0b3IgPSAoKSA9PiBnZXRHbG9iYWxDb25maWcoKS5tb2RlbElkR2VuZXJhdG9yKClcclxuY29uc3QgdFByb3BGb3JJZCA9IHRQcm9wKHR5cGVzU3RyaW5nLCBpZEdlbmVyYXRvcilcclxudFByb3BGb3JJZC5faW50ZXJuYWwuaXNJZCA9IHRydWVcclxuY29uc3QgcHJvcEZvcklkID0gcHJvcChpZEdlbmVyYXRvcilcclxucHJvcEZvcklkLl9pbnRlcm5hbC5pc0lkID0gdHJ1ZVxyXG5cclxudHlwZSBGcm9tU25hcHNob3RQcm9jZXNzb3JGbiA9IChzbjogYW55KSA9PiBhbnlcclxudHlwZSBUb1NuYXBzaG90UHJvY2Vzc29yRm4gPSAoc246IGFueSwgaW5zdGFuY2U6IGFueSkgPT4gYW55XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2hhcmVkSW50ZXJuYWxNb2RlbDxcclxuICBUUHJvcHMgZXh0ZW5kcyBNb2RlbFByb3BzLFxyXG4gIFRCYXNlTW9kZWwgZXh0ZW5kcyBBbnlNb2RlbCB8IEFueURhdGFNb2RlbFxyXG4+KHtcclxuICBtb2RlbFByb3BzLFxyXG4gIGJhc2VNb2RlbCxcclxuICB0eXBlLFxyXG4gIHZhbHVlVHlwZSxcclxuICBmcm9tU25hcHNob3RQcm9jZXNzb3IsXHJcbiAgdG9TbmFwc2hvdFByb2Nlc3NvcixcclxufToge1xyXG4gIG1vZGVsUHJvcHM6IFRQcm9wc1xyXG4gIGJhc2VNb2RlbDogTW9kZWxDbGFzczxUQmFzZU1vZGVsPiB8IHVuZGVmaW5lZFxyXG4gIHR5cGU6IFwiY2xhc3NcIiB8IFwiZGF0YVwiXHJcbiAgdmFsdWVUeXBlOiBib29sZWFuXHJcbiAgZnJvbVNuYXBzaG90UHJvY2Vzc29yOiBGcm9tU25hcHNob3RQcm9jZXNzb3JGbiB8IHVuZGVmaW5lZFxyXG4gIHRvU25hcHNob3RQcm9jZXNzb3I6IFRvU25hcHNob3RQcm9jZXNzb3JGbiB8IHVuZGVmaW5lZFxyXG59KTogYW55IHtcclxuICBhc3NlcnRJc09iamVjdChtb2RlbFByb3BzLCBcIm1vZGVsUHJvcHNcIilcclxuICBpZiAoYmFzZU1vZGVsKSB7XHJcbiAgICBhc3NlcnRJc0NsYXNzT3JEYXRhTW9kZWxDbGFzcyhiYXNlTW9kZWwsIFwiYmFzZU1vZGVsXCIpXHJcblxyXG4gICAgLy8gaWYgdGhlIGJhc2VNb2RlbCBpcyB3cmFwcGVkIHdpdGggdGhlIG1vZGVsIGRlY29yYXRvciBnZXQgdGhlIG9yaWdpbmFsIG9uZVxyXG4gICAgY29uc3QgdW53cmFwcGVkQ2xhc3MgPSAoYmFzZU1vZGVsIGFzIGFueSlbbW9kZWxVbndyYXBwZWRDbGFzc1N5bWJvbF1cclxuICAgIGlmICh1bndyYXBwZWRDbGFzcykge1xyXG4gICAgICBiYXNlTW9kZWwgPSB1bndyYXBwZWRDbGFzc1xyXG4gICAgICBhc3NlcnRJc0NsYXNzT3JEYXRhTW9kZWxDbGFzcyhiYXNlTW9kZWwsIFwiYmFzZU1vZGVsXCIpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdCBleHRyYURlc2NyaXB0b3JzOiBQcm9wZXJ0eURlc2NyaXB0b3JNYXAgPSB7fVxyXG5cclxuICBjb25zdCBjb21wb3NlZE1vZGVsUHJvcHM6IE1vZGVsUHJvcHMgPSBtb2RlbFByb3BzXHJcbiAgaWYgKGJhc2VNb2RlbCkge1xyXG4gICAgY29uc3Qgb2xkTW9kZWxQcm9wcyA9IGdldEludGVybmFsTW9kZWxDbGFzc1Byb3BzSW5mbyhiYXNlTW9kZWwpXHJcbiAgICBmb3IgKGNvbnN0IG9sZE1vZGVsUHJvcEtleSBvZiBPYmplY3Qua2V5cyhvbGRNb2RlbFByb3BzKSkge1xyXG4gICAgICBpZiAobW9kZWxQcm9wc1tvbGRNb2RlbFByb3BLZXldKSB7XHJcbiAgICAgICAgdGhyb3cgZmFpbHVyZShcclxuICAgICAgICAgIGBleHRlbmRlZCBtb2RlbCBjYW5ub3QgcmVkZWNsYXJlIGJhc2UgbW9kZWwgcHJvcGVydHkgbmFtZWQgJyR7b2xkTW9kZWxQcm9wS2V5fSdgXHJcbiAgICAgICAgKVxyXG4gICAgICB9XHJcbiAgICAgIGNvbXBvc2VkTW9kZWxQcm9wc1tvbGRNb2RlbFByb3BLZXldID0gb2xkTW9kZWxQcm9wc1tvbGRNb2RlbFByb3BLZXldXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBsb29rIGZvciBpZCBrZXlzXHJcbiAgY29uc3QgaWRLZXlzID0gT2JqZWN0LmtleXMoY29tcG9zZWRNb2RlbFByb3BzKS5maWx0ZXIoKGspID0+IHtcclxuICAgIGNvbnN0IHAgPSBjb21wb3NlZE1vZGVsUHJvcHNba11cclxuICAgIHJldHVybiBwLl9pbnRlcm5hbC5pc0lkXHJcbiAgfSlcclxuICBpZiAodHlwZSA9PT0gXCJjbGFzc1wiKSB7XHJcbiAgICBpZiAoaWRLZXlzLmxlbmd0aCA+IDEpIHtcclxuICAgICAgdGhyb3cgZmFpbHVyZShgZXhwZWN0ZWQgYXQgbW9zdCBvbmUgaWRQcm9wIGJ1dCBnb3QgbWFueTogJHtKU09OLnN0cmluZ2lmeShpZEtleXMpfWApXHJcbiAgICB9XHJcbiAgfSBlbHNlIHtcclxuICAgIGlmIChpZEtleXMubGVuZ3RoID49IDEpIHtcclxuICAgICAgdGhyb3cgZmFpbHVyZShgZXhwZWN0ZWQgbm8gaWRQcm9wIGJ1dCBnb3Qgc29tZTogJHtKU09OLnN0cmluZ2lmeShpZEtleXMpfWApXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdCBuZWVkc1R5cGVDaGVja2VyID0gT2JqZWN0LnZhbHVlcyhjb21wb3NlZE1vZGVsUHJvcHMpLnNvbWUoXHJcbiAgICAobXApID0+ICEhbXAuX2ludGVybmFsLnR5cGVDaGVja2VyXHJcbiAgKVxyXG5cclxuICAvLyB0cmFuc2Zvcm0gaWQga2V5cyAob25seSBvbmUgcmVhbGx5KVxyXG4gIGxldCBpZEtleTogc3RyaW5nIHwgdW5kZWZpbmVkXHJcbiAgaWYgKGlkS2V5cy5sZW5ndGggPj0gMSkge1xyXG4gICAgaWRLZXkgPSBpZEtleXNbMF1cclxuICAgIGNvbnN0IGlkUHJvcCA9IGNvbXBvc2VkTW9kZWxQcm9wc1tpZEtleV1cclxuICAgIGxldCBiYXNlUHJvcDogQW55TW9kZWxQcm9wID0gbmVlZHNUeXBlQ2hlY2tlciA/IHRQcm9wRm9ySWQgOiBwcm9wRm9ySWRcclxuICAgIHN3aXRjaCAoaWRQcm9wPy5faW50ZXJuYWwuc2V0dGVyKSB7XHJcbiAgICAgIGNhc2UgdHJ1ZTpcclxuICAgICAgICBiYXNlUHJvcCA9IGJhc2VQcm9wLndpdGhTZXR0ZXIoKVxyXG4gICAgICAgIGJyZWFrXHJcbiAgICAgIGNhc2UgXCJhc3NpZ25cIjpcclxuICAgICAgICBiYXNlUHJvcCA9IGJhc2VQcm9wLndpdGhTZXR0ZXIoXCJhc3NpZ25cIilcclxuICAgICAgICBicmVha1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGJyZWFrXHJcbiAgICB9XHJcbiAgICBjb21wb3NlZE1vZGVsUHJvcHNbaWRLZXldID0gYmFzZVByb3BcclxuICB9XHJcblxyXG4gIC8vIGNyZWF0ZSB0eXBlIGNoZWNrZXIgaWYgbmVlZGVkXHJcbiAgbGV0IGRhdGFUeXBlQ2hlY2tlcjogTGF0ZVR5cGVDaGVja2VyIHwgdW5kZWZpbmVkXHJcbiAgaWYgKG5lZWRzVHlwZUNoZWNrZXIpIHtcclxuICAgIGNvbnN0IHR5cGVDaGVja2VyT2JqOiB7XHJcbiAgICAgIFtrOiBzdHJpbmddOiBhbnlcclxuICAgIH0gPSB7fVxyXG4gICAgZm9yIChjb25zdCBbaywgbXBdIG9mIE9iamVjdC5lbnRyaWVzKGNvbXBvc2VkTW9kZWxQcm9wcykpIHtcclxuICAgICAgdHlwZUNoZWNrZXJPYmpba10gPSAhbXAuX2ludGVybmFsLnR5cGVDaGVja2VyID8gdHlwZXNVbmNoZWNrZWQoKSA6IG1wLl9pbnRlcm5hbC50eXBlQ2hlY2tlclxyXG4gICAgfVxyXG4gICAgZGF0YVR5cGVDaGVja2VyID0gdHlwZXNPYmplY3QoKCkgPT4gdHlwZUNoZWNrZXJPYmopIGFzIGFueVxyXG4gIH1cclxuXHJcbiAgY29uc3QgYmFzZVByb3BOYW1lcyA9IHR5cGUgPT09IFwiY2xhc3NcIiA/IGJhc2VNb2RlbFByb3BOYW1lcyA6IGJhc2VEYXRhTW9kZWxQcm9wTmFtZXNcclxuXHJcbiAgLy8gc2tpcCBwcm9wcyB0aGF0IGFyZSBvbiBiYXNlIG1vZGVsLCB0aGVzZSBoYXZlIHRvIGJlIGFjY2Vzc2VkIHRocm91Z2ggJFxyXG4gIC8vIHdlIG9ubHkgbmVlZCB0byBwcm94eSBuZXcgcHJvcHMsIG5vdCBvbGQgb25lc1xyXG4gIGZvciAoY29uc3QgbW9kZWxQcm9wTmFtZSBvZiBPYmplY3Qua2V5cyhtb2RlbFByb3BzKS5maWx0ZXIoXHJcbiAgICAobXApID0+ICFiYXNlUHJvcE5hbWVzLmhhcyhtcCBhcyBhbnkpXHJcbiAgKSkge1xyXG4gICAgZXh0cmFEZXNjcmlwdG9yc1ttb2RlbFByb3BOYW1lXSA9IGNyZWF0ZU1vZGVsUHJvcERlc2NyaXB0b3IoXHJcbiAgICAgIG1vZGVsUHJvcE5hbWUsXHJcbiAgICAgIG1vZGVsUHJvcHNbbW9kZWxQcm9wTmFtZV0sXHJcbiAgICAgIGZhbHNlXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBjb25zdCBleHRyYVByb3BOYW1lcyA9IE9iamVjdC5rZXlzKGV4dHJhRGVzY3JpcHRvcnMpXHJcbiAgY29uc3QgZXh0cmFQcm9wTmFtZXNMZW4gPSBleHRyYVByb3BOYW1lcy5sZW5ndGhcclxuXHJcbiAgY29uc3QgYmFzZTogYW55ID0gYmFzZU1vZGVsID8/ICh0eXBlID09PSBcImNsYXNzXCIgPyBCYXNlTW9kZWwgOiBCYXNlRGF0YU1vZGVsKVxyXG5cclxuICAvLyB3ZSB1c2UgdGhpcyB3ZWlyZCBoYWNrIHJhdGhlciB0aGFuIGp1c3QgY2xhc3MgQ3VzdG9tQmFzZU1vZGVsIGV4dGVuZHMgYmFzZSB7fVxyXG4gIC8vIGluIG9yZGVyIHRvIHdvcmsgYXJvdW5kIHByb2JsZW1zIHdpdGggRVM1IGNsYXNzZXMgZXh0ZW5kaW5nIEVTNiBjbGFzc2VzXHJcbiAgLy8gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS94YXZpZXJnb256L21vYngta2V5c3RvbmUvaXNzdWVzLzE1XHJcbiAgY29uc3QgQ3VzdG9tQmFzZU1vZGVsOiBhbnkgPSAoZnVuY3Rpb24gKF9iYXNlKSB7XHJcbiAgICBfX2V4dGVuZHMoQ3VzdG9tQmFzZU1vZGVsLCBfYmFzZSlcclxuXHJcbiAgICBmdW5jdGlvbiBDdXN0b21CYXNlTW9kZWwoXHJcbiAgICAgIHRoaXM6IGFueSxcclxuICAgICAgaW5pdGlhbERhdGE6IGFueSxcclxuICAgICAgY29uc3RydWN0b3JPcHRpb25zPzogTW9kZWxDb25zdHJ1Y3Rvck9wdGlvbnMgfCBEYXRhTW9kZWxDb25zdHJ1Y3Rvck9wdGlvbnNcclxuICAgICkge1xyXG4gICAgICBjb25zdCBtb2RlbENsYXNzID0gY29uc3RydWN0b3JPcHRpb25zPy5tb2RlbENsYXNzID8/IHRoaXMuY29uc3RydWN0b3JcclxuICAgICAgY29uc3QgYmFzZU1vZGVsID0gbmV3IF9iYXNlKGluaXRpYWxEYXRhLCB7XHJcbiAgICAgICAgLi4uY29uc3RydWN0b3JPcHRpb25zLFxyXG4gICAgICAgIG1vZGVsQ2xhc3MsXHJcbiAgICAgIH0gYXMgTW9kZWxDb25zdHJ1Y3Rvck9wdGlvbnMgJiBEYXRhTW9kZWxDb25zdHJ1Y3Rvck9wdGlvbnMpXHJcblxyXG4gICAgICAvLyBtYWtlIHN1cmUgYWJzdHJhY3QgY2xhc3NlcyBkbyBub3Qgb3ZlcnJpZGUgcHJvdG90eXBlIHByb3BzXHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZXh0cmFQcm9wTmFtZXNMZW47IGkrKykge1xyXG4gICAgICAgIGNvbnN0IGV4dHJhUHJvcE5hbWUgPSBleHRyYVByb3BOYW1lc1tpXVxyXG4gICAgICAgIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGJhc2VNb2RlbCwgZXh0cmFQcm9wTmFtZSkpIHtcclxuICAgICAgICAgIGRlbGV0ZSBiYXNlTW9kZWxbZXh0cmFQcm9wTmFtZV1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBiYXNlTW9kZWxcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gQ3VzdG9tQmFzZU1vZGVsXHJcbiAgfSkoYmFzZSlcclxuXHJcbiAgY29uc3QgaW5pdGlhbGl6ZXJzID0gYmFzZVttb2RlbEluaXRpYWxpemVyc1N5bWJvbF1cclxuICBpZiAoaW5pdGlhbGl6ZXJzKSB7XHJcbiAgICBDdXN0b21CYXNlTW9kZWxbbW9kZWxJbml0aWFsaXplcnNTeW1ib2xdID0gaW5pdGlhbGl6ZXJzLnNsaWNlKClcclxuICB9XHJcblxyXG4gIHNldEludGVybmFsTW9kZWxDbGFzc1Byb3BzSW5mbyhDdXN0b21CYXNlTW9kZWwsIGNvbXBvc2VkTW9kZWxQcm9wcylcclxuXHJcbiAgaWYgKHR5cGUgPT09IFwiY2xhc3NcIikge1xyXG4gICAgY29uc3QgbWV0YWRhdGE6IE1vZGVsTWV0YWRhdGEgPSB7XHJcbiAgICAgIGRhdGFUeXBlOiBkYXRhVHlwZUNoZWNrZXIgYXMgdW5rbm93biBhcyBBbnlUeXBlIHwgdW5kZWZpbmVkLFxyXG4gICAgICBtb2RlbElkUHJvcGVydHk6IGlkS2V5LFxyXG4gICAgICB2YWx1ZVR5cGUsXHJcbiAgICB9XHJcbiAgICBDdXN0b21CYXNlTW9kZWxbbW9kZWxNZXRhZGF0YVN5bWJvbF0gPSBtZXRhZGF0YVxyXG4gIH0gZWxzZSB7XHJcbiAgICBjb25zdCBtZXRhZGF0YTogRGF0YU1vZGVsTWV0YWRhdGEgPSB7XHJcbiAgICAgIGRhdGFUeXBlOiBkYXRhVHlwZUNoZWNrZXIgYXMgdW5rbm93biBhcyBBbnlUeXBlIHwgdW5kZWZpbmVkLFxyXG4gICAgfVxyXG4gICAgQ3VzdG9tQmFzZU1vZGVsW21vZGVsTWV0YWRhdGFTeW1ib2xdID0gbWV0YWRhdGFcclxuICB9XHJcblxyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEN1c3RvbUJhc2VNb2RlbC5wcm90b3R5cGUsIGV4dHJhRGVzY3JpcHRvcnMpXHJcblxyXG4gIC8vIGFkZCBzZXR0ZXIgYWN0aW9ucyB0byBwcm90b3R5cGVcclxuICBmb3IgKGNvbnN0IFtwcm9wTmFtZSwgcHJvcERhdGFdIG9mIE9iamVjdC5lbnRyaWVzKG1vZGVsUHJvcHMpKSB7XHJcbiAgICBpZiAocHJvcERhdGEuX2ludGVybmFsLnNldHRlciA9PT0gdHJ1ZSkge1xyXG4gICAgICBjb25zdCBzZXR0ZXJOYW1lID0gcHJvcE5hbWVUb1NldHRlck5hbWUocHJvcE5hbWUpXHJcblxyXG4gICAgICBDdXN0b21CYXNlTW9kZWwucHJvdG90eXBlW3NldHRlck5hbWVdID0gZnVuY3Rpb24gKHRoaXM6IGFueSwgdmFsdWU6IGFueSkge1xyXG4gICAgICAgIHRoaXNbcHJvcE5hbWVdID0gdmFsdWVcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgbmV3UHJvcERlc2NyaXB0b3I6IGFueSA9IG1vZGVsQWN0aW9uKFxyXG4gICAgICAgIEN1c3RvbUJhc2VNb2RlbC5wcm90b3R5cGUsXHJcbiAgICAgICAgc2V0dGVyTmFtZSxcclxuICAgICAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEN1c3RvbUJhc2VNb2RlbC5wcm90b3R5cGUsIHNldHRlck5hbWUpXHJcbiAgICAgIClcclxuXHJcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShDdXN0b21CYXNlTW9kZWwucHJvdG90eXBlLCBzZXR0ZXJOYW1lLCBuZXdQcm9wRGVzY3JpcHRvcilcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0IG1vZGVsUHJvcHNGcm9tU25hcHNob3RQcm9jZXNzb3IgPSBnZXRNb2RlbFByb3BzRnJvbVNuYXBzaG90UHJvY2Vzc29yKGNvbXBvc2VkTW9kZWxQcm9wcylcclxuXHJcbiAgY29uc3QgbW9kZWxQcm9wc1RvU25hcHNob3RQcm9jZXNzb3IgPSBnZXRNb2RlbFByb3BzVG9TbmFwc2hvdFByb2Nlc3Nvcihjb21wb3NlZE1vZGVsUHJvcHMpXHJcblxyXG4gIGlmIChmcm9tU25hcHNob3RQcm9jZXNzb3IpIHtcclxuICAgIGNvbnN0IGZuID0gZnJvbVNuYXBzaG90UHJvY2Vzc29yXHJcbiAgICBmcm9tU25hcHNob3RQcm9jZXNzb3IgPSAoc24pID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICAuLi5mbihzbiksXHJcbiAgICAgICAgW21vZGVsVHlwZUtleV06IHNuW21vZGVsVHlwZUtleV0sXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlmICh0b1NuYXBzaG90UHJvY2Vzc29yKSB7XHJcbiAgICBjb25zdCBmbiA9IHRvU25hcHNob3RQcm9jZXNzb3JcclxuICAgIHRvU25hcHNob3RQcm9jZXNzb3IgPSAoc24sIG1vZGVsSW5zdGFuY2UpID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICAuLi5mbihzbiwgbW9kZWxJbnN0YW5jZSksXHJcbiAgICAgICAgW21vZGVsVHlwZUtleV06IHNuW21vZGVsVHlwZUtleV0sXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEN1c3RvbUJhc2VNb2RlbC5mcm9tU25hcHNob3RQcm9jZXNzb3IgPSBjaGFpbkZucyhcclxuICAgIGZyb21TbmFwc2hvdFByb2Nlc3NvcixcclxuICAgIG1vZGVsUHJvcHNGcm9tU25hcHNob3RQcm9jZXNzb3JcclxuICApXHJcbiAgQ3VzdG9tQmFzZU1vZGVsLnRvU25hcHNob3RQcm9jZXNzb3IgPSBjaGFpbkZucyhtb2RlbFByb3BzVG9TbmFwc2hvdFByb2Nlc3NvciwgdG9TbmFwc2hvdFByb2Nlc3NvcilcclxuXHJcbiAgcmV0dXJuIEN1c3RvbUJhc2VNb2RlbFxyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRNb2RlbFByb3BzRnJvbVNuYXBzaG90UHJvY2Vzc29yKFxyXG4gIGNvbXBvc2VkTW9kZWxQcm9wczogTW9kZWxQcm9wc1xyXG4pOiBGcm9tU25hcHNob3RQcm9jZXNzb3JGbiB8IHVuZGVmaW5lZCB7XHJcbiAgY29uc3QgcHJvcHNXaXRoRnJvbVNuYXBzaG90UHJvY2Vzc29yID0gT2JqZWN0LmVudHJpZXMoY29tcG9zZWRNb2RlbFByb3BzKS5maWx0ZXIoXHJcbiAgICAoW19wcm9wTmFtZSwgcHJvcERhdGFdKSA9PiBwcm9wRGF0YS5faW50ZXJuYWwuZnJvbVNuYXBzaG90UHJvY2Vzc29yXHJcbiAgKVxyXG4gIGlmIChwcm9wc1dpdGhGcm9tU25hcHNob3RQcm9jZXNzb3IubGVuZ3RoIDw9IDApIHtcclxuICAgIHJldHVybiB1bmRlZmluZWRcclxuICB9XHJcblxyXG4gIHJldHVybiAoc24pID0+IHtcclxuICAgIGNvbnN0IG5ld1NuID0geyAuLi5zbiB9XHJcbiAgICBmb3IgKGNvbnN0IFtwcm9wTmFtZSwgcHJvcERhdGFdIG9mIHByb3BzV2l0aEZyb21TbmFwc2hvdFByb2Nlc3Nvcikge1xyXG4gICAgICBpZiAocHJvcERhdGEuX2ludGVybmFsLmZyb21TbmFwc2hvdFByb2Nlc3Nvcikge1xyXG4gICAgICAgIG5ld1NuW3Byb3BOYW1lXSA9IHByb3BEYXRhLl9pbnRlcm5hbC5mcm9tU25hcHNob3RQcm9jZXNzb3Ioc25bcHJvcE5hbWVdKVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3U25cclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldE1vZGVsUHJvcHNUb1NuYXBzaG90UHJvY2Vzc29yKFxyXG4gIGNvbXBvc2VkTW9kZWxQcm9wczogTW9kZWxQcm9wc1xyXG4pOiBUb1NuYXBzaG90UHJvY2Vzc29yRm4gfCB1bmRlZmluZWQge1xyXG4gIGNvbnN0IHByb3BzV2l0aFRvU25hcHNob3RQcm9jZXNzb3IgPSBPYmplY3QuZW50cmllcyhjb21wb3NlZE1vZGVsUHJvcHMpLmZpbHRlcihcclxuICAgIChbX3Byb3BOYW1lLCBwcm9wRGF0YV0pID0+IHByb3BEYXRhLl9pbnRlcm5hbC50b1NuYXBzaG90UHJvY2Vzc29yXHJcbiAgKVxyXG5cclxuICBpZiAocHJvcHNXaXRoVG9TbmFwc2hvdFByb2Nlc3Nvci5sZW5ndGggPD0gMCkge1xyXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIChzbikgPT4ge1xyXG4gICAgY29uc3QgbmV3U24gPSB7IC4uLnNuIH1cclxuICAgIGZvciAoY29uc3QgW3Byb3BOYW1lLCBwcm9wRGF0YV0gb2YgcHJvcHNXaXRoVG9TbmFwc2hvdFByb2Nlc3Nvcikge1xyXG4gICAgICBpZiAocHJvcERhdGEuX2ludGVybmFsLnRvU25hcHNob3RQcm9jZXNzb3IpIHtcclxuICAgICAgICBuZXdTbltwcm9wTmFtZV0gPSBwcm9wRGF0YS5faW50ZXJuYWwudG9TbmFwc2hvdFByb2Nlc3Nvcihzbltwcm9wTmFtZV0pXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBuZXdTblxy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
@@ -0,0 +1,21 @@
1
+ import { BaseDataModel } from "../dataModel/BaseDataModel.mjs";
2
+ import { BaseModel } from "../model/BaseModel.mjs";
3
+ import { failure } from "../utils/index.mjs";
4
+ function checkModelDecoratorArgs(fnName, target, propertyKey) {
5
+ if (typeof propertyKey !== "string") {
6
+ throw failure(`${fnName} cannot be used over symbol properties`);
7
+ }
8
+ const errMessage = `${fnName} must be used over model classes or instances`;
9
+ if (!target) {
10
+ throw failure(errMessage);
11
+ }
12
+ const isModel = target instanceof BaseModel || target === BaseModel || target.prototype instanceof BaseModel;
13
+ if (isModel)
14
+ return;
15
+ const isDataModel = target instanceof BaseDataModel || target === BaseDataModel || target.prototype instanceof BaseDataModel;
16
+ if (isDataModel)
17
+ return;
18
+ throw failure(errMessage);
19
+ }
20
+ export { checkModelDecoratorArgs };
21
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tNb2RlbERlY29yYXRvckFyZ3MubWpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWxTaGFyZWQvY2hlY2tNb2RlbERlY29yYXRvckFyZ3MudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZURhdGFNb2RlbCB9IGZyb20gXCIuLi9kYXRhTW9kZWwvQmFzZURhdGFNb2RlbFwiXG5pbXBvcnQgeyBCYXNlTW9kZWwgfSBmcm9tIFwiLi4vbW9kZWwvQmFzZU1vZGVsXCJcbmltcG9ydCB7IGZhaWx1cmUgfSBmcm9tIFwiLi4vdXRpbHNcIlxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tNb2RlbERlY29yYXRvckFyZ3MoZm5OYW1lOiBzdHJpbmcsIHRhcmdldDogYW55LCBwcm9wZXJ0eUtleTogc3RyaW5nKSB7XG4gIGlmICh0eXBlb2YgcHJvcGVydHlLZXkgIT09IFwic3RyaW5nXCIpIHtcbiAgICB0aHJvdyBmYWlsdXJlKGAke2ZuTmFtZX0gY2Fubm90IGJlIHVzZWQgb3ZlciBzeW1ib2wgcHJvcGVydGllc2ApXG4gIH1cblxuICBjb25zdCBlcnJNZXNzYWdlID0gYCR7Zm5OYW1lfSBtdXN0IGJlIHVzZWQgb3ZlciBtb2RlbCBjbGFzc2VzIG9yIGluc3RhbmNlc2BcblxuICBpZiAoIXRhcmdldCkge1xuICAgIHRocm93IGZhaWx1cmUoZXJyTWVzc2FnZSlcbiAgfVxuXG4gIC8vIGNoZWNrIHRhcmdldCBpcyBhIG1vZGVsIG9iamVjdCBvciBleHRlbmRlZCBjbGFzc1xuICBjb25zdCBpc01vZGVsID1cbiAgICB0YXJnZXQgaW5zdGFuY2VvZiBCYXNlTW9kZWwgfHwgdGFyZ2V0ID09PSBCYXNlTW9kZWwgfHwgdGFyZ2V0LnByb3RvdHlwZSBpbnN0YW5jZW9mIEJhc2VNb2RlbFxuICBpZiAoaXNNb2RlbCkgcmV0dXJuXG5cbiAgY29uc3QgaXNEYXRhTW9kZWwgPVxuICAgIHRhcmdldCBpbnN0YW5jZW9mIEJhc2VEYXRhTW9kZWwgfHxcbiAgICB0YXJnZXQgPT09IEJhc2VEYXRhTW9kZWwgfHxcbiAgICB0YXJnZXQucHJvdG90eXBlIGluc3RhbmNlb2YgQmFzZURhdGFNb2RlbFxuICBpZiAoaXNEYXRhTW9kZWwpIHJldHVyblxuXG4gIHRocm93IGZhaWx1cmUoZXJyTWVzc2FnZSlcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7aUNBT3dDLFFBQWdCLFFBQWE7TUFDL0QsT0FBTyxnQkFBZ0IsVUFBVTtVQUM3QixRQUFRLEdBQUcsOENBQThDO0FBQUE7UUFHM0QsYUFBYSxHQUFHO01BRWxCLENBQUMsUUFBUTtVQUNMLFFBQVEsVUFBVTtBQUFBO1FBSXBCLFVBQ0osa0JBQWtCLGFBQWEsV0FBVyxhQUFhLE9BQU8scUJBQXFCO01BQ2pGOztRQUVFLGNBQ0osa0JBQWtCLGlCQUNsQixXQUFXLGlCQUNYLE9BQU8scUJBQXFCO01BQzFCOztRQUVFLFFBQVEsVUFBVTtBQUMxQjs7In0=
@@ -0,0 +1,14 @@
1
+ const modelInitializersSymbol = Symbol("modelInitializers");
2
+ function addModelClassInitializer(modelClass, init) {
3
+ let initializers = modelClass[modelInitializersSymbol];
4
+ if (!initializers) {
5
+ initializers = [];
6
+ modelClass[modelInitializersSymbol] = initializers;
7
+ }
8
+ initializers.push(init);
9
+ }
10
+ function getModelClassInitializers(modelClass) {
11
+ return modelClass[modelInitializersSymbol];
12
+ }
13
+ export { addModelClassInitializer, getModelClassInitializers, modelInitializersSymbol };
14
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxDbGFzc0luaXRpYWxpemVyLm1qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZGVsU2hhcmVkL21vZGVsQ2xhc3NJbml0aWFsaXplci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFueURhdGFNb2RlbCB9IGZyb20gXCIuLi9kYXRhTW9kZWwvQmFzZURhdGFNb2RlbFwiXG5pbXBvcnQgdHlwZSB7IEFueU1vZGVsIH0gZnJvbSBcIi4uL21vZGVsL0Jhc2VNb2RlbFwiXG5pbXBvcnQgdHlwZSB7IE1vZGVsQ2xhc3MgfSBmcm9tIFwiLi9CYXNlTW9kZWxTaGFyZWRcIlxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgbW9kZWxJbml0aWFsaXplcnNTeW1ib2wgPSBTeW1ib2woXCJtb2RlbEluaXRpYWxpemVyc1wiKVxuXG50eXBlIE1vZGVsQ2xhc3NJbml0aWFsaXplciA9IChtb2RlbEluc3RhbmNlOiBBbnlNb2RlbCB8IEFueURhdGFNb2RlbCkgPT4gdm9pZFxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkTW9kZWxDbGFzc0luaXRpYWxpemVyKFxuICBtb2RlbENsYXNzOiBNb2RlbENsYXNzPEFueU1vZGVsIHwgQW55RGF0YU1vZGVsPixcbiAgaW5pdDogTW9kZWxDbGFzc0luaXRpYWxpemVyXG4pIHtcbiAgbGV0IGluaXRpYWxpemVycyA9IChtb2RlbENsYXNzIGFzIGFueSlbbW9kZWxJbml0aWFsaXplcnNTeW1ib2xdXG4gIGlmICghaW5pdGlhbGl6ZXJzKSB7XG4gICAgaW5pdGlhbGl6ZXJzID0gW11cbiAgICA7KG1vZGVsQ2xhc3MgYXMgYW55KVttb2RlbEluaXRpYWxpemVyc1N5bWJvbF0gPSBpbml0aWFsaXplcnNcbiAgfVxuICBpbml0aWFsaXplcnMucHVzaChpbml0KVxufVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TW9kZWxDbGFzc0luaXRpYWxpemVycyhcbiAgbW9kZWxDbGFzczogTW9kZWxDbGFzczxBbnlNb2RlbCB8IEFueURhdGFNb2RlbD5cbik6IE1vZGVsQ2xhc3NJbml0aWFsaXplcltdIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIChtb2RlbENsYXNzIGFzIGFueSlbbW9kZWxJbml0aWFsaXplcnNTeW1ib2xdXG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ik1BT2EsMEJBQTBCLE9BQU8sbUJBQW1CO2tDQVEvRCxZQUNBO01BRUksZUFBZ0IsV0FBbUI7TUFDbkMsQ0FBQyxjQUFjO21CQUNGO2VBQ00sMkJBQTJCO0FBQUE7ZUFFckMsS0FBSyxJQUFJO0FBQ3hCO21DQU1FO1NBRVEsV0FBbUI7QUFDN0I7OyJ9
@@ -0,0 +1,117 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ import { HookAction } from "../action/hookActions.mjs";
21
+ import { wrapModelMethodInActionIfNeeded } from "../action/wrapInAction.mjs";
22
+ import { isDataModelClass } from "../dataModel/utils.mjs";
23
+ import { getGlobalConfig } from "../globalConfig/globalConfig.mjs";
24
+ import { modelTypeKey } from "../model/metadata.mjs";
25
+ import { isModelClass } from "../model/utils.mjs";
26
+ import { modelInitializedSymbol } from "./BaseModelShared.mjs";
27
+ import { modelInfoByName, modelInfoByClass } from "./modelInfo.mjs";
28
+ import { modelUnwrappedClassSymbol, runAfterModelDecoratorSymbol } from "./modelSymbols.mjs";
29
+ import { failure, logWarning, runLateInitializationFunctions, runAfterNewSymbol, getMobxVersion, mobx6, addHiddenProp, runBeforeOnInitSymbol } from "../utils/index.mjs";
30
+ const model = (name) => (clazz) => {
31
+ return internalModel(name)(clazz);
32
+ };
33
+ const internalModel = (name) => (clazz) => {
34
+ const type = isModelClass(clazz) ? "class" : isDataModelClass(clazz) ? "data" : void 0;
35
+ if (!type) {
36
+ throw failure(`clazz must be a class that extends from Model/DataModel`);
37
+ }
38
+ if (modelInfoByName[name]) {
39
+ if (getGlobalConfig().showDuplicateModelNameWarnings) {
40
+ logWarning("warn", `a model with name "${name}" already exists (if you are using hot-reloading you may safely ignore this warning)`, `duplicateModelName - ${name}`);
41
+ }
42
+ }
43
+ if (modelUnwrappedClassSymbol in clazz) {
44
+ throw failure("a class already decorated with `@model` cannot be re-decorated");
45
+ }
46
+ let makeObservableFailed = false;
47
+ const newClazz = function(initialData, modelConstructorOptions) {
48
+ const instance = new clazz(initialData, modelConstructorOptions);
49
+ Object.defineProperty(instance, "constructor", {
50
+ configurable: true,
51
+ writable: true,
52
+ enumerable: false,
53
+ value: newClazz
54
+ });
55
+ runLateInitializationFunctions(instance, runAfterNewSymbol);
56
+ if (!makeObservableFailed && getMobxVersion() >= 6) {
57
+ try {
58
+ mobx6.makeObservable(instance);
59
+ } catch (e) {
60
+ makeObservableFailed = true;
61
+ const err = e;
62
+ if (err.message !== "[MobX] No annotations were passed to makeObservable, but no decorator members have been found either" && err.message !== "[MobX] No annotations were passed to makeObservable, but no decorated members have been found either") {
63
+ throw err;
64
+ }
65
+ }
66
+ }
67
+ addHiddenProp(instance, modelInitializedSymbol, true, false);
68
+ runLateInitializationFunctions(instance, runBeforeOnInitSymbol);
69
+ if (type === "class" && instance.onInit) {
70
+ wrapModelMethodInActionIfNeeded(instance, "onInit", HookAction.OnInit);
71
+ instance.onInit();
72
+ }
73
+ if (type === "data" && instance.onLazyInit) {
74
+ wrapModelMethodInActionIfNeeded(instance, "onLazyInit", HookAction.OnLazyInit);
75
+ instance.onLazyInit();
76
+ }
77
+ return instance;
78
+ };
79
+ clazz.toString = () => `class ${clazz.name}#${name}`;
80
+ if (type === "class") {
81
+ clazz[modelTypeKey] = name;
82
+ }
83
+ Object.setPrototypeOf(newClazz, clazz);
84
+ newClazz.prototype = clazz.prototype;
85
+ Object.defineProperty(newClazz, "name", __spreadProps(__spreadValues({}, Object.getOwnPropertyDescriptor(newClazz, "name")), {
86
+ value: clazz.name
87
+ }));
88
+ newClazz[modelUnwrappedClassSymbol] = clazz;
89
+ const modelInfo = {
90
+ name,
91
+ class: newClazz
92
+ };
93
+ modelInfoByName[name] = modelInfo;
94
+ modelInfoByClass.set(newClazz, modelInfo);
95
+ modelInfoByClass.set(clazz, modelInfo);
96
+ runLateInitializationFunctions(clazz, runAfterModelDecoratorSymbol);
97
+ return newClazz;
98
+ };
99
+ function tsDecorate(decorators, target, key, desc) {
100
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
101
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
102
+ r = Reflect.decorate(decorators, target, key, desc);
103
+ else
104
+ for (var i = decorators.length - 1; i >= 0; i--)
105
+ if (d = decorators[i])
106
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
107
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
108
+ }
109
+ function decoratedModel(name, clazz, decorators) {
110
+ for (const [k, decorator] of Object.entries(decorators)) {
111
+ const prototypeValueDesc = Object.getOwnPropertyDescriptor(clazz.prototype, k);
112
+ tsDecorate(Array.isArray(decorator) ? decorator : [decorator], clazz.prototype, k, prototypeValueDesc ? prototypeValueDesc : void 0);
113
+ }
114
+ return name ? model(name)(clazz) : clazz;
115
+ }
116
+ export { decoratedModel, model };
117
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxEZWNvcmF0b3IubWpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWxTaGFyZWQvbW9kZWxEZWNvcmF0b3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSG9va0FjdGlvbiB9IGZyb20gXCIuLi9hY3Rpb24vaG9va0FjdGlvbnNcIlxuaW1wb3J0IHsgd3JhcE1vZGVsTWV0aG9kSW5BY3Rpb25JZk5lZWRlZCB9IGZyb20gXCIuLi9hY3Rpb24vd3JhcEluQWN0aW9uXCJcbmltcG9ydCB0eXBlIHsgQW55RGF0YU1vZGVsIH0gZnJvbSBcIi4uL2RhdGFNb2RlbC9CYXNlRGF0YU1vZGVsXCJcbmltcG9ydCB7IGlzRGF0YU1vZGVsQ2xhc3MgfSBmcm9tIFwiLi4vZGF0YU1vZGVsL3V0aWxzXCJcbmltcG9ydCB7IGdldEdsb2JhbENvbmZpZyB9IGZyb20gXCIuLi9nbG9iYWxDb25maWdcIlxuaW1wb3J0IHR5cGUgeyBBbnlNb2RlbCB9IGZyb20gXCIuLi9tb2RlbC9CYXNlTW9kZWxcIlxuaW1wb3J0IHsgbW9kZWxUeXBlS2V5IH0gZnJvbSBcIi4uL21vZGVsL21ldGFkYXRhXCJcbmltcG9ydCB7IGlzTW9kZWxDbGFzcyB9IGZyb20gXCIuLi9tb2RlbC91dGlsc1wiXG5pbXBvcnQgeyBNb2RlbENsYXNzLCBtb2RlbEluaXRpYWxpemVkU3ltYm9sIH0gZnJvbSBcIi4uL21vZGVsU2hhcmVkL0Jhc2VNb2RlbFNoYXJlZFwiXG5pbXBvcnQgeyBtb2RlbEluZm9CeUNsYXNzLCBtb2RlbEluZm9CeU5hbWUgfSBmcm9tIFwiLi4vbW9kZWxTaGFyZWQvbW9kZWxJbmZvXCJcbmltcG9ydCB7XG4gIG1vZGVsVW53cmFwcGVkQ2xhc3NTeW1ib2wsXG4gIHJ1bkFmdGVyTW9kZWxEZWNvcmF0b3JTeW1ib2wsXG59IGZyb20gXCIuLi9tb2RlbFNoYXJlZC9tb2RlbFN5bWJvbHNcIlxuaW1wb3J0IHtcbiAgYWRkSGlkZGVuUHJvcCxcbiAgZmFpbHVyZSxcbiAgZ2V0TW9ieFZlcnNpb24sXG4gIGxvZ1dhcm5pbmcsXG4gIG1vYng2LFxuICBydW5BZnRlck5ld1N5bWJvbCxcbiAgcnVuQmVmb3JlT25Jbml0U3ltYm9sLFxuICBydW5MYXRlSW5pdGlhbGl6YXRpb25GdW5jdGlvbnMsXG59IGZyb20gXCIuLi91dGlsc1wiXG5cbi8qKlxuICogRGVjb3JhdG9yIHRoYXQgbWFya3MgdGhpcyBjbGFzcyAod2hpY2ggTVVTVCBpbmhlcml0IGZyb20gdGhlIGBNb2RlbGAgb3IgYERhdGFNb2RlbGAgYWJzdHJhY3QgY2xhc3NlcylcbiAqIGFzIGEgbW9kZWwuXG4gKlxuICogQHBhcmFtIG5hbWUgVW5pcXVlIG5hbWUgZm9yIHRoZSBtb2RlbCB0eXBlLiBOb3RlIHRoYXQgdGhpcyBuYW1lIG11c3QgYmUgdW5pcXVlIGZvciB5b3VyIHdob2xlXG4gKiBhcHBsaWNhdGlvbiwgc28gaXQgaXMgdXN1YWxseSBhIGdvb2QgaWRlYSB0byB1c2Ugc29tZSBwcmVmaXggdW5pcXVlIHRvIHlvdXIgYXBwbGljYXRpb24gZG9tYWluLlxuICovXG5leHBvcnQgY29uc3QgbW9kZWwgPVxuICAobmFtZTogc3RyaW5nKSA9PlxuICA8TUMgZXh0ZW5kcyBNb2RlbENsYXNzPEFueU1vZGVsIHwgQW55RGF0YU1vZGVsPj4oY2xheno6IE1DKTogTUMgPT4ge1xuICAgIHJldHVybiBpbnRlcm5hbE1vZGVsKG5hbWUpKGNsYXp6KVxuICB9XG5cbmNvbnN0IGludGVybmFsTW9kZWwgPVxuICAobmFtZTogc3RyaW5nKSA9PlxuICA8TUMgZXh0ZW5kcyBNb2RlbENsYXNzPEFueU1vZGVsIHwgQW55RGF0YU1vZGVsPj4oY2xheno6IE1DKTogTUMgPT4ge1xuICAgIGNvbnN0IHR5cGUgPSBpc01vZGVsQ2xhc3MoY2xhenopID8gXCJjbGFzc1wiIDogaXNEYXRhTW9kZWxDbGFzcyhjbGF6eikgPyBcImRhdGFcIiA6IHVuZGVmaW5lZFxuICAgIGlmICghdHlwZSkge1xuICAgICAgdGhyb3cgZmFpbHVyZShgY2xhenogbXVzdCBiZSBhIGNsYXNzIHRoYXQgZXh0ZW5kcyBmcm9tIE1vZGVsL0RhdGFNb2RlbGApXG4gICAgfVxuXG4gICAgaWYgKG1vZGVsSW5mb0J5TmFtZVtuYW1lXSkge1xuICAgICAgaWYgKGdldEdsb2JhbENvbmZpZygpLnNob3dEdXBsaWNhdGVNb2RlbE5hbWVXYXJuaW5ncykge1xuICAgICAgICBsb2dXYXJuaW5nKFxuICAgICAgICAgIFwid2FyblwiLFxuICAgICAgICAgIGBhIG1vZGVsIHdpdGggbmFtZSBcIiR7bmFtZX1cIiBhbHJlYWR5IGV4aXN0cyAoaWYgeW91IGFyZSB1c2luZyBob3QtcmVsb2FkaW5nIHlvdSBtYXkgc2FmZWx5IGlnbm9yZSB0aGlzIHdhcm5pbmcpYCxcbiAgICAgICAgICBgZHVwbGljYXRlTW9kZWxOYW1lIC0gJHtuYW1lfWBcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChtb2RlbFVud3JhcHBlZENsYXNzU3ltYm9sIGluIGNsYXp6KSB7XG4gICAgICB0aHJvdyBmYWlsdXJlKFwiYSBjbGFzcyBhbHJlYWR5IGRlY29yYXRlZCB3aXRoIGBAbW9kZWxgIGNhbm5vdCBiZSByZS1kZWNvcmF0ZWRcIilcbiAgICB9XG5cbiAgICAvLyB0cmFjayBpZiB3ZSBmYWlsIHNvIHdlIG9ubHkgdHJ5IGl0IG9uY2UgcGVyIGNsYXNzXG4gICAgbGV0IG1ha2VPYnNlcnZhYmxlRmFpbGVkID0gZmFsc2VcblxuICAgIC8vIHRyaWNrIHNvIHBsYWluIG5ldyB3b3Jrc1xuICAgIGNvbnN0IG5ld0NsYXp6OiBhbnkgPSBmdW5jdGlvbiAodGhpczogYW55LCBpbml0aWFsRGF0YTogYW55LCBtb2RlbENvbnN0cnVjdG9yT3B0aW9uczogYW55KSB7XG4gICAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyAoY2xhenogYXMgYW55KShpbml0aWFsRGF0YSwgbW9kZWxDb25zdHJ1Y3Rvck9wdGlvbnMpXG5cbiAgICAgIC8vIHNldCBvciBlbHNlIGl0IHBvaW50cyB0byB0aGUgdW5kZWNvcmF0ZWQgY2xhc3NcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShpbnN0YW5jZSwgXCJjb25zdHJ1Y3RvclwiLCB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICB2YWx1ZTogbmV3Q2xhenosXG4gICAgICB9KVxuXG4gICAgICBydW5MYXRlSW5pdGlhbGl6YXRpb25GdW5jdGlvbnMoaW5zdGFuY2UsIHJ1bkFmdGVyTmV3U3ltYm9sKVxuXG4gICAgICAvLyBjb21wYXRpYmlsaXR5IHdpdGggbW9ieCA2XG4gICAgICBpZiAoIW1ha2VPYnNlcnZhYmxlRmFpbGVkICYmIGdldE1vYnhWZXJzaW9uKCkgPj0gNikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIG1vYng2Lm1ha2VPYnNlcnZhYmxlKGluc3RhbmNlKVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgLy8gc2FkbHkgd2UgbmVlZCB0byB1c2UgdGhpcyBoYWNrIHNpbmNlIHRoZSBQUiB0byBkbyB0aGlzIHRoZSBwcm9wZXIgd2F5XG4gICAgICAgICAgLy8gd2FzIHJlamVjdGVkIG9uIHRoZSBtb2J4IHNpZGVcbiAgICAgICAgICBtYWtlT2JzZXJ2YWJsZUZhaWxlZCA9IHRydWVcblxuICAgICAgICAgIGNvbnN0IGVyciA9IGUgYXMgRXJyb3JcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBlcnIubWVzc2FnZSAhPT1cbiAgICAgICAgICAgICAgXCJbTW9iWF0gTm8gYW5ub3RhdGlvbnMgd2VyZSBwYXNzZWQgdG8gbWFrZU9ic2VydmFibGUsIGJ1dCBubyBkZWNvcmF0b3IgbWVtYmVycyBoYXZlIGJlZW4gZm91bmQgZWl0aGVyXCIgJiZcbiAgICAgICAgICAgIGVyci5tZXNzYWdlICE9PVxuICAgICAgICAgICAgICBcIltNb2JYXSBObyBhbm5vdGF0aW9ucyB3ZXJlIHBhc3NlZCB0byBtYWtlT2JzZXJ2YWJsZSwgYnV0IG5vIGRlY29yYXRlZCBtZW1iZXJzIGhhdmUgYmVlbiBmb3VuZCBlaXRoZXJcIlxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhyb3cgZXJyXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIHRoZSBvYmplY3QgaXMgcmVhZHlcbiAgICAgIGFkZEhpZGRlblByb3AoaW5zdGFuY2UsIG1vZGVsSW5pdGlhbGl6ZWRTeW1ib2wsIHRydWUsIGZhbHNlKVxuXG4gICAgICBydW5MYXRlSW5pdGlhbGl6YXRpb25GdW5jdGlvbnMoaW5zdGFuY2UsIHJ1bkJlZm9yZU9uSW5pdFN5bWJvbClcblxuICAgICAgaWYgKHR5cGUgPT09IFwiY2xhc3NcIiAmJiBpbnN0YW5jZS5vbkluaXQpIHtcbiAgICAgICAgd3JhcE1vZGVsTWV0aG9kSW5BY3Rpb25JZk5lZWRlZChpbnN0YW5jZSwgXCJvbkluaXRcIiwgSG9va0FjdGlvbi5PbkluaXQpXG5cbiAgICAgICAgaW5zdGFuY2Uub25Jbml0KClcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGUgPT09IFwiZGF0YVwiICYmIGluc3RhbmNlLm9uTGF6eUluaXQpIHtcbiAgICAgICAgd3JhcE1vZGVsTWV0aG9kSW5BY3Rpb25JZk5lZWRlZChpbnN0YW5jZSwgXCJvbkxhenlJbml0XCIsIEhvb2tBY3Rpb24uT25MYXp5SW5pdClcblxuICAgICAgICBpbnN0YW5jZS5vbkxhenlJbml0KClcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGluc3RhbmNlXG4gICAgfVxuXG4gICAgY2xhenoudG9TdHJpbmcgPSAoKSA9PiBgY2xhc3MgJHtjbGF6ei5uYW1lfSMke25hbWV9YFxuICAgIGlmICh0eXBlID09PSBcImNsYXNzXCIpIHtcbiAgICAgIDsoY2xhenogYXMgYW55KVttb2RlbFR5cGVLZXldID0gbmFtZVxuICAgIH1cblxuICAgIC8vIHRoaXMgYWxzbyBnaXZlcyBhY2Nlc3MgdG8gbW9kZWxJbml0aWFsaXplcnNTeW1ib2wsIG1vZGVsUHJvcGVydGllc1N5bWJvbCwgbW9kZWxEYXRhVHlwZUNoZWNrZXJTeW1ib2xcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YobmV3Q2xhenosIGNsYXp6KVxuICAgIG5ld0NsYXp6LnByb3RvdHlwZSA9IGNsYXp6LnByb3RvdHlwZVxuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld0NsYXp6LCBcIm5hbWVcIiwge1xuICAgICAgLi4uT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuZXdDbGF6eiwgXCJuYW1lXCIpLFxuICAgICAgdmFsdWU6IGNsYXp6Lm5hbWUsXG4gICAgfSlcbiAgICBuZXdDbGF6elttb2RlbFVud3JhcHBlZENsYXNzU3ltYm9sXSA9IGNsYXp6XG5cbiAgICBjb25zdCBtb2RlbEluZm8gPSB7XG4gICAgICBuYW1lLFxuICAgICAgY2xhc3M6IG5ld0NsYXp6LFxuICAgIH1cblxuICAgIG1vZGVsSW5mb0J5TmFtZVtuYW1lXSA9IG1vZGVsSW5mb1xuXG4gICAgbW9kZWxJbmZvQnlDbGFzcy5zZXQobmV3Q2xhenosIG1vZGVsSW5mbylcbiAgICBtb2RlbEluZm9CeUNsYXNzLnNldChjbGF6eiwgbW9kZWxJbmZvKVxuXG4gICAgcnVuTGF0ZUluaXRpYWxpemF0aW9uRnVuY3Rpb25zKGNsYXp6LCBydW5BZnRlck1vZGVsRGVjb3JhdG9yU3ltYm9sKVxuXG4gICAgcmV0dXJuIG5ld0NsYXp6XG4gIH1cblxuLy8gYmFzaWNhbGx5IHRha2VuIGZyb20gVFNcbmZ1bmN0aW9uIHRzRGVjb3JhdGUoZGVjb3JhdG9yczogYW55LCB0YXJnZXQ6IGFueSwga2V5OiBhbnksIGRlc2M6IGFueSkge1xuICB2YXIgYyA9IGFyZ3VtZW50cy5sZW5ndGgsXG4gICAgciA9XG4gICAgICBjIDwgMyA/IHRhcmdldCA6IGRlc2MgPT09IG51bGwgPyAoZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpKSA6IGRlc2MsXG4gICAgZFxuICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIChSZWZsZWN0IGFzIGFueSkuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIilcbiAgICByID0gKFJlZmxlY3QgYXMgYW55KS5kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYylcbiAgZWxzZVxuICAgIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKVxuICAgICAgaWYgKChkID0gZGVjb3JhdG9yc1tpXSkpIHIgPSAoYyA8IDMgPyBkKHIpIDogYyA+IDMgPyBkKHRhcmdldCwga2V5LCByKSA6IGQodGFyZ2V0LCBrZXkpKSB8fCByXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZXF1ZW5jZXNcbiAgcmV0dXJuIGMgPiAzICYmIHIgJiYgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCByKSwgclxufVxuXG4vKipcbiAqIE1hcmtzIGEgY2xhc3MgKHdoaWNoIE1VU1QgaW5oZXJpdCBmcm9tIHRoZSBgTW9kZWxgIGFic3RyYWN0IGNsYXNzKVxuICogYXMgYSBtb2RlbCBhbmQgZGVjb3JhdGVzIHNvbWUgb2YgaXRzIG1ldGhvZHMvcHJvcGVydGllcy5cbiAqXG4gKiBAcGFyYW0gbmFtZSBVbmlxdWUgbmFtZSBmb3IgdGhlIG1vZGVsIHR5cGUuIE5vdGUgdGhhdCB0aGlzIG5hbWUgbXVzdCBiZSB1bmlxdWUgZm9yIHlvdXIgd2hvbGVcbiAqIGFwcGxpY2F0aW9uLCBzbyBpdCBpcyB1c3VhbGx5IGEgZ29vZCBpZGVhIHRvIHVzZSBzb21lIHByZWZpeCB1bmlxdWUgdG8geW91ciBhcHBsaWNhdGlvbiBkb21haW4uXG4gKiBJZiB5b3UgZG9uJ3Qgd2FudCB0byBhc3NpZ24gYSBuYW1lIHlldCAoZS5nLiBmb3IgYSBiYXNlIG1vZGVsKSBwYXNzIGB1bmRlZmluZWRgLlxuICogQHBhcmFtIGNsYXp6IE1vZGVsIGNsYXNzLlxuICogQHBhcmFtIGRlY29yYXRvcnMgRGVjb3JhdG9ycy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlY29yYXRlZE1vZGVsPE0sIE1DIGV4dGVuZHMgYWJzdHJhY3QgbmV3ICguLi5hZ3M6IGFueSkgPT4gTT4oXG4gIG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgY2xheno6IE1DLFxuICBkZWNvcmF0b3JzOiB7XG4gICAgW2sgaW4ga2V5b2YgTV0/OiAoKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnkpIHwgUmVhZG9ubHlBcnJheTwoLi4uYXJnczogYW55W10pID0+IGFueT5cbiAgfVxuKTogTUMge1xuICAvLyBkZWNvcmF0ZSBjbGFzcyBtZW1iZXJzXG4gIGZvciAoY29uc3QgW2ssIGRlY29yYXRvcl0gb2YgT2JqZWN0LmVudHJpZXMoZGVjb3JhdG9ycykpIHtcbiAgICBjb25zdCBwcm90b3R5cGVWYWx1ZURlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGNsYXp6LnByb3RvdHlwZSwgaylcbiAgICAvLyBUUyBzZWVtcyB0byBzZW5kIG51bGwgZm9yIG1ldGhvZHMgaW4gdGhlIHByb3RvdHlwZVxuICAgIC8vICh3aGljaCB3ZSBzdWJzdGl0dXRlIGZvciB0aGUgZGVzY3JpcHRvciB0byBhdm9pZCBhIGRvdWJsZSBsb29rLXVwKSBhbmQgdm9pZCAwICh1bmRlZmluZWQpIGZvciBwcm9wc1xuICAgIHRzRGVjb3JhdGUoXG4gICAgICBBcnJheS5pc0FycmF5KGRlY29yYXRvcikgPyBkZWNvcmF0b3IgOiBbZGVjb3JhdG9yXSxcbiAgICAgIGNsYXp6LnByb3RvdHlwZSxcbiAgICAgIGssXG4gICAgICBwcm90b3R5cGVWYWx1ZURlc2MgPyBwcm90b3R5cGVWYWx1ZURlc2MgOiB2b2lkIDBcbiAgICApXG4gIH1cblxuICByZXR1cm4gKG5hbWUgPyBtb2RlbChuYW1lKShjbGF6eiBhcyB1bmtub3duIGFzIE1vZGVsQ2xhc3M8QW55TW9kZWw+KSA6IGNsYXp6KSBhcyBNQ1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3Mi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
@@ -0,0 +1,7 @@
1
+ const modelInfoByName = {};
2
+ const modelInfoByClass = /* @__PURE__ */ new Map();
3
+ function getModelInfoForName(name) {
4
+ return modelInfoByName[name];
5
+ }
6
+ export { getModelInfoForName, modelInfoByClass, modelInfoByName };
7
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxJbmZvLm1qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZGVsU2hhcmVkL21vZGVsSW5mby50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFueURhdGFNb2RlbCB9IGZyb20gXCIuLi9kYXRhTW9kZWwvQmFzZURhdGFNb2RlbFwiXG5pbXBvcnQgdHlwZSB7IEFueU1vZGVsIH0gZnJvbSBcIi4uL21vZGVsL0Jhc2VNb2RlbFwiXG5pbXBvcnQgdHlwZSB7IE1vZGVsQ2xhc3MgfSBmcm9tIFwiLi9CYXNlTW9kZWxTaGFyZWRcIlxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1vZGVsSW5mbyB7XG4gIG5hbWU6IHN0cmluZ1xuICBjbGFzczogTW9kZWxDbGFzczxBbnlNb2RlbCB8IEFueURhdGFNb2RlbD5cbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IG1vZGVsSW5mb0J5TmFtZToge1xuICBbbmFtZTogc3RyaW5nXTogTW9kZWxJbmZvXG59ID0ge31cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IG1vZGVsSW5mb0J5Q2xhc3MgPSBuZXcgTWFwPE1vZGVsQ2xhc3M8QW55TW9kZWwgfCBBbnlEYXRhTW9kZWw+LCBNb2RlbEluZm8+KClcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE1vZGVsSW5mb0Zvck5hbWUobmFtZTogc3RyaW5nKTogTW9kZWxJbmZvIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIG1vZGVsSW5mb0J5TmFtZVtuYW1lXVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJNQWVhLGtCQUVUO01BS1MsdUNBQXVCOzZCQUtBO1NBQzNCLGdCQUFnQjtBQUN6Qjs7In0=
@@ -0,0 +1,9 @@
1
+ const modelPropertiesSymbol = Symbol("modelProperties");
2
+ function getInternalModelClassPropsInfo(modelClass) {
3
+ return modelClass[modelPropertiesSymbol];
4
+ }
5
+ function setInternalModelClassPropsInfo(modelClass, props) {
6
+ modelClass[modelPropertiesSymbol] = props;
7
+ }
8
+ export { getInternalModelClassPropsInfo, setInternalModelClassPropsInfo };
9
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxQcm9wc0luZm8ubWpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWxTaGFyZWQvbW9kZWxQcm9wc0luZm8udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBbnlEYXRhTW9kZWwgfSBmcm9tIFwiLi4vZGF0YU1vZGVsL0Jhc2VEYXRhTW9kZWxcIlxuaW1wb3J0IHR5cGUgeyBBbnlNb2RlbCB9IGZyb20gXCIuLi9tb2RlbC9CYXNlTW9kZWxcIlxuaW1wb3J0IHR5cGUgeyBNb2RlbENsYXNzIH0gZnJvbSBcIi4vQmFzZU1vZGVsU2hhcmVkXCJcbmltcG9ydCB0eXBlIHsgTW9kZWxQcm9wcyB9IGZyb20gXCIuL3Byb3BcIlxuXG5jb25zdCBtb2RlbFByb3BlcnRpZXNTeW1ib2wgPSBTeW1ib2woXCJtb2RlbFByb3BlcnRpZXNcIilcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqXG4gKiBHZXRzIHRoZSBpbmZvIHJlbGF0ZWQgdG8gYSBtb2RlbCBjbGFzcyBwcm9wZXJ0aWVzLlxuICpcbiAqIEBwYXJhbSBtb2RlbENsYXNzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm5hbE1vZGVsQ2xhc3NQcm9wc0luZm8oXG4gIG1vZGVsQ2xhc3M6IE1vZGVsQ2xhc3M8QW55TW9kZWwgfCBBbnlEYXRhTW9kZWw+XG4pOiBNb2RlbFByb3BzIHtcbiAgcmV0dXJuIChtb2RlbENsYXNzIGFzIGFueSlbbW9kZWxQcm9wZXJ0aWVzU3ltYm9sXVxufVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICpcbiAqIFNldHMgdGhlIGluZm8gcmVsYXRlZCB0byBhIG1vZGVsIGNsYXNzIHByb3BlcnRpZXMuXG4gKlxuICogQHBhcmFtIG1vZGVsQ2xhc3NcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldEludGVybmFsTW9kZWxDbGFzc1Byb3BzSW5mbyhcbiAgbW9kZWxDbGFzczogTW9kZWxDbGFzczxBbnlNb2RlbCB8IEFueURhdGFNb2RlbD4sXG4gIHByb3BzOiBNb2RlbFByb3BzXG4pOiB2b2lkIHtcbiAgOyhtb2RlbENsYXNzIGFzIGFueSlbbW9kZWxQcm9wZXJ0aWVzU3ltYm9sXSA9IHByb3BzXG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsTUFBTSx3QkFBd0IsT0FBTyxpQkFBaUI7d0NBVXBEO1NBRVEsV0FBbUI7QUFDN0I7d0NBVUUsWUFDQTthQUVxQix5QkFBeUI7QUFDaEQ7OyJ9
@@ -0,0 +1,5 @@
1
+ const modelMetadataSymbol = Symbol("modelMetadata");
2
+ const modelUnwrappedClassSymbol = Symbol("modelUnwrappedClass");
3
+ const runAfterModelDecoratorSymbol = Symbol("runAfterModelDecorator");
4
+ export { modelMetadataSymbol, modelUnwrappedClassSymbol, runAfterModelDecoratorSymbol };
5
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxTeW1ib2xzLm1qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZGVsU2hhcmVkL21vZGVsU3ltYm9scy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgbW9kZWxNZXRhZGF0YVN5bWJvbCA9IFN5bWJvbChcIm1vZGVsTWV0YWRhdGFcIilcbmV4cG9ydCBjb25zdCBtb2RlbFVud3JhcHBlZENsYXNzU3ltYm9sID0gU3ltYm9sKFwibW9kZWxVbndyYXBwZWRDbGFzc1wiKVxuZXhwb3J0IGNvbnN0IHJ1bkFmdGVyTW9kZWxEZWNvcmF0b3JTeW1ib2wgPSBTeW1ib2woXCJydW5BZnRlck1vZGVsRGVjb3JhdG9yXCIpXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ik1BQWEsc0JBQXNCLE9BQU8sZUFBZTtNQUM1Qyw0QkFBNEIsT0FBTyxxQkFBcUI7TUFDeEQsK0JBQStCLE9BQU8sd0JBQXdCOzsifQ==
@@ -0,0 +1,13 @@
1
+ import { getModelClassInitializers } from "./modelClassInitializer.mjs";
2
+ function applyModelInitializers(modelClass, modelObj) {
3
+ const initializers = getModelClassInitializers(modelClass);
4
+ if (initializers) {
5
+ const len = initializers.length;
6
+ for (let i = 0; i < len; i++) {
7
+ const init = initializers[i];
8
+ init(modelObj);
9
+ }
10
+ }
11
+ }
12
+ export { applyModelInitializers };
13
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3TW9kZWwubWpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWxTaGFyZWQvbmV3TW9kZWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBbnlEYXRhTW9kZWwgfSBmcm9tIFwiLi4vZGF0YU1vZGVsL0Jhc2VEYXRhTW9kZWxcIlxuaW1wb3J0IHR5cGUgeyBBbnlNb2RlbCB9IGZyb20gXCIuLi9tb2RlbC9CYXNlTW9kZWxcIlxuaW1wb3J0IHR5cGUgeyBNb2RlbENsYXNzIH0gZnJvbSBcIi4uL21vZGVsU2hhcmVkL0Jhc2VNb2RlbFNoYXJlZFwiXG5pbXBvcnQgeyBnZXRNb2RlbENsYXNzSW5pdGlhbGl6ZXJzIH0gZnJvbSBcIi4uL21vZGVsU2hhcmVkL21vZGVsQ2xhc3NJbml0aWFsaXplclwiXG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBseU1vZGVsSW5pdGlhbGl6ZXJzKFxuICBtb2RlbENsYXNzOiBNb2RlbENsYXNzPEFueU1vZGVsIHwgQW55RGF0YU1vZGVsPixcbiAgbW9kZWxPYmo6IGFueVxuKSB7XG4gIGNvbnN0IGluaXRpYWxpemVycyA9IGdldE1vZGVsQ2xhc3NJbml0aWFsaXplcnMobW9kZWxDbGFzcylcbiAgaWYgKGluaXRpYWxpemVycykge1xuICAgIGNvbnN0IGxlbiA9IGluaXRpYWxpemVycy5sZW5ndGhcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICBjb25zdCBpbml0ID0gaW5pdGlhbGl6ZXJzW2ldXG4gICAgICBpbml0KG1vZGVsT2JqKVxuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Z0NBTUUsWUFDQTtRQUVNLGVBQWUsMEJBQTBCLFVBQVU7TUFDckQsY0FBYztVQUNWLE1BQU0sYUFBYTthQUNoQixJQUFJLEdBQUcsSUFBSSxLQUFLLEtBQUs7WUFDdEIsT0FBTyxhQUFhO1dBQ3JCLFFBQVE7QUFBQTs7QUFHbkI7OyJ9