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
@@ -19,7 +19,7 @@ import { passkeyEntityDef } from "./passkey";
19
19
  import { phoneNumberEntityDef } from "./phone-number";
20
20
  import { ssoEntityDef } from "./sso";
21
21
  import { twoFactorEntityDef } from "./two-factor";
22
- import type { BetterAuthEntityDef, BetterAuthPluginId } from "./types";
22
+ import { type BetterAuthEntityDef, type BetterAuthPluginId } from "./types";
23
23
  import { usernameEntityDef } from "./username";
24
24
 
25
25
  /**
@@ -1,4 +1,4 @@
1
- import type { BetterAuthEntityDef } from "./types";
1
+ import { type BetterAuthEntityDef } from "./types";
2
2
 
3
3
  /**
4
4
  * better-auth JWT 플러그인 엔티티 정의
@@ -1,4 +1,4 @@
1
- import type { BetterAuthEntityDef } from "./types";
1
+ import { type BetterAuthEntityDef } from "./types";
2
2
 
3
3
  /**
4
4
  * better-auth Organization 플러그인 엔티티 정의
@@ -1,4 +1,4 @@
1
- import type { BetterAuthEntityDef } from "./types";
1
+ import { type BetterAuthEntityDef } from "./types";
2
2
 
3
3
  /**
4
4
  * better-auth Passkey 플러그인 엔티티 정의
@@ -1,4 +1,4 @@
1
- import type { BetterAuthEntityDef } from "./types";
1
+ import { type BetterAuthEntityDef } from "./types";
2
2
 
3
3
  /**
4
4
  * better-auth phone-number 플러그인 엔티티 정의
@@ -1,4 +1,4 @@
1
- import type { BetterAuthEntityDef } from "./types";
1
+ import { type BetterAuthEntityDef } from "./types";
2
2
 
3
3
  /**
4
4
  * better-auth SSO 플러그인 엔티티 정의
@@ -1,4 +1,4 @@
1
- import type { BetterAuthEntityDef } from "./types";
1
+ import { type BetterAuthEntityDef } from "./types";
2
2
 
3
3
  /**
4
4
  * better-auth 2FA (Two-Factor Authentication) 플러그인 엔티티 정의
@@ -1,4 +1,4 @@
1
- import type { EntityIndex, EntityJson, EntityProp } from "../../../types/types";
1
+ import { type EntityIndex, type EntityJson, type EntityProp } from "../../../types/types";
2
2
 
3
3
  /**
4
4
  * better-auth 플러그인 ID
@@ -1,4 +1,4 @@
1
- import type { BetterAuthEntityDef } from "./types";
1
+ import { type BetterAuthEntityDef } from "./types";
2
2
 
3
3
  /**
4
4
  * better-auth username 플러그인 엔티티 정의
@@ -1,4 +1,6 @@
1
- import { admin as _admin, type AdminOptions } from "better-auth/plugins";
1
+ import { admin as _admin } from "better-auth/plugins";
2
+ import { type AdminOptions } from "better-auth/plugins";
3
+
2
4
  import { merge } from "../../../utils/utils";
3
5
 
4
6
  export type { AdminOptions } from "better-auth/plugins";
@@ -1,4 +1,6 @@
1
- import { anonymous as _anonymous, type AnonymousOptions } from "better-auth/plugins";
1
+ import { anonymous as _anonymous } from "better-auth/plugins";
2
+ import { type AnonymousOptions } from "better-auth/plugins";
3
+
2
4
  import { merge } from "../../../utils/utils";
3
5
 
4
6
  export type { AnonymousOptions } from "better-auth/plugins";
@@ -1,4 +1,6 @@
1
- import { apiKey as _apiKey, type ApiKeyOptions } from "better-auth/plugins";
1
+ import { apiKey as _apiKey } from "better-auth/plugins";
2
+ import { type ApiKeyOptions } from "better-auth/plugins";
3
+
2
4
  import { merge } from "../../../utils/utils";
3
5
 
4
6
  export type { ApiKeyOptions } from "better-auth/plugins";
@@ -1,4 +1,6 @@
1
- import { jwt as _jwt, type JwtOptions } from "better-auth/plugins";
1
+ import { jwt as _jwt } from "better-auth/plugins";
2
+ import { type JwtOptions } from "better-auth/plugins";
3
+
2
4
  import { merge } from "../../../utils/utils";
3
5
 
4
6
  export type { JwtOptions } from "better-auth/plugins";
@@ -1,4 +1,6 @@
1
- import { organization as _organization, type OrganizationOptions } from "better-auth/plugins";
1
+ import { organization as _organization } from "better-auth/plugins";
2
+ import { type OrganizationOptions } from "better-auth/plugins";
3
+
2
4
  import { merge } from "../../../utils/utils";
3
5
 
4
6
  export type { OrganizationOptions } from "better-auth/plugins";
@@ -1,4 +1,6 @@
1
- import { passkey as _passkey, type PasskeyOptions } from "@better-auth/passkey";
1
+ import { passkey as _passkey } from "@better-auth/passkey";
2
+ import { type PasskeyOptions } from "@better-auth/passkey";
3
+
2
4
  import { merge } from "../../../utils/utils";
3
5
 
4
6
  export type { PasskeyOptions } from "@better-auth/passkey";
@@ -1,4 +1,6 @@
1
- import { phoneNumber as _phoneNumber, type PhoneNumberOptions } from "better-auth/plugins";
1
+ import { phoneNumber as _phoneNumber } from "better-auth/plugins";
2
+ import { type PhoneNumberOptions } from "better-auth/plugins";
3
+
2
4
  import { merge } from "../../../utils/utils";
3
5
 
4
6
  export type { PhoneNumberOptions } from "better-auth/plugins";
@@ -1,4 +1,5 @@
1
- import { sso as _sso, type SSOOptions } from "@better-auth/sso";
1
+ import { sso as _sso } from "@better-auth/sso";
2
+ import { type SSOOptions } from "@better-auth/sso";
2
3
 
3
4
  export type { SSOOptions } from "@better-auth/sso";
4
5
 
@@ -1,4 +1,6 @@
1
- import { twoFactor as _twoFactor, type TwoFactorOptions } from "better-auth/plugins";
1
+ import { twoFactor as _twoFactor } from "better-auth/plugins";
2
+ import { type TwoFactorOptions } from "better-auth/plugins";
3
+
2
4
  import { merge } from "../../../utils/utils";
3
5
 
4
6
  export type { TwoFactorOptions } from "better-auth/plugins";
@@ -1,4 +1,6 @@
1
- import { username as _username, type UsernameOptions } from "better-auth/plugins";
1
+ import { username as _username } from "better-auth/plugins";
2
+ import { type UsernameOptions } from "better-auth/plugins";
3
+
2
4
  import { merge } from "../../../utils/utils";
3
5
 
4
6
  export type { UsernameOptions } from "better-auth/plugins";
@@ -13,7 +13,6 @@ type GlobalWithTsLoaderRegisterState = typeof globalThis & {
13
13
  function resetRegisterState() {
14
14
  const globalState = globalThis as GlobalWithTsLoaderRegisterState;
15
15
  delete globalState[tsLoaderRegisterStateKey];
16
- delete process.env.SWCRC_PATH;
17
16
  }
18
17
 
19
18
  describe("ensureTsLoaderRegistered", () => {
@@ -21,7 +20,6 @@ describe("ensureTsLoaderRegistered", () => {
21
20
  vi.resetModules();
22
21
  vi.restoreAllMocks();
23
22
  vi.unmock("node:module");
24
- vi.unmock("../../utils/fs-utils.js");
25
23
  resetRegisterState();
26
24
  });
27
25
 
@@ -29,18 +27,14 @@ describe("ensureTsLoaderRegistered", () => {
29
27
  vi.resetModules();
30
28
  vi.restoreAllMocks();
31
29
  vi.unmock("node:module");
32
- vi.unmock("../../utils/fs-utils.js");
33
30
  resetRegisterState();
34
31
  });
35
32
 
36
- it("프로젝트 .swcrc를 우선 사용하고 중복 등록하지 않는다", async () => {
33
+ it("중복 등록하지 않는다", async () => {
37
34
  const registerMock = vi.fn();
38
35
  vi.doMock("node:module", () => ({
39
36
  register: registerMock,
40
37
  }));
41
- vi.doMock("../../utils/fs-utils.js", () => ({
42
- exists: vi.fn(async (candidate: string) => candidate === "/tmp/fixture-api/.swcrc"),
43
- }));
44
38
 
45
39
  const module = await import("../ts-loader-registration");
46
40
 
@@ -49,14 +43,15 @@ describe("ensureTsLoaderRegistered", () => {
49
43
  await module.ensureTsLoaderRegistered("/tmp/fixture-api");
50
44
 
51
45
  expect(registerMock).toHaveBeenCalledTimes(1);
52
- expect(registerMock).toHaveBeenCalledWith("@sonamu-kit/ts-loader/loader", {
53
- parentURL: expect.stringContaining("/src/bin/ts-loader-registration"),
54
- });
55
- expect(process.env.SWCRC_PATH).toBe("/tmp/fixture-api/.swcrc");
46
+ expect(registerMock).toHaveBeenCalledWith(
47
+ expect.stringContaining("/modules/ts-loader/dist/loader.js"),
48
+ {
49
+ parentURL: expect.stringContaining("/src/bin/ts-loader-registration"),
50
+ },
51
+ );
56
52
 
57
53
  await module.ensureTsLoaderRegistered("/tmp/another-api");
58
54
 
59
55
  expect(registerMock).toHaveBeenCalledTimes(1);
60
- expect(process.env.SWCRC_PATH).toBe("/tmp/fixture-api/.swcrc");
61
56
  });
62
57
  });
@@ -18,7 +18,7 @@ export const API_ARTIFACTS: BuildArtifact<{ configFilePath: string }>[] = [
18
18
  projectPath: "api",
19
19
  preBuildCommand: () => "rm -rf dist",
20
20
  buildCommand: ({ configFilePath }) =>
21
- `tsc --noEmit && swc src -d dist --config-file ${configFilePath} --strip-leading-paths`,
21
+ `tsc --noEmit && pnpm exec tsdown --config ${JSON.stringify(configFilePath)}`,
22
22
  },
23
23
  ];
24
24
 
@@ -32,7 +32,7 @@ export const WEB_ARTIFACTS: BuildArtifact[] = [
32
32
  description: "Web 프로젝트 클라이언트 빌드 산출물",
33
33
  projectPath: "web",
34
34
  preBuildCommand: () => "rm -rf dist/client",
35
- buildCommand: () => "tsc --noEmit && vite build --outDir dist/client",
35
+ buildCommand: () => "tsc --noEmit && vite build --config vite.config.ts --outDir dist/client",
36
36
  },
37
37
  {
38
38
  name: "Web Server",
@@ -40,7 +40,7 @@ export const WEB_ARTIFACTS: BuildArtifact[] = [
40
40
  projectPath: "web",
41
41
  preBuildCommand: () => "rm -rf dist/server",
42
42
  buildCommand: () =>
43
- "tsc --noEmit && vite build --ssr src/entry-server.generated.tsx --outDir dist/server",
43
+ "tsc --noEmit && vite build --config vite.config.ts --ssr src/entry-server.generated.tsx --outDir dist/server",
44
44
  postBuildCommand: () =>
45
45
  "rm -rf ../api/web-dist && mkdir -p ../api/web-dist && cp -r dist/* ../api/web-dist",
46
46
  },
package/src/bin/cli.ts CHANGED
@@ -6,20 +6,20 @@ dotenv.config();
6
6
  import assert from "assert";
7
7
  import { execSync, spawn } from "child_process";
8
8
  import { cp, mkdir, readdir, readFile, rm, symlink, writeFile } from "fs/promises";
9
- import knex, { type Knex } from "knex";
10
9
  import { createRequire } from "module";
11
10
  import os from "os";
12
11
  import path from "path";
13
12
  import process from "process";
13
+
14
+ import knex from "knex";
15
+ import { type Knex } from "knex";
14
16
  import { tsicli } from "tsicli";
15
- import { Sonamu } from "../api";
17
+
18
+ import { Sonamu } from "../api/sonamu";
16
19
  import { addCompanionsToEntities, generateBetterAuthEntities } from "../auth/auth-generator";
17
- import {
18
- type BetterAuthPluginId,
19
- isValidPluginId,
20
- SUPPORTED_PLUGIN_IDS,
21
- } from "../auth/plugins/entity-definitions";
22
- import type { SonamuDBConfig } from "../database/db";
20
+ import { isValidPluginId, SUPPORTED_PLUGIN_IDS } from "../auth/plugins/entity-definitions";
21
+ import { type BetterAuthPluginId } from "../auth/plugins/entity-definitions";
22
+ import { type SonamuDBConfig } from "../database/db";
23
23
  import { EntityManager } from "../entity/entity-manager";
24
24
  import { Migrator } from "../migration/migrator";
25
25
  import { FixtureManager } from "../testing/fixture-manager";
@@ -33,7 +33,8 @@ import {
33
33
  } from "../utils/console-util";
34
34
  import { exists } from "../utils/fs-utils";
35
35
  import { findApiRootPath, findAppRootPath } from "../utils/utils";
36
- import { API_ARTIFACTS, type BuildArtifact, WEB_ARTIFACTS } from "./build-config";
36
+ import { API_ARTIFACTS, WEB_ARTIFACTS } from "./build-config";
37
+ import { type BuildArtifact } from "./build-config";
37
38
  import { fixtureExploreCommand, fixtureFetchCommand, fixtureGenCommand } from "./fixture";
38
39
  import { testCommand } from "./test-command";
39
40
 
@@ -368,23 +369,24 @@ async function dev_web() {
368
369
  }
369
370
 
370
371
  /**
371
- * SWC 설정 파일 경로를 결정합니다. API 빌드(SWC)에서만 사용됩니다.
372
- * 프로젝트 루트에 .swcrc가 있으면 그것을, 없으면 sonamu 기본 설정을 사용합니다.
372
+ * API 빌드 설정 파일 경로를 결정합니다.
373
+ * 프로젝트 루트에 `tsdown.config.ts`가 있으면 그것을, 없으면 sonamu 기본 설정을 사용합니다.
373
374
  */
