sonamu 0.5.6 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (365) hide show
  1. package/dist/api/base-frame.js +12 -2
  2. package/dist/api/caster.js +66 -2
  3. package/dist/api/code-converters.js +489 -2
  4. package/dist/api/config.d.ts +76 -0
  5. package/dist/api/config.d.ts.map +1 -0
  6. package/dist/api/config.js +32 -0
  7. package/dist/api/context.d.ts +1 -0
  8. package/dist/api/context.d.ts.map +1 -1
  9. package/dist/api/context.js +3 -2
  10. package/dist/api/decorators.d.ts +1 -0
  11. package/dist/api/decorators.d.ts.map +1 -1
  12. package/dist/api/decorators.js +142 -2
  13. package/dist/api/index.js +9 -2
  14. package/dist/api/sonamu.d.ts +8 -22
  15. package/dist/api/sonamu.d.ts.map +1 -1
  16. package/dist/api/sonamu.js +482 -2
  17. package/dist/bin/build-config.d.ts +2 -1
  18. package/dist/bin/build-config.d.ts.map +1 -1
  19. package/dist/bin/build-config.js +12 -2
  20. package/dist/bin/cli-wrapper.js +71 -2
  21. package/dist/bin/cli.js +418 -2
  22. package/dist/bin/hot-hook-register.d.ts +11 -0
  23. package/dist/bin/hot-hook-register.d.ts.map +1 -0
  24. package/dist/bin/hot-hook-register.js +21 -0
  25. package/dist/database/_batch_update.js +78 -2
  26. package/dist/database/base-model.js +247 -2
  27. package/dist/database/code-generator.js +53 -2
  28. package/dist/database/db.d.ts +5 -16
  29. package/dist/database/db.d.ts.map +1 -1
  30. package/dist/database/db.js +132 -2
  31. package/dist/database/knex-plugins/knex-on-duplicate-update.js +39 -2
  32. package/dist/database/puri-wrapper.d.ts +22 -10
  33. package/dist/database/puri-wrapper.d.ts.map +1 -1
  34. package/dist/database/puri-wrapper.js +109 -2
  35. package/dist/database/puri.d.ts +105 -73
  36. package/dist/database/puri.d.ts.map +1 -1
  37. package/dist/database/puri.js +539 -2
  38. package/dist/database/puri.types.d.ts +33 -42
  39. package/dist/database/puri.types.d.ts.map +1 -1
  40. package/dist/database/puri.types.js +3 -2
  41. package/dist/database/transaction-context.d.ts +3 -3
  42. package/dist/database/transaction-context.d.ts.map +1 -1
  43. package/dist/database/transaction-context.js +14 -2
  44. package/dist/database/upsert-builder.js +215 -2
  45. package/dist/entity/entity-manager.d.ts +3 -1
  46. package/dist/entity/entity-manager.d.ts.map +1 -1
  47. package/dist/entity/entity-manager.js +114 -2
  48. package/dist/entity/entity-utils.js +210 -2
  49. package/dist/entity/entity.d.ts.map +1 -1
  50. package/dist/entity/entity.js +651 -2
  51. package/dist/exceptions/error-handler.js +29 -2
  52. package/dist/exceptions/so-exceptions.js +85 -2
  53. package/dist/file-storage/driver.js +79 -2
  54. package/dist/file-storage/file-storage.js +75 -2
  55. package/dist/index.d.ts +2 -0
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +28 -2
  58. package/dist/migration/code-generation.js +558 -2
  59. package/dist/migration/migration-set.js +364 -2
  60. package/dist/migration/migrator.d.ts +0 -9
  61. package/dist/migration/migrator.d.ts.map +1 -1
  62. package/dist/migration/migrator.js +510 -2
  63. package/dist/migration/types.js +3 -2
  64. package/dist/naite/naite.d.ts +12 -0
  65. package/dist/naite/naite.d.ts.map +1 -0
  66. package/dist/naite/naite.js +72 -0
  67. package/dist/stream/index.js +3 -2
  68. package/dist/stream/sse.js +38 -2
  69. package/dist/syncer/api-parser.d.ts +20 -0
  70. package/dist/syncer/api-parser.d.ts.map +1 -0
  71. package/dist/syncer/api-parser.js +229 -0
  72. package/dist/syncer/checksum.d.ts +21 -0
  73. package/dist/syncer/checksum.d.ts.map +1 -0
  74. package/dist/syncer/checksum.js +98 -0
  75. package/dist/syncer/code-generator.d.ts +20 -0
  76. package/dist/syncer/code-generator.d.ts.map +1 -0
  77. package/dist/syncer/code-generator.js +141 -0
  78. package/dist/syncer/entity-operations.d.ts +17 -0
  79. package/dist/syncer/entity-operations.d.ts.map +1 -0
  80. package/dist/syncer/entity-operations.js +58 -0
  81. package/dist/syncer/file-patterns.d.ts +29 -0
  82. package/dist/syncer/file-patterns.d.ts.map +1 -0
  83. package/dist/syncer/file-patterns.js +38 -0
  84. package/dist/syncer/index.d.ts +6 -0
  85. package/dist/syncer/index.d.ts.map +1 -1
  86. package/dist/syncer/index.js +9 -2
  87. package/dist/syncer/module-loader.d.ts +35 -0
  88. package/dist/syncer/module-loader.d.ts.map +1 -0
  89. package/dist/syncer/module-loader.js +82 -0
  90. package/dist/syncer/syncer.d.ts +93 -108
  91. package/dist/syncer/syncer.d.ts.map +1 -1
  92. package/dist/syncer/syncer.js +375 -2
  93. package/dist/template/entity-converter.d.ts +14 -0
  94. package/dist/template/entity-converter.d.ts.map +1 -0
  95. package/dist/template/entity-converter.js +101 -0
  96. package/dist/template/helpers.d.ts +23 -0
  97. package/dist/template/helpers.d.ts.map +1 -0
  98. package/dist/template/helpers.js +64 -0
  99. package/dist/{templates → template/implementations}/entity.template.d.ts +3 -3
  100. package/dist/template/implementations/entity.template.d.ts.map +1 -0
  101. package/dist/template/implementations/entity.template.js +87 -0
  102. package/dist/{templates → template/implementations}/generated.template.d.ts +3 -3
  103. package/dist/template/implementations/generated.template.d.ts.map +1 -0
  104. package/dist/template/implementations/generated.template.js +232 -0
  105. package/dist/{templates → template/implementations}/generated_http.template.d.ts +3 -3
  106. package/dist/template/implementations/generated_http.template.d.ts.map +1 -0
  107. package/dist/template/implementations/generated_http.template.js +131 -0
  108. package/dist/{templates → template/implementations}/generated_sso.template.d.ts +3 -3
  109. package/dist/template/implementations/generated_sso.template.d.ts.map +1 -0
  110. package/dist/template/implementations/generated_sso.template.js +105 -0
  111. package/dist/{templates → template/implementations}/init_types.template.d.ts +3 -3
  112. package/dist/template/implementations/init_types.template.d.ts.map +1 -0
  113. package/dist/template/implementations/init_types.template.js +38 -0
  114. package/dist/template/implementations/model.template.d.ts +17 -0
  115. package/dist/template/implementations/model.template.d.ts.map +1 -0
  116. package/dist/template/implementations/model.template.js +171 -0
  117. package/dist/{templates → template/implementations}/model_test.template.d.ts +3 -3
  118. package/dist/template/implementations/model_test.template.d.ts.map +1 -0
  119. package/dist/template/implementations/model_test.template.js +35 -0
  120. package/dist/{templates → template/implementations}/service.template.d.ts +6 -6
  121. package/dist/template/implementations/service.template.d.ts.map +1 -0
  122. package/dist/template/implementations/service.template.js +193 -0
  123. package/dist/{templates → template/implementations}/view_enums_buttonset.template.d.ts +3 -3
  124. package/dist/template/implementations/view_enums_buttonset.template.d.ts.map +1 -0
  125. package/dist/template/implementations/view_enums_buttonset.template.js +31 -0
  126. package/dist/{templates → template/implementations}/view_enums_dropdown.template.d.ts +3 -4
  127. package/dist/template/implementations/view_enums_dropdown.template.d.ts.map +1 -0
  128. package/dist/template/implementations/view_enums_dropdown.template.js +50 -0
  129. package/dist/{templates → template/implementations}/view_enums_select.template.d.ts +3 -3
  130. package/dist/template/implementations/view_enums_select.template.d.ts.map +1 -0
  131. package/dist/template/implementations/view_enums_select.template.js +55 -0
  132. package/dist/{templates → template/implementations}/view_form.template.d.ts +5 -5
  133. package/dist/template/implementations/view_form.template.d.ts.map +1 -0
  134. package/dist/template/implementations/view_form.template.js +337 -0
  135. package/dist/{templates → template/implementations}/view_id_all_select.template.d.ts +3 -3
  136. package/dist/template/implementations/view_id_all_select.template.d.ts.map +1 -0
  137. package/dist/template/implementations/view_id_all_select.template.js +31 -0
  138. package/dist/{templates → template/implementations}/view_id_async_select.template.d.ts +3 -3
  139. package/dist/template/implementations/view_id_async_select.template.d.ts.map +1 -0
  140. package/dist/template/implementations/view_id_async_select.template.js +105 -0
  141. package/dist/{templates → template/implementations}/view_list.template.d.ts +5 -13
  142. package/dist/template/implementations/view_list.template.d.ts.map +1 -0
  143. package/dist/template/implementations/view_list.template.js +465 -0
  144. package/dist/{templates → template/implementations}/view_list_columns.template.d.ts +3 -3
  145. package/dist/template/implementations/view_list_columns.template.d.ts.map +1 -0
  146. package/dist/template/implementations/view_list_columns.template.js +49 -0
  147. package/dist/{templates → template/implementations}/view_search_input.template.d.ts +3 -3
  148. package/dist/template/implementations/view_search_input.template.d.ts.map +1 -0
  149. package/dist/template/implementations/view_search_input.template.js +64 -0
  150. package/dist/template/index.d.ts +5 -0
  151. package/dist/template/index.d.ts.map +1 -0
  152. package/dist/template/index.js +6 -0
  153. package/dist/template/template.d.ts +39 -0
  154. package/dist/template/template.d.ts.map +1 -0
  155. package/dist/template/template.js +47 -0
  156. package/dist/template/zod-converter.d.ts +18 -0
  157. package/dist/template/zod-converter.d.ts.map +1 -0
  158. package/dist/template/zod-converter.js +166 -0
  159. package/dist/testing/_relation-graph.js +80 -2
  160. package/dist/testing/fixture-manager.d.ts.map +1 -1
  161. package/dist/testing/fixture-manager.js +521 -2
  162. package/dist/types/types.d.ts +39 -40
  163. package/dist/types/types.d.ts.map +1 -1
  164. package/dist/types/types.js +289 -2
  165. package/dist/typings/knex.d.js +3 -2
  166. package/dist/utils/async-utils.d.ts +7 -0
  167. package/dist/utils/async-utils.d.ts.map +1 -1
  168. package/dist/utils/async-utils.js +57 -2
  169. package/dist/utils/console-util.d.ts +2 -0
  170. package/dist/utils/console-util.d.ts.map +1 -0
  171. package/dist/utils/console-util.js +6 -0
  172. package/dist/utils/controller.js +26 -2
  173. package/dist/utils/esm-utils.d.ts +45 -0
  174. package/dist/utils/esm-utils.d.ts.map +1 -0
  175. package/dist/utils/esm-utils.js +56 -0
  176. package/dist/utils/fs-utils.js +17 -2
  177. package/dist/utils/lodash-able.js +6 -2
  178. package/dist/utils/model.js +22 -2
  179. package/dist/utils/path-utils.d.ts +89 -0
  180. package/dist/utils/path-utils.d.ts.map +1 -0
  181. package/dist/utils/path-utils.js +60 -0
  182. package/dist/utils/process-utils.d.ts +13 -0
  183. package/dist/utils/process-utils.d.ts.map +1 -0
  184. package/dist/utils/process-utils.js +36 -0
  185. package/dist/utils/sql-parser.js +35 -2
  186. package/dist/utils/utils.d.ts +4 -7
  187. package/dist/utils/utils.d.ts.map +1 -1
  188. package/dist/utils/utils.js +33 -2
  189. package/dist/utils/zod-error.d.ts.map +1 -1
  190. package/dist/utils/zod-error.js +19 -2
  191. package/package.json +21 -9
  192. package/src/api/code-converters.ts +2 -2
  193. package/src/api/config.ts +142 -0
  194. package/src/api/context.ts +1 -0
  195. package/src/api/decorators.ts +15 -5
  196. package/src/api/sonamu.ts +102 -87
  197. package/src/bin/build-config.ts +2 -1
  198. package/src/bin/cli-wrapper.ts +10 -3
  199. package/src/bin/cli.ts +108 -56
  200. package/src/bin/hot-hook-register.ts +22 -0
  201. package/src/database/base-model.ts +1 -1
  202. package/src/database/code-generator.ts +1 -1
  203. package/src/database/db.ts +53 -60
  204. package/src/database/puri-wrapper.ts +104 -26
  205. package/src/database/puri.ts +477 -580
  206. package/src/database/puri.types.ts +111 -201
  207. package/src/database/transaction-context.ts +4 -4
  208. package/src/database/upsert-builder.ts +1 -1
  209. package/src/entity/entity-manager.ts +19 -15
  210. package/src/entity/entity.ts +4 -3
  211. package/src/index.ts +2 -0
  212. package/src/migration/code-generation.ts +1 -1
  213. package/src/migration/migration-set.ts +1 -1
  214. package/src/migration/migrator.ts +23 -152
  215. package/src/naite/naite.ts +70 -0
  216. package/src/syncer/api-parser.ts +299 -0
  217. package/src/syncer/checksum.ts +152 -0
  218. package/src/syncer/code-generator.ts +202 -0
  219. package/src/syncer/entity-operations.ts +68 -0
  220. package/src/syncer/file-patterns.ts +56 -0
  221. package/src/syncer/index.ts +6 -0
  222. package/src/syncer/module-loader.ts +125 -0
  223. package/src/syncer/syncer.ts +363 -1420
  224. package/src/template/entity-converter.ts +123 -0
  225. package/src/template/helpers.ts +84 -0
  226. package/src/{templates → template/implementations}/entity.template.ts +4 -4
  227. package/src/{templates → template/implementations}/generated.template.ts +9 -9
  228. package/src/{templates → template/implementations}/generated_http.template.ts +9 -6
  229. package/src/{templates → template/implementations}/generated_sso.template.ts +7 -7
  230. package/src/{templates → template/implementations}/init_types.template.ts +4 -4
  231. package/src/{templates → template/implementations}/model.template.ts +9 -9
  232. package/src/{templates → template/implementations}/model_test.template.ts +5 -5
  233. package/src/{templates → template/implementations}/service.template.ts +29 -12
  234. package/src/{templates → template/implementations}/view_enums_buttonset.template.ts +3 -3
  235. package/src/{templates → template/implementations}/view_enums_dropdown.template.ts +5 -21
  236. package/src/{templates → template/implementations}/view_enums_select.template.ts +4 -4
  237. package/src/{templates → template/implementations}/view_form.template.ts +11 -13
  238. package/src/{templates → template/implementations}/view_id_all_select.template.ts +3 -3
  239. package/src/{templates → template/implementations}/view_id_async_select.template.ts +3 -3
  240. package/src/{templates → template/implementations}/view_list.template.ts +13 -64
  241. package/src/{templates → template/implementations}/view_list_columns.template.ts +3 -3
  242. package/src/{templates → template/implementations}/view_search_input.template.ts +3 -3
  243. package/src/template/index.ts +4 -0
  244. package/src/template/template.ts +86 -0
  245. package/src/template/zod-converter.ts +219 -0
  246. package/src/testing/fixture-manager.ts +8 -1
  247. package/src/types/types.ts +39 -62
  248. package/src/utils/async-utils.ts +17 -0
  249. package/src/utils/console-util.ts +4 -0
  250. package/src/utils/esm-utils.ts +69 -0
  251. package/src/utils/path-utils.ts +102 -0
  252. package/src/utils/process-utils.ts +46 -0
  253. package/src/utils/sql-parser.ts +1 -1
  254. package/src/utils/utils.ts +14 -40
  255. package/src/utils/zod-error.ts +0 -1
  256. package/dist/api/base-frame.js.map +0 -1
  257. package/dist/api/caster.js.map +0 -1
  258. package/dist/api/code-converters.js.map +0 -1
  259. package/dist/api/context.js.map +0 -1
  260. package/dist/api/decorators.js.map +0 -1
  261. package/dist/api/index.js.map +0 -1
  262. package/dist/api/sonamu.js.map +0 -1
  263. package/dist/bin/build-config.js.map +0 -1
  264. package/dist/bin/cli-wrapper.js.map +0 -1
  265. package/dist/bin/cli.js.map +0 -1
  266. package/dist/database/_batch_update.js.map +0 -1
  267. package/dist/database/base-model.js.map +0 -1
  268. package/dist/database/code-generator.js.map +0 -1
  269. package/dist/database/db.js.map +0 -1
  270. package/dist/database/knex-plugins/knex-on-duplicate-update.js.map +0 -1
  271. package/dist/database/puri-wrapper.js.map +0 -1
  272. package/dist/database/puri.js.map +0 -1
  273. package/dist/database/puri.types.js.map +0 -1
  274. package/dist/database/transaction-context.js.map +0 -1
  275. package/dist/database/upsert-builder.js.map +0 -1
  276. package/dist/entity/entity-manager.js.map +0 -1
  277. package/dist/entity/entity-utils.js.map +0 -1
  278. package/dist/entity/entity.js.map +0 -1
  279. package/dist/exceptions/error-handler.js.map +0 -1
  280. package/dist/exceptions/so-exceptions.js.map +0 -1
  281. package/dist/file-storage/driver.js.map +0 -1
  282. package/dist/file-storage/file-storage.js.map +0 -1
  283. package/dist/index.js.map +0 -1
  284. package/dist/migration/code-generation.js.map +0 -1
  285. package/dist/migration/migration-set.js.map +0 -1
  286. package/dist/migration/migrator.js.map +0 -1
  287. package/dist/migration/types.js.map +0 -1
  288. package/dist/stream/index.js.map +0 -1
  289. package/dist/stream/sse.js.map +0 -1
  290. package/dist/syncer/index.js.map +0 -1
  291. package/dist/syncer/syncer.js.map +0 -1
  292. package/dist/templates/base-template.d.ts +0 -13
  293. package/dist/templates/base-template.d.ts.map +0 -1
  294. package/dist/templates/base-template.js +0 -2
  295. package/dist/templates/base-template.js.map +0 -1
  296. package/dist/templates/entity.template.d.ts.map +0 -1
  297. package/dist/templates/entity.template.js +0 -2
  298. package/dist/templates/entity.template.js.map +0 -1
  299. package/dist/templates/generated.template.d.ts.map +0 -1
  300. package/dist/templates/generated.template.js +0 -2
  301. package/dist/templates/generated.template.js.map +0 -1
  302. package/dist/templates/generated_http.template.d.ts.map +0 -1
  303. package/dist/templates/generated_http.template.js +0 -2
  304. package/dist/templates/generated_http.template.js.map +0 -1
  305. package/dist/templates/generated_sso.template.d.ts.map +0 -1
  306. package/dist/templates/generated_sso.template.js +0 -2
  307. package/dist/templates/generated_sso.template.js.map +0 -1
  308. package/dist/templates/index.d.ts +0 -2
  309. package/dist/templates/index.d.ts.map +0 -1
  310. package/dist/templates/index.js +0 -2
  311. package/dist/templates/index.js.map +0 -1
  312. package/dist/templates/init_types.template.d.ts.map +0 -1
  313. package/dist/templates/init_types.template.js +0 -2
  314. package/dist/templates/init_types.template.js.map +0 -1
  315. package/dist/templates/model.template.d.ts +0 -17
  316. package/dist/templates/model.template.d.ts.map +0 -1
  317. package/dist/templates/model.template.js +0 -2
  318. package/dist/templates/model.template.js.map +0 -1
  319. package/dist/templates/model_test.template.d.ts.map +0 -1
  320. package/dist/templates/model_test.template.js +0 -2
  321. package/dist/templates/model_test.template.js.map +0 -1
  322. package/dist/templates/service.template.d.ts.map +0 -1
  323. package/dist/templates/service.template.js +0 -2
  324. package/dist/templates/service.template.js.map +0 -1
  325. package/dist/templates/view_enums_buttonset.template.d.ts.map +0 -1
  326. package/dist/templates/view_enums_buttonset.template.js +0 -2
  327. package/dist/templates/view_enums_buttonset.template.js.map +0 -1
  328. package/dist/templates/view_enums_dropdown.template.d.ts.map +0 -1
  329. package/dist/templates/view_enums_dropdown.template.js +0 -2
  330. package/dist/templates/view_enums_dropdown.template.js.map +0 -1
  331. package/dist/templates/view_enums_select.template.d.ts.map +0 -1
  332. package/dist/templates/view_enums_select.template.js +0 -2
  333. package/dist/templates/view_enums_select.template.js.map +0 -1
  334. package/dist/templates/view_form.template.d.ts.map +0 -1
  335. package/dist/templates/view_form.template.js +0 -2
  336. package/dist/templates/view_form.template.js.map +0 -1
  337. package/dist/templates/view_id_all_select.template.d.ts.map +0 -1
  338. package/dist/templates/view_id_all_select.template.js +0 -2
  339. package/dist/templates/view_id_all_select.template.js.map +0 -1
  340. package/dist/templates/view_id_async_select.template.d.ts.map +0 -1
  341. package/dist/templates/view_id_async_select.template.js +0 -2
  342. package/dist/templates/view_id_async_select.template.js.map +0 -1
  343. package/dist/templates/view_list.template.d.ts.map +0 -1
  344. package/dist/templates/view_list.template.js +0 -2
  345. package/dist/templates/view_list.template.js.map +0 -1
  346. package/dist/templates/view_list_columns.template.d.ts.map +0 -1
  347. package/dist/templates/view_list_columns.template.js +0 -2
  348. package/dist/templates/view_list_columns.template.js.map +0 -1
  349. package/dist/templates/view_search_input.template.d.ts.map +0 -1
  350. package/dist/templates/view_search_input.template.js +0 -2
  351. package/dist/templates/view_search_input.template.js.map +0 -1
  352. package/dist/testing/_relation-graph.js.map +0 -1
  353. package/dist/testing/fixture-manager.js.map +0 -1
  354. package/dist/types/types.js.map +0 -1
  355. package/dist/typings/knex.d.js.map +0 -1
  356. package/dist/utils/async-utils.js.map +0 -1
  357. package/dist/utils/controller.js.map +0 -1
  358. package/dist/utils/fs-utils.js.map +0 -1
  359. package/dist/utils/lodash-able.js.map +0 -1
  360. package/dist/utils/model.js.map +0 -1
  361. package/dist/utils/sql-parser.js.map +0 -1
  362. package/dist/utils/utils.js.map +0 -1
  363. package/dist/utils/zod-error.js.map +0 -1
  364. package/src/templates/base-template.ts +0 -19
  365. package/src/templates/index.ts +0 -1
