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
@@ -10,6 +10,7 @@ description: Sonamu better-auth authentication system. Automatic entity generati
10
10
  ## Automatic Entity Generation
11
11
 
12
12
  **Source code:**
13
+
13
14
  - CLI: `modules/sonamu/src/bin/cli.ts` (auth_generate function)
14
15
  - Generation logic: `modules/sonamu/src/auth/auth-generator.ts`
15
16
  - Entity definitions: `modules/sonamu/src/auth/better-auth-entities.ts`
@@ -56,14 +57,15 @@ pnpm sonamu auth generate --plugins admin,2fa,username
56
57
 
57
58
  The 4 entities generated (`betterAuthV1` array):
58
59
 
59
- | Entity | Table | Key fields |
60
- |--------|--------|-----------|
61
- | User | users | id, name, email, email_verified, image |
62
- | Session | sessions | id, token, expires_at, user_id |
63
- | Account | accounts | id, provider_id, access_token, user_id |
64
- | Verification | verifications | id, identifier, value, expires_at |
60
+ | Entity | Table | Key fields |
61
+ | ------------ | ------------- | -------------------------------------- |
62
+ | User | users | id, name, email, email_verified, image |
63
+ | Session | sessions | id, token, expires_at, user_id |
64
+ | Account | accounts | id, provider_id, access_token, user_id |
65
+ | Verification | verifications | id, identifier, value, expires_at |
65
66
 
66
67
  **How it works:**
68
+
67
69
  - If the entity does not exist, it is created fresh
68
70
  - If the entity already exists, only missing fields are added
69
71
  - Fields with changed types are updated automatically
@@ -73,12 +75,12 @@ The 4 entities generated (`betterAuthV1` array):
73
75
 
74
76
  **Source code:** `modules/sonamu/src/auth/better-auth-entities.ts` (BASE_FIELD_MAPPINGS)
75
77
 
76
- | better-auth | Sonamu |
77
- |-------------|--------|
78
+ | better-auth | Sonamu |
79
+ | --------------- | ---------------- |
78
80
  | `emailVerified` | `email_verified` |
79
- | `createdAt` | `created_at` |
80
- | `userId` | `user_id` |
81
- | `expiresAt` | `expires_at` |
81
+ | `createdAt` | `created_at` |
82
+ | `userId` | `user_id` |
83
+ | `expiresAt` | `expires_at` |
82
84
 
83
85
  ## Config Setup
84
86
 