374
- async function resolveSwcConfigPath(): Promise<string> {
375
- let swcFilePath = ".swcrc";
375
+ async function resolveApiBuildConfigPath(): Promise<string> {
376
+ const localConfigPath = path.join(process.cwd(), "tsdown.config.ts");
377
+
376
378
  try {
377
- if (await exists(swcFilePath)) {
378
- console.log(chalk.dim("Using .swcrc from project root..."));
379
- } else {
380
- console.log(chalk.dim("Using default .swcrc from sonamu package..."));
381
- swcFilePath = path.join(import.meta.dirname, "..", "..", ".swcrc.project-default");
379
+ if (await exists(localConfigPath)) {
380
+ console.log(chalk.dim("Using tsdown.config.ts from project root..."));
381
+ return localConfigPath;
382
382
  }
383
+
384
+ console.log(chalk.dim("Using default tsdown API config from sonamu package..."));
385
+ return path.join(import.meta.dirname, "..", "..", "tsdown.api.config.ts");
383
386
  } catch (error) {
384
- console.error(chalk.red("Setting up swc config file failed."), error);
387
+ console.error(chalk.red("Setting up API build config failed."), error);
385
388
  process.exit(1);
386
389
  }
387
- return swcFilePath;
388
390
  }
389
391
 
390
392
  /**
@@ -404,7 +406,7 @@ async function build_all() {
404
406
  */
405
407
  async function build_api() {
406
408
  const appRoot = findAppRootPath();
407
- const swcFilePath = await resolveSwcConfigPath();
409
+ const configFilePath = await resolveApiBuildConfigPath();
408
410
 
409
411
  const apiStartedAt = Date.now();
410
412
  try {
@@ -412,7 +414,7 @@ async function build_api() {
412
414
  const cwd = path.join(appRoot, artifact.projectPath);
413
415
  printTaskHeader(artifact.name, artifact.description, cwd);
414
416
 
415
- await runBuildSteps(artifact, { cwd, buildCommandArgs: { configFilePath: swcFilePath } });
417
+ await runBuildSteps(artifact, { cwd, buildCommandArgs: { configFilePath } });
416
418
  }
417
419
  printBuildSummary("API", true, Date.now() - apiStartedAt);
418
420
  } catch (e) {
@@ -623,7 +625,7 @@ async function fixture_init() {
623
625
  }
624
626
 
625
627
  // 2. 대상DB 각각에 대하여 존재여부 확인 후 붓기
626
- for await (const { label, config, toSkip } of targets) {
628
+ for (const { label, config, toSkip } of targets) {
627
629
  const conn = config.connection as Knex.ConnectionConfig;
628
630
 
629
631
  if (toSkip === true) {
@@ -759,7 +761,7 @@ async function stub_practice(name: string) {
759
761
  const [, seqNo] = fileName.match(/^p([0-9]+)-/) ?? ["0", "0"];
760
762
  return parseInt(seqNo);
761
763
  })
762
- .sort((a, b) => b - a);
764
+ .toSorted((a, b) => b - a);
763
765
 
764
766
  if (filteredSeqs.length > 0) {
765
767
  return filteredSeqs[0];
@@ -1111,7 +1113,7 @@ async function skills_sync_to(
1111
1113
  hooks: [
1112
1114
  {
1113
1115
  type: "command",
1114
- command: "pnpm biome check --changed 2>&1 | head -60",
1116
+ command: "pnpm check 2>&1 | head -60",
1115
1117
  },
1116
1118
  ],
1117
1119
  },
@@ -1,10 +1,12 @@
1
1
  import chalk from "chalk";
2
2
  import prompts from "prompts";
3
- import { Sonamu } from "../api";
3
+
4
+ import { Sonamu } from "../api/sonamu";
4
5
  import { DB } from "../database/db";
5
6
  import { createKnexInstance } from "../database/knex";
6
7
  import { EntityManager } from "../entity/entity-manager";
7
- import { DataExplorer, type DataExplorerStrategy } from "../testing/data-explorer";
8
+ import { DataExplorer } from "../testing/data-explorer";
9
+ import { type DataExplorerStrategy } from "../testing/data-explorer";
8
10
  import { FixtureGenerator } from "../testing/fixture-generator";
9
11
 
10
12
  interface FixtureCommandOptions {
@@ -19,4 +19,5 @@ if (process.env.HOT === "yes" && process.env.API_ROOT_PATH) {
19
19
  console.log("🔥 HMR-hook initialized");
20
20
  }
21
21
 
22
+ // oxlint-disable-next-line
22
23
  export {};
@@ -1,8 +1,10 @@
1
1
  import path from "node:path";
2
+
2
3
  import chalk from "chalk";
3
- import type { SonamuConfig } from "../api/config";
4
+
5
+ import { type SonamuConfig } from "../api/config";
4
6
  import { loadConfig } from "../api/config";
5
- import type { RunResult, TestCaseResult } from "../testing";
7
+ import { type RunResult, type TestCaseResult } from "../testing";
6
8
  import { findApiRootPath } from "../utils/utils";
7
9
 
8
10
  async function loadTestConfig(): Promise<SonamuConfig> {
@@ -1,8 +1,9 @@
1
+ import { createRequire } from "node:module";
1
2
  import { register } from "node:module";
2
- import * as path from "node:path";
3
- import { exists } from "../utils/fs-utils.js";
3
+ import { pathToFileURL } from "node:url";
4
4
 
5
5
  const tsLoaderRegisterStateKey = Symbol.for("sonamu.ts-loader-register.state");
6
+ const require = createRequire(import.meta.url);
6
7
 
7
8
  type TsLoaderRegisterState = {
8
9
  registered: boolean;
@@ -22,33 +23,16 @@ function getTsLoaderRegisterState(): TsLoaderRegisterState {
22
23
  return globalState[tsLoaderRegisterStateKey];
23
24
  }
24
25
 
25
- async function setupSwcConfig(apiRoot: string) {
26
- try {
27
- const projectSwcrcPath = path.join(apiRoot, ".swcrc");
28
- if (await exists(projectSwcrcPath)) {
29
- process.env.SWCRC_PATH = projectSwcrcPath;
30
- return;
31
- }
32
-
33
- const sonamuSwcrcPath = path.join(import.meta.dirname, "..", "..", ".swcrc.project-default");
34
- if (await exists(sonamuSwcrcPath)) {
35
- process.env.SWCRC_PATH = sonamuSwcrcPath;
36
- return;
37
- }
38
- } catch {
39
- // 환경 변수 설정 실패는 무시 (loader가 기본 설정 사용)
40
- }
41
- }
42
-
43
26
  export async function ensureTsLoaderRegistered(apiRoot: string): Promise<void> {
44
27
  const state = getTsLoaderRegisterState();
45
28
  if (state.registered) {
46
29
  return;
47
30
  }
48
31
 
49
- await setupSwcConfig(apiRoot);
32
+ void apiRoot;
33
+ const loaderPath = require.resolve("@sonamu-kit/ts-loader/loader");
50
34
 
51
- register("@sonamu-kit/ts-loader/loader", {
35
+ register(pathToFileURL(loaderPath).href, {
52
36
  parentURL: import.meta.url,
53
37
  });
54
38
  state.registered = true;
@@ -1,6 +1,7 @@
1
1
  import { BentoCache, bentostore } from "bentocache";
2
2
  import { memoryDriver } from "bentocache/drivers/memory";
3
- import type { CacheConfig, CacheManager } from "./types";
3
+
4
+ import { type CacheConfig, type CacheManager } from "./types";
4
5
 
5
6
  /**
6
7
  * BentoCache 인스턴스를 생성합니다.
@@ -1,6 +1,6 @@
1
- import type { BaseFrameClass } from "../api/base-frame";
1
+ import { type BaseFrameClass } from "../api/base-frame";
2
2
  import { BaseModelClass } from "../database/base-model";
3
- import type { CacheDecoratorOptions, CacheManager } from "./types";
3
+ import { type CacheDecoratorOptions, type CacheManager } from "./types";
4
4
 
5
5
  type DecoratorTarget = { constructor: { name: string } };
6
6
 
@@ -1,5 +1,5 @@
1
- import type { BentoCache } from "bentocache";
2
- import type { RawCommonOptions } from "bentocache/types";
1
+ import { type BentoCache } from "bentocache";
2
+ import { type RawCommonOptions } from "bentocache/types";
3
3
 
4
4
  /**
5
5
  * 캐시 설정 (sonamu.config.ts에서 사용)
@@ -28,5 +28,5 @@ export type CacheDecoratorOptions = {
28
28
  /**
29
29
  * CacheManager 타입 (BentoCache 확장)
30
30
  */
31
- // biome-ignore lint/suspicious/noExplicitAny: BentoCache의 제네릭 타입을 그대로 사용
31
+ // oxlint-disable-next-line @typescript-eslint/no-explicit-any -- BentoCache의 제네릭 타입을 그대로 사용
32
32
  export type CacheManager = BentoCache<any>;
@@ -1,5 +1,6 @@
1
- import type { FastifyReply } from "fastify";
2
- import type { CacheControlConfig } from "./types.js";
1
+ import { type FastifyReply } from "fastify";
2
+
3
+ import { type CacheControlConfig } from "./types.js";
3
4
 
4
5
  /**
5
6
  * 자주 사용하는 Cache-Control 프리셋입니다.
@@ -1,5 +1,5 @@
1
- import type { ExtendedApi } from "../api/decorators.js";
2
- import type { SSRRoute } from "../ssr/types.js";
1
+ import { type ExtendedApi } from "../api/decorators.js";
2
+ import { type SSRRoute } from "../ssr/types.js";
3
3
 
4
4
  /**
5
5
  * Cache-Control 헤더 설정을 위한 타입입니다.
@@ -1,4 +1,4 @@
1
- import type { CompressConfig, CompressOptions } from "./types";
1
+ import { type CompressConfig, type CompressOptions } from "./types";
2
2
 
3
3
  /**
4
4
  * 압축 프리셋입니다.
@@ -1,6 +1,7 @@
1
1
  import * as fs from "node:fs";
2
2
  import * as path from "node:path";
3
- import type { Cone, EntityJson } from "../types/types";
3
+
4
+ import { type Cone, type EntityJson } from "../types/types";
4
5
 
5
6
  /**
6
7
  * Cone 생성 컨텍스트
@@ -308,12 +309,12 @@ async function callAnthropicAPI(
308
309
  if (error && typeof error === "object" && "statusCode" in error) {
309
310
  const statusCode = (error as { statusCode: number }).statusCode;
310
311
  if (statusCode === 429) {
311
- throw new Error("Rate limit exceeded. Please try again later.");
312
+ throw new Error("Rate limit exceeded. Please try again later.", { cause: error });
312
313
  }
313
314
  }
314
315
 
315
316
  const message = error instanceof Error ? error.message : "Unknown error";
316
- throw new Error(`LLM API failed: ${message}`);
317
+ throw new Error(`LLM API failed: ${message}`, { cause: error });
317
318
  }
318
319
  }
319
320
 
@@ -348,6 +349,7 @@ function parseConeResponse(text: string): ConeGenerationResult {
348
349
  `Failed to parse LLM response: ${message}\n\n` +
349
350
  `Original response:\n${text}\n\n` +
350
351
  `Cleaned JSON:\n${jsonText}`,
352
+ { cause: error },
351
353
  );
352
354
  }
353
355
  }
@@ -4,7 +4,7 @@
4
4
  */
5
5
 
6
6
  import { getLogger } from "@logtape/logtape";
7
- import type { Knex } from "knex";
7
+ import { type Knex } from "knex";
8
8
 
9
9
  const logger = getLogger(["sonamu", "internal", "batch-update"]);
10
10
 
@@ -1,22 +1,28 @@
1
1
  /** biome-ignore-all lint/suspicious/noExplicitAny: Puri의 타입은 개별 모델에서 확정되므로 BaseModel에서는 any를 허용함 */
2
- import { getLogger, type Logger } from "@logtape/logtape";
3
- import type { Knex } from "knex";
4
- import { cloneDeep, group, isObject, omit, set } from "radashi";
5
- import { type ListResult, normalizeFilterQuery, validateSonamuFilters } from "..";
6
- import { Sonamu } from "../api";
2
+ import { getLogger } from "@logtape/logtape";
3
+ import { type Logger } from "@logtape/logtape";
4
+ import { type Knex } from "knex";
5
+ import { cloneDeep, cluster, group, isObject, omit, set } from "radashi";
6
+
7
+ import { Sonamu } from "../api/sonamu";
7
8
  import { EntityManager } from "../entity/entity-manager";
8
- import type { FilterOperator, FilterQuery } from "../filter/types";
9
+ import { type FilterOperator, type FilterQuery } from "../filter/types";
10
+ import { normalizeFilterQuery, validateSonamuFilters } from "../filter/utils";
9
11
  import { convertDomainToCategory } from "../logger/category";
10
- import type { DatabaseSchemaExtend, SonamuQueryMode } from "../types/types";
12
+ import { type DatabaseSchemaExtend, type SonamuQueryMode } from "../types/types";
13
+ import { type ListResult } from "../utils/model";
11
14
  import { getJoinTables, getTableNamesFromWhere } from "../utils/sql-parser";
12
- import { chunk } from "../utils/utils";
13
- import type { EnhancerMap, ResolveSubsetIntersection } from "./base-model.types";
14
- import type { DBPreset } from "./db";
15
+ import { type EnhancerMap, type ResolveSubsetIntersection } from "./base-model.types";
16
+ import { type DBPreset } from "./db";
15
17
  import { DB } from "./db";
16
18
  import { Puri } from "./puri";
17
- import type { UnionExtractedTTables } from "./puri.types";
18
- import type { InferAllSubsets, PuriLoaderQueries, PuriSubsetFn } from "./puri-subset.types";
19
+ import {
20
+ type InferAllSubsets,
21
+ type PuriLoaderQueries,
22
+ type PuriSubsetFn,
23
+ } from "./puri-subset.types";
19
24
  import { PuriWrapper } from "./puri-wrapper";
25
+ import { type UnionExtractedTTables } from "./puri.types";
20
26
  import { UpsertBuilder } from "./upsert-builder";
21
27
 
22
28
  type UnknownDBRecord = Record<string, unknown>;
@@ -91,7 +97,7 @@ export class BaseModelClass<
91
97
  }
92
98
 
93
99
  let resultIds: number[] = [];
94
- for (const items of chunk(unqKeys, chunkSize)) {
100
+ for (const items of cluster(unqKeys, chunkSize)) {
95
101
  const dbRows = await wdb(tableName)
96
102
  .select("id", wdb.raw(selectField))
97
103
  .whereIn(whereInField as string, items);
@@ -463,7 +469,7 @@ export class BaseModelClass<
463
469
  return qb.limit(num).offset(num * (page - 1));
464
470
  }
465
471
  })();
466
- let unloadedRows = (await limitedQb) as any[];
472
+ let unloadedRows = await limitedQb;
467
473
 
468
474
  if (debug) {
469
475
  qb.debug();