sonamu 0.8.26 → 0.9.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 (684) hide show
  1. package/bin/cli.js +60 -13
  2. package/dist/_virtual/rolldown_runtime.js +39 -0
  3. package/dist/ai/agents/agent.d.ts +3 -3
  4. package/dist/ai/agents/agent.d.ts.map +1 -1
  5. package/dist/ai/agents/agent.js +76 -73
  6. package/dist/ai/agents/index.js +3 -3
  7. package/dist/ai/agents/types.d.ts +3 -3
  8. package/dist/ai/agents/types.d.ts.map +1 -1
  9. package/dist/ai/agents/types.js +1 -3
  10. package/dist/ai/index.js +3 -2
  11. package/dist/ai/providers/rtzr/api.js +25 -25
  12. package/dist/ai/providers/rtzr/error.js +25 -26
  13. package/dist/ai/providers/rtzr/index.js +5 -5
  14. package/dist/ai/providers/rtzr/model.d.ts +1 -1
  15. package/dist/ai/providers/rtzr/model.d.ts.map +1 -1
  16. package/dist/ai/providers/rtzr/model.js +117 -133
  17. package/dist/ai/providers/rtzr/options.d.ts.map +1 -1
  18. package/dist/ai/providers/rtzr/options.js +35 -41
  19. package/dist/ai/providers/rtzr/provider.d.ts +1 -1
  20. package/dist/ai/providers/rtzr/provider.d.ts.map +1 -1
  21. package/dist/ai/providers/rtzr/provider.js +53 -51
  22. package/dist/ai/providers/rtzr/utils.d.ts.map +1 -1
  23. package/dist/ai/providers/rtzr/utils.js +84 -84
  24. package/dist/api/base-frame.d.ts +2 -2
  25. package/dist/api/base-frame.d.ts.map +1 -1
  26. package/dist/api/base-frame.js +29 -19
  27. package/dist/api/caster.d.ts +1 -1
  28. package/dist/api/caster.d.ts.map +1 -1
  29. package/dist/api/caster.js +51 -61
  30. package/dist/api/code-converters.d.ts +4 -3
  31. package/dist/api/code-converters.d.ts.map +1 -1
  32. package/dist/api/code-converters.js +226 -249
  33. package/dist/api/config.d.ts +17 -17
  34. package/dist/api/config.d.ts.map +1 -1
  35. package/dist/api/config.js +37 -30
  36. package/dist/api/context.d.ts +10 -10
  37. package/dist/api/context.d.ts.map +1 -1
  38. package/dist/api/context.js +8 -2
  39. package/dist/api/decorators.d.ts +8 -8
  40. package/dist/api/decorators.d.ts.map +1 -1
  41. package/dist/api/decorators.js +245 -268
  42. package/dist/api/index.js +39 -7
  43. package/dist/api/secret.js +22 -15
  44. package/dist/api/sonamu.d.ts +15 -15
  45. package/dist/api/sonamu.d.ts.map +1 -1
  46. package/dist/api/sonamu.js +1012 -1131
  47. package/dist/api/validator.js +88 -79
  48. package/dist/auth/auth-generator.d.ts.map +1 -1
  49. package/dist/auth/auth-generator.js +203 -200
  50. package/dist/auth/better-auth-entities.d.ts +2 -2
  51. package/dist/auth/better-auth-entities.d.ts.map +1 -1
  52. package/dist/auth/better-auth-entities.js +369 -429
  53. package/dist/auth/index.js +21 -6
  54. package/dist/auth/knex-adapter.d.ts +2 -2
  55. package/dist/auth/knex-adapter.d.ts.map +1 -1
  56. package/dist/auth/knex-adapter.js +153 -157
  57. package/dist/auth/plugins/entity-definitions/admin.d.ts +1 -1
  58. package/dist/auth/plugins/entity-definitions/admin.d.ts.map +1 -1
  59. package/dist/auth/plugins/entity-definitions/admin.js +58 -56
  60. package/dist/auth/plugins/entity-definitions/anonymous.d.ts +1 -1
  61. package/dist/auth/plugins/entity-definitions/anonymous.d.ts.map +1 -1
  62. package/dist/auth/plugins/entity-definitions/anonymous.js +20 -20
  63. package/dist/auth/plugins/entity-definitions/api-key.d.ts +1 -1
  64. package/dist/auth/plugins/entity-definitions/api-key.d.ts.map +1 -1
  65. package/dist/auth/plugins/entity-definitions/api-key.js +185 -196
  66. package/dist/auth/plugins/entity-definitions/index.d.ts +1 -1
  67. package/dist/auth/plugins/entity-definitions/index.d.ts.map +1 -1
  68. package/dist/auth/plugins/entity-definitions/index.js +26 -29
  69. package/dist/auth/plugins/entity-definitions/jwt.d.ts +1 -1
  70. package/dist/auth/plugins/entity-definitions/jwt.d.ts.map +1 -1
  71. package/dist/auth/plugins/entity-definitions/jwt.js +62 -64
  72. package/dist/auth/plugins/entity-definitions/organization.d.ts +1 -1
  73. package/dist/auth/plugins/entity-definitions/organization.d.ts.map +1 -1
  74. package/dist/auth/plugins/entity-definitions/organization.js +362 -421
  75. package/dist/auth/plugins/entity-definitions/passkey.d.ts +1 -1
  76. package/dist/auth/plugins/entity-definitions/passkey.d.ts.map +1 -1
  77. package/dist/auth/plugins/entity-definitions/passkey.js +115 -126
  78. package/dist/auth/plugins/entity-definitions/phone-number.d.ts +1 -1
  79. package/dist/auth/plugins/entity-definitions/phone-number.d.ts.map +1 -1
  80. package/dist/auth/plugins/entity-definitions/phone-number.js +31 -40
  81. package/dist/auth/plugins/entity-definitions/sso.d.ts +1 -1
  82. package/dist/auth/plugins/entity-definitions/sso.d.ts.map +1 -1
  83. package/dist/auth/plugins/entity-definitions/sso.js +94 -107
  84. package/dist/auth/plugins/entity-definitions/two-factor.d.ts +1 -1
  85. package/dist/auth/plugins/entity-definitions/two-factor.d.ts.map +1 -1
  86. package/dist/auth/plugins/entity-definitions/two-factor.js +78 -92
  87. package/dist/auth/plugins/entity-definitions/types.d.ts +1 -1
  88. package/dist/auth/plugins/entity-definitions/types.d.ts.map +1 -1
  89. package/dist/auth/plugins/entity-definitions/types.js +1 -10
  90. package/dist/auth/plugins/entity-definitions/username.d.ts +1 -1
  91. package/dist/auth/plugins/entity-definitions/username.d.ts.map +1 -1
  92. package/dist/auth/plugins/entity-definitions/username.js +31 -40
  93. package/dist/auth/plugins/index.js +12 -3
  94. package/dist/auth/plugins/wrappers/admin.d.ts +2 -2
  95. package/dist/auth/plugins/wrappers/admin.d.ts.map +1 -1
  96. package/dist/auth/plugins/wrappers/admin.js +28 -29
  97. package/dist/auth/plugins/wrappers/anonymous.d.ts +2 -1
  98. package/dist/auth/plugins/wrappers/anonymous.d.ts.map +1 -1
  99. package/dist/auth/plugins/wrappers/anonymous.js +23 -22
  100. package/dist/auth/plugins/wrappers/api-key.d.ts +2 -1
  101. package/dist/auth/plugins/wrappers/api-key.d.ts.map +1 -1
  102. package/dist/auth/plugins/wrappers/api-key.js +39 -34
  103. package/dist/auth/plugins/wrappers/index.js +11 -11
  104. package/dist/auth/plugins/wrappers/jwt.d.ts +2 -1
  105. package/dist/auth/plugins/wrappers/jwt.d.ts.map +1 -1
  106. package/dist/auth/plugins/wrappers/jwt.js +31 -26
  107. package/dist/auth/plugins/wrappers/organization.d.ts +2 -1
  108. package/dist/auth/plugins/wrappers/organization.d.ts.map +1 -1
  109. package/dist/auth/plugins/wrappers/organization.js +65 -62
  110. package/dist/auth/plugins/wrappers/passkey.d.ts +2 -1
  111. package/dist/auth/plugins/wrappers/passkey.d.ts.map +1 -1
  112. package/dist/auth/plugins/wrappers/passkey.js +33 -28
  113. package/dist/auth/plugins/wrappers/phone-number.d.ts.map +1 -1
  114. package/dist/auth/plugins/wrappers/phone-number.js +26 -23
  115. package/dist/auth/plugins/wrappers/sso.d.ts.map +1 -1
  116. package/dist/auth/plugins/wrappers/sso.js +37 -31
  117. package/dist/auth/plugins/wrappers/two-factor.d.ts.map +1 -1
  118. package/dist/auth/plugins/wrappers/two-factor.js +31 -28
  119. package/dist/auth/plugins/wrappers/username.d.ts.map +1 -1
  120. package/dist/auth/plugins/wrappers/username.js +23 -23
  121. package/dist/bin/build-config.js +31 -31
  122. package/dist/bin/cli.js +1063 -1204
  123. package/dist/bin/fixture.d.ts.map +1 -1
  124. package/dist/bin/fixture.js +266 -259
  125. package/dist/bin/hmr-hook-register.d.ts.map +1 -1
  126. package/dist/bin/hmr-hook-register.js +19 -18
  127. package/dist/bin/test-command.d.ts.map +1 -1
  128. package/dist/bin/test-command.js +180 -177
  129. package/dist/bin/ts-loader-register.js +13 -6
  130. package/dist/bin/ts-loader-registration.d.ts.map +1 -1
  131. package/dist/bin/ts-loader-registration.js +28 -38
  132. package/dist/cache/cache-manager.d.ts +1 -1
  133. package/dist/cache/cache-manager.d.ts.map +1 -1
  134. package/dist/cache/cache-manager.js +20 -15
  135. package/dist/cache/decorator.d.ts +1 -1
  136. package/dist/cache/decorator.d.ts.map +1 -1
  137. package/dist/cache/decorator.js +84 -76
  138. package/dist/cache/drivers.js +21 -34
  139. package/dist/cache/index.js +10 -7
  140. package/dist/cache/types.d.ts +2 -2
  141. package/dist/cache/types.d.ts.map +1 -1
  142. package/dist/cache/types.js +1 -6
  143. package/dist/cache-control/cache-control.d.ts +2 -2
  144. package/dist/cache-control/cache-control.d.ts.map +1 -1
  145. package/dist/cache-control/cache-control.js +106 -122
  146. package/dist/cache-control/types.d.ts +2 -2
  147. package/dist/cache-control/types.d.ts.map +1 -1
  148. package/dist/cache-control/types.js +1 -19
  149. package/dist/compress/compress.d.ts +1 -1
  150. package/dist/compress/compress.d.ts.map +1 -1
  151. package/dist/compress/compress.js +58 -56
  152. package/dist/compress/index.js +7 -2
  153. package/dist/compress/types.js +1 -11
  154. package/dist/cone/cone-generator.d.ts +1 -1
  155. package/dist/cone/cone-generator.d.ts.map +1 -1
  156. package/dist/cone/cone-generator.js +216 -219
  157. package/dist/database/_batch_update.d.ts +1 -1
  158. package/dist/database/_batch_update.d.ts.map +1 -1
  159. package/dist/database/_batch_update.js +107 -102
  160. package/dist/database/base-model.d.ts +8 -9
  161. package/dist/database/base-model.d.ts.map +1 -1
  162. package/dist/database/base-model.js +371 -392
  163. package/dist/database/base-model.types.d.ts +5 -5
  164. package/dist/database/base-model.types.d.ts.map +1 -1
  165. package/dist/database/base-model.types.js +1 -20
  166. package/dist/database/db.d.ts +5 -2
  167. package/dist/database/db.d.ts.map +1 -1
  168. package/dist/database/db.js +185 -171
  169. package/dist/database/knex.d.ts +1 -1
  170. package/dist/database/knex.d.ts.map +1 -1
  171. package/dist/database/knex.js +48 -42
  172. package/dist/database/puri-subset.types.d.ts +6 -7
  173. package/dist/database/puri-subset.types.d.ts.map +1 -1
  174. package/dist/database/puri-subset.types.js +1 -16
  175. package/dist/database/puri-wrapper.d.ts +6 -6
  176. package/dist/database/puri-wrapper.d.ts.map +1 -1
  177. package/dist/database/puri-wrapper.js +99 -101
  178. package/dist/database/puri.d.ts +4 -5
  179. package/dist/database/puri.d.ts.map +1 -1
  180. package/dist/database/puri.js +1021 -1227
  181. package/dist/database/puri.types.d.ts +6 -6
  182. package/dist/database/puri.types.d.ts.map +1 -1
  183. package/dist/database/puri.types.js +15 -6
  184. package/dist/database/transaction-context.d.ts +2 -2
  185. package/dist/database/transaction-context.d.ts.map +1 -1
  186. package/dist/database/transaction-context.js +22 -13
  187. package/dist/database/upsert-builder.d.ts +3 -3
  188. package/dist/database/upsert-builder.d.ts.map +1 -1
  189. package/dist/database/upsert-builder.js +405 -465
  190. package/dist/dict/en.js +72 -74
  191. package/dist/dict/index.js +13 -13
  192. package/dist/dict/ko.js +72 -74
  193. package/dist/dict/rc-keys.js +150 -168
  194. package/dist/dict/sd.d.ts +3 -1
  195. package/dist/dict/sd.d.ts.map +1 -1
  196. package/dist/dict/sd.js +54 -40
  197. package/dist/dict/sonamu-dictionary.d.ts +1 -1
  198. package/dist/dict/sonamu-dictionary.d.ts.map +1 -1
  199. package/dist/dict/sonamu-dictionary.js +887 -955
  200. package/dist/dict/types.js +1 -7
  201. package/dist/dict/utils.js +26 -24
  202. package/dist/entity/entity-manager.d.ts +9 -9
  203. package/dist/entity/entity-manager.d.ts.map +1 -1
  204. package/dist/entity/entity-manager.js +226 -223
  205. package/dist/entity/entity-template-cone.d.ts +1 -1
  206. package/dist/entity/entity-template-cone.d.ts.map +1 -1
  207. package/dist/entity/entity-template-cone.js +152 -151
  208. package/dist/entity/entity.d.ts.map +1 -1
  209. package/dist/entity/entity.js +952 -1089
  210. package/dist/exceptions/error-handler.d.ts +1 -1
  211. package/dist/exceptions/error-handler.d.ts.map +1 -1
  212. package/dist/exceptions/error-handler.js +32 -27
  213. package/dist/exceptions/so-exceptions.d.ts +1 -1
  214. package/dist/exceptions/so-exceptions.d.ts.map +1 -1
  215. package/dist/exceptions/so-exceptions.js +61 -68
  216. package/dist/filter/index.js +9 -3
  217. package/dist/filter/types.js +92 -88
  218. package/dist/filter/utils.d.ts +1 -1
  219. package/dist/filter/utils.d.ts.map +1 -1
  220. package/dist/filter/utils.js +147 -161
  221. package/dist/index.js +87 -40
  222. package/dist/logger/category.d.ts.map +1 -1
  223. package/dist/logger/category.js +30 -29
  224. package/dist/logger/configure.d.ts.map +1 -1
  225. package/dist/logger/configure.js +83 -107
  226. package/dist/migration/code-generation.d.ts +2 -2
  227. package/dist/migration/code-generation.d.ts.map +1 -1
  228. package/dist/migration/code-generation.js +1385 -1578
  229. package/dist/migration/migration-set.d.ts +1 -1
  230. package/dist/migration/migration-set.d.ts.map +1 -1
  231. package/dist/migration/migration-set.js +177 -227
  232. package/dist/migration/migrator.d.ts +4 -3
  233. package/dist/migration/migrator.d.ts.map +1 -1
  234. package/dist/migration/migrator.js +340 -345
  235. package/dist/migration/postgresql-schema-reader.d.ts +2 -2
  236. package/dist/migration/postgresql-schema-reader.d.ts.map +1 -1
  237. package/dist/migration/postgresql-schema-reader.js +506 -564
  238. package/dist/migration/slack-confirm.d.ts +2 -2
  239. package/dist/migration/slack-confirm.d.ts.map +1 -1
  240. package/dist/migration/slack-confirm.js +205 -193
  241. package/dist/migration/types.d.ts +2 -2
  242. package/dist/migration/types.d.ts.map +1 -1
  243. package/dist/migration/types.js +1 -3
  244. package/dist/naite/messaging-types.d.ts +1 -0
  245. package/dist/naite/messaging-types.d.ts.map +1 -1
  246. package/dist/naite/messaging-types.js +1 -7
  247. package/dist/naite/naite-reporter.d.ts +2 -2
  248. package/dist/naite/naite-reporter.d.ts.map +1 -1
  249. package/dist/naite/naite-reporter.js +127 -120
  250. package/dist/naite/naite.d.ts +3 -2
  251. package/dist/naite/naite.d.ts.map +1 -1
  252. package/dist/naite/naite.js +266 -300
  253. package/dist/ssr/index.d.ts +2 -2
  254. package/dist/ssr/index.d.ts.map +1 -1
  255. package/dist/ssr/index.js +13 -3
  256. package/dist/ssr/registry.d.ts +1 -1
  257. package/dist/ssr/registry.d.ts.map +1 -1
  258. package/dist/ssr/registry.js +45 -37
  259. package/dist/ssr/renderer.d.ts +4 -4
  260. package/dist/ssr/renderer.d.ts.map +1 -1
  261. package/dist/ssr/renderer.js +84 -91
  262. package/dist/ssr/types.d.ts +2 -2
  263. package/dist/ssr/types.d.ts.map +1 -1
  264. package/dist/ssr/types.js +1 -3
  265. package/dist/storage/base-file.js +54 -41
  266. package/dist/storage/buffered-file.d.ts +2 -2
  267. package/dist/storage/buffered-file.d.ts.map +1 -1
  268. package/dist/storage/buffered-file.js +51 -44
  269. package/dist/storage/drivers.d.ts +2 -2
  270. package/dist/storage/drivers.d.ts.map +1 -1
  271. package/dist/storage/drivers.js +12 -7
  272. package/dist/storage/index.js +14 -7
  273. package/dist/storage/s3-driver.d.ts +2 -2
  274. package/dist/storage/s3-driver.d.ts.map +1 -1
  275. package/dist/storage/s3-driver.js +52 -48
  276. package/dist/storage/storage-manager.d.ts +2 -2
  277. package/dist/storage/storage-manager.d.ts.map +1 -1
  278. package/dist/storage/storage-manager.js +33 -25
  279. package/dist/storage/types.d.ts +2 -2
  280. package/dist/storage/types.d.ts.map +1 -1
  281. package/dist/storage/types.js +1 -5
  282. package/dist/storage/uploaded-file.d.ts +1 -1
  283. package/dist/storage/uploaded-file.d.ts.map +1 -1
  284. package/dist/storage/uploaded-file.js +45 -35
  285. package/dist/stream/index.js +7 -2
  286. package/dist/stream/sse.d.ts +2 -2
  287. package/dist/stream/sse.d.ts.map +1 -1
  288. package/dist/stream/sse.js +72 -67
  289. package/dist/syncer/api-parser.d.ts +1 -1
  290. package/dist/syncer/api-parser.d.ts.map +1 -1
  291. package/dist/syncer/api-parser.js +224 -245
  292. package/dist/syncer/checksum.d.ts +1 -1
  293. package/dist/syncer/checksum.d.ts.map +1 -1
  294. package/dist/syncer/checksum.js +86 -72
  295. package/dist/syncer/code-generator.d.ts +2 -2
  296. package/dist/syncer/code-generator.d.ts.map +1 -1
  297. package/dist/syncer/code-generator.js +154 -160
  298. package/dist/syncer/entity-operations.d.ts +1 -1
  299. package/dist/syncer/entity-operations.d.ts.map +1 -1
  300. package/dist/syncer/entity-operations.js +63 -54
  301. package/dist/syncer/file-patterns.d.ts +1 -1
  302. package/dist/syncer/file-patterns.d.ts.map +1 -1
  303. package/dist/syncer/file-patterns.js +38 -38
  304. package/dist/syncer/index.js +19 -8
  305. package/dist/syncer/module-loader.d.ts +5 -5
  306. package/dist/syncer/module-loader.d.ts.map +1 -1
  307. package/dist/syncer/module-loader.js +83 -78
  308. package/dist/syncer/syncer-actions.d.ts +2 -2
  309. package/dist/syncer/syncer-actions.d.ts.map +1 -1
  310. package/dist/syncer/syncer-actions.js +76 -91
  311. package/dist/syncer/syncer.d.ts +7 -6
  312. package/dist/syncer/syncer.d.ts.map +1 -1
  313. package/dist/syncer/syncer.js +426 -492
  314. package/dist/tasks/decorator.d.ts +3 -3
  315. package/dist/tasks/decorator.d.ts.map +1 -1
  316. package/dist/tasks/decorator.js +32 -28
  317. package/dist/tasks/step-wrapper.d.ts +1 -1
  318. package/dist/tasks/step-wrapper.d.ts.map +1 -1
  319. package/dist/tasks/step-wrapper.js +42 -41
  320. package/dist/tasks/workflow-manager.d.ts +2 -2
  321. package/dist/tasks/workflow-manager.d.ts.map +1 -1
  322. package/dist/tasks/workflow-manager.js +192 -221
  323. package/dist/template/entity-converter.d.ts +1 -1
  324. package/dist/template/entity-converter.d.ts.map +1 -1
  325. package/dist/template/entity-converter.js +103 -103
  326. package/dist/template/helpers.d.ts.map +1 -1
  327. package/dist/template/helpers.js +163 -163
  328. package/dist/template/implementations/entity.template.d.ts +1 -1
  329. package/dist/template/implementations/entity.template.d.ts.map +1 -1
  330. package/dist/template/implementations/entity.template.js +76 -85
  331. package/dist/template/implementations/entry-server.template.d.ts +1 -1
  332. package/dist/template/implementations/entry-server.template.d.ts.map +1 -1
  333. package/dist/template/implementations/entry-server.template.js +32 -27
  334. package/dist/template/implementations/generated.template.d.ts +1 -1
  335. package/dist/template/implementations/generated.template.d.ts.map +1 -1
  336. package/dist/template/implementations/generated.template.js +254 -275
  337. package/dist/template/implementations/generated_http.template.d.ts +2 -2
  338. package/dist/template/implementations/generated_http.template.d.ts.map +1 -1
  339. package/dist/template/implementations/generated_http.template.js +114 -133
  340. package/dist/template/implementations/generated_sso.template.d.ts.map +1 -1
  341. package/dist/template/implementations/generated_sso.template.js +249 -275
  342. package/dist/template/implementations/init_types.template.d.ts +1 -1
  343. package/dist/template/implementations/init_types.template.d.ts.map +1 -1
  344. package/dist/template/implementations/init_types.template.js +40 -34
  345. package/dist/template/implementations/model.template.d.ts +1 -1
  346. package/dist/template/implementations/model.template.d.ts.map +1 -1
  347. package/dist/template/implementations/model.template.js +56 -53
  348. package/dist/template/implementations/model_test.template.d.ts +1 -1
  349. package/dist/template/implementations/model_test.template.d.ts.map +1 -1
  350. package/dist/template/implementations/model_test.template.js +32 -24
  351. package/dist/template/implementations/queries.template.d.ts +1 -1
  352. package/dist/template/implementations/queries.template.d.ts.map +1 -1
  353. package/dist/template/implementations/queries.template.js +84 -89
  354. package/dist/template/implementations/sd.template.d.ts +1 -1
  355. package/dist/template/implementations/sd.template.d.ts.map +1 -1
  356. package/dist/template/implementations/sd.template.js +137 -144
  357. package/dist/template/implementations/services.template.d.ts +1 -1
  358. package/dist/template/implementations/services.template.d.ts.map +1 -1
  359. package/dist/template/implementations/services.template.js +164 -189
  360. package/dist/template/implementations/view_form.template.d.ts +1 -1
  361. package/dist/template/implementations/view_form.template.d.ts.map +1 -1
  362. package/dist/template/implementations/view_form.template.js +258 -285
  363. package/dist/template/implementations/view_id_all_select.template.d.ts +1 -1
  364. package/dist/template/implementations/view_id_all_select.template.d.ts.map +1 -1
  365. package/dist/template/implementations/view_id_all_select.template.js +31 -25
  366. package/dist/template/implementations/view_list.template.d.ts +1 -1
  367. package/dist/template/implementations/view_list.template.d.ts.map +1 -1
  368. package/dist/template/implementations/view_list.template.js +304 -355
  369. package/dist/template/implementations/view_search_input.template.d.ts +1 -1
  370. package/dist/template/implementations/view_search_input.template.d.ts.map +1 -1
  371. package/dist/template/implementations/view_search_input.template.js +31 -27
  372. package/dist/template/index.js +21 -7
  373. package/dist/template/template-manager.d.ts +1 -1
  374. package/dist/template/template-manager.d.ts.map +1 -1
  375. package/dist/template/template-manager.js +132 -123
  376. package/dist/template/template-types.js +8 -6
  377. package/dist/template/template.d.ts +2 -2
  378. package/dist/template/template.d.ts.map +1 -1
  379. package/dist/template/template.js +73 -68
  380. package/dist/template/zod-converter.d.ts.map +1 -1
  381. package/dist/template/zod-converter.js +603 -657
  382. package/dist/testing/_relation-graph.d.ts +1 -1
  383. package/dist/testing/_relation-graph.d.ts.map +1 -1
  384. package/dist/testing/_relation-graph.js +93 -88
  385. package/dist/testing/bootstrap.d.ts +22 -13
  386. package/dist/testing/bootstrap.d.ts.map +1 -1
  387. package/dist/testing/bootstrap.js +114 -114
  388. package/dist/testing/data-explorer.d.ts +3 -3
  389. package/dist/testing/data-explorer.d.ts.map +1 -1
  390. package/dist/testing/data-explorer.js +237 -265
  391. package/dist/testing/dev-test-routes.d.ts +2 -2
  392. package/dist/testing/dev-test-routes.d.ts.map +1 -1
  393. package/dist/testing/dev-test-routes.js +258 -249
  394. package/dist/testing/dev-vitest-manager.d.ts +1 -1
  395. package/dist/testing/dev-vitest-manager.d.ts.map +1 -1
  396. package/dist/testing/dev-vitest-manager.js +514 -539
  397. package/dist/testing/faker-mappings.js +422 -420
  398. package/dist/testing/fixture-generator.d.ts +3 -3
  399. package/dist/testing/fixture-generator.d.ts.map +1 -1
  400. package/dist/testing/fixture-generator.js +1216 -1346
  401. package/dist/testing/fixture-loader.js +26 -25
  402. package/dist/testing/fixture-manager.d.ts +3 -3
  403. package/dist/testing/fixture-manager.d.ts.map +1 -1
  404. package/dist/testing/fixture-manager.js +706 -776
  405. package/dist/testing/global-setup.js +53 -49
  406. package/dist/testing/index.js +19 -11
  407. package/dist/testing/naite-vitest-reporter.js +18 -13
  408. package/dist/testing/parallel-db-manager.d.ts +1 -1
  409. package/dist/testing/parallel-db-manager.d.ts.map +1 -1
  410. package/dist/testing/parallel-db-manager.js +63 -78
  411. package/dist/testing/vitest-helpers.d.ts +1 -1
  412. package/dist/testing/vitest-helpers.d.ts.map +1 -1
  413. package/dist/testing/vitest-helpers.js +37 -33
  414. package/dist/types/types.d.ts +28 -28
  415. package/dist/types/types.d.ts.map +1 -1
  416. package/dist/types/types.js +764 -890
  417. package/dist/ui/ai-api.d.ts +1 -1
  418. package/dist/ui/ai-api.d.ts.map +1 -1
  419. package/dist/ui/ai-api.js +52 -42
  420. package/dist/ui/ai-client.d.ts +1 -2
  421. package/dist/ui/ai-client.d.ts.map +1 -1
  422. package/dist/ui/ai-client.js +353 -388
  423. package/dist/ui/api.d.ts +1 -1
  424. package/dist/ui/api.d.ts.map +1 -1
  425. package/dist/ui/api.js +903 -1145
  426. package/dist/ui/cdd-service.d.ts +1 -1
  427. package/dist/ui/cdd-service.d.ts.map +1 -1
  428. package/dist/ui/cdd-service.js +406 -407
  429. package/dist/ui/cdd-types.js +1 -3
  430. package/dist/ui-web/assets/index-C-Zz-wYg.css +1 -0
  431. package/dist/ui-web/assets/index-DejDON8K.js +238 -0
  432. package/dist/ui-web/index.html +3 -3
  433. package/dist/utils/async-utils.js +57 -45
  434. package/dist/utils/console-util.d.ts.map +1 -1
  435. package/dist/utils/console-util.js +104 -87
  436. package/dist/utils/controller.js +26 -19
  437. package/dist/utils/esm-utils.js +49 -38
  438. package/dist/utils/formatter.d.ts +1 -2
  439. package/dist/utils/formatter.d.ts.map +1 -1
  440. package/dist/utils/formatter.js +89 -115
  441. package/dist/utils/fs-utils.d.ts.map +1 -1
  442. package/dist/utils/fs-utils.js +68 -65
  443. package/dist/utils/lodash-able.js +11 -4
  444. package/dist/utils/model.d.ts +1 -1
  445. package/dist/utils/model.d.ts.map +1 -1
  446. package/dist/utils/model.js +21 -19
  447. package/dist/utils/object-utils.js +148 -186
  448. package/dist/utils/path-utils.js +67 -57
  449. package/dist/utils/process-utils.d.ts.map +1 -1
  450. package/dist/utils/process-utils.js +37 -31
  451. package/dist/utils/sql-parser.d.ts +1 -1
  452. package/dist/utils/sql-parser.d.ts.map +1 -1
  453. package/dist/utils/sql-parser.js +40 -40
  454. package/dist/utils/type-utils.js +44 -43
  455. package/dist/utils/utils.d.ts +2 -3
  456. package/dist/utils/utils.d.ts.map +1 -1
  457. package/dist/utils/utils.js +81 -93
  458. package/dist/utils/zod-error.d.ts +1 -1
  459. package/dist/utils/zod-error.d.ts.map +1 -1
  460. package/dist/utils/zod-error.js +24 -17
  461. package/dist/vector/chunking.d.ts +1 -1
  462. package/dist/vector/chunking.d.ts.map +1 -1
  463. package/dist/vector/chunking.js +100 -94
  464. package/dist/vector/config.d.ts +1 -1
  465. package/dist/vector/config.d.ts.map +1 -1
  466. package/dist/vector/config.js +76 -78
  467. package/dist/vector/embedding.d.ts +1 -1
  468. package/dist/vector/embedding.d.ts.map +1 -1
  469. package/dist/vector/embedding.js +128 -125
  470. package/dist/vector/index.js +5 -5
  471. package/dist/vector/types.js +1 -5
  472. package/package.json +31 -36
  473. package/src/ai/agents/agent.ts +12 -5
  474. package/src/ai/agents/types.ts +5 -5
  475. package/src/ai/providers/rtzr/model.ts +8 -10
  476. package/src/ai/providers/rtzr/options.ts +2 -1
  477. package/src/ai/providers/rtzr/provider.ts +5 -3
  478. package/src/ai/providers/rtzr/utils.ts +2 -7
  479. package/src/api/__tests__/config.test.ts +15 -8
  480. package/src/api/base-frame.ts +5 -3
  481. package/src/api/caster.ts +7 -6
  482. package/src/api/code-converters.ts +23 -26
  483. package/src/api/config.ts +23 -17
  484. package/src/api/context.ts +18 -11
  485. package/src/api/decorators.ts +17 -18
  486. package/src/api/sonamu.ts +44 -49
  487. package/src/auth/auth-generator.ts +4 -6
  488. package/src/auth/better-auth-entities.ts +3 -2
  489. package/src/auth/knex-adapter.ts +6 -5
  490. package/src/auth/plugins/entity-definitions/admin.ts +1 -1
  491. package/src/auth/plugins/entity-definitions/anonymous.ts +1 -1
  492. package/src/auth/plugins/entity-definitions/api-key.ts +1 -1
  493. package/src/auth/plugins/entity-definitions/index.ts +1 -1
  494. package/src/auth/plugins/entity-definitions/jwt.ts +1 -1
  495. package/src/auth/plugins/entity-definitions/organization.ts +1 -1
  496. package/src/auth/plugins/entity-definitions/passkey.ts +1 -1
  497. package/src/auth/plugins/entity-definitions/phone-number.ts +1 -1
  498. package/src/auth/plugins/entity-definitions/sso.ts +1 -1
  499. package/src/auth/plugins/entity-definitions/two-factor.ts +1 -1
  500. package/src/auth/plugins/entity-definitions/types.ts +1 -1
  501. package/src/auth/plugins/entity-definitions/username.ts +1 -1
  502. package/src/auth/plugins/wrappers/admin.ts +3 -1
  503. package/src/auth/plugins/wrappers/anonymous.ts +3 -1
  504. package/src/auth/plugins/wrappers/api-key.ts +3 -1
  505. package/src/auth/plugins/wrappers/jwt.ts +3 -1
  506. package/src/auth/plugins/wrappers/organization.ts +3 -1
  507. package/src/auth/plugins/wrappers/passkey.ts +3 -1
  508. package/src/auth/plugins/wrappers/phone-number.ts +3 -1
  509. package/src/auth/plugins/wrappers/sso.ts +2 -1
  510. package/src/auth/plugins/wrappers/two-factor.ts +3 -1
  511. package/src/auth/plugins/wrappers/username.ts +3 -1
  512. package/src/bin/__tests__/ts-loader-register.test.ts +7 -12
  513. package/src/bin/build-config.ts +3 -3
  514. package/src/bin/cli.ts +27 -25
  515. package/src/bin/fixture.ts +4 -2
  516. package/src/bin/hmr-hook-register.ts +1 -0
  517. package/src/bin/test-command.ts +4 -2
  518. package/src/bin/ts-loader-registration.ts +6 -22
  519. package/src/cache/cache-manager.ts +2 -1
  520. package/src/cache/decorator.ts +2 -2
  521. package/src/cache/types.ts +3 -3
  522. package/src/cache-control/cache-control.ts +3 -2
  523. package/src/cache-control/types.ts +2 -2
  524. package/src/compress/compress.ts +1 -1
  525. package/src/cone/cone-generator.ts +5 -3
  526. package/src/database/_batch_update.ts +1 -1
  527. package/src/database/base-model.ts +20 -14
  528. package/src/database/base-model.types.ts +12 -11
  529. package/src/database/db.ts +56 -21
  530. package/src/database/knex.ts +2 -2
  531. package/src/database/puri-subset.test-d.ts +33 -32
  532. package/src/database/puri-subset.types.ts +6 -7
  533. package/src/database/puri-wrapper.ts +29 -26
  534. package/src/database/puri.ts +36 -34
  535. package/src/database/puri.types.test-d.ts +6 -5
  536. package/src/database/puri.types.ts +9 -12
  537. package/src/database/transaction-context.ts +2 -2
  538. package/src/database/upsert-builder.ts +17 -10
  539. package/src/dict/sd.ts +17 -4
  540. package/src/dict/sonamu-dictionary.ts +23 -17
  541. package/src/entity/entity-manager.ts +9 -7
  542. package/src/entity/entity-template-cone.ts +10 -3
  543. package/src/entity/entity.ts +20 -16
  544. package/src/exceptions/error-handler.ts +2 -1
  545. package/src/exceptions/so-exceptions.ts +1 -1
  546. package/src/filter/utils.ts +3 -2
  547. package/src/logger/category.ts +1 -0
  548. package/src/logger/configure.ts +5 -5
  549. package/src/migration/__tests__/code-generation.search-text.test.ts +2 -3
  550. package/src/migration/code-generation.ts +26 -25
  551. package/src/migration/migration-set.ts +16 -18
  552. package/src/migration/migrator.ts +38 -33
  553. package/src/migration/postgresql-schema-reader.ts +12 -12
  554. package/src/migration/slack-confirm.ts +5 -4
  555. package/src/migration/types.ts +2 -2
  556. package/src/naite/messaging-types.ts +1 -1
  557. package/src/naite/naite-reporter.ts +5 -3
  558. package/src/naite/naite.ts +12 -7
  559. package/src/shared/app.shared.ts.txt +2 -2
  560. package/src/shared/web.shared.ts.txt +2 -2
  561. package/src/skills/AGENTS.md +19 -18
  562. package/src/skills/commands/sonamu-skills.md +9 -9
  563. package/src/skills/sonamu/SKILL.md +111 -104
  564. package/src/skills/sonamu/ai-agents.md +27 -26
  565. package/src/skills/sonamu/api.md +81 -69
  566. package/src/skills/sonamu/auth-migration.md +13 -27
  567. package/src/skills/sonamu/auth-plugins.md +41 -31
  568. package/src/skills/sonamu/auth.md +30 -24
  569. package/src/skills/sonamu/cdd.md +26 -17
  570. package/src/skills/sonamu/cone.md +50 -50
  571. package/src/skills/sonamu/config.md +74 -51
  572. package/src/skills/sonamu/create-sonamu.md +31 -19
  573. package/src/skills/sonamu/database.md +43 -26
  574. package/src/skills/sonamu/entity-basic.md +61 -61
  575. package/src/skills/sonamu/entity-relations.md +84 -80
  576. package/src/skills/sonamu/entity-validation-checklist.md +19 -15
  577. package/src/skills/sonamu/fixture-cli.md +52 -30
  578. package/src/skills/sonamu/framework-change.md +9 -7
  579. package/src/skills/sonamu/frontend.md +64 -82
  580. package/src/skills/sonamu/i18n.md +45 -37
  581. package/src/skills/sonamu/migration.md +54 -31
  582. package/src/skills/sonamu/model.md +98 -66
  583. package/src/skills/sonamu/naite.md +34 -32
  584. package/src/skills/sonamu/project-init.md +28 -8
  585. package/src/skills/sonamu/puri.md +82 -91
  586. package/src/skills/sonamu/scaffolding.md +44 -32
  587. package/src/skills/sonamu/skill-contribution.md +50 -45
  588. package/src/skills/sonamu/subset.md +13 -13
  589. package/src/skills/sonamu/tasks.md +73 -58
  590. package/src/skills/sonamu/testing-devrunner.md +56 -36
  591. package/src/skills/sonamu/testing.md +23 -58
  592. package/src/skills/sonamu/upsert.md +32 -31
  593. package/src/skills/sonamu/vector.md +37 -36
  594. package/src/ssr/index.ts +2 -12
  595. package/src/ssr/registry.ts +1 -1
  596. package/src/ssr/renderer.ts +7 -5
  597. package/src/ssr/types.ts +2 -2
  598. package/src/storage/buffered-file.ts +4 -2
  599. package/src/storage/drivers.ts +3 -2
  600. package/src/storage/s3-driver.ts +7 -4
  601. package/src/storage/storage-manager.ts +3 -2
  602. package/src/storage/types.ts +3 -2
  603. package/src/storage/uploaded-file.ts +1 -1
  604. package/src/stream/sse.ts +2 -2
  605. package/src/syncer/api-parser.ts +8 -5
  606. package/src/syncer/checksum.ts +9 -5
  607. package/src/syncer/code-generator.ts +16 -8
  608. package/src/syncer/entity-operations.ts +5 -3
  609. package/src/syncer/file-patterns.ts +2 -1
  610. package/src/syncer/module-loader.ts +9 -6
  611. package/src/syncer/syncer-actions.ts +5 -3
  612. package/src/syncer/syncer.ts +18 -24
  613. package/src/tasks/decorator.ts +10 -8
  614. package/src/tasks/step-wrapper.ts +1 -1
  615. package/src/tasks/workflow-manager.ts +18 -15
  616. package/src/template/__tests__/generated.template.search-text.test.ts +1 -0
  617. package/src/template/entity-converter.ts +4 -2
  618. package/src/template/generated.template.test-d.ts +2 -1
  619. package/src/template/helpers.ts +5 -2
  620. package/src/template/implementations/entity.template.ts +9 -8
  621. package/src/template/implementations/entry-server.template.ts +1 -1
  622. package/src/template/implementations/generated.template.ts +21 -29
  623. package/src/template/implementations/generated_http.template.ts +9 -6
  624. package/src/template/implementations/generated_sso.template.ts +6 -4
  625. package/src/template/implementations/init_types.template.ts +3 -2
  626. package/src/template/implementations/model.template.ts +4 -2
  627. package/src/template/implementations/model_test.template.ts +3 -2
  628. package/src/template/implementations/queries.template.ts +6 -14
  629. package/src/template/implementations/sd.template.ts +4 -2
  630. package/src/template/implementations/services.template.ts +7 -11
  631. package/src/template/implementations/view_form.template.ts +5 -3
  632. package/src/template/implementations/view_id_all_select.template.ts +3 -2
  633. package/src/template/implementations/view_list.template.ts +7 -5
  634. package/src/template/implementations/view_search_input.template.ts +3 -2
  635. package/src/template/template-manager.ts +4 -3
  636. package/src/template/template.ts +4 -3
  637. package/src/template/zod-converter.ts +10 -7
  638. package/src/testing/__tests__/dev-test-routes.test.ts +3 -2
  639. package/src/testing/__tests__/dev-vitest-manager.test.ts +1 -0
  640. package/src/testing/_relation-graph.ts +2 -2
  641. package/src/testing/bootstrap.ts +55 -27
  642. package/src/testing/data-explorer.ts +5 -4
  643. package/src/testing/dev-test-routes.ts +8 -5
  644. package/src/testing/dev-vitest-manager.ts +13 -12
  645. package/src/testing/fixture-generator.ts +11 -17
  646. package/src/testing/fixture-manager.ts +21 -17
  647. package/src/testing/parallel-db-manager.ts +2 -1
  648. package/src/testing/vitest-helpers.ts +2 -1
  649. package/src/types/__tests__/entity-json-schema-search-text.test.ts +1 -0
  650. package/src/types/types.ts +8 -8
  651. package/src/typings/knex.d.ts +4 -4
  652. package/src/ui/ai-api.ts +5 -3
  653. package/src/ui/ai-client.ts +6 -5
  654. package/src/ui/api.ts +25 -23
  655. package/src/ui/cdd-service.ts +12 -11
  656. package/src/utils/console-util.ts +3 -1
  657. package/src/utils/formatter.ts +94 -102
  658. package/src/utils/fs-utils.ts +2 -1
  659. package/src/utils/model.ts +2 -2
  660. package/src/utils/object-utils.ts +3 -3
  661. package/src/utils/process-utils.ts +2 -1
  662. package/src/utils/sql-parser.ts +10 -1
  663. package/src/utils/type-utils.ts +3 -3
  664. package/src/utils/utils.ts +9 -7
  665. package/src/utils/zod-error.ts +1 -1
  666. package/src/vector/chunking.ts +1 -1
  667. package/src/vector/config.ts +1 -1
  668. package/src/vector/embedding.ts +11 -9
  669. package/tsdown.api.config.ts +50 -0
  670. package/.swcrc.project-default +0 -18
  671. package/dist/api/__tests__/config.test.js +0 -189
  672. package/dist/bin/__tests__/test-command.test.js +0 -112
  673. package/dist/bin/__tests__/ts-loader-register.test.js +0 -45
  674. package/dist/database/puri-subset.test-d.js +0 -89
  675. package/dist/database/puri.types.test-d.js +0 -129
  676. package/dist/migration/__tests__/code-generation.search-text.test.js +0 -435
  677. package/dist/template/__tests__/generated.template.search-text.test.js +0 -99
  678. package/dist/template/generated.template.test-d.js +0 -24
  679. package/dist/testing/__tests__/dev-test-routes.test.js +0 -144
  680. package/dist/testing/__tests__/dev-vitest-manager.test.js +0 -152
  681. package/dist/types/__tests__/entity-json-schema-search-text.test.js +0 -256
  682. package/dist/typings/knex.d.js +0 -3
  683. package/dist/ui-web/assets/index-CKo0Z2Iu.css +0 -1
  684. package/dist/ui-web/assets/index-DK-2aacv.js +0 -257
