sonamu 0.6.0 → 0.7.1

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 (406) hide show
  1. package/.swcrc.project-default +18 -0
  2. package/bin/cli.js +24 -0
  3. package/dist/ai/agents/agent.d.ts +11 -0
  4. package/dist/ai/agents/agent.d.ts.map +1 -0
  5. package/dist/ai/agents/agent.js +65 -0
  6. package/dist/ai/agents/index.d.ts +3 -0
  7. package/dist/ai/agents/index.d.ts.map +1 -0
  8. package/dist/ai/agents/index.js +4 -0
  9. package/dist/ai/agents/types.d.ts +43 -0
  10. package/dist/ai/agents/types.d.ts.map +1 -0
  11. package/dist/ai/agents/types.js +3 -0
  12. package/dist/ai/index.d.ts +2 -0
  13. package/dist/ai/index.d.ts.map +1 -0
  14. package/dist/ai/index.js +3 -0
  15. package/dist/ai/providers/rtzr/api.d.ts +22 -0
  16. package/dist/ai/providers/rtzr/api.d.ts.map +1 -0
  17. package/dist/ai/providers/rtzr/api.js +28 -0
  18. package/dist/ai/providers/rtzr/error.d.ts +18 -0
  19. package/dist/ai/providers/rtzr/error.d.ts.map +1 -0
  20. package/dist/ai/providers/rtzr/error.js +29 -0
  21. package/dist/ai/providers/rtzr/index.d.ts +5 -0
  22. package/dist/ai/providers/rtzr/index.d.ts.map +1 -0
  23. package/dist/ai/providers/rtzr/index.js +6 -0
  24. package/dist/ai/providers/rtzr/model.d.ts +52 -0
  25. package/dist/ai/providers/rtzr/model.d.ts.map +1 -0
  26. package/dist/ai/providers/rtzr/model.js +137 -0
  27. package/dist/ai/providers/rtzr/options.d.ts +7 -0
  28. package/dist/ai/providers/rtzr/options.d.ts.map +1 -0
  29. package/dist/ai/providers/rtzr/options.js +47 -0
  30. package/dist/ai/providers/rtzr/provider.d.ts +18 -0
  31. package/dist/ai/providers/rtzr/provider.d.ts.map +1 -0
  32. package/dist/ai/providers/rtzr/provider.js +54 -0
  33. package/dist/ai/providers/rtzr/utils.d.ts +19 -0
  34. package/dist/ai/providers/rtzr/utils.d.ts.map +1 -0
  35. package/dist/ai/providers/rtzr/utils.js +88 -0
  36. package/dist/api/base-frame.d.ts +2 -2
  37. package/dist/api/base-frame.d.ts.map +1 -1
  38. package/dist/api/base-frame.js +2 -1
  39. package/dist/api/caster.d.ts.map +1 -1
  40. package/dist/api/caster.js +6 -1
  41. package/dist/api/code-converters.d.ts +58 -14
  42. package/dist/api/code-converters.d.ts.map +1 -1
  43. package/dist/api/code-converters.js +178 -409
  44. package/dist/api/config.d.ts +27 -13
  45. package/dist/api/config.d.ts.map +1 -1
  46. package/dist/api/config.js +19 -26
  47. package/dist/api/context.d.ts +4 -3
  48. package/dist/api/context.d.ts.map +1 -1
  49. package/dist/api/context.js +1 -1
  50. package/dist/api/decorators.d.ts +20 -6
  51. package/dist/api/decorators.d.ts.map +1 -1
  52. package/dist/api/decorators.js +111 -18
  53. package/dist/api/index.d.ts +2 -2
  54. package/dist/api/index.d.ts.map +1 -1
  55. package/dist/api/index.js +3 -3
  56. package/dist/api/sonamu.d.ts +7 -7
  57. package/dist/api/sonamu.d.ts.map +1 -1
  58. package/dist/api/sonamu.js +83 -51
  59. package/dist/api/validator.d.ts +6 -0
  60. package/dist/api/validator.d.ts.map +1 -0
  61. package/dist/api/validator.js +81 -0
  62. package/dist/bin/build-config.d.ts +5 -1
  63. package/dist/bin/build-config.d.ts.map +1 -1
  64. package/dist/bin/build-config.js +5 -2
  65. package/dist/bin/cli.js +165 -64
  66. package/dist/bin/loader-register.d.ts +2 -0
  67. package/dist/bin/loader-register.d.ts.map +1 -0
  68. package/dist/bin/loader-register.js +34 -0
  69. package/dist/database/_batch_update.d.ts +5 -3
  70. package/dist/database/_batch_update.d.ts.map +1 -1
  71. package/dist/database/_batch_update.js +30 -13
  72. package/dist/database/base-model.d.ts +96 -10
  73. package/dist/database/base-model.d.ts.map +1 -1
  74. package/dist/database/base-model.js +232 -89
  75. package/dist/database/base-model.types.d.ts +93 -0
  76. package/dist/database/base-model.types.d.ts.map +1 -0
  77. package/dist/database/base-model.types.js +10 -0
  78. package/dist/database/code-generator.d.ts +1 -1
  79. package/dist/database/code-generator.d.ts.map +1 -1
  80. package/dist/database/code-generator.js +11 -10
  81. package/dist/database/db.d.ts +5 -6
  82. package/dist/database/db.d.ts.map +1 -1
  83. package/dist/database/db.js +22 -25
  84. package/dist/database/puri-subset.test-d.js +81 -0
  85. package/dist/database/puri-subset.types.d.ts +123 -0
  86. package/dist/database/puri-subset.types.d.ts.map +1 -0
  87. package/dist/database/puri-subset.types.js +16 -0
  88. package/dist/database/puri-wrapper.d.ts +13 -11
  89. package/dist/database/puri-wrapper.d.ts.map +1 -1
  90. package/dist/database/puri-wrapper.js +2 -2
  91. package/dist/database/puri.d.ts +25 -14
  92. package/dist/database/puri.d.ts.map +1 -1
  93. package/dist/database/puri.js +83 -21
  94. package/dist/database/puri.types.d.ts +21 -7
  95. package/dist/database/puri.types.d.ts.map +1 -1
  96. package/dist/database/puri.types.js +4 -1
  97. package/dist/database/transaction-context.d.ts +1 -1
  98. package/dist/database/transaction-context.d.ts.map +1 -1
  99. package/dist/database/transaction-context.js +1 -1
  100. package/dist/database/upsert-builder.d.ts +9 -3
  101. package/dist/database/upsert-builder.d.ts.map +1 -1
  102. package/dist/database/upsert-builder.js +227 -78
  103. package/dist/entity/entity-manager.d.ts +165 -2
  104. package/dist/entity/entity-manager.d.ts.map +1 -1
  105. package/dist/entity/entity-manager.js +26 -10
  106. package/dist/entity/entity.d.ts +5 -3
  107. package/dist/entity/entity.d.ts.map +1 -1
  108. package/dist/entity/entity.js +153 -54
  109. package/dist/exceptions/error-handler.d.ts +1 -1
  110. package/dist/exceptions/error-handler.d.ts.map +1 -1
  111. package/dist/exceptions/error-handler.js +1 -1
  112. package/dist/exceptions/so-exceptions.d.ts +1 -1
  113. package/dist/exceptions/so-exceptions.d.ts.map +1 -1
  114. package/dist/exceptions/so-exceptions.js +1 -1
  115. package/dist/file-storage/driver.d.ts +1 -1
  116. package/dist/file-storage/driver.d.ts.map +1 -1
  117. package/dist/file-storage/driver.js +1 -1
  118. package/dist/file-storage/file-storage.js +2 -2
  119. package/dist/index.d.ts +18 -11
  120. package/dist/index.d.ts.map +1 -1
  121. package/dist/index.js +19 -13
  122. package/dist/migration/code-generation.d.ts +1 -1
  123. package/dist/migration/code-generation.d.ts.map +1 -1
  124. package/dist/migration/code-generation.js +123 -67
  125. package/dist/migration/migration-set.d.ts +2 -10
  126. package/dist/migration/migration-set.d.ts.map +1 -1
  127. package/dist/migration/migration-set.js +67 -218
  128. package/dist/migration/migrator.d.ts +24 -73
  129. package/dist/migration/migrator.d.ts.map +1 -1
  130. package/dist/migration/migrator.js +121 -301
  131. package/dist/migration/postgresql-schema-reader.d.ts +51 -0
  132. package/dist/migration/postgresql-schema-reader.d.ts.map +1 -0
  133. package/dist/migration/postgresql-schema-reader.js +245 -0
  134. package/dist/migration/types.d.ts +6 -38
  135. package/dist/migration/types.d.ts.map +1 -1
  136. package/dist/migration/types.js +1 -1
  137. package/dist/naite/messaging-types.d.ts +43 -0
  138. package/dist/naite/messaging-types.d.ts.map +1 -0
  139. package/dist/naite/messaging-types.js +7 -0
  140. package/dist/naite/naite-reporter.d.ts +41 -0
  141. package/dist/naite/naite-reporter.d.ts.map +1 -0
  142. package/dist/naite/naite-reporter.js +102 -0
  143. package/dist/naite/naite.d.ts +91 -8
  144. package/dist/naite/naite.d.ts.map +1 -1
  145. package/dist/naite/naite.js +285 -41
  146. package/dist/stream/sse.d.ts +2 -2
  147. package/dist/stream/sse.d.ts.map +1 -1
  148. package/dist/stream/sse.js +1 -1
  149. package/dist/syncer/api-parser.d.ts +3 -13
  150. package/dist/syncer/api-parser.d.ts.map +1 -1
  151. package/dist/syncer/api-parser.js +67 -56
  152. package/dist/syncer/checksum.d.ts +2 -2
  153. package/dist/syncer/checksum.d.ts.map +1 -1
  154. package/dist/syncer/checksum.js +11 -11
  155. package/dist/syncer/code-generator.d.ts +3 -3
  156. package/dist/syncer/code-generator.d.ts.map +1 -1
  157. package/dist/syncer/code-generator.js +37 -17
  158. package/dist/syncer/entity-operations.d.ts +2 -2
  159. package/dist/syncer/entity-operations.d.ts.map +1 -1
  160. package/dist/syncer/entity-operations.js +9 -8
  161. package/dist/syncer/file-patterns.d.ts +1 -1
  162. package/dist/syncer/file-patterns.d.ts.map +1 -1
  163. package/dist/syncer/file-patterns.js +1 -1
  164. package/dist/syncer/index.d.ts +4 -4
  165. package/dist/syncer/index.d.ts.map +1 -1
  166. package/dist/syncer/index.js +5 -5
  167. package/dist/syncer/module-loader.d.ts +4 -4
  168. package/dist/syncer/module-loader.d.ts.map +1 -1
  169. package/dist/syncer/module-loader.js +17 -12
  170. package/dist/syncer/syncer.d.ts +31 -24
  171. package/dist/syncer/syncer.d.ts.map +1 -1
  172. package/dist/syncer/syncer.js +92 -45
  173. package/dist/template/entity-converter.d.ts +1 -1
  174. package/dist/template/entity-converter.d.ts.map +1 -1
  175. package/dist/template/entity-converter.js +15 -8
  176. package/dist/template/helpers.d.ts +2 -2
  177. package/dist/template/helpers.d.ts.map +1 -1
  178. package/dist/template/helpers.js +3 -3
  179. package/dist/template/implementations/entity.template.d.ts +2 -2
  180. package/dist/template/implementations/entity.template.d.ts.map +1 -1
  181. package/dist/template/implementations/entity.template.js +4 -5
  182. package/dist/template/implementations/generated.template.d.ts +2 -3
  183. package/dist/template/implementations/generated.template.d.ts.map +1 -1
  184. package/dist/template/implementations/generated.template.js +46 -29
  185. package/dist/template/implementations/generated_http.template.d.ts +2 -3
  186. package/dist/template/implementations/generated_http.template.d.ts.map +1 -1
  187. package/dist/template/implementations/generated_http.template.js +9 -9
  188. package/dist/template/implementations/generated_sso.template.d.ts +3 -4
  189. package/dist/template/implementations/generated_sso.template.d.ts.map +1 -1
  190. package/dist/template/implementations/generated_sso.template.js +54 -25
  191. package/dist/template/implementations/init_types.template.d.ts +2 -2
  192. package/dist/template/implementations/init_types.template.d.ts.map +1 -1
  193. package/dist/template/implementations/init_types.template.js +2 -2
  194. package/dist/template/implementations/model.template.d.ts +2 -2
  195. package/dist/template/implementations/model.template.d.ts.map +1 -1
  196. package/dist/template/implementations/model.template.js +47 -37
  197. package/dist/template/implementations/model_test.template.d.ts +2 -2
  198. package/dist/template/implementations/model_test.template.d.ts.map +1 -1
  199. package/dist/template/implementations/model_test.template.js +2 -2
  200. package/dist/template/implementations/service.template.d.ts +4 -4
  201. package/dist/template/implementations/service.template.d.ts.map +1 -1
  202. package/dist/template/implementations/service.template.js +24 -16
  203. package/dist/template/implementations/view_enums_buttonset.template.d.ts +2 -2
  204. package/dist/template/implementations/view_enums_buttonset.template.d.ts.map +1 -1
  205. package/dist/template/implementations/view_enums_buttonset.template.js +1 -1
  206. package/dist/template/implementations/view_enums_dropdown.template.d.ts +2 -2
  207. package/dist/template/implementations/view_enums_dropdown.template.d.ts.map +1 -1
  208. package/dist/template/implementations/view_enums_dropdown.template.js +2 -2
  209. package/dist/template/implementations/view_enums_select.template.d.ts +2 -2
  210. package/dist/template/implementations/view_enums_select.template.d.ts.map +1 -1
  211. package/dist/template/implementations/view_enums_select.template.js +2 -2
  212. package/dist/template/implementations/view_form.template.d.ts +2 -2
  213. package/dist/template/implementations/view_form.template.d.ts.map +1 -1
  214. package/dist/template/implementations/view_form.template.js +4 -4
  215. package/dist/template/implementations/view_id_all_select.template.d.ts +2 -2
  216. package/dist/template/implementations/view_id_all_select.template.d.ts.map +1 -1
  217. package/dist/template/implementations/view_id_all_select.template.js +1 -1
  218. package/dist/template/implementations/view_id_async_select.template.d.ts +2 -2
  219. package/dist/template/implementations/view_id_async_select.template.d.ts.map +1 -1
  220. package/dist/template/implementations/view_id_async_select.template.js +1 -1
  221. package/dist/template/implementations/view_list.template.d.ts +2 -2
  222. package/dist/template/implementations/view_list.template.d.ts.map +1 -1
  223. package/dist/template/implementations/view_list.template.js +29 -19
  224. package/dist/template/implementations/view_list_columns.template.d.ts +3 -3
  225. package/dist/template/implementations/view_list_columns.template.d.ts.map +1 -1
  226. package/dist/template/implementations/view_list_columns.template.js +1 -1
  227. package/dist/template/implementations/view_search_input.template.d.ts +2 -2
  228. package/dist/template/implementations/view_search_input.template.d.ts.map +1 -1
  229. package/dist/template/implementations/view_search_input.template.js +1 -1
  230. package/dist/template/index.d.ts +4 -2
  231. package/dist/template/index.d.ts.map +1 -1
  232. package/dist/template/index.js +5 -3
  233. package/dist/template/template-manager.d.ts +56 -0
  234. package/dist/template/template-manager.d.ts.map +1 -0
  235. package/dist/template/template-manager.js +125 -0
  236. package/dist/template/template-types.d.ts +16 -0
  237. package/dist/template/template-types.d.ts.map +1 -0
  238. package/dist/template/template-types.js +7 -0
  239. package/dist/template/template.d.ts +12 -2
  240. package/dist/template/template.d.ts.map +1 -1
  241. package/dist/template/template.js +19 -6
  242. package/dist/template/zod-converter.d.ts +40 -7
  243. package/dist/template/zod-converter.d.ts.map +1 -1
  244. package/dist/template/zod-converter.js +386 -58
  245. package/dist/testing/_relation-graph.d.ts +1 -1
  246. package/dist/testing/_relation-graph.d.ts.map +1 -1
  247. package/dist/testing/_relation-graph.js +12 -3
  248. package/dist/testing/fixture-manager.d.ts +42 -11
  249. package/dist/testing/fixture-manager.d.ts.map +1 -1
  250. package/dist/testing/fixture-manager.js +338 -236
  251. package/dist/types/types.d.ts +709 -104
  252. package/dist/types/types.d.ts.map +1 -1
  253. package/dist/types/types.js +309 -52
  254. package/dist/typings/knex.d.js +2 -2
  255. package/dist/utils/async-utils.d.ts.map +1 -1
  256. package/dist/utils/async-utils.js +3 -3
  257. package/dist/utils/console-util.js +1 -1
  258. package/dist/utils/controller.d.ts +1 -0
  259. package/dist/utils/controller.d.ts.map +1 -1
  260. package/dist/utils/controller.js +4 -1
  261. package/dist/utils/esm-utils.d.ts +0 -6
  262. package/dist/utils/esm-utils.d.ts.map +1 -1
  263. package/dist/utils/esm-utils.js +2 -9
  264. package/dist/utils/formatter.d.ts +3 -0
  265. package/dist/utils/formatter.d.ts.map +1 -0
  266. package/dist/utils/formatter.js +110 -0
  267. package/dist/utils/fs-utils.d.ts +1 -1
  268. package/dist/utils/fs-utils.d.ts.map +1 -1
  269. package/dist/utils/fs-utils.js +1 -1
  270. package/dist/utils/lodash-able.d.ts.map +1 -1
  271. package/dist/utils/lodash-able.js +1 -1
  272. package/dist/utils/object-utils.d.ts +44 -0
  273. package/dist/utils/object-utils.d.ts.map +1 -0
  274. package/dist/utils/object-utils.js +191 -0
  275. package/dist/utils/path-utils.d.ts +1 -1
  276. package/dist/utils/path-utils.d.ts.map +1 -1
  277. package/dist/utils/path-utils.js +3 -3
  278. package/dist/utils/process-utils.js +1 -1
  279. package/dist/utils/sql-parser.d.ts +5 -1
  280. package/dist/utils/sql-parser.d.ts.map +1 -1
  281. package/dist/utils/sql-parser.js +14 -3
  282. package/dist/utils/type-utils.d.ts +23 -0
  283. package/dist/utils/type-utils.d.ts.map +1 -0
  284. package/dist/utils/type-utils.js +45 -0
  285. package/dist/utils/utils.d.ts +7 -1
  286. package/dist/utils/utils.d.ts.map +1 -1
  287. package/dist/utils/utils.js +44 -5
  288. package/dist/utils/zod-error.d.ts +1 -1
  289. package/dist/utils/zod-error.d.ts.map +1 -1
  290. package/dist/utils/zod-error.js +1 -1
  291. package/package.json +55 -30
  292. package/src/ai/agents/agent.ts +87 -0
  293. package/src/ai/agents/index.ts +2 -0
  294. package/src/ai/agents/types.ts +47 -0
  295. package/src/ai/index.ts +1 -0
  296. package/src/ai/providers/rtzr/api.ts +37 -0
  297. package/src/ai/providers/rtzr/error.ts +34 -0
  298. package/src/ai/providers/rtzr/index.ts +4 -0
  299. package/src/ai/providers/rtzr/model.ts +201 -0
  300. package/src/ai/providers/rtzr/options.ts +49 -0
  301. package/src/ai/providers/rtzr/provider.ts +91 -0
  302. package/src/ai/providers/rtzr/utils.ts +127 -0
  303. package/src/api/base-frame.ts +4 -2
  304. package/src/api/caster.ts +17 -23
  305. package/src/api/code-converters.ts +176 -533
  306. package/src/api/config.ts +39 -56
  307. package/src/api/context.ts +7 -18
  308. package/src/api/decorators.ts +175 -46
  309. package/src/api/index.ts +2 -2
  310. package/src/api/sonamu.ts +133 -124
  311. package/src/api/validator.ts +83 -0
  312. package/src/bin/build-config.ts +7 -1
  313. package/src/bin/cli.ts +192 -110
  314. package/src/bin/loader-register.ts +38 -0
  315. package/src/database/_batch_update.ts +46 -31
  316. package/src/database/base-model.ts +390 -182
  317. package/src/database/base-model.types.ts +155 -0
  318. package/src/database/code-generator.ts +13 -32
  319. package/src/database/db.ts +36 -50
  320. package/src/database/puri-subset.test-d.ts +471 -0
  321. package/src/database/puri-subset.types.ts +195 -0
  322. package/src/database/puri-wrapper.ts +58 -67
  323. package/src/database/puri.ts +182 -126
  324. package/src/database/puri.types.ts +64 -31
  325. package/src/database/transaction-context.ts +1 -1
  326. package/src/database/upsert-builder.ts +261 -132
  327. package/src/entity/entity-manager.ts +36 -28
  328. package/src/entity/entity.ts +330 -249
  329. package/src/exceptions/error-handler.ts +3 -3
  330. package/src/exceptions/so-exceptions.ts +11 -11
  331. package/src/file-storage/driver.ts +5 -5
  332. package/src/file-storage/file-storage.ts +2 -2
  333. package/src/index.ts +18 -12
  334. package/src/migration/code-generation.ts +185 -172
  335. package/src/migration/migration-set.ts +80 -293
  336. package/src/migration/migrator.ts +182 -425
  337. package/src/migration/mysql-schema-reader.ts.txt +272 -0
  338. package/src/migration/postgresql-schema-reader.ts +310 -0
  339. package/src/migration/types.ts +6 -39
  340. package/src/naite/messaging-types.ts +51 -0
  341. package/src/naite/naite-reporter.ts +128 -0
  342. package/src/naite/naite.ts +378 -33
  343. package/src/shared/web.shared.ts.txt +20 -24
  344. package/src/stream/sse.ts +5 -5
  345. package/src/syncer/api-parser.ts +52 -69
  346. package/src/syncer/checksum.ts +25 -37
  347. package/src/syncer/code-generator.ts +58 -62
  348. package/src/syncer/entity-operations.ts +12 -15
  349. package/src/syncer/file-patterns.ts +2 -2
  350. package/src/syncer/index.ts +4 -4
  351. package/src/syncer/module-loader.ts +28 -25
  352. package/src/syncer/syncer.ts +155 -162
  353. package/src/template/entity-converter.ts +18 -27
  354. package/src/template/helpers.ts +8 -11
  355. package/src/template/implementations/entity.template.ts +6 -6
  356. package/src/template/implementations/generated.template.ts +99 -99
  357. package/src/template/implementations/generated_http.template.ts +21 -54
  358. package/src/template/implementations/generated_sso.template.ts +78 -65
  359. package/src/template/implementations/init_types.template.ts +4 -6
  360. package/src/template/implementations/model.template.ts +47 -38
  361. package/src/template/implementations/model_test.template.ts +3 -3
  362. package/src/template/implementations/service.template.ts +56 -80
  363. package/src/template/implementations/view_enums_buttonset.template.ts +2 -2
  364. package/src/template/implementations/view_enums_dropdown.template.ts +4 -4
  365. package/src/template/implementations/view_enums_select.template.ts +3 -3
  366. package/src/template/implementations/view_form.template.ts +34 -75
  367. package/src/template/implementations/view_id_all_select.template.ts +2 -2
  368. package/src/template/implementations/view_id_async_select.template.ts +9 -23
  369. package/src/template/implementations/view_list.template.ts +54 -95
  370. package/src/template/implementations/view_list_columns.template.ts +4 -10
  371. package/src/template/implementations/view_search_input.template.ts +2 -2
  372. package/src/template/index.ts +4 -2
  373. package/src/template/template-manager.ts +166 -0
  374. package/src/template/template-types.ts +16 -0
  375. package/src/template/template.ts +29 -10
  376. package/src/template/zod-converter.ts +459 -101
  377. package/src/testing/_relation-graph.ts +18 -11
  378. package/src/testing/fixture-manager.ts +468 -362
  379. package/src/types/types.ts +516 -248
  380. package/src/typings/knex.d.ts +7 -9
  381. package/src/utils/async-utils.ts +8 -12
  382. package/src/utils/console-util.ts +1 -1
  383. package/src/utils/controller.ts +3 -0
  384. package/src/utils/esm-utils.ts +8 -18
  385. package/src/utils/formatter.ts +109 -0
  386. package/src/utils/fs-utils.ts +1 -1
  387. package/src/utils/lodash-able.ts +1 -4
  388. package/src/utils/object-utils.ts +217 -0
  389. package/src/utils/path-utils.ts +3 -6
  390. package/src/utils/process-utils.ts +1 -1
  391. package/src/utils/sql-parser.ts +23 -5
  392. package/src/utils/type-utils.ts +83 -0
  393. package/src/utils/utils.ts +58 -9
  394. package/src/utils/zod-error.ts +3 -3
  395. package/dist/bin/cli-wrapper.d.ts +0 -3
  396. package/dist/bin/cli-wrapper.d.ts.map +0 -1
  397. package/dist/bin/cli-wrapper.js +0 -72
  398. package/dist/database/knex-plugins/knex-on-duplicate-update.d.ts +0 -2
  399. package/dist/database/knex-plugins/knex-on-duplicate-update.d.ts.map +0 -1
  400. package/dist/database/knex-plugins/knex-on-duplicate-update.js +0 -39
  401. package/dist/entity/entity-utils.d.ts +0 -61
  402. package/dist/entity/entity-utils.d.ts.map +0 -1
  403. package/dist/entity/entity-utils.js +0 -210
  404. package/src/bin/cli-wrapper.ts +0 -82
  405. package/src/database/knex-plugins/knex-on-duplicate-update.ts +0 -45
  406. package/src/entity/entity-utils.ts +0 -291
