sonamu 0.5.7 → 0.7.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 (529) hide show
  1. package/.swcrc.project-default +18 -0
  2. package/bin/cli.js +24 -0
  3. package/dist/ai/agents/agent.d.ts +11 -0
  4. package/dist/ai/agents/agent.d.ts.map +1 -0
  5. package/dist/ai/agents/agent.js +65 -0
  6. package/dist/ai/agents/index.d.ts +3 -0
  7. package/dist/ai/agents/index.d.ts.map +1 -0
  8. package/dist/ai/agents/index.js +4 -0
  9. package/dist/ai/agents/types.d.ts +43 -0
  10. package/dist/ai/agents/types.d.ts.map +1 -0
  11. package/dist/ai/agents/types.js +3 -0
  12. package/dist/ai/index.d.ts +2 -0
  13. package/dist/ai/index.d.ts.map +1 -0
  14. package/dist/ai/index.js +3 -0
  15. package/dist/ai/providers/rtzr/api.d.ts +22 -0
  16. package/dist/ai/providers/rtzr/api.d.ts.map +1 -0
  17. package/dist/ai/providers/rtzr/api.js +28 -0
  18. package/dist/ai/providers/rtzr/error.d.ts +18 -0
  19. package/dist/ai/providers/rtzr/error.d.ts.map +1 -0
  20. package/dist/ai/providers/rtzr/error.js +29 -0
  21. package/dist/ai/providers/rtzr/index.d.ts +5 -0
  22. package/dist/ai/providers/rtzr/index.d.ts.map +1 -0
  23. package/dist/ai/providers/rtzr/index.js +6 -0
  24. package/dist/ai/providers/rtzr/model.d.ts +52 -0
  25. package/dist/ai/providers/rtzr/model.d.ts.map +1 -0
  26. package/dist/ai/providers/rtzr/model.js +137 -0
  27. package/dist/ai/providers/rtzr/options.d.ts +7 -0
  28. package/dist/ai/providers/rtzr/options.d.ts.map +1 -0
  29. package/dist/ai/providers/rtzr/options.js +47 -0
  30. package/dist/ai/providers/rtzr/provider.d.ts +18 -0
  31. package/dist/ai/providers/rtzr/provider.d.ts.map +1 -0
  32. package/dist/ai/providers/rtzr/provider.js +54 -0
  33. package/dist/ai/providers/rtzr/utils.d.ts +19 -0
  34. package/dist/ai/providers/rtzr/utils.d.ts.map +1 -0
  35. package/dist/ai/providers/rtzr/utils.js +88 -0
  36. package/dist/api/base-frame.d.ts +2 -2
  37. package/dist/api/base-frame.d.ts.map +1 -1
  38. package/dist/api/base-frame.js +13 -2
  39. package/dist/api/caster.d.ts.map +1 -1
  40. package/dist/api/caster.js +71 -2
  41. package/dist/api/code-converters.d.ts +58 -14
  42. package/dist/api/code-converters.d.ts.map +1 -1
  43. package/dist/api/code-converters.js +258 -2
  44. package/dist/api/config.d.ts +90 -0
  45. package/dist/api/config.d.ts.map +1 -0
  46. package/dist/api/config.js +25 -0
  47. package/dist/api/context.d.ts +4 -2
  48. package/dist/api/context.d.ts.map +1 -1
  49. package/dist/api/context.js +3 -2
  50. package/dist/api/decorators.d.ts +20 -6
  51. package/dist/api/decorators.d.ts.map +1 -1
  52. package/dist/api/decorators.js +235 -2
  53. package/dist/api/index.d.ts +2 -2
  54. package/dist/api/index.d.ts.map +1 -1
  55. package/dist/api/index.js +9 -2
  56. package/dist/api/sonamu.d.ts +10 -24
  57. package/dist/api/sonamu.d.ts.map +1 -1
  58. package/dist/api/sonamu.js +514 -2
  59. package/dist/api/validator.d.ts +6 -0
  60. package/dist/api/validator.d.ts.map +1 -0
  61. package/dist/api/validator.js +81 -0
  62. package/dist/bin/build-config.d.ts +6 -1
  63. package/dist/bin/build-config.d.ts.map +1 -1
  64. package/dist/bin/build-config.js +15 -2
  65. package/dist/bin/cli.js +519 -2
  66. package/dist/bin/hot-hook-register.d.ts +11 -0
  67. package/dist/bin/hot-hook-register.d.ts.map +1 -0
  68. package/dist/bin/hot-hook-register.js +21 -0
  69. package/dist/bin/loader-register.d.ts +2 -0
  70. package/dist/bin/loader-register.d.ts.map +1 -0
  71. package/dist/bin/loader-register.js +34 -0
  72. package/dist/database/_batch_update.d.ts +5 -3
  73. package/dist/database/_batch_update.d.ts.map +1 -1
  74. package/dist/database/_batch_update.js +95 -2
  75. package/dist/database/base-model.d.ts +96 -10
  76. package/dist/database/base-model.d.ts.map +1 -1
  77. package/dist/database/base-model.js +390 -2
  78. package/dist/database/base-model.types.d.ts +93 -0
  79. package/dist/database/base-model.types.d.ts.map +1 -0
  80. package/dist/database/base-model.types.js +10 -0
  81. package/dist/database/code-generator.d.ts +1 -1
  82. package/dist/database/code-generator.d.ts.map +1 -1
  83. package/dist/database/code-generator.js +54 -2
  84. package/dist/database/db.d.ts +6 -21
  85. package/dist/database/db.d.ts.map +1 -1
  86. package/dist/database/db.js +129 -2
  87. package/dist/database/puri-subset.test-d.js +81 -0
  88. package/dist/database/puri-subset.types.d.ts +123 -0
  89. package/dist/database/puri-subset.types.d.ts.map +1 -0
  90. package/dist/database/puri-subset.types.js +16 -0
  91. package/dist/database/puri-wrapper.d.ts +13 -11
  92. package/dist/database/puri-wrapper.d.ts.map +1 -1
  93. package/dist/database/puri-wrapper.js +109 -2
  94. package/dist/database/puri.d.ts +41 -23
  95. package/dist/database/puri.d.ts.map +1 -1
  96. package/dist/database/puri.js +601 -2
  97. package/dist/database/puri.types.d.ts +25 -6
  98. package/dist/database/puri.types.d.ts.map +1 -1
  99. package/dist/database/puri.types.js +6 -2
  100. package/dist/database/transaction-context.d.ts +1 -1
  101. package/dist/database/transaction-context.d.ts.map +1 -1
  102. package/dist/database/transaction-context.js +14 -2
  103. package/dist/database/upsert-builder.d.ts +9 -3
  104. package/dist/database/upsert-builder.d.ts.map +1 -1
  105. package/dist/database/upsert-builder.js +365 -2
  106. package/dist/entity/entity-manager.d.ts +167 -2
  107. package/dist/entity/entity-manager.d.ts.map +1 -1
  108. package/dist/entity/entity-manager.js +130 -2
  109. package/dist/entity/entity.d.ts +5 -3
  110. package/dist/entity/entity.d.ts.map +1 -1
  111. package/dist/entity/entity.js +750 -2
  112. package/dist/exceptions/error-handler.d.ts +1 -1
  113. package/dist/exceptions/error-handler.d.ts.map +1 -1
  114. package/dist/exceptions/error-handler.js +29 -2
  115. package/dist/exceptions/so-exceptions.d.ts +1 -1
  116. package/dist/exceptions/so-exceptions.d.ts.map +1 -1
  117. package/dist/exceptions/so-exceptions.js +85 -2
  118. package/dist/file-storage/driver.d.ts +1 -1
  119. package/dist/file-storage/driver.d.ts.map +1 -1
  120. package/dist/file-storage/driver.js +79 -2
  121. package/dist/file-storage/file-storage.js +75 -2
  122. package/dist/index.d.ts +18 -9
  123. package/dist/index.d.ts.map +1 -1
  124. package/dist/index.js +34 -2
  125. package/dist/migration/code-generation.d.ts +1 -1
  126. package/dist/migration/code-generation.d.ts.map +1 -1
  127. package/dist/migration/code-generation.js +614 -2
  128. package/dist/migration/migration-set.d.ts +2 -10
  129. package/dist/migration/migration-set.d.ts.map +1 -1
  130. package/dist/migration/migration-set.js +213 -2
  131. package/dist/migration/migrator.d.ts +24 -82
  132. package/dist/migration/migrator.d.ts.map +1 -1
  133. package/dist/migration/migrator.js +330 -2
  134. package/dist/migration/postgresql-schema-reader.d.ts +51 -0
  135. package/dist/migration/postgresql-schema-reader.d.ts.map +1 -0
  136. package/dist/migration/postgresql-schema-reader.js +245 -0
  137. package/dist/migration/types.d.ts +6 -38
  138. package/dist/migration/types.d.ts.map +1 -1
  139. package/dist/migration/types.js +3 -2
  140. package/dist/naite/messaging-types.d.ts +43 -0
  141. package/dist/naite/messaging-types.d.ts.map +1 -0
  142. package/dist/naite/messaging-types.js +7 -0
  143. package/dist/naite/naite-reporter.d.ts +41 -0
  144. package/dist/naite/naite-reporter.d.ts.map +1 -0
  145. package/dist/naite/naite-reporter.js +102 -0
  146. package/dist/naite/naite.d.ts +95 -0
  147. package/dist/naite/naite.d.ts.map +1 -0
  148. package/dist/naite/naite.js +316 -0
  149. package/dist/stream/index.js +3 -2
  150. package/dist/stream/sse.d.ts +2 -2
  151. package/dist/stream/sse.d.ts.map +1 -1
  152. package/dist/stream/sse.js +38 -2
  153. package/dist/syncer/api-parser.d.ts +10 -0
  154. package/dist/syncer/api-parser.d.ts.map +1 -0
  155. package/dist/syncer/api-parser.js +240 -0
  156. package/dist/syncer/checksum.d.ts +21 -0
  157. package/dist/syncer/checksum.d.ts.map +1 -0
  158. package/dist/syncer/checksum.js +98 -0
  159. package/dist/syncer/code-generator.d.ts +20 -0
  160. package/dist/syncer/code-generator.d.ts.map +1 -0
  161. package/dist/syncer/code-generator.js +161 -0
  162. package/dist/syncer/entity-operations.d.ts +17 -0
  163. package/dist/syncer/entity-operations.d.ts.map +1 -0
  164. package/dist/syncer/entity-operations.js +59 -0
  165. package/dist/syncer/file-patterns.d.ts +29 -0
  166. package/dist/syncer/file-patterns.d.ts.map +1 -0
  167. package/dist/syncer/file-patterns.js +38 -0
  168. package/dist/syncer/index.d.ts +6 -0
  169. package/dist/syncer/index.d.ts.map +1 -1
  170. package/dist/syncer/index.js +9 -2
  171. package/dist/syncer/module-loader.d.ts +35 -0
  172. package/dist/syncer/module-loader.d.ts.map +1 -0
  173. package/dist/syncer/module-loader.js +87 -0
  174. package/dist/syncer/syncer.d.ts +98 -106
  175. package/dist/syncer/syncer.d.ts.map +1 -1
  176. package/dist/syncer/syncer.js +422 -2
  177. package/dist/template/entity-converter.d.ts +14 -0
  178. package/dist/template/entity-converter.d.ts.map +1 -0
  179. package/dist/template/entity-converter.js +108 -0
  180. package/dist/template/helpers.d.ts +23 -0
  181. package/dist/template/helpers.d.ts.map +1 -0
  182. package/dist/template/helpers.js +64 -0
  183. package/dist/{templates → template/implementations}/entity.template.d.ts +3 -3
  184. package/dist/template/implementations/entity.template.d.ts.map +1 -0
  185. package/dist/template/implementations/entity.template.js +86 -0
  186. package/dist/{templates → template/implementations}/generated.template.d.ts +3 -4
  187. package/dist/template/implementations/generated.template.d.ts.map +1 -0
  188. package/dist/template/implementations/generated.template.js +249 -0
  189. package/dist/{templates → template/implementations}/generated_http.template.d.ts +3 -4
  190. package/dist/template/implementations/generated_http.template.d.ts.map +1 -0
  191. package/dist/template/implementations/generated_http.template.js +131 -0
  192. package/dist/{templates → template/implementations}/generated_sso.template.d.ts +4 -5
  193. package/dist/template/implementations/generated_sso.template.d.ts.map +1 -0
  194. package/dist/template/implementations/generated_sso.template.js +134 -0
  195. package/dist/{templates → template/implementations}/init_types.template.d.ts +3 -3
  196. package/dist/template/implementations/init_types.template.d.ts.map +1 -0
  197. package/dist/template/implementations/init_types.template.js +38 -0
  198. package/dist/template/implementations/model.template.d.ts +17 -0
  199. package/dist/template/implementations/model.template.d.ts.map +1 -0
  200. package/dist/template/implementations/model.template.js +181 -0
  201. package/dist/{templates → template/implementations}/model_test.template.d.ts +3 -3
  202. package/dist/template/implementations/model_test.template.d.ts.map +1 -0
  203. package/dist/template/implementations/model_test.template.js +35 -0
  204. package/dist/{templates → template/implementations}/service.template.d.ts +6 -6
  205. package/dist/template/implementations/service.template.d.ts.map +1 -0
  206. package/dist/template/implementations/service.template.js +201 -0
  207. package/dist/{templates → template/implementations}/view_enums_buttonset.template.d.ts +3 -3
  208. package/dist/template/implementations/view_enums_buttonset.template.d.ts.map +1 -0
  209. package/dist/template/implementations/view_enums_buttonset.template.js +31 -0
  210. package/dist/{templates → template/implementations}/view_enums_dropdown.template.d.ts +3 -4
  211. package/dist/template/implementations/view_enums_dropdown.template.d.ts.map +1 -0
  212. package/dist/template/implementations/view_enums_dropdown.template.js +50 -0
  213. package/dist/{templates → template/implementations}/view_enums_select.template.d.ts +3 -3
  214. package/dist/template/implementations/view_enums_select.template.d.ts.map +1 -0
  215. package/dist/template/implementations/view_enums_select.template.js +55 -0
  216. package/dist/{templates → template/implementations}/view_form.template.d.ts +5 -5
  217. package/dist/template/implementations/view_form.template.d.ts.map +1 -0
  218. package/dist/template/implementations/view_form.template.js +337 -0
  219. package/dist/{templates → template/implementations}/view_id_all_select.template.d.ts +3 -3
  220. package/dist/template/implementations/view_id_all_select.template.d.ts.map +1 -0
  221. package/dist/template/implementations/view_id_all_select.template.js +31 -0
  222. package/dist/{templates → template/implementations}/view_id_async_select.template.d.ts +3 -3
  223. package/dist/template/implementations/view_id_async_select.template.d.ts.map +1 -0
  224. package/dist/template/implementations/view_id_async_select.template.js +105 -0
  225. package/dist/{templates → template/implementations}/view_list.template.d.ts +5 -13
  226. package/dist/template/implementations/view_list.template.d.ts.map +1 -0
  227. package/dist/template/implementations/view_list.template.js +475 -0
  228. package/dist/template/implementations/view_list_columns.template.d.ts +17 -0
  229. package/dist/template/implementations/view_list_columns.template.d.ts.map +1 -0
  230. package/dist/template/implementations/view_list_columns.template.js +49 -0
  231. package/dist/{templates → template/implementations}/view_search_input.template.d.ts +3 -3
  232. package/dist/template/implementations/view_search_input.template.d.ts.map +1 -0
  233. package/dist/template/implementations/view_search_input.template.js +64 -0
  234. package/dist/template/index.d.ts +7 -0
  235. package/dist/template/index.d.ts.map +1 -0
  236. package/dist/template/index.js +8 -0
  237. package/dist/template/template-manager.d.ts +56 -0
  238. package/dist/template/template-manager.d.ts.map +1 -0
  239. package/dist/template/template-manager.js +125 -0
  240. package/dist/template/template-types.d.ts +16 -0
  241. package/dist/template/template-types.d.ts.map +1 -0
  242. package/dist/template/template-types.js +7 -0
  243. package/dist/template/template.d.ts +49 -0
  244. package/dist/template/template.d.ts.map +1 -0
  245. package/dist/template/template.js +60 -0
  246. package/dist/template/zod-converter.d.ts +51 -0
  247. package/dist/template/zod-converter.d.ts.map +1 -0
  248. package/dist/template/zod-converter.js +449 -0
  249. package/dist/testing/_relation-graph.d.ts +1 -1
  250. package/dist/testing/_relation-graph.d.ts.map +1 -1
  251. package/dist/testing/_relation-graph.js +89 -2
  252. package/dist/testing/fixture-manager.d.ts +42 -11
  253. package/dist/testing/fixture-manager.d.ts.map +1 -1
  254. package/dist/testing/fixture-manager.js +623 -2
  255. package/dist/types/types.d.ts +747 -143
  256. package/dist/types/types.d.ts.map +1 -1
  257. package/dist/types/types.js +546 -2
  258. package/dist/typings/knex.d.js +3 -2
  259. package/dist/utils/async-utils.d.ts +7 -0
  260. package/dist/utils/async-utils.d.ts.map +1 -1
  261. package/dist/utils/async-utils.js +57 -2
  262. package/dist/utils/console-util.d.ts +2 -0
  263. package/dist/utils/console-util.d.ts.map +1 -0
  264. package/dist/utils/console-util.js +6 -0
  265. package/dist/utils/controller.d.ts +1 -0
  266. package/dist/utils/controller.d.ts.map +1 -1
  267. package/dist/utils/controller.js +29 -2
  268. package/dist/utils/esm-utils.d.ts +39 -0
  269. package/dist/utils/esm-utils.d.ts.map +1 -0
  270. package/dist/utils/esm-utils.js +49 -0
  271. package/dist/utils/formatter.d.ts +3 -0
  272. package/dist/utils/formatter.d.ts.map +1 -0
  273. package/dist/utils/formatter.js +110 -0
  274. package/dist/utils/fs-utils.d.ts +1 -1
  275. package/dist/utils/fs-utils.d.ts.map +1 -1
  276. package/dist/utils/fs-utils.js +17 -2
  277. package/dist/utils/lodash-able.d.ts.map +1 -1
  278. package/dist/utils/lodash-able.js +6 -2
  279. package/dist/utils/model.js +22 -2
  280. package/dist/utils/object-utils.d.ts +44 -0
  281. package/dist/utils/object-utils.d.ts.map +1 -0
  282. package/dist/utils/object-utils.js +191 -0
  283. package/dist/utils/path-utils.d.ts +89 -0
  284. package/dist/utils/path-utils.d.ts.map +1 -0
  285. package/dist/utils/path-utils.js +60 -0
  286. package/dist/utils/process-utils.d.ts +13 -0
  287. package/dist/utils/process-utils.d.ts.map +1 -0
  288. package/dist/utils/process-utils.js +36 -0
  289. package/dist/utils/sql-parser.d.ts +5 -1
  290. package/dist/utils/sql-parser.d.ts.map +1 -1
  291. package/dist/utils/sql-parser.js +46 -2
  292. package/dist/utils/type-utils.d.ts +23 -0
  293. package/dist/utils/type-utils.d.ts.map +1 -0
  294. package/dist/utils/type-utils.js +45 -0
  295. package/dist/utils/utils.d.ts +10 -7
  296. package/dist/utils/utils.d.ts.map +1 -1
  297. package/dist/utils/utils.js +72 -2
  298. package/dist/utils/zod-error.d.ts +1 -1
  299. package/dist/utils/zod-error.d.ts.map +1 -1
  300. package/dist/utils/zod-error.js +19 -2
  301. package/package.json +65 -27
  302. package/src/ai/agents/agent.ts +87 -0
  303. package/src/ai/agents/index.ts +2 -0
  304. package/src/ai/agents/types.ts +47 -0
  305. package/src/ai/index.ts +1 -0
  306. package/src/ai/providers/rtzr/api.ts +37 -0
  307. package/src/ai/providers/rtzr/error.ts +34 -0
  308. package/src/ai/providers/rtzr/index.ts +4 -0
  309. package/src/ai/providers/rtzr/model.ts +201 -0
  310. package/src/ai/providers/rtzr/options.ts +49 -0
  311. package/src/ai/providers/rtzr/provider.ts +91 -0
  312. package/src/ai/providers/rtzr/utils.ts +127 -0
  313. package/src/api/base-frame.ts +4 -2
  314. package/src/api/caster.ts +17 -23
  315. package/src/api/code-converters.ts +178 -535
  316. package/src/api/config.ts +125 -0
  317. package/src/api/context.ts +7 -17
  318. package/src/api/decorators.ts +176 -46
  319. package/src/api/index.ts +2 -2
  320. package/src/api/sonamu.ts +190 -167
  321. package/src/api/validator.ts +83 -0
  322. package/src/bin/build-config.ts +8 -1
  323. package/src/bin/cli.ts +258 -124
  324. package/src/bin/hot-hook-register.ts +22 -0
  325. package/src/bin/loader-register.ts +38 -0
  326. package/src/database/_batch_update.ts +46 -31
  327. package/src/database/base-model.ts +390 -182
  328. package/src/database/base-model.types.ts +155 -0
  329. package/src/database/code-generator.ts +13 -32
  330. package/src/database/db.ts +40 -96
  331. package/src/database/puri-subset.test-d.ts +471 -0
  332. package/src/database/puri-subset.types.ts +195 -0
  333. package/src/database/puri-wrapper.ts +58 -67
  334. package/src/database/puri.ts +229 -148
  335. package/src/database/puri.types.ts +76 -30
  336. package/src/database/transaction-context.ts +1 -1
  337. package/src/database/upsert-builder.ts +262 -132
  338. package/src/entity/entity-manager.ts +48 -36
  339. package/src/entity/entity.ts +330 -248
  340. package/src/exceptions/error-handler.ts +3 -3
  341. package/src/exceptions/so-exceptions.ts +11 -11
  342. package/src/file-storage/driver.ts +5 -5
  343. package/src/file-storage/file-storage.ts +2 -2
  344. package/src/index.ts +18 -10
  345. package/src/migration/code-generation.ts +185 -172
  346. package/src/migration/migration-set.ts +80 -293
  347. package/src/migration/migrator.ts +199 -571
  348. package/src/migration/mysql-schema-reader.ts.txt +272 -0
  349. package/src/migration/postgresql-schema-reader.ts +310 -0
  350. package/src/migration/types.ts +6 -39
  351. package/src/naite/messaging-types.ts +51 -0
  352. package/src/naite/naite-reporter.ts +128 -0
  353. package/src/naite/naite.ts +415 -0
  354. package/src/shared/web.shared.ts.txt +20 -24
  355. package/src/stream/sse.ts +5 -5
  356. package/src/syncer/api-parser.ts +282 -0
  357. package/src/syncer/checksum.ts +140 -0
  358. package/src/syncer/code-generator.ts +198 -0
  359. package/src/syncer/entity-operations.ts +65 -0
  360. package/src/syncer/file-patterns.ts +56 -0
  361. package/src/syncer/index.ts +6 -0
  362. package/src/syncer/module-loader.ts +128 -0
  363. package/src/syncer/syncer.ts +389 -1453
  364. package/src/template/entity-converter.ts +114 -0
  365. package/src/template/helpers.ts +81 -0
  366. package/src/{templates → template/implementations}/entity.template.ts +7 -7
  367. package/src/{templates → template/implementations}/generated.template.ts +101 -101
  368. package/src/{templates → template/implementations}/generated_http.template.ts +27 -57
  369. package/src/template/implementations/generated_sso.template.ts +151 -0
  370. package/src/{templates → template/implementations}/init_types.template.ts +5 -7
  371. package/src/{templates → template/implementations}/model.template.ts +52 -43
  372. package/src/{templates → template/implementations}/model_test.template.ts +5 -5
  373. package/src/{templates → template/implementations}/service.template.ts +66 -82
  374. package/src/{templates → template/implementations}/view_enums_buttonset.template.ts +3 -3
  375. package/src/{templates → template/implementations}/view_enums_dropdown.template.ts +4 -20
  376. package/src/{templates → template/implementations}/view_enums_select.template.ts +4 -4
  377. package/src/{templates → template/implementations}/view_form.template.ts +40 -83
  378. package/src/{templates → template/implementations}/view_id_all_select.template.ts +3 -3
  379. package/src/{templates → template/implementations}/view_id_async_select.template.ts +10 -24
  380. package/src/{templates → template/implementations}/view_list.template.ts +60 -152
  381. package/src/{templates → template/implementations}/view_list_columns.template.ts +5 -11
  382. package/src/{templates → template/implementations}/view_search_input.template.ts +3 -3
  383. package/src/template/index.ts +6 -0
  384. package/src/template/template-manager.ts +166 -0
  385. package/src/template/template-types.ts +16 -0
  386. package/src/template/template.ts +105 -0
  387. package/src/template/zod-converter.ts +525 -0
  388. package/src/testing/_relation-graph.ts +18 -11
  389. package/src/testing/fixture-manager.ts +472 -359
  390. package/src/types/types.ts +553 -308
  391. package/src/typings/knex.d.ts +7 -9
  392. package/src/utils/async-utils.ts +23 -10
  393. package/src/utils/console-util.ts +4 -0
  394. package/src/utils/controller.ts +3 -0
  395. package/src/utils/esm-utils.ts +59 -0
  396. package/src/utils/formatter.ts +109 -0
  397. package/src/utils/fs-utils.ts +1 -1
  398. package/src/utils/lodash-able.ts +1 -4
  399. package/src/utils/object-utils.ts +217 -0
  400. package/src/utils/path-utils.ts +99 -0
  401. package/src/utils/process-utils.ts +46 -0
  402. package/src/utils/sql-parser.ts +23 -5
  403. package/src/utils/type-utils.ts +83 -0
  404. package/src/utils/utils.ts +66 -43
  405. package/src/utils/zod-error.ts +3 -4
  406. package/dist/api/base-frame.js.map +0 -1
  407. package/dist/api/caster.js.map +0 -1
  408. package/dist/api/code-converters.js.map +0 -1
  409. package/dist/api/context.js.map +0 -1
  410. package/dist/api/decorators.js.map +0 -1
  411. package/dist/api/index.js.map +0 -1
  412. package/dist/api/sonamu.js.map +0 -1
  413. package/dist/bin/build-config.js.map +0 -1
  414. package/dist/bin/cli-wrapper.d.ts +0 -3
  415. package/dist/bin/cli-wrapper.d.ts.map +0 -1
  416. package/dist/bin/cli-wrapper.js +0 -3
  417. package/dist/bin/cli-wrapper.js.map +0 -1
  418. package/dist/bin/cli.js.map +0 -1
  419. package/dist/database/_batch_update.js.map +0 -1
  420. package/dist/database/base-model.js.map +0 -1
  421. package/dist/database/code-generator.js.map +0 -1
  422. package/dist/database/db.js.map +0 -1
  423. package/dist/database/knex-plugins/knex-on-duplicate-update.d.ts +0 -2
  424. package/dist/database/knex-plugins/knex-on-duplicate-update.d.ts.map +0 -1
  425. package/dist/database/knex-plugins/knex-on-duplicate-update.js +0 -2
  426. package/dist/database/knex-plugins/knex-on-duplicate-update.js.map +0 -1
  427. package/dist/database/puri-wrapper.js.map +0 -1
  428. package/dist/database/puri.js.map +0 -1
  429. package/dist/database/puri.types.js.map +0 -1
  430. package/dist/database/transaction-context.js.map +0 -1
  431. package/dist/database/upsert-builder.js.map +0 -1
  432. package/dist/entity/entity-manager.js.map +0 -1
  433. package/dist/entity/entity-utils.d.ts +0 -61
  434. package/dist/entity/entity-utils.d.ts.map +0 -1
  435. package/dist/entity/entity-utils.js +0 -2
  436. package/dist/entity/entity-utils.js.map +0 -1
  437. package/dist/entity/entity.js.map +0 -1
  438. package/dist/exceptions/error-handler.js.map +0 -1
  439. package/dist/exceptions/so-exceptions.js.map +0 -1
  440. package/dist/file-storage/driver.js.map +0 -1
  441. package/dist/file-storage/file-storage.js.map +0 -1
  442. package/dist/index.js.map +0 -1
  443. package/dist/migration/code-generation.js.map +0 -1
  444. package/dist/migration/migration-set.js.map +0 -1
  445. package/dist/migration/migrator.js.map +0 -1
  446. package/dist/migration/types.js.map +0 -1
  447. package/dist/stream/index.js.map +0 -1
  448. package/dist/stream/sse.js.map +0 -1
  449. package/dist/syncer/index.js.map +0 -1
  450. package/dist/syncer/syncer.js.map +0 -1
  451. package/dist/templates/base-template.d.ts +0 -13
  452. package/dist/templates/base-template.d.ts.map +0 -1
  453. package/dist/templates/base-template.js +0 -2
  454. package/dist/templates/base-template.js.map +0 -1
  455. package/dist/templates/entity.template.d.ts.map +0 -1
  456. package/dist/templates/entity.template.js +0 -2
  457. package/dist/templates/entity.template.js.map +0 -1
  458. package/dist/templates/generated.template.d.ts.map +0 -1
  459. package/dist/templates/generated.template.js +0 -2
  460. package/dist/templates/generated.template.js.map +0 -1
  461. package/dist/templates/generated_http.template.d.ts.map +0 -1
  462. package/dist/templates/generated_http.template.js +0 -2
  463. package/dist/templates/generated_http.template.js.map +0 -1
  464. package/dist/templates/generated_sso.template.d.ts.map +0 -1
  465. package/dist/templates/generated_sso.template.js +0 -2
  466. package/dist/templates/generated_sso.template.js.map +0 -1
  467. package/dist/templates/index.d.ts +0 -2
  468. package/dist/templates/index.d.ts.map +0 -1
  469. package/dist/templates/index.js +0 -2
  470. package/dist/templates/index.js.map +0 -1
  471. package/dist/templates/init_types.template.d.ts.map +0 -1
  472. package/dist/templates/init_types.template.js +0 -2
  473. package/dist/templates/init_types.template.js.map +0 -1
  474. package/dist/templates/model.template.d.ts +0 -17
  475. package/dist/templates/model.template.d.ts.map +0 -1
  476. package/dist/templates/model.template.js +0 -2
  477. package/dist/templates/model.template.js.map +0 -1
  478. package/dist/templates/model_test.template.d.ts.map +0 -1
  479. package/dist/templates/model_test.template.js +0 -2
  480. package/dist/templates/model_test.template.js.map +0 -1
  481. package/dist/templates/service.template.d.ts.map +0 -1
  482. package/dist/templates/service.template.js +0 -2
  483. package/dist/templates/service.template.js.map +0 -1
  484. package/dist/templates/view_enums_buttonset.template.d.ts.map +0 -1
  485. package/dist/templates/view_enums_buttonset.template.js +0 -2
  486. package/dist/templates/view_enums_buttonset.template.js.map +0 -1
  487. package/dist/templates/view_enums_dropdown.template.d.ts.map +0 -1
  488. package/dist/templates/view_enums_dropdown.template.js +0 -2
  489. package/dist/templates/view_enums_dropdown.template.js.map +0 -1
  490. package/dist/templates/view_enums_select.template.d.ts.map +0 -1
  491. package/dist/templates/view_enums_select.template.js +0 -2
  492. package/dist/templates/view_enums_select.template.js.map +0 -1
  493. package/dist/templates/view_form.template.d.ts.map +0 -1
  494. package/dist/templates/view_form.template.js +0 -2
  495. package/dist/templates/view_form.template.js.map +0 -1
  496. package/dist/templates/view_id_all_select.template.d.ts.map +0 -1
  497. package/dist/templates/view_id_all_select.template.js +0 -2
  498. package/dist/templates/view_id_all_select.template.js.map +0 -1
  499. package/dist/templates/view_id_async_select.template.d.ts.map +0 -1
  500. package/dist/templates/view_id_async_select.template.js +0 -2
  501. package/dist/templates/view_id_async_select.template.js.map +0 -1
  502. package/dist/templates/view_list.template.d.ts.map +0 -1
  503. package/dist/templates/view_list.template.js +0 -2
  504. package/dist/templates/view_list.template.js.map +0 -1
  505. package/dist/templates/view_list_columns.template.d.ts +0 -17
  506. package/dist/templates/view_list_columns.template.d.ts.map +0 -1
  507. package/dist/templates/view_list_columns.template.js +0 -2
  508. package/dist/templates/view_list_columns.template.js.map +0 -1
  509. package/dist/templates/view_search_input.template.d.ts.map +0 -1
  510. package/dist/templates/view_search_input.template.js +0 -2
  511. package/dist/templates/view_search_input.template.js.map +0 -1
  512. package/dist/testing/_relation-graph.js.map +0 -1
  513. package/dist/testing/fixture-manager.js.map +0 -1
  514. package/dist/types/types.js.map +0 -1
  515. package/dist/typings/knex.d.js.map +0 -1
  516. package/dist/utils/async-utils.js.map +0 -1
  517. package/dist/utils/controller.js.map +0 -1
  518. package/dist/utils/fs-utils.js.map +0 -1
  519. package/dist/utils/lodash-able.js.map +0 -1
  520. package/dist/utils/model.js.map +0 -1
  521. package/dist/utils/sql-parser.js.map +0 -1
  522. package/dist/utils/utils.js.map +0 -1
  523. package/dist/utils/zod-error.js.map +0 -1
  524. package/src/bin/cli-wrapper.ts +0 -75
  525. package/src/database/knex-plugins/knex-on-duplicate-update.ts +0 -45
  526. package/src/entity/entity-utils.ts +0 -291
  527. package/src/templates/base-template.ts +0 -19
  528. package/src/templates/generated_sso.template.ts +0 -138
  529. package/src/templates/index.ts +0 -1
@@ -0,0 +1,14 @@
1
+ import z from "zod";
2
+ import type { EntityPropNode, RenderingNode } from "../types/types";
3
+ /**
4
+ * 엔티티의 특정 subset을 RenderingNode로 변환합니다.
5
+ * subset의 필드들을 Zod 타입으로 변환한 후 UI 렌더링용 노드로 만듭니다.
6
+ * object와 array의 경우 적절한 pick 필드를 자동으로 선택합니다.
7
+ */
8
+ export declare function getColumnsNode(entityId: string, subsetKey: string): Promise<RenderingNode>;
9
+ /**
10
+ * EntityPropNode를 Zod 타입으로 변환합니다.
11
+ * plain, array, object 세 가지 nodeType을 재귀적으로 처리합니다.
12
+ */
13
+ export declare function propNodeToZodType(propNode: EntityPropNode): Promise<z.ZodTypeAny>;
14
+ //# sourceMappingURL=entity-converter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-converter.d.ts","sourceRoot":"","sources":["../../src/template/entity-converter.ts"],"names":[],"mappings":"AACA,OAAO,CAAC,MAAM,KAAK,CAAC;AAGpB,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGpE;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAyDhG;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAsCvF"}
@@ -0,0 +1,108 @@
1
+ import assert from "assert";
2
+ import z from "zod";
3
+ import { EntityManager } from "../entity/entity-manager.js";
4
+ import { ServiceUnavailableException } from "../exceptions/so-exceptions.js";
5
+ import { propToZodType, zodTypeToRenderingNode } from "./zod-converter.js";
6
+ /**
7
+ * 엔티티의 특정 subset을 RenderingNode로 변환합니다.
8
+ * subset의 필드들을 Zod 타입으로 변환한 후 UI 렌더링용 노드로 만듭니다.
9
+ * object와 array의 경우 적절한 pick 필드를 자동으로 선택합니다.
10
+ */ export async function getColumnsNode(entityId, subsetKey) {
11
+ const entity = EntityManager.get(entityId);
12
+ const subset = entity.subsets[subsetKey];
13
+ if (subset === undefined) {
14
+ throw new ServiceUnavailableException(`Subset ${subsetKey} 가 없습니다.`);
15
+ }
16
+ const propNodes = entity.fieldExprsToPropNodes(subset);
17
+ const rootPropNode = {
18
+ nodeType: "object",
19
+ children: propNodes
20
+ };
21
+ // biome-ignore lint/suspicious/noExplicitAny: zod 스키마를 로드할 때 사용하는 타입
22
+ const columnsZodType = await propNodeToZodType(rootPropNode);
23
+ const columnsNode = zodTypeToRenderingNode(columnsZodType);
24
+ assert(columnsNode.children !== undefined, "columnsNode.children is undefined");
25
+ columnsNode.children = columnsNode.children.map((child)=>{
26
+ if (child.renderType === "object") {
27
+ assert(child.children !== undefined, "child.children is undefined");
28
+ const pickedCol = child.children.find((cc)=>[
29
+ "title",
30
+ "name"
31
+ ].includes(cc.name));
32
+ if (pickedCol) {
33
+ return {
34
+ ...child,
35
+ renderType: "object-pick",
36
+ config: {
37
+ picked: pickedCol.name
38
+ }
39
+ };
40
+ } else {
41
+ return child;
42
+ }
43
+ } else if (child.renderType === "array" && child.element && child.element.renderType === "object") {
44
+ const pickedCol = child.element?.children?.find((cc)=>[
45
+ "title",
46
+ "name"
47
+ ].includes(cc.name));
48
+ if (pickedCol) {
49
+ return {
50
+ ...child,
51
+ element: {
52
+ ...child.element,
53
+ renderType: "object-pick",
54
+ config: {
55
+ picked: pickedCol.name
56
+ }
57
+ }
58
+ };
59
+ } else {
60
+ return child;
61
+ }
62
+ }
63
+ return child;
64
+ });
65
+ return columnsNode;
66
+ }
67
+ /**
68
+ * EntityPropNode를 Zod 타입으로 변환합니다.
69
+ * plain, array, object 세 가지 nodeType을 재귀적으로 처리합니다.
70
+ */ export async function propNodeToZodType(propNode) {
71
+ if (propNode.nodeType === "plain") {
72
+ return propToZodType(propNode.prop);
73
+ } else if (propNode.nodeType === "array") {
74
+ if (propNode.prop === undefined) {
75
+ throw new Error();
76
+ } else if (propNode.children.length > 0) {
77
+ return (await propNodeToZodType({
78
+ ...propNode,
79
+ nodeType: "object"
80
+ })).array();
81
+ } else {
82
+ const innerType = await propToZodType(propNode.prop);
83
+ if (propNode.prop.nullable === true) {
84
+ return z.array(innerType).nullable();
85
+ } else {
86
+ return z.array(innerType);
87
+ }
88
+ }
89
+ } else if (propNode.nodeType === "object") {
90
+ const entries = await Promise.all(propNode.children.map(async (childPropNode)=>{
91
+ assert(childPropNode.prop?.name !== undefined, "childPropNode.prop.name is undefined");
92
+ return [
93
+ childPropNode.prop.name,
94
+ await propNodeToZodType(childPropNode)
95
+ ];
96
+ }));
97
+ const obj = Object.fromEntries(entries);
98
+ if (propNode.prop?.nullable === true) {
99
+ return z.object(obj).nullable();
100
+ } else {
101
+ return z.object(obj);
102
+ }
103
+ } else {
104
+ throw Error;
105
+ }
106
+ }
107
+
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZW1wbGF0ZS9lbnRpdHktY29udmVydGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiO1xuaW1wb3J0IHogZnJvbSBcInpvZFwiO1xuaW1wb3J0IHsgRW50aXR5TWFuYWdlciB9IGZyb20gXCIuLi9lbnRpdHkvZW50aXR5LW1hbmFnZXJcIjtcbmltcG9ydCB7IFNlcnZpY2VVbmF2YWlsYWJsZUV4Y2VwdGlvbiB9IGZyb20gXCIuLi9leGNlcHRpb25zL3NvLWV4Y2VwdGlvbnNcIjtcbmltcG9ydCB0eXBlIHsgRW50aXR5UHJvcE5vZGUsIFJlbmRlcmluZ05vZGUgfSBmcm9tIFwiLi4vdHlwZXMvdHlwZXNcIjtcbmltcG9ydCB7IHByb3BUb1pvZFR5cGUsIHpvZFR5cGVUb1JlbmRlcmluZ05vZGUgfSBmcm9tIFwiLi96b2QtY29udmVydGVyXCI7XG5cbi8qKlxuICog7JeU7Yuw7Yuw7J2YIO2KueyglSBzdWJzZXTsnYQgUmVuZGVyaW5nTm9kZeuhnCDrs4DtmZjtlanri4jri6QuXG4gKiBzdWJzZXTsnZgg7ZWE65Oc65Ok7J2EIFpvZCDtg4DsnoXsnLzroZwg67OA7ZmY7ZWcIO2bhCBVSSDroIzrjZTrp4Hsmqkg64W465Oc66GcIOunjOuTreuLiOuLpC5cbiAqIG9iamVjdOyZgCBhcnJheeydmCDqsr3smrAg7KCB7KCI7ZWcIHBpY2sg7ZWE65Oc66W8IOyekOuPmeycvOuhnCDshKDtg53tlanri4jri6QuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRDb2x1bW5zTm9kZShlbnRpdHlJZDogc3RyaW5nLCBzdWJzZXRLZXk6IHN0cmluZyk6IFByb21pc2U8UmVuZGVyaW5nTm9kZT4ge1xuICBjb25zdCBlbnRpdHkgPSBFbnRpdHlNYW5hZ2VyLmdldChlbnRpdHlJZCk7XG4gIGNvbnN0IHN1YnNldCA9IGVudGl0eS5zdWJzZXRzW3N1YnNldEtleV07XG4gIGlmIChzdWJzZXQgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBTZXJ2aWNlVW5hdmFpbGFibGVFeGNlcHRpb24oYFN1YnNldCAke3N1YnNldEtleX0g6rCAIOyXhuyKteuLiOuLpC5gKTtcbiAgfVxuICBjb25zdCBwcm9wTm9kZXMgPSBlbnRpdHkuZmllbGRFeHByc1RvUHJvcE5vZGVzKHN1YnNldCk7XG4gIGNvbnN0IHJvb3RQcm9wTm9kZTogRW50aXR5UHJvcE5vZGUgPSB7XG4gICAgbm9kZVR5cGU6IFwib2JqZWN0XCIsXG4gICAgY2hpbGRyZW46IHByb3BOb2RlcyxcbiAgfTtcblxuICAvLyBiaW9tZS1pZ25vcmUgbGludC9zdXNwaWNpb3VzL25vRXhwbGljaXRBbnk6IHpvZCDsiqTtgqTrp4jrpbwg66Gc65Oc7ZWgIOuVjCDsgqzsmqntlZjripQg7YOA7J6FXG4gIGNvbnN0IGNvbHVtbnNab2RUeXBlID0gKGF3YWl0IHByb3BOb2RlVG9ab2RUeXBlKHJvb3RQcm9wTm9kZSkpIGFzIHouWm9kT2JqZWN0PGFueT47XG5cbiAgY29uc3QgY29sdW1uc05vZGUgPSB6b2RUeXBlVG9SZW5kZXJpbmdOb2RlKGNvbHVtbnNab2RUeXBlKTtcbiAgYXNzZXJ0KGNvbHVtbnNOb2RlLmNoaWxkcmVuICE9PSB1bmRlZmluZWQsIFwiY29sdW1uc05vZGUuY2hpbGRyZW4gaXMgdW5kZWZpbmVkXCIpO1xuICBjb2x1bW5zTm9kZS5jaGlsZHJlbiA9IGNvbHVtbnNOb2RlLmNoaWxkcmVuLm1hcCgoY2hpbGQpID0+IHtcbiAgICBpZiAoY2hpbGQucmVuZGVyVHlwZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgYXNzZXJ0KGNoaWxkLmNoaWxkcmVuICE9PSB1bmRlZmluZWQsIFwiY2hpbGQuY2hpbGRyZW4gaXMgdW5kZWZpbmVkXCIpO1xuICAgICAgY29uc3QgcGlja2VkQ29sID0gY2hpbGQuY2hpbGRyZW4uZmluZCgoY2MpID0+IFtcInRpdGxlXCIsIFwibmFtZVwiXS5pbmNsdWRlcyhjYy5uYW1lKSk7XG4gICAgICBpZiAocGlja2VkQ29sKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uY2hpbGQsXG4gICAgICAgICAgcmVuZGVyVHlwZTogXCJvYmplY3QtcGlja1wiLFxuICAgICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgICAgcGlja2VkOiBwaWNrZWRDb2wubmFtZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGNoaWxkO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoXG4gICAgICBjaGlsZC5yZW5kZXJUeXBlID09PSBcImFycmF5XCIgJiZcbiAgICAgIGNoaWxkLmVsZW1lbnQgJiZcbiAgICAgIGNoaWxkLmVsZW1lbnQucmVuZGVyVHlwZSA9PT0gXCJvYmplY3RcIlxuICAgICkge1xuICAgICAgY29uc3QgcGlja2VkQ29sID0gY2hpbGQuZWxlbWVudD8uY2hpbGRyZW4/LmZpbmQoKGNjKSA9PiBbXCJ0aXRsZVwiLCBcIm5hbWVcIl0uaW5jbHVkZXMoY2MubmFtZSkpO1xuICAgICAgaWYgKHBpY2tlZENvbCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmNoaWxkLFxuICAgICAgICAgIGVsZW1lbnQ6IHtcbiAgICAgICAgICAgIC4uLmNoaWxkLmVsZW1lbnQsXG4gICAgICAgICAgICByZW5kZXJUeXBlOiBcIm9iamVjdC1waWNrXCIsXG4gICAgICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAgICAgcGlja2VkOiBwaWNrZWRDb2wubmFtZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNoaWxkO1xuICB9KTtcblxuICByZXR1cm4gY29sdW1uc05vZGU7XG59XG5cbi8qKlxuICogRW50aXR5UHJvcE5vZGXrpbwgWm9kIO2DgOyeheycvOuhnCDrs4DtmZjtlanri4jri6QuXG4gKiBwbGFpbiwgYXJyYXksIG9iamVjdCDshLgg6rCA7KeAIG5vZGVUeXBl7J2EIOyerOq3gOyggeycvOuhnCDsspjrpqztlanri4jri6QuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwcm9wTm9kZVRvWm9kVHlwZShwcm9wTm9kZTogRW50aXR5UHJvcE5vZGUpOiBQcm9taXNlPHouWm9kVHlwZUFueT4ge1xuICBpZiAocHJvcE5vZGUubm9kZVR5cGUgPT09IFwicGxhaW5cIikge1xuICAgIHJldHVybiBwcm9wVG9ab2RUeXBlKHByb3BOb2RlLnByb3ApO1xuICB9IGVsc2UgaWYgKHByb3BOb2RlLm5vZGVUeXBlID09PSBcImFycmF5XCIpIHtcbiAgICBpZiAocHJvcE5vZGUucHJvcCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoKTtcbiAgICB9IGVsc2UgaWYgKHByb3BOb2RlLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGF3YWl0IHByb3BOb2RlVG9ab2RUeXBlKHtcbiAgICAgICAgICAuLi5wcm9wTm9kZSxcbiAgICAgICAgICBub2RlVHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgfSlcbiAgICAgICkuYXJyYXkoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaW5uZXJUeXBlID0gYXdhaXQgcHJvcFRvWm9kVHlwZShwcm9wTm9kZS5wcm9wKTtcbiAgICAgIGlmIChwcm9wTm9kZS5wcm9wLm51bGxhYmxlID09PSB0cnVlKSB7XG4gICAgICAgIHJldHVybiB6LmFycmF5KGlubmVyVHlwZSkubnVsbGFibGUoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB6LmFycmF5KGlubmVyVHlwZSk7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2UgaWYgKHByb3BOb2RlLm5vZGVUeXBlID09PSBcIm9iamVjdFwiKSB7XG4gICAgY29uc3QgZW50cmllcyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgcHJvcE5vZGUuY2hpbGRyZW4ubWFwKGFzeW5jIChjaGlsZFByb3BOb2RlKSA9PiB7XG4gICAgICAgIGFzc2VydChjaGlsZFByb3BOb2RlLnByb3A/Lm5hbWUgIT09IHVuZGVmaW5lZCwgXCJjaGlsZFByb3BOb2RlLnByb3AubmFtZSBpcyB1bmRlZmluZWRcIik7XG4gICAgICAgIHJldHVybiBbY2hpbGRQcm9wTm9kZS5wcm9wLm5hbWUsIGF3YWl0IHByb3BOb2RlVG9ab2RUeXBlKGNoaWxkUHJvcE5vZGUpXSBhcyBjb25zdDtcbiAgICAgIH0pLFxuICAgICk7XG4gICAgY29uc3Qgb2JqID0gT2JqZWN0LmZyb21FbnRyaWVzKGVudHJpZXMpO1xuXG4gICAgaWYgKHByb3BOb2RlLnByb3A/Lm51bGxhYmxlID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gei5vYmplY3Qob2JqKS5udWxsYWJsZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gei5vYmplY3Qob2JqKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgRXJyb3I7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJhc3NlcnQiLCJ6IiwiRW50aXR5TWFuYWdlciIsIlNlcnZpY2VVbmF2YWlsYWJsZUV4Y2VwdGlvbiIsInByb3BUb1pvZFR5cGUiLCJ6b2RUeXBlVG9SZW5kZXJpbmdOb2RlIiwiZ2V0Q29sdW1uc05vZGUiLCJlbnRpdHlJZCIsInN1YnNldEtleSIsImVudGl0eSIsImdldCIsInN1YnNldCIsInN1YnNldHMiLCJ1bmRlZmluZWQiLCJwcm9wTm9kZXMiLCJmaWVsZEV4cHJzVG9Qcm9wTm9kZXMiLCJyb290UHJvcE5vZGUiLCJub2RlVHlwZSIsImNoaWxkcmVuIiwiY29sdW1uc1pvZFR5cGUiLCJwcm9wTm9kZVRvWm9kVHlwZSIsImNvbHVtbnNOb2RlIiwibWFwIiwiY2hpbGQiLCJyZW5kZXJUeXBlIiwicGlja2VkQ29sIiwiZmluZCIsImNjIiwiaW5jbHVkZXMiLCJuYW1lIiwiY29uZmlnIiwicGlja2VkIiwiZWxlbWVudCIsInByb3BOb2RlIiwicHJvcCIsIkVycm9yIiwibGVuZ3RoIiwiYXJyYXkiLCJpbm5lclR5cGUiLCJudWxsYWJsZSIsImVudHJpZXMiLCJQcm9taXNlIiwiYWxsIiwiY2hpbGRQcm9wTm9kZSIsIm9iaiIsIk9iamVjdCIsImZyb21FbnRyaWVzIiwib2JqZWN0Il0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxZQUFZLFNBQVM7QUFDNUIsT0FBT0MsT0FBTyxNQUFNO0FBQ3BCLFNBQVNDLGFBQWEsUUFBUSw4QkFBMkI7QUFDekQsU0FBU0MsMkJBQTJCLFFBQVEsaUNBQThCO0FBRTFFLFNBQVNDLGFBQWEsRUFBRUMsc0JBQXNCLFFBQVEscUJBQWtCO0FBRXhFOzs7O0NBSUMsR0FDRCxPQUFPLGVBQWVDLGVBQWVDLFFBQWdCLEVBQUVDLFNBQWlCO0lBQ3RFLE1BQU1DLFNBQVNQLGNBQWNRLEdBQUcsQ0FBQ0g7SUFDakMsTUFBTUksU0FBU0YsT0FBT0csT0FBTyxDQUFDSixVQUFVO0lBQ3hDLElBQUlHLFdBQVdFLFdBQVc7UUFDeEIsTUFBTSxJQUFJViw0QkFBNEIsQ0FBQyxPQUFPLEVBQUVLLFVBQVUsUUFBUSxDQUFDO0lBQ3JFO0lBQ0EsTUFBTU0sWUFBWUwsT0FBT00scUJBQXFCLENBQUNKO0lBQy9DLE1BQU1LLGVBQStCO1FBQ25DQyxVQUFVO1FBQ1ZDLFVBQVVKO0lBQ1o7SUFFQSxxRUFBcUU7SUFDckUsTUFBTUssaUJBQWtCLE1BQU1DLGtCQUFrQko7SUFFaEQsTUFBTUssY0FBY2hCLHVCQUF1QmM7SUFDM0NuQixPQUFPcUIsWUFBWUgsUUFBUSxLQUFLTCxXQUFXO0lBQzNDUSxZQUFZSCxRQUFRLEdBQUdHLFlBQVlILFFBQVEsQ0FBQ0ksR0FBRyxDQUFDLENBQUNDO1FBQy9DLElBQUlBLE1BQU1DLFVBQVUsS0FBSyxVQUFVO1lBQ2pDeEIsT0FBT3VCLE1BQU1MLFFBQVEsS0FBS0wsV0FBVztZQUNyQyxNQUFNWSxZQUFZRixNQUFNTCxRQUFRLENBQUNRLElBQUksQ0FBQyxDQUFDQyxLQUFPO29CQUFDO29CQUFTO2lCQUFPLENBQUNDLFFBQVEsQ0FBQ0QsR0FBR0UsSUFBSTtZQUNoRixJQUFJSixXQUFXO2dCQUNiLE9BQU87b0JBQ0wsR0FBR0YsS0FBSztvQkFDUkMsWUFBWTtvQkFDWk0sUUFBUTt3QkFDTkMsUUFBUU4sVUFBVUksSUFBSTtvQkFDeEI7Z0JBQ0Y7WUFDRixPQUFPO2dCQUNMLE9BQU9OO1lBQ1Q7UUFDRixPQUFPLElBQ0xBLE1BQU1DLFVBQVUsS0FBSyxXQUNyQkQsTUFBTVMsT0FBTyxJQUNiVCxNQUFNUyxPQUFPLENBQUNSLFVBQVUsS0FBSyxVQUM3QjtZQUNBLE1BQU1DLFlBQVlGLE1BQU1TLE9BQU8sRUFBRWQsVUFBVVEsS0FBSyxDQUFDQyxLQUFPO29CQUFDO29CQUFTO2lCQUFPLENBQUNDLFFBQVEsQ0FBQ0QsR0FBR0UsSUFBSTtZQUMxRixJQUFJSixXQUFXO2dCQUNiLE9BQU87b0JBQ0wsR0FBR0YsS0FBSztvQkFDUlMsU0FBUzt3QkFDUCxHQUFHVCxNQUFNUyxPQUFPO3dCQUNoQlIsWUFBWTt3QkFDWk0sUUFBUTs0QkFDTkMsUUFBUU4sVUFBVUksSUFBSTt3QkFDeEI7b0JBQ0Y7Z0JBQ0Y7WUFDRixPQUFPO2dCQUNMLE9BQU9OO1lBQ1Q7UUFDRjtRQUNBLE9BQU9BO0lBQ1Q7SUFFQSxPQUFPRjtBQUNUO0FBRUE7OztDQUdDLEdBQ0QsT0FBTyxlQUFlRCxrQkFBa0JhLFFBQXdCO0lBQzlELElBQUlBLFNBQVNoQixRQUFRLEtBQUssU0FBUztRQUNqQyxPQUFPYixjQUFjNkIsU0FBU0MsSUFBSTtJQUNwQyxPQUFPLElBQUlELFNBQVNoQixRQUFRLEtBQUssU0FBUztRQUN4QyxJQUFJZ0IsU0FBU0MsSUFBSSxLQUFLckIsV0FBVztZQUMvQixNQUFNLElBQUlzQjtRQUNaLE9BQU8sSUFBSUYsU0FBU2YsUUFBUSxDQUFDa0IsTUFBTSxHQUFHLEdBQUc7WUFDdkMsT0FBTyxBQUNMLENBQUEsTUFBTWhCLGtCQUFrQjtnQkFDdEIsR0FBR2EsUUFBUTtnQkFDWGhCLFVBQVU7WUFDWixFQUFDLEVBQ0RvQixLQUFLO1FBQ1QsT0FBTztZQUNMLE1BQU1DLFlBQVksTUFBTWxDLGNBQWM2QixTQUFTQyxJQUFJO1lBQ25ELElBQUlELFNBQVNDLElBQUksQ0FBQ0ssUUFBUSxLQUFLLE1BQU07Z0JBQ25DLE9BQU90QyxFQUFFb0MsS0FBSyxDQUFDQyxXQUFXQyxRQUFRO1lBQ3BDLE9BQU87Z0JBQ0wsT0FBT3RDLEVBQUVvQyxLQUFLLENBQUNDO1lBQ2pCO1FBQ0Y7SUFDRixPQUFPLElBQUlMLFNBQVNoQixRQUFRLEtBQUssVUFBVTtRQUN6QyxNQUFNdUIsVUFBVSxNQUFNQyxRQUFRQyxHQUFHLENBQy9CVCxTQUFTZixRQUFRLENBQUNJLEdBQUcsQ0FBQyxPQUFPcUI7WUFDM0IzQyxPQUFPMkMsY0FBY1QsSUFBSSxFQUFFTCxTQUFTaEIsV0FBVztZQUMvQyxPQUFPO2dCQUFDOEIsY0FBY1QsSUFBSSxDQUFDTCxJQUFJO2dCQUFFLE1BQU1ULGtCQUFrQnVCO2FBQWU7UUFDMUU7UUFFRixNQUFNQyxNQUFNQyxPQUFPQyxXQUFXLENBQUNOO1FBRS9CLElBQUlQLFNBQVNDLElBQUksRUFBRUssYUFBYSxNQUFNO1lBQ3BDLE9BQU90QyxFQUFFOEMsTUFBTSxDQUFDSCxLQUFLTCxRQUFRO1FBQy9CLE9BQU87WUFDTCxPQUFPdEMsRUFBRThDLE1BQU0sQ0FBQ0g7UUFDbEI7SUFDRixPQUFPO1FBQ0wsTUFBTVQ7SUFDUjtBQUNGIn0=
@@ -0,0 +1,23 @@
1
+ import { type EntityNamesRecord } from "../entity/entity-manager";
2
+ import { type RelationProp } from "../types/types";
3
+ /**
4
+ * Enum의 표시용 라벨을 가져옵니다.
5
+ * OrderBy, SearchField 등 특수한 경우와 일반 Enum을 구분하여 처리합니다.
6
+ */
7
+ export declare function getLabel(entityId: string, enumId: string): string;
8
+ /**
9
+ * 컬럼 이름으로부터 Enum 정보를 추출합니다.
10
+ * Entity의 prop 중 enum 타입인 것을 찾아 관련 정보를 반환합니다.
11
+ */
12
+ export declare function getEnumInfoFromColName(entityId: string, colName: string): {
13
+ id: string;
14
+ targetEntityNames: EntityNamesRecord;
15
+ targetEntityId: string;
16
+ title: string;
17
+ };
18
+ /**
19
+ * 컬럼 이름으로부터 Relation prop 정보를 가져옵니다.
20
+ * 관계형 prop이 아닌 경우 에러를 발생시킵니다.
21
+ */
22
+ export declare function getRelationPropFromColName(entityId: string, colName: string): RelationProp;
23
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/template/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,EAA8B,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE/E;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAcjE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd;IACD,EAAE,EAAE,MAAM,CAAC;IACX,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACf,CA0BA;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY,CAY1F"}
@@ -0,0 +1,64 @@
1
+ import inflection from "inflection";
2
+ import { EntityManager } from "../entity/entity-manager.js";
3
+ import { isEnumProp, isRelationProp } from "../types/types.js";
4
+ /**
5
+ * Enum의 표시용 라벨을 가져옵니다.
6
+ * OrderBy, SearchField 등 특수한 경우와 일반 Enum을 구분하여 처리합니다.
7
+ */ export function getLabel(entityId, enumId) {
8
+ if (enumId.endsWith("OrderBy")) {
9
+ return "정렬";
10
+ } else if (enumId.endsWith("SearchField")) {
11
+ return "검색";
12
+ } else {
13
+ const enumProp = EntityManager.get(entityId).props.find((prop)=>`${entityId}${inflection.camelize(prop.name)}` === enumId);
14
+ if (enumProp?.desc) {
15
+ return enumProp.desc;
16
+ }
17
+ return enumId;
18
+ }
19
+ }
20
+ /**
21
+ * 컬럼 이름으로부터 Enum 정보를 추출합니다.
22
+ * Entity의 prop 중 enum 타입인 것을 찾아 관련 정보를 반환합니다.
23
+ */ export function getEnumInfoFromColName(entityId, colName) {
24
+ const baseEntity = EntityManager.get(entityId);
25
+ const prop = baseEntity.props.find((p)=>p.name === colName);
26
+ if (prop && isEnumProp(prop)) {
27
+ return {
28
+ id: prop.id,
29
+ targetEntityId: entityId,
30
+ targetEntityNames: EntityManager.getNamesFromId(entityId),
31
+ title: prop.desc ?? prop.id
32
+ };
33
+ } else {
34
+ const idCandidate = inflection.camelize(`${inflection.underscore(entityId)}_${inflection.underscore(colName)}`, false);
35
+ try {
36
+ const targetEntityNames = EntityManager.getNamesFromId(entityId);
37
+ return {
38
+ id: idCandidate,
39
+ targetEntityId: entityId,
40
+ targetEntityNames: targetEntityNames,
41
+ title: idCandidate
42
+ };
43
+ } catch {}
44
+ throw new Error(`찾을 수 없는 EnumProp ${colName}`);
45
+ }
46
+ }
47
+ /**
48
+ * 컬럼 이름으로부터 Relation prop 정보를 가져옵니다.
49
+ * 관계형 prop이 아닌 경우 에러를 발생시킵니다.
50
+ */ export function getRelationPropFromColName(entityId, colName) {
51
+ const baseEntity = EntityManager.get(entityId);
52
+ const relProp = baseEntity.props.find((prop)=>prop.name === colName);
53
+ if (isRelationProp(relProp)) {
54
+ const relEntity = EntityManager.get(relProp.with);
55
+ if (relEntity.parentId !== undefined) {
56
+ throw new Error("Only parent entities can be used as relation props");
57
+ }
58
+ return relProp;
59
+ } else {
60
+ throw new Error(`찾을 수 없는 Relation ${colName}`);
61
+ }
62
+ }
63
+
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZW1wbGF0ZS9oZWxwZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCI7XG5pbXBvcnQgeyBFbnRpdHlNYW5hZ2VyLCB0eXBlIEVudGl0eU5hbWVzUmVjb3JkIH0gZnJvbSBcIi4uL2VudGl0eS9lbnRpdHktbWFuYWdlclwiO1xuaW1wb3J0IHsgaXNFbnVtUHJvcCwgaXNSZWxhdGlvblByb3AsIHR5cGUgUmVsYXRpb25Qcm9wIH0gZnJvbSBcIi4uL3R5cGVzL3R5cGVzXCI7XG5cbi8qKlxuICogRW51beydmCDtkZzsi5zsmqkg652867Ko7J2EIOqwgOyguOyYteuLiOuLpC5cbiAqIE9yZGVyQnksIFNlYXJjaEZpZWxkIOuTsSDtirnsiJjtlZwg6rK97Jqw7JmAIOydvOuwmCBFbnVt7J2EIOq1rOu2hO2VmOyXrCDsspjrpqztlanri4jri6QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRMYWJlbChlbnRpdHlJZDogc3RyaW5nLCBlbnVtSWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChlbnVtSWQuZW5kc1dpdGgoXCJPcmRlckJ5XCIpKSB7XG4gICAgcmV0dXJuIFwi7KCV66CsXCI7XG4gIH0gZWxzZSBpZiAoZW51bUlkLmVuZHNXaXRoKFwiU2VhcmNoRmllbGRcIikpIHtcbiAgICByZXR1cm4gXCLqsoDsg4lcIjtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBlbnVtUHJvcCA9IEVudGl0eU1hbmFnZXIuZ2V0KGVudGl0eUlkKS5wcm9wcy5maW5kKFxuICAgICAgKHByb3ApID0+IGAke2VudGl0eUlkfSR7aW5mbGVjdGlvbi5jYW1lbGl6ZShwcm9wLm5hbWUpfWAgPT09IGVudW1JZCxcbiAgICApO1xuICAgIGlmIChlbnVtUHJvcD8uZGVzYykge1xuICAgICAgcmV0dXJuIGVudW1Qcm9wLmRlc2M7XG4gICAgfVxuICAgIHJldHVybiBlbnVtSWQ7XG4gIH1cbn1cblxuLyoqXG4gKiDsu6zrn7wg7J2066aE7Jy866Gc67aA7YSwIEVudW0g7KCV67O066W8IOy2lOy2nO2VqeuLiOuLpC5cbiAqIEVudGl0eeydmCBwcm9wIOykkSBlbnVtIO2DgOyeheyduCDqsoPsnYQg7LC+7JWEIOq0gOugqCDsoJXrs7Trpbwg67CY7ZmY7ZWp64uI64ukLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RW51bUluZm9Gcm9tQ29sTmFtZShcbiAgZW50aXR5SWQ6IHN0cmluZyxcbiAgY29sTmFtZTogc3RyaW5nLFxuKToge1xuICBpZDogc3RyaW5nO1xuICB0YXJnZXRFbnRpdHlOYW1lczogRW50aXR5TmFtZXNSZWNvcmQ7XG4gIHRhcmdldEVudGl0eUlkOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG59IHtcbiAgY29uc3QgYmFzZUVudGl0eSA9IEVudGl0eU1hbmFnZXIuZ2V0KGVudGl0eUlkKTtcbiAgY29uc3QgcHJvcCA9IGJhc2VFbnRpdHkucHJvcHMuZmluZCgocCkgPT4gcC5uYW1lID09PSBjb2xOYW1lKTtcbiAgaWYgKHByb3AgJiYgaXNFbnVtUHJvcChwcm9wKSkge1xuICAgIHJldHVybiB7XG4gICAgICBpZDogcHJvcC5pZCxcbiAgICAgIHRhcmdldEVudGl0eUlkOiBlbnRpdHlJZCxcbiAgICAgIHRhcmdldEVudGl0eU5hbWVzOiBFbnRpdHlNYW5hZ2VyLmdldE5hbWVzRnJvbUlkKGVudGl0eUlkKSxcbiAgICAgIHRpdGxlOiBwcm9wLmRlc2MgPz8gcHJvcC5pZCxcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGlkQ2FuZGlkYXRlID0gaW5mbGVjdGlvbi5jYW1lbGl6ZShcbiAgICAgIGAke2luZmxlY3Rpb24udW5kZXJzY29yZShlbnRpdHlJZCl9XyR7aW5mbGVjdGlvbi51bmRlcnNjb3JlKGNvbE5hbWUpfWAsXG4gICAgICBmYWxzZSxcbiAgICApO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB0YXJnZXRFbnRpdHlOYW1lcyA9IEVudGl0eU1hbmFnZXIuZ2V0TmFtZXNGcm9tSWQoZW50aXR5SWQpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IGlkQ2FuZGlkYXRlLFxuICAgICAgICB0YXJnZXRFbnRpdHlJZDogZW50aXR5SWQsXG4gICAgICAgIHRhcmdldEVudGl0eU5hbWVzOiB0YXJnZXRFbnRpdHlOYW1lcyxcbiAgICAgICAgdGl0bGU6IGlkQ2FuZGlkYXRlLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIHt9XG4gICAgdGhyb3cgbmV3IEVycm9yKGDssL7snYQg7IiYIOyXhuuKlCBFbnVtUHJvcCAke2NvbE5hbWV9YCk7XG4gIH1cbn1cblxuLyoqXG4gKiDsu6zrn7wg7J2066aE7Jy866Gc67aA7YSwIFJlbGF0aW9uIHByb3Ag7KCV67O066W8IOqwgOyguOyYteuLiOuLpC5cbiAqIOq0gOqzhO2YlSBwcm9w7J20IOyVhOuLjCDqsr3smrAg7JeQ65+s66W8IOuwnOyDneyLnO2CteuLiOuLpC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJlbGF0aW9uUHJvcEZyb21Db2xOYW1lKGVudGl0eUlkOiBzdHJpbmcsIGNvbE5hbWU6IHN0cmluZyk6IFJlbGF0aW9uUHJvcCB7XG4gIGNvbnN0IGJhc2VFbnRpdHkgPSBFbnRpdHlNYW5hZ2VyLmdldChlbnRpdHlJZCk7XG4gIGNvbnN0IHJlbFByb3AgPSBiYXNlRW50aXR5LnByb3BzLmZpbmQoKHByb3ApID0+IHByb3AubmFtZSA9PT0gY29sTmFtZSk7XG4gIGlmIChpc1JlbGF0aW9uUHJvcChyZWxQcm9wKSkge1xuICAgIGNvbnN0IHJlbEVudGl0eSA9IEVudGl0eU1hbmFnZXIuZ2V0KHJlbFByb3Aud2l0aCk7XG4gICAgaWYgKHJlbEVudGl0eS5wYXJlbnRJZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJPbmx5IHBhcmVudCBlbnRpdGllcyBjYW4gYmUgdXNlZCBhcyByZWxhdGlvbiBwcm9wc1wiKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlbFByb3A7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGDssL7snYQg7IiYIOyXhuuKlCBSZWxhdGlvbiAke2NvbE5hbWV9YCk7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJpbmZsZWN0aW9uIiwiRW50aXR5TWFuYWdlciIsImlzRW51bVByb3AiLCJpc1JlbGF0aW9uUHJvcCIsImdldExhYmVsIiwiZW50aXR5SWQiLCJlbnVtSWQiLCJlbmRzV2l0aCIsImVudW1Qcm9wIiwiZ2V0IiwicHJvcHMiLCJmaW5kIiwicHJvcCIsImNhbWVsaXplIiwibmFtZSIsImRlc2MiLCJnZXRFbnVtSW5mb0Zyb21Db2xOYW1lIiwiY29sTmFtZSIsImJhc2VFbnRpdHkiLCJwIiwiaWQiLCJ0YXJnZXRFbnRpdHlJZCIsInRhcmdldEVudGl0eU5hbWVzIiwiZ2V0TmFtZXNGcm9tSWQiLCJ0aXRsZSIsImlkQ2FuZGlkYXRlIiwidW5kZXJzY29yZSIsIkVycm9yIiwiZ2V0UmVsYXRpb25Qcm9wRnJvbUNvbE5hbWUiLCJyZWxQcm9wIiwicmVsRW50aXR5Iiwid2l0aCIsInBhcmVudElkIiwidW5kZWZpbmVkIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxnQkFBZ0IsYUFBYTtBQUNwQyxTQUFTQyxhQUFhLFFBQWdDLDhCQUEyQjtBQUNqRixTQUFTQyxVQUFVLEVBQUVDLGNBQWMsUUFBMkIsb0JBQWlCO0FBRS9FOzs7Q0FHQyxHQUNELE9BQU8sU0FBU0MsU0FBU0MsUUFBZ0IsRUFBRUMsTUFBYztJQUN2RCxJQUFJQSxPQUFPQyxRQUFRLENBQUMsWUFBWTtRQUM5QixPQUFPO0lBQ1QsT0FBTyxJQUFJRCxPQUFPQyxRQUFRLENBQUMsZ0JBQWdCO1FBQ3pDLE9BQU87SUFDVCxPQUFPO1FBQ0wsTUFBTUMsV0FBV1AsY0FBY1EsR0FBRyxDQUFDSixVQUFVSyxLQUFLLENBQUNDLElBQUksQ0FDckQsQ0FBQ0MsT0FBUyxHQUFHUCxXQUFXTCxXQUFXYSxRQUFRLENBQUNELEtBQUtFLElBQUksR0FBRyxLQUFLUjtRQUUvRCxJQUFJRSxVQUFVTyxNQUFNO1lBQ2xCLE9BQU9QLFNBQVNPLElBQUk7UUFDdEI7UUFDQSxPQUFPVDtJQUNUO0FBQ0Y7QUFFQTs7O0NBR0MsR0FDRCxPQUFPLFNBQVNVLHVCQUNkWCxRQUFnQixFQUNoQlksT0FBZTtJQU9mLE1BQU1DLGFBQWFqQixjQUFjUSxHQUFHLENBQUNKO0lBQ3JDLE1BQU1PLE9BQU9NLFdBQVdSLEtBQUssQ0FBQ0MsSUFBSSxDQUFDLENBQUNRLElBQU1BLEVBQUVMLElBQUksS0FBS0c7SUFDckQsSUFBSUwsUUFBUVYsV0FBV1UsT0FBTztRQUM1QixPQUFPO1lBQ0xRLElBQUlSLEtBQUtRLEVBQUU7WUFDWEMsZ0JBQWdCaEI7WUFDaEJpQixtQkFBbUJyQixjQUFjc0IsY0FBYyxDQUFDbEI7WUFDaERtQixPQUFPWixLQUFLRyxJQUFJLElBQUlILEtBQUtRLEVBQUU7UUFDN0I7SUFDRixPQUFPO1FBQ0wsTUFBTUssY0FBY3pCLFdBQVdhLFFBQVEsQ0FDckMsR0FBR2IsV0FBVzBCLFVBQVUsQ0FBQ3JCLFVBQVUsQ0FBQyxFQUFFTCxXQUFXMEIsVUFBVSxDQUFDVCxVQUFVLEVBQ3RFO1FBRUYsSUFBSTtZQUNGLE1BQU1LLG9CQUFvQnJCLGNBQWNzQixjQUFjLENBQUNsQjtZQUN2RCxPQUFPO2dCQUNMZSxJQUFJSztnQkFDSkosZ0JBQWdCaEI7Z0JBQ2hCaUIsbUJBQW1CQTtnQkFDbkJFLE9BQU9DO1lBQ1Q7UUFDRixFQUFFLE9BQU0sQ0FBQztRQUNULE1BQU0sSUFBSUUsTUFBTSxDQUFDLGlCQUFpQixFQUFFVixTQUFTO0lBQy9DO0FBQ0Y7QUFFQTs7O0NBR0MsR0FDRCxPQUFPLFNBQVNXLDJCQUEyQnZCLFFBQWdCLEVBQUVZLE9BQWU7SUFDMUUsTUFBTUMsYUFBYWpCLGNBQWNRLEdBQUcsQ0FBQ0o7SUFDckMsTUFBTXdCLFVBQVVYLFdBQVdSLEtBQUssQ0FBQ0MsSUFBSSxDQUFDLENBQUNDLE9BQVNBLEtBQUtFLElBQUksS0FBS0c7SUFDOUQsSUFBSWQsZUFBZTBCLFVBQVU7UUFDM0IsTUFBTUMsWUFBWTdCLGNBQWNRLEdBQUcsQ0FBQ29CLFFBQVFFLElBQUk7UUFDaEQsSUFBSUQsVUFBVUUsUUFBUSxLQUFLQyxXQUFXO1lBQ3BDLE1BQU0sSUFBSU4sTUFBTTtRQUNsQjtRQUNBLE9BQU9FO0lBQ1QsT0FBTztRQUNMLE1BQU0sSUFBSUYsTUFBTSxDQUFDLGlCQUFpQixFQUFFVixTQUFTO0lBQy9DO0FBQ0YifQ==
@@ -1,6 +1,6 @@
1
- import { TemplateOptions } from "../types/types";
2
- import { EntityNamesRecord } from "../entity/entity-manager";
3
- import { Template } from "./base-template";
1
+ import { type EntityNamesRecord } from "../../entity/entity-manager";
2
+ import type { TemplateOptions } from "../../types/types";
3
+ import { Template } from "../template";
4
4
  export declare class Template__entity extends Template {
5
5
  constructor();
6
6
  getTargetAndPath(names: EntityNamesRecord, parentNames?: EntityNamesRecord): {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity.template.d.ts","sourceRoot":"","sources":["../../../src/template/implementations/entity.template.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,qBAAa,gBAAiB,SAAQ,QAAQ;;IAK5C,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,EAAE,WAAW,CAAC,EAAE,iBAAiB;;;;IAS1E,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC;;;;;;CAoE1C"}
@@ -0,0 +1,86 @@
1
+ import { Sonamu } from "../../api/index.js";
2
+ import { EntityManager } from "../../entity/entity-manager.js";
3
+ import { Template } from "../template.js";
4
+ export class Template__entity extends Template {
5
+ constructor(){
6
+ super("entity");
7
+ }
8
+ getTargetAndPath(names, parentNames) {
9
+ const { dir } = Sonamu.config.api;
10
+ return {
11
+ target: `${dir}/src/application`,
12
+ path: `${(parentNames ?? names).fs}/${names.fs}.entity.json`
13
+ };
14
+ }
15
+ render(options) {
16
+ const { entityId, title, parentId, table } = options;
17
+ const names = EntityManager.getNamesFromId(entityId);
18
+ const parent = (()=>{
19
+ if (parentId) {
20
+ return {
21
+ names: EntityManager.getNamesFromId(parentId),
22
+ entity: EntityManager.get(parentId)
23
+ };
24
+ } else {
25
+ return null;
26
+ }
27
+ })();
28
+ return {
29
+ ...this.getTargetAndPath(names, parent?.names ?? names),
30
+ body: JSON.stringify({
31
+ id: entityId,
32
+ title: title ?? entityId,
33
+ parentId,
34
+ table: table ?? names.fsPlural.replace(/-/g, "_"),
35
+ props: options.props?.length ? options.props : [
36
+ {
37
+ name: "id",
38
+ type: "integer",
39
+ desc: "ID"
40
+ },
41
+ ...parent ? [
42
+ {
43
+ type: "relation",
44
+ name: parent.names.camel,
45
+ relationType: "BelongsToOne",
46
+ with: parentId,
47
+ onUpdate: "CASCADE",
48
+ onDelete: "CASCADE",
49
+ desc: parent.entity.title
50
+ }
51
+ ] : [],
52
+ {
53
+ name: "created_at",
54
+ type: "date",
55
+ desc: "등록일시",
56
+ dbDefault: "CURRENT_TIMESTAMP"
57
+ }
58
+ ],
59
+ indexes: [
60
+ ...options.indexes ?? []
61
+ ],
62
+ subsets: options.subsets ?? {
63
+ ...parentId ? {} : {
64
+ A: [
65
+ "id",
66
+ "created_at"
67
+ ]
68
+ }
69
+ },
70
+ enums: options.enums ?? {
71
+ ...parentId ? {} : {
72
+ [`${names.capital}OrderBy`]: {
73
+ "id-desc": "ID최신순"
74
+ },
75
+ [`${names.capital}SearchField`]: {
76
+ id: "ID"
77
+ }
78
+ }
79
+ }
80
+ }).trim(),
81
+ importKeys: []
82
+ };
83
+ }
84
+ }
85
+
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZW1wbGF0ZS9pbXBsZW1lbnRhdGlvbnMvZW50aXR5LnRlbXBsYXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNvbmFtdSB9IGZyb20gXCIuLi8uLi9hcGlcIjtcbmltcG9ydCB7IEVudGl0eU1hbmFnZXIsIHR5cGUgRW50aXR5TmFtZXNSZWNvcmQgfSBmcm9tIFwiLi4vLi4vZW50aXR5L2VudGl0eS1tYW5hZ2VyXCI7XG5pbXBvcnQgdHlwZSB7IFRlbXBsYXRlT3B0aW9ucyB9IGZyb20gXCIuLi8uLi90eXBlcy90eXBlc1wiO1xuaW1wb3J0IHsgVGVtcGxhdGUgfSBmcm9tIFwiLi4vdGVtcGxhdGVcIjtcblxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlX19lbnRpdHkgZXh0ZW5kcyBUZW1wbGF0ZSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKFwiZW50aXR5XCIpO1xuICB9XG5cbiAgZ2V0VGFyZ2V0QW5kUGF0aChuYW1lczogRW50aXR5TmFtZXNSZWNvcmQsIHBhcmVudE5hbWVzPzogRW50aXR5TmFtZXNSZWNvcmQpIHtcbiAgICBjb25zdCB7IGRpciB9ID0gU29uYW11LmNvbmZpZy5hcGk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgdGFyZ2V0OiBgJHtkaXJ9L3NyYy9hcHBsaWNhdGlvbmAsXG4gICAgICBwYXRoOiBgJHsocGFyZW50TmFtZXMgPz8gbmFtZXMpLmZzfS8ke25hbWVzLmZzfS5lbnRpdHkuanNvbmAsXG4gICAgfTtcbiAgfVxuXG4gIHJlbmRlcihvcHRpb25zOiBUZW1wbGF0ZU9wdGlvbnNbXCJlbnRpdHlcIl0pIHtcbiAgICBjb25zdCB7IGVudGl0eUlkLCB0aXRsZSwgcGFyZW50SWQsIHRhYmxlIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IG5hbWVzID0gRW50aXR5TWFuYWdlci5nZXROYW1lc0Zyb21JZChlbnRpdHlJZCk7XG5cbiAgICBjb25zdCBwYXJlbnQgPSAoKCkgPT4ge1xuICAgICAgaWYgKHBhcmVudElkKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbmFtZXM6IEVudGl0eU1hbmFnZXIuZ2V0TmFtZXNGcm9tSWQocGFyZW50SWQpLFxuICAgICAgICAgIGVudGl0eTogRW50aXR5TWFuYWdlci5nZXQocGFyZW50SWQpLFxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgfSkoKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi50aGlzLmdldFRhcmdldEFuZFBhdGgobmFtZXMsIHBhcmVudD8ubmFtZXMgPz8gbmFtZXMpLFxuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBpZDogZW50aXR5SWQsXG4gICAgICAgIHRpdGxlOiB0aXRsZSA/PyBlbnRpdHlJZCxcbiAgICAgICAgcGFyZW50SWQsXG4gICAgICAgIHRhYmxlOiB0YWJsZSA/PyBuYW1lcy5mc1BsdXJhbC5yZXBsYWNlKC8tL2csIFwiX1wiKSxcbiAgICAgICAgcHJvcHM6IG9wdGlvbnMucHJvcHM/Lmxlbmd0aFxuICAgICAgICAgID8gb3B0aW9ucy5wcm9wc1xuICAgICAgICAgIDogW1xuICAgICAgICAgICAgICB7IG5hbWU6IFwiaWRcIiwgdHlwZTogXCJpbnRlZ2VyXCIsIGRlc2M6IFwiSURcIiB9LFxuICAgICAgICAgICAgICAuLi4ocGFyZW50XG4gICAgICAgICAgICAgICAgPyBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInJlbGF0aW9uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZTogcGFyZW50Lm5hbWVzLmNhbWVsLFxuICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uVHlwZTogXCJCZWxvbmdzVG9PbmVcIixcbiAgICAgICAgICAgICAgICAgICAgICB3aXRoOiBwYXJlbnRJZCxcbiAgICAgICAgICAgICAgICAgICAgICBvblVwZGF0ZTogXCJDQVNDQURFXCIsXG4gICAgICAgICAgICAgICAgICAgICAgb25EZWxldGU6IFwiQ0FTQ0FERVwiLFxuICAgICAgICAgICAgICAgICAgICAgIGRlc2M6IHBhcmVudC5lbnRpdHkudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgOiBbXSksXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiBcImNyZWF0ZWRfYXRcIixcbiAgICAgICAgICAgICAgICB0eXBlOiBcImRhdGVcIixcbiAgICAgICAgICAgICAgICBkZXNjOiBcIuuTseuhneydvOyLnFwiLFxuICAgICAgICAgICAgICAgIGRiRGVmYXVsdDogXCJDVVJSRU5UX1RJTUVTVEFNUFwiLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgaW5kZXhlczogWy4uLihvcHRpb25zLmluZGV4ZXMgPz8gW10pXSxcbiAgICAgICAgc3Vic2V0czogb3B0aW9ucy5zdWJzZXRzID8/IHtcbiAgICAgICAgICAuLi4ocGFyZW50SWRcbiAgICAgICAgICAgID8ge31cbiAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgIEE6IFtcImlkXCIsIFwiY3JlYXRlZF9hdFwiXSxcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgIH0sXG4gICAgICAgIGVudW1zOiBvcHRpb25zLmVudW1zID8/IHtcbiAgICAgICAgICAuLi4ocGFyZW50SWRcbiAgICAgICAgICAgID8ge31cbiAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgIFtgJHtuYW1lcy5jYXBpdGFsfU9yZGVyQnlgXToge1xuICAgICAgICAgICAgICAgICAgXCJpZC1kZXNjXCI6IFwiSUTstZzsi6DsiJxcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFtgJHtuYW1lcy5jYXBpdGFsfVNlYXJjaEZpZWxkYF06IHsgaWQ6IFwiSURcIiB9LFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgfSxcbiAgICAgIH0pLnRyaW0oKSxcbiAgICAgIGltcG9ydEtleXM6IFtdLFxuICAgIH07XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJTb25hbXUiLCJFbnRpdHlNYW5hZ2VyIiwiVGVtcGxhdGUiLCJUZW1wbGF0ZV9fZW50aXR5IiwiZ2V0VGFyZ2V0QW5kUGF0aCIsIm5hbWVzIiwicGFyZW50TmFtZXMiLCJkaXIiLCJjb25maWciLCJhcGkiLCJ0YXJnZXQiLCJwYXRoIiwiZnMiLCJyZW5kZXIiLCJvcHRpb25zIiwiZW50aXR5SWQiLCJ0aXRsZSIsInBhcmVudElkIiwidGFibGUiLCJnZXROYW1lc0Zyb21JZCIsInBhcmVudCIsImVudGl0eSIsImdldCIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5IiwiaWQiLCJmc1BsdXJhbCIsInJlcGxhY2UiLCJwcm9wcyIsImxlbmd0aCIsIm5hbWUiLCJ0eXBlIiwiZGVzYyIsImNhbWVsIiwicmVsYXRpb25UeXBlIiwid2l0aCIsIm9uVXBkYXRlIiwib25EZWxldGUiLCJkYkRlZmF1bHQiLCJpbmRleGVzIiwic3Vic2V0cyIsIkEiLCJlbnVtcyIsImNhcGl0YWwiLCJ0cmltIiwiaW1wb3J0S2V5cyJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsTUFBTSxRQUFRLHFCQUFZO0FBQ25DLFNBQVNDLGFBQWEsUUFBZ0MsaUNBQThCO0FBRXBGLFNBQVNDLFFBQVEsUUFBUSxpQkFBYztBQUV2QyxPQUFPLE1BQU1DLHlCQUF5QkQ7SUFDcEMsYUFBYztRQUNaLEtBQUssQ0FBQztJQUNSO0lBRUFFLGlCQUFpQkMsS0FBd0IsRUFBRUMsV0FBK0IsRUFBRTtRQUMxRSxNQUFNLEVBQUVDLEdBQUcsRUFBRSxHQUFHUCxPQUFPUSxNQUFNLENBQUNDLEdBQUc7UUFFakMsT0FBTztZQUNMQyxRQUFRLEdBQUdILElBQUksZ0JBQWdCLENBQUM7WUFDaENJLE1BQU0sR0FBRyxBQUFDTCxDQUFBQSxlQUFlRCxLQUFJLEVBQUdPLEVBQUUsQ0FBQyxDQUFDLEVBQUVQLE1BQU1PLEVBQUUsQ0FBQyxZQUFZLENBQUM7UUFDOUQ7SUFDRjtJQUVBQyxPQUFPQyxPQUFrQyxFQUFFO1FBQ3pDLE1BQU0sRUFBRUMsUUFBUSxFQUFFQyxLQUFLLEVBQUVDLFFBQVEsRUFBRUMsS0FBSyxFQUFFLEdBQUdKO1FBQzdDLE1BQU1ULFFBQVFKLGNBQWNrQixjQUFjLENBQUNKO1FBRTNDLE1BQU1LLFNBQVMsQUFBQyxDQUFBO1lBQ2QsSUFBSUgsVUFBVTtnQkFDWixPQUFPO29CQUNMWixPQUFPSixjQUFja0IsY0FBYyxDQUFDRjtvQkFDcENJLFFBQVFwQixjQUFjcUIsR0FBRyxDQUFDTDtnQkFDNUI7WUFDRixPQUFPO2dCQUNMLE9BQU87WUFDVDtRQUNGLENBQUE7UUFFQSxPQUFPO1lBQ0wsR0FBRyxJQUFJLENBQUNiLGdCQUFnQixDQUFDQyxPQUFPZSxRQUFRZixTQUFTQSxNQUFNO1lBQ3ZEa0IsTUFBTUMsS0FBS0MsU0FBUyxDQUFDO2dCQUNuQkMsSUFBSVg7Z0JBQ0pDLE9BQU9BLFNBQVNEO2dCQUNoQkU7Z0JBQ0FDLE9BQU9BLFNBQVNiLE1BQU1zQixRQUFRLENBQUNDLE9BQU8sQ0FBQyxNQUFNO2dCQUM3Q0MsT0FBT2YsUUFBUWUsS0FBSyxFQUFFQyxTQUNsQmhCLFFBQVFlLEtBQUssR0FDYjtvQkFDRTt3QkFBRUUsTUFBTTt3QkFBTUMsTUFBTTt3QkFBV0MsTUFBTTtvQkFBSzt1QkFDdENiLFNBQ0E7d0JBQ0U7NEJBQ0VZLE1BQU07NEJBQ05ELE1BQU1YLE9BQU9mLEtBQUssQ0FBQzZCLEtBQUs7NEJBQ3hCQyxjQUFjOzRCQUNkQyxNQUFNbkI7NEJBQ05vQixVQUFVOzRCQUNWQyxVQUFVOzRCQUNWTCxNQUFNYixPQUFPQyxNQUFNLENBQUNMLEtBQUs7d0JBQzNCO3FCQUNELEdBQ0QsRUFBRTtvQkFDTjt3QkFDRWUsTUFBTTt3QkFDTkMsTUFBTTt3QkFDTkMsTUFBTTt3QkFDTk0sV0FBVztvQkFDYjtpQkFDRDtnQkFDTEMsU0FBUzt1QkFBSzFCLFFBQVEwQixPQUFPLElBQUksRUFBRTtpQkFBRTtnQkFDckNDLFNBQVMzQixRQUFRMkIsT0FBTyxJQUFJO29CQUMxQixHQUFJeEIsV0FDQSxDQUFDLElBQ0Q7d0JBQ0V5QixHQUFHOzRCQUFDOzRCQUFNO3lCQUFhO29CQUN6QixDQUFDO2dCQUNQO2dCQUNBQyxPQUFPN0IsUUFBUTZCLEtBQUssSUFBSTtvQkFDdEIsR0FBSTFCLFdBQ0EsQ0FBQyxJQUNEO3dCQUNFLENBQUMsR0FBR1osTUFBTXVDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFOzRCQUMzQixXQUFXO3dCQUNiO3dCQUNBLENBQUMsR0FBR3ZDLE1BQU11QyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRTs0QkFBRWxCLElBQUk7d0JBQUs7b0JBQzlDLENBQUM7Z0JBQ1A7WUFDRixHQUFHbUIsSUFBSTtZQUNQQyxZQUFZLEVBQUU7UUFDaEI7SUFDRjtBQUNGIn0=
@@ -1,6 +1,5 @@
1
- import { TemplateOptions } from "../types/types";
2
- import { Entity } from "../entity/entity";
3
- import { Template } from "./base-template";
1
+ import type { Entity } from "../../entity/entity";
2
+ import { Template } from "../template";
4
3
  export type SourceCode = {
5
4
  label: string;
6
5
  lines: string[];
@@ -12,7 +11,7 @@ export declare class Template__generated extends Template {
12
11
  target: string;
13
12
  path: string;
14
13
  };
15
- render({}: TemplateOptions["generated"]): {
14
+ render(): {
16
15
  body: string;
17
16
  importKeys: string[];
18
17
  customHeaders: string[];
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generated.template.d.ts","sourceRoot":"","sources":["../../../src/template/implementations/generated.template.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAKlD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AACF,qBAAa,mBAAoB,SAAQ,QAAQ;;IAK/C,gBAAgB;;;;IAOhB,MAAM;;;;;;;IAmGN,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAqBrD,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,GAAE,MAAM,EAAO,GAAG,UAAU;IAsD9E,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAiD9D,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;CA8CvD"}