@@ -2,6 +2,7 @@ import { mkdir, mkdtemp, rm, writeFile } from "node:fs/promises";
2
2
  import os from "node:os";
3
3
  import path from "node:path";
4
4
  import { pathToFileURL } from "node:url";
5
+
5
6
  import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
6
7
 
7
8
  const tsLoaderRegisterStateKey = Symbol.for("sonamu.ts-loader-register.state");
@@ -17,7 +18,6 @@ type GlobalWithTsLoaderRegisterState = typeof globalThis & {
17
18
  function resetRegisterState() {
18
19
  const globalState = globalThis as GlobalWithTsLoaderRegisterState;
19
20
  delete globalState[tsLoaderRegisterStateKey];
20
- delete process.env.SWCRC_PATH;
21
21
  }
22
22
 
23
23
  async function createTempRoot(): Promise<string> {
@@ -26,6 +26,20 @@ async function createTempRoot(): Promise<string> {
26
26
 
27
27
  async function writeSourceFixture(rootPath: string): Promise<void> {
28
28
  await mkdir(path.join(rootPath, "src"), { recursive: true });
29
+ await writeFile(
30
+ path.join(rootPath, "tsconfig.json"),
31
+ JSON.stringify(
32
+ {
33
+ compilerOptions: {
34
+ experimentalDecorators: true,
35
+ module: "esnext",
36
+ target: "esnext",
37
+ },
38
+ },
39
+ null,
40
+ 2,
41
+ ),
42
+ );
29
43
  await writeFile(
30
44
  path.join(rootPath, "src", "support.ts"),
31
45
  `
@@ -122,7 +136,6 @@ describe("loadConfig", () => {
122
136
  const tempRoots: string[] = [];
123
137
  const originalHot = process.env.HOT;
124
138
  const originalVitest = process.env.VITEST;
125
- const originalSwcrcPath = process.env.SWCRC_PATH;
126
139
 
127
140
  beforeEach(() => {
128
141
  vi.resetModules();
@@ -149,12 +162,6 @@ describe("loadConfig", () => {
149
162
  process.env.VITEST = originalVitest;
150
163
  }
151
164
 
152
- if (originalSwcrcPath === undefined) {
153
- delete process.env.SWCRC_PATH;
154
- } else {
155
- process.env.SWCRC_PATH = originalSwcrcPath;
156
- }
157
-
158
165
  await Promise.all(
159
166
  tempRoots.splice(0).map((rootPath) => rm(rootPath, { recursive: true, force: true })),
160
167
  );
@@ -1,6 +1,8 @@
1
- import { getLogger, type Logger } from "@logtape/logtape";
2
- import type { Knex } from "knex";
3
- import type { DBPreset } from "../database/db";
1
+ import { getLogger } from "@logtape/logtape";
2
+ import { type Logger } from "@logtape/logtape";
3
+ import { type Knex } from "knex";
4
+
5
+ import { type DBPreset } from "../database/db";
4
6
  // Static imports kept for non-async functions (getDB, getUpsertBuilder)
5
7
  import { DB } from "../database/db";
6
8
  import { UpsertBuilder } from "../database/upsert-builder";
package/src/api/caster.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import assert from "assert";
2
+
2
3
  import { z } from "zod";
3
- import type { $ZodType } from "zod/v4/core";
4
+ import { type $ZodType } from "zod/v4/core";
4
5
 
5
6
  function isNumberType(zodType: $ZodType): zodType is z.ZodNumber {
6
7
  return zodType instanceof z.ZodNumber;
@@ -25,7 +26,7 @@ function isZodNumberAnyway(zodType: $ZodType) {
25
26
  }
26
27
 
27
28
  // ZodType을 이용해 raw를 Type Coercing
28
- // biome-ignore lint/suspicious/noExplicitAny: 캐스팅에는 any가 필요함.
29
+ // oxlint-disable-next-line @typescript-eslint/no-explicit-any -- 캐스팅에는 any가 필요함.
29
30
  export function caster(zodType: $ZodType, raw: any): any {
30
31
  if (isZodNumberAnyway(zodType) && typeof raw === "string") {
31
32
  // number
@@ -38,7 +39,7 @@ export function caster(zodType: $ZodType, raw: any): any {
38
39
  if (Array.isArray(raw)) {
39
40
  const numType = zodType.options.find((opt) => isNumberType(opt));
40
41
  assert(numType !== undefined);
41
- // biome-ignore lint/suspicious/noExplicitAny: 캐스팅에는 any가 필요함.
42
+ // oxlint-disable-next-line @typescript-eslint/no-explicit-any -- 캐스팅에는 any가 필요함.
42
43
  return raw.map((elem: any) => caster(numType, elem));
43
44
  } else {
44
45
  return Number(raw);
@@ -48,7 +49,7 @@ export function caster(zodType: $ZodType, raw: any): any {
48
49
  return raw === "true";
49
50
  } else if (raw !== null && Array.isArray(raw) && zodType instanceof z.ZodArray) {
50
51
  // array
51
- // biome-ignore lint/suspicious/noExplicitAny: 캐스팅에는 any가 필요함.
52
+ // oxlint-disable-next-line @typescript-eslint/no-explicit-any -- 캐스팅에는 any가 필요함.
52
53
  return raw.map((elem: any) => caster(zodType.element, elem));
53
54
  } else if (zodType instanceof z.ZodObject && typeof raw === "object" && raw !== null) {
54
55
  // object
@@ -79,9 +80,9 @@ export function caster(zodType: $ZodType, raw: any): any {
79
80
  }
80
81
  }
81
82
 
82
- // biome-ignore lint/suspicious/noExplicitAny: 캐스팅에는 any가 필요함.
83
+ // oxlint-disable-next-line @typescript-eslint/no-explicit-any -- 캐스팅에는 any가 필요함.
83
84
  export function fastifyCaster(schema: z.ZodObject<any>) {
84
- // biome-ignore lint/suspicious/noExplicitAny: 캐스팅에는 any가 필요함.
85
+ // oxlint-disable-next-line @typescript-eslint/no-explicit-any -- 캐스팅에는 any가 필요함.
85
86
  return z.preprocess((raw: any) => {
86
87
  return caster(schema, raw);
87
88
  }, schema);
@@ -19,14 +19,14 @@
19
19
  */
20
20
 
21
21
  import { z } from "zod";
22
- import type { core } from "zod/v4";
23
- import type { $ZodLooseShape } from "zod/v4/core";
24
- import { type ApiParam, ApiParamType } from "../types/types";
25
- import type { ExtendedApi } from "./decorators";
22
+
23
+ import { ApiParamType } from "../types/types";
24
+ import { type ApiParam } from "../types/types";
25
+ import { type ExtendedApi } from "./decorators";
26
26
 
27
27
  // <any>를 자제하고, Zod에서 제약하는 기본적인 Generic Type Parameter를 사용함.
28
- type AnyZodObject = z.ZodObject<$ZodLooseShape>;
29
- type AnyZodLiteral = z.ZodLiteral<core.util.Literal>;
28
+ type AnyZodObject = z.ZodObject;
29
+ type AnyZodLiteral = z.ZodLiteral;
30
30
 
31
31
  /**
32
32
  * Promise 타입을 한 번 언래핑하여 내부 타입을 반환합니다.
@@ -54,7 +54,7 @@ export function getZodTypeFromApiParamType(
54
54
  references: {
55
55
  [id: string]: z.ZodType;
56
56
  },
57
- ): z.ZodType<unknown> {
57
+ ): z.ZodType {
58
58
  switch (paramType) {
59
59
  case "string":
60
60
  return z.string();
@@ -96,7 +96,7 @@ export function getZodTypeFromApiParamType(
96
96
  }
97
97
  const [obj, literalOrUnion] = refType.args.map(
98
98
  (arg) => getZodTypeFromApiParamType(arg, references),
99
- // biome-ignore lint/suspicious/noExplicitAny: 생성되는 ZodUnion의 타입을 추적하기 어려움
99
+ // oxlint-disable-next-line @typescript-eslint/no-explicit-any -- 생성되는 ZodUnion의 타입을 추적하기 어려움
100
100
  ) as [AnyZodObject, z.ZodUnion<any> | AnyZodLiteral];
101
101
 
102
102
  let keys: string[] = [];
@@ -110,12 +110,12 @@ export function getZodTypeFromApiParamType(
110
110
  const keyRecord = Object.fromEntries(keys.map((key) => [key, true as const]));
111
111
  if (refType.id === "Pick") {
112
112
  if (obj.pick) {
113
- // biome-ignore lint/suspicious/noExplicitAny: Zod 4.3.6 pick 타입 호환성
113
+ // oxlint-disable-next-line @typescript-eslint/no-explicit-any -- Zod 4.3.6 pick 타입 호환성
114
114
  return obj.pick(keyRecord as any);
115
115
  }
116
116
  } else {
117
117
  if (obj.omit) {
118
- // biome-ignore lint/suspicious/noExplicitAny: Zod 4.3.6 omit 타입 호환성
118
+ // oxlint-disable-next-line @typescript-eslint/no-explicit-any -- Zod 4.3.6 omit 타입 호환성
119
119
  return obj.omit(keyRecord as any);
120
120
  }
121
121
  }
@@ -125,7 +125,7 @@ export function getZodTypeFromApiParamType(
125
125
  throw new Error(`잘못된 ${refType.id}`);
126
126
  }
127
127
  const obj = getZodTypeFromApiParamType(refType.args[0], references);
128
- // biome-ignore lint/suspicious/noExplicitAny: Partial 인수 타입 캐스팅
128
+ // oxlint-disable-next-line @typescript-eslint/no-explicit-any -- Partial 인수 타입 캐스팅
129
129
  return (obj as z.ZodObject<any>).partial();
130
130
  }
131
131
  const reference = references[refType.id];
@@ -158,22 +158,19 @@ export function getZodTypeFromApiParamType(
158
158
  t: string;
159
159
  types: ApiParamType[];
160
160
  };
161
- return intersectionType.types.reduce(
162
- (result, type, index) => {
163
- const resolvedType = getZodTypeFromApiParamType(type, references);
164
- if (index === 0) {
165
- return resolvedType;
166
- } else {
167
- return z.intersection(result, resolvedType);
168
- }
169
- },
170
- z.unknown() as z.ZodType<unknown>,
171
- );
161
+ return intersectionType.types.reduce((result, type, index) => {
162
+ const resolvedType = getZodTypeFromApiParamType(type, references);
163
+ if (index === 0) {
164
+ return resolvedType;
165
+ } else {
166
+ return z.intersection(result, resolvedType);
167
+ }
168
+ }, z.unknown() as z.ZodType);
172
169
  }
173
170
  case "tuple-type": {
174
171
  const tupleType = paramType as ApiParamType.TupleType;
175
172
  return z.tuple(
176
- // biome-ignore lint/suspicious/noExplicitAny: 생성되는 ZodTuple의 타입을 추적하기 어려움
173
+ // oxlint-disable-next-line @typescript-eslint/no-explicit-any -- 생성되는 ZodTuple의 타입을 추적하기 어려움
177
174
  tupleType.elements.map((elem) => getZodTypeFromApiParamType(elem, references)) as any,
178
175
  );
179
176
  }
@@ -223,7 +220,7 @@ export function getZodObjectFromApi(
223
220
  const zodType = getZodTypeFromApiParamType(typeParam.constraint, references);
224
221
 
225
222
  // FIXME: references는 글로벌 오브젝트로, typeParam.id("T" 등)를 key로 이렇게 덮어씌워버리면 loadedTypes가 오염됨.
226
- // biome-ignore lint/suspicious/noExplicitAny: 레퍼런스 타입 캐스팅
223
+ // oxlint-disable-next-line @typescript-eslint/no-explicit-any -- 레퍼런스 타입 캐스팅
227
224
  (references[typeParam.id] as z.ZodType<any>) = zodType;
228
225
  }
229
226
  }
@@ -234,7 +231,7 @@ export function getZodObjectFromApi(
234
231
  (param) =>
235
232
  !ApiParamType.isContext(param.type) &&
236
233
  !ApiParamType.isRefKnex(param.type) &&
237
- !(param.optional === true && param.name.startsWith("_")), // _로 시작하는 파라미터는 제외
234
+ !(param.optional && param.name.startsWith("_")), // _로 시작하는 파라미터는 제외
238
235
  ),
239
236
  references,
240
237
  );
@@ -284,7 +281,7 @@ export function apiParamTypeToTsType(paramType: ApiParamType, injectImportKeys:
284
281
  ? `(${elementsType})[]`
285
282
  : `${elementsType}[]`;
286
283
  } else if (ApiParamType.isRef(paramType)) {
287
- if (["Pick", "Omit", "Promise", "Partial", "Date"].includes(paramType.id) === false) {
284
+ if (!["Pick", "Omit", "Promise", "Partial", "Date"].includes(paramType.id)) {
288
285
  // importKeys 인젝션
289
286
  injectImportKeys.push(paramType.id);
290
287
  }
package/src/api/config.ts CHANGED
@@ -1,20 +1,26 @@
1
- import type { FastifyCompressOptions } from "@fastify/compress";
2
- import type { FastifyCorsOptions } from "@fastify/cors";
3
- import type { FastifyFormbodyOptions } from "@fastify/formbody";
4
- import type { FastifyMultipartOptions } from "@fastify/multipart";
5
- import type { FastifyStaticOptions } from "@fastify/static";
6
- import type { BetterAuthOptions } from "better-auth";
7
- import type { FastifyInstance, FastifyReply, FastifyRequest, FastifyServerOptions } from "fastify";
8
- import type { QsPluginOptions } from "fastify-qs";
9
- import type { SsePluginOptions } from "fastify-sse-v2/lib/types";
10
- import type { Knex } from "knex";
11
- import type { CacheConfig } from "../cache/types";
12
- import type { SonamuDBConfig } from "../database/db";
13
- import type { SonamuLoggingOptions } from "../logger/configure";
14
- import type { StorageConfig } from "../storage/types";
15
- import type { WorkflowOptions } from "../tasks/workflow-manager";
16
- import type { Executable, SonamuFastifyConfig } from "../types/types";
17
- import type { Context } from "./context";
1
+ import { type FastifyCompressOptions } from "@fastify/compress";
2
+ import { type FastifyCorsOptions } from "@fastify/cors";
3
+ import { type FastifyFormbodyOptions } from "@fastify/formbody";
4
+ import { type FastifyMultipartOptions } from "@fastify/multipart";
5
+ import { type FastifyStaticOptions } from "@fastify/static";
6
+ import { type BetterAuthOptions } from "better-auth";
7
+ import {
8
+ type FastifyInstance,
9
+ type FastifyReply,
10
+ type FastifyRequest,
11
+ type FastifyServerOptions,
12
+ } from "fastify";
13
+ import { type QsPluginOptions } from "fastify-qs";
14
+ import { type SsePluginOptions } from "fastify-sse-v2/lib/types";
15
+ import { type Knex } from "knex";
16
+
17
+ import { type CacheConfig } from "../cache/types";
18
+ import { type SonamuDBConfig } from "../database/db";
19
+ import { type SonamuLoggingOptions } from "../logger/configure";
20
+ import { type StorageConfig } from "../storage/types";
21
+ import { type WorkflowOptions } from "../tasks/workflow-manager";
22
+ import { type Executable, type SonamuFastifyConfig } from "../types/types";
23
+ import { type Context } from "./context";
18
24
 
19
25
  export type DatabaseConfig = Omit<Knex.Config, "connection"> & {
20
26
  connection?: Knex.PgConnectionConfig;
@@ -1,18 +1,25 @@
1
- import type { Session, User } from "better-auth";
2
- import type { FastifyReply, FastifyRequest } from "fastify";
3
- import type { RouteGenericInterface } from "fastify/types/route";
4
- import type { IncomingHttpHeaders, IncomingMessage, Server, ServerResponse } from "http";
5
- import type { ZodObject } from "zod";
6
- import type { NaiteStore } from "../naite/naite";
7
- import type { BufferedFile } from "../storage/buffered-file";
8
- import type { UploadedFile } from "../storage/uploaded-file";
9
- import type { createSSEFactory } from "../stream/sse";
1
+ import {
2
+ type IncomingHttpHeaders,
3
+ type IncomingMessage,
4
+ type Server,
5
+ type ServerResponse,
6
+ } from "http";
10
7
 
11
- // biome-ignore lint/suspicious/noEmptyInterface: Context 확장 타입
8
+ import { type Session, type User } from "better-auth";
9
+ import { type FastifyReply, type FastifyRequest } from "fastify";
10
+ import { type RouteGenericInterface } from "fastify/types/route";
11
+ import { type ZodObject } from "zod";
12
+
13
+ import { type NaiteStore } from "../naite/naite";
14
+ import { type BufferedFile } from "../storage/buffered-file";
15
+ import { type UploadedFile } from "../storage/uploaded-file";
16
+ import { type createSSEFactory } from "../stream/sse";
17
+
18
+ // oxlint-disable-next-line @typescript-eslint/no-empty-interface -- Context 확장 타입
12
19
  export interface ContextExtend {}
13
20
  export type Context = {
14
21
  request: FastifyRequest;
15
- reply: FastifyReply<Server, IncomingMessage, ServerResponse, RouteGenericInterface, unknown>;
22
+ reply: FastifyReply<Server, IncomingMessage, ServerResponse, RouteGenericInterface>;
16
23
  headers: IncomingHttpHeaders;
17
24
  createSSE: <T extends ZodObject>(events: T) => ReturnType<typeof createSSEFactory<T>>;
18
25
  naiteStore: NaiteStore;
@@ -1,24 +1,23 @@
1
- import type { FastifyMultipartBaseOptions } from "@fastify/multipart";
2
- import { getLogger } from "@logtape/logtape";
3
1
  import assert from "assert";
4
- import type { HTTPMethods } from "fastify";
2
+
3
+ import { type FastifyMultipartBaseOptions } from "@fastify/multipart";
4
+ import { getLogger } from "@logtape/logtape";
5
+ import { type HTTPMethods } from "fastify";
5
6
  import inflection from "inflection";
6
7
  import { isEqual } from "radashi";
7
- import type { z } from "zod";
8
- import type { CacheControlConfig } from "../cache-control/types";
9
- import type { CompressConfig } from "../compress/types";
8
+ import { type z } from "zod";
9
+
10
+ import { type CacheControlConfig } from "../cache-control/types";
11
+ import { type CompressConfig } from "../compress/types";
10
12
  import { BaseModelClass } from "../database/base-model";
11
13
  import { DB } from "../database/db";
12
- import {
13
- PuriTransactionWrapper,
14
- type PuriWrapper,
15
- type TransactionalOptions,
16
- } from "../database/puri-wrapper";
14
+ import { PuriTransactionWrapper } from "../database/puri-wrapper";
15
+ import { type TransactionalOptions } from "../database/puri-wrapper";
17
16
  import { UpsertBuilder } from "../database/upsert-builder";
18
17
  import { convertDomainToCategory } from "../logger/category";
19
- import type { DriverKey } from "../storage/drivers";
20
- import type { KeyGenerator } from "../storage/types";
21
- import type { ApiParam, ApiParamType } from "../types/types";
18
+ import { type DriverKey } from "../storage/drivers";
19
+ import { type KeyGenerator } from "../storage/types";
20
+ import { type ApiParam, type ApiParamType } from "../types/types";
22
21
  import { BaseFrameClass } from "./base-frame";
23
22
 
24
23
  export interface GuardKeys {
@@ -55,7 +54,7 @@ export type ApiDecoratorOptions = {
55
54
  };
56
55
  export type StreamDecoratorOptions = {
57
56
  type: "sse"; // | 'ws
58
- // biome-ignore lint/suspicious/noExplicitAny: 이벤트 키별로 넘겨주는 값이므로 어떤 타입이든 상관없음
57
+ // oxlint-disable-next-line @typescript-eslint/no-explicit-any -- 이벤트 키별로 넘겨주는 값이므로 어떤 타입이든 상관없음
59
58
  events: z.ZodObject<any>;
60
59
  path?: string;
61
60
  resourceName?: string;
@@ -301,7 +300,7 @@ export function transactional(options: TransactionalOptions = {}) {
301
300
 
302
301
  // AsyncLocalStorage 컨텍스트 없거나 해당 preset의 트랜잭션이 없으면 새로 시작
303
302
  const startTransaction = async () => {
304
- const puri = this.getPuri(dbPreset) as PuriWrapper;
303
+ const puri = this.getPuri(dbPreset);
305
304
 
306
305
  return puri.knex.transaction(
307
306
  async (trx) => {
@@ -454,9 +453,9 @@ function assertNoConflictingOptions(
454
453
  decoratorName: string,
455
454
  modelName: string,
456
455
  methodName: string,
457
- // biome-ignore lint/suspicious/noExplicitAny: <아 쉽게쉽게 좀 갑시다>
456
+ // oxlint-disable-next-line @typescript-eslint/no-explicit-any -- <아 쉽게쉽게 좀 갑시다>
458
457
  existingOptions: Record<string, any>,
459
- // biome-ignore lint/suspicious/noExplicitAny: <이럴 때 아니면 any 언제 씁니까>
458
+ // oxlint-disable-next-line @typescript-eslint/no-explicit-any -- <이럴 때 아니면 any 언제 씁니까>
460
459
  newOptions: Record<string, any>,
461
460
  ) {
462
461
  Object.keys(newOptions).forEach((key) => {
package/src/api/sonamu.ts CHANGED
@@ -1,47 +1,46 @@
1
- import { dispose as logtapeDispose } from "@logtape/logtape";
2
1
  import assert from "assert";
3
2
  import { AsyncLocalStorage } from "async_hooks";
4
- import type { Auth } from "better-auth";
5
- import type { FSWatcher } from "chokidar";
6
- import type { FastifyInstance, FastifyReply, FastifyRequest } from "fastify";
7
3
  import fs from "fs/promises";
8
- import type { IncomingMessage, Server, ServerResponse } from "http";
9
- import mime, { lookup as mimeLookup } from "mime-types";
4
+ import { type IncomingMessage, type Server, type ServerResponse } from "http";
10
5
  import os from "os";
11
6
  import path from "path";
12
- import type { ZodObject } from "zod";
13
- import {
14
- BASE_FIELD_MAPPINGS,
15
- convertFastifyHeadersToStandard,
16
- createMockSSEFactory,
17
- DB,
18
- isDaemonServer,
19
- merge,
20
- NotFoundException,
21
- } from "..";
22
- import type { CacheConfig, CacheManager } from "../cache/types";
7
+
8
+ import { dispose as logtapeDispose } from "@logtape/logtape";
9
+ import { type Auth } from "better-auth";
10
+ import { type FSWatcher } from "chokidar";
11
+ import { type FastifyInstance, type FastifyReply, type FastifyRequest } from "fastify";
12
+ import mime, { lookup as mimeLookup } from "mime-types";
13
+ import { type ZodObject } from "zod";
14
+
15
+ import { BASE_FIELD_MAPPINGS } from "../auth/better-auth-entities";
23
16
  import { applyCacheHeaders, CachePresets } from "../cache-control/cache-control";
24
- import type { CacheControlConfig, CacheControlRequest } from "../cache-control/types";
17
+ import { type CacheControlConfig, type CacheControlRequest } from "../cache-control/types";
18
+ import { type CacheConfig, type CacheManager } from "../cache/types";
25
19
  import { toFastifyCompressOption } from "../compress/compress";
26
- import type { CompressOptions } from "../compress/types";
27
- import type { SonamuDBConfig } from "../database/db";
28
- import { SD } from "../dict/sd";
29
- import type { LocalizedString } from "../dict/types";
30
- import { Naite } from "../naite/naite";
20
+ import { type CompressOptions } from "../compress/types";
21
+ import { DB } from "../database/db";
22
+ import { type SonamuDBConfig } from "../database/db";
23
+ import { SD, setSDConfig } from "../dict/sd";
24
+ import { type LocalizedString } from "../dict/types";
25
+ import { NotFoundException } from "../exceptions/so-exceptions";
31
26
  import { BufferedFile } from "../storage/buffered-file";
32
- import type { StorageManager } from "../storage/storage-manager";
33
- import type { KeyGenerator } from "../storage/types";
27
+ import { type StorageManager } from "../storage/storage-manager";
28
+ import { type KeyGenerator } from "../storage/types";
34
29
  import { UploadedFile } from "../storage/uploaded-file";
35
- import type { Syncer } from "../syncer/syncer";
36
- import type { WorkflowManager } from "../tasks/workflow-manager";
37
- import type { DevVitestManager } from "../testing/dev-vitest-manager";
38
- import type { SonamuFastifyConfig } from "../types/types";
30
+ import { createMockSSEFactory } from "../stream/sse";
31
+ import { type Syncer } from "../syncer/syncer";
32
+ import { type WorkflowManager } from "../tasks/workflow-manager";
33
+ import { type DevVitestManager } from "../testing/dev-vitest-manager";
34
+ import { type SonamuFastifyConfig } from "../types/types";
35
+ import { isDaemonServer } from "../utils/controller";
39
36
  import { exists, fileExists } from "../utils/fs-utils";
40
- import type { AbsolutePath } from "../utils/path-utils";
41
- import type { SonamuConfig, SonamuServerOptions, SonamuTaskOptions } from "./config";
42
- import type { Context } from "./context";
43
- import type { ExtendedApi } from "./decorators";
44
- import { getSecrets, type SonamuSecrets } from "./secret";
37
+ import { type AbsolutePath } from "../utils/path-utils";
38
+ import { convertFastifyHeadersToStandard, merge } from "../utils/utils";
39
+ import { type SonamuConfig, type SonamuServerOptions, type SonamuTaskOptions } from "./config";
40
+ import { type Context } from "./context";
41
+ import { type ExtendedApi } from "./decorators";
42
+ import { getSecrets } from "./secret";
43
+ import { type SonamuSecrets } from "./secret";
45
44
 
46
45
  class SonamuClass {
47
46
  public isInitialized: boolean = false;
@@ -53,7 +52,7 @@ class SonamuClass {
53
52
  public getContext(): Context {
54
53
  const store = this.asyncLocalStorage.getStore();
55
54
  if (store?.context) {
56
- return store.context as Context;
55
+ return store.context;
57
56
  }
58
57
 
59
58
  if (process.env.NODE_ENV === "test") {
@@ -63,7 +62,7 @@ class SonamuClass {
63
62
  reply: null,
64
63
  headers: {},
65
64
  createSSE: (schema: ZodObject) => createMockSSEFactory(schema),
66
- // biome-ignore lint/suspicious/noExplicitAny: 테스팅 환경에서 컨텍스트가 주입되지 않은 경우 빈 컨텍스트 리턴
65
+ // oxlint-disable-next-line @typescript-eslint/no-explicit-any -- 테스팅 환경에서 컨텍스트가 주입되지 않은 경우 빈 컨텍스트 리턴
67
66
  naiteStore: new Map<string, any>(),
68
67
  } as unknown as Context;
69
68
  } else {
@@ -202,6 +201,7 @@ class SonamuClass {
202
201
  // 설정을 로딩하는 것부터 시작
203
202
  const { loadConfig } = await import("./config");
204
203
  this.config = await loadConfig(this.apiRootPath);
204
+ setSDConfig(this.config.i18n);
205
205
  // sonamu.config.ts 기본값 설정
206
206
  this.config.database.database = this.config.database.database ?? "pg";
207
207
  this.config.database.defaultOptions.client = this.config.database.database ?? "pg";
@@ -217,6 +217,7 @@ class SonamuClass {
217
217
  // DB 로드
218
218
  const { DB } = await import("../database/db");
219
219
  this.dbConfig = DB.generateDBConfig(this.config.database);
220
+ DB.setConfig(this.dbConfig);
220
221
  if (!doSilent) {
221
222
  const chalk = (await import("chalk")).default;
222
223
  console.log(chalk.green("DB Config Loaded!"));
@@ -269,13 +270,7 @@ class SonamuClass {
269
270
  await TemplateManager.autoload();
270
271
  await this.syncer.autoloadSSRRoutes();
271
272
 
272
- const { isLocal, isTest } = await import("../utils/controller");
273
- if (isLocal()) {
274
- // 로컬에서는 코드 생성을 위해 Biome 셋업이 필요함 (현재 apiRootPath 전달하여 실행)
275
- (await import("../utils/formatter")).setupBiome(this.apiRootPath);
276
- }
277
-
278
- const { isHotReloadServer } = await import("../utils/controller");
273
+ const { isLocal, isTest, isHotReloadServer } = await import("../utils/controller");
279
274
  if (isLocal() && !isTest() && isHotReloadServer() && enableSync) {
280
275
  await this.syncer.sync();
281
276
  await this.startWatcher();
@@ -289,7 +284,7 @@ class SonamuClass {
289
284
  }
290
285
 
291
286
  async createServer(initOptions?: { enableSync?: boolean; doSilent?: boolean }) {
292
- if (this.isInitialized === false) {
287
+ if (!this.isInitialized) {
293
288
  await this.init(initOptions?.doSilent, initOptions?.enableSync);
294
289
  }
295
290
 
@@ -342,7 +337,7 @@ class SonamuClass {
342
337
  doSilent?: boolean;
343
338
  },
344
339
  ) {
345
- if (this.isInitialized === false) {
340
+ if (!this.isInitialized) {
346
341
  await this.init(options?.doSilent, options?.enableSync);
347
342
  }
348
343
 
@@ -516,7 +511,7 @@ class SonamuClass {
516
511
  });
517
512
  }
518
513
 
519
- // biome-ignore lint/suspicious/noExplicitAny: ViteDevServer 타입을 동적으로 로드해야 함
514
+ // oxlint-disable-next-line @typescript-eslint/no-explicit-any -- ViteDevServer 타입을 동적으로 로드해야 함
520
515
  private viteServer: any = null;
521
516
 
522
517
  /**
@@ -1035,7 +1030,7 @@ class SonamuClass {
1035
1030
  */
1036
1031
  async invokeApiForSSR(
1037
1032
  api: ExtendedApi,
1038
- // biome-ignore lint/suspicious/noExplicitAny: SSR에서 다양한 타입의 params를 받아야 함
1033
+ // oxlint-disable-next-line @typescript-eslint/no-explicit-any -- SSR에서 다양한 타입의 params를 받아야 함
1039
1034
  params: any[],
1040
1035
  config: SonamuFastifyConfig,
1041
1036
  request: FastifyRequest,
@@ -1066,7 +1061,7 @@ class SonamuClass {
1066
1061
  reply: FastifyReply,
1067
1062
  ): Promise<unknown> {
1068
1063
  const model = this.syncer.models[api.modelName];
1069
- // biome-ignore lint/suspicious/noExplicitAny: model은 모델 인스턴스이므로 메서드 호출 가능
1064
+ // oxlint-disable-next-line @typescript-eslint/no-explicit-any -- model은 모델 인스턴스이므로 메서드 호출 가능
1070
1065
  const result = await (model as any)[api.methodName].apply(model, args);
1071
1066
  reply.type(api.options.contentType ?? "application/json");
1072
1067
 
@@ -1103,7 +1098,7 @@ class SonamuClass {
1103
1098
  reply,
1104
1099
  headers: request.headers,
1105
1100
  createSSE,
1106
- naiteStore: Naite.createStore(),
1101
+ naiteStore: new Map(),
1107
1102
  locale,
1108
1103
  // auth
1109
1104
  user: session?.user ?? null,
@@ -1,13 +1,11 @@
1
1
  import chalk from "chalk";
2
+
2
3
  import { Sonamu } from "../api/sonamu";
3
4
  import { EntityManager } from "../entity/entity-manager";
4
- import type { EntityIndex, EntityJson, EntityProp } from "../types/types";
5
+ import { type EntityIndex, type EntityJson, type EntityProp } from "../types/types";
5
6
  import { betterAuthV1 } from "./better-auth-entities";
6
- import {
7
- type BetterAuthPluginId,
8
- ENTITY_DEFINITIONS,
9
- isValidPluginId,
10
- } from "./plugins/entity-definitions";
7
+ import { ENTITY_DEFINITIONS, isValidPluginId } from "./plugins/entity-definitions";
8
+ import { type BetterAuthPluginId } from "./plugins/entity-definitions";
11
9
 
12
10
  /**
13
11
  * 누락된 props 찾기
@@ -1,5 +1,6 @@
1
- import type { BetterAuthOptions } from "better-auth";
2
- import type { EntityJson } from "../types/types";
1
+ import { type BetterAuthOptions } from "better-auth";
2
+
3
+ import { type EntityJson } from "../types/types";
3
4
 
4
5
  /**
5
6
  * better-auth v1 엔티티 정의
@@ -1,10 +1,11 @@
1
- import type { BetterAuthOptions } from "better-auth";
2
- import type {
3
- AdapterFactoryCustomizeAdapterCreator,
4
- DBTransactionAdapter,
1
+ import { type BetterAuthOptions } from "better-auth";
2
+ import {
3
+ type AdapterFactoryCustomizeAdapterCreator,
4
+ type DBTransactionAdapter,
5
5
  } from "better-auth/adapters";
6
6
  import { createAdapterFactory } from "better-auth/adapters";
7
- import type { Knex } from "knex";
7
+ import { type Knex } from "knex";
8
+
8
9
  import { DB } from "../database/db";
9
10
 
10
11
  interface CleanedWhere {
@@ -1,4 +1,4 @@
1
- import type { BetterAuthEntityDef } from "./types";
1
+ import { type BetterAuthEntityDef } from "./types";
2
2
 
3
3
  /**
4
4
  * better-auth admin 플러그인 엔티티 정의
@@ -1,4 +1,4 @@
1
- import type { BetterAuthEntityDef } from "./types";
1
+ import { type BetterAuthEntityDef } from "./types";
2
2
 
3
3
  /**
4
4
  * better-auth Anonymous 플러그인 엔티티 정의
@@ -1,4 +1,4 @@
1
- import type { BetterAuthEntityDef } from "./types";
1
+ import { type BetterAuthEntityDef } from "./types";
2
2
 
3
3
  /**
4
4
  * better-auth API Key 플러그인 엔티티 정의