@@ -0,0 +1,47 @@
1
+ import { lazySchema, zodSchema } from "@ai-sdk/provider-utils";
2
+ import { z } from "zod";
3
+ const rtzrOptionsShape = {
4
+ domain: z.enum([
5
+ "CALL",
6
+ "GENERAL"
7
+ ]).default("GENERAL"),
8
+ language: z.string(),
9
+ languageCandidates: z.array(z.string()).optional(),
10
+ keywords: z.union([
11
+ z.string(),
12
+ z.array(z.string())
13
+ ]).optional(),
14
+ paragraphSplitterMax: z.number().optional(),
15
+ diarization: z.boolean().optional(),
16
+ itn: z.boolean().optional(),
17
+ diarizationSpkCount: z.number().optional(),
18
+ disfluencyFilter: z.boolean().optional(),
19
+ paragraphSplitter: z.boolean().optional(),
20
+ profanityFilter: z.boolean().optional(),
21
+ wordTimestamp: z.boolean().optional()
22
+ };
23
+ const rtzrOptionsMap = {
24
+ domain: "domain",
25
+ language: "language",
26
+ languageCandidates: "language_candidates",
27
+ keywords: "keywords",
28
+ paragraphSplitterMax: "paragraph_splitter.max",
29
+ diarization: "use_diarization",
30
+ itn: "use_itn",
31
+ diarizationSpkCount: "diarization.spk_count",
32
+ disfluencyFilter: "use_disfluency_filter",
33
+ paragraphSplitter: "use_paragraph_splitter",
34
+ profanityFilter: "use_profanity_filter",
35
+ wordTimestamp: "use_word_timestamp"
36
+ };
37
+ // https://developers.rtzr.ai/docs/stt-file/
38
+ export const rtzrTranscriptionProviderOptions = lazySchema(()=>zodSchema(z.object(rtzrOptionsShape).transform((item)=>{
39
+ return Object.fromEntries(Object.entries(item).map(([key, value])=>{
40
+ return [
41
+ rtzrOptionsMap[key],
42
+ value
43
+ ];
44
+ }));
45
+ })));
46
+
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9haS9wcm92aWRlcnMvcnR6ci9vcHRpb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgSW5mZXJTY2hlbWEsIGxhenlTY2hlbWEsIHpvZFNjaGVtYSB9IGZyb20gXCJAYWktc2RrL3Byb3ZpZGVyLXV0aWxzXCI7XG5pbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiO1xuXG5leHBvcnQgdHlwZSBSdHpyVHJhbnNjcmlwdGlvbk1vZGVsSWQgPSBcIndoaXNwZXJcIiB8IFwic29tbWVyc1wiIHwgKHN0cmluZyAmIHt9KTtcblxuY29uc3QgcnR6ck9wdGlvbnNTaGFwZSA9IHtcbiAgZG9tYWluOiB6LmVudW0oW1wiQ0FMTFwiLCBcIkdFTkVSQUxcIl0pLmRlZmF1bHQoXCJHRU5FUkFMXCIpLFxuICBsYW5ndWFnZTogei5zdHJpbmcoKSxcbiAgbGFuZ3VhZ2VDYW5kaWRhdGVzOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gIGtleXdvcmRzOiB6LnVuaW9uKFt6LnN0cmluZygpLCB6LmFycmF5KHouc3RyaW5nKCkpXSkub3B0aW9uYWwoKSxcbiAgcGFyYWdyYXBoU3BsaXR0ZXJNYXg6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgZGlhcml6YXRpb246IHouYm9vbGVhbigpLm9wdGlvbmFsKCksXG4gIGl0bjogei5ib29sZWFuKCkub3B0aW9uYWwoKSxcbiAgZGlhcml6YXRpb25TcGtDb3VudDogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICBkaXNmbHVlbmN5RmlsdGVyOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxuICBwYXJhZ3JhcGhTcGxpdHRlcjogei5ib29sZWFuKCkub3B0aW9uYWwoKSxcbiAgcHJvZmFuaXR5RmlsdGVyOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxuICB3b3JkVGltZXN0YW1wOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxufTtcblxuY29uc3QgcnR6ck9wdGlvbnNNYXA6IFJlY29yZDxrZXlvZiB0eXBlb2YgcnR6ck9wdGlvbnNTaGFwZSwgc3RyaW5nPiA9IHtcbiAgZG9tYWluOiBcImRvbWFpblwiLFxuICBsYW5ndWFnZTogXCJsYW5ndWFnZVwiLFxuICBsYW5ndWFnZUNhbmRpZGF0ZXM6IFwibGFuZ3VhZ2VfY2FuZGlkYXRlc1wiLFxuICBrZXl3b3JkczogXCJrZXl3b3Jkc1wiLFxuICBwYXJhZ3JhcGhTcGxpdHRlck1heDogXCJwYXJhZ3JhcGhfc3BsaXR0ZXIubWF4XCIsXG4gIGRpYXJpemF0aW9uOiBcInVzZV9kaWFyaXphdGlvblwiLFxuICBpdG46IFwidXNlX2l0blwiLFxuICBkaWFyaXphdGlvblNwa0NvdW50OiBcImRpYXJpemF0aW9uLnNwa19jb3VudFwiLFxuICBkaXNmbHVlbmN5RmlsdGVyOiBcInVzZV9kaXNmbHVlbmN5X2ZpbHRlclwiLFxuICBwYXJhZ3JhcGhTcGxpdHRlcjogXCJ1c2VfcGFyYWdyYXBoX3NwbGl0dGVyXCIsXG4gIHByb2Zhbml0eUZpbHRlcjogXCJ1c2VfcHJvZmFuaXR5X2ZpbHRlclwiLFxuICB3b3JkVGltZXN0YW1wOiBcInVzZV93b3JkX3RpbWVzdGFtcFwiLFxufTtcblxuLy8gaHR0cHM6Ly9kZXZlbG9wZXJzLnJ0enIuYWkvZG9jcy9zdHQtZmlsZS9cbmV4cG9ydCBjb25zdCBydHpyVHJhbnNjcmlwdGlvblByb3ZpZGVyT3B0aW9ucyA9IGxhenlTY2hlbWEoKCkgPT5cbiAgem9kU2NoZW1hKFxuICAgIHoub2JqZWN0KHJ0enJPcHRpb25zU2hhcGUpLnRyYW5zZm9ybSgoaXRlbSkgPT4ge1xuICAgICAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgICAgT2JqZWN0LmVudHJpZXMoaXRlbSkubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICByZXR1cm4gW3J0enJPcHRpb25zTWFwW2tleSBhcyBrZXlvZiB0eXBlb2YgcnR6ck9wdGlvbnNTaGFwZV0sIHZhbHVlXTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH0pLFxuICApLFxuKTtcblxuZXhwb3J0IHR5cGUgUnR6clRyYW5zY3JpcHRpb25Qcm92aWRlck9wdGlvbnMgPSBJbmZlclNjaGVtYTx0eXBlb2YgcnR6clRyYW5zY3JpcHRpb25Qcm92aWRlck9wdGlvbnM+O1xuIl0sIm5hbWVzIjpbImxhenlTY2hlbWEiLCJ6b2RTY2hlbWEiLCJ6IiwicnR6ck9wdGlvbnNTaGFwZSIsImRvbWFpbiIsImVudW0iLCJkZWZhdWx0IiwibGFuZ3VhZ2UiLCJzdHJpbmciLCJsYW5ndWFnZUNhbmRpZGF0ZXMiLCJhcnJheSIsIm9wdGlvbmFsIiwia2V5d29yZHMiLCJ1bmlvbiIsInBhcmFncmFwaFNwbGl0dGVyTWF4IiwibnVtYmVyIiwiZGlhcml6YXRpb24iLCJib29sZWFuIiwiaXRuIiwiZGlhcml6YXRpb25TcGtDb3VudCIsImRpc2ZsdWVuY3lGaWx0ZXIiLCJwYXJhZ3JhcGhTcGxpdHRlciIsInByb2Zhbml0eUZpbHRlciIsIndvcmRUaW1lc3RhbXAiLCJydHpyT3B0aW9uc01hcCIsInJ0enJUcmFuc2NyaXB0aW9uUHJvdmlkZXJPcHRpb25zIiwib2JqZWN0IiwidHJhbnNmb3JtIiwiaXRlbSIsIk9iamVjdCIsImZyb21FbnRyaWVzIiwiZW50cmllcyIsIm1hcCIsImtleSIsInZhbHVlIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUEyQkEsVUFBVSxFQUFFQyxTQUFTLFFBQVEseUJBQXlCO0FBQ2pGLFNBQVNDLENBQUMsUUFBUSxNQUFNO0FBSXhCLE1BQU1DLG1CQUFtQjtJQUN2QkMsUUFBUUYsRUFBRUcsSUFBSSxDQUFDO1FBQUM7UUFBUTtLQUFVLEVBQUVDLE9BQU8sQ0FBQztJQUM1Q0MsVUFBVUwsRUFBRU0sTUFBTTtJQUNsQkMsb0JBQW9CUCxFQUFFUSxLQUFLLENBQUNSLEVBQUVNLE1BQU0sSUFBSUcsUUFBUTtJQUNoREMsVUFBVVYsRUFBRVcsS0FBSyxDQUFDO1FBQUNYLEVBQUVNLE1BQU07UUFBSU4sRUFBRVEsS0FBSyxDQUFDUixFQUFFTSxNQUFNO0tBQUksRUFBRUcsUUFBUTtJQUM3REcsc0JBQXNCWixFQUFFYSxNQUFNLEdBQUdKLFFBQVE7SUFDekNLLGFBQWFkLEVBQUVlLE9BQU8sR0FBR04sUUFBUTtJQUNqQ08sS0FBS2hCLEVBQUVlLE9BQU8sR0FBR04sUUFBUTtJQUN6QlEscUJBQXFCakIsRUFBRWEsTUFBTSxHQUFHSixRQUFRO0lBQ3hDUyxrQkFBa0JsQixFQUFFZSxPQUFPLEdBQUdOLFFBQVE7SUFDdENVLG1CQUFtQm5CLEVBQUVlLE9BQU8sR0FBR04sUUFBUTtJQUN2Q1csaUJBQWlCcEIsRUFBRWUsT0FBTyxHQUFHTixRQUFRO0lBQ3JDWSxlQUFlckIsRUFBRWUsT0FBTyxHQUFHTixRQUFRO0FBQ3JDO0FBRUEsTUFBTWEsaUJBQWdFO0lBQ3BFcEIsUUFBUTtJQUNSRyxVQUFVO0lBQ1ZFLG9CQUFvQjtJQUNwQkcsVUFBVTtJQUNWRSxzQkFBc0I7SUFDdEJFLGFBQWE7SUFDYkUsS0FBSztJQUNMQyxxQkFBcUI7SUFDckJDLGtCQUFrQjtJQUNsQkMsbUJBQW1CO0lBQ25CQyxpQkFBaUI7SUFDakJDLGVBQWU7QUFDakI7QUFFQSw0Q0FBNEM7QUFDNUMsT0FBTyxNQUFNRSxtQ0FBbUN6QixXQUFXLElBQ3pEQyxVQUNFQyxFQUFFd0IsTUFBTSxDQUFDdkIsa0JBQWtCd0IsU0FBUyxDQUFDLENBQUNDO1FBQ3BDLE9BQU9DLE9BQU9DLFdBQVcsQ0FDdkJELE9BQU9FLE9BQU8sQ0FBQ0gsTUFBTUksR0FBRyxDQUFDLENBQUMsQ0FBQ0MsS0FBS0MsTUFBTTtZQUNwQyxPQUFPO2dCQUFDVixjQUFjLENBQUNTLElBQXFDO2dCQUFFQzthQUFNO1FBQ3RFO0lBRUosS0FFRiJ9
@@ -0,0 +1,18 @@
1
+ import { type ProviderV3, type TranscriptionModelV3 } from "@ai-sdk/provider";
2
+ import { type FetchFunction } from "@ai-sdk/provider-utils";
3
+ import type { RtzrTranscriptionModelId } from "./options";
4
+ export interface RtzrProvider extends ProviderV3 {
5
+ (modelId: RtzrTranscriptionModelId): TranscriptionModelV3;
6
+ transcription(modelId: RtzrTranscriptionModelId): TranscriptionModelV3;
7
+ }
8
+ export interface RtzrProviderSettings {
9
+ baseURL?: string;
10
+ clientId?: string;
11
+ clientSecret?: string;
12
+ headers?: Record<string, string>;
13
+ name?: string;
14
+ fetch?: FetchFunction;
15
+ }
16
+ export declare function createRtzr(options?: RtzrProviderSettings): RtzrProvider;
17
+ export declare const rtzr: RtzrProvider;
18
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../../src/ai/providers/rtzr/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,UAAU,EAAE,KAAK,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAChG,OAAO,EACL,KAAK,aAAa,EAKnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAE1D,MAAM,WAAW,YAAa,SAAQ,UAAU;IAC9C,CAAC,OAAO,EAAE,wBAAwB,GAAG,oBAAoB,CAAC;IAC1D,aAAa,CAAC,OAAO,EAAE,wBAAwB,GAAG,oBAAoB,CAAC;CACxE;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,wBAAgB,UAAU,CAAC,OAAO,GAAE,oBAAyB,GAAG,YAAY,CA+D3E;AAED,eAAO,MAAM,IAAI,cAAe,CAAC"}
@@ -0,0 +1,54 @@
1
+ import { NoSuchModelError } from "@ai-sdk/provider";
2
+ import { loadApiKey, loadOptionalSetting, withoutTrailingSlash, withUserAgentSuffix } from "@ai-sdk/provider-utils";
3
+ import { RtzrTranscriptionModel } from "./model.js";
4
+ export function createRtzr(options = {}) {
5
+ const baseURL = withoutTrailingSlash(loadOptionalSetting({
6
+ settingValue: options.baseURL,
7
+ environmentVariableName: "RTZR_BASE_URL"
8
+ })) ?? "https://openapi.vito.ai/v1";
9
+ const providerName = options.name ?? "rtzr";
10
+ const getHeaders = ()=>withUserAgentSuffix({
11
+ ...options.headers
12
+ }, `cartanova-ai/rtzr-api-provider`);
13
+ const createTranscriptionModel = (modelId)=>{
14
+ const clientId = loadApiKey({
15
+ apiKey: options.clientId,
16
+ environmentVariableName: "RTZR_CLIENT_ID",
17
+ description: "RTZR"
18
+ });
19
+ const clientSecret = loadApiKey({
20
+ apiKey: options.clientSecret,
21
+ environmentVariableName: "RTZR_CLIENT_SECRET",
22
+ description: "RTZR"
23
+ });
24
+ return new RtzrTranscriptionModel(modelId, {
25
+ provider: `${providerName}.transcription`,
26
+ auth: {
27
+ clientId,
28
+ clientSecret
29
+ },
30
+ url: ({ path })=>`${baseURL}${path}`,
31
+ headers: getHeaders,
32
+ fetch: options.fetch
33
+ });
34
+ };
35
+ const provider = (modelId)=>createTranscriptionModel(modelId);
36
+ provider.specificationVersion = "v3";
37
+ provider.transcription = createTranscriptionModel;
38
+ provider.transcriptionModel = createTranscriptionModel;
39
+ const handleUnsupportedTypes = (modelType)=>{
40
+ return (modelId)=>{
41
+ throw new NoSuchModelError({
42
+ modelId,
43
+ modelType
44
+ });
45
+ };
46
+ };
47
+ provider.languageModel = handleUnsupportedTypes("languageModel");
48
+ provider.embeddingModel = handleUnsupportedTypes("embeddingModel");
49
+ provider.imageModel = handleUnsupportedTypes("imageModel");
50
+ return provider;
51
+ }
52
+ export const rtzr = createRtzr();
53
+
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9haS9wcm92aWRlcnMvcnR6ci9wcm92aWRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOb1N1Y2hNb2RlbEVycm9yLCB0eXBlIFByb3ZpZGVyVjMsIHR5cGUgVHJhbnNjcmlwdGlvbk1vZGVsVjMgfSBmcm9tIFwiQGFpLXNkay9wcm92aWRlclwiO1xuaW1wb3J0IHtcbiAgdHlwZSBGZXRjaEZ1bmN0aW9uLFxuICBsb2FkQXBpS2V5LFxuICBsb2FkT3B0aW9uYWxTZXR0aW5nLFxuICB3aXRob3V0VHJhaWxpbmdTbGFzaCxcbiAgd2l0aFVzZXJBZ2VudFN1ZmZpeCxcbn0gZnJvbSBcIkBhaS1zZGsvcHJvdmlkZXItdXRpbHNcIjtcbmltcG9ydCB7IFJ0enJUcmFuc2NyaXB0aW9uTW9kZWwgfSBmcm9tIFwiLi9tb2RlbFwiO1xuaW1wb3J0IHR5cGUgeyBSdHpyVHJhbnNjcmlwdGlvbk1vZGVsSWQgfSBmcm9tIFwiLi9vcHRpb25zXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUnR6clByb3ZpZGVyIGV4dGVuZHMgUHJvdmlkZXJWMyB7XG4gIChtb2RlbElkOiBSdHpyVHJhbnNjcmlwdGlvbk1vZGVsSWQpOiBUcmFuc2NyaXB0aW9uTW9kZWxWMztcbiAgdHJhbnNjcmlwdGlvbihtb2RlbElkOiBSdHpyVHJhbnNjcmlwdGlvbk1vZGVsSWQpOiBUcmFuc2NyaXB0aW9uTW9kZWxWMztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSdHpyUHJvdmlkZXJTZXR0aW5ncyB7XG4gIGJhc2VVUkw/OiBzdHJpbmc7XG4gIGNsaWVudElkPzogc3RyaW5nO1xuICBjbGllbnRTZWNyZXQ/OiBzdHJpbmc7XG4gIGhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICBuYW1lPzogc3RyaW5nO1xuICBmZXRjaD86IEZldGNoRnVuY3Rpb247XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSdHpyKG9wdGlvbnM6IFJ0enJQcm92aWRlclNldHRpbmdzID0ge30pOiBSdHpyUHJvdmlkZXIge1xuICBjb25zdCBiYXNlVVJMID1cbiAgICB3aXRob3V0VHJhaWxpbmdTbGFzaChcbiAgICAgIGxvYWRPcHRpb25hbFNldHRpbmcoe1xuICAgICAgICBzZXR0aW5nVmFsdWU6IG9wdGlvbnMuYmFzZVVSTCxcbiAgICAgICAgZW52aXJvbm1lbnRWYXJpYWJsZU5hbWU6IFwiUlRaUl9CQVNFX1VSTFwiLFxuICAgICAgfSksXG4gICAgKSA/PyBcImh0dHBzOi8vb3BlbmFwaS52aXRvLmFpL3YxXCI7XG5cbiAgY29uc3QgcHJvdmlkZXJOYW1lID0gb3B0aW9ucy5uYW1lID8/IFwicnR6clwiO1xuXG4gIGNvbnN0IGdldEhlYWRlcnMgPSAoKSA9PlxuICAgIHdpdGhVc2VyQWdlbnRTdWZmaXgoXG4gICAgICB7XG4gICAgICAgIC4uLm9wdGlvbnMuaGVhZGVycyxcbiAgICAgIH0sXG4gICAgICBgY2FydGFub3ZhLWFpL3J0enItYXBpLXByb3ZpZGVyYCxcbiAgICApO1xuXG4gIGNvbnN0IGNyZWF0ZVRyYW5zY3JpcHRpb25Nb2RlbCA9IChtb2RlbElkOiBSdHpyVHJhbnNjcmlwdGlvbk1vZGVsSWQpID0+IHtcbiAgICBjb25zdCBjbGllbnRJZCA9IGxvYWRBcGlLZXkoe1xuICAgICAgYXBpS2V5OiBvcHRpb25zLmNsaWVudElkLFxuICAgICAgZW52aXJvbm1lbnRWYXJpYWJsZU5hbWU6IFwiUlRaUl9DTElFTlRfSURcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlJUWlJcIixcbiAgICB9KTtcblxuICAgIGNvbnN0IGNsaWVudFNlY3JldCA9IGxvYWRBcGlLZXkoe1xuICAgICAgYXBpS2V5OiBvcHRpb25zLmNsaWVudFNlY3JldCxcbiAgICAgIGVudmlyb25tZW50VmFyaWFibGVOYW1lOiBcIlJUWlJfQ0xJRU5UX1NFQ1JFVFwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiUlRaUlwiLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG5ldyBSdHpyVHJhbnNjcmlwdGlvbk1vZGVsKG1vZGVsSWQsIHtcbiAgICAgIHByb3ZpZGVyOiBgJHtwcm92aWRlck5hbWV9LnRyYW5zY3JpcHRpb25gLFxuICAgICAgYXV0aDoge1xuICAgICAgICBjbGllbnRJZCxcbiAgICAgICAgY2xpZW50U2VjcmV0LFxuICAgICAgfSxcbiAgICAgIHVybDogKHsgcGF0aCB9KSA9PiBgJHtiYXNlVVJMfSR7cGF0aH1gLFxuICAgICAgaGVhZGVyczogZ2V0SGVhZGVycyxcbiAgICAgIGZldGNoOiBvcHRpb25zLmZldGNoLFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IHByb3ZpZGVyID0gKG1vZGVsSWQ6IFJ0enJUcmFuc2NyaXB0aW9uTW9kZWxJZCkgPT4gY3JlYXRlVHJhbnNjcmlwdGlvbk1vZGVsKG1vZGVsSWQpO1xuXG4gIHByb3ZpZGVyLnNwZWNpZmljYXRpb25WZXJzaW9uID0gXCJ2M1wiIGFzIGNvbnN0O1xuICBwcm92aWRlci50cmFuc2NyaXB0aW9uID0gY3JlYXRlVHJhbnNjcmlwdGlvbk1vZGVsO1xuICBwcm92aWRlci50cmFuc2NyaXB0aW9uTW9kZWwgPSBjcmVhdGVUcmFuc2NyaXB0aW9uTW9kZWw7XG5cbiAgY29uc3QgaGFuZGxlVW5zdXBwb3J0ZWRUeXBlcyA9IChtb2RlbFR5cGU6IFwibGFuZ3VhZ2VNb2RlbFwiIHwgXCJlbWJlZGRpbmdNb2RlbFwiIHwgXCJpbWFnZU1vZGVsXCIpID0+IHtcbiAgICByZXR1cm4gKG1vZGVsSWQ6IHN0cmluZykgPT4ge1xuICAgICAgdGhyb3cgbmV3IE5vU3VjaE1vZGVsRXJyb3Ioe1xuICAgICAgICBtb2RlbElkLFxuICAgICAgICBtb2RlbFR5cGUsXG4gICAgICB9KTtcbiAgICB9O1xuICB9O1xuXG4gIHByb3ZpZGVyLmxhbmd1YWdlTW9kZWwgPSBoYW5kbGVVbnN1cHBvcnRlZFR5cGVzKFwibGFuZ3VhZ2VNb2RlbFwiKTtcbiAgcHJvdmlkZXIuZW1iZWRkaW5nTW9kZWwgPSBoYW5kbGVVbnN1cHBvcnRlZFR5cGVzKFwiZW1iZWRkaW5nTW9kZWxcIik7XG4gIHByb3ZpZGVyLmltYWdlTW9kZWwgPSBoYW5kbGVVbnN1cHBvcnRlZFR5cGVzKFwiaW1hZ2VNb2RlbFwiKTtcbiAgcmV0dXJuIHByb3ZpZGVyIGFzIFJ0enJQcm92aWRlcjtcbn1cblxuZXhwb3J0IGNvbnN0IHJ0enIgPSBjcmVhdGVSdHpyKCk7XG4iXSwibmFtZXMiOlsiTm9TdWNoTW9kZWxFcnJvciIsImxvYWRBcGlLZXkiLCJsb2FkT3B0aW9uYWxTZXR0aW5nIiwid2l0aG91dFRyYWlsaW5nU2xhc2giLCJ3aXRoVXNlckFnZW50U3VmZml4IiwiUnR6clRyYW5zY3JpcHRpb25Nb2RlbCIsImNyZWF0ZVJ0enIiLCJvcHRpb25zIiwiYmFzZVVSTCIsInNldHRpbmdWYWx1ZSIsImVudmlyb25tZW50VmFyaWFibGVOYW1lIiwicHJvdmlkZXJOYW1lIiwibmFtZSIsImdldEhlYWRlcnMiLCJoZWFkZXJzIiwiY3JlYXRlVHJhbnNjcmlwdGlvbk1vZGVsIiwibW9kZWxJZCIsImNsaWVudElkIiwiYXBpS2V5IiwiZGVzY3JpcHRpb24iLCJjbGllbnRTZWNyZXQiLCJwcm92aWRlciIsImF1dGgiLCJ1cmwiLCJwYXRoIiwiZmV0Y2giLCJzcGVjaWZpY2F0aW9uVmVyc2lvbiIsInRyYW5zY3JpcHRpb24iLCJ0cmFuc2NyaXB0aW9uTW9kZWwiLCJoYW5kbGVVbnN1cHBvcnRlZFR5cGVzIiwibW9kZWxUeXBlIiwibGFuZ3VhZ2VNb2RlbCIsImVtYmVkZGluZ01vZGVsIiwiaW1hZ2VNb2RlbCIsInJ0enIiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGdCQUFnQixRQUFvRCxtQkFBbUI7QUFDaEcsU0FFRUMsVUFBVSxFQUNWQyxtQkFBbUIsRUFDbkJDLG9CQUFvQixFQUNwQkMsbUJBQW1CLFFBQ2QseUJBQXlCO0FBQ2hDLFNBQVNDLHNCQUFzQixRQUFRLGFBQVU7QUFpQmpELE9BQU8sU0FBU0MsV0FBV0MsVUFBZ0MsQ0FBQyxDQUFDO0lBQzNELE1BQU1DLFVBQ0pMLHFCQUNFRCxvQkFBb0I7UUFDbEJPLGNBQWNGLFFBQVFDLE9BQU87UUFDN0JFLHlCQUF5QjtJQUMzQixPQUNHO0lBRVAsTUFBTUMsZUFBZUosUUFBUUssSUFBSSxJQUFJO0lBRXJDLE1BQU1DLGFBQWEsSUFDakJULG9CQUNFO1lBQ0UsR0FBR0csUUFBUU8sT0FBTztRQUNwQixHQUNBLENBQUMsOEJBQThCLENBQUM7SUFHcEMsTUFBTUMsMkJBQTJCLENBQUNDO1FBQ2hDLE1BQU1DLFdBQVdoQixXQUFXO1lBQzFCaUIsUUFBUVgsUUFBUVUsUUFBUTtZQUN4QlAseUJBQXlCO1lBQ3pCUyxhQUFhO1FBQ2Y7UUFFQSxNQUFNQyxlQUFlbkIsV0FBVztZQUM5QmlCLFFBQVFYLFFBQVFhLFlBQVk7WUFDNUJWLHlCQUF5QjtZQUN6QlMsYUFBYTtRQUNmO1FBRUEsT0FBTyxJQUFJZCx1QkFBdUJXLFNBQVM7WUFDekNLLFVBQVUsR0FBR1YsYUFBYSxjQUFjLENBQUM7WUFDekNXLE1BQU07Z0JBQ0pMO2dCQUNBRztZQUNGO1lBQ0FHLEtBQUssQ0FBQyxFQUFFQyxJQUFJLEVBQUUsR0FBSyxHQUFHaEIsVUFBVWdCLE1BQU07WUFDdENWLFNBQVNEO1lBQ1RZLE9BQU9sQixRQUFRa0IsS0FBSztRQUN0QjtJQUNGO0lBRUEsTUFBTUosV0FBVyxDQUFDTCxVQUFzQ0QseUJBQXlCQztJQUVqRkssU0FBU0ssb0JBQW9CLEdBQUc7SUFDaENMLFNBQVNNLGFBQWEsR0FBR1o7SUFDekJNLFNBQVNPLGtCQUFrQixHQUFHYjtJQUU5QixNQUFNYyx5QkFBeUIsQ0FBQ0M7UUFDOUIsT0FBTyxDQUFDZDtZQUNOLE1BQU0sSUFBSWhCLGlCQUFpQjtnQkFDekJnQjtnQkFDQWM7WUFDRjtRQUNGO0lBQ0Y7SUFFQVQsU0FBU1UsYUFBYSxHQUFHRix1QkFBdUI7SUFDaERSLFNBQVNXLGNBQWMsR0FBR0gsdUJBQXVCO0lBQ2pEUixTQUFTWSxVQUFVLEdBQUdKLHVCQUF1QjtJQUM3QyxPQUFPUjtBQUNUO0FBRUEsT0FBTyxNQUFNYSxPQUFPNUIsYUFBYSJ9
@@ -0,0 +1,19 @@
1
+ import { type FetchFunction, type ResponseHandler } from "@ai-sdk/provider-utils";
2
+ export declare function handleFetchError({ error, url, requestBodyValues, }: {
3
+ error: unknown;
4
+ url: string;
5
+ requestBodyValues: unknown;
6
+ }): unknown;
7
+ export declare const getFromApi: <T>({ url, headers, successfulResponseHandler, failedResponseHandler, abortSignal, fetch, }: {
8
+ url: string;
9
+ headers?: Record<string, string | undefined>;
10
+ failedResponseHandler: ResponseHandler<Error>;
11
+ successfulResponseHandler: ResponseHandler<T>;
12
+ abortSignal?: AbortSignal;
13
+ fetch?: FetchFunction;
14
+ }) => Promise<{
15
+ value: T;
16
+ rawValue?: unknown;
17
+ responseHeaders?: Record<string, string>;
18
+ }>;
19
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/ai/providers/rtzr/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,aAAa,EAElB,KAAK,eAAe,EAErB,MAAM,wBAAwB,CAAC;AAIhC,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,GAAG,EACH,iBAAiB,GAClB,EAAE;IACD,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,iBAAiB,EAAE,OAAO,CAAC;CAC5B,WAuBA;AAKD,eAAO,MAAM,UAAU,GAAU,CAAC,EAAE,yFAOjC;IACD,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAC7C,qBAAqB,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;IAC9C,yBAAyB,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IAC9C,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;;;;EAiEA,CAAC"}
@@ -0,0 +1,88 @@
1
+ import { APICallError } from "@ai-sdk/provider";
2
+ import { extractResponseHeaders, isAbortError, withUserAgentSuffix } from "@ai-sdk/provider-utils";
3
+ const FETCH_FAILED_ERROR_MESSAGES = [
4
+ "fetch failed",
5
+ "failed to fetch"
6
+ ];
7
+ export function handleFetchError({ error, url, requestBodyValues }) {
8
+ if (isAbortError(error)) {
9
+ return error;
10
+ }
11
+ if (error instanceof TypeError && FETCH_FAILED_ERROR_MESSAGES.includes(error.message.toLowerCase())) {
12
+ const cause = error.cause;
13
+ if (cause != null) {
14
+ return new APICallError({
15
+ message: `Cannot connect to API: ${cause.message}`,
16
+ cause,
17
+ url,
18
+ requestBodyValues,
19
+ isRetryable: true
20
+ });
21
+ }
22
+ }
23
+ return error;
24
+ }
25
+ // use function to allow for mocking in tests:
26
+ const getOriginalFetch = ()=>globalThis.fetch;
27
+ export const getFromApi = async ({ url, headers = {}, successfulResponseHandler, failedResponseHandler, abortSignal, fetch = getOriginalFetch() })=>{
28
+ try {
29
+ const response = await fetch(url, {
30
+ method: "GET",
31
+ headers: withUserAgentSuffix(headers, `cartanova-ai/rtzr-api-provider`),
32
+ signal: abortSignal
33
+ });
34
+ const responseHeaders = extractResponseHeaders(response);
35
+ if (!response.ok) {
36
+ let errorInformation;
37
+ try {
38
+ errorInformation = await failedResponseHandler({
39
+ response,
40
+ url,
41
+ requestBodyValues: {}
42
+ });
43
+ } catch (error) {
44
+ if (isAbortError(error) || APICallError.isInstance(error)) {
45
+ throw error;
46
+ }
47
+ throw new APICallError({
48
+ message: "Failed to process error response",
49
+ cause: error,
50
+ statusCode: response.status,
51
+ url,
52
+ responseHeaders,
53
+ requestBodyValues: {}
54
+ });
55
+ }
56
+ throw errorInformation.value;
57
+ }
58
+ try {
59
+ return await successfulResponseHandler({
60
+ response,
61
+ url,
62
+ requestBodyValues: {}
63
+ });
64
+ } catch (error) {
65
+ if (error instanceof Error) {
66
+ if (isAbortError(error) || APICallError.isInstance(error)) {
67
+ throw error;
68
+ }
69
+ }
70
+ throw new APICallError({
71
+ message: "Failed to process successful response",
72
+ cause: error,
73
+ statusCode: response.status,
74
+ url,
75
+ responseHeaders,
76
+ requestBodyValues: {}
77
+ });
78
+ }
79
+ } catch (error) {
80
+ throw handleFetchError({
81
+ error,
82
+ url,
83
+ requestBodyValues: {}
84
+ });
85
+ }
86
+ };
87
+
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9haS9wcm92aWRlcnMvcnR6ci91dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBUElDYWxsRXJyb3IgfSBmcm9tIFwiQGFpLXNkay9wcm92aWRlclwiO1xuaW1wb3J0IHtcbiAgZXh0cmFjdFJlc3BvbnNlSGVhZGVycyxcbiAgdHlwZSBGZXRjaEZ1bmN0aW9uLFxuICBpc0Fib3J0RXJyb3IsXG4gIHR5cGUgUmVzcG9uc2VIYW5kbGVyLFxuICB3aXRoVXNlckFnZW50U3VmZml4LFxufSBmcm9tIFwiQGFpLXNkay9wcm92aWRlci11dGlsc1wiO1xuXG5jb25zdCBGRVRDSF9GQUlMRURfRVJST1JfTUVTU0FHRVMgPSBbXCJmZXRjaCBmYWlsZWRcIiwgXCJmYWlsZWQgdG8gZmV0Y2hcIl07XG5cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVGZXRjaEVycm9yKHtcbiAgZXJyb3IsXG4gIHVybCxcbiAgcmVxdWVzdEJvZHlWYWx1ZXMsXG59OiB7XG4gIGVycm9yOiB1bmtub3duO1xuICB1cmw6IHN0cmluZztcbiAgcmVxdWVzdEJvZHlWYWx1ZXM6IHVua25vd247XG59KSB7XG4gIGlmIChpc0Fib3J0RXJyb3IoZXJyb3IpKSB7XG4gICAgcmV0dXJuIGVycm9yO1xuICB9XG5cbiAgaWYgKFxuICAgIGVycm9yIGluc3RhbmNlb2YgVHlwZUVycm9yICYmXG4gICAgRkVUQ0hfRkFJTEVEX0VSUk9SX01FU1NBR0VTLmluY2x1ZGVzKGVycm9yLm1lc3NhZ2UudG9Mb3dlckNhc2UoKSlcbiAgKSB7XG4gICAgY29uc3QgY2F1c2UgPSAoZXJyb3IgYXMgeyBjYXVzZT86IEVycm9yIH0pLmNhdXNlO1xuXG4gICAgaWYgKGNhdXNlICE9IG51bGwpIHtcbiAgICAgIHJldHVybiBuZXcgQVBJQ2FsbEVycm9yKHtcbiAgICAgICAgbWVzc2FnZTogYENhbm5vdCBjb25uZWN0IHRvIEFQSTogJHtjYXVzZS5tZXNzYWdlfWAsXG4gICAgICAgIGNhdXNlLFxuICAgICAgICB1cmwsXG4gICAgICAgIHJlcXVlc3RCb2R5VmFsdWVzLFxuICAgICAgICBpc1JldHJ5YWJsZTogdHJ1ZSwgLy8gcmV0cnkgd2hlbiBuZXR3b3JrIGVycm9yXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZXJyb3I7XG59XG5cbi8vIHVzZSBmdW5jdGlvbiB0byBhbGxvdyBmb3IgbW9ja2luZyBpbiB0ZXN0czpcbmNvbnN0IGdldE9yaWdpbmFsRmV0Y2ggPSAoKSA9PiBnbG9iYWxUaGlzLmZldGNoO1xuXG5leHBvcnQgY29uc3QgZ2V0RnJvbUFwaSA9IGFzeW5jIDxUPih7XG4gIHVybCxcbiAgaGVhZGVycyA9IHt9LFxuICBzdWNjZXNzZnVsUmVzcG9uc2VIYW5kbGVyLFxuICBmYWlsZWRSZXNwb25zZUhhbmRsZXIsXG4gIGFib3J0U2lnbmFsLFxuICBmZXRjaCA9IGdldE9yaWdpbmFsRmV0Y2goKSxcbn06IHtcbiAgdXJsOiBzdHJpbmc7XG4gIGhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+O1xuICBmYWlsZWRSZXNwb25zZUhhbmRsZXI6IFJlc3BvbnNlSGFuZGxlcjxFcnJvcj47XG4gIHN1Y2Nlc3NmdWxSZXNwb25zZUhhbmRsZXI6IFJlc3BvbnNlSGFuZGxlcjxUPjtcbiAgYWJvcnRTaWduYWw/OiBBYm9ydFNpZ25hbDtcbiAgZmV0Y2g/OiBGZXRjaEZ1bmN0aW9uO1xufSkgPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsLCB7XG4gICAgICBtZXRob2Q6IFwiR0VUXCIsXG4gICAgICBoZWFkZXJzOiB3aXRoVXNlckFnZW50U3VmZml4KGhlYWRlcnMsIGBjYXJ0YW5vdmEtYWkvcnR6ci1hcGktcHJvdmlkZXJgKSxcbiAgICAgIHNpZ25hbDogYWJvcnRTaWduYWwsXG4gICAgfSk7XG5cbiAgICBjb25zdCByZXNwb25zZUhlYWRlcnMgPSBleHRyYWN0UmVzcG9uc2VIZWFkZXJzKHJlc3BvbnNlKTtcblxuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIGxldCBlcnJvckluZm9ybWF0aW9uOiB7XG4gICAgICAgIHZhbHVlOiBFcnJvcjtcbiAgICAgICAgcmVzcG9uc2VIZWFkZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IHVuZGVmaW5lZDtcbiAgICAgIH07XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGVycm9ySW5mb3JtYXRpb24gPSBhd2FpdCBmYWlsZWRSZXNwb25zZUhhbmRsZXIoe1xuICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICAgIHVybCxcbiAgICAgICAgICByZXF1ZXN0Qm9keVZhbHVlczoge30sXG4gICAgICAgIH0pO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKGlzQWJvcnRFcnJvcihlcnJvcikgfHwgQVBJQ2FsbEVycm9yLmlzSW5zdGFuY2UoZXJyb3IpKSB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBuZXcgQVBJQ2FsbEVycm9yKHtcbiAgICAgICAgICBtZXNzYWdlOiBcIkZhaWxlZCB0byBwcm9jZXNzIGVycm9yIHJlc3BvbnNlXCIsXG4gICAgICAgICAgY2F1c2U6IGVycm9yLFxuICAgICAgICAgIHN0YXR1c0NvZGU6IHJlc3BvbnNlLnN0YXR1cyxcbiAgICAgICAgICB1cmwsXG4gICAgICAgICAgcmVzcG9uc2VIZWFkZXJzLFxuICAgICAgICAgIHJlcXVlc3RCb2R5VmFsdWVzOiB7fSxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHRocm93IGVycm9ySW5mb3JtYXRpb24udmFsdWU7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCBzdWNjZXNzZnVsUmVzcG9uc2VIYW5kbGVyKHtcbiAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgIHVybCxcbiAgICAgICAgcmVxdWVzdEJvZHlWYWx1ZXM6IHt9LFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgIGlmIChpc0Fib3J0RXJyb3IoZXJyb3IpIHx8IEFQSUNhbGxFcnJvci5pc0luc3RhbmNlKGVycm9yKSkge1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRocm93IG5ldyBBUElDYWxsRXJyb3Ioe1xuICAgICAgICBtZXNzYWdlOiBcIkZhaWxlZCB0byBwcm9jZXNzIHN1Y2Nlc3NmdWwgcmVzcG9uc2VcIixcbiAgICAgICAgY2F1c2U6IGVycm9yLFxuICAgICAgICBzdGF0dXNDb2RlOiByZXNwb25zZS5zdGF0dXMsXG4gICAgICAgIHVybCxcbiAgICAgICAgcmVzcG9uc2VIZWFkZXJzLFxuICAgICAgICByZXF1ZXN0Qm9keVZhbHVlczoge30sXG4gICAgICB9KTtcbiAgICB9XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgdGhyb3cgaGFuZGxlRmV0Y2hFcnJvcih7IGVycm9yLCB1cmwsIHJlcXVlc3RCb2R5VmFsdWVzOiB7fSB9KTtcbiAgfVxufTtcbiJdLCJuYW1lcyI6WyJBUElDYWxsRXJyb3IiLCJleHRyYWN0UmVzcG9uc2VIZWFkZXJzIiwiaXNBYm9ydEVycm9yIiwid2l0aFVzZXJBZ2VudFN1ZmZpeCIsIkZFVENIX0ZBSUxFRF9FUlJPUl9NRVNTQUdFUyIsImhhbmRsZUZldGNoRXJyb3IiLCJlcnJvciIsInVybCIsInJlcXVlc3RCb2R5VmFsdWVzIiwiVHlwZUVycm9yIiwiaW5jbHVkZXMiLCJtZXNzYWdlIiwidG9Mb3dlckNhc2UiLCJjYXVzZSIsImlzUmV0cnlhYmxlIiwiZ2V0T3JpZ2luYWxGZXRjaCIsImdsb2JhbFRoaXMiLCJmZXRjaCIsImdldEZyb21BcGkiLCJoZWFkZXJzIiwic3VjY2Vzc2Z1bFJlc3BvbnNlSGFuZGxlciIsImZhaWxlZFJlc3BvbnNlSGFuZGxlciIsImFib3J0U2lnbmFsIiwicmVzcG9uc2UiLCJtZXRob2QiLCJzaWduYWwiLCJyZXNwb25zZUhlYWRlcnMiLCJvayIsImVycm9ySW5mb3JtYXRpb24iLCJpc0luc3RhbmNlIiwic3RhdHVzQ29kZSIsInN0YXR1cyIsInZhbHVlIiwiRXJyb3IiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFlBQVksUUFBUSxtQkFBbUI7QUFDaEQsU0FDRUMsc0JBQXNCLEVBRXRCQyxZQUFZLEVBRVpDLG1CQUFtQixRQUNkLHlCQUF5QjtBQUVoQyxNQUFNQyw4QkFBOEI7SUFBQztJQUFnQjtDQUFrQjtBQUV2RSxPQUFPLFNBQVNDLGlCQUFpQixFQUMvQkMsS0FBSyxFQUNMQyxHQUFHLEVBQ0hDLGlCQUFpQixFQUtsQjtJQUNDLElBQUlOLGFBQWFJLFFBQVE7UUFDdkIsT0FBT0E7SUFDVDtJQUVBLElBQ0VBLGlCQUFpQkcsYUFDakJMLDRCQUE0Qk0sUUFBUSxDQUFDSixNQUFNSyxPQUFPLENBQUNDLFdBQVcsS0FDOUQ7UUFDQSxNQUFNQyxRQUFRLEFBQUNQLE1BQTRCTyxLQUFLO1FBRWhELElBQUlBLFNBQVMsTUFBTTtZQUNqQixPQUFPLElBQUliLGFBQWE7Z0JBQ3RCVyxTQUFTLENBQUMsdUJBQXVCLEVBQUVFLE1BQU1GLE9BQU8sRUFBRTtnQkFDbERFO2dCQUNBTjtnQkFDQUM7Z0JBQ0FNLGFBQWE7WUFDZjtRQUNGO0lBQ0Y7SUFFQSxPQUFPUjtBQUNUO0FBRUEsOENBQThDO0FBQzlDLE1BQU1TLG1CQUFtQixJQUFNQyxXQUFXQyxLQUFLO0FBRS9DLE9BQU8sTUFBTUMsYUFBYSxPQUFVLEVBQ2xDWCxHQUFHLEVBQ0hZLFVBQVUsQ0FBQyxDQUFDLEVBQ1pDLHlCQUF5QixFQUN6QkMscUJBQXFCLEVBQ3JCQyxXQUFXLEVBQ1hMLFFBQVFGLGtCQUFrQixFQVEzQjtJQUNDLElBQUk7UUFDRixNQUFNUSxXQUFXLE1BQU1OLE1BQU1WLEtBQUs7WUFDaENpQixRQUFRO1lBQ1JMLFNBQVNoQixvQkFBb0JnQixTQUFTLENBQUMsOEJBQThCLENBQUM7WUFDdEVNLFFBQVFIO1FBQ1Y7UUFFQSxNQUFNSSxrQkFBa0J6Qix1QkFBdUJzQjtRQUUvQyxJQUFJLENBQUNBLFNBQVNJLEVBQUUsRUFBRTtZQUNoQixJQUFJQztZQUtKLElBQUk7Z0JBQ0ZBLG1CQUFtQixNQUFNUCxzQkFBc0I7b0JBQzdDRTtvQkFDQWhCO29CQUNBQyxtQkFBbUIsQ0FBQztnQkFDdEI7WUFDRixFQUFFLE9BQU9GLE9BQU87Z0JBQ2QsSUFBSUosYUFBYUksVUFBVU4sYUFBYTZCLFVBQVUsQ0FBQ3ZCLFFBQVE7b0JBQ3pELE1BQU1BO2dCQUNSO2dCQUVBLE1BQU0sSUFBSU4sYUFBYTtvQkFDckJXLFNBQVM7b0JBQ1RFLE9BQU9QO29CQUNQd0IsWUFBWVAsU0FBU1EsTUFBTTtvQkFDM0J4QjtvQkFDQW1CO29CQUNBbEIsbUJBQW1CLENBQUM7Z0JBQ3RCO1lBQ0Y7WUFFQSxNQUFNb0IsaUJBQWlCSSxLQUFLO1FBQzlCO1FBRUEsSUFBSTtZQUNGLE9BQU8sTUFBTVosMEJBQTBCO2dCQUNyQ0c7Z0JBQ0FoQjtnQkFDQUMsbUJBQW1CLENBQUM7WUFDdEI7UUFDRixFQUFFLE9BQU9GLE9BQU87WUFDZCxJQUFJQSxpQkFBaUIyQixPQUFPO2dCQUMxQixJQUFJL0IsYUFBYUksVUFBVU4sYUFBYTZCLFVBQVUsQ0FBQ3ZCLFFBQVE7b0JBQ3pELE1BQU1BO2dCQUNSO1lBQ0Y7WUFFQSxNQUFNLElBQUlOLGFBQWE7Z0JBQ3JCVyxTQUFTO2dCQUNURSxPQUFPUDtnQkFDUHdCLFlBQVlQLFNBQVNRLE1BQU07Z0JBQzNCeEI7Z0JBQ0FtQjtnQkFDQWxCLG1CQUFtQixDQUFDO1lBQ3RCO1FBQ0Y7SUFDRixFQUFFLE9BQU9GLE9BQU87UUFDZCxNQUFNRCxpQkFBaUI7WUFBRUM7WUFBT0M7WUFBS0MsbUJBQW1CLENBQUM7UUFBRTtJQUM3RDtBQUNGLEVBQUUifQ==
@@ -1,5 +1,5 @@
1
- import { Knex } from "knex";
2
- import { DBPreset } from "../database/db";
1
+ import type { Knex } from "knex";
2
+ import type { DBPreset } from "../database/db";
3
3
  import { UpsertBuilder } from "../database/upsert-builder";