@@ -102,12 +104,12 @@ server: {
102
104
 
103
105
  ## API Endpoints (Auto-registered)
104
106
 
105
- | Path | Method | Description |
106
- |------|--------|------|
107
- | `/api/auth/sign-up/email` | POST | Sign up |
108
- | `/api/auth/sign-in/email` | POST | Sign in |
109
- | `/api/auth/sign-out` | POST | Sign out |
110
- | `/api/auth/get-session` | GET | Get session |
107
+ | Path | Method | Description |
108
+ | ------------------------- | ------ | ----------- |
109
+ | `/api/auth/sign-up/email` | POST | Sign up |
110
+ | `/api/auth/sign-in/email` | POST | Sign in |
111
+ | `/api/auth/sign-out` | POST | Sign out |
112
+ | `/api/auth/get-session` | GET | Get session |
111
113
 
112
114
  ## Accessing user/session from Context
113
115
 
@@ -119,9 +121,9 @@ import { Sonamu } from "sonamu";
119
121
  @api({ httpMethod: "GET", guards: ["user"] })
120
122
  async me(): Promise<UserSubsetA | null> {
121
123
  const { user, session } = Sonamu.getContext();
122
-
124
+
123
125
  if (!user) return null;
124
-
126
+
125
127
  // user.id, user.email, user.name, etc. are accessible
126
128
  return this.findById("A", user.id);
127
129
  }
@@ -134,6 +136,7 @@ async me(): Promise<UserSubsetA | null> {
134
136
  ### Built-in Guards
135
137
 
136
138
  Sonamu provides 3 default guards:
139
+
137
140
  - `query`: allows all users (including unauthenticated)
138
141
  - `user`: allows only authenticated users
139
142
  - `admin`: allows only users with admin privileges
@@ -202,35 +205,35 @@ import { Sonamu } from "sonamu";
202
205
  apiConfig: {
203
206
  guardHandler: (guard, request, api) => {
204
207
  const { user } = Sonamu.getContext();
205
-
208
+
206
209
  switch (guard) {
207
210
  case "user":
208
211
  if (!user) {
209
212
  throw new Error("Login is required");
210
213
  }
211
214
  break;
212
-
215
+
213
216
  case "admin":
214
217
  // Requires adding a role field to the User entity
215
218
  if (!user || (user as any).role !== "admin") {
216
219
  throw new Error("Only admins can access this");
217
220
  }
218
221
  break;
219
-
222
+
220
223
  case "manager":
221
224
  // Custom guard: manager permission
222
225
  if (!user || !["admin", "manager"].includes((user as any).role)) {
223
226
  throw new Error("Manager permission is required");
224
227
  }
225
228
  break;
226
-
229
+
227
230
  case "evaluator":
228
231
  // Custom guard: evaluator permission
229
232
  if (!user || !["admin", "evaluator"].includes((user as any).role)) {
230
233
  throw new Error("Evaluator permission is required");
231
234
  }
232
235
  break;
233
-
236
+
234
237
  case "query":
235
238
  // Allow all users
236
239
  break;
@@ -278,6 +281,7 @@ Adding an enum:
278
281
  ## Checklist
279
282
 
280
283
  After setup, verify:
284
+
281
285
  - [ ] **[Before generate] Confirm with user whether plugins are needed**
282
286
  - If "later" → remember `plugins_deferred: true`, guide on optimal timing
283
287
  - [ ] Run `pnpm sonamu auth generate [--plugins ...]`
@@ -291,9 +295,11 @@ After setup, verify:
291
295
  ## Reference
292
296
 
293
297
  **Skills documentation:**
298
+
294
299
  - Detailed configuration: "server.auth details" section in `config.md`
295
300
  - Context API: "Context access" section in `api.md`
296
301
 
297
302
  **Official documentation:**
303
+
298
304
  - Korean: `modules/docs/ko/api-development/authentication/setup.mdx`
299
305
  - English: `modules/docs/en/api-development/authentication/setup.mdx`
@@ -12,6 +12,7 @@ description: CDD artifact technical reference. contract.md format, rules.json fo
12
12
  Documents domain rules and decision rationale in a cohesive form. Located at `contract/**/*.contract.md`.
13
13
 
14
14
  **Include:**
15
+
15
16
  - Domain rules and constraints ("Refunds are only allowed within 7 days of payment")
16
17
  - Decision rationale ("Due to PG provider policy")
17
18
  - Cross-module domain workflows ("Order status: pending → confirmed → shipped → completed")
@@ -20,6 +21,7 @@ Documents domain rules and decision rationale in a cohesive form. Located at `co
20
21
  - Edge cases and intended handling
21
22
 
22
23
  **Exclude:**
24
+
23
25
  - Implementation details (file paths, function names, class structure)
24
26
  - API endpoints or data schemas
25
27
  - UI layouts or component structure
@@ -62,13 +64,13 @@ Records code conventions and UI/API rules.
62
64
  }
63
65
  ```
64
66
 
65
- | Field | Description |
66
- |-------|-------------|
67
- | `description` | Scope and intent of the rule-set |
68
- | `rules[].id` | Stable identifier |
69
- | `rules[].when` | Condition under which the rule applies |
70
- | `rules[].instruction` | Specific directive to follow |
71
- | `rules[].examples` | Optional code/usage examples |
67
+ | Field | Description |
68
+ | --------------------- | -------------------------------------- |
69
+ | `description` | Scope and intent of the rule-set |
70
+ | `rules[].id` | Stable identifier |
71
+ | `rules[].when` | Condition under which the rule applies |
72
+ | `rules[].instruction` | Specific directive to follow |
73
+ | `rules[].examples` | Optional code/usage examples |
72
74
 
73
75
  ### `*.known-issues.json`
74
76
 
@@ -94,14 +96,21 @@ Records known bugs, framework constraints, and temporary workarounds. Include in
94
96
  ACs are not managed as separate documents. The describe/test names in test files are the ACs themselves.
95
97
 
96
98
  **AC writing principles:**
99
+
97
100
  - **Small and specific**: one AC = one behavior/outcome
98
101
  - **Include input and expected result in the name**: `"Returns 409 when email is duplicate"` > `"Returns an error"`
99
102
 
100
103
  ```typescript
101
- describe('sign up', () => {
102
- test('returns 409 when email is duplicate', () => { /* TODO */ });
103
- test('returns 400 when password is shorter than 8 characters', () => { /* TODO */ });
104
- test('returns the created user_id on success', () => { /* TODO */ });
104
+ describe("sign up", () => {
105
+ test("returns 409 when email is duplicate", () => {
106
+ /* TODO */
107
+ });
108
+ test("returns 400 when password is shorter than 8 characters", () => {
109
+ /* TODO */
110
+ });
111
+ test("returns the created user_id on success", () => {
112
+ /* TODO */
113
+ });
105
114
  });
106
115
  ```
107
116
 
@@ -113,13 +122,13 @@ describe('sign up', () => {
113
122
  pnpm cdd <command>
114
123
  ```
115
124
 
116
- | Command | Description |
117
- |---------|-------------|
125
+ | Command | Description |
126
+ | ------------------------------- | ----------------------------------------------------------------------------------------------- |
118
127
  | `cdd ac add <file> <test-name>` | Add an empty test skeleton to a test file. Use `--describe <group>` to specify a describe block |
119
- | `cdd ac list [file]` | Print the describe/test tree of a test file. Parses `test()`, `it()`, and `testAs()` patterns |
120
- | `cdd rules validate` | Validate the format of `contract/rules/*.rules.json` |
121
- | `cdd agents init [--force]` | Initialize CDD agent setup in the project (creates `.agents/`, `AGENTS.md`, and symlinks) |
122
- | `cdd agents sync [--dry-run]` | Update CDD agent prompts to the latest version |
128
+ | `cdd ac list [file]` | Print the describe/test tree of a test file. Parses `test()`, `it()`, and `testAs()` patterns |
129
+ | `cdd rules validate` | Validate the format of `contract/rules/*.rules.json` |
130
+ | `cdd agents init [--force]` | Initialize CDD agent setup in the project (creates `.agents/`, `AGENTS.md`, and symlinks) |
131
+ | `cdd agents sync [--dry-run]` | Update CDD agent prompts to the latest version |
123
132
 
124
133
  ### Common options
125
134
 
@@ -12,11 +12,11 @@ During fixture generation, the LLM references `cone.note` to produce realistic,
12
12
 
13
13
  ## Role of Cone
14
14
 
15
- | Purpose | Description |
16
- |---------|-------------|
15
+ | Purpose | Description |
16
+ | ---------------------- | --------------------------------------------------------------------- |
17
17
  | **Fixture generation** | LLM generates contextually appropriate test data based on `cone.note` |
18
- | **Scaffolding** | Uses cone information to generate model and view templates |
19
- | **Documentation** | Metadata describing Entity structure and the meaning of each field |
18
+ | **Scaffolding** | Uses cone information to generate model and view templates |
19
+ | **Documentation** | Metadata describing Entity structure and the meaning of each field |
20
20
 
21
21
  ---
22
22
 
@@ -24,32 +24,32 @@ During fixture generation, the LLM references `cone.note` to produce realistic,
24
24
 
25
25
  ### Entity cone
26
26
 
27
- | Field | Type | Description |
28
- |-------|------|-------------|
29
- | `note` | string | Entity purpose, business context, and fixture generation guide |
30
- | `tags` | string[] | Classification tags |
27
+ | Field | Type | Description |
28
+ | ------ | -------- | -------------------------------------------------------------- |
29
+ | `note` | string | Entity purpose, business context, and fixture generation guide |
30
+ | `tags` | string[] | Classification tags |
31
31
 
32
32
  ### Prop cone
33
33
 
34
- | Field | Type | Description |
35
- |-------|------|-------------|
36
- | `note` | string | **Highest priority.** Business meaning of the field, concrete examples, value ranges, format constraints. Input the LLM reads to generate data |
37
- | `fixtureGenerator` | string | **Fallback.** faker.js expression. Fallback when no API key is available |
38
- | `fixtureDefault` | any | Fixed default value |
39
- | `fixtureStrategy` | string | `"sequence"` — used when id is auto-assigned by a DB sequence |
40
- | `dataSource` | object | Strategy for fetching reference data for relation props |
34
+ | Field | Type | Description |
35
+ | ------------------ | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------- |
36
+ | `note` | string | **Highest priority.** Business meaning of the field, concrete examples, value ranges, format constraints. Input the LLM reads to generate data |
37
+ | `fixtureGenerator` | string | **Fallback.** faker.js expression. Fallback when no API key is available |
38
+ | `fixtureDefault` | any | Fixed default value |
39
+ | `fixtureStrategy` | string | `"sequence"` — used when id is auto-assigned by a DB sequence |
40
+ | `dataSource` | object | Strategy for fetching reference data for relation props |
41
41
 
42
42
  ### Subset cone
43
43
 
44
- | Field | Type | Description |
45
- |-------|------|-------------|
44
+ | Field | Type | Description |
45
+ | ------ | ------ | ---------------------------------------------------- |
46
46
  | `note` | string | Subset purpose, included fields, and when it is used |
47
47
 
48
48
  ### Enum cone
49
49
 
50
- | Field | Type | Description |
51
- |-------|------|-------------|
52
- | `note` | string | Meaning and usage context of the enum |
50
+ | Field | Type | Description |
51
+ | -------- | ------ | -------------------------------------- |
52
+ | `note` | string | Meaning and usage context of the enum |
53
53
  | `values` | object | `{ note: string }` for each enum value |
54
54
 
55
55
  ---
@@ -97,10 +97,10 @@ pnpm sonamu cone gen Post --locale en
97
97
 
98
98
  #### Options
99
99
 
100
- | Option | Description |
101
- |--------|-------------|
102
- | `--all` | Generate cone for all Entities |
103
- | `--regenerate` | Overwrite existing cone (default: only generate for fields with no note) |
100
+ | Option | Description |
101
+ | ----------------------- | ------------------------------------------------------------------------------------ |
102
+ | `--all` | Generate cone for all Entities |
103
+ | `--regenerate` | Overwrite existing cone (default: only generate for fields with no note) |
104
104
  | `--locale <ko\|en\|ja>` | Generation language (default: `i18n.defaultLocale` from `sonamu.config.ts`, or `ko`) |
105
105
 
106
106
  #### How it works
@@ -129,12 +129,12 @@ pnpm sonamu stub entity Post --no-cones
129
129
 
130
130
  #### Template cone vs LLM cone
131
131
 
132
- | Item | Template cone | LLM cone |
133
- |------|--------------|----------|
134
- | API key | Not required | Required |
132
+ | Item | Template cone | LLM cone |
133
+ | ------- | -------------------------------- | ------------------------ |
134
+ | API key | Not required | Required |
135
135
  | Quality | Defaults based on faker-mappings | Reflects project context |
136
- | Speed | Immediate | Takes a few seconds |
137
- | Upgrade | Can be upgraded with `cone gen` | — |
136
+ | Speed | Immediate | Takes a few seconds |
137
+ | Upgrade | Can be upgraded with `cone gen` | — |
138
138
 
139
139
  ---
140
140
 
@@ -233,14 +233,14 @@ Using `fixtureStrategy: "sequence"` causes a `MAX(id::bigint)` error during fixt
233
233
 
234
234
  Specifies how reference data is fetched for relation props.
235
235
 
236
- | Strategy | Description |
237
- |----------|-------------|
236
+ | Strategy | Description |
237
+ | -------- | -------------------------------- |
238
238
  | `recent` | Most recent data (by created_at) |
239
- | `sample` | Uniform sampling |
240
- | `random` | Random sampling |
241
- | `ids` | Specific IDs |
242
- | `query` | Custom query |
243
- | `file` | Load from file |
239
+ | `sample` | Uniform sampling |
240
+ | `random` | Random sampling |
241
+ | `ids` | Specific IDs |
242
+ | `query` | Custom query |
243
+ | `file` | Load from file |
244
244
 
245
245
  ```json
246
246
  "dataSource": {
@@ -253,16 +253,16 @@ Specifies how reference data is fetched for relation props.
253
253
 
254
254
  **Source:** `modules/sonamu/src/testing/data-explorer.ts`
255
255
 
256
- | Option | Type | Default | Description |
257
- |--------|------|---------|-------------|
258
- | `strategy` | string | — | Fetch strategy (see table above) |
259
- | `limit` | number | — | Maximum number of records to fetch |
260
- | `where` | object \| function | — | WHERE condition (object or Knex QueryBuilder function) |
261
- | `orderBy` | string | — | Sort criteria |
262
- | `ids` | number[] | — | Specific ID list for `ids` strategy |
263
- | `filePath` | string | — | File path for `file` strategy |
264
- | `useCache` | boolean | `false` | Whether to use caching |
265
- | `cacheTtl` | number | `300` | Cache TTL (in seconds) |
256
+ | Option | Type | Default | Description |
257
+ | ---------- | ------------------ | ------- | ------------------------------------------------------ |
258
+ | `strategy` | string | — | Fetch strategy (see table above) |
259
+ | `limit` | number | — | Maximum number of records to fetch |
260
+ | `where` | object \| function | — | WHERE condition (object or Knex QueryBuilder function) |
261
+ | `orderBy` | string | — | Sort criteria |
262
+ | `ids` | number[] | — | Specific ID list for `ids` strategy |
263
+ | `filePath` | string | — | File path for `file` strategy |
264
+ | `useCache` | boolean | `false` | Whether to use caching |
265
+ | `cacheTtl` | number | `300` | Cache TTL (in seconds) |
266
266
 
267
267
  **Example using a where condition:**
268
268
 
@@ -280,10 +280,10 @@ Specifies how reference data is fetched for relation props.
280
280
 
281
281
  Used in `fixture gen` to fetch related data alongside the target data.
282
282
 
283
- | Option | Type | Default | Description |
284
- |--------|------|---------|-------------|
285
- | `includeRelations` | boolean | `true` | Whether to include related data |
286
- | `maxDepth` | number | `2` | Maximum depth for recursive traversal |
283
+ | Option | Type | Default | Description |
284
+ | ------------------ | ------- | ------- | ------------------------------------- |
285
+ | `includeRelations` | boolean | `true` | Whether to include related data |
286
+ | `maxDepth` | number | `2` | Maximum depth for recursive traversal |
287
287
 
288
288
  ---
289
289
 
@@ -44,21 +44,21 @@ SLACK_CHANNEL_ID=C0123456789
44
44
 
45
45
  ### Environment Variable Reference
46
46
 
47
- | Variable | Required | Description |
48
- |-----|-----|------|
49
- | `DB_HOST` | ✓ | DB host (Docker: `0.0.0.0`, external DB: the relevant IP) |
50
- | `DB_PORT` | ✓ | DB port (default: `5432`) |
51
- | `DB_USER` | ✓ | DB username (default: `postgres`) |
52
- | `DB_PASSWORD` | ✓ | DB password |
53
- | `DATABASE_NAME` | ✓ | Database name |
54
- | `PROJECT_NAME` | ✓ | Project name (used in Docker, config) |
55
- | `CONTAINER_NAME` | | Docker container name |
56
- | `SESSION_SECRET` | | Session encryption key (required in production) |
57
- | `SESSION_SALT` | | Session salt (16 characters) |
58
- | `AWS_ACCESS_KEY_ID` | | Required when using S3 |
59
- | `AWS_SECRET_ACCESS_KEY` | | Required when using S3 |
60
- | `S3_REGION` | | S3 region (default: `ap-northeast-2`) |
61
- | `S3_BUCKET` | | S3 bucket name |
47
+ | Variable | Required | Description |
48
+ | ----------------------- | -------- | --------------------------------------------------------- |
49
+ | `DB_HOST` | ✓ | DB host (Docker: `0.0.0.0`, external DB: the relevant IP) |
50
+ | `DB_PORT` | ✓ | DB port (default: `5432`) |
51
+ | `DB_USER` | ✓ | DB username (default: `postgres`) |
52
+ | `DB_PASSWORD` | ✓ | DB password |
53
+ | `DATABASE_NAME` | ✓ | Database name |
54
+ | `PROJECT_NAME` | ✓ | Project name (used in Docker, config) |
55
+ | `CONTAINER_NAME` | | Docker container name |
56
+ | `SESSION_SECRET` | | Session encryption key (required in production) |
57
+ | `SESSION_SALT` | | Session salt (16 characters) |
58
+ | `AWS_ACCESS_KEY_ID` | | Required when using S3 |
59
+ | `AWS_SECRET_ACCESS_KEY` | | Required when using S3 |
60
+ | `S3_REGION` | | S3 region (default: `ap-northeast-2`) |
61
+ | `S3_BUCKET` | | S3 bucket name |
62
62
 
63
63
  ---
64
64
 
@@ -79,14 +79,30 @@ const port = 34900;
79
79
 
80
80
  export default defineConfig({
81
81
  projectName: process.env.PROJECT_NAME ?? "MyProject",
82
- api: { /* API settings */ },
83
- i18n: { /* i18n settings */ },
84
- sync: { /* sync settings */ },
85
- database: { /* DB settings */ },
86
- logging: { /* logging settings (disable with false) */ },
87
- test: { /* test settings */ },
88
- server: { /* server settings */ },
89
- slackConfirm: { /* Production migration Slack approval */ },
82
+ api: {
83
+ /* API settings */
84
+ },
85
+ i18n: {
86
+ /* i18n settings */
87
+ },
88
+ sync: {
89
+ /* sync settings */
90
+ },
91
+ database: {
92
+ /* DB settings */
93
+ },
94
+ logging: {
95
+ /* logging settings (disable with false) */
96
+ },
97
+ test: {
98
+ /* test settings */
99
+ },
100
+ server: {
101
+ /* server settings */
102
+ },
103
+ slackConfirm: {
104
+ /* Production migration Slack approval */
105
+ },
90
106
  });
91
107
  ```
92
108
 
@@ -190,6 +206,7 @@ pnpm sonamu auth generate
190
206
  ```
191
207
 
192
208
  Generated entities:
209
+
193
210
  - **User** - user (id, name, email, email_verified, image)
194
211
  - **Session** - session (token, expires_at, user_id)
195
212
  - **Account** - account (provider_id, access_token, etc.)
@@ -221,12 +238,12 @@ server: {
221
238
 
222
239
  Automatically registered under the `/api/auth/*` path:
223
240
 
224
- | Endpoint | Method | Description |
225
- |------------|--------|------|
226
- | `/api/auth/sign-up/email` | POST | Sign up |
227
- | `/api/auth/sign-in/email` | POST | Sign in |
228
- | `/api/auth/sign-out` | POST | Sign out |
229
- | `/api/auth/get-session` | GET | Get session |
241
+ | Endpoint | Method | Description |
242
+ | ------------------------- | ------ | ----------- |
243
+ | `/api/auth/sign-up/email` | POST | Sign up |
244
+ | `/api/auth/sign-in/email` | POST | Sign in |
245
+ | `/api/auth/sign-out` | POST | Sign out |
246
+ | `/api/auth/get-session` | GET | Get session |
230
247
 
231
248
  ### 4. Accessing user/session from Context
232
249
 
@@ -243,12 +260,12 @@ async me(): Promise<UserSubsetA | null> {
243
260
 
244
261
  better-auth uses camelCase, Sonamu uses snake_case. Automatic mapping is applied:
245
262
 
246
- | better-auth | Sonamu |
247
- |-------------|--------|
263
+ | better-auth | Sonamu |
264
+ | --------------- | ---------------- |
248
265
  | `emailVerified` | `email_verified` |
249
- | `createdAt` | `created_at` |
250
- | `userId` | `user_id` |
251
- | `expiresAt` | `expires_at` |
266
+ | `createdAt` | `created_at` |
267
+ | `userId` | `user_id` |
268
+ | `expiresAt` | `expires_at` |
252
269
 
253
270
  ---
254
271
 
@@ -277,8 +294,8 @@ declare module "sonamu" {
277
294
  query: true;
278
295
  admin: true;
279
296
  user: true;
280
- manager: true; // added
281
- superadmin: true; // added
297
+ manager: true; // added
298
+ superadmin: true; // added
282
299
  }
283
300
  }
284
301
  ```
@@ -370,9 +387,11 @@ export function canAccess(userRole: string, menu: keyof typeof menuPermissions)
370
387
 
371
388
  ```tsx
372
389
  // web/src/components/Sidebar.tsx
373
- {canAccess(user.role, "userManagement") && (
374
- <MenuItem href="/admin/users">User Management</MenuItem>
375
- )}
390
+ {
391
+ canAccess(user.role, "userManagement") && (
392
+ <MenuItem href="/admin/users">User Management</MenuItem>
393
+ );
394
+ }
376
395
  ```
377
396
 
378
397
  ---
@@ -394,6 +413,7 @@ session: {
394
413
  ```
395
414
 
396
415
  **Production checklist:**
416
+
397
417
  - `SESSION_SECRET`: must be changed to a strong random string
398
418
  - `SESSION_SALT`: change to a 16-character random string
399
419
  - `cookie.domain`: change to the actual domain
@@ -480,6 +500,7 @@ cache: {
480
500
  ```
481
501
 
482
502
  **Available drivers:**
503
+
483
504
  - `memory` - in-memory cache (default)
484
505
  - `file` - file-based cache
485
506
  - `redis` - Redis cache
@@ -576,6 +597,7 @@ lifecycle: {
576
597
  ## Sonamu Local Development Environment Setup
577
598
 
578
599
  **When is this needed:**
600
+
579
601
  - When modifying the Sonamu framework source code during development
580
602
  - When linking a local Sonamu repository to a project for development
581
603
 
@@ -610,7 +632,7 @@ overrides:
610
632
  ```json
611
633
  {
612
634
  "dependencies": {
613
- "sonamu": "^0.7.45" // specify the latest published version
635
+ "sonamu": "^0.7.45" // specify the latest published version
614
636
  }
615
637
  }
616
638
  ```
@@ -694,17 +716,17 @@ Pass Fastify server options directly (excluding `logger`).
694
716
 
695
717
  ### Full Plugin List
696
718
 
697
- | Plugin | Type | Description |
698
- |----------|------|------|
699
- | `compress` | `boolean \| FastifyCompressOptions` | Response compression (@fastify/compress) |
700
- | `cors` | `boolean \| FastifyCorsOptions` | CORS configuration |
701
- | `formbody` | `boolean \| FastifyFormbodyOptions` | x-www-form-urlencoded parsing |
702
- | `multipart` | `boolean \| FastifyMultipartOptions` | File upload |
703
- | `qs` | `boolean \| QsPluginOptions` | Query string parsing |
704
- | `session` | session config | Session management |
705
- | `sse` | `boolean \| SsePluginOptions` | Server-Sent Events |
706
- | `static` | `boolean \| FastifyStaticOptions` | Static file serving |
707
- | `custom` | `(server: FastifyInstance) => void` | Custom plugin registration function |
719
+ | Plugin | Type | Description |
720
+ | ----------- | ------------------------------------ | ---------------------------------------- |
721
+ | `compress` | `boolean \| FastifyCompressOptions` | Response compression (@fastify/compress) |
722
+ | `cors` | `boolean \| FastifyCorsOptions` | CORS configuration |
723
+ | `formbody` | `boolean \| FastifyFormbodyOptions` | x-www-form-urlencoded parsing |
724
+ | `multipart` | `boolean \| FastifyMultipartOptions` | File upload |
725
+ | `qs` | `boolean \| QsPluginOptions` | Query string parsing |
726
+ | `session` | session config | Session management |
727
+ | `sse` | `boolean \| SsePluginOptions` | Server-Sent Events |
728
+ | `static` | `boolean \| FastifyStaticOptions` | Static file serving |
729
+ | `custom` | `(server: FastifyInstance) => void` | Custom plugin registration function |
708
730
 
709
731
  ## logging
710
732
 
@@ -742,6 +764,7 @@ slackConfirm: {
742
764
  5. Access Sonamu UI: http://localhost:34900/sonamu-ui
743
765
 
744
766
  Before production deployment:
767
+
745
768
  - [ ] Change `SESSION_SECRET`
746
769
  - [ ] Change `SESSION_SALT`
747
770
  - [ ] Change `cookie.domain` to the actual domain