sonamu 0.5.7 → 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 (358) 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.map +1 -1
  11. package/dist/api/decorators.js +142 -2
  12. package/dist/api/index.js +9 -2
  13. package/dist/api/sonamu.d.ts +8 -22
  14. package/dist/api/sonamu.d.ts.map +1 -1
  15. package/dist/api/sonamu.js +482 -2
  16. package/dist/bin/build-config.d.ts +2 -1
  17. package/dist/bin/build-config.d.ts.map +1 -1
  18. package/dist/bin/build-config.js +12 -2
  19. package/dist/bin/cli-wrapper.js +71 -2
  20. package/dist/bin/cli.js +418 -2
  21. package/dist/bin/hot-hook-register.d.ts +11 -0
  22. package/dist/bin/hot-hook-register.d.ts.map +1 -0
  23. package/dist/bin/hot-hook-register.js +21 -0
  24. package/dist/database/_batch_update.js +78 -2
  25. package/dist/database/base-model.js +247 -2
  26. package/dist/database/code-generator.js +53 -2
  27. package/dist/database/db.d.ts +2 -16
  28. package/dist/database/db.d.ts.map +1 -1
  29. package/dist/database/db.js +132 -2
  30. package/dist/database/knex-plugins/knex-on-duplicate-update.js +39 -2
  31. package/dist/database/puri-wrapper.js +109 -2
  32. package/dist/database/puri.d.ts +23 -16
  33. package/dist/database/puri.d.ts.map +1 -1
  34. package/dist/database/puri.js +539 -2
  35. package/dist/database/puri.types.d.ts +8 -3
  36. package/dist/database/puri.types.d.ts.map +1 -1
  37. package/dist/database/puri.types.js +3 -2
  38. package/dist/database/transaction-context.js +14 -2
  39. package/dist/database/upsert-builder.js +215 -2
  40. package/dist/entity/entity-manager.d.ts +3 -1
  41. package/dist/entity/entity-manager.d.ts.map +1 -1
  42. package/dist/entity/entity-manager.js +114 -2
  43. package/dist/entity/entity-utils.js +210 -2
  44. package/dist/entity/entity.d.ts.map +1 -1
  45. package/dist/entity/entity.js +651 -2
  46. package/dist/exceptions/error-handler.js +29 -2
  47. package/dist/exceptions/so-exceptions.js +85 -2
  48. package/dist/file-storage/driver.js +79 -2
  49. package/dist/file-storage/file-storage.js +75 -2
  50. package/dist/index.d.ts +2 -0
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +28 -2
  53. package/dist/migration/code-generation.js +558 -2
  54. package/dist/migration/migration-set.js +364 -2
  55. package/dist/migration/migrator.d.ts +0 -9
  56. package/dist/migration/migrator.d.ts.map +1 -1
  57. package/dist/migration/migrator.js +510 -2
  58. package/dist/migration/types.js +3 -2
  59. package/dist/naite/naite.d.ts +12 -0
  60. package/dist/naite/naite.d.ts.map +1 -0
  61. package/dist/naite/naite.js +72 -0
  62. package/dist/stream/index.js +3 -2
  63. package/dist/stream/sse.js +38 -2
  64. package/dist/syncer/api-parser.d.ts +20 -0
  65. package/dist/syncer/api-parser.d.ts.map +1 -0
  66. package/dist/syncer/api-parser.js +229 -0
  67. package/dist/syncer/checksum.d.ts +21 -0
  68. package/dist/syncer/checksum.d.ts.map +1 -0
  69. package/dist/syncer/checksum.js +98 -0
  70. package/dist/syncer/code-generator.d.ts +20 -0
  71. package/dist/syncer/code-generator.d.ts.map +1 -0
  72. package/dist/syncer/code-generator.js +141 -0
  73. package/dist/syncer/entity-operations.d.ts +17 -0
  74. package/dist/syncer/entity-operations.d.ts.map +1 -0
  75. package/dist/syncer/entity-operations.js +58 -0
  76. package/dist/syncer/file-patterns.d.ts +29 -0
  77. package/dist/syncer/file-patterns.d.ts.map +1 -0
  78. package/dist/syncer/file-patterns.js +38 -0
  79. package/dist/syncer/index.d.ts +6 -0
  80. package/dist/syncer/index.d.ts.map +1 -1
  81. package/dist/syncer/index.js +9 -2
  82. package/dist/syncer/module-loader.d.ts +35 -0
  83. package/dist/syncer/module-loader.d.ts.map +1 -0
  84. package/dist/syncer/module-loader.js +82 -0
  85. package/dist/syncer/syncer.d.ts +93 -108
  86. package/dist/syncer/syncer.d.ts.map +1 -1
  87. package/dist/syncer/syncer.js +375 -2
  88. package/dist/template/entity-converter.d.ts +14 -0
  89. package/dist/template/entity-converter.d.ts.map +1 -0
  90. package/dist/template/entity-converter.js +101 -0
  91. package/dist/template/helpers.d.ts +23 -0
  92. package/dist/template/helpers.d.ts.map +1 -0
  93. package/dist/template/helpers.js +64 -0
  94. package/dist/{templates → template/implementations}/entity.template.d.ts +3 -3
  95. package/dist/template/implementations/entity.template.d.ts.map +1 -0
  96. package/dist/template/implementations/entity.template.js +87 -0
  97. package/dist/{templates → template/implementations}/generated.template.d.ts +3 -3
  98. package/dist/template/implementations/generated.template.d.ts.map +1 -0
  99. package/dist/template/implementations/generated.template.js +232 -0
  100. package/dist/{templates → template/implementations}/generated_http.template.d.ts +3 -3
  101. package/dist/template/implementations/generated_http.template.d.ts.map +1 -0
  102. package/dist/template/implementations/generated_http.template.js +131 -0
  103. package/dist/{templates → template/implementations}/generated_sso.template.d.ts +3 -3
  104. package/dist/template/implementations/generated_sso.template.d.ts.map +1 -0
  105. package/dist/template/implementations/generated_sso.template.js +105 -0
  106. package/dist/{templates → template/implementations}/init_types.template.d.ts +3 -3
  107. package/dist/template/implementations/init_types.template.d.ts.map +1 -0
  108. package/dist/template/implementations/init_types.template.js +38 -0
  109. package/dist/template/implementations/model.template.d.ts +17 -0
  110. package/dist/template/implementations/model.template.d.ts.map +1 -0
  111. package/dist/template/implementations/model.template.js +171 -0
  112. package/dist/{templates → template/implementations}/model_test.template.d.ts +3 -3
  113. package/dist/template/implementations/model_test.template.d.ts.map +1 -0
  114. package/dist/template/implementations/model_test.template.js +35 -0
  115. package/dist/{templates → template/implementations}/service.template.d.ts +6 -6
  116. package/dist/template/implementations/service.template.d.ts.map +1 -0
  117. package/dist/template/implementations/service.template.js +193 -0
  118. package/dist/{templates → template/implementations}/view_enums_buttonset.template.d.ts +3 -3
  119. package/dist/template/implementations/view_enums_buttonset.template.d.ts.map +1 -0
  120. package/dist/template/implementations/view_enums_buttonset.template.js +31 -0
  121. package/dist/{templates → template/implementations}/view_enums_dropdown.template.d.ts +3 -4
  122. package/dist/template/implementations/view_enums_dropdown.template.d.ts.map +1 -0
  123. package/dist/template/implementations/view_enums_dropdown.template.js +50 -0
  124. package/dist/{templates → template/implementations}/view_enums_select.template.d.ts +3 -3
  125. package/dist/template/implementations/view_enums_select.template.d.ts.map +1 -0
  126. package/dist/template/implementations/view_enums_select.template.js +55 -0
  127. package/dist/{templates → template/implementations}/view_form.template.d.ts +5 -5
  128. package/dist/template/implementations/view_form.template.d.ts.map +1 -0
  129. package/dist/template/implementations/view_form.template.js +337 -0
  130. package/dist/{templates → template/implementations}/view_id_all_select.template.d.ts +3 -3
  131. package/dist/template/implementations/view_id_all_select.template.d.ts.map +1 -0
  132. package/dist/template/implementations/view_id_all_select.template.js +31 -0
  133. package/dist/{templates → template/implementations}/view_id_async_select.template.d.ts +3 -3
  134. package/dist/template/implementations/view_id_async_select.template.d.ts.map +1 -0
  135. package/dist/template/implementations/view_id_async_select.template.js +105 -0
  136. package/dist/{templates → template/implementations}/view_list.template.d.ts +5 -13
  137. package/dist/template/implementations/view_list.template.d.ts.map +1 -0
  138. package/dist/template/implementations/view_list.template.js +465 -0
  139. package/dist/{templates → template/implementations}/view_list_columns.template.d.ts +3 -3
  140. package/dist/template/implementations/view_list_columns.template.d.ts.map +1 -0
  141. package/dist/template/implementations/view_list_columns.template.js +49 -0
  142. package/dist/{templates → template/implementations}/view_search_input.template.d.ts +3 -3
  143. package/dist/template/implementations/view_search_input.template.d.ts.map +1 -0
  144. package/dist/template/implementations/view_search_input.template.js +64 -0
  145. package/dist/template/index.d.ts +5 -0
  146. package/dist/template/index.d.ts.map +1 -0
  147. package/dist/template/index.js +6 -0
  148. package/dist/template/template.d.ts +39 -0
  149. package/dist/template/template.d.ts.map +1 -0
  150. package/dist/template/template.js +47 -0
  151. package/dist/template/zod-converter.d.ts +18 -0
  152. package/dist/template/zod-converter.d.ts.map +1 -0
  153. package/dist/template/zod-converter.js +166 -0
  154. package/dist/testing/_relation-graph.js +80 -2
  155. package/dist/testing/fixture-manager.d.ts.map +1 -1
  156. package/dist/testing/fixture-manager.js +521 -2
  157. package/dist/types/types.d.ts +39 -40
  158. package/dist/types/types.d.ts.map +1 -1
  159. package/dist/types/types.js +289 -2
  160. package/dist/typings/knex.d.js +3 -2
  161. package/dist/utils/async-utils.d.ts +7 -0
  162. package/dist/utils/async-utils.d.ts.map +1 -1
  163. package/dist/utils/async-utils.js +57 -2
  164. package/dist/utils/console-util.d.ts +2 -0
  165. package/dist/utils/console-util.d.ts.map +1 -0
  166. package/dist/utils/console-util.js +6 -0
  167. package/dist/utils/controller.js +26 -2
  168. package/dist/utils/esm-utils.d.ts +45 -0
  169. package/dist/utils/esm-utils.d.ts.map +1 -0
  170. package/dist/utils/esm-utils.js +56 -0
  171. package/dist/utils/fs-utils.js +17 -2
  172. package/dist/utils/lodash-able.js +6 -2
  173. package/dist/utils/model.js +22 -2
  174. package/dist/utils/path-utils.d.ts +89 -0
  175. package/dist/utils/path-utils.d.ts.map +1 -0
  176. package/dist/utils/path-utils.js +60 -0
  177. package/dist/utils/process-utils.d.ts +13 -0
  178. package/dist/utils/process-utils.d.ts.map +1 -0
  179. package/dist/utils/process-utils.js +36 -0
  180. package/dist/utils/sql-parser.js +35 -2
  181. package/dist/utils/utils.d.ts +4 -7
  182. package/dist/utils/utils.d.ts.map +1 -1
  183. package/dist/utils/utils.js +33 -2
  184. package/dist/utils/zod-error.d.ts.map +1 -1
  185. package/dist/utils/zod-error.js +19 -2
  186. package/package.json +21 -8
  187. package/src/api/code-converters.ts +2 -2
  188. package/src/api/config.ts +142 -0
  189. package/src/api/context.ts +1 -0
  190. package/src/api/decorators.ts +1 -0
  191. package/src/api/sonamu.ts +81 -67
  192. package/src/bin/build-config.ts +2 -1
  193. package/src/bin/cli-wrapper.ts +10 -3
  194. package/src/bin/cli.ts +108 -56
  195. package/src/bin/hot-hook-register.ts +22 -0
  196. package/src/database/base-model.ts +1 -1
  197. package/src/database/code-generator.ts +1 -1
  198. package/src/database/db.ts +10 -52
  199. package/src/database/puri.ts +78 -53
  200. package/src/database/puri.types.ts +18 -5
  201. package/src/database/upsert-builder.ts +1 -1
  202. package/src/entity/entity-manager.ts +19 -15
  203. package/src/entity/entity.ts +4 -3
  204. package/src/index.ts +2 -0
  205. package/src/migration/code-generation.ts +1 -1
  206. package/src/migration/migration-set.ts +1 -1
  207. package/src/migration/migrator.ts +23 -152
  208. package/src/naite/naite.ts +70 -0
  209. package/src/syncer/api-parser.ts +299 -0
  210. package/src/syncer/checksum.ts +152 -0
  211. package/src/syncer/code-generator.ts +202 -0
  212. package/src/syncer/entity-operations.ts +68 -0
  213. package/src/syncer/file-patterns.ts +56 -0
  214. package/src/syncer/index.ts +6 -0
  215. package/src/syncer/module-loader.ts +125 -0
  216. package/src/syncer/syncer.ts +363 -1420
  217. package/src/template/entity-converter.ts +123 -0
  218. package/src/template/helpers.ts +84 -0
  219. package/src/{templates → template/implementations}/entity.template.ts +4 -4
  220. package/src/{templates → template/implementations}/generated.template.ts +9 -9
  221. package/src/{templates → template/implementations}/generated_http.template.ts +9 -6
  222. package/src/{templates → template/implementations}/generated_sso.template.ts +7 -7
  223. package/src/{templates → template/implementations}/init_types.template.ts +4 -4
  224. package/src/{templates → template/implementations}/model.template.ts +9 -9
  225. package/src/{templates → template/implementations}/model_test.template.ts +5 -5
  226. package/src/{templates → template/implementations}/service.template.ts +19 -11
  227. package/src/{templates → template/implementations}/view_enums_buttonset.template.ts +3 -3
  228. package/src/{templates → template/implementations}/view_enums_dropdown.template.ts +5 -21
  229. package/src/{templates → template/implementations}/view_enums_select.template.ts +4 -4
  230. package/src/{templates → template/implementations}/view_form.template.ts +11 -13
  231. package/src/{templates → template/implementations}/view_id_all_select.template.ts +3 -3
  232. package/src/{templates → template/implementations}/view_id_async_select.template.ts +3 -3
  233. package/src/{templates → template/implementations}/view_list.template.ts +13 -64
  234. package/src/{templates → template/implementations}/view_list_columns.template.ts +3 -3
  235. package/src/{templates → template/implementations}/view_search_input.template.ts +3 -3
  236. package/src/template/index.ts +4 -0
  237. package/src/template/template.ts +86 -0
  238. package/src/template/zod-converter.ts +219 -0
  239. package/src/testing/fixture-manager.ts +8 -1
  240. package/src/types/types.ts +38 -61
  241. package/src/utils/async-utils.ts +17 -0
  242. package/src/utils/console-util.ts +4 -0
  243. package/src/utils/esm-utils.ts +69 -0
  244. package/src/utils/path-utils.ts +102 -0
  245. package/src/utils/process-utils.ts +46 -0
  246. package/src/utils/sql-parser.ts +1 -1
  247. package/src/utils/utils.ts +14 -40
  248. package/src/utils/zod-error.ts +0 -1
  249. package/dist/api/base-frame.js.map +0 -1
  250. package/dist/api/caster.js.map +0 -1
  251. package/dist/api/code-converters.js.map +0 -1
  252. package/dist/api/context.js.map +0 -1
  253. package/dist/api/decorators.js.map +0 -1
  254. package/dist/api/index.js.map +0 -1
  255. package/dist/api/sonamu.js.map +0 -1
  256. package/dist/bin/build-config.js.map +0 -1
  257. package/dist/bin/cli-wrapper.js.map +0 -1
  258. package/dist/bin/cli.js.map +0 -1
  259. package/dist/database/_batch_update.js.map +0 -1
  260. package/dist/database/base-model.js.map +0 -1
  261. package/dist/database/code-generator.js.map +0 -1
  262. package/dist/database/db.js.map +0 -1
  263. package/dist/database/knex-plugins/knex-on-duplicate-update.js.map +0 -1
  264. package/dist/database/puri-wrapper.js.map +0 -1
  265. package/dist/database/puri.js.map +0 -1
  266. package/dist/database/puri.types.js.map +0 -1
  267. package/dist/database/transaction-context.js.map +0 -1
  268. package/dist/database/upsert-builder.js.map +0 -1
  269. package/dist/entity/entity-manager.js.map +0 -1
  270. package/dist/entity/entity-utils.js.map +0 -1
  271. package/dist/entity/entity.js.map +0 -1
  272. package/dist/exceptions/error-handler.js.map +0 -1
  273. package/dist/exceptions/so-exceptions.js.map +0 -1
  274. package/dist/file-storage/driver.js.map +0 -1
  275. package/dist/file-storage/file-storage.js.map +0 -1
  276. package/dist/index.js.map +0 -1
  277. package/dist/migration/code-generation.js.map +0 -1
  278. package/dist/migration/migration-set.js.map +0 -1
  279. package/dist/migration/migrator.js.map +0 -1
  280. package/dist/migration/types.js.map +0 -1
  281. package/dist/stream/index.js.map +0 -1
  282. package/dist/stream/sse.js.map +0 -1
  283. package/dist/syncer/index.js.map +0 -1
  284. package/dist/syncer/syncer.js.map +0 -1
  285. package/dist/templates/base-template.d.ts +0 -13
  286. package/dist/templates/base-template.d.ts.map +0 -1
  287. package/dist/templates/base-template.js +0 -2
  288. package/dist/templates/base-template.js.map +0 -1
  289. package/dist/templates/entity.template.d.ts.map +0 -1
  290. package/dist/templates/entity.template.js +0 -2
  291. package/dist/templates/entity.template.js.map +0 -1
  292. package/dist/templates/generated.template.d.ts.map +0 -1
  293. package/dist/templates/generated.template.js +0 -2
  294. package/dist/templates/generated.template.js.map +0 -1
  295. package/dist/templates/generated_http.template.d.ts.map +0 -1
  296. package/dist/templates/generated_http.template.js +0 -2
  297. package/dist/templates/generated_http.template.js.map +0 -1
  298. package/dist/templates/generated_sso.template.d.ts.map +0 -1
  299. package/dist/templates/generated_sso.template.js +0 -2
  300. package/dist/templates/generated_sso.template.js.map +0 -1
  301. package/dist/templates/index.d.ts +0 -2
  302. package/dist/templates/index.d.ts.map +0 -1
  303. package/dist/templates/index.js +0 -2
  304. package/dist/templates/index.js.map +0 -1
  305. package/dist/templates/init_types.template.d.ts.map +0 -1
  306. package/dist/templates/init_types.template.js +0 -2
  307. package/dist/templates/init_types.template.js.map +0 -1
  308. package/dist/templates/model.template.d.ts +0 -17
  309. package/dist/templates/model.template.d.ts.map +0 -1
  310. package/dist/templates/model.template.js +0 -2
  311. package/dist/templates/model.template.js.map +0 -1
  312. package/dist/templates/model_test.template.d.ts.map +0 -1
  313. package/dist/templates/model_test.template.js +0 -2
  314. package/dist/templates/model_test.template.js.map +0 -1
  315. package/dist/templates/service.template.d.ts.map +0 -1
  316. package/dist/templates/service.template.js +0 -2
  317. package/dist/templates/service.template.js.map +0 -1
  318. package/dist/templates/view_enums_buttonset.template.d.ts.map +0 -1
  319. package/dist/templates/view_enums_buttonset.template.js +0 -2
  320. package/dist/templates/view_enums_buttonset.template.js.map +0 -1
  321. package/dist/templates/view_enums_dropdown.template.d.ts.map +0 -1
  322. package/dist/templates/view_enums_dropdown.template.js +0 -2
  323. package/dist/templates/view_enums_dropdown.template.js.map +0 -1
  324. package/dist/templates/view_enums_select.template.d.ts.map +0 -1
  325. package/dist/templates/view_enums_select.template.js +0 -2
  326. package/dist/templates/view_enums_select.template.js.map +0 -1
  327. package/dist/templates/view_form.template.d.ts.map +0 -1
  328. package/dist/templates/view_form.template.js +0 -2
  329. package/dist/templates/view_form.template.js.map +0 -1
  330. package/dist/templates/view_id_all_select.template.d.ts.map +0 -1
  331. package/dist/templates/view_id_all_select.template.js +0 -2
  332. package/dist/templates/view_id_all_select.template.js.map +0 -1
  333. package/dist/templates/view_id_async_select.template.d.ts.map +0 -1
  334. package/dist/templates/view_id_async_select.template.js +0 -2
  335. package/dist/templates/view_id_async_select.template.js.map +0 -1
  336. package/dist/templates/view_list.template.d.ts.map +0 -1
  337. package/dist/templates/view_list.template.js +0 -2
  338. package/dist/templates/view_list.template.js.map +0 -1
  339. package/dist/templates/view_list_columns.template.d.ts.map +0 -1
  340. package/dist/templates/view_list_columns.template.js +0 -2
  341. package/dist/templates/view_list_columns.template.js.map +0 -1
  342. package/dist/templates/view_search_input.template.d.ts.map +0 -1
  343. package/dist/templates/view_search_input.template.js +0 -2
  344. package/dist/templates/view_search_input.template.js.map +0 -1
  345. package/dist/testing/_relation-graph.js.map +0 -1
  346. package/dist/testing/fixture-manager.js.map +0 -1
  347. package/dist/types/types.js.map +0 -1
  348. package/dist/typings/knex.d.js.map +0 -1
  349. package/dist/utils/async-utils.js.map +0 -1
  350. package/dist/utils/controller.js.map +0 -1
  351. package/dist/utils/fs-utils.js.map +0 -1
  352. package/dist/utils/lodash-able.js.map +0 -1
  353. package/dist/utils/model.js.map +0 -1
  354. package/dist/utils/sql-parser.js.map +0 -1
  355. package/dist/utils/utils.js.map +0 -1
  356. package/dist/utils/zod-error.js.map +0 -1
  357. package/src/templates/base-template.ts +0 -19
  358. package/src/templates/index.ts +0 -1
@@ -1,2 +1,12 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"BaseFrameClass",{enumerable:true,get:function(){return BaseFrameClass}});var _db=require("../database/db");var _upsertbuilder=require("../database/upsert-builder");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}var BaseFrameClass=/*#__PURE__*/function(){"use strict";function BaseFrameClass(){_class_call_check(this,BaseFrameClass)}_create_class(BaseFrameClass,[{key:"getDB",value:function getDB(which){return _db.DB.getDB(which)}},{key:"getUpsertBuilder",value:function getUpsertBuilder(){return new _upsertbuilder.UpsertBuilder}}]);return BaseFrameClass}();
2
- //# sourceMappingURL=base-frame.js.map
1
+ import { DB } from "../database/db.js";
2
+ import { UpsertBuilder } from "../database/upsert-builder.js";
3
+ export class BaseFrameClass {
4
+ getDB(which) {
5
+ return DB.getDB(which);
6
+ }
7
+ getUpsertBuilder() {
8
+ return new UpsertBuilder();
9
+ }
10
+ }
11
+
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvYmFzZS1mcmFtZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBLbmV4IH0gZnJvbSBcImtuZXhcIjtcbmltcG9ydCB7IERCLCBEQlByZXNldCB9IGZyb20gXCIuLi9kYXRhYmFzZS9kYlwiO1xuaW1wb3J0IHsgVXBzZXJ0QnVpbGRlciB9IGZyb20gXCIuLi9kYXRhYmFzZS91cHNlcnQtYnVpbGRlclwiO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUZyYW1lQ2xhc3Mge1xuICBnZXREQih3aGljaDogREJQcmVzZXQpOiBLbmV4IHtcbiAgICByZXR1cm4gREIuZ2V0REIod2hpY2gpO1xuICB9XG5cbiAgZ2V0VXBzZXJ0QnVpbGRlcigpIHtcbiAgICByZXR1cm4gbmV3IFVwc2VydEJ1aWxkZXIoKTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkRCIiwiVXBzZXJ0QnVpbGRlciIsIkJhc2VGcmFtZUNsYXNzIiwiZ2V0REIiLCJ3aGljaCIsImdldFVwc2VydEJ1aWxkZXIiXSwibWFwcGluZ3MiOiJBQUNBLFNBQVNBLEVBQUUsUUFBa0Isb0JBQWlCO0FBQzlDLFNBQVNDLGFBQWEsUUFBUSxnQ0FBNkI7QUFFM0QsT0FBTyxNQUFlQztJQUNwQkMsTUFBTUMsS0FBZSxFQUFRO1FBQzNCLE9BQU9KLEdBQUdHLEtBQUssQ0FBQ0M7SUFDbEI7SUFFQUMsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSUo7SUFDYjtBQUNGIn0=
@@ -1,2 +1,66 @@
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 caster(){return caster},get fastifyCaster(){return fastifyCaster}});var _assert=/*#__PURE__*/_interop_require_default(require("assert"));var _zod=require("zod");function _instanceof(left,right){if(right!=null&&typeof Symbol!=="undefined"&&right[Symbol.hasInstance]){return!!right[Symbol.hasInstance](left)}else{return left instanceof right}}function _interop_require_default(obj){return obj&&obj.__esModule?obj:{default:obj}}function _type_of(obj){"@swc/helpers - typeof";return obj&&typeof Symbol!=="undefined"&&obj.constructor===Symbol?"symbol":typeof obj}function isNumberType(zodType){return _instanceof(zodType,_zod.z.ZodNumber)}function isNullOrOptional(zodType){return _instanceof(zodType,_zod.z.ZodNullable)||_instanceof(zodType,_zod.z.ZodOptional)}function isZodNumberAnyway(zodType){if(isNumberType(zodType)){return true}if(isNullOrOptional(zodType)&&isNumberType(zodType.def.innerType)){return true}return false}function caster(zodType,raw){if(isZodNumberAnyway(zodType)&&typeof raw==="string"){return Number(raw)}else if(_instanceof(zodType,_zod.z.ZodUnion)&&zodType.options.some(function(opt){return isZodNumberAnyway(opt)})){if(Array.isArray(raw)){var numType=zodType.options.find(function(opt){return isNumberType(opt)});(0,_assert.default)(numType!==undefined);return raw.map(function(elem){return caster(numType,elem)})}else{return Number(raw)}}else if(_instanceof(zodType,_zod.z.ZodBoolean)&&(raw==="true"||raw==="false")){return raw==="true"}else if(raw!==null&&Array.isArray(raw)&&_instanceof(zodType,_zod.z.ZodArray)){return raw.map(function(elem){return caster(zodType.element,elem)})}else if(_instanceof(zodType,_zod.z.ZodObject)&&(typeof raw==="undefined"?"undefined":_type_of(raw))==="object"&&raw!==null){return Object.keys(raw).reduce(function(r,rawKey){r[rawKey]=caster(zodType.shape[rawKey],raw[rawKey]);return r},{})}else if(_instanceof(zodType,_zod.z.ZodOptional)){return caster(zodType.def.innerType,raw)}else if(_instanceof(zodType,_zod.z.ZodNullable)){return caster(zodType.def.innerType,raw)}else if(_instanceof(zodType,_zod.z.ZodDate)&&new Date(raw).toString()!=="Invalid Date"){return new Date(raw)}else{return raw}}function fastifyCaster(schema){return _zod.z.preprocess(function(raw){return caster(schema,raw)},schema)}
2
- //# sourceMappingURL=caster.js.map
1
+ import assert from "assert";
2
+ import { z } from "zod";
3
+ function isNumberType(zodType) {
4
+ return zodType instanceof z.ZodNumber;
5
+ }
6
+ function isNullOrOptional(zodType) {
7
+ return zodType instanceof z.ZodNullable || zodType instanceof z.ZodOptional;
8
+ }
9
+ // optional, nullable 무관하게 ZodNumber 체크
10
+ function isZodNumberAnyway(zodType) {
11
+ if (isNumberType(zodType)) {
12
+ return true;
13
+ }
14
+ // ZodNullable 또는 ZodOptional일 때
15
+ if (isNullOrOptional(zodType) && isNumberType(zodType.def.innerType)) {
16
+ return true;
17
+ }
18
+ return false;
19
+ }
20
+ // ZodType을 이용해 raw를 Type Coercing
21
+ export function caster(zodType, raw) {
22
+ if (isZodNumberAnyway(zodType) && typeof raw === "string") {
23
+ // number
24
+ return Number(raw);
25
+ } else if (zodType instanceof z.ZodUnion && zodType.options.some((opt)=>isZodNumberAnyway(opt))) {
26
+ // zArrayable Number 케이스 처리
27
+ if (Array.isArray(raw)) {
28
+ const numType = zodType.options.find((opt)=>isNumberType(opt));
29
+ assert(numType !== undefined);
30
+ return raw.map((elem)=>caster(numType, elem));
31
+ } else {
32
+ return Number(raw);
33
+ }
34
+ } else if (zodType instanceof z.ZodBoolean && (raw === "true" || raw === "false")) {
35
+ // boolean
36
+ return raw === "true";
37
+ } else if (raw !== null && Array.isArray(raw) && zodType instanceof z.ZodArray) {
38
+ // array
39
+ return raw.map((elem)=>caster(zodType.element, elem));
40
+ } else if (zodType instanceof z.ZodObject && typeof raw === "object" && raw !== null) {
41
+ // object
42
+ return Object.keys(raw).reduce((r, rawKey)=>{
43
+ r[rawKey] = caster(zodType.shape[rawKey], raw[rawKey]);
44
+ return r;
45
+ }, {});
46
+ } else if (zodType instanceof z.ZodOptional) {
47
+ // optional
48
+ return caster(zodType.def.innerType, raw);
49
+ } else if (zodType instanceof z.ZodNullable) {
50
+ // nullable
51
+ return caster(zodType.def.innerType, raw);
52
+ } else if (zodType instanceof z.ZodDate && new Date(raw).toString() !== "Invalid Date") {
53
+ // date
54
+ return new Date(raw);
55
+ } else {
56
+ // 나머지는 처리 안함
57
+ return raw;
58
+ }
59
+ }
60
+ export function fastifyCaster(schema) {
61
+ return z.preprocess((raw)=>{
62
+ return caster(schema, raw);
63
+ }, schema);
64
+ }
65
+
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvY2FzdGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiO1xuaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcbmltcG9ydCB0eXBlIHsgJFpvZFR5cGUgfSBmcm9tIFwiem9kL3Y0L2NvcmVcIjtcblxuZnVuY3Rpb24gaXNOdW1iZXJUeXBlKHpvZFR5cGU6ICRab2RUeXBlKTogem9kVHlwZSBpcyB6LlpvZE51bWJlciB7XG4gIHJldHVybiB6b2RUeXBlIGluc3RhbmNlb2Ygei5ab2ROdW1iZXI7XG59XG5cbmZ1bmN0aW9uIGlzTnVsbE9yT3B0aW9uYWwoem9kVHlwZTogJFpvZFR5cGUpOiB6b2RUeXBlIGlzIHouWm9kTnVsbGFibGUgfCB6LlpvZE9wdGlvbmFsIHtcbiAgcmV0dXJuIHpvZFR5cGUgaW5zdGFuY2VvZiB6LlpvZE51bGxhYmxlIHx8IHpvZFR5cGUgaW5zdGFuY2VvZiB6LlpvZE9wdGlvbmFsO1xufVxuXG4vLyBvcHRpb25hbCwgbnVsbGFibGUg66y06rSA7ZWY6rKMIFpvZE51bWJlciDssrTtgaxcbmZ1bmN0aW9uIGlzWm9kTnVtYmVyQW55d2F5KHpvZFR5cGU6ICRab2RUeXBlKSB7XG4gIGlmIChpc051bWJlclR5cGUoem9kVHlwZSkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8vIFpvZE51bGxhYmxlIOuYkOuKlCBab2RPcHRpb25hbOydvCDrlYxcbiAgaWYgKGlzTnVsbE9yT3B0aW9uYWwoem9kVHlwZSkgJiYgaXNOdW1iZXJUeXBlKHpvZFR5cGUuZGVmLmlubmVyVHlwZSkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuLy8gWm9kVHlwZeydhCDsnbTsmqntlbQgcmF366W8IFR5cGUgQ29lcmNpbmdcbmV4cG9ydCBmdW5jdGlvbiBjYXN0ZXIoem9kVHlwZTogJFpvZFR5cGUsIHJhdzogYW55KTogYW55IHtcbiAgaWYgKGlzWm9kTnVtYmVyQW55d2F5KHpvZFR5cGUpICYmIHR5cGVvZiByYXcgPT09IFwic3RyaW5nXCIpIHtcbiAgICAvLyBudW1iZXJcbiAgICByZXR1cm4gTnVtYmVyKHJhdyk7XG4gIH0gZWxzZSBpZiAoXG4gICAgem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kVW5pb24gJiZcbiAgICB6b2RUeXBlLm9wdGlvbnMuc29tZSgob3B0KSA9PiBpc1pvZE51bWJlckFueXdheShvcHQpKVxuICApIHtcbiAgICAvLyB6QXJyYXlhYmxlIE51bWJlciDsvIDsnbTsiqQg7LKY66asXG4gICAgaWYgKEFycmF5LmlzQXJyYXkocmF3KSkge1xuICAgICAgY29uc3QgbnVtVHlwZSA9IHpvZFR5cGUub3B0aW9ucy5maW5kKG9wdCA9PiBpc051bWJlclR5cGUob3B0KSk7XG4gICAgICBhc3NlcnQobnVtVHlwZSAhPT0gdW5kZWZpbmVkKTtcbiAgICAgIHJldHVybiByYXcubWFwKChlbGVtOiBhbnkpID0+IGNhc3RlcihudW1UeXBlLCBlbGVtKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBOdW1iZXIocmF3KTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoXG4gICAgem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kQm9vbGVhbiAmJlxuICAgIChyYXcgPT09IFwidHJ1ZVwiIHx8IHJhdyA9PT0gXCJmYWxzZVwiKVxuICApIHtcbiAgICAvLyBib29sZWFuXG4gICAgcmV0dXJuIHJhdyA9PT0gXCJ0cnVlXCI7XG4gIH0gZWxzZSBpZiAoXG4gICAgcmF3ICE9PSBudWxsICYmXG4gICAgQXJyYXkuaXNBcnJheShyYXcpICYmXG4gICAgem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kQXJyYXlcbiAgKSB7XG4gICAgLy8gYXJyYXlcbiAgICByZXR1cm4gcmF3Lm1hcCgoZWxlbTogYW55KSA9PiBjYXN0ZXIoem9kVHlwZS5lbGVtZW50LCBlbGVtKSk7XG4gIH0gZWxzZSBpZiAoXG4gICAgem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kT2JqZWN0ICYmXG4gICAgdHlwZW9mIHJhdyA9PT0gXCJvYmplY3RcIiAmJlxuICAgIHJhdyAhPT0gbnVsbFxuICApIHtcbiAgICAvLyBvYmplY3RcbiAgICByZXR1cm4gT2JqZWN0LmtleXMocmF3KS5yZWR1Y2UoKHIsIHJhd0tleSkgPT4ge1xuICAgICAgcltyYXdLZXldID0gY2FzdGVyKHpvZFR5cGUuc2hhcGVbcmF3S2V5XSwgcmF3W3Jhd0tleV0pO1xuICAgICAgcmV0dXJuIHI7XG4gICAgfSwge30gYXMgYW55KTtcbiAgfSBlbHNlIGlmICh6b2RUeXBlIGluc3RhbmNlb2Ygei5ab2RPcHRpb25hbCkge1xuICAgIC8vIG9wdGlvbmFsXG4gICAgcmV0dXJuIGNhc3Rlcih6b2RUeXBlLmRlZi5pbm5lclR5cGUsIHJhdyk7XG4gIH0gZWxzZSBpZiAoem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kTnVsbGFibGUpIHtcbiAgICAvLyBudWxsYWJsZVxuICAgIHJldHVybiBjYXN0ZXIoem9kVHlwZS5kZWYuaW5uZXJUeXBlLCByYXcpO1xuICB9IGVsc2UgaWYgKFxuICAgIHpvZFR5cGUgaW5zdGFuY2VvZiB6LlpvZERhdGUgJiZcbiAgICBuZXcgRGF0ZShyYXcpLnRvU3RyaW5nKCkgIT09IFwiSW52YWxpZCBEYXRlXCJcbiAgKSB7XG4gICAgLy8gZGF0ZVxuICAgIHJldHVybiBuZXcgRGF0ZShyYXcpO1xuICB9IGVsc2Uge1xuICAgIC8vIOuCmOuouOyngOuKlCDsspjrpqwg7JWI7ZWoXG4gICAgcmV0dXJuIHJhdztcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZmFzdGlmeUNhc3RlcihzY2hlbWE6IHouWm9kT2JqZWN0PGFueT4pIHtcbiAgcmV0dXJuIHoucHJlcHJvY2VzcygocmF3OiBhbnkpID0+IHtcbiAgICByZXR1cm4gY2FzdGVyKHNjaGVtYSwgcmF3KTtcbiAgfSwgc2NoZW1hKTtcbn1cbiJdLCJuYW1lcyI6WyJhc3NlcnQiLCJ6IiwiaXNOdW1iZXJUeXBlIiwiem9kVHlwZSIsIlpvZE51bWJlciIsImlzTnVsbE9yT3B0aW9uYWwiLCJab2ROdWxsYWJsZSIsIlpvZE9wdGlvbmFsIiwiaXNab2ROdW1iZXJBbnl3YXkiLCJkZWYiLCJpbm5lclR5cGUiLCJjYXN0ZXIiLCJyYXciLCJOdW1iZXIiLCJab2RVbmlvbiIsIm9wdGlvbnMiLCJzb21lIiwib3B0IiwiQXJyYXkiLCJpc0FycmF5IiwibnVtVHlwZSIsImZpbmQiLCJ1bmRlZmluZWQiLCJtYXAiLCJlbGVtIiwiWm9kQm9vbGVhbiIsIlpvZEFycmF5IiwiZWxlbWVudCIsIlpvZE9iamVjdCIsIk9iamVjdCIsImtleXMiLCJyZWR1Y2UiLCJyIiwicmF3S2V5Iiwic2hhcGUiLCJab2REYXRlIiwiRGF0ZSIsInRvU3RyaW5nIiwiZmFzdGlmeUNhc3RlciIsInNjaGVtYSIsInByZXByb2Nlc3MiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFlBQVksU0FBUztBQUM1QixTQUFTQyxDQUFDLFFBQVEsTUFBTTtBQUd4QixTQUFTQyxhQUFhQyxPQUFpQjtJQUNyQyxPQUFPQSxtQkFBbUJGLEVBQUVHLFNBQVM7QUFDdkM7QUFFQSxTQUFTQyxpQkFBaUJGLE9BQWlCO0lBQ3pDLE9BQU9BLG1CQUFtQkYsRUFBRUssV0FBVyxJQUFJSCxtQkFBbUJGLEVBQUVNLFdBQVc7QUFDN0U7QUFFQSx1Q0FBdUM7QUFDdkMsU0FBU0Msa0JBQWtCTCxPQUFpQjtJQUMxQyxJQUFJRCxhQUFhQyxVQUFVO1FBQ3pCLE9BQU87SUFDVDtJQUVBLGdDQUFnQztJQUNoQyxJQUFJRSxpQkFBaUJGLFlBQVlELGFBQWFDLFFBQVFNLEdBQUcsQ0FBQ0MsU0FBUyxHQUFHO1FBQ3BFLE9BQU87SUFDVDtJQUVBLE9BQU87QUFDVDtBQUVBLGtDQUFrQztBQUNsQyxPQUFPLFNBQVNDLE9BQU9SLE9BQWlCLEVBQUVTLEdBQVE7SUFDaEQsSUFBSUosa0JBQWtCTCxZQUFZLE9BQU9TLFFBQVEsVUFBVTtRQUN6RCxTQUFTO1FBQ1QsT0FBT0MsT0FBT0Q7SUFDaEIsT0FBTyxJQUNMVCxtQkFBbUJGLEVBQUVhLFFBQVEsSUFDN0JYLFFBQVFZLE9BQU8sQ0FBQ0MsSUFBSSxDQUFDLENBQUNDLE1BQVFULGtCQUFrQlMsT0FDaEQ7UUFDQSwyQkFBMkI7UUFDM0IsSUFBSUMsTUFBTUMsT0FBTyxDQUFDUCxNQUFNO1lBQ3RCLE1BQU1RLFVBQVVqQixRQUFRWSxPQUFPLENBQUNNLElBQUksQ0FBQ0osQ0FBQUEsTUFBT2YsYUFBYWU7WUFDekRqQixPQUFPb0IsWUFBWUU7WUFDbkIsT0FBT1YsSUFBSVcsR0FBRyxDQUFDLENBQUNDLE9BQWNiLE9BQU9TLFNBQVNJO1FBQ2hELE9BQU87WUFDTCxPQUFPWCxPQUFPRDtRQUNoQjtJQUNGLE9BQU8sSUFDTFQsbUJBQW1CRixFQUFFd0IsVUFBVSxJQUM5QmIsQ0FBQUEsUUFBUSxVQUFVQSxRQUFRLE9BQU0sR0FDakM7UUFDQSxVQUFVO1FBQ1YsT0FBT0EsUUFBUTtJQUNqQixPQUFPLElBQ0xBLFFBQVEsUUFDUk0sTUFBTUMsT0FBTyxDQUFDUCxRQUNkVCxtQkFBbUJGLEVBQUV5QixRQUFRLEVBQzdCO1FBQ0EsUUFBUTtRQUNSLE9BQU9kLElBQUlXLEdBQUcsQ0FBQyxDQUFDQyxPQUFjYixPQUFPUixRQUFRd0IsT0FBTyxFQUFFSDtJQUN4RCxPQUFPLElBQ0xyQixtQkFBbUJGLEVBQUUyQixTQUFTLElBQzlCLE9BQU9oQixRQUFRLFlBQ2ZBLFFBQVEsTUFDUjtRQUNBLFNBQVM7UUFDVCxPQUFPaUIsT0FBT0MsSUFBSSxDQUFDbEIsS0FBS21CLE1BQU0sQ0FBQyxDQUFDQyxHQUFHQztZQUNqQ0QsQ0FBQyxDQUFDQyxPQUFPLEdBQUd0QixPQUFPUixRQUFRK0IsS0FBSyxDQUFDRCxPQUFPLEVBQUVyQixHQUFHLENBQUNxQixPQUFPO1lBQ3JELE9BQU9EO1FBQ1QsR0FBRyxDQUFDO0lBQ04sT0FBTyxJQUFJN0IsbUJBQW1CRixFQUFFTSxXQUFXLEVBQUU7UUFDM0MsV0FBVztRQUNYLE9BQU9JLE9BQU9SLFFBQVFNLEdBQUcsQ0FBQ0MsU0FBUyxFQUFFRTtJQUN2QyxPQUFPLElBQUlULG1CQUFtQkYsRUFBRUssV0FBVyxFQUFFO1FBQzNDLFdBQVc7UUFDWCxPQUFPSyxPQUFPUixRQUFRTSxHQUFHLENBQUNDLFNBQVMsRUFBRUU7SUFDdkMsT0FBTyxJQUNMVCxtQkFBbUJGLEVBQUVrQyxPQUFPLElBQzVCLElBQUlDLEtBQUt4QixLQUFLeUIsUUFBUSxPQUFPLGdCQUM3QjtRQUNBLE9BQU87UUFDUCxPQUFPLElBQUlELEtBQUt4QjtJQUNsQixPQUFPO1FBQ0wsYUFBYTtRQUNiLE9BQU9BO0lBQ1Q7QUFDRjtBQUVBLE9BQU8sU0FBUzBCLGNBQWNDLE1BQXdCO0lBQ3BELE9BQU90QyxFQUFFdUMsVUFBVSxDQUFDLENBQUM1QjtRQUNuQixPQUFPRCxPQUFPNEIsUUFBUTNCO0lBQ3hCLEdBQUcyQjtBQUNMIn0=