4
4
  export declare abstract class BaseFrameClass {
5
5
  getDB(which: DBPreset): Knex;
@@ -1 +1 @@
1
- {"version":3,"file":"base-frame.d.ts","sourceRoot":"","sources":["../../src/api/base-frame.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAM,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,8BAAsB,cAAc;IAClC,KAAK,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAI5B,gBAAgB;CAGjB"}
1
+ {"version":3,"file":"base-frame.d.ts","sourceRoot":"","sources":["../../src/api/base-frame.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,8BAAsB,cAAc;IAClC,KAAK,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAI5B,gBAAgB;CAGjB"}
@@ -1,3 +1,4 @@
1
+ // Static imports kept for non-async functions (getDB, getUpsertBuilder)
1
2
  import { DB } from "../database/db.js";
2
3
  import { UpsertBuilder } from "../database/upsert-builder.js";
3
4
  export class BaseFrameClass {
@@ -9,4 +10,4 @@ export class BaseFrameClass {
9
10
  }
10
11
  }
11
12
 
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvYmFzZS1mcmFtZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBLbmV4IH0gZnJvbSBcImtuZXhcIjtcbmltcG9ydCB7IERCLCBEQlByZXNldCB9IGZyb20gXCIuLi9kYXRhYmFzZS9kYlwiO1xuaW1wb3J0IHsgVXBzZXJ0QnVpbGRlciB9IGZyb20gXCIuLi9kYXRhYmFzZS91cHNlcnQtYnVpbGRlclwiO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUZyYW1lQ2xhc3Mge1xuICBnZXREQih3aGljaDogREJQcmVzZXQpOiBLbmV4IHtcbiAgICByZXR1cm4gREIuZ2V0REIod2hpY2gpO1xuICB9XG5cbiAgZ2V0VXBzZXJ0QnVpbGRlcigpIHtcbiAgICByZXR1cm4gbmV3IFVwc2VydEJ1aWxkZXIoKTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkRCIiwiVXBzZXJ0QnVpbGRlciIsIkJhc2VGcmFtZUNsYXNzIiwiZ2V0REIiLCJ3aGljaCIsImdldFVwc2VydEJ1aWxkZXIiXSwibWFwcGluZ3MiOiJBQUNBLFNBQVNBLEVBQUUsUUFBa0Isb0JBQWlCO0FBQzlDLFNBQVNDLGFBQWEsUUFBUSxnQ0FBNkI7QUFFM0QsT0FBTyxNQUFlQztJQUNwQkMsTUFBTUMsS0FBZSxFQUFRO1FBQzNCLE9BQU9KLEdBQUdHLEtBQUssQ0FBQ0M7SUFDbEI7SUFFQUMsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSUo7SUFDYjtBQUNGIn0=
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvYmFzZS1mcmFtZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEtuZXggfSBmcm9tIFwia25leFwiO1xuaW1wb3J0IHR5cGUgeyBEQlByZXNldCB9IGZyb20gXCIuLi9kYXRhYmFzZS9kYlwiO1xuLy8gU3RhdGljIGltcG9ydHMga2VwdCBmb3Igbm9uLWFzeW5jIGZ1bmN0aW9ucyAoZ2V0REIsIGdldFVwc2VydEJ1aWxkZXIpXG5pbXBvcnQgeyBEQiB9IGZyb20gXCIuLi9kYXRhYmFzZS9kYlwiO1xuaW1wb3J0IHsgVXBzZXJ0QnVpbGRlciB9IGZyb20gXCIuLi9kYXRhYmFzZS91cHNlcnQtYnVpbGRlclwiO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUZyYW1lQ2xhc3Mge1xuICBnZXREQih3aGljaDogREJQcmVzZXQpOiBLbmV4IHtcbiAgICByZXR1cm4gREIuZ2V0REIod2hpY2gpO1xuICB9XG5cbiAgZ2V0VXBzZXJ0QnVpbGRlcigpIHtcbiAgICByZXR1cm4gbmV3IFVwc2VydEJ1aWxkZXIoKTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkRCIiwiVXBzZXJ0QnVpbGRlciIsIkJhc2VGcmFtZUNsYXNzIiwiZ2V0REIiLCJ3aGljaCIsImdldFVwc2VydEJ1aWxkZXIiXSwibWFwcGluZ3MiOiJBQUVBLHdFQUF3RTtBQUN4RSxTQUFTQSxFQUFFLFFBQVEsb0JBQWlCO0FBQ3BDLFNBQVNDLGFBQWEsUUFBUSxnQ0FBNkI7QUFFM0QsT0FBTyxNQUFlQztJQUNwQkMsTUFBTUMsS0FBZSxFQUFRO1FBQzNCLE9BQU9KLEdBQUdHLEtBQUssQ0FBQ0M7SUFDbEI7SUFFQUMsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSUo7SUFDYjtBQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"caster.d.ts","sourceRoot":"","sources":["../../src/api/caster.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAyB5C,wBAAgB,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,CAuDvD;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,wEAIrD"}
1
+ {"version":3,"file":"caster.d.ts","sourceRoot":"","sources":["../../src/api/caster.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AA0B5C,wBAAgB,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,CA8CvD;AAGD,wBAAgB,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,wEAKrD"}
@@ -18,6 +18,7 @@ function isZodNumberAnyway(zodType) {
18
18
  return false;
19
19
  }
20
20
  // ZodType을 이용해 raw를 Type Coercing
21
+ // biome-ignore lint/suspicious/noExplicitAny: 캐스팅에는 any가 필요함.
21
22
  export function caster(zodType, raw) {
22
23
  if (isZodNumberAnyway(zodType) && typeof raw === "string") {
23
24
  // number
@@ -27,6 +28,7 @@ export function caster(zodType, raw) {
27
28
  if (Array.isArray(raw)) {
28
29
  const numType = zodType.options.find((opt)=>isNumberType(opt));
29
30
  assert(numType !== undefined);
31
+ // biome-ignore lint/suspicious/noExplicitAny: 캐스팅에는 any가 필요함.
30
32
  return raw.map((elem)=>caster(numType, elem));
31
33
  } else {
32
34
  return Number(raw);
@@ -36,6 +38,7 @@ export function caster(zodType, raw) {
36
38
  return raw === "true";
37
39
  } else if (raw !== null && Array.isArray(raw) && zodType instanceof z.ZodArray) {
38
40
  // array
41
+ // biome-ignore lint/suspicious/noExplicitAny: 캐스팅에는 any가 필요함.
39
42
  return raw.map((elem)=>caster(zodType.element, elem));
40
43
  } else if (zodType instanceof z.ZodObject && typeof raw === "object" && raw !== null) {
41
44
  // object
@@ -57,10 +60,12 @@ export function caster(zodType, raw) {
57
60
  return raw;
58
61
  }
59
62
  }
63
+ // biome-ignore lint/suspicious/noExplicitAny: 캐스팅에는 any가 필요함.
60
64
  export function fastifyCaster(schema) {
65
+ // biome-ignore lint/suspicious/noExplicitAny: 캐스팅에는 any가 필요함.
61
66
  return z.preprocess((raw)=>{
62
67
  return caster(schema, raw);
63
68
  }, schema);
64
69
  }
65
70
 
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvY2FzdGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiO1xuaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcbmltcG9ydCB0eXBlIHsgJFpvZFR5cGUgfSBmcm9tIFwiem9kL3Y0L2NvcmVcIjtcblxuZnVuY3Rpb24gaXNOdW1iZXJUeXBlKHpvZFR5cGU6ICRab2RUeXBlKTogem9kVHlwZSBpcyB6LlpvZE51bWJlciB7XG4gIHJldHVybiB6b2RUeXBlIGluc3RhbmNlb2Ygei5ab2ROdW1iZXI7XG59XG5cbmZ1bmN0aW9uIGlzTnVsbE9yT3B0aW9uYWwoem9kVHlwZTogJFpvZFR5cGUpOiB6b2RUeXBlIGlzIHouWm9kTnVsbGFibGUgfCB6LlpvZE9wdGlvbmFsIHtcbiAgcmV0dXJuIHpvZFR5cGUgaW5zdGFuY2VvZiB6LlpvZE51bGxhYmxlIHx8IHpvZFR5cGUgaW5zdGFuY2VvZiB6LlpvZE9wdGlvbmFsO1xufVxuXG4vLyBvcHRpb25hbCwgbnVsbGFibGUg66y06rSA7ZWY6rKMIFpvZE51bWJlciDssrTtgaxcbmZ1bmN0aW9uIGlzWm9kTnVtYmVyQW55d2F5KHpvZFR5cGU6ICRab2RUeXBlKSB7XG4gIGlmIChpc051bWJlclR5cGUoem9kVHlwZSkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8vIFpvZE51bGxhYmxlIOuYkOuKlCBab2RPcHRpb25hbOydvCDrlYxcbiAgaWYgKGlzTnVsbE9yT3B0aW9uYWwoem9kVHlwZSkgJiYgaXNOdW1iZXJUeXBlKHpvZFR5cGUuZGVmLmlubmVyVHlwZSkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuLy8gWm9kVHlwZeydhCDsnbTsmqntlbQgcmF366W8IFR5cGUgQ29lcmNpbmdcbmV4cG9ydCBmdW5jdGlvbiBjYXN0ZXIoem9kVHlwZTogJFpvZFR5cGUsIHJhdzogYW55KTogYW55IHtcbiAgaWYgKGlzWm9kTnVtYmVyQW55d2F5KHpvZFR5cGUpICYmIHR5cGVvZiByYXcgPT09IFwic3RyaW5nXCIpIHtcbiAgICAvLyBudW1iZXJcbiAgICByZXR1cm4gTnVtYmVyKHJhdyk7XG4gIH0gZWxzZSBpZiAoXG4gICAgem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kVW5pb24gJiZcbiAgICB6b2RUeXBlLm9wdGlvbnMuc29tZSgob3B0KSA9PiBpc1pvZE51bWJlckFueXdheShvcHQpKVxuICApIHtcbiAgICAvLyB6QXJyYXlhYmxlIE51bWJlciDsvIDsnbTsiqQg7LKY66asXG4gICAgaWYgKEFycmF5LmlzQXJyYXkocmF3KSkge1xuICAgICAgY29uc3QgbnVtVHlwZSA9IHpvZFR5cGUub3B0aW9ucy5maW5kKG9wdCA9PiBpc051bWJlclR5cGUob3B0KSk7XG4gICAgICBhc3NlcnQobnVtVHlwZSAhPT0gdW5kZWZpbmVkKTtcbiAgICAgIHJldHVybiByYXcubWFwKChlbGVtOiBhbnkpID0+IGNhc3RlcihudW1UeXBlLCBlbGVtKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBOdW1iZXIocmF3KTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoXG4gICAgem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kQm9vbGVhbiAmJlxuICAgIChyYXcgPT09IFwidHJ1ZVwiIHx8IHJhdyA9PT0gXCJmYWxzZVwiKVxuICApIHtcbiAgICAvLyBib29sZWFuXG4gICAgcmV0dXJuIHJhdyA9PT0gXCJ0cnVlXCI7XG4gIH0gZWxzZSBpZiAoXG4gICAgcmF3ICE9PSBudWxsICYmXG4gICAgQXJyYXkuaXNBcnJheShyYXcpICYmXG4gICAgem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kQXJyYXlcbiAgKSB7XG4gICAgLy8gYXJyYXlcbiAgICByZXR1cm4gcmF3Lm1hcCgoZWxlbTogYW55KSA9PiBjYXN0ZXIoem9kVHlwZS5lbGVtZW50LCBlbGVtKSk7XG4gIH0gZWxzZSBpZiAoXG4gICAgem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kT2JqZWN0ICYmXG4gICAgdHlwZW9mIHJhdyA9PT0gXCJvYmplY3RcIiAmJlxuICAgIHJhdyAhPT0gbnVsbFxuICApIHtcbiAgICAvLyBvYmplY3RcbiAgICByZXR1cm4gT2JqZWN0LmtleXMocmF3KS5yZWR1Y2UoKHIsIHJhd0tleSkgPT4ge1xuICAgICAgcltyYXdLZXldID0gY2FzdGVyKHpvZFR5cGUuc2hhcGVbcmF3S2V5XSwgcmF3W3Jhd0tleV0pO1xuICAgICAgcmV0dXJuIHI7XG4gICAgfSwge30gYXMgYW55KTtcbiAgfSBlbHNlIGlmICh6b2RUeXBlIGluc3RhbmNlb2Ygei5ab2RPcHRpb25hbCkge1xuICAgIC8vIG9wdGlvbmFsXG4gICAgcmV0dXJuIGNhc3Rlcih6b2RUeXBlLmRlZi5pbm5lclR5cGUsIHJhdyk7XG4gIH0gZWxzZSBpZiAoem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kTnVsbGFibGUpIHtcbiAgICAvLyBudWxsYWJsZVxuICAgIHJldHVybiBjYXN0ZXIoem9kVHlwZS5kZWYuaW5uZXJUeXBlLCByYXcpO1xuICB9IGVsc2UgaWYgKFxuICAgIHpvZFR5cGUgaW5zdGFuY2VvZiB6LlpvZERhdGUgJiZcbiAgICBuZXcgRGF0ZShyYXcpLnRvU3RyaW5nKCkgIT09IFwiSW52YWxpZCBEYXRlXCJcbiAgKSB7XG4gICAgLy8gZGF0ZVxuICAgIHJldHVybiBuZXcgRGF0ZShyYXcpO1xuICB9IGVsc2Uge1xuICAgIC8vIOuCmOuouOyngOuKlCDsspjrpqwg7JWI7ZWoXG4gICAgcmV0dXJuIHJhdztcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZmFzdGlmeUNhc3RlcihzY2hlbWE6IHouWm9kT2JqZWN0PGFueT4pIHtcbiAgcmV0dXJuIHoucHJlcHJvY2VzcygocmF3OiBhbnkpID0+IHtcbiAgICByZXR1cm4gY2FzdGVyKHNjaGVtYSwgcmF3KTtcbiAgfSwgc2NoZW1hKTtcbn1cbiJdLCJuYW1lcyI6WyJhc3NlcnQiLCJ6IiwiaXNOdW1iZXJUeXBlIiwiem9kVHlwZSIsIlpvZE51bWJlciIsImlzTnVsbE9yT3B0aW9uYWwiLCJab2ROdWxsYWJsZSIsIlpvZE9wdGlvbmFsIiwiaXNab2ROdW1iZXJBbnl3YXkiLCJkZWYiLCJpbm5lclR5cGUiLCJjYXN0ZXIiLCJyYXciLCJOdW1iZXIiLCJab2RVbmlvbiIsIm9wdGlvbnMiLCJzb21lIiwib3B0IiwiQXJyYXkiLCJpc0FycmF5IiwibnVtVHlwZSIsImZpbmQiLCJ1bmRlZmluZWQiLCJtYXAiLCJlbGVtIiwiWm9kQm9vbGVhbiIsIlpvZEFycmF5IiwiZWxlbWVudCIsIlpvZE9iamVjdCIsIk9iamVjdCIsImtleXMiLCJyZWR1Y2UiLCJyIiwicmF3S2V5Iiwic2hhcGUiLCJab2REYXRlIiwiRGF0ZSIsInRvU3RyaW5nIiwiZmFzdGlmeUNhc3RlciIsInNjaGVtYSIsInByZXByb2Nlc3MiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFlBQVksU0FBUztBQUM1QixTQUFTQyxDQUFDLFFBQVEsTUFBTTtBQUd4QixTQUFTQyxhQUFhQyxPQUFpQjtJQUNyQyxPQUFPQSxtQkFBbUJGLEVBQUVHLFNBQVM7QUFDdkM7QUFFQSxTQUFTQyxpQkFBaUJGLE9BQWlCO0lBQ3pDLE9BQU9BLG1CQUFtQkYsRUFBRUssV0FBVyxJQUFJSCxtQkFBbUJGLEVBQUVNLFdBQVc7QUFDN0U7QUFFQSx1Q0FBdUM7QUFDdkMsU0FBU0Msa0JBQWtCTCxPQUFpQjtJQUMxQyxJQUFJRCxhQUFhQyxVQUFVO1FBQ3pCLE9BQU87SUFDVDtJQUVBLGdDQUFnQztJQUNoQyxJQUFJRSxpQkFBaUJGLFlBQVlELGFBQWFDLFFBQVFNLEdBQUcsQ0FBQ0MsU0FBUyxHQUFHO1FBQ3BFLE9BQU87SUFDVDtJQUVBLE9BQU87QUFDVDtBQUVBLGtDQUFrQztBQUNsQyxPQUFPLFNBQVNDLE9BQU9SLE9BQWlCLEVBQUVTLEdBQVE7SUFDaEQsSUFBSUosa0JBQWtCTCxZQUFZLE9BQU9TLFFBQVEsVUFBVTtRQUN6RCxTQUFTO1FBQ1QsT0FBT0MsT0FBT0Q7SUFDaEIsT0FBTyxJQUNMVCxtQkFBbUJGLEVBQUVhLFFBQVEsSUFDN0JYLFFBQVFZLE9BQU8sQ0FBQ0MsSUFBSSxDQUFDLENBQUNDLE1BQVFULGtCQUFrQlMsT0FDaEQ7UUFDQSwyQkFBMkI7UUFDM0IsSUFBSUMsTUFBTUMsT0FBTyxDQUFDUCxNQUFNO1lBQ3RCLE1BQU1RLFVBQVVqQixRQUFRWSxPQUFPLENBQUNNLElBQUksQ0FBQ0osQ0FBQUEsTUFBT2YsYUFBYWU7WUFDekRqQixPQUFPb0IsWUFBWUU7WUFDbkIsT0FBT1YsSUFBSVcsR0FBRyxDQUFDLENBQUNDLE9BQWNiLE9BQU9TLFNBQVNJO1FBQ2hELE9BQU87WUFDTCxPQUFPWCxPQUFPRDtRQUNoQjtJQUNGLE9BQU8sSUFDTFQsbUJBQW1CRixFQUFFd0IsVUFBVSxJQUM5QmIsQ0FBQUEsUUFBUSxVQUFVQSxRQUFRLE9BQU0sR0FDakM7UUFDQSxVQUFVO1FBQ1YsT0FBT0EsUUFBUTtJQUNqQixPQUFPLElBQ0xBLFFBQVEsUUFDUk0sTUFBTUMsT0FBTyxDQUFDUCxRQUNkVCxtQkFBbUJGLEVBQUV5QixRQUFRLEVBQzdCO1FBQ0EsUUFBUTtRQUNSLE9BQU9kLElBQUlXLEdBQUcsQ0FBQyxDQUFDQyxPQUFjYixPQUFPUixRQUFRd0IsT0FBTyxFQUFFSDtJQUN4RCxPQUFPLElBQ0xyQixtQkFBbUJGLEVBQUUyQixTQUFTLElBQzlCLE9BQU9oQixRQUFRLFlBQ2ZBLFFBQVEsTUFDUjtRQUNBLFNBQVM7UUFDVCxPQUFPaUIsT0FBT0MsSUFBSSxDQUFDbEIsS0FBS21CLE1BQU0sQ0FBQyxDQUFDQyxHQUFHQztZQUNqQ0QsQ0FBQyxDQUFDQyxPQUFPLEdBQUd0QixPQUFPUixRQUFRK0IsS0FBSyxDQUFDRCxPQUFPLEVBQUVyQixHQUFHLENBQUNxQixPQUFPO1lBQ3JELE9BQU9EO1FBQ1QsR0FBRyxDQUFDO0lBQ04sT0FBTyxJQUFJN0IsbUJBQW1CRixFQUFFTSxXQUFXLEVBQUU7UUFDM0MsV0FBVztRQUNYLE9BQU9JLE9BQU9SLFFBQVFNLEdBQUcsQ0FBQ0MsU0FBUyxFQUFFRTtJQUN2QyxPQUFPLElBQUlULG1CQUFtQkYsRUFBRUssV0FBVyxFQUFFO1FBQzNDLFdBQVc7UUFDWCxPQUFPSyxPQUFPUixRQUFRTSxHQUFHLENBQUNDLFNBQVMsRUFBRUU7SUFDdkMsT0FBTyxJQUNMVCxtQkFBbUJGLEVBQUVrQyxPQUFPLElBQzVCLElBQUlDLEtBQUt4QixLQUFLeUIsUUFBUSxPQUFPLGdCQUM3QjtRQUNBLE9BQU87UUFDUCxPQUFPLElBQUlELEtBQUt4QjtJQUNsQixPQUFPO1FBQ0wsYUFBYTtRQUNiLE9BQU9BO0lBQ1Q7QUFDRjtBQUVBLE9BQU8sU0FBUzBCLGNBQWNDLE1BQXdCO0lBQ3BELE9BQU90QyxFQUFFdUMsVUFBVSxDQUFDLENBQUM1QjtRQUNuQixPQUFPRCxPQUFPNEIsUUFBUTNCO0lBQ3hCLEdBQUcyQjtBQUNMIn0=
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvY2FzdGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiO1xuaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcbmltcG9ydCB0eXBlIHsgJFpvZFR5cGUgfSBmcm9tIFwiem9kL3Y0L2NvcmVcIjtcblxuZnVuY3Rpb24gaXNOdW1iZXJUeXBlKHpvZFR5cGU6ICRab2RUeXBlKTogem9kVHlwZSBpcyB6LlpvZE51bWJlciB7XG4gIHJldHVybiB6b2RUeXBlIGluc3RhbmNlb2Ygei5ab2ROdW1iZXI7XG59XG5cbmZ1bmN0aW9uIGlzTnVsbE9yT3B0aW9uYWwoem9kVHlwZTogJFpvZFR5cGUpOiB6b2RUeXBlIGlzIHouWm9kTnVsbGFibGUgfCB6LlpvZE9wdGlvbmFsIHtcbiAgcmV0dXJuIHpvZFR5cGUgaW5zdGFuY2VvZiB6LlpvZE51bGxhYmxlIHx8IHpvZFR5cGUgaW5zdGFuY2VvZiB6LlpvZE9wdGlvbmFsO1xufVxuXG4vLyBvcHRpb25hbCwgbnVsbGFibGUg66y06rSA7ZWY6rKMIFpvZE51bWJlciDssrTtgaxcbmZ1bmN0aW9uIGlzWm9kTnVtYmVyQW55d2F5KHpvZFR5cGU6ICRab2RUeXBlKSB7XG4gIGlmIChpc051bWJlclR5cGUoem9kVHlwZSkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8vIFpvZE51bGxhYmxlIOuYkOuKlCBab2RPcHRpb25hbOydvCDrlYxcbiAgaWYgKGlzTnVsbE9yT3B0aW9uYWwoem9kVHlwZSkgJiYgaXNOdW1iZXJUeXBlKHpvZFR5cGUuZGVmLmlubmVyVHlwZSkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuLy8gWm9kVHlwZeydhCDsnbTsmqntlbQgcmF366W8IFR5cGUgQ29lcmNpbmdcbi8vIGJpb21lLWlnbm9yZSBsaW50L3N1c3BpY2lvdXMvbm9FeHBsaWNpdEFueTog7LqQ7Iqk7YyF7JeQ64qUIGFueeqwgCDtlYTsmpTtlaguXG5leHBvcnQgZnVuY3Rpb24gY2FzdGVyKHpvZFR5cGU6ICRab2RUeXBlLCByYXc6IGFueSk6IGFueSB7XG4gIGlmIChpc1pvZE51bWJlckFueXdheSh6b2RUeXBlKSAmJiB0eXBlb2YgcmF3ID09PSBcInN0cmluZ1wiKSB7XG4gICAgLy8gbnVtYmVyXG4gICAgcmV0dXJuIE51bWJlcihyYXcpO1xuICB9IGVsc2UgaWYgKFxuICAgIHpvZFR5cGUgaW5zdGFuY2VvZiB6LlpvZFVuaW9uICYmXG4gICAgem9kVHlwZS5vcHRpb25zLnNvbWUoKG9wdCkgPT4gaXNab2ROdW1iZXJBbnl3YXkob3B0KSlcbiAgKSB7XG4gICAgLy8gekFycmF5YWJsZSBOdW1iZXIg7LyA7J207IqkIOyymOumrFxuICAgIGlmIChBcnJheS5pc0FycmF5KHJhdykpIHtcbiAgICAgIGNvbnN0IG51bVR5cGUgPSB6b2RUeXBlLm9wdGlvbnMuZmluZCgob3B0KSA9PiBpc051bWJlclR5cGUob3B0KSk7XG4gICAgICBhc3NlcnQobnVtVHlwZSAhPT0gdW5kZWZpbmVkKTtcbiAgICAgIC8vIGJpb21lLWlnbm9yZSBsaW50L3N1c3BpY2lvdXMvbm9FeHBsaWNpdEFueTog7LqQ7Iqk7YyF7JeQ64qUIGFueeqwgCDtlYTsmpTtlaguXG4gICAgICByZXR1cm4gcmF3Lm1hcCgoZWxlbTogYW55KSA9PiBjYXN0ZXIobnVtVHlwZSwgZWxlbSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gTnVtYmVyKHJhdyk7XG4gICAgfVxuICB9IGVsc2UgaWYgKHpvZFR5cGUgaW5zdGFuY2VvZiB6LlpvZEJvb2xlYW4gJiYgKHJhdyA9PT0gXCJ0cnVlXCIgfHwgcmF3ID09PSBcImZhbHNlXCIpKSB7XG4gICAgLy8gYm9vbGVhblxuICAgIHJldHVybiByYXcgPT09IFwidHJ1ZVwiO1xuICB9IGVsc2UgaWYgKHJhdyAhPT0gbnVsbCAmJiBBcnJheS5pc0FycmF5KHJhdykgJiYgem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kQXJyYXkpIHtcbiAgICAvLyBhcnJheVxuICAgIC8vIGJpb21lLWlnbm9yZSBsaW50L3N1c3BpY2lvdXMvbm9FeHBsaWNpdEFueTog7LqQ7Iqk7YyF7JeQ64qUIGFueeqwgCDtlYTsmpTtlaguXG4gICAgcmV0dXJuIHJhdy5tYXAoKGVsZW06IGFueSkgPT4gY2FzdGVyKHpvZFR5cGUuZWxlbWVudCwgZWxlbSkpO1xuICB9IGVsc2UgaWYgKHpvZFR5cGUgaW5zdGFuY2VvZiB6LlpvZE9iamVjdCAmJiB0eXBlb2YgcmF3ID09PSBcIm9iamVjdFwiICYmIHJhdyAhPT0gbnVsbCkge1xuICAgIC8vIG9iamVjdFxuICAgIHJldHVybiBPYmplY3Qua2V5cyhyYXcpLnJlZHVjZShcbiAgICAgIChyLCByYXdLZXkpID0+IHtcbiAgICAgICAgcltyYXdLZXldID0gY2FzdGVyKHpvZFR5cGUuc2hhcGVbcmF3S2V5XSwgcmF3W3Jhd0tleV0pO1xuICAgICAgICByZXR1cm4gcjtcbiAgICAgIH0sXG4gICAgICB7fSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICApO1xuICB9IGVsc2UgaWYgKHpvZFR5cGUgaW5zdGFuY2VvZiB6LlpvZE9wdGlvbmFsKSB7XG4gICAgLy8gb3B0aW9uYWxcbiAgICByZXR1cm4gY2FzdGVyKHpvZFR5cGUuZGVmLmlubmVyVHlwZSwgcmF3KTtcbiAgfSBlbHNlIGlmICh6b2RUeXBlIGluc3RhbmNlb2Ygei5ab2ROdWxsYWJsZSkge1xuICAgIC8vIG51bGxhYmxlXG4gICAgcmV0dXJuIGNhc3Rlcih6b2RUeXBlLmRlZi5pbm5lclR5cGUsIHJhdyk7XG4gIH0gZWxzZSBpZiAoem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kRGF0ZSAmJiBuZXcgRGF0ZShyYXcpLnRvU3RyaW5nKCkgIT09IFwiSW52YWxpZCBEYXRlXCIpIHtcbiAgICAvLyBkYXRlXG4gICAgcmV0dXJuIG5ldyBEYXRlKHJhdyk7XG4gIH0gZWxzZSB7XG4gICAgLy8g64KY66i47KeA64qUIOyymOumrCDslYjtlahcbiAgICByZXR1cm4gcmF3O1xuICB9XG59XG5cbi8vIGJpb21lLWlnbm9yZSBsaW50L3N1c3BpY2lvdXMvbm9FeHBsaWNpdEFueTog7LqQ7Iqk7YyF7JeQ64qUIGFueeqwgCDtlYTsmpTtlaguXG5leHBvcnQgZnVuY3Rpb24gZmFzdGlmeUNhc3RlcihzY2hlbWE6IHouWm9kT2JqZWN0PGFueT4pIHtcbiAgLy8gYmlvbWUtaWdub3JlIGxpbnQvc3VzcGljaW91cy9ub0V4cGxpY2l0QW55OiDsupDsiqTtjIXsl5DripQgYW556rCAIO2VhOyalO2VqC5cbiAgcmV0dXJuIHoucHJlcHJvY2VzcygocmF3OiBhbnkpID0+IHtcbiAgICByZXR1cm4gY2FzdGVyKHNjaGVtYSwgcmF3KTtcbiAgfSwgc2NoZW1hKTtcbn1cbiJdLCJuYW1lcyI6WyJhc3NlcnQiLCJ6IiwiaXNOdW1iZXJUeXBlIiwiem9kVHlwZSIsIlpvZE51bWJlciIsImlzTnVsbE9yT3B0aW9uYWwiLCJab2ROdWxsYWJsZSIsIlpvZE9wdGlvbmFsIiwiaXNab2ROdW1iZXJBbnl3YXkiLCJkZWYiLCJpbm5lclR5cGUiLCJjYXN0ZXIiLCJyYXciLCJOdW1iZXIiLCJab2RVbmlvbiIsIm9wdGlvbnMiLCJzb21lIiwib3B0IiwiQXJyYXkiLCJpc0FycmF5IiwibnVtVHlwZSIsImZpbmQiLCJ1bmRlZmluZWQiLCJtYXAiLCJlbGVtIiwiWm9kQm9vbGVhbiIsIlpvZEFycmF5IiwiZWxlbWVudCIsIlpvZE9iamVjdCIsIk9iamVjdCIsImtleXMiLCJyZWR1Y2UiLCJyIiwicmF3S2V5Iiwic2hhcGUiLCJab2REYXRlIiwiRGF0ZSIsInRvU3RyaW5nIiwiZmFzdGlmeUNhc3RlciIsInNjaGVtYSIsInByZXByb2Nlc3MiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFlBQVksU0FBUztBQUM1QixTQUFTQyxDQUFDLFFBQVEsTUFBTTtBQUd4QixTQUFTQyxhQUFhQyxPQUFpQjtJQUNyQyxPQUFPQSxtQkFBbUJGLEVBQUVHLFNBQVM7QUFDdkM7QUFFQSxTQUFTQyxpQkFBaUJGLE9BQWlCO0lBQ3pDLE9BQU9BLG1CQUFtQkYsRUFBRUssV0FBVyxJQUFJSCxtQkFBbUJGLEVBQUVNLFdBQVc7QUFDN0U7QUFFQSx1Q0FBdUM7QUFDdkMsU0FBU0Msa0JBQWtCTCxPQUFpQjtJQUMxQyxJQUFJRCxhQUFhQyxVQUFVO1FBQ3pCLE9BQU87SUFDVDtJQUVBLGdDQUFnQztJQUNoQyxJQUFJRSxpQkFBaUJGLFlBQVlELGFBQWFDLFFBQVFNLEdBQUcsQ0FBQ0MsU0FBUyxHQUFHO1FBQ3BFLE9BQU87SUFDVDtJQUVBLE9BQU87QUFDVDtBQUVBLGtDQUFrQztBQUNsQyw4REFBOEQ7QUFDOUQsT0FBTyxTQUFTQyxPQUFPUixPQUFpQixFQUFFUyxHQUFRO0lBQ2hELElBQUlKLGtCQUFrQkwsWUFBWSxPQUFPUyxRQUFRLFVBQVU7UUFDekQsU0FBUztRQUNULE9BQU9DLE9BQU9EO0lBQ2hCLE9BQU8sSUFDTFQsbUJBQW1CRixFQUFFYSxRQUFRLElBQzdCWCxRQUFRWSxPQUFPLENBQUNDLElBQUksQ0FBQyxDQUFDQyxNQUFRVCxrQkFBa0JTLE9BQ2hEO1FBQ0EsMkJBQTJCO1FBQzNCLElBQUlDLE1BQU1DLE9BQU8sQ0FBQ1AsTUFBTTtZQUN0QixNQUFNUSxVQUFVakIsUUFBUVksT0FBTyxDQUFDTSxJQUFJLENBQUMsQ0FBQ0osTUFBUWYsYUFBYWU7WUFDM0RqQixPQUFPb0IsWUFBWUU7WUFDbkIsOERBQThEO1lBQzlELE9BQU9WLElBQUlXLEdBQUcsQ0FBQyxDQUFDQyxPQUFjYixPQUFPUyxTQUFTSTtRQUNoRCxPQUFPO1lBQ0wsT0FBT1gsT0FBT0Q7UUFDaEI7SUFDRixPQUFPLElBQUlULG1CQUFtQkYsRUFBRXdCLFVBQVUsSUFBS2IsQ0FBQUEsUUFBUSxVQUFVQSxRQUFRLE9BQU0sR0FBSTtRQUNqRixVQUFVO1FBQ1YsT0FBT0EsUUFBUTtJQUNqQixPQUFPLElBQUlBLFFBQVEsUUFBUU0sTUFBTUMsT0FBTyxDQUFDUCxRQUFRVCxtQkFBbUJGLEVBQUV5QixRQUFRLEVBQUU7UUFDOUUsUUFBUTtRQUNSLDhEQUE4RDtRQUM5RCxPQUFPZCxJQUFJVyxHQUFHLENBQUMsQ0FBQ0MsT0FBY2IsT0FBT1IsUUFBUXdCLE9BQU8sRUFBRUg7SUFDeEQsT0FBTyxJQUFJckIsbUJBQW1CRixFQUFFMkIsU0FBUyxJQUFJLE9BQU9oQixRQUFRLFlBQVlBLFFBQVEsTUFBTTtRQUNwRixTQUFTO1FBQ1QsT0FBT2lCLE9BQU9DLElBQUksQ0FBQ2xCLEtBQUttQixNQUFNLENBQzVCLENBQUNDLEdBQUdDO1lBQ0ZELENBQUMsQ0FBQ0MsT0FBTyxHQUFHdEIsT0FBT1IsUUFBUStCLEtBQUssQ0FBQ0QsT0FBTyxFQUFFckIsR0FBRyxDQUFDcUIsT0FBTztZQUNyRCxPQUFPRDtRQUNULEdBQ0EsQ0FBQztJQUVMLE9BQU8sSUFBSTdCLG1CQUFtQkYsRUFBRU0sV0FBVyxFQUFFO1FBQzNDLFdBQVc7UUFDWCxPQUFPSSxPQUFPUixRQUFRTSxHQUFHLENBQUNDLFNBQVMsRUFBRUU7SUFDdkMsT0FBTyxJQUFJVCxtQkFBbUJGLEVBQUVLLFdBQVcsRUFBRTtRQUMzQyxXQUFXO1FBQ1gsT0FBT0ssT0FBT1IsUUFBUU0sR0FBRyxDQUFDQyxTQUFTLEVBQUVFO0lBQ3ZDLE9BQU8sSUFBSVQsbUJBQW1CRixFQUFFa0MsT0FBTyxJQUFJLElBQUlDLEtBQUt4QixLQUFLeUIsUUFBUSxPQUFPLGdCQUFnQjtRQUN0RixPQUFPO1FBQ1AsT0FBTyxJQUFJRCxLQUFLeEI7SUFDbEIsT0FBTztRQUNMLGFBQWE7UUFDYixPQUFPQTtJQUNUO0FBQ0Y7QUFFQSw4REFBOEQ7QUFDOUQsT0FBTyxTQUFTMEIsY0FBY0MsTUFBd0I7SUFDcEQsOERBQThEO0lBQzlELE9BQU90QyxFQUFFdUMsVUFBVSxDQUFDLENBQUM1QjtRQUNuQixPQUFPRCxPQUFPNEIsUUFBUTNCO0lBQ3hCLEdBQUcyQjtBQUNMIn0=
@@ -1,26 +1,70 @@
1
+ /**
2
+ * code-converters는 API 타입 정의들을 Zod 객체나 TypeScript 코드로 변환하는 함수들을 제공합니다.
3
+ *
4
+ * 1. API 시리즈들:
5
+ * - ExtendedApi, ApiParam, ApiParamType
6
+ * - API 메타데이터를 표현하는 타입 정의들
7
+ *
8
+ * 2. ZodObject 변환
9
+ * - API 타입 정의 → Zod 타입 인스턴스 (런타임 밸리데이션용)
10
+ * - getZodTypeFromApiParamType → getZodObjectFromApiParams → getZodObjectFromApi
11
+ *
12
+ * 3. TsTypeDef 변환
13
+ * - API 타입 정의 → TypeScript 타입 코드 문자열 (코드 생성용)
14
+ * - apiParamTypeToTsType → apiParamToTsCode, apiParamToTsCodeAsObject
15
+ *
16
+ * 참고:
17
+ * - ZodTypeDef 생성 (Zod 코드 문자열): zod-converter.ts의 zodTypeToZodCode 사용
18
+ * - EntityProp 변환: zod-converter.ts 참조
19
+ */
1
20
  import { z } from "zod";
2
21
  import type { $ZodLooseShape } from "zod/v4/core";
3
- import { ApiParam, ApiParamType, EntityProp, EntityPropNode, TextProp } from "../types/types";
4
- import { ExtendedApi } from "./decorators";
22
+ import { type ApiParam, ApiParamType } from "../types/types";
23
+ import type { ExtendedApi } from "./decorators";
5
24
  type AnyZodObject = z.ZodObject<$ZodLooseShape>;
6
- export declare function getZodObjectFromApi(api: ExtendedApi, references?: {
25
+ /**
26
+ * Promise 타입을 한 번 언래핑하여 내부 타입을 반환합니다.
27
+ * Promise가 아닌 경우 원본 타입을 그대로 반환합니다.
28
+ */
29
+ export declare function unwrapPromiseOnce(paramType: ApiParamType): ApiParamType | undefined;
30
+ /**
31
+ * ApiParamType을 Zod 타입 인스턴스로 변환합니다.
32
+ * string, number, array, union 등 모든 ApiParamType을 처리하며,
33
+ * 순환참조가 발생하는 경우 z.unknown()으로 fallback합니다.
34
+ */
35
+ export declare function getZodTypeFromApiParamType(paramType: ApiParamType, references: {
7
36
  [id: string]: AnyZodObject;
8
- }): z.ZodObject<z.core.$ZodLooseShape, z.core.$strip>;
37
+ }): z.ZodType<unknown>;
38
+ /**
39
+ * ApiParam 배열을 ZodObject로 변환합니다.
40
+ * 각 파라미터의 optional 여부를 반영하여 Zod 스키마를 생성합니다.
41
+ */
9
42
  export declare function getZodObjectFromApiParams(apiParams: ApiParam[], references?: {
10
43
  [id: string]: AnyZodObject;
11
44
  }): z.ZodObject;
12
- export declare function getZodTypeFromApiParamType(paramType: ApiParamType, references: {
45
+ /**
46
+ * ExtendedApi를 ZodObject로 변환합니다.
47
+ * TypeParameter와 일반 파라미터를 처리하며,
48
+ * Context, RefKnex, _로 시작하는 optional 파라미터는 제외합니다.
49
+ */
50
+ export declare function getZodObjectFromApi(api: ExtendedApi, references?: {
13
51
  [id: string]: AnyZodObject;
14
- }): z.ZodType<unknown>;
15
- export declare function propNodeToZodTypeDef(propNode: EntityPropNode, injectImportKeys: string[]): string;
16
- export declare function getTextTypeLength(textType: TextProp["textType"]): number;
17
- export declare function propToZodTypeDef(prop: EntityProp, injectImportKeys: string[]): string;
18
- export declare function zodTypeToZodCode(zt: z.ZodType): string;
52
+ }): z.ZodObject<z.core.$ZodLooseShape, z.core.$strip>;
53
+ /**
54
+ * ApiParamType을 TypeScript 타입 문자열로 변환합니다.
55
+ * union, intersection, array, ref 모든 타입을 TS 문법으로 표현하며,
56
+ * import가 필요한 타입 ID는 injectImportKeys에 수집합니다.
57
+ */
58
+ export declare function apiParamTypeToTsType(paramType: ApiParamType, injectImportKeys: string[]): string;
59
+ /**
60
+ * ApiParam 배열을 TypeScript 함수 파라미터 코드로 변환합니다.
61
+ * 예: "name: string, age?: number, active: boolean = true"
62
+ */
19
63
  export declare function apiParamToTsCode(params: ApiParam[], injectImportKeys: string[]): string;
64
+ /**
65
+ * ApiParam 배열을 TypeScript 객체 타입 코드로 변환합니다.
66
+ * 예: "{ name: string, age?: number, active: boolean = true }"
67
+ */
20
68
  export declare function apiParamToTsCodeAsObject(params: ApiParam[], injectImportKeys: string[]): string;
21
- export declare function apiParamTypeToTsType(paramType: ApiParamType, injectImportKeys: string[]): string;
22
- export declare function unwrapPromiseOnce(paramType: ApiParamType): ApiParamType;
23
- export declare function serializeZodType(zt: z.ZodType): any;
24
- export declare function zodTypeToTsTypeDef(zt: z.ZodType): string;
25
69
  export {};
26
70
  //# sourceMappingURL=code-converters.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"code-converters.d.ts","sourceRoot":"","sources":["../../src/api/code-converters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,cAAc,EACd,QAAQ,EAoBT,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAK3C,KAAK,YAAY,GAAG,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;AAWhD,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,WAAW,EAChB,UAAU,GAAE;IACV,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,CAAC;CACvB,qDAwBP;AAKD,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,QAAQ,EAAE,EACrB,UAAU,GAAE;IACV,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,CAAC;CACvB,GACL,CAAC,CAAC,SAAS,CAab;AAKD,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,YAAY,EACvB,UAAU,EAAE;IACV,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,CAAC;CAC5B,GACA,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAwIpB;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,cAAc,EACxB,gBAAgB,EAAE,MAAM,EAAE,GACzB,MAAM,CA8BR;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,MAAM,CASxE;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,UAAU,EAChB,gBAAgB,EAAE,MAAM,EAAE,GACzB,MAAM,CAyDR;AAGD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,GAAG,MAAM,CAyFtD;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,QAAQ,EAAE,EAClB,gBAAgB,EAAE,MAAM,EAAE,GACzB,MAAM,CAUR;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,QAAQ,EAAE,EAClB,gBAAgB,EAAE,MAAM,EAAE,GACzB,MAAM,CAUR;AAED,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,YAAY,EACvB,gBAAgB,EAAE,MAAM,EAAE,GACzB,MAAM,CAsER;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,YAAY,gBAMxD;AAGD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,GAAG,GAAG,CAuEnD;AAGD,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,GAAG,MAAM,CA8DxD"}
1
+ {"version":3,"file":"code-converters.d.ts","sourceRoot":"","sources":["../../src/api/code-converters.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,KAAK,QAAQ,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,KAAK,YAAY,GAAG,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;AAGhD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,YAAY,4BAMxD;AAMD;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,YAAY,EACvB,UAAU,EAAE;IACV,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,CAAC;CAC5B,GACA,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CA6HpB;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,QAAQ,EAAE,EACrB,UAAU,GAAE;IACV,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,CAAC;CACvB,GACL,CAAC,CAAC,SAAS,CAYb;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,WAAW,EAChB,UAAU,GAAE;IACV,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,CAAC;CACvB,qDAsBP;AAMD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,MAAM,CAwDhG;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,MAAM,CAUvF;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,MAAM,CAU/F"}