@@ -1,2 +1,29 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"setupErrorHandler",{enumerable:true,get:function(){return setupErrorHandler}});var _soexceptions=require("./so-exceptions");function _array_like_to_array(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _array_with_holes(arr){if(Array.isArray(arr))return arr}function _iterable_to_array_limit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _non_iterable_rest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _sliced_to_array(arr,i){return _array_with_holes(arr)||_iterable_to_array_limit(arr,i)||_unsupported_iterable_to_array(arr,i)||_non_iterable_rest()}function _unsupported_iterable_to_array(o,minLen){if(!o)return;if(typeof o==="string")return _array_like_to_array(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _array_like_to_array(o,minLen)}function setupErrorHandler(server){server.setErrorHandler(function(error,request,reply){var _error;var _statusCode;(_statusCode=(_error=error).statusCode)!==null&&_statusCode!==void 0?_statusCode:_error.statusCode=400;if((0,_soexceptions.isSoException)(error)&&error.payload&&Array.isArray(error.payload)){var issues=error.payload;var _issues=_sliced_to_array(issues,1),issue=_issues[0];var message="".concat(issue.message," (").concat(issue.path.join("/"),")");request.log.error("".concat(error.statusCode," ").concat(message));reply.status(error.statusCode<=501?error.statusCode:501).send({name:error.name,code:error.code,message:message,validationErrors:error.validation,issues:issues})}else{request.log.error("".concat(error.statusCode," ").concat(error.message));reply.status(error.statusCode<=501?error.statusCode:501).send({name:error.name,code:error.code,message:error.message,validationErrors:error.validation})}})}
2
- //# sourceMappingURL=error-handler.js.map
1
+ import { isSoException } from "./so-exceptions.js";
2
+ export function setupErrorHandler(server) {
3
+ server.setErrorHandler((error, request, reply)=>{
4
+ error.statusCode ??= 400;
5
+ if (isSoException(error) && error.payload && Array.isArray(error.payload)) {
6
+ const issues = error.payload;
7
+ const [issue] = issues;
8
+ const message = `${issue.message} (${issue.path.join("/")})`;
9
+ request.log.error(`${error.statusCode} ${message}`);
10
+ reply.status(error.statusCode <= 501 ? error.statusCode : 501).send({
11
+ name: error.name,
12
+ code: error.code,
13
+ message: message,
14
+ validationErrors: error.validation,
15
+ issues
16
+ });
17
+ } else {
18
+ request.log.error(`${error.statusCode} ${error.message}`);
19
+ reply.status(error.statusCode <= 501 ? error.statusCode : 501).send({
20
+ name: error.name,
21
+ code: error.code,
22
+ message: error.message,
23
+ validationErrors: error.validation
24
+ });
25
+ }
26
+ });
27
+ }
28
+
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leGNlcHRpb25zL2Vycm9yLWhhbmRsZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFzdGlmeUluc3RhbmNlIH0gZnJvbSBcImZhc3RpZnlcIjtcbmltcG9ydCB7IFpvZElzc3VlIH0gZnJvbSBcInpvZFwiO1xuaW1wb3J0IHsgaXNTb0V4Y2VwdGlvbiB9IGZyb20gXCIuL3NvLWV4Y2VwdGlvbnNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHNldHVwRXJyb3JIYW5kbGVyKHNlcnZlcjogRmFzdGlmeUluc3RhbmNlKSB7XG4gIHNlcnZlci5zZXRFcnJvckhhbmRsZXIoKGVycm9yLCByZXF1ZXN0LCByZXBseSkgPT4ge1xuICAgIGVycm9yLnN0YXR1c0NvZGUgPz89IDQwMDtcblxuICAgIGlmIChpc1NvRXhjZXB0aW9uKGVycm9yKSAmJiBlcnJvci5wYXlsb2FkICYmIEFycmF5LmlzQXJyYXkoZXJyb3IucGF5bG9hZCkpIHtcbiAgICAgIGNvbnN0IGlzc3VlcyA9IGVycm9yLnBheWxvYWQgYXMgWm9kSXNzdWVbXTtcbiAgICAgIGNvbnN0IFtpc3N1ZV0gPSBpc3N1ZXM7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYCR7aXNzdWUubWVzc2FnZX0gKCR7aXNzdWUucGF0aC5qb2luKFwiL1wiKX0pYDtcblxuICAgICAgcmVxdWVzdC5sb2cuZXJyb3IoYCR7ZXJyb3Iuc3RhdHVzQ29kZX0gJHttZXNzYWdlfWApO1xuICAgICAgcmVwbHkuc3RhdHVzKGVycm9yLnN0YXR1c0NvZGUgPD0gNTAxID8gZXJyb3Iuc3RhdHVzQ29kZSA6IDUwMSkuc2VuZCh7XG4gICAgICAgIG5hbWU6IGVycm9yLm5hbWUsXG4gICAgICAgIGNvZGU6IGVycm9yLmNvZGUsXG4gICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgIHZhbGlkYXRpb25FcnJvcnM6IGVycm9yLnZhbGlkYXRpb24sXG4gICAgICAgIGlzc3VlcyxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXF1ZXN0LmxvZy5lcnJvcihgJHtlcnJvci5zdGF0dXNDb2RlfSAke2Vycm9yLm1lc3NhZ2V9YCk7XG4gICAgICByZXBseS5zdGF0dXMoZXJyb3Iuc3RhdHVzQ29kZSA8PSA1MDEgPyBlcnJvci5zdGF0dXNDb2RlIDogNTAxKS5zZW5kKHtcbiAgICAgICAgbmFtZTogZXJyb3IubmFtZSxcbiAgICAgICAgY29kZTogZXJyb3IuY29kZSxcbiAgICAgICAgbWVzc2FnZTogZXJyb3IubWVzc2FnZSxcbiAgICAgICAgdmFsaWRhdGlvbkVycm9yczogZXJyb3IudmFsaWRhdGlvbixcbiAgICAgIH0pO1xuICAgIH1cbiAgfSk7XG59XG4iXSwibmFtZXMiOlsiaXNTb0V4Y2VwdGlvbiIsInNldHVwRXJyb3JIYW5kbGVyIiwic2VydmVyIiwic2V0RXJyb3JIYW5kbGVyIiwiZXJyb3IiLCJyZXF1ZXN0IiwicmVwbHkiLCJzdGF0dXNDb2RlIiwicGF5bG9hZCIsIkFycmF5IiwiaXNBcnJheSIsImlzc3VlcyIsImlzc3VlIiwibWVzc2FnZSIsInBhdGgiLCJqb2luIiwibG9nIiwic3RhdHVzIiwic2VuZCIsIm5hbWUiLCJjb2RlIiwidmFsaWRhdGlvbkVycm9ycyIsInZhbGlkYXRpb24iXSwibWFwcGluZ3MiOiJBQUVBLFNBQVNBLGFBQWEsUUFBUSxxQkFBa0I7QUFFaEQsT0FBTyxTQUFTQyxrQkFBa0JDLE1BQXVCO0lBQ3ZEQSxPQUFPQyxlQUFlLENBQUMsQ0FBQ0MsT0FBT0MsU0FBU0M7UUFDdENGLE1BQU1HLFVBQVUsS0FBSztRQUVyQixJQUFJUCxjQUFjSSxVQUFVQSxNQUFNSSxPQUFPLElBQUlDLE1BQU1DLE9BQU8sQ0FBQ04sTUFBTUksT0FBTyxHQUFHO1lBQ3pFLE1BQU1HLFNBQVNQLE1BQU1JLE9BQU87WUFDNUIsTUFBTSxDQUFDSSxNQUFNLEdBQUdEO1lBQ2hCLE1BQU1FLFVBQVUsR0FBR0QsTUFBTUMsT0FBTyxDQUFDLEVBQUUsRUFBRUQsTUFBTUUsSUFBSSxDQUFDQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFNURWLFFBQVFXLEdBQUcsQ0FBQ1osS0FBSyxDQUFDLEdBQUdBLE1BQU1HLFVBQVUsQ0FBQyxDQUFDLEVBQUVNLFNBQVM7WUFDbERQLE1BQU1XLE1BQU0sQ0FBQ2IsTUFBTUcsVUFBVSxJQUFJLE1BQU1ILE1BQU1HLFVBQVUsR0FBRyxLQUFLVyxJQUFJLENBQUM7Z0JBQ2xFQyxNQUFNZixNQUFNZSxJQUFJO2dCQUNoQkMsTUFBTWhCLE1BQU1nQixJQUFJO2dCQUNoQlAsU0FBU0E7Z0JBQ1RRLGtCQUFrQmpCLE1BQU1rQixVQUFVO2dCQUNsQ1g7WUFDRjtRQUNGLE9BQU87WUFDTE4sUUFBUVcsR0FBRyxDQUFDWixLQUFLLENBQUMsR0FBR0EsTUFBTUcsVUFBVSxDQUFDLENBQUMsRUFBRUgsTUFBTVMsT0FBTyxFQUFFO1lBQ3hEUCxNQUFNVyxNQUFNLENBQUNiLE1BQU1HLFVBQVUsSUFBSSxNQUFNSCxNQUFNRyxVQUFVLEdBQUcsS0FBS1csSUFBSSxDQUFDO2dCQUNsRUMsTUFBTWYsTUFBTWUsSUFBSTtnQkFDaEJDLE1BQU1oQixNQUFNZ0IsSUFBSTtnQkFDaEJQLFNBQVNULE1BQU1TLE9BQU87Z0JBQ3RCUSxrQkFBa0JqQixNQUFNa0IsVUFBVTtZQUNwQztRQUNGO0lBQ0Y7QUFDRiJ9
@@ -1,2 +1,85 @@
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 AlreadyProcessedException(){return AlreadyProcessedException},get BadRequestException(){return BadRequestException},get DuplicateRowException(){return DuplicateRowException},get InternalServerErrorException(){return InternalServerErrorException},get NotFoundException(){return NotFoundException},get ServiceUnavailableException(){return ServiceUnavailableException},get SoException(){return SoException},get TargetNotFoundException(){return TargetNotFoundException},get UnauthorizedException(){return UnauthorizedException},get isSoException(){return isSoException}});function _assert_this_initialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _call_super(_this,derived,args){derived=_get_prototype_of(derived);return _possible_constructor_return(_this,_is_native_reflect_construct()?Reflect.construct(derived,args||[],_get_prototype_of(_this).constructor):derived.apply(_this,args))}function _class_call_check(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _construct(Parent,args,Class){if(_is_native_reflect_construct()){_construct=Reflect.construct}else{_construct=function construct(Parent,args,Class){var a=[null];a.push.apply(a,args);var Constructor=Function.bind.apply(Parent,a);var instance=new Constructor;if(Class)_set_prototype_of(instance,Class.prototype);return instance}}return _construct.apply(null,arguments)}function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _get_prototype_of(o){_get_prototype_of=Object.setPrototypeOf?Object.getPrototypeOf:function getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _get_prototype_of(o)}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_set_prototype_of(subClass,superClass)}function _is_native_function(fn){return Function.toString.call(fn).indexOf("[native code]")!==-1}function _possible_constructor_return(self,call){if(call&&(_type_of(call)==="object"||typeof call==="function")){return call}return _assert_this_initialized(self)}function _set_prototype_of(o,p){_set_prototype_of=Object.setPrototypeOf||function setPrototypeOf(o,p){o.__proto__=p;return o};return _set_prototype_of(o,p)}function _type_of(obj){"@swc/helpers - typeof";return obj&&typeof Symbol!=="undefined"&&obj.constructor===Symbol?"symbol":typeof obj}function _wrap_native_super(Class){var _cache=typeof Map==="function"?new Map:undefined;_wrap_native_super=function wrapNativeSuper(Class){if(Class===null||!_is_native_function(Class))return Class;if(typeof Class!=="function"){throw new TypeError("Super expression must either be null or a function")}if(typeof _cache!=="undefined"){if(_cache.has(Class))return _cache.get(Class);_cache.set(Class,Wrapper)}function Wrapper(){return _construct(Class,arguments,_get_prototype_of(this).constructor)}Wrapper.prototype=Object.create(Class.prototype,{constructor:{value:Wrapper,enumerable:false,writable:true,configurable:true}});return _set_prototype_of(Wrapper,Class)};return _wrap_native_super(Class)}function _is_native_reflect_construct(){try{var result=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(_){}return(_is_native_reflect_construct=function(){return!!result})()}var SoException=/*#__PURE__*/function(Error1){"use strict";_inherits(SoException,Error1);function SoException(statusCode,message,payload){_class_call_check(this,SoException);var _this;_this=_call_super(this,SoException,[message]),_define_property(_this,"statusCode",void 0),_define_property(_this,"message",void 0),_define_property(_this,"payload",void 0),_this.statusCode=statusCode,_this.message=message,_this.payload=payload;return _this}return SoException}(_wrap_native_super(Error));function isSoException(err){return err.statusCode!==undefined}var BadRequestException=/*#__PURE__*/function(SoException){"use strict";_inherits(BadRequestException,SoException);function BadRequestException(){var message=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"Bad Request",payload=arguments.length>1?arguments[1]:void 0;_class_call_check(this,BadRequestException);var _this;_this=_call_super(this,BadRequestException,[400,message,payload]),_define_property(_this,"message",void 0),_define_property(_this,"payload",void 0),_this.message=message,_this.payload=payload;return _this}return BadRequestException}(SoException);var UnauthorizedException=/*#__PURE__*/function(SoException){"use strict";_inherits(UnauthorizedException,SoException);function UnauthorizedException(){var message=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"Unauthorized",payload=arguments.length>1?arguments[1]:void 0;_class_call_check(this,UnauthorizedException);var _this;_this=_call_super(this,UnauthorizedException,[401,message,payload]),_define_property(_this,"message",void 0),_define_property(_this,"payload",void 0),_this.message=message,_this.payload=payload;return _this}return UnauthorizedException}(SoException);var NotFoundException=/*#__PURE__*/function(SoException){"use strict";_inherits(NotFoundException,SoException);function NotFoundException(){var message=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"Not Found",payload=arguments.length>1?arguments[1]:void 0;_class_call_check(this,NotFoundException);var _this;_this=_call_super(this,NotFoundException,[404,message,payload]),_define_property(_this,"message",void 0),_define_property(_this,"payload",void 0),_this.message=message,_this.payload=payload;return _this}return NotFoundException}(SoException);var ServiceUnavailableException=/*#__PURE__*/function(SoException){"use strict";_inherits(ServiceUnavailableException,SoException);function ServiceUnavailableException(){var message=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"Service Unavailable",payload=arguments.length>1?arguments[1]:void 0;_class_call_check(this,ServiceUnavailableException);var _this;_this=_call_super(this,ServiceUnavailableException,[503,message,payload]),_define_property(_this,"message",void 0),_define_property(_this,"payload",void 0),_this.message=message,_this.payload=payload;return _this}return ServiceUnavailableException}(SoException);var InternalServerErrorException=/*#__PURE__*/function(SoException){"use strict";_inherits(InternalServerErrorException,SoException);function InternalServerErrorException(){var message=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"Internal Server Error",payload=arguments.length>1?arguments[1]:void 0;_class_call_check(this,InternalServerErrorException);var _this;_this=_call_super(this,InternalServerErrorException,[500,message,payload]),_define_property(_this,"message",void 0),_define_property(_this,"payload",void 0),_this.message=message,_this.payload=payload;return _this}return InternalServerErrorException}(SoException);var AlreadyProcessedException=/*#__PURE__*/function(SoException){"use strict";_inherits(AlreadyProcessedException,SoException);function AlreadyProcessedException(){var message=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"Already Processed",payload=arguments.length>1?arguments[1]:void 0;_class_call_check(this,AlreadyProcessedException);var _this;_this=_call_super(this,AlreadyProcessedException,[541,message,payload]),_define_property(_this,"message",void 0),_define_property(_this,"payload",void 0),_this.message=message,_this.payload=payload;return _this}return AlreadyProcessedException}(SoException);var DuplicateRowException=/*#__PURE__*/function(SoException){"use strict";_inherits(DuplicateRowException,SoException);function DuplicateRowException(){var message=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"Duplicate Row",payload=arguments.length>1?arguments[1]:void 0;_class_call_check(this,DuplicateRowException);var _this;_this=_call_super(this,DuplicateRowException,[542,message,payload]),_define_property(_this,"message",void 0),_define_property(_this,"payload",void 0),_this.message=message,_this.payload=payload;return _this}return DuplicateRowException}(SoException);var TargetNotFoundException=/*#__PURE__*/function(SoException){"use strict";_inherits(TargetNotFoundException,SoException);function TargetNotFoundException(){var message=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"Target Not Found",payload=arguments.length>1?arguments[1]:void 0;_class_call_check(this,TargetNotFoundException);var _this;_this=_call_super(this,TargetNotFoundException,[520,message,payload]),_define_property(_this,"message",void 0),_define_property(_this,"payload",void 0),_this.message=message,_this.payload=payload;return _this}return TargetNotFoundException}(SoException);
2
- //# sourceMappingURL=so-exceptions.js.map
1
+ export class SoException extends Error {
2
+ statusCode;
3
+ message;
4
+ payload;
5
+ constructor(statusCode, message, payload){
6
+ super(message), this.statusCode = statusCode, this.message = message, this.payload = payload;
7
+ }
8
+ }
9
+ export function isSoException(err) {
10
+ return err.statusCode !== undefined;
11
+ }
12
+ /*
13
+ 잘못된 매개변수 등 요청사항에 문제가 있는 경우
14
+ */ export class BadRequestException extends SoException {
15
+ message;
16
+ payload;
17
+ constructor(message = "Bad Request", payload){
18
+ super(400, message, payload), this.message = message, this.payload = payload;
19
+ }
20
+ }
21
+ /*
22
+ 로그인이 반드시 필요한 케이스에 로그아웃 상태인 경우 / 접근 권한이 없는 요청시
23
+ */ export class UnauthorizedException extends SoException {
24
+ message;
25
+ payload;
26
+ constructor(message = "Unauthorized", payload){
27
+ super(401, message, payload), this.message = message, this.payload = payload;
28
+ }
29
+ }
30
+ /*
31
+ 존재하지 않는 레코드에 접근시
32
+ */ export class NotFoundException extends SoException {
33
+ message;
34
+ payload;
35
+ constructor(message = "Not Found", payload){
36
+ super(404, message, payload), this.message = message, this.payload = payload;
37
+ }
38
+ }
39
+ /*
40
+ 현재 상태에서 처리가 불가능한 케이스
41
+ */ export class ServiceUnavailableException extends SoException {
42
+ message;
43
+ payload;
44
+ constructor(message = "Service Unavailable", payload){
45
+ super(503, message, payload), this.message = message, this.payload = payload;
46
+ }
47
+ }
48
+ /*
49
+ 내부 처리 로직 (외부 API 콜 포함) 오류 발생시
50
+ */ export class InternalServerErrorException extends SoException {
51
+ message;
52
+ payload;
53
+ constructor(message = "Internal Server Error", payload){
54
+ super(500, message, payload), this.message = message, this.payload = payload;
55
+ }
56
+ }
57
+ /*
58
+ 이미 처리함
59
+ */ export class AlreadyProcessedException extends SoException {
60
+ message;
61
+ payload;
62
+ constructor(message = "Already Processed", payload){
63
+ super(541, message, payload), this.message = message, this.payload = payload;
64
+ }
65
+ }
66
+ /*
67
+ 중복 허용하지 않는 케이스에 중복 요청
68
+ */ export class DuplicateRowException extends SoException {
69
+ message;
70
+ payload;
71
+ constructor(message = "Duplicate Row", payload){
72
+ super(542, message, payload), this.message = message, this.payload = payload;
73
+ }
74
+ }
75
+ /*
76
+ 뭔가를 하려고 했으나 대상이 없음
77
+ */ export class TargetNotFoundException extends SoException {
78
+ message;
79
+ payload;
80
+ constructor(message = "Target Not Found", payload){
81
+ super(520, message, payload), this.message = message, this.payload = payload;
82
+ }
83
+ }
84
+
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leGNlcHRpb25zL3NvLWV4Y2VwdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNvRXhjZXB0aW9uIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgc3RhdHVzQ29kZTogbnVtYmVyLFxuICAgIHB1YmxpYyBtZXNzYWdlOiBzdHJpbmcsXG4gICAgcHVibGljIHBheWxvYWQ/OiB1bmtub3duXG4gICkge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1NvRXhjZXB0aW9uKGVycjogYW55KTogZXJyIGlzIFNvRXhjZXB0aW9uIHtcbiAgcmV0dXJuIGVyci5zdGF0dXNDb2RlICE9PSB1bmRlZmluZWQ7XG59XG5cbi8qXG5cdOyemOuqu+uQnCDrp6TqsJzrs4DsiJgg65OxIOyalOyyreyCrO2VreyXkCDrrLjsoJzqsIAg7J6I64qUIOqyveyasFxuKi9cbmV4cG9ydCBjbGFzcyBCYWRSZXF1ZXN0RXhjZXB0aW9uIGV4dGVuZHMgU29FeGNlcHRpb24ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbWVzc2FnZSA9IFwiQmFkIFJlcXVlc3RcIixcbiAgICBwdWJsaWMgcGF5bG9hZD86IHVua25vd25cbiAgKSB7XG4gICAgc3VwZXIoNDAwLCBtZXNzYWdlLCBwYXlsb2FkKTtcbiAgfVxufVxuXG4vKlxuXHTroZzqt7jsnbjsnbQg67CY65Oc7IucIO2VhOyalO2VnCDsvIDsnbTsiqTsl5Ag66Gc6re47JWE7JuDIOyDge2DnOyduCDqsr3smrAgLyDsoJHqt7wg6raM7ZWc7J20IOyXhuuKlCDsmpTssq3si5xcbiovXG5leHBvcnQgY2xhc3MgVW5hdXRob3JpemVkRXhjZXB0aW9uIGV4dGVuZHMgU29FeGNlcHRpb24ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbWVzc2FnZSA9IFwiVW5hdXRob3JpemVkXCIsXG4gICAgcHVibGljIHBheWxvYWQ/OiB1bmtub3duXG4gICkge1xuICAgIHN1cGVyKDQwMSwgbWVzc2FnZSwgcGF5bG9hZCk7XG4gIH1cbn1cblxuLypcblx07KG07J6s7ZWY7KeAIOyViuuKlCDroIjsvZTrk5zsl5Ag7KCR6re87IucXG4qL1xuZXhwb3J0IGNsYXNzIE5vdEZvdW5kRXhjZXB0aW9uIGV4dGVuZHMgU29FeGNlcHRpb24ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbWVzc2FnZSA9IFwiTm90IEZvdW5kXCIsXG4gICAgcHVibGljIHBheWxvYWQ/OiB1bmtub3duXG4gICkge1xuICAgIHN1cGVyKDQwNCwgbWVzc2FnZSwgcGF5bG9hZCk7XG4gIH1cbn1cblxuLypcblx07ZiE7J6sIOyDge2DnOyXkOyEnCDsspjrpqzqsIAg67aI6rCA64ql7ZWcIOy8gOydtOyKpFxuKi9cbmV4cG9ydCBjbGFzcyBTZXJ2aWNlVW5hdmFpbGFibGVFeGNlcHRpb24gZXh0ZW5kcyBTb0V4Y2VwdGlvbiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBtZXNzYWdlID0gXCJTZXJ2aWNlIFVuYXZhaWxhYmxlXCIsXG4gICAgcHVibGljIHBheWxvYWQ/OiB1bmtub3duXG4gICkge1xuICAgIHN1cGVyKDUwMywgbWVzc2FnZSwgcGF5bG9hZCk7XG4gIH1cbn1cblxuLypcblx064K067aAIOyymOumrCDroZzsp4EgKOyZuOu2gCBBUEkg7L2cIO2PrO2VqCkg7Jik66WYIOuwnOyDneyLnFxuKi9cbmV4cG9ydCBjbGFzcyBJbnRlcm5hbFNlcnZlckVycm9yRXhjZXB0aW9uIGV4dGVuZHMgU29FeGNlcHRpb24ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbWVzc2FnZSA9IFwiSW50ZXJuYWwgU2VydmVyIEVycm9yXCIsXG4gICAgcHVibGljIHBheWxvYWQ/OiB1bmtub3duXG4gICkge1xuICAgIHN1cGVyKDUwMCwgbWVzc2FnZSwgcGF5bG9hZCk7XG4gIH1cbn1cblxuLypcblx07J2066+4IOyymOumrO2VqFxuKi9cbmV4cG9ydCBjbGFzcyBBbHJlYWR5UHJvY2Vzc2VkRXhjZXB0aW9uIGV4dGVuZHMgU29FeGNlcHRpb24ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbWVzc2FnZSA9IFwiQWxyZWFkeSBQcm9jZXNzZWRcIixcbiAgICBwdWJsaWMgcGF5bG9hZD86IHVua25vd25cbiAgKSB7XG4gICAgc3VwZXIoNTQxLCBtZXNzYWdlLCBwYXlsb2FkKTtcbiAgfVxufVxuXG4vKlxuXHTspJHrs7Ug7ZeI7Jqp7ZWY7KeAIOyViuuKlCDsvIDsnbTsiqTsl5Ag7KSR67O1IOyalOyyrVxuKi9cbmV4cG9ydCBjbGFzcyBEdXBsaWNhdGVSb3dFeGNlcHRpb24gZXh0ZW5kcyBTb0V4Y2VwdGlvbiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBtZXNzYWdlID0gXCJEdXBsaWNhdGUgUm93XCIsXG4gICAgcHVibGljIHBheWxvYWQ/OiB1bmtub3duXG4gICkge1xuICAgIHN1cGVyKDU0MiwgbWVzc2FnZSwgcGF5bG9hZCk7XG4gIH1cbn1cblxuLypcblx0662U6rCA66W8IO2VmOugpOqzoCDtlojsnLzrgpgg64yA7IOB7J20IOyXhuydjFxuKi9cbmV4cG9ydCBjbGFzcyBUYXJnZXROb3RGb3VuZEV4Y2VwdGlvbiBleHRlbmRzIFNvRXhjZXB0aW9uIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG1lc3NhZ2UgPSBcIlRhcmdldCBOb3QgRm91bmRcIixcbiAgICBwdWJsaWMgcGF5bG9hZD86IHVua25vd25cbiAgKSB7XG4gICAgc3VwZXIoNTIwLCBtZXNzYWdlLCBwYXlsb2FkKTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIlNvRXhjZXB0aW9uIiwiRXJyb3IiLCJzdGF0dXNDb2RlIiwibWVzc2FnZSIsInBheWxvYWQiLCJpc1NvRXhjZXB0aW9uIiwiZXJyIiwidW5kZWZpbmVkIiwiQmFkUmVxdWVzdEV4Y2VwdGlvbiIsIlVuYXV0aG9yaXplZEV4Y2VwdGlvbiIsIk5vdEZvdW5kRXhjZXB0aW9uIiwiU2VydmljZVVuYXZhaWxhYmxlRXhjZXB0aW9uIiwiSW50ZXJuYWxTZXJ2ZXJFcnJvckV4Y2VwdGlvbiIsIkFscmVhZHlQcm9jZXNzZWRFeGNlcHRpb24iLCJEdXBsaWNhdGVSb3dFeGNlcHRpb24iLCJUYXJnZXROb3RGb3VuZEV4Y2VwdGlvbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFlQSxvQkFBb0JDOzs7O0lBQ3hDLFlBQ0UsQUFBZ0JDLFVBQWtCLEVBQ2xDLEFBQU9DLE9BQWUsRUFDdEIsQUFBT0MsT0FBaUIsQ0FDeEI7UUFDQSxLQUFLLENBQUNELGVBSlVELGFBQUFBLGlCQUNUQyxVQUFBQSxjQUNBQyxVQUFBQTtJQUdUO0FBQ0Y7QUFFQSxPQUFPLFNBQVNDLGNBQWNDLEdBQVE7SUFDcEMsT0FBT0EsSUFBSUosVUFBVSxLQUFLSztBQUM1QjtBQUVBOztBQUVBLEdBQ0EsT0FBTyxNQUFNQyw0QkFBNEJSOzs7SUFDdkMsWUFDRSxBQUFPRyxVQUFVLGFBQWEsRUFDOUIsQUFBT0MsT0FBaUIsQ0FDeEI7UUFDQSxLQUFLLENBQUMsS0FBS0QsU0FBU0MsZUFIYkQsVUFBQUEsY0FDQUMsVUFBQUE7SUFHVDtBQUNGO0FBRUE7O0FBRUEsR0FDQSxPQUFPLE1BQU1LLDhCQUE4QlQ7OztJQUN6QyxZQUNFLEFBQU9HLFVBQVUsY0FBYyxFQUMvQixBQUFPQyxPQUFpQixDQUN4QjtRQUNBLEtBQUssQ0FBQyxLQUFLRCxTQUFTQyxlQUhiRCxVQUFBQSxjQUNBQyxVQUFBQTtJQUdUO0FBQ0Y7QUFFQTs7QUFFQSxHQUNBLE9BQU8sTUFBTU0sMEJBQTBCVjs7O0lBQ3JDLFlBQ0UsQUFBT0csVUFBVSxXQUFXLEVBQzVCLEFBQU9DLE9BQWlCLENBQ3hCO1FBQ0EsS0FBSyxDQUFDLEtBQUtELFNBQVNDLGVBSGJELFVBQUFBLGNBQ0FDLFVBQUFBO0lBR1Q7QUFDRjtBQUVBOztBQUVBLEdBQ0EsT0FBTyxNQUFNTyxvQ0FBb0NYOzs7SUFDL0MsWUFDRSxBQUFPRyxVQUFVLHFCQUFxQixFQUN0QyxBQUFPQyxPQUFpQixDQUN4QjtRQUNBLEtBQUssQ0FBQyxLQUFLRCxTQUFTQyxlQUhiRCxVQUFBQSxjQUNBQyxVQUFBQTtJQUdUO0FBQ0Y7QUFFQTs7QUFFQSxHQUNBLE9BQU8sTUFBTVEscUNBQXFDWjs7O0lBQ2hELFlBQ0UsQUFBT0csVUFBVSx1QkFBdUIsRUFDeEMsQUFBT0MsT0FBaUIsQ0FDeEI7UUFDQSxLQUFLLENBQUMsS0FBS0QsU0FBU0MsZUFIYkQsVUFBQUEsY0FDQUMsVUFBQUE7SUFHVDtBQUNGO0FBRUE7O0FBRUEsR0FDQSxPQUFPLE1BQU1TLGtDQUFrQ2I7OztJQUM3QyxZQUNFLEFBQU9HLFVBQVUsbUJBQW1CLEVBQ3BDLEFBQU9DLE9BQWlCLENBQ3hCO1FBQ0EsS0FBSyxDQUFDLEtBQUtELFNBQVNDLGVBSGJELFVBQUFBLGNBQ0FDLFVBQUFBO0lBR1Q7QUFDRjtBQUVBOztBQUVBLEdBQ0EsT0FBTyxNQUFNVSw4QkFBOEJkOzs7SUFDekMsWUFDRSxBQUFPRyxVQUFVLGVBQWUsRUFDaEMsQUFBT0MsT0FBaUIsQ0FDeEI7UUFDQSxLQUFLLENBQUMsS0FBS0QsU0FBU0MsZUFIYkQsVUFBQUEsY0FDQUMsVUFBQUE7SUFHVDtBQUNGO0FBRUE7O0FBRUEsR0FDQSxPQUFPLE1BQU1XLGdDQUFnQ2Y7OztJQUMzQyxZQUNFLEFBQU9HLFVBQVUsa0JBQWtCLEVBQ25DLEFBQU9DLE9BQWlCLENBQ3hCO1FBQ0EsS0FBSyxDQUFDLEtBQUtELFNBQVNDLGVBSGJELFVBQUFBLGNBQ0FDLFVBQUFBO0lBR1Q7QUFDRiJ9
@@ -1,2 +1,79 @@
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 FSDriver(){return FSDriver},get S3Driver(){return S3Driver}});var _clients3=require("@aws-sdk/client-s3");var _s3requestpresigner=require("@aws-sdk/s3-request-presigner");var _promises=/*#__PURE__*/_interop_require_default(require("fs/promises"));var _path=/*#__PURE__*/_interop_require_default(require("path"));function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _class_call_check(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _create_class(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _interop_require_default(obj){return obj&&obj.__esModule?obj:{default:obj}}function _ts_generator(thisArg,body){var f,y,t,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},g=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return g.next=verb(0),g["throw"]=verb(1),g["return"]=verb(2),typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(g&&(g=0,op[0]&&(_=0)),_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}var FSDriver=/*#__PURE__*/function(){"use strict";function FSDriver(config){_class_call_check(this,FSDriver);_define_property(this,"config",void 0);this.config=config}_create_class(FSDriver,[{key:"put",value:function put(key,contents){return _async_to_generator(function(){var filePath,dir;return _ts_generator(this,function(_state){switch(_state.label){case 0:filePath=_path.default.join(this.config.location,key);dir=_path.default.dirname(filePath);return[4,_promises.default.mkdir(dir,{recursive:true})];case 1:_state.sent();return[4,_promises.default.writeFile(filePath,contents)];case 2:_state.sent();return[2]}})}).call(this)}},{key:"del",value:function del(key){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,_promises.default.rm(_path.default.join(this.config.location,key))];case 1:_state.sent();return[2]}})}).call(this)}},{key:"getUrl",value:function getUrl(key){return"".concat(this.config.urlPrefix,"/").concat(key)}},{key:"getSignedUrl",value:function getSignedUrl(key,_expiresIn){return _async_to_generator(function(){return _ts_generator(this,function(_state){return[2,this.getUrl(key)]})}).call(this)}},{key:"destroy",value:function destroy(){}}]);return FSDriver}();var S3Driver=/*#__PURE__*/function(){"use strict";function S3Driver(config){_class_call_check(this,S3Driver);_define_property(this,"config",void 0);_define_property(this,"s3",void 0);this.config=config;this.s3=new _clients3.S3Client(config)}_create_class(S3Driver,[{key:"put",value:function put(key,contents,options){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,this.s3.send(new _clients3.PutObjectCommand({Bucket:this.config.bucket,Key:key,Body:contents,ContentType:options===null||options===void 0?void 0:options.contentType,ACL:this.getAcl(options===null||options===void 0?void 0:options.visibility)}))];case 1:_state.sent();return[2]}})}).call(this)}},{key:"del",value:function del(key){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,this.s3.send(new _clients3.DeleteObjectCommand({Bucket:this.config.bucket,Key:key}))];case 1:_state.sent();return[2]}})}).call(this)}},{key:"getUrl",value:function getUrl(key){return"https://".concat(this.config.bucket,".s3.").concat(this.config.region,".amazonaws.com/").concat(key)}},{key:"getSignedUrl",value:function getSignedUrl(key,expiresIn){return _async_to_generator(function(){var command;return _ts_generator(this,function(_state){command=new _clients3.GetObjectCommand({Bucket:this.config.bucket,Key:key});return[2,(0,_s3requestpresigner.getSignedUrl)(this.s3,command,{expiresIn:expiresIn!==null&&expiresIn!==void 0?expiresIn:60*60*24*7})]})}).call(this)}},{key:"getAcl",value:function getAcl(visibility){if(visibility==="public"){return"public-read"}return visibility}},{key:"destroy",value:function destroy(){this.s3.destroy()}}]);return S3Driver}();
2
- //# sourceMappingURL=driver.js.map
1
+ import { DeleteObjectCommand, GetObjectCommand, PutObjectCommand, S3Client } from "@aws-sdk/client-s3";
2
+ import { getSignedUrl } from "@aws-sdk/s3-request-presigner";
3
+ import fs from "node:fs/promises";
4
+ import path from "path";
5
+ /**
6
+ * 로컬 파일시스템
7
+ */ export class FSDriver {
8
+ config;
9
+ constructor(config){
10
+ this.config = config;
11
+ }
12
+ async put(key, contents) {
13
+ const filePath = path.join(this.config.location, key);
14
+ const dir = path.dirname(filePath);
15
+ await fs.mkdir(dir, {
16
+ recursive: true
17
+ });
18
+ await fs.writeFile(filePath, contents);
19
+ }
20
+ async del(key) {
21
+ await fs.rm(path.join(this.config.location, key));
22
+ }
23
+ getUrl(key) {
24
+ return `${this.config.urlPrefix}/${key}`;
25
+ }
26
+ // 로컬 파일시스템은 signed URL을 지원하지 않으므로 일반 URL 반환
27
+ async getSignedUrl(key, _expiresIn) {
28
+ return this.getUrl(key);
29
+ }
30
+ destroy() {
31
+ // 아무것도 하지 않음
32
+ }
33
+ }
34
+ export class S3Driver {
35
+ config;
36
+ s3;
37
+ constructor(config){
38
+ this.config = config;
39
+ this.s3 = new S3Client(config);
40
+ }
41
+ async put(key, contents, options) {
42
+ await this.s3.send(new PutObjectCommand({
43
+ Bucket: this.config.bucket,
44
+ Key: key,
45
+ Body: contents,
46
+ ContentType: options?.contentType,
47
+ ACL: this.getAcl(options?.visibility)
48
+ }));
49
+ }
50
+ async del(key) {
51
+ await this.s3.send(new DeleteObjectCommand({
52
+ Bucket: this.config.bucket,
53
+ Key: key
54
+ }));
55
+ }
56
+ getUrl(key) {
57
+ return `https://${this.config.bucket}.s3.${this.config.region}.amazonaws.com/${key}`;
58
+ }
59
+ async getSignedUrl(key, expiresIn) {
60
+ const command = new GetObjectCommand({
61
+ Bucket: this.config.bucket,
62
+ Key: key
63
+ });
64
+ return getSignedUrl(this.s3, command, {
65
+ expiresIn: expiresIn ?? 60 * 60 * 24 * 7
66
+ });
67
+ }
68
+ getAcl(visibility) {
69
+ if (visibility === "public") {
70
+ return "public-read";
71
+ }
72
+ return visibility;
73
+ }
74
+ destroy() {
75
+ this.s3.destroy();
76
+ }
77
+ }
78
+
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWxlLXN0b3JhZ2UvZHJpdmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERlbGV0ZU9iamVjdENvbW1hbmQsXG4gIEdldE9iamVjdENvbW1hbmQsXG4gIFB1dE9iamVjdENvbW1hbmQsXG4gIFMzQ2xpZW50LFxuICBTM0NsaWVudENvbmZpZyxcbn0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1zM1wiO1xuaW1wb3J0IHsgZ2V0U2lnbmVkVXJsIH0gZnJvbSBcIkBhd3Mtc2RrL3MzLXJlcXVlc3QtcHJlc2lnbmVyXCI7XG5pbXBvcnQgZnMgZnJvbSBcImZzL3Byb21pc2VzXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG4vKipcbiAqIO2MjOydvCDsoIDsnqXshozsnZgg6rO17Ya1IOyduO2EsO2OmOydtOyKpFxuICovXG5leHBvcnQgaW50ZXJmYWNlIERyaXZlciB7XG4gIHB1dChcbiAgICBrZXk6IHN0cmluZyxcbiAgICBjb250ZW50czogQnVmZmVyLFxuICAgIG9wdGlvbnM/OiB7IGNvbnRlbnRUeXBlPzogc3RyaW5nOyB2aXNpYmlsaXR5PzogXCJwdWJsaWNcIiB8IFwicHJpdmF0ZVwiIH1cbiAgKTogUHJvbWlzZTx2b2lkPjtcblxuICBkZWwoa2V5OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+O1xuXG4gIGdldFVybChrZXk6IHN0cmluZyk6IHN0cmluZztcblxuICBnZXRTaWduZWRVcmwoa2V5OiBzdHJpbmcsIGV4cGlyZXNJbj86IG51bWJlcik6IFByb21pc2U8c3RyaW5nPjtcblxuICBkZXN0cm95KCk6IHZvaWQ7XG59XG5cbmV4cG9ydCB0eXBlIEZTRHJpdmVyQ29uZmlnID0ge1xuICBsb2NhdGlvbjogc3RyaW5nO1xuICB1cmxQcmVmaXg6IHN0cmluZztcbn07XG5cbi8qKlxuICog66Gc7LusIO2MjOydvOyLnOyKpO2FnFxuICovXG5leHBvcnQgY2xhc3MgRlNEcml2ZXIgaW1wbGVtZW50cyBEcml2ZXIge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbmZpZzogRlNEcml2ZXJDb25maWcpIHt9XG5cbiAgYXN5bmMgcHV0KGtleTogc3RyaW5nLCBjb250ZW50czogQnVmZmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4odGhpcy5jb25maWcubG9jYXRpb24sIGtleSk7XG4gICAgY29uc3QgZGlyID0gcGF0aC5kaXJuYW1lKGZpbGVQYXRoKTtcblxuICAgIGF3YWl0IGZzLm1rZGlyKGRpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cbiAgICBhd2FpdCBmcy53cml0ZUZpbGUoZmlsZVBhdGgsIGNvbnRlbnRzKTtcbiAgfVxuXG4gIGFzeW5jIGRlbChrZXk6IHN0cmluZykge1xuICAgIGF3YWl0IGZzLnJtKHBhdGguam9pbih0aGlzLmNvbmZpZy5sb2NhdGlvbiwga2V5KSk7XG4gIH1cblxuICBnZXRVcmwoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLmNvbmZpZy51cmxQcmVmaXh9LyR7a2V5fWA7XG4gIH1cblxuICAvLyDroZzsu6wg7YyM7J287Iuc7Iqk7YWc7J2AIHNpZ25lZCBVUkzsnYQg7KeA7JuQ7ZWY7KeAIOyViuycvOuvgOuhnCDsnbzrsJggVVJMIOuwmO2ZmFxuICBhc3luYyBnZXRTaWduZWRVcmwoa2V5OiBzdHJpbmcsIF9leHBpcmVzSW4/OiBudW1iZXIpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmdldFVybChrZXkpO1xuICB9XG5cbiAgZGVzdHJveSgpIHtcbiAgICAvLyDslYTrrLTqsoPrj4Qg7ZWY7KeAIOyViuydjFxuICB9XG59XG5cbmV4cG9ydCB0eXBlIFMzRHJpdmVyQ29uZmlnID0gUzNDbGllbnRDb25maWcgJiB7XG4gIGJ1Y2tldDogc3RyaW5nO1xufTtcblxuZXhwb3J0IGNsYXNzIFMzRHJpdmVyIGltcGxlbWVudHMgRHJpdmVyIHtcbiAgczM6IFMzQ2xpZW50O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uZmlnOiBTM0RyaXZlckNvbmZpZykge1xuICAgIHRoaXMuczMgPSBuZXcgUzNDbGllbnQoY29uZmlnKTtcbiAgfVxuXG4gIGFzeW5jIHB1dChcbiAgICBrZXk6IHN0cmluZyxcbiAgICBjb250ZW50czogQnVmZmVyLFxuICAgIG9wdGlvbnM/OiB7IGNvbnRlbnRUeXBlPzogc3RyaW5nOyB2aXNpYmlsaXR5PzogXCJwdWJsaWNcIiB8IFwicHJpdmF0ZVwiIH1cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5zMy5zZW5kKFxuICAgICAgbmV3IFB1dE9iamVjdENvbW1hbmQoe1xuICAgICAgICBCdWNrZXQ6IHRoaXMuY29uZmlnLmJ1Y2tldCxcbiAgICAgICAgS2V5OiBrZXksXG4gICAgICAgIEJvZHk6IGNvbnRlbnRzLFxuICAgICAgICBDb250ZW50VHlwZTogb3B0aW9ucz8uY29udGVudFR5cGUsXG4gICAgICAgIEFDTDogdGhpcy5nZXRBY2wob3B0aW9ucz8udmlzaWJpbGl0eSksXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBhc3luYyBkZWwoa2V5OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnMzLnNlbmQoXG4gICAgICBuZXcgRGVsZXRlT2JqZWN0Q29tbWFuZCh7XG4gICAgICAgIEJ1Y2tldDogdGhpcy5jb25maWcuYnVja2V0LFxuICAgICAgICBLZXk6IGtleSxcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGdldFVybChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBodHRwczovLyR7dGhpcy5jb25maWcuYnVja2V0fS5zMy4ke3RoaXMuY29uZmlnLnJlZ2lvbn0uYW1hem9uYXdzLmNvbS8ke2tleX1gO1xuICB9XG5cbiAgYXN5bmMgZ2V0U2lnbmVkVXJsKGtleTogc3RyaW5nLCBleHBpcmVzSW4/OiBudW1iZXIpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGNvbW1hbmQgPSBuZXcgR2V0T2JqZWN0Q29tbWFuZCh7XG4gICAgICBCdWNrZXQ6IHRoaXMuY29uZmlnLmJ1Y2tldCxcbiAgICAgIEtleToga2V5LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGdldFNpZ25lZFVybCh0aGlzLnMzLCBjb21tYW5kLCB7XG4gICAgICBleHBpcmVzSW46IGV4cGlyZXNJbiA/PyA2MCAqIDYwICogMjQgKiA3LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBY2wodmlzaWJpbGl0eT86IFwicHVibGljXCIgfCBcInByaXZhdGVcIikge1xuICAgIGlmICh2aXNpYmlsaXR5ID09PSBcInB1YmxpY1wiKSB7XG4gICAgICByZXR1cm4gXCJwdWJsaWMtcmVhZFwiO1xuICAgIH1cblxuICAgIHJldHVybiB2aXNpYmlsaXR5O1xuICB9XG5cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLnMzLmRlc3Ryb3koKTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkRlbGV0ZU9iamVjdENvbW1hbmQiLCJHZXRPYmplY3RDb21tYW5kIiwiUHV0T2JqZWN0Q29tbWFuZCIsIlMzQ2xpZW50IiwiZ2V0U2lnbmVkVXJsIiwiZnMiLCJwYXRoIiwiRlNEcml2ZXIiLCJjb25maWciLCJwdXQiLCJrZXkiLCJjb250ZW50cyIsImZpbGVQYXRoIiwiam9pbiIsImxvY2F0aW9uIiwiZGlyIiwiZGlybmFtZSIsIm1rZGlyIiwicmVjdXJzaXZlIiwid3JpdGVGaWxlIiwiZGVsIiwicm0iLCJnZXRVcmwiLCJ1cmxQcmVmaXgiLCJfZXhwaXJlc0luIiwiZGVzdHJveSIsIlMzRHJpdmVyIiwiczMiLCJvcHRpb25zIiwic2VuZCIsIkJ1Y2tldCIsImJ1Y2tldCIsIktleSIsIkJvZHkiLCJDb250ZW50VHlwZSIsImNvbnRlbnRUeXBlIiwiQUNMIiwiZ2V0QWNsIiwidmlzaWJpbGl0eSIsInJlZ2lvbiIsImV4cGlyZXNJbiIsImNvbW1hbmQiXSwibWFwcGluZ3MiOiJBQUFBLFNBQ0VBLG1CQUFtQixFQUNuQkMsZ0JBQWdCLEVBQ2hCQyxnQkFBZ0IsRUFDaEJDLFFBQVEsUUFFSCxxQkFBcUI7QUFDNUIsU0FBU0MsWUFBWSxRQUFRLGdDQUFnQztBQUM3RCxPQUFPQyxRQUFRLG1CQUFjO0FBQzdCLE9BQU9DLFVBQVUsT0FBTztBQTBCeEI7O0NBRUMsR0FDRCxPQUFPLE1BQU1DOztJQUNYLFlBQVksQUFBUUMsTUFBc0IsQ0FBRTthQUF4QkEsU0FBQUE7SUFBeUI7SUFFN0MsTUFBTUMsSUFBSUMsR0FBVyxFQUFFQyxRQUFnQixFQUFpQjtRQUN0RCxNQUFNQyxXQUFXTixLQUFLTyxJQUFJLENBQUMsSUFBSSxDQUFDTCxNQUFNLENBQUNNLFFBQVEsRUFBRUo7UUFDakQsTUFBTUssTUFBTVQsS0FBS1UsT0FBTyxDQUFDSjtRQUV6QixNQUFNUCxHQUFHWSxLQUFLLENBQUNGLEtBQUs7WUFBRUcsV0FBVztRQUFLO1FBRXRDLE1BQU1iLEdBQUdjLFNBQVMsQ0FBQ1AsVUFBVUQ7SUFDL0I7SUFFQSxNQUFNUyxJQUFJVixHQUFXLEVBQUU7UUFDckIsTUFBTUwsR0FBR2dCLEVBQUUsQ0FBQ2YsS0FBS08sSUFBSSxDQUFDLElBQUksQ0FBQ0wsTUFBTSxDQUFDTSxRQUFRLEVBQUVKO0lBQzlDO0lBRUFZLE9BQU9aLEdBQVcsRUFBVTtRQUMxQixPQUFPLEdBQUcsSUFBSSxDQUFDRixNQUFNLENBQUNlLFNBQVMsQ0FBQyxDQUFDLEVBQUViLEtBQUs7SUFDMUM7SUFFQSw0Q0FBNEM7SUFDNUMsTUFBTU4sYUFBYU0sR0FBVyxFQUFFYyxVQUFtQixFQUFtQjtRQUNwRSxPQUFPLElBQUksQ0FBQ0YsTUFBTSxDQUFDWjtJQUNyQjtJQUVBZSxVQUFVO0lBQ1IsYUFBYTtJQUNmO0FBQ0Y7QUFNQSxPQUFPLE1BQU1DOztJQUNYQyxHQUFhO0lBRWIsWUFBWSxBQUFRbkIsTUFBc0IsQ0FBRTthQUF4QkEsU0FBQUE7UUFDbEIsSUFBSSxDQUFDbUIsRUFBRSxHQUFHLElBQUl4QixTQUFTSztJQUN6QjtJQUVBLE1BQU1DLElBQ0pDLEdBQVcsRUFDWEMsUUFBZ0IsRUFDaEJpQixPQUFxRSxFQUN0RDtRQUNmLE1BQU0sSUFBSSxDQUFDRCxFQUFFLENBQUNFLElBQUksQ0FDaEIsSUFBSTNCLGlCQUFpQjtZQUNuQjRCLFFBQVEsSUFBSSxDQUFDdEIsTUFBTSxDQUFDdUIsTUFBTTtZQUMxQkMsS0FBS3RCO1lBQ0x1QixNQUFNdEI7WUFDTnVCLGFBQWFOLFNBQVNPO1lBQ3RCQyxLQUFLLElBQUksQ0FBQ0MsTUFBTSxDQUFDVCxTQUFTVTtRQUM1QjtJQUVKO0lBRUEsTUFBTWxCLElBQUlWLEdBQVcsRUFBaUI7UUFDcEMsTUFBTSxJQUFJLENBQUNpQixFQUFFLENBQUNFLElBQUksQ0FDaEIsSUFBSTdCLG9CQUFvQjtZQUN0QjhCLFFBQVEsSUFBSSxDQUFDdEIsTUFBTSxDQUFDdUIsTUFBTTtZQUMxQkMsS0FBS3RCO1FBQ1A7SUFFSjtJQUVBWSxPQUFPWixHQUFXLEVBQVU7UUFDMUIsT0FBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUNGLE1BQU0sQ0FBQ3VCLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDdkIsTUFBTSxDQUFDK0IsTUFBTSxDQUFDLGVBQWUsRUFBRTdCLEtBQUs7SUFDdEY7SUFFQSxNQUFNTixhQUFhTSxHQUFXLEVBQUU4QixTQUFrQixFQUFtQjtRQUNuRSxNQUFNQyxVQUFVLElBQUl4QyxpQkFBaUI7WUFDbkM2QixRQUFRLElBQUksQ0FBQ3RCLE1BQU0sQ0FBQ3VCLE1BQU07WUFDMUJDLEtBQUt0QjtRQUNQO1FBRUEsT0FBT04sYUFBYSxJQUFJLENBQUN1QixFQUFFLEVBQUVjLFNBQVM7WUFDcENELFdBQVdBLGFBQWEsS0FBSyxLQUFLLEtBQUs7UUFDekM7SUFDRjtJQUVRSCxPQUFPQyxVQUFpQyxFQUFFO1FBQ2hELElBQUlBLGVBQWUsVUFBVTtZQUMzQixPQUFPO1FBQ1Q7UUFFQSxPQUFPQTtJQUNUO0lBRUFiLFVBQVU7UUFDUixJQUFJLENBQUNFLEVBQUUsQ0FBQ0YsT0FBTztJQUNqQjtBQUNGIn0=
@@ -1,2 +1,75 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"FileStorage",{enumerable:true,get:function(){return FileStorage}});var _mimetypes=/*#__PURE__*/_interop_require_default(require("mime-types"));var _crypto=require("crypto");function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _class_call_check(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _create_class(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _interop_require_default(obj){return obj&&obj.__esModule?obj:{default:obj}}function _ts_generator(thisArg,body){var f,y,t,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},g=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return g.next=verb(0),g["throw"]=verb(1),g["return"]=verb(2),typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(g&&(g=0,op[0]&&(_=0)),_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}var FileStorage=/*#__PURE__*/function(){"use strict";function FileStorage(file,driver){_class_call_check(this,FileStorage);_define_property(this,"_file",void 0);_define_property(this,"_buffer",void 0);_define_property(this,"_driver",void 0);this._file=file;this._driver=driver}_create_class(FileStorage,[{key:"clientName",get:function get(){return this._file.filename}},{key:"filename",get:function get(){return this._file.filename}},{key:"fieldName",get:function get(){return this._file.fieldname}},{key:"size",get:function get(){return this._file.file.bytesRead}},{key:"extname",get:function get(){return _mimetypes.default.extension(this._file.mimetype)}},{key:"mimetype",get:function get(){return this._file.mimetype}},{key:"encoding",get:function get(){return this._file.encoding}},{key:"toBuffer",value:function toBuffer(){return _async_to_generator(function(){var _;return _ts_generator(this,function(_state){switch(_state.label){case 0:if(!!this._buffer)return[3,2];_=this;return[4,this._file.toBuffer()];case 1:_._buffer=_state.sent();_state.label=2;case 2:return[2,this._buffer]}})}).call(this)}},{key:"md5",value:function md5(){return _async_to_generator(function(){var buffer;return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,this.toBuffer()];case 1:buffer=_state.sent();return[2,(0,_crypto.createHash)("md5").update(buffer).digest("hex")]}})}).call(this)}},{key:"saveToDisk",value:function saveToDisk(key,options){return _async_to_generator(function(){var buffer,_options_contentType;return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,this.toBuffer()];case 1:buffer=_state.sent();return[4,this._driver.put(key,buffer,{contentType:(_options_contentType=options===null||options===void 0?void 0:options.contentType)!==null&&_options_contentType!==void 0?_options_contentType:this.mimetype,visibility:options===null||options===void 0?void 0:options.visibility})];case 2:_state.sent();return[2,this._driver.getSignedUrl(key)]}})}).call(this)}},{key:"raw",get:function get(){return this._file}}]);return FileStorage}();
2
- //# sourceMappingURL=file-storage.js.map
1
+ import mime from "mime-types";
2
+ import { createHash } from "crypto";
3
+ /**
4
+ * @fastify/multipart의 MultipartFile 래퍼
5
+ */ export class FileStorage {
6
+ _file;
7
+ _buffer;
8
+ _driver;
9
+ constructor(file, driver){
10
+ this._file = file;
11
+ this._driver = driver;
12
+ }
13
+ /**
14
+ * 사용자 컴퓨터의 원본 파일명
15
+ */ get clientName() {
16
+ return this._file.filename;
17
+ }
18
+ /**
19
+ * 파일명 (clientName의 별칭)
20
+ */ get filename() {
21
+ return this._file.filename;
22
+ }
23
+ /**
24
+ * HTML input 필드명
25
+ */ get fieldName() {
26
+ return this._file.fieldname;
27
+ }
28
+ /**
29
+ * 파일 크기 (바이트)
30
+ */ get size() {
31
+ return this._file.file.bytesRead;
32
+ }
33
+ /**
34
+ * 파일 확장자 (점 제외)
35
+ */ get extname() {
36
+ return mime.extension(this._file.mimetype);
37
+ }
38
+ get mimetype() {
39
+ return this._file.mimetype;
40
+ }
41
+ get encoding() {
42
+ return this._file.encoding;
43
+ }
44
+ async toBuffer() {
45
+ if (!this._buffer) {
46
+ this._buffer = await this._file.toBuffer();
47
+ }
48
+ return this._buffer;
49
+ }
50
+ async md5() {
51
+ const buffer = await this.toBuffer();
52
+ return createHash("md5").update(buffer).digest("hex");
53
+ }
54
+ /**
55
+ * 파일을 저장소에 저장
56
+ *
57
+ * @example
58
+ * ```typescript
59
+ * const { file } = Sonamu.getUploadContext();
60
+ * const url = await file.saveToDisk('uploads/avatar.png');
61
+ * ```
62
+ */ async saveToDisk(key, options) {
63
+ const buffer = await this.toBuffer();
64
+ await this._driver.put(key, buffer, {
65
+ contentType: options?.contentType ?? this.mimetype,
66
+ visibility: options?.visibility
67
+ });
68
+ return this._driver.getSignedUrl(key);
69
+ }
70
+ get raw() {
71
+ return this._file;
72
+ }
73
+ }
74
+
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWxlLXN0b3JhZ2UvZmlsZS1zdG9yYWdlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTXVsdGlwYXJ0RmlsZSB9IGZyb20gXCJAZmFzdGlmeS9tdWx0aXBhcnRcIjtcbmltcG9ydCBtaW1lIGZyb20gXCJtaW1lLXR5cGVzXCI7XG5pbXBvcnQgeyBjcmVhdGVIYXNoIH0gZnJvbSBcImNyeXB0b1wiO1xuaW1wb3J0IHR5cGUgeyBEcml2ZXIgfSBmcm9tIFwiLi9kcml2ZXJcIjtcblxuLyoqXG4gKiBAZmFzdGlmeS9tdWx0aXBhcnTsnZggTXVsdGlwYXJ0RmlsZSDrnpjtjbxcbiAqL1xuZXhwb3J0IGNsYXNzIEZpbGVTdG9yYWdlIHtcbiAgcHJpdmF0ZSBfZmlsZTogTXVsdGlwYXJ0RmlsZTtcbiAgcHJpdmF0ZSBfYnVmZmVyPzogQnVmZmVyO1xuICBwcml2YXRlIF9kcml2ZXI6IERyaXZlcjtcblxuICBjb25zdHJ1Y3RvcihmaWxlOiBNdWx0aXBhcnRGaWxlLCBkcml2ZXI6IERyaXZlcikge1xuICAgIHRoaXMuX2ZpbGUgPSBmaWxlO1xuICAgIHRoaXMuX2RyaXZlciA9IGRyaXZlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiDsgqzsmqnsnpAg7Lu07ZOo7YSw7J2YIOybkOuzuCDtjIzsnbzrqoVcbiAgICovXG4gIGdldCBjbGllbnROYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbGUuZmlsZW5hbWU7XG4gIH1cblxuICAvKipcbiAgICog7YyM7J2866qFIChjbGllbnROYW1l7J2YIOuzhOy5rSlcbiAgICovXG4gIGdldCBmaWxlbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9maWxlLmZpbGVuYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIEhUTUwgaW5wdXQg7ZWE65Oc66qFXG4gICAqL1xuICBnZXQgZmllbGROYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbGUuZmllbGRuYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIO2MjOydvCDtgazquLAgKOuwlOydtO2KuClcbiAgICovXG4gIGdldCBzaXplKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbGUuZmlsZS5ieXRlc1JlYWQ7XG4gIH1cblxuICAvKipcbiAgICog7YyM7J28IO2ZleyepeyekCAo7KCQIOygnOyZuClcbiAgICovXG4gIGdldCBleHRuYW1lKCk6IHN0cmluZyB8IGZhbHNlIHtcbiAgICByZXR1cm4gbWltZS5leHRlbnNpb24odGhpcy5fZmlsZS5taW1ldHlwZSk7XG4gIH1cblxuICBnZXQgbWltZXR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsZS5taW1ldHlwZTtcbiAgfVxuXG4gIGdldCBlbmNvZGluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9maWxlLmVuY29kaW5nO1xuICB9XG5cbiAgYXN5bmMgdG9CdWZmZXIoKTogUHJvbWlzZTxCdWZmZXI+IHtcbiAgICBpZiAoIXRoaXMuX2J1ZmZlcikge1xuICAgICAgdGhpcy5fYnVmZmVyID0gYXdhaXQgdGhpcy5fZmlsZS50b0J1ZmZlcigpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fYnVmZmVyO1xuICB9XG5cbiAgYXN5bmMgbWQ1KCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgYnVmZmVyID0gYXdhaXQgdGhpcy50b0J1ZmZlcigpO1xuICAgIHJldHVybiBjcmVhdGVIYXNoKFwibWQ1XCIpLnVwZGF0ZShidWZmZXIpLmRpZ2VzdChcImhleFwiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDtjIzsnbzsnYQg7KCA7J6l7IaM7JeQIOyggOyepVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IHsgZmlsZSB9ID0gU29uYW11LmdldFVwbG9hZENvbnRleHQoKTtcbiAgICogY29uc3QgdXJsID0gYXdhaXQgZmlsZS5zYXZlVG9EaXNrKCd1cGxvYWRzL2F2YXRhci5wbmcnKTtcbiAgICogYGBgXG4gICAqL1xuICBhc3luYyBzYXZlVG9EaXNrKFxuICAgIGtleTogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7IGNvbnRlbnRUeXBlPzogc3RyaW5nOyB2aXNpYmlsaXR5PzogXCJwdWJsaWNcIiB8IFwicHJpdmF0ZVwiIH1cbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBidWZmZXIgPSBhd2FpdCB0aGlzLnRvQnVmZmVyKCk7XG5cbiAgICBhd2FpdCB0aGlzLl9kcml2ZXIucHV0KGtleSwgYnVmZmVyLCB7XG4gICAgICBjb250ZW50VHlwZTogb3B0aW9ucz8uY29udGVudFR5cGUgPz8gdGhpcy5taW1ldHlwZSxcbiAgICAgIHZpc2liaWxpdHk6IG9wdGlvbnM/LnZpc2liaWxpdHksXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5fZHJpdmVyLmdldFNpZ25lZFVybChrZXkpO1xuICB9XG5cbiAgZ2V0IHJhdygpOiBNdWx0aXBhcnRGaWxlIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsZTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIm1pbWUiLCJjcmVhdGVIYXNoIiwiRmlsZVN0b3JhZ2UiLCJfZmlsZSIsIl9idWZmZXIiLCJfZHJpdmVyIiwiZmlsZSIsImRyaXZlciIsImNsaWVudE5hbWUiLCJmaWxlbmFtZSIsImZpZWxkTmFtZSIsImZpZWxkbmFtZSIsInNpemUiLCJieXRlc1JlYWQiLCJleHRuYW1lIiwiZXh0ZW5zaW9uIiwibWltZXR5cGUiLCJlbmNvZGluZyIsInRvQnVmZmVyIiwibWQ1IiwiYnVmZmVyIiwidXBkYXRlIiwiZGlnZXN0Iiwic2F2ZVRvRGlzayIsImtleSIsIm9wdGlvbnMiLCJwdXQiLCJjb250ZW50VHlwZSIsInZpc2liaWxpdHkiLCJnZXRTaWduZWRVcmwiLCJyYXciXSwibWFwcGluZ3MiOiJBQUNBLE9BQU9BLFVBQVUsYUFBYTtBQUM5QixTQUFTQyxVQUFVLFFBQVEsU0FBUztBQUdwQzs7Q0FFQyxHQUNELE9BQU8sTUFBTUM7SUFDSEMsTUFBcUI7SUFDckJDLFFBQWlCO0lBQ2pCQyxRQUFnQjtJQUV4QixZQUFZQyxJQUFtQixFQUFFQyxNQUFjLENBQUU7UUFDL0MsSUFBSSxDQUFDSixLQUFLLEdBQUdHO1FBQ2IsSUFBSSxDQUFDRCxPQUFPLEdBQUdFO0lBQ2pCO0lBRUE7O0dBRUMsR0FDRCxJQUFJQyxhQUFxQjtRQUN2QixPQUFPLElBQUksQ0FBQ0wsS0FBSyxDQUFDTSxRQUFRO0lBQzVCO0lBRUE7O0dBRUMsR0FDRCxJQUFJQSxXQUFtQjtRQUNyQixPQUFPLElBQUksQ0FBQ04sS0FBSyxDQUFDTSxRQUFRO0lBQzVCO0lBRUE7O0dBRUMsR0FDRCxJQUFJQyxZQUFvQjtRQUN0QixPQUFPLElBQUksQ0FBQ1AsS0FBSyxDQUFDUSxTQUFTO0lBQzdCO0lBRUE7O0dBRUMsR0FDRCxJQUFJQyxPQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDVCxLQUFLLENBQUNHLElBQUksQ0FBQ08sU0FBUztJQUNsQztJQUVBOztHQUVDLEdBQ0QsSUFBSUMsVUFBMEI7UUFDNUIsT0FBT2QsS0FBS2UsU0FBUyxDQUFDLElBQUksQ0FBQ1osS0FBSyxDQUFDYSxRQUFRO0lBQzNDO0lBRUEsSUFBSUEsV0FBbUI7UUFDckIsT0FBTyxJQUFJLENBQUNiLEtBQUssQ0FBQ2EsUUFBUTtJQUM1QjtJQUVBLElBQUlDLFdBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDZCxLQUFLLENBQUNjLFFBQVE7SUFDNUI7SUFFQSxNQUFNQyxXQUE0QjtRQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDZCxPQUFPLEVBQUU7WUFDakIsSUFBSSxDQUFDQSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUNELEtBQUssQ0FBQ2UsUUFBUTtRQUMxQztRQUNBLE9BQU8sSUFBSSxDQUFDZCxPQUFPO0lBQ3JCO0lBRUEsTUFBTWUsTUFBdUI7UUFDM0IsTUFBTUMsU0FBUyxNQUFNLElBQUksQ0FBQ0YsUUFBUTtRQUNsQyxPQUFPakIsV0FBVyxPQUFPb0IsTUFBTSxDQUFDRCxRQUFRRSxNQUFNLENBQUM7SUFDakQ7SUFFQTs7Ozs7Ozs7R0FRQyxHQUNELE1BQU1DLFdBQ0pDLEdBQVcsRUFDWEMsT0FBcUUsRUFDcEQ7UUFDakIsTUFBTUwsU0FBUyxNQUFNLElBQUksQ0FBQ0YsUUFBUTtRQUVsQyxNQUFNLElBQUksQ0FBQ2IsT0FBTyxDQUFDcUIsR0FBRyxDQUFDRixLQUFLSixRQUFRO1lBQ2xDTyxhQUFhRixTQUFTRSxlQUFlLElBQUksQ0FBQ1gsUUFBUTtZQUNsRFksWUFBWUgsU0FBU0c7UUFDdkI7UUFFQSxPQUFPLElBQUksQ0FBQ3ZCLE9BQU8sQ0FBQ3dCLFlBQVksQ0FBQ0w7SUFDbkM7SUFFQSxJQUFJTSxNQUFxQjtRQUN2QixPQUFPLElBQUksQ0FBQzNCLEtBQUs7SUFDbkI7QUFDRiJ9
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export type * from "./api/context";
2
+ export * from "./api/config";
2
3
  export * from "./api/decorators";
3
4
  export * from "./api/sonamu";
4
5
  export * from "./database/base-model";
@@ -21,4 +22,5 @@ export * from "./entity/entity";
21
22
  export * from "./migration/migrator";
22
23
  export * from "./migration/types";
23
24
  export * from "./file-storage/driver";
25
+ export * from "./naite/naite";
24
26
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,eAAe,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,eAAe,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,28 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});_export_star(require("./api/decorators"),exports);_export_star(require("./api/sonamu"),exports);_export_star(require("./database/base-model"),exports);_export_star(require("./api/base-frame"),exports);_export_star(require("./database/db"),exports);_export_star(require("./database/upsert-builder"),exports);_export_star(require("./database/puri"),exports);_export_star(require("./database/puri-wrapper"),exports);_export_star(require("./database/puri.types"),exports);_export_star(require("./exceptions/error-handler"),exports);_export_star(require("./exceptions/so-exceptions"),exports);_export_star(require("./stream/sse"),exports);_export_star(require("./types/types"),exports);_export_star(require("./utils/controller"),exports);_export_star(require("./utils/model"),exports);_export_star(require("./utils/utils"),exports);_export_star(require("./testing/fixture-manager"),exports);_export_star(require("./entity/entity-manager"),exports);_export_star(require("./entity/entity"),exports);_export_star(require("./migration/migrator"),exports);_export_star(require("./migration/types"),exports);_export_star(require("./file-storage/driver"),exports);function _export_star(from,to){Object.keys(from).forEach(function(k){if(k!=="default"&&!Object.prototype.hasOwnProperty.call(to,k)){Object.defineProperty(to,k,{enumerable:true,get:function(){return from[k]}})}});return from}
2
- //# sourceMappingURL=index.js.map
1
+ export * from "./api/config.js";
2
+ export * from "./api/decorators.js";
3
+ export * from "./api/sonamu.js";
4
+ export * from "./database/base-model.js";
5
+ export * from "./api/base-frame.js";
6
+ export * from "./database/db.js";
7
+ export * from "./database/upsert-builder.js";
8
+ export * from "./database/puri.js";
9
+ export * from "./database/puri-wrapper.js";
10
+ export * from "./database/puri.types.js";
11
+ export * from "./exceptions/error-handler.js";
12
+ export * from "./exceptions/so-exceptions.js";
13
+ export * from "./stream/sse.js";
14
+ export * from "./types/types.js";
15
+ export * from "./utils/controller.js";
16
+ export * from "./utils/model.js";
17
+ export * from "./utils/utils.js";
18
+ export * from "./testing/fixture-manager.js";
19
+ export * from "./entity/entity-manager.js";
20
+ export * from "./entity/entity.js";
21
+ export * from "./migration/migrator.js";
22
+ export * from "./migration/types.js";
23
+ export * from "./file-storage/driver.js";
24
+ export * from "./naite/naite.js"; // export * from "./api/code-converters";
25
+ // export * from "./entity/entity-utils";
26
+ // export * from "./syncer/syncer";
27
+
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSAqIGZyb20gXCIuL2FwaS9jb250ZXh0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9hcGkvY29uZmlnXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9hcGkvZGVjb3JhdG9yc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vYXBpL3NvbmFtdVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGF0YWJhc2UvYmFzZS1tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vYXBpL2Jhc2UtZnJhbWVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RhdGFiYXNlL2RiXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kYXRhYmFzZS91cHNlcnQtYnVpbGRlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGF0YWJhc2UvcHVyaVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGF0YWJhc2UvcHVyaS13cmFwcGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kYXRhYmFzZS9wdXJpLnR5cGVzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9leGNlcHRpb25zL2Vycm9yLWhhbmRsZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2V4Y2VwdGlvbnMvc28tZXhjZXB0aW9uc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3RyZWFtL3NzZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdHlwZXMvdHlwZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3V0aWxzL2NvbnRyb2xsZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3V0aWxzL21vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi91dGlscy91dGlsc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGVzdGluZy9maXh0dXJlLW1hbmFnZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0eS9lbnRpdHktbWFuYWdlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXR5L2VudGl0eVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbWlncmF0aW9uL21pZ3JhdG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9taWdyYXRpb24vdHlwZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2ZpbGUtc3RvcmFnZS9kcml2ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL25haXRlL25haXRlXCI7XG5cbi8vIGV4cG9ydCAqIGZyb20gXCIuL2FwaS9jb2RlLWNvbnZlcnRlcnNcIjtcbi8vIGV4cG9ydCAqIGZyb20gXCIuL2VudGl0eS9lbnRpdHktdXRpbHNcIjtcbi8vIGV4cG9ydCAqIGZyb20gXCIuL3N5bmNlci9zeW5jZXJcIjtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxjQUFjLGtCQUFlO0FBQzdCLGNBQWMsc0JBQW1CO0FBQ2pDLGNBQWMsa0JBQWU7QUFDN0IsY0FBYywyQkFBd0I7QUFDdEMsY0FBYyxzQkFBbUI7QUFDakMsY0FBYyxtQkFBZ0I7QUFDOUIsY0FBYywrQkFBNEI7QUFDMUMsY0FBYyxxQkFBa0I7QUFDaEMsY0FBYyw2QkFBMEI7QUFDeEMsY0FBYywyQkFBd0I7QUFDdEMsY0FBYyxnQ0FBNkI7QUFDM0MsY0FBYyxnQ0FBNkI7QUFDM0MsY0FBYyxrQkFBZTtBQUM3QixjQUFjLG1CQUFnQjtBQUM5QixjQUFjLHdCQUFxQjtBQUNuQyxjQUFjLG1CQUFnQjtBQUM5QixjQUFjLG1CQUFnQjtBQUM5QixjQUFjLCtCQUE0QjtBQUMxQyxjQUFjLDZCQUEwQjtBQUN4QyxjQUFjLHFCQUFrQjtBQUNoQyxjQUFjLDBCQUF1QjtBQUNyQyxjQUFjLHVCQUFvQjtBQUNsQyxjQUFjLDJCQUF3QjtBQUN0QyxjQUFjLG1CQUFnQixDQUU5Qix5Q0FBeUM7Q0FDekMseUNBQXlDO0NBQ3pDLG1DQUFtQyJ9