sonamu 0.5.6 → 0.6.0

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 (365) hide show
  1. package/dist/api/base-frame.js +12 -2
  2. package/dist/api/caster.js +66 -2
  3. package/dist/api/code-converters.js +489 -2
  4. package/dist/api/config.d.ts +76 -0
  5. package/dist/api/config.d.ts.map +1 -0
  6. package/dist/api/config.js +32 -0
  7. package/dist/api/context.d.ts +1 -0
  8. package/dist/api/context.d.ts.map +1 -1
  9. package/dist/api/context.js +3 -2
  10. package/dist/api/decorators.d.ts +1 -0
  11. package/dist/api/decorators.d.ts.map +1 -1
  12. package/dist/api/decorators.js +142 -2
  13. package/dist/api/index.js +9 -2
  14. package/dist/api/sonamu.d.ts +8 -22
  15. package/dist/api/sonamu.d.ts.map +1 -1
  16. package/dist/api/sonamu.js +482 -2
  17. package/dist/bin/build-config.d.ts +2 -1
  18. package/dist/bin/build-config.d.ts.map +1 -1
  19. package/dist/bin/build-config.js +12 -2
  20. package/dist/bin/cli-wrapper.js +71 -2
  21. package/dist/bin/cli.js +418 -2
  22. package/dist/bin/hot-hook-register.d.ts +11 -0
  23. package/dist/bin/hot-hook-register.d.ts.map +1 -0
  24. package/dist/bin/hot-hook-register.js +21 -0
  25. package/dist/database/_batch_update.js +78 -2
  26. package/dist/database/base-model.js +247 -2
  27. package/dist/database/code-generator.js +53 -2
  28. package/dist/database/db.d.ts +5 -16
  29. package/dist/database/db.d.ts.map +1 -1
  30. package/dist/database/db.js +132 -2
  31. package/dist/database/knex-plugins/knex-on-duplicate-update.js +39 -2
  32. package/dist/database/puri-wrapper.d.ts +22 -10
  33. package/dist/database/puri-wrapper.d.ts.map +1 -1
  34. package/dist/database/puri-wrapper.js +109 -2
  35. package/dist/database/puri.d.ts +105 -73
  36. package/dist/database/puri.d.ts.map +1 -1
  37. package/dist/database/puri.js +539 -2
  38. package/dist/database/puri.types.d.ts +33 -42
  39. package/dist/database/puri.types.d.ts.map +1 -1
  40. package/dist/database/puri.types.js +3 -2
  41. package/dist/database/transaction-context.d.ts +3 -3
  42. package/dist/database/transaction-context.d.ts.map +1 -1
  43. package/dist/database/transaction-context.js +14 -2
  44. package/dist/database/upsert-builder.js +215 -2
  45. package/dist/entity/entity-manager.d.ts +3 -1
  46. package/dist/entity/entity-manager.d.ts.map +1 -1
  47. package/dist/entity/entity-manager.js +114 -2
  48. package/dist/entity/entity-utils.js +210 -2
  49. package/dist/entity/entity.d.ts.map +1 -1
  50. package/dist/entity/entity.js +651 -2
  51. package/dist/exceptions/error-handler.js +29 -2
  52. package/dist/exceptions/so-exceptions.js +85 -2
  53. package/dist/file-storage/driver.js +79 -2
  54. package/dist/file-storage/file-storage.js +75 -2
  55. package/dist/index.d.ts +2 -0
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +28 -2
  58. package/dist/migration/code-generation.js +558 -2
  59. package/dist/migration/migration-set.js +364 -2
  60. package/dist/migration/migrator.d.ts +0 -9
  61. package/dist/migration/migrator.d.ts.map +1 -1
  62. package/dist/migration/migrator.js +510 -2
  63. package/dist/migration/types.js +3 -2
  64. package/dist/naite/naite.d.ts +12 -0
  65. package/dist/naite/naite.d.ts.map +1 -0
  66. package/dist/naite/naite.js +72 -0
  67. package/dist/stream/index.js +3 -2
  68. package/dist/stream/sse.js +38 -2
  69. package/dist/syncer/api-parser.d.ts +20 -0
  70. package/dist/syncer/api-parser.d.ts.map +1 -0
  71. package/dist/syncer/api-parser.js +229 -0
  72. package/dist/syncer/checksum.d.ts +21 -0
  73. package/dist/syncer/checksum.d.ts.map +1 -0
  74. package/dist/syncer/checksum.js +98 -0
  75. package/dist/syncer/code-generator.d.ts +20 -0
  76. package/dist/syncer/code-generator.d.ts.map +1 -0
  77. package/dist/syncer/code-generator.js +141 -0
  78. package/dist/syncer/entity-operations.d.ts +17 -0
  79. package/dist/syncer/entity-operations.d.ts.map +1 -0
  80. package/dist/syncer/entity-operations.js +58 -0
  81. package/dist/syncer/file-patterns.d.ts +29 -0
  82. package/dist/syncer/file-patterns.d.ts.map +1 -0
  83. package/dist/syncer/file-patterns.js +38 -0
  84. package/dist/syncer/index.d.ts +6 -0
  85. package/dist/syncer/index.d.ts.map +1 -1
  86. package/dist/syncer/index.js +9 -2
  87. package/dist/syncer/module-loader.d.ts +35 -0
  88. package/dist/syncer/module-loader.d.ts.map +1 -0
  89. package/dist/syncer/module-loader.js +82 -0
  90. package/dist/syncer/syncer.d.ts +93 -108
  91. package/dist/syncer/syncer.d.ts.map +1 -1
  92. package/dist/syncer/syncer.js +375 -2
  93. package/dist/template/entity-converter.d.ts +14 -0
  94. package/dist/template/entity-converter.d.ts.map +1 -0
  95. package/dist/template/entity-converter.js +101 -0
  96. package/dist/template/helpers.d.ts +23 -0
  97. package/dist/template/helpers.d.ts.map +1 -0
  98. package/dist/template/helpers.js +64 -0
  99. package/dist/{templates → template/implementations}/entity.template.d.ts +3 -3
  100. package/dist/template/implementations/entity.template.d.ts.map +1 -0
  101. package/dist/template/implementations/entity.template.js +87 -0
  102. package/dist/{templates → template/implementations}/generated.template.d.ts +3 -3
  103. package/dist/template/implementations/generated.template.d.ts.map +1 -0
  104. package/dist/template/implementations/generated.template.js +232 -0
  105. package/dist/{templates → template/implementations}/generated_http.template.d.ts +3 -3
  106. package/dist/template/implementations/generated_http.template.d.ts.map +1 -0
  107. package/dist/template/implementations/generated_http.template.js +131 -0
  108. package/dist/{templates → template/implementations}/generated_sso.template.d.ts +3 -3
  109. package/dist/template/implementations/generated_sso.template.d.ts.map +1 -0
  110. package/dist/template/implementations/generated_sso.template.js +105 -0
  111. package/dist/{templates → template/implementations}/init_types.template.d.ts +3 -3
  112. package/dist/template/implementations/init_types.template.d.ts.map +1 -0
  113. package/dist/template/implementations/init_types.template.js +38 -0
  114. package/dist/template/implementations/model.template.d.ts +17 -0
  115. package/dist/template/implementations/model.template.d.ts.map +1 -0
  116. package/dist/template/implementations/model.template.js +171 -0
  117. package/dist/{templates → template/implementations}/model_test.template.d.ts +3 -3
  118. package/dist/template/implementations/model_test.template.d.ts.map +1 -0
  119. package/dist/template/implementations/model_test.template.js +35 -0
  120. package/dist/{templates → template/implementations}/service.template.d.ts +6 -6
  121. package/dist/template/implementations/service.template.d.ts.map +1 -0
  122. package/dist/template/implementations/service.template.js +193 -0
  123. package/dist/{templates → template/implementations}/view_enums_buttonset.template.d.ts +3 -3
  124. package/dist/template/implementations/view_enums_buttonset.template.d.ts.map +1 -0
  125. package/dist/template/implementations/view_enums_buttonset.template.js +31 -0
  126. package/dist/{templates → template/implementations}/view_enums_dropdown.template.d.ts +3 -4
  127. package/dist/template/implementations/view_enums_dropdown.template.d.ts.map +1 -0
  128. package/dist/template/implementations/view_enums_dropdown.template.js +50 -0
  129. package/dist/{templates → template/implementations}/view_enums_select.template.d.ts +3 -3
  130. package/dist/template/implementations/view_enums_select.template.d.ts.map +1 -0
  131. package/dist/template/implementations/view_enums_select.template.js +55 -0
  132. package/dist/{templates → template/implementations}/view_form.template.d.ts +5 -5
  133. package/dist/template/implementations/view_form.template.d.ts.map +1 -0
  134. package/dist/template/implementations/view_form.template.js +337 -0
  135. package/dist/{templates → template/implementations}/view_id_all_select.template.d.ts +3 -3
  136. package/dist/template/implementations/view_id_all_select.template.d.ts.map +1 -0
  137. package/dist/template/implementations/view_id_all_select.template.js +31 -0
  138. package/dist/{templates → template/implementations}/view_id_async_select.template.d.ts +3 -3
  139. package/dist/template/implementations/view_id_async_select.template.d.ts.map +1 -0
  140. package/dist/template/implementations/view_id_async_select.template.js +105 -0
  141. package/dist/{templates → template/implementations}/view_list.template.d.ts +5 -13
  142. package/dist/template/implementations/view_list.template.d.ts.map +1 -0
  143. package/dist/template/implementations/view_list.template.js +465 -0
  144. package/dist/{templates → template/implementations}/view_list_columns.template.d.ts +3 -3
  145. package/dist/template/implementations/view_list_columns.template.d.ts.map +1 -0
  146. package/dist/template/implementations/view_list_columns.template.js +49 -0
  147. package/dist/{templates → template/implementations}/view_search_input.template.d.ts +3 -3
  148. package/dist/template/implementations/view_search_input.template.d.ts.map +1 -0
  149. package/dist/template/implementations/view_search_input.template.js +64 -0
  150. package/dist/template/index.d.ts +5 -0
  151. package/dist/template/index.d.ts.map +1 -0
  152. package/dist/template/index.js +6 -0
  153. package/dist/template/template.d.ts +39 -0
  154. package/dist/template/template.d.ts.map +1 -0
  155. package/dist/template/template.js +47 -0
  156. package/dist/template/zod-converter.d.ts +18 -0
  157. package/dist/template/zod-converter.d.ts.map +1 -0
  158. package/dist/template/zod-converter.js +166 -0
  159. package/dist/testing/_relation-graph.js +80 -2
  160. package/dist/testing/fixture-manager.d.ts.map +1 -1
  161. package/dist/testing/fixture-manager.js +521 -2
  162. package/dist/types/types.d.ts +39 -40
  163. package/dist/types/types.d.ts.map +1 -1
  164. package/dist/types/types.js +289 -2
  165. package/dist/typings/knex.d.js +3 -2
  166. package/dist/utils/async-utils.d.ts +7 -0
  167. package/dist/utils/async-utils.d.ts.map +1 -1
  168. package/dist/utils/async-utils.js +57 -2
  169. package/dist/utils/console-util.d.ts +2 -0
  170. package/dist/utils/console-util.d.ts.map +1 -0
  171. package/dist/utils/console-util.js +6 -0
  172. package/dist/utils/controller.js +26 -2
  173. package/dist/utils/esm-utils.d.ts +45 -0
  174. package/dist/utils/esm-utils.d.ts.map +1 -0
  175. package/dist/utils/esm-utils.js +56 -0
  176. package/dist/utils/fs-utils.js +17 -2
  177. package/dist/utils/lodash-able.js +6 -2
  178. package/dist/utils/model.js +22 -2
  179. package/dist/utils/path-utils.d.ts +89 -0
  180. package/dist/utils/path-utils.d.ts.map +1 -0
  181. package/dist/utils/path-utils.js +60 -0
  182. package/dist/utils/process-utils.d.ts +13 -0
  183. package/dist/utils/process-utils.d.ts.map +1 -0
  184. package/dist/utils/process-utils.js +36 -0
  185. package/dist/utils/sql-parser.js +35 -2
  186. package/dist/utils/utils.d.ts +4 -7
  187. package/dist/utils/utils.d.ts.map +1 -1
  188. package/dist/utils/utils.js +33 -2
  189. package/dist/utils/zod-error.d.ts.map +1 -1
  190. package/dist/utils/zod-error.js +19 -2
  191. package/package.json +21 -9
  192. package/src/api/code-converters.ts +2 -2
  193. package/src/api/config.ts +142 -0
  194. package/src/api/context.ts +1 -0
  195. package/src/api/decorators.ts +15 -5
  196. package/src/api/sonamu.ts +102 -87
  197. package/src/bin/build-config.ts +2 -1
  198. package/src/bin/cli-wrapper.ts +10 -3
  199. package/src/bin/cli.ts +108 -56
  200. package/src/bin/hot-hook-register.ts +22 -0
  201. package/src/database/base-model.ts +1 -1
  202. package/src/database/code-generator.ts +1 -1
  203. package/src/database/db.ts +53 -60
  204. package/src/database/puri-wrapper.ts +104 -26
  205. package/src/database/puri.ts +477 -580
  206. package/src/database/puri.types.ts +111 -201
  207. package/src/database/transaction-context.ts +4 -4
  208. package/src/database/upsert-builder.ts +1 -1
  209. package/src/entity/entity-manager.ts +19 -15
  210. package/src/entity/entity.ts +4 -3
  211. package/src/index.ts +2 -0
  212. package/src/migration/code-generation.ts +1 -1
  213. package/src/migration/migration-set.ts +1 -1
  214. package/src/migration/migrator.ts +23 -152
  215. package/src/naite/naite.ts +70 -0
  216. package/src/syncer/api-parser.ts +299 -0
  217. package/src/syncer/checksum.ts +152 -0
  218. package/src/syncer/code-generator.ts +202 -0
  219. package/src/syncer/entity-operations.ts +68 -0
  220. package/src/syncer/file-patterns.ts +56 -0
  221. package/src/syncer/index.ts +6 -0
  222. package/src/syncer/module-loader.ts +125 -0
  223. package/src/syncer/syncer.ts +363 -1420
  224. package/src/template/entity-converter.ts +123 -0
  225. package/src/template/helpers.ts +84 -0
  226. package/src/{templates → template/implementations}/entity.template.ts +4 -4
  227. package/src/{templates → template/implementations}/generated.template.ts +9 -9
  228. package/src/{templates → template/implementations}/generated_http.template.ts +9 -6
  229. package/src/{templates → template/implementations}/generated_sso.template.ts +7 -7
  230. package/src/{templates → template/implementations}/init_types.template.ts +4 -4
  231. package/src/{templates → template/implementations}/model.template.ts +9 -9
  232. package/src/{templates → template/implementations}/model_test.template.ts +5 -5
  233. package/src/{templates → template/implementations}/service.template.ts +29 -12
  234. package/src/{templates → template/implementations}/view_enums_buttonset.template.ts +3 -3
  235. package/src/{templates → template/implementations}/view_enums_dropdown.template.ts +5 -21
  236. package/src/{templates → template/implementations}/view_enums_select.template.ts +4 -4
  237. package/src/{templates → template/implementations}/view_form.template.ts +11 -13
  238. package/src/{templates → template/implementations}/view_id_all_select.template.ts +3 -3
  239. package/src/{templates → template/implementations}/view_id_async_select.template.ts +3 -3
  240. package/src/{templates → template/implementations}/view_list.template.ts +13 -64
  241. package/src/{templates → template/implementations}/view_list_columns.template.ts +3 -3
  242. package/src/{templates → template/implementations}/view_search_input.template.ts +3 -3
  243. package/src/template/index.ts +4 -0
  244. package/src/template/template.ts +86 -0
  245. package/src/template/zod-converter.ts +219 -0
  246. package/src/testing/fixture-manager.ts +8 -1
  247. package/src/types/types.ts +39 -62
  248. package/src/utils/async-utils.ts +17 -0
  249. package/src/utils/console-util.ts +4 -0
  250. package/src/utils/esm-utils.ts +69 -0
  251. package/src/utils/path-utils.ts +102 -0
  252. package/src/utils/process-utils.ts +46 -0
  253. package/src/utils/sql-parser.ts +1 -1
  254. package/src/utils/utils.ts +14 -40
  255. package/src/utils/zod-error.ts +0 -1
  256. package/dist/api/base-frame.js.map +0 -1
  257. package/dist/api/caster.js.map +0 -1
  258. package/dist/api/code-converters.js.map +0 -1
  259. package/dist/api/context.js.map +0 -1
  260. package/dist/api/decorators.js.map +0 -1
  261. package/dist/api/index.js.map +0 -1
  262. package/dist/api/sonamu.js.map +0 -1
  263. package/dist/bin/build-config.js.map +0 -1
  264. package/dist/bin/cli-wrapper.js.map +0 -1
  265. package/dist/bin/cli.js.map +0 -1
  266. package/dist/database/_batch_update.js.map +0 -1
  267. package/dist/database/base-model.js.map +0 -1
  268. package/dist/database/code-generator.js.map +0 -1
  269. package/dist/database/db.js.map +0 -1
  270. package/dist/database/knex-plugins/knex-on-duplicate-update.js.map +0 -1
  271. package/dist/database/puri-wrapper.js.map +0 -1
  272. package/dist/database/puri.js.map +0 -1
  273. package/dist/database/puri.types.js.map +0 -1
  274. package/dist/database/transaction-context.js.map +0 -1
  275. package/dist/database/upsert-builder.js.map +0 -1
  276. package/dist/entity/entity-manager.js.map +0 -1
  277. package/dist/entity/entity-utils.js.map +0 -1
  278. package/dist/entity/entity.js.map +0 -1
  279. package/dist/exceptions/error-handler.js.map +0 -1
  280. package/dist/exceptions/so-exceptions.js.map +0 -1
  281. package/dist/file-storage/driver.js.map +0 -1
  282. package/dist/file-storage/file-storage.js.map +0 -1
  283. package/dist/index.js.map +0 -1
  284. package/dist/migration/code-generation.js.map +0 -1
  285. package/dist/migration/migration-set.js.map +0 -1
  286. package/dist/migration/migrator.js.map +0 -1
  287. package/dist/migration/types.js.map +0 -1
  288. package/dist/stream/index.js.map +0 -1
  289. package/dist/stream/sse.js.map +0 -1
  290. package/dist/syncer/index.js.map +0 -1
  291. package/dist/syncer/syncer.js.map +0 -1
  292. package/dist/templates/base-template.d.ts +0 -13
  293. package/dist/templates/base-template.d.ts.map +0 -1
  294. package/dist/templates/base-template.js +0 -2
  295. package/dist/templates/base-template.js.map +0 -1
  296. package/dist/templates/entity.template.d.ts.map +0 -1
  297. package/dist/templates/entity.template.js +0 -2
  298. package/dist/templates/entity.template.js.map +0 -1
  299. package/dist/templates/generated.template.d.ts.map +0 -1
  300. package/dist/templates/generated.template.js +0 -2
  301. package/dist/templates/generated.template.js.map +0 -1
  302. package/dist/templates/generated_http.template.d.ts.map +0 -1
  303. package/dist/templates/generated_http.template.js +0 -2
  304. package/dist/templates/generated_http.template.js.map +0 -1
  305. package/dist/templates/generated_sso.template.d.ts.map +0 -1
  306. package/dist/templates/generated_sso.template.js +0 -2
  307. package/dist/templates/generated_sso.template.js.map +0 -1
  308. package/dist/templates/index.d.ts +0 -2
  309. package/dist/templates/index.d.ts.map +0 -1
  310. package/dist/templates/index.js +0 -2
  311. package/dist/templates/index.js.map +0 -1
  312. package/dist/templates/init_types.template.d.ts.map +0 -1
  313. package/dist/templates/init_types.template.js +0 -2
  314. package/dist/templates/init_types.template.js.map +0 -1
  315. package/dist/templates/model.template.d.ts +0 -17
  316. package/dist/templates/model.template.d.ts.map +0 -1
  317. package/dist/templates/model.template.js +0 -2
  318. package/dist/templates/model.template.js.map +0 -1
  319. package/dist/templates/model_test.template.d.ts.map +0 -1
  320. package/dist/templates/model_test.template.js +0 -2
  321. package/dist/templates/model_test.template.js.map +0 -1
  322. package/dist/templates/service.template.d.ts.map +0 -1
  323. package/dist/templates/service.template.js +0 -2
  324. package/dist/templates/service.template.js.map +0 -1
  325. package/dist/templates/view_enums_buttonset.template.d.ts.map +0 -1
  326. package/dist/templates/view_enums_buttonset.template.js +0 -2
  327. package/dist/templates/view_enums_buttonset.template.js.map +0 -1
  328. package/dist/templates/view_enums_dropdown.template.d.ts.map +0 -1
  329. package/dist/templates/view_enums_dropdown.template.js +0 -2
  330. package/dist/templates/view_enums_dropdown.template.js.map +0 -1
  331. package/dist/templates/view_enums_select.template.d.ts.map +0 -1
  332. package/dist/templates/view_enums_select.template.js +0 -2
  333. package/dist/templates/view_enums_select.template.js.map +0 -1
  334. package/dist/templates/view_form.template.d.ts.map +0 -1
  335. package/dist/templates/view_form.template.js +0 -2
  336. package/dist/templates/view_form.template.js.map +0 -1
  337. package/dist/templates/view_id_all_select.template.d.ts.map +0 -1
  338. package/dist/templates/view_id_all_select.template.js +0 -2
  339. package/dist/templates/view_id_all_select.template.js.map +0 -1
  340. package/dist/templates/view_id_async_select.template.d.ts.map +0 -1
  341. package/dist/templates/view_id_async_select.template.js +0 -2
  342. package/dist/templates/view_id_async_select.template.js.map +0 -1
  343. package/dist/templates/view_list.template.d.ts.map +0 -1
  344. package/dist/templates/view_list.template.js +0 -2
  345. package/dist/templates/view_list.template.js.map +0 -1
  346. package/dist/templates/view_list_columns.template.d.ts.map +0 -1
  347. package/dist/templates/view_list_columns.template.js +0 -2
  348. package/dist/templates/view_list_columns.template.js.map +0 -1
  349. package/dist/templates/view_search_input.template.d.ts.map +0 -1
  350. package/dist/templates/view_search_input.template.js +0 -2
  351. package/dist/templates/view_search_input.template.js.map +0 -1
  352. package/dist/testing/_relation-graph.js.map +0 -1
  353. package/dist/testing/fixture-manager.js.map +0 -1
  354. package/dist/types/types.js.map +0 -1
  355. package/dist/typings/knex.d.js.map +0 -1
  356. package/dist/utils/async-utils.js.map +0 -1
  357. package/dist/utils/controller.js.map +0 -1
  358. package/dist/utils/fs-utils.js.map +0 -1
  359. package/dist/utils/lodash-able.js.map +0 -1
  360. package/dist/utils/model.js.map +0 -1
  361. package/dist/utils/sql-parser.js.map +0 -1
  362. package/dist/utils/utils.js.map +0 -1
  363. package/dist/utils/zod-error.js.map +0 -1
  364. package/src/templates/base-template.ts +0 -19
  365. package/src/templates/index.ts +0 -1
@@ -1,2 +1,114 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"EntityManager",{enumerable:true,get:function(){return EntityManager}});var _chalk=/*#__PURE__*/_interop_require_default(require("chalk"));var _promises=require("fs/promises");var _inflection=/*#__PURE__*/_interop_require_default(require("inflection"));var _path=/*#__PURE__*/_interop_require_default(require("path"));var _entity=require("./entity");var _sonamu=require("../api/sonamu");function _async_iterator(iterable){var method,async,sync,retry=2;for("undefined"!=typeof Symbol&&(async=Symbol.asyncIterator,sync=Symbol.iterator);retry--;){if(async&&null!=(method=iterable[async]))return method.call(iterable);if(sync&&null!=(method=iterable[sync]))return new AsyncFromSyncIterator(method.call(iterable));async="@@asyncIterator",sync="@@iterator"}throw new TypeError("Object is not async iterable")}function AsyncFromSyncIterator(s){function AsyncFromSyncIteratorContinuation(r){if(Object(r)!==r)return Promise.reject(new TypeError(r+" is not an object."));var done=r.done;return Promise.resolve(r.value).then(function(value){return{value:value,done:done}})}return AsyncFromSyncIterator=function(s){this.s=s,this.n=s.next},AsyncFromSyncIterator.prototype={s:null,n:null,next:function(){return AsyncFromSyncIteratorContinuation(this.n.apply(this.s,arguments))},return:function(value){var ret=this.s.return;return void 0===ret?Promise.resolve({value:value,done:!0}):AsyncFromSyncIteratorContinuation(ret.apply(this.s,arguments))},throw:function(value){var thr=this.s.return;return void 0===thr?Promise.reject(value):AsyncFromSyncIteratorContinuation(thr.apply(this.s,arguments))}},new AsyncFromSyncIterator(s)}function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _class_call_check(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _create_class(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _interop_require_default(obj){return obj&&obj.__esModule?obj:{default:obj}}function _ts_generator(thisArg,body){var f,y,t,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},g=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return g.next=verb(0),g["throw"]=verb(1),g["return"]=verb(2),typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(g&&(g=0,op[0]&&(_=0)),_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}var EntityManagerClass=/*#__PURE__*/function(){"use strict";function EntityManagerClass(){_class_call_check(this,EntityManagerClass);_define_property(this,"entities",new Map);_define_property(this,"modulePaths",new Map);_define_property(this,"tableSpecs",new Map);_define_property(this,"isAutoloaded",false)}_create_class(EntityManagerClass,[{key:"autoload",value:function autoload(){var doSilent=arguments.length>0&&arguments[0]!==void 0?arguments[0]:false;return _async_to_generator(function(){var pathPattern,_iteratorAbruptCompletion,_didIteratorError,_iteratorError,_iterator,_step,_value,file,_,_1,_2,err;return _ts_generator(this,function(_state){switch(_state.label){case 0:if(this.isAutoloaded){return[2]}pathPattern=_path.default.join(_sonamu.Sonamu.apiRootPath,"/src/application/**/*.entity.json");!doSilent&&console.log(_chalk.default.yellow("autoload ".concat(pathPattern)));_iteratorAbruptCompletion=false,_didIteratorError=false;_state.label=1;case 1:_state.trys.push([1,8,9,14]);_iterator=_async_iterator((0,_promises.glob)(_path.default.resolve(pathPattern)));_state.label=2;case 2:return[4,_iterator.next()];case 3:if(!(_iteratorAbruptCompletion=!(_step=_state.sent()).done))return[3,7];_value=_step.value;file=_value;_1=(_=this).register;_2=JSON.parse;return[4,(0,_promises.readFile)(file)];case 4:return[4,_1.apply(_,[_2.apply(JSON,[_state.sent().toString()])])];case 5:_state.sent();_state.label=6;case 6:_iteratorAbruptCompletion=false;return[3,2];case 7:return[3,14];case 8:err=_state.sent();_didIteratorError=true;_iteratorError=err;return[3,14];case 9:_state.trys.push([9,,12,13]);if(!(_iteratorAbruptCompletion&&_iterator.return!=null))return[3,11];return[4,_iterator.return()];case 10:_state.sent();_state.label=11;case 11:return[3,13];case 12:if(_didIteratorError){throw _iteratorError}return[7];case 13:return[7];case 14:this.isAutoloaded=true;return[2]}})}).call(this)}},{key:"reload",value:function reload(){var doSilent=arguments.length>0&&arguments[0]!==void 0?arguments[0]:false;return _async_to_generator(function(){var _require,sonamuPath;return _ts_generator(this,function(_state){switch(_state.label){case 0:console.log("reload");this.entities.clear();this.modulePaths.clear();this.tableSpecs.clear();this.isAutoloaded=false;sonamuPath=_path.default.join(_sonamu.Sonamu.apiRootPath,"dist/application/sonamu.generated.js");if(((_require=require)===null||_require===void 0?void 0:_require.cache)&&require.cache[sonamuPath]){delete require.cache[sonamuPath]}return[4,this.autoload(doSilent)];case 1:return[2,_state.sent()]}})}).call(this)}},{key:"register",value:function register(json){return _async_to_generator(function(){var entity;return _ts_generator(this,function(_state){switch(_state.label){case 0:entity=new _entity.Entity(json);return[4,entity.registerModulePaths()];case 1:_state.sent();entity.registerTableSpecs();this.entities.set(json.id,entity);return[2]}})}).call(this)}},{key:"get",value:function get(entityId){var entity=this.entities.get(entityId);if(entity===undefined){throw new Error("존재하지 않는 Entity 요청 ".concat(entityId))}return entity}},{key:"exists",value:function exists(entityId){var entity=this.entities.get(entityId);return entity!==undefined}},{key:"getAllIds",value:function getAllIds(){return Array.from(EntityManager.entities.keys()).sort()}},{key:"getAllParentIds",value:function getAllParentIds(){var _this=this;return this.getAllIds().filter(function(entityId){var entity=_this.get(entityId);return entity.parentId===undefined})}},{key:"getChildrenIds",value:function getChildrenIds(parentId){var _this=this;return this.getAllIds().filter(function(entityId){var entity=_this.get(entityId);return entity.parentId===parentId})}},{key:"setModulePath",value:function setModulePath(key,modulePath){this.modulePaths.set(key,modulePath)}},{key:"getModulePath",value:function getModulePath(key){var modulePath=this.modulePaths.get(key);if(modulePath===undefined){throw new Error("존재하지 않는 모듈 패스 요청 ".concat(key))}return modulePath}},{key:"setTableSpec",value:function setTableSpec(tableSpec){this.tableSpecs.set(tableSpec.name,tableSpec)}},{key:"getTableSpec",value:function getTableSpec(key){var tableSpec=this.tableSpecs.get(key);if(tableSpec===undefined){throw new Error("존재하지 않는 테이블 스펙 요청 ".concat(key))}return tableSpec}},{key:"getNamesFromId",value:function getNamesFromId(entityId){var pluralized=_inflection.default.pluralize(entityId)===entityId?"".concat(entityId,"List"):_inflection.default.pluralize(entityId);return{fs:_inflection.default.dasherize(_inflection.default.underscore(entityId)).toLowerCase(),fsPlural:_inflection.default.dasherize(_inflection.default.underscore(pluralized)).toLowerCase(),camel:_inflection.default.camelize(entityId,true),camelPlural:_inflection.default.camelize(pluralized,true),capital:entityId,capitalPlural:pluralized,upper:entityId.toUpperCase(),constant:_inflection.default.underscore(entityId).toUpperCase()}}}]);return EntityManagerClass}();var EntityManager=new EntityManagerClass;
2
- //# sourceMappingURL=entity-manager.js.map
1
+ import { glob } from "node:fs/promises";
2
+ import inflection from "inflection";
3
+ import path from "path";
4
+ import { Entity } from "./entity.js";
5
+ import { Sonamu } from "../api/sonamu.js";
6
+ import { readFile } from "node:fs/promises";
7
+ import assert from "assert";
8
+ class EntityManagerClass {
9
+ entities = new Map();
10
+ modulePaths = new Map();
11
+ tableSpecs = new Map();
12
+ isAutoloaded = false;
13
+ // 경로 전달받아 모든 entity.json 파일 로드
14
+ async autoload(_ = false) {
15
+ if (this.isAutoloaded) {
16
+ return;
17
+ }
18
+ const pathPattern = path.join(Sonamu.apiRootPath, "/src/application/**/*.entity.json");
19
+ let count = 0;
20
+ for await (const file of glob(path.resolve(pathPattern))){
21
+ await this.register(JSON.parse((await readFile(file)).toString()));
22
+ count++;
23
+ }
24
+ // !doSilent &&
25
+ // console.log(
26
+ // chalk.gray(
27
+ // `[Loading] Loaded entity definitions from "*.entity.json" files: ${count} files.`
28
+ // )
29
+ // );
30
+ this.isAutoloaded = true;
31
+ }
32
+ async reload(doSilent = false) {
33
+ this.entities.clear();
34
+ this.modulePaths.clear();
35
+ this.tableSpecs.clear();
36
+ this.isAutoloaded = false;
37
+ return await this.autoload(doSilent);
38
+ }
39
+ async register(json) {
40
+ const entity = new Entity(json);
41
+ await entity.registerModulePaths();
42
+ entity.registerTableSpecs();
43
+ this.entities.set(json.id, entity);
44
+ }
45
+ get(entityId) {
46
+ const entity = this.entities.get(entityId);
47
+ if (entity === undefined) {
48
+ throw new Error(`존재하지 않는 Entity 요청 ${entityId}`);
49
+ }
50
+ return entity;
51
+ }
52
+ exists(entityId) {
53
+ const entity = this.entities.get(entityId);
54
+ return entity !== undefined;
55
+ }
56
+ getAllIds() {
57
+ return Array.from(EntityManager.entities.keys()).sort();
58
+ }
59
+ getAllParentIds() {
60
+ return this.getAllIds().filter((entityId)=>{
61
+ const entity = this.get(entityId);
62
+ return entity.parentId === undefined;
63
+ });
64
+ }
65
+ getChildrenIds(parentId) {
66
+ return this.getAllIds().filter((entityId)=>{
67
+ const entity = this.get(entityId);
68
+ return entity.parentId === parentId;
69
+ });
70
+ }
71
+ setModulePath(key, modulePath) {
72
+ // console.debug(chalk.cyan(`setModulePath :: ${key} :: ${modulePath}`));
73
+ this.modulePaths.set(key, modulePath);
74
+ }
75
+ getModulePath(key) {
76
+ const modulePath = this.modulePaths.get(key);
77
+ if (modulePath === undefined) {
78
+ throw new Error(`존재하지 않는 모듈 패스 요청 ${key}`);
79
+ }
80
+ return modulePath;
81
+ }
82
+ setTableSpec(tableSpec) {
83
+ this.tableSpecs.set(tableSpec.name, tableSpec);
84
+ }
85
+ getTableSpec(key) {
86
+ const tableSpec = this.tableSpecs.get(key);
87
+ if (tableSpec === undefined) {
88
+ throw new Error(`존재하지 않는 테이블 스펙 요청 ${key}`);
89
+ }
90
+ return tableSpec;
91
+ }
92
+ getNamesFromId(entityId) {
93
+ // entityId가 단복수 동형 단어인 경우 List 붙여서 생성
94
+ const pluralized = inflection.pluralize(entityId) === entityId ? `${entityId}List` : inflection.pluralize(entityId);
95
+ return {
96
+ fs: inflection.dasherize(inflection.underscore(entityId)).toLowerCase(),
97
+ fsPlural: inflection.dasherize(inflection.underscore(pluralized)).toLowerCase(),
98
+ camel: inflection.camelize(entityId, true),
99
+ camelPlural: inflection.camelize(pluralized, true),
100
+ capital: entityId,
101
+ capitalPlural: pluralized,
102
+ upper: entityId.toUpperCase(),
103
+ constant: inflection.underscore(entityId).toUpperCase()
104
+ };
105
+ }
106
+ getEntityIdFromPath(filePath) {
107
+ const matched = filePath.match(/application\/(.+)\//);
108
+ assert(matched?.[1]);
109
+ return inflection.camelize(matched[1].replace(/\-/g, "_"));
110
+ }
111
+ }
112
+ export const EntityManager = new EntityManagerClass();
113
+
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbnRpdHkvZW50aXR5LW1hbmFnZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2xvYiB9IGZyb20gXCJmcy9wcm9taXNlc1wiO1xuaW1wb3J0IGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIjtcbmltcG9ydCAqIGFzIF8gZnJvbSBcImxvZGFzaC1lc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IEVudGl0eSB9IGZyb20gXCIuL2VudGl0eVwiO1xuaW1wb3J0IHsgRW50aXR5SnNvbiB9IGZyb20gXCIuLi90eXBlcy90eXBlc1wiO1xuaW1wb3J0IHsgU29uYW11IH0gZnJvbSBcIi4uL2FwaS9zb25hbXVcIjtcbmltcG9ydCB7IHJlYWRGaWxlIH0gZnJvbSBcImZzL3Byb21pc2VzXCI7XG5pbXBvcnQgeyBBYnNvbHV0ZVBhdGggfSBmcm9tIFwiLi4vdXRpbHMvcGF0aC11dGlsc1wiO1xuaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCI7XG5cbmV4cG9ydCB0eXBlIEVudGl0eU5hbWVzUmVjb3JkID0gUmVjb3JkPFxuICB8IFwiZnNcIlxuICB8IFwiZnNQbHVyYWxcIlxuICB8IFwiY2FtZWxcIlxuICB8IFwiY2FtZWxQbHVyYWxcIlxuICB8IFwiY2FwaXRhbFwiXG4gIHwgXCJjYXBpdGFsUGx1cmFsXCJcbiAgfCBcInVwcGVyXCJcbiAgfCBcImNvbnN0YW50XCIsXG4gIHN0cmluZ1xuPjtcbnR5cGUgVGFibGVTcGVjID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHVuaXF1ZUluZGV4ZXM6IHsgbmFtZT86IHN0cmluZzsgY29sdW1uczogc3RyaW5nW10gfVtdO1xufTtcbmNsYXNzIEVudGl0eU1hbmFnZXJDbGFzcyB7XG4gIHByaXZhdGUgZW50aXRpZXM6IE1hcDxzdHJpbmcsIEVudGl0eT4gPSBuZXcgTWFwKCk7XG4gIHB1YmxpYyBtb2R1bGVQYXRoczogTWFwPHN0cmluZywgc3RyaW5nPiA9IG5ldyBNYXAoKTtcbiAgcHJpdmF0ZSB0YWJsZVNwZWNzOiBNYXA8c3RyaW5nLCBUYWJsZVNwZWM+ID0gbmV3IE1hcCgpO1xuICBwdWJsaWMgaXNBdXRvbG9hZGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLy8g6rK966GcIOyghOuLrOuwm+yVhCDrqqjrk6AgZW50aXR5Lmpzb24g7YyM7J28IOuhnOuTnFxuICBhc3luYyBhdXRvbG9hZChfOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICBpZiAodGhpcy5pc0F1dG9sb2FkZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcGF0aFBhdHRlcm4gPSBwYXRoLmpvaW4oXG4gICAgICBTb25hbXUuYXBpUm9vdFBhdGgsXG4gICAgICBcIi9zcmMvYXBwbGljYXRpb24vKiovKi5lbnRpdHkuanNvblwiXG4gICAgKTtcblxuICAgIGxldCBjb3VudCA9IDA7XG4gICAgZm9yIGF3YWl0IChjb25zdCBmaWxlIG9mIGdsb2IocGF0aC5yZXNvbHZlKHBhdGhQYXR0ZXJuISkpKSB7XG4gICAgICBhd2FpdCB0aGlzLnJlZ2lzdGVyKEpTT04ucGFyc2UoKGF3YWl0IHJlYWRGaWxlKGZpbGUpKS50b1N0cmluZygpKSk7XG4gICAgICBjb3VudCsrO1xuICAgIH1cbiAgICAvLyAhZG9TaWxlbnQgJiZcbiAgICAvLyAgIGNvbnNvbGUubG9nKFxuICAgIC8vICAgICBjaGFsay5ncmF5KFxuICAgIC8vICAgICAgIGBbTG9hZGluZ10gTG9hZGVkIGVudGl0eSBkZWZpbml0aW9ucyBmcm9tIFwiKi5lbnRpdHkuanNvblwiIGZpbGVzOiAke2NvdW50fSBmaWxlcy5gXG4gICAgLy8gICAgIClcbiAgICAvLyAgICk7XG5cbiAgICB0aGlzLmlzQXV0b2xvYWRlZCA9IHRydWU7XG4gIH1cblxuICBhc3luYyByZWxvYWQoZG9TaWxlbnQ6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIHRoaXMuZW50aXRpZXMuY2xlYXIoKTtcbiAgICB0aGlzLm1vZHVsZVBhdGhzLmNsZWFyKCk7XG4gICAgdGhpcy50YWJsZVNwZWNzLmNsZWFyKCk7XG4gICAgdGhpcy5pc0F1dG9sb2FkZWQgPSBmYWxzZTtcblxuICAgIHJldHVybiBhd2FpdCB0aGlzLmF1dG9sb2FkKGRvU2lsZW50KTtcbiAgfVxuXG4gIGFzeW5jIHJlZ2lzdGVyKGpzb246IEVudGl0eUpzb24pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBlbnRpdHkgPSBuZXcgRW50aXR5KGpzb24pO1xuICAgIGF3YWl0IGVudGl0eS5yZWdpc3Rlck1vZHVsZVBhdGhzKCk7XG4gICAgZW50aXR5LnJlZ2lzdGVyVGFibGVTcGVjcygpO1xuICAgIHRoaXMuZW50aXRpZXMuc2V0KGpzb24uaWQsIGVudGl0eSk7XG4gIH1cblxuICBnZXQoZW50aXR5SWQ6IHN0cmluZyk6IEVudGl0eSB7XG4gICAgY29uc3QgZW50aXR5ID0gdGhpcy5lbnRpdGllcy5nZXQoZW50aXR5SWQpO1xuICAgIGlmIChlbnRpdHkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGDsobTsnqztlZjsp4Ag7JWK64qUIEVudGl0eSDsmpTssq0gJHtlbnRpdHlJZH1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZW50aXR5O1xuICB9XG5cbiAgZXhpc3RzKGVudGl0eUlkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBlbnRpdHkgPSB0aGlzLmVudGl0aWVzLmdldChlbnRpdHlJZCk7XG4gICAgcmV0dXJuIGVudGl0eSAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0QWxsSWRzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbShFbnRpdHlNYW5hZ2VyLmVudGl0aWVzLmtleXMoKSkuc29ydCgpO1xuICB9XG5cbiAgZ2V0QWxsUGFyZW50SWRzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5nZXRBbGxJZHMoKS5maWx0ZXIoKGVudGl0eUlkKSA9PiB7XG4gICAgICBjb25zdCBlbnRpdHkgPSB0aGlzLmdldChlbnRpdHlJZCk7XG4gICAgICByZXR1cm4gZW50aXR5LnBhcmVudElkID09PSB1bmRlZmluZWQ7XG4gICAgfSk7XG4gIH1cblxuICBnZXRDaGlsZHJlbklkcyhwYXJlbnRJZDogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmdldEFsbElkcygpLmZpbHRlcigoZW50aXR5SWQpID0+IHtcbiAgICAgIGNvbnN0IGVudGl0eSA9IHRoaXMuZ2V0KGVudGl0eUlkKTtcbiAgICAgIHJldHVybiBlbnRpdHkucGFyZW50SWQgPT09IHBhcmVudElkO1xuICAgIH0pO1xuICB9XG5cbiAgc2V0TW9kdWxlUGF0aChrZXk6IHN0cmluZywgbW9kdWxlUGF0aDogc3RyaW5nKTogdm9pZCB7XG4gICAgLy8gY29uc29sZS5kZWJ1ZyhjaGFsay5jeWFuKGBzZXRNb2R1bGVQYXRoIDo6ICR7a2V5fSA6OiAke21vZHVsZVBhdGh9YCkpO1xuICAgIHRoaXMubW9kdWxlUGF0aHMuc2V0KGtleSwgbW9kdWxlUGF0aCk7XG4gIH1cblxuICBnZXRNb2R1bGVQYXRoKGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBtb2R1bGVQYXRoID0gdGhpcy5tb2R1bGVQYXRocy5nZXQoa2V5KTtcbiAgICBpZiAobW9kdWxlUGF0aCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYOyhtOyerO2VmOyngCDslYrripQg66qo65OIIO2MqOyKpCDsmpTssq0gJHtrZXl9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1vZHVsZVBhdGg7XG4gIH1cblxuICBzZXRUYWJsZVNwZWModGFibGVTcGVjOiBUYWJsZVNwZWMpIHtcbiAgICB0aGlzLnRhYmxlU3BlY3Muc2V0KHRhYmxlU3BlYy5uYW1lLCB0YWJsZVNwZWMpO1xuICB9XG5cbiAgZ2V0VGFibGVTcGVjKGtleTogc3RyaW5nKTogVGFibGVTcGVjIHtcbiAgICBjb25zdCB0YWJsZVNwZWMgPSB0aGlzLnRhYmxlU3BlY3MuZ2V0KGtleSk7XG4gICAgaWYgKHRhYmxlU3BlYyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYOyhtOyerO2VmOyngCDslYrripQg7YWM7J2067iUIOyKpO2OmSDsmpTssq0gJHtrZXl9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRhYmxlU3BlYztcbiAgfVxuXG4gIGdldE5hbWVzRnJvbUlkKGVudGl0eUlkOiBzdHJpbmcpOiBFbnRpdHlOYW1lc1JlY29yZCB7XG4gICAgLy8gZW50aXR5SWTqsIAg64uo67O17IiYIOuPme2YlSDri6jslrTsnbgg6rK97JqwIExpc3Qg67aZ7Jes7IScIOyDneyEsVxuICAgIGNvbnN0IHBsdXJhbGl6ZWQgPVxuICAgICAgaW5mbGVjdGlvbi5wbHVyYWxpemUoZW50aXR5SWQpID09PSBlbnRpdHlJZFxuICAgICAgICA/IGAke2VudGl0eUlkfUxpc3RgXG4gICAgICAgIDogaW5mbGVjdGlvbi5wbHVyYWxpemUoZW50aXR5SWQpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGZzOiBpbmZsZWN0aW9uLmRhc2hlcml6ZShpbmZsZWN0aW9uLnVuZGVyc2NvcmUoZW50aXR5SWQpKS50b0xvd2VyQ2FzZSgpLFxuICAgICAgZnNQbHVyYWw6IGluZmxlY3Rpb25cbiAgICAgICAgLmRhc2hlcml6ZShpbmZsZWN0aW9uLnVuZGVyc2NvcmUocGx1cmFsaXplZCkpXG4gICAgICAgIC50b0xvd2VyQ2FzZSgpLFxuICAgICAgY2FtZWw6IGluZmxlY3Rpb24uY2FtZWxpemUoZW50aXR5SWQsIHRydWUpLFxuICAgICAgY2FtZWxQbHVyYWw6IGluZmxlY3Rpb24uY2FtZWxpemUocGx1cmFsaXplZCwgdHJ1ZSksXG4gICAgICBjYXBpdGFsOiBlbnRpdHlJZCxcbiAgICAgIGNhcGl0YWxQbHVyYWw6IHBsdXJhbGl6ZWQsXG4gICAgICB1cHBlcjogZW50aXR5SWQudG9VcHBlckNhc2UoKSxcbiAgICAgIGNvbnN0YW50OiBpbmZsZWN0aW9uLnVuZGVyc2NvcmUoZW50aXR5SWQpLnRvVXBwZXJDYXNlKCksXG4gICAgfTtcbiAgfVxuXG4gIGdldEVudGl0eUlkRnJvbVBhdGgoZmlsZVBhdGg6IEFic29sdXRlUGF0aCk6IHN0cmluZyB7XG4gICAgY29uc3QgbWF0Y2hlZCA9IGZpbGVQYXRoLm1hdGNoKC9hcHBsaWNhdGlvblxcLyguKylcXC8vKTtcbiAgICBhc3NlcnQobWF0Y2hlZD8uWzFdKTtcbiAgICByZXR1cm4gaW5mbGVjdGlvbi5jYW1lbGl6ZShtYXRjaGVkWzFdLnJlcGxhY2UoL1xcLS9nLCBcIl9cIikpO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBFbnRpdHlNYW5hZ2VyID0gbmV3IEVudGl0eU1hbmFnZXJDbGFzcygpO1xuIl0sIm5hbWVzIjpbImdsb2IiLCJpbmZsZWN0aW9uIiwicGF0aCIsIkVudGl0eSIsIlNvbmFtdSIsInJlYWRGaWxlIiwiYXNzZXJ0IiwiRW50aXR5TWFuYWdlckNsYXNzIiwiZW50aXRpZXMiLCJNYXAiLCJtb2R1bGVQYXRocyIsInRhYmxlU3BlY3MiLCJpc0F1dG9sb2FkZWQiLCJhdXRvbG9hZCIsIl8iLCJwYXRoUGF0dGVybiIsImpvaW4iLCJhcGlSb290UGF0aCIsImNvdW50IiwiZmlsZSIsInJlc29sdmUiLCJyZWdpc3RlciIsIkpTT04iLCJwYXJzZSIsInRvU3RyaW5nIiwicmVsb2FkIiwiZG9TaWxlbnQiLCJjbGVhciIsImpzb24iLCJlbnRpdHkiLCJyZWdpc3Rlck1vZHVsZVBhdGhzIiwicmVnaXN0ZXJUYWJsZVNwZWNzIiwic2V0IiwiaWQiLCJnZXQiLCJlbnRpdHlJZCIsInVuZGVmaW5lZCIsIkVycm9yIiwiZXhpc3RzIiwiZ2V0QWxsSWRzIiwiQXJyYXkiLCJmcm9tIiwiRW50aXR5TWFuYWdlciIsImtleXMiLCJzb3J0IiwiZ2V0QWxsUGFyZW50SWRzIiwiZmlsdGVyIiwicGFyZW50SWQiLCJnZXRDaGlsZHJlbklkcyIsInNldE1vZHVsZVBhdGgiLCJrZXkiLCJtb2R1bGVQYXRoIiwiZ2V0TW9kdWxlUGF0aCIsInNldFRhYmxlU3BlYyIsInRhYmxlU3BlYyIsIm5hbWUiLCJnZXRUYWJsZVNwZWMiLCJnZXROYW1lc0Zyb21JZCIsInBsdXJhbGl6ZWQiLCJwbHVyYWxpemUiLCJmcyIsImRhc2hlcml6ZSIsInVuZGVyc2NvcmUiLCJ0b0xvd2VyQ2FzZSIsImZzUGx1cmFsIiwiY2FtZWwiLCJjYW1lbGl6ZSIsImNhbWVsUGx1cmFsIiwiY2FwaXRhbCIsImNhcGl0YWxQbHVyYWwiLCJ1cHBlciIsInRvVXBwZXJDYXNlIiwiY29uc3RhbnQiLCJnZXRFbnRpdHlJZEZyb21QYXRoIiwiZmlsZVBhdGgiLCJtYXRjaGVkIiwibWF0Y2giLCJyZXBsYWNlIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxJQUFJLFFBQVEsbUJBQWM7QUFDbkMsT0FBT0MsZ0JBQWdCLGFBQWE7QUFFcEMsT0FBT0MsVUFBVSxPQUFPO0FBQ3hCLFNBQVNDLE1BQU0sUUFBUSxjQUFXO0FBRWxDLFNBQVNDLE1BQU0sUUFBUSxtQkFBZ0I7QUFDdkMsU0FBU0MsUUFBUSxRQUFRLG1CQUFjO0FBRXZDLE9BQU9DLFlBQVksU0FBUztBQWlCNUIsTUFBTUM7SUFDSUMsV0FBZ0MsSUFBSUMsTUFBTTtJQUMzQ0MsY0FBbUMsSUFBSUQsTUFBTTtJQUM1Q0UsYUFBcUMsSUFBSUYsTUFBTTtJQUNoREcsZUFBd0IsTUFBTTtJQUVyQywrQkFBK0I7SUFDL0IsTUFBTUMsU0FBU0MsSUFBYSxLQUFLLEVBQUU7UUFDakMsSUFBSSxJQUFJLENBQUNGLFlBQVksRUFBRTtZQUNyQjtRQUNGO1FBQ0EsTUFBTUcsY0FBY2IsS0FBS2MsSUFBSSxDQUMzQlosT0FBT2EsV0FBVyxFQUNsQjtRQUdGLElBQUlDLFFBQVE7UUFDWixXQUFXLE1BQU1DLFFBQVFuQixLQUFLRSxLQUFLa0IsT0FBTyxDQUFDTCxjQUFnQjtZQUN6RCxNQUFNLElBQUksQ0FBQ00sUUFBUSxDQUFDQyxLQUFLQyxLQUFLLENBQUMsQUFBQyxDQUFBLE1BQU1sQixTQUFTYyxLQUFJLEVBQUdLLFFBQVE7WUFDOUROO1FBQ0Y7UUFDQSxlQUFlO1FBQ2YsaUJB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
@@ -1,2 +1,210 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:Object.getOwnPropertyDescriptor(all,name).get})}_export(exports,{get i(){return i},get p(){return p}});var _inflection=/*#__PURE__*/_interop_require_default(require("inflection"));var _model=require("../utils/model");function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _interop_require_default(obj){return obj&&obj.__esModule?obj:{default:obj}}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}var p={integer:integer,bigInteger:bigInteger,text:text,string:string,float:float,double:double,decimal:decimal,boolean:boolean,date:date,dateTime:dateTime,time:time,timestamp:timestamp,json:json,uuid:uuid,enums:enums,virtual:virtual,relationOneToOne:relationOneToOne,relationBelongsToOne:relationBelongsToOne,relationHasMany:relationHasMany,relationManyToMany:relationManyToMany};function integer(name,option){return _object_spread({name:name,type:"integer"},option)}function bigInteger(name,option){return _object_spread({name:name,type:"bigInteger"},option)}function text(name,option){return _object_spread({name:name,type:"text"},option)}function string(name,option){return _object_spread({name:name,type:"string"},option)}function float(name,option){return _object_spread({name:name,type:"float",precision:8,scale:2},option)}function double(name,option){return _object_spread({name:name,type:"double",precision:8,scale:2},option)}function decimal(name,option){return _object_spread({name:name,type:"decimal",precision:8,scale:2},option)}function boolean(name,option){return _object_spread({name:name,type:"boolean"},option)}function date(name,option){if((option===null||option===void 0?void 0:option.now)===true){delete option.now;option.dbDefault="CURRENT_TIMESTAMP"}return _object_spread({name:name,type:"date"},option)}function dateTime(name,option){if((option===null||option===void 0?void 0:option.now)===true){delete option.now;option.dbDefault="CURRENT_TIMESTAMP"}return _object_spread({name:name,type:"datetime"},option)}function time(name,option){if((option===null||option===void 0?void 0:option.now)===true){delete option.now;option.dbDefault="CURRENT_TIMESTAMP"}return _object_spread({name:name,type:"time"},option)}function timestamp(name,option){if((option===null||option===void 0?void 0:option.now)===true){delete option.now;option.dbDefault="CURRENT_TIMESTAMP"}return _object_spread({name:name,type:"timestamp"},option)}function json(name,option){return _object_spread({name:name,type:"json"},option)}function uuid(name,option){return _object_spread({name:name,type:"uuid"},option)}function enums(name,option){var _option_id;return _object_spread({name:name,type:"enum",id:(_option_id=option.id)!==null&&_option_id!==void 0?_option_id:"$Model".concat(_inflection.default.camelize(name))},option)}function virtual(name,option){return _object_spread({name:name,type:"virtual"},option)}function relationOneToOne(name,option){return _object_spread({name:name,type:"relation",relationType:"OneToOne"},option)}function relationBelongsToOne(name,option){var _option_useConstraint;option.useConstraint=(_option_useConstraint=option.useConstraint)!==null&&_option_useConstraint!==void 0?_option_useConstraint:true;return _object_spread({name:name,type:"relation",relationType:"BelongsToOne"},option)}function relationHasMany(name,option){return _object_spread({name:name,type:"relation",relationType:"HasMany"},option)}function relationManyToMany(name,option){return _object_spread({name:name,type:"relation",relationType:"ManyToMany"},option)}var i={index:index,unique:unique};function index(columns){return{type:"index",columns:(0,_model.asArray)(columns)}}function unique(columns){return{type:"unique",columns:(0,_model.asArray)(columns)}}
2
- //# sourceMappingURL=entity-utils.js.map
1
+ import inflection from "inflection";
2
+ import { asArray } from "../utils/model.js";
3
+ export const p = {
4
+ integer,
5
+ bigInteger,
6
+ text,
7
+ string,
8
+ float,
9
+ double,
10
+ decimal,
11
+ boolean,
12
+ date,
13
+ dateTime,
14
+ time,
15
+ timestamp,
16
+ json,
17
+ uuid,
18
+ enums,
19
+ virtual,
20
+ relationOneToOne,
21
+ relationBelongsToOne,
22
+ relationHasMany,
23
+ relationManyToMany
24
+ };
25
+ function integer(name, option) {
26
+ return {
27
+ name,
28
+ type: "integer",
29
+ ...option
30
+ };
31
+ }
32
+ function bigInteger(name, option) {
33
+ return {
34
+ name,
35
+ type: "bigInteger",
36
+ ...option
37
+ };
38
+ }
39
+ function text(name, option) {
40
+ return {
41
+ name,
42
+ type: "text",
43
+ ...option
44
+ };
45
+ }
46
+ function string(name, option) {
47
+ return {
48
+ name,
49
+ type: "string",
50
+ ...option
51
+ };
52
+ }
53
+ function float(name, option) {
54
+ return {
55
+ name,
56
+ type: "float",
57
+ precision: 8,
58
+ scale: 2,
59
+ ...option
60
+ };
61
+ }
62
+ function double(name, option) {
63
+ return {
64
+ name,
65
+ type: "double",
66
+ precision: 8,
67
+ scale: 2,
68
+ ...option
69
+ };
70
+ }
71
+ function decimal(name, option) {
72
+ return {
73
+ name,
74
+ type: "decimal",
75
+ precision: 8,
76
+ scale: 2,
77
+ ...option
78
+ };
79
+ }
80
+ function boolean(name, option) {
81
+ return {
82
+ name,
83
+ type: "boolean",
84
+ ...option
85
+ };
86
+ }
87
+ function date(name, option) {
88
+ if (option?.now === true) {
89
+ delete option.now;
90
+ option.dbDefault = "CURRENT_TIMESTAMP";
91
+ }
92
+ return {
93
+ name,
94
+ type: "date",
95
+ ...option
96
+ };
97
+ }
98
+ function dateTime(name, option) {
99
+ if (option?.now === true) {
100
+ delete option.now;
101
+ option.dbDefault = "CURRENT_TIMESTAMP";
102
+ }
103
+ return {
104
+ name,
105
+ type: "datetime",
106
+ ...option
107
+ };
108
+ }
109
+ function time(name, option) {
110
+ if (option?.now === true) {
111
+ delete option.now;
112
+ option.dbDefault = "CURRENT_TIMESTAMP";
113
+ }
114
+ return {
115
+ name,
116
+ type: "time",
117
+ ...option
118
+ };
119
+ }
120
+ function timestamp(name, option) {
121
+ if (option?.now === true) {
122
+ delete option.now;
123
+ option.dbDefault = "CURRENT_TIMESTAMP";
124
+ }
125
+ return {
126
+ name,
127
+ type: "timestamp",
128
+ ...option
129
+ };
130
+ }
131
+ function json(name, option) {
132
+ return {
133
+ name,
134
+ type: "json",
135
+ ...option
136
+ };
137
+ }
138
+ function uuid(name, option) {
139
+ return {
140
+ name,
141
+ type: "uuid",
142
+ ...option
143
+ };
144
+ }
145
+ function enums(name, option) {
146
+ return {
147
+ name,
148
+ type: "enum",
149
+ id: option.id ?? `$Model${inflection.camelize(name)}`,
150
+ ...option
151
+ };
152
+ }
153
+ function virtual(name, option) {
154
+ return {
155
+ name,
156
+ type: "virtual",
157
+ ...option
158
+ };
159
+ }
160
+ function relationOneToOne(name, option) {
161
+ return {
162
+ name,
163
+ type: "relation",
164
+ relationType: "OneToOne",
165
+ ...option
166
+ };
167
+ }
168
+ function relationBelongsToOne(name, option) {
169
+ option.useConstraint = option.useConstraint ?? true;
170
+ return {
171
+ name,
172
+ type: "relation",
173
+ relationType: "BelongsToOne",
174
+ ...option
175
+ };
176
+ }
177
+ function relationHasMany(name, option) {
178
+ return {
179
+ name,
180
+ type: "relation",
181
+ relationType: "HasMany",
182
+ ...option
183
+ };
184
+ }
185
+ function relationManyToMany(name, option) {
186
+ return {
187
+ name,
188
+ type: "relation",
189
+ relationType: "ManyToMany",
190
+ ...option
191
+ };
192
+ }
193
+ export const i = {
194
+ index,
195
+ unique
196
+ };
197
+ function index(columns) {
198
+ return {
199
+ type: "index",
200
+ columns: asArray(columns)
201
+ };
202
+ }
203
+ function unique(columns) {
204
+ return {
205
+ type: "unique",
206
+ columns: asArray(columns)
207
+ };
208
+ }
209
+
210
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbnRpdHkvZW50aXR5LXV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCI7XG5pbXBvcnQge1xuICBCZWxvbmdzVG9PbmVSZWxhdGlvblByb3AsXG4gIEJpZ0ludGVnZXJQcm9wLFxuICBCb29sZWFuUHJvcCxcbiAgRGF0ZVByb3AsXG4gIERhdGVUaW1lUHJvcCxcbiAgRGVjaW1hbFByb3AsXG4gIERpc3RyaWJ1dGl2ZU9taXQsXG4gIERvdWJsZVByb3AsXG4gIEVudW1Qcm9wLFxuICBGbG9hdFByb3AsXG4gIEhhc01hbnlSZWxhdGlvblByb3AsXG4gIEludGVnZXJQcm9wLFxuICBKc29uUHJvcCxcbiAgTWFueVRvTWFueVJlbGF0aW9uUHJvcCxcbiAgT25lVG9PbmVSZWxhdGlvblByb3AsXG4gIEVudGl0eUluZGV4LFxuICBTdHJpbmdQcm9wLFxuICBUZXh0UHJvcCxcbiAgVGltZVByb3AsXG4gIFRpbWVzdGFtcFByb3AsXG4gIFV1aWRQcm9wLFxuICBWaXJ0dWFsUHJvcCxcbn0gZnJvbSBcIi4uL3R5cGVzL3R5cGVzXCI7XG5pbXBvcnQgeyBhc0FycmF5IH0gZnJvbSBcIi4uL3V0aWxzL21vZGVsXCI7XG5cbmV4cG9ydCBjb25zdCBwID0ge1xuICBpbnRlZ2VyLFxuICBiaWdJbnRlZ2VyLFxuICB0ZXh0LFxuICBzdHJpbmcsXG4gIGZsb2F0LFxuICBkb3VibGUsXG4gIGRlY2ltYWwsXG4gIGJvb2xlYW4sXG4gIGRhdGUsXG4gIGRhdGVUaW1lLFxuICB0aW1lLFxuICB0aW1lc3RhbXAsXG4gIGpzb24sXG4gIHV1aWQsXG4gIGVudW1zLFxuICB2aXJ0dWFsLFxuICByZWxhdGlvbk9uZVRvT25lLFxuICByZWxhdGlvbkJlbG9uZ3NUb09uZSxcbiAgcmVsYXRpb25IYXNNYW55LFxuICByZWxhdGlvbk1hbnlUb01hbnksXG59O1xuXG5mdW5jdGlvbiBpbnRlZ2VyKFxuICBuYW1lOiBzdHJpbmcsXG4gIG9wdGlvbj86IE9taXQ8SW50ZWdlclByb3AsIFwibmFtZVwiIHwgXCJ0eXBlXCI+XG4pOiBJbnRlZ2VyUHJvcCB7XG4gIHJldHVybiB7XG4gICAgbmFtZSxcbiAgICB0eXBlOiBcImludGVnZXJcIixcbiAgICAuLi5vcHRpb24sXG4gIH07XG59XG5mdW5jdGlvbiBiaWdJbnRlZ2VyKFxuICBuYW1lOiBzdHJpbmcsXG4gIG9wdGlvbj86IE9taXQ8QmlnSW50ZWdlclByb3AsIFwibmFtZVwiIHwgXCJ0eXBlXCI+XG4pOiBCaWdJbnRlZ2VyUHJvcCB7XG4gIHJldHVybiB7XG4gICAgbmFtZSxcbiAgICB0eXBlOiBcImJpZ0ludGVnZXJcIixcbiAgICAuLi5vcHRpb24sXG4gIH07XG59XG5mdW5jdGlvbiB0ZXh0KG5hbWU6IHN0cmluZywgb3B0aW9uOiBPbWl0PFRleHRQcm9wLCBcIm5hbWVcIiB8IFwidHlwZVwiPik6IFRleHRQcm9wIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lLFxuICAgIHR5cGU6IFwidGV4dFwiLFxuICAgIC4uLm9wdGlvbixcbiAgfTtcbn1cbmZ1bmN0aW9uIHN0cmluZyhcbiAgbmFtZTogc3RyaW5nLFxuICBvcHRpb246IE9taXQ8U3RyaW5nUHJvcCwgXCJuYW1lXCIgfCBcInR5cGVcIj5cbik6IFN0cmluZ1Byb3Age1xuICByZXR1cm4ge1xuICAgIG5hbWUsXG4gICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAuLi5vcHRpb24sXG4gIH07XG59XG5mdW5jdGlvbiBmbG9hdChcbiAgbmFtZTogc3RyaW5nLFxuICBvcHRpb24/OiBPbWl0PEZsb2F0UHJvcCwgXCJuYW1lXCIgfCBcInR5cGVcIj5cbik6IEZsb2F0UHJvcCB7XG4gIHJldHVybiB7XG4gICAgbmFtZSxcbiAgICB0eXBlOiBcImZsb2F0XCIsXG4gICAgcHJlY2lzaW9uOiA4LFxuICAgIHNjYWxlOiAyLFxuICAgIC4uLm9wdGlvbixcbiAgfTtcbn1cbmZ1bmN0aW9uIGRvdWJsZShcbiAgbmFtZTogc3RyaW5nLFxuICBvcHRpb24/OiBPbWl0PERvdWJsZVByb3AsIFwibmFtZVwiIHwgXCJ0eXBlXCI+XG4pOiBEb3VibGVQcm9wIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lLFxuICAgIHR5cGU6IFwiZG91YmxlXCIsXG4gICAgcHJlY2lzaW9uOiA4LFxuICAgIHNjYWxlOiAyLFxuICAgIC4uLm9wdGlvbixcbiAgfTtcbn1cbmZ1bmN0aW9uIGRlY2ltYWwoXG4gIG5hbWU6IHN0cmluZyxcbiAgb3B0aW9uPzogT21pdDxEZWNpbWFsUHJvcCwgXCJuYW1lXCIgfCBcInR5cGVcIj5cbik6IERlY2ltYWxQcm9wIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lLFxuICAgIHR5cGU6IFwiZGVjaW1hbFwiLFxuICAgIHByZWNpc2lvbjogOCxcbiAgICBzY2FsZTogMixcbiAgICAuLi5vcHRpb24sXG4gIH07XG59XG5mdW5jdGlvbiBib29sZWFuKFxuICBuYW1lOiBzdHJpbmcsXG4gIG9wdGlvbj86IE9taXQ8Qm9vbGVhblByb3AsIFwibmFtZVwiIHwgXCJ0eXBlXCI+XG4pOiBCb29sZWFuUHJvcCB7XG4gIHJldHVybiB7XG4gICAgbmFtZSxcbiAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAuLi5vcHRpb24sXG4gIH07XG59XG5mdW5jdGlvbiBkYXRlKFxuICBuYW1lOiBzdHJpbmcsXG4gIG9wdGlvbj86IE9taXQ8RGF0ZVByb3AsIFwibmFtZVwiIHwgXCJ0eXBlXCI+ICYgeyBub3c/OiB0cnVlIH1cbik6IERhdGVQcm9wIHtcbiAgaWYgKG9wdGlvbj8ubm93ID09PSB0cnVlKSB7XG4gICAgZGVsZXRlIG9wdGlvbi5ub3c7XG4gICAgb3B0aW9uLmRiRGVmYXVsdCA9IFwiQ1VSUkVOVF9USU1FU1RBTVBcIjtcbiAgfVxuICByZXR1cm4ge1xuICAgIG5hbWUsXG4gICAgdHlwZTogXCJkYXRlXCIsXG4gICAgLi4ub3B0aW9uLFxuICB9O1xufVxuZnVuY3Rpb24gZGF0ZVRpbWUoXG4gIG5hbWU6IHN0cmluZyxcbiAgb3B0aW9uPzogT21pdDxEYXRlVGltZVByb3AsIFwibmFtZVwiIHwgXCJ0eXBlXCI+ICYgeyBub3c/OiB0cnVlIH1cbik6IERhdGVUaW1lUHJvcCB7XG4gIGlmIChvcHRpb24/Lm5vdyA9PT0gdHJ1ZSkge1xuICAgIGRlbGV0ZSBvcHRpb24ubm93O1xuICAgIG9wdGlvbi5kYkRlZmF1bHQgPSBcIkNVUlJFTlRfVElNRVNUQU1QXCI7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBuYW1lLFxuICAgIHR5cGU6IFwiZGF0ZXRpbWVcIixcbiAgICAuLi5vcHRpb24sXG4gIH07XG59XG5mdW5jdGlvbiB0aW1lKFxuICBuYW1lOiBzdHJpbmcsXG4gIG9wdGlvbj86IE9taXQ8VGltZVByb3AsIFwibmFtZVwiIHwgXCJ0eXBlXCI+ICYgeyBub3c/OiB0cnVlIH1cbik6IFRpbWVQcm9wIHtcbiAgaWYgKG9wdGlvbj8ubm93ID09PSB0cnVlKSB7XG4gICAgZGVsZXRlIG9wdGlvbi5ub3c7XG4gICAgb3B0aW9uLmRiRGVmYXVsdCA9IFwiQ1VSUkVOVF9USU1FU1RBTVBcIjtcbiAgfVxuICByZXR1cm4ge1xuICAgIG5hbWUsXG4gICAgdHlwZTogXCJ0aW1lXCIsXG4gICAgLi4ub3B0aW9uLFxuICB9O1xufVxuZnVuY3Rpb24gdGltZXN0YW1wKFxuICBuYW1lOiBzdHJpbmcsXG4gIG9wdGlvbj86IE9taXQ8VGltZXN0YW1wUHJvcCwgXCJuYW1lXCIgfCBcInR5cGVcIj4gJiB7IG5vdz86IHRydWUgfVxuKTogVGltZXN0YW1wUHJvcCB7XG4gIGlmIChvcHRpb24/Lm5vdyA9PT0gdHJ1ZSkge1xuICAgIGRlbGV0ZSBvcHRpb24ubm93O1xuICAgIG9wdGlvbi5kYkRlZmF1bHQgPSBcIkNVUlJFTlRfVElNRVNUQU1QXCI7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBuYW1lLFxuICAgIHR5cGU6IFwidGltZXN0YW1wXCIsXG4gICAgLi4ub3B0aW9uLFxuICB9O1xufVxuZnVuY3Rpb24ganNvbihuYW1lOiBzdHJpbmcsIG9wdGlvbjogT21pdDxKc29uUHJvcCwgXCJuYW1lXCIgfCBcInR5cGVcIj4pOiBKc29uUHJvcCB7XG4gIHJldHVybiB7XG4gICAgbmFtZSxcbiAgICB0eXBlOiBcImpzb25cIixcbiAgICAuLi5vcHRpb24sXG4gIH07XG59XG5mdW5jdGlvbiB1dWlkKG5hbWU6IHN0cmluZywgb3B0aW9uOiBPbWl0PFV1aWRQcm9wLCBcIm5hbWVcIiB8IFwidHlwZVwiPik6IFV1aWRQcm9wIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lLFxuICAgIHR5cGU6IFwidXVpZFwiLFxuICAgIC4uLm9wdGlvbixcbiAgfTtcbn1cbmZ1bmN0aW9uIGVudW1zKFxuICBuYW1lOiBzdHJpbmcsXG4gIG9wdGlvbjogT21pdDxFbnVtUHJvcCwgXCJuYW1lXCIgfCBcInR5cGVcIiB8IFwiaWRcIj4gJiB7IGlkPzogc3RyaW5nIH1cbik6IEVudW1Qcm9wIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lLFxuICAgIHR5cGU6IFwiZW51bVwiLFxuICAgIGlkOiBvcHRpb24uaWQgPz8gYCRNb2RlbCR7aW5mbGVjdGlvbi5jYW1lbGl6ZShuYW1lKX1gLFxuICAgIC4uLm9wdGlvbixcbiAgfTtcbn1cbmZ1bmN0aW9uIHZpcnR1YWwoXG4gIG5hbWU6IHN0cmluZyxcbiAgb3B0aW9uOiBPbWl0PFZpcnR1YWxQcm9wLCBcIm5hbWVcIiB8IFwidHlwZVwiIHwgXCJkYkRlZmF1bHRcIiB8IFwidG9GaWx0ZXJcIj5cbik6IFZpcnR1YWxQcm9wIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lLFxuICAgIHR5cGU6IFwidmlydHVhbFwiLFxuICAgIC4uLm9wdGlvbixcbiAgfTtcbn1cbmZ1bmN0aW9uIHJlbGF0aW9uT25lVG9PbmUoXG4gIG5hbWU6IHN0cmluZyxcbiAgb3B0aW9uOiBEaXN0cmlidXRpdmVPbWl0PFxuICAgIE9uZVRvT25lUmVsYXRpb25Qcm9wLFxuICAgIFwibmFtZVwiIHwgXCJ0eXBlXCIgfCBcInJlbGF0aW9uVHlwZVwiXG4gID5cbik6IE9uZVRvT25lUmVsYXRpb25Qcm9wIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lLFxuICAgIHR5cGU6IFwicmVsYXRpb25cIixcbiAgICByZWxhdGlvblR5cGU6IFwiT25lVG9PbmVcIixcbiAgICAuLi5vcHRpb24sXG4gIH07XG59XG5mdW5jdGlvbiByZWxhdGlvbkJlbG9uZ3NUb09uZShcbiAgbmFtZTogc3RyaW5nLFxuICBvcHRpb246IE9taXQ8QmVsb25nc1RvT25lUmVsYXRpb25Qcm9wLCBcIm5hbWVcIiB8IFwidHlwZVwiIHwgXCJyZWxhdGlvblR5cGVcIj5cbik6IEJlbG9uZ3NUb09uZVJlbGF0aW9uUHJvcCB7XG4gIG9wdGlvbi51c2VDb25zdHJhaW50ID0gKG9wdGlvbi51c2VDb25zdHJhaW50ID8/IHRydWUpIGFzIGZhbHNlO1xuICByZXR1cm4ge1xuICAgIG5hbWUsXG4gICAgdHlwZTogXCJyZWxhdGlvblwiLFxuICAgIHJlbGF0aW9uVHlwZTogXCJCZWxvbmdzVG9PbmVcIixcbiAgICAuLi5vcHRpb24sXG4gIH07XG59XG5mdW5jdGlvbiByZWxhdGlvbkhhc01hbnkoXG4gIG5hbWU6IHN0cmluZyxcbiAgb3B0aW9uOiBPbWl0PEhhc01hbnlSZWxhdGlvblByb3AsIFwibmFtZVwiIHwgXCJ0eXBlXCIgfCBcInJlbGF0aW9uVHlwZVwiPlxuKTogSGFzTWFueVJlbGF0aW9uUHJvcCB7XG4gIHJldHVybiB7XG4gICAgbmFtZSxcbiAgICB0eXBlOiBcInJlbGF0aW9uXCIsXG4gICAgcmVsYXRpb25UeXBlOiBcIkhhc01hbnlcIixcbiAgICAuLi5vcHRpb24sXG4gIH07XG59XG5mdW5jdGlvbiByZWxhdGlvbk1hbnlUb01hbnkoXG4gIG5hbWU6IHN0cmluZyxcbiAgb3B0aW9uOiBPbWl0PE1hbnlUb01hbnlSZWxhdGlvblByb3AsIFwibmFtZVwiIHwgXCJ0eXBlXCIgfCBcInJlbGF0aW9uVHlwZVwiPlxuKTogTWFueVRvTWFueVJlbGF0aW9uUHJvcCB7XG4gIHJldHVybiB7XG4gICAgbmFtZSxcbiAgICB0eXBlOiBcInJlbGF0aW9uXCIsXG4gICAgcmVsYXRpb25UeXBlOiBcIk1hbnlUb01hbnlcIixcbiAgICAuLi5vcHRpb24sXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBpID0ge1xuICBpbmRleCxcbiAgdW5pcXVlLFxufTtcblxuZnVuY3Rpb24gaW5kZXgoY29sdW1uczogc3RyaW5nIHwgc3RyaW5nW10pOiBFbnRpdHlJbmRleCB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogXCJpbmRleFwiLFxuICAgIGNvbHVtbnM6IGFzQXJyYXkoY29sdW1ucyksXG4gIH07XG59XG5cbmZ1bmN0aW9uIHVuaXF1ZShjb2x1bW5zOiBzdHJpbmcgfCBzdHJpbmdbXSk6IEVudGl0eUluZGV4IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBcInVuaXF1ZVwiLFxuICAgIGNvbHVtbnM6IGFzQXJyYXkoY29sdW1ucyksXG4gIH07XG59XG4iXSwibmFtZXMiOlsiaW5mbGVjdGlvbiIsImFzQXJyYXkiLCJwIiwiaW50ZWdlciIsImJpZ0ludGVnZXIiLCJ0ZXh0Iiwic3RyaW5nIiwiZmxvYXQiLCJkb3VibGUiLCJkZWNpbWFsIiwiYm9vbGVhbiIsImRhdGUiLCJkYXRlVGltZSIsInRpbWUiLCJ0aW1lc3RhbXAiLCJqc29uIiwidXVpZCIsImVudW1zIiwidmlydHVhbCIsInJlbGF0aW9uT25lVG9PbmUiLCJyZWxhdGlvbkJlbG9uZ3NUb09uZSIsInJlbGF0aW9uSGFzTWFueSIsInJlbGF0aW9uTWFueVRvTWFueSIsIm5hbWUiLCJvcHRpb24iLCJ0eXBlIiwicHJlY2lzaW9uIiwic2NhbGUiLCJub3ciLCJkYkRlZmF1bHQiLCJpZCIsImNhbWVsaXplIiwicmVsYXRpb25UeXBlIiwidXNlQ29uc3RyYWludCIsImkiLCJpbmRleCIsInVuaXF1ZSIsImNvbHVtbnMiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLGdCQUFnQixhQUFhO0FBeUJwQyxTQUFTQyxPQUFPLFFBQVEsb0JBQWlCO0FBRXpDLE9BQU8sTUFBTUMsSUFBSTtJQUNmQztJQUNBQztJQUNBQztJ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
@@ -1 +1 @@
1
- {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../src/entity/entity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../src/entity/entity.ts"],"names":[],"mappings":"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"}