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
@@ -35,6 +35,7 @@ description: Sonamu project creation and initialization. Check whether a project
35
35
  - Confirm `.claude/skills/project/` directory was auto-created
36
36
 
37
37
  2. **Write requirements**
38
+
38
39
  ```bash
39
40
  # Write to .claude/skills/project/requirements.md
40
41
  ```
@@ -96,14 +97,17 @@ A system for managing research project calls, applications, and evaluations
96
97
  ### Important Notes
97
98
 
98
99
  **Always document when:**
100
+
99
101
  - The user provides requirements or a feature specification together with project creation
100
102
  - There are business rules or special constraints
101
103
 
102
104
  **When to document:**
105
+
103
106
  - Immediately after project creation
104
107
  - Before starting entity design
105
108
 
106
109
  **How the document is used:**
110
+
107
111
  - Reference during entity design
108
112
  - Reference during API business logic implementation
109
113
  - Reference when writing test cases
@@ -116,6 +120,7 @@ A system for managing research project calls, applications, and evaluations
116
120
  **Must confirm before creating a project:**
117
121
 
118
122
  Developers often separate working directories by project type:
123
+
119
124
  - Company/framework projects: `~/Development/`
120
125
  - Personal projects: `~/dev/programming/`
121
126
  - Client work: `~/Projects/clients/`
@@ -123,11 +128,13 @@ Developers often separate working directories by project type:
123
128
  ### Confirmation Process
124
129
 
125
130
  1. **Determine the current working directory**
131
+
126
132
  ```bash
127
133
  pwd # check current directory
128
134
  ```
129
135
 
130
136
  2. **Ask the user to confirm**
137
+
131
138
  ```
132
139
  "You are currently in {current_directory}. Should I create the project here?
133
140
  If you work in a different location, please tell me the directory to create the project in.
@@ -185,11 +192,13 @@ Is a Sonamu project already set up there?"
185
192
  ### A. For Sonamu Developers (Local Link)
186
193
 
187
194
  > **Why use a local link:**
195
+ >
188
196
  > - Sync directly from the Skills source
189
197
  > - Local Sonamu changes take effect immediately
190
198
  > - Required for framework development
191
199
 
192
200
  #### 1. Create the Project
201
+
193
202
  ```bash
194
203
  pnpm create sonamu [project-name] --yes
195
204
  ```
@@ -206,6 +215,7 @@ overrides:
206
215
  ```
207
216
 
208
217
  > **Path example:**
218
+ >
209
219
  > - If Sonamu is at `~/Development/sonamu`
210
220
  > - And the project is at `~/Development/my_project`
211
221
  > - → `link:../../sonamu/modules/sonamu`
@@ -213,6 +223,7 @@ overrides:
213
223
  #### 3. Install Dependencies and Build
214
224
 
215
225
  From the project root:
226
+
216
227
  ```bash
217
228
  pnpm install
218
229
  pnpm -r build
@@ -221,6 +232,7 @@ pnpm -r build
221
232
  > **If build fails:** may be a resource initialization failure. Start Docker first (step 4), then start the dev server (step 5) and retry.
222
233
 
223
234
  #### 4. Start the DB
235
+
224
236
  ```bash
225
237
  cd packages/api
226
238
  pnpm docker:up
@@ -229,6 +241,7 @@ pnpm docker:up
229
241
  > If a port conflict error occurs → see `database.md`
230
242
 
231
243
  #### 5. Start the Dev Server
244
+
232
245
  ```bash
233
246
  pnpm dev
234
247
  ```
@@ -251,6 +264,7 @@ pnpm sonamu auth generate
251
264
  #### 7. Check Subsets
252
265
 
253
266
  In the Sonamu UI (`http://localhost:34900/sonamu-ui`) Entity menu:
267
+
254
268
  - Check subsets for User, Account, Session, Verification entities
255
269
 
256
270
  #### 8. DB Migration
@@ -282,11 +296,13 @@ pnpm sonamu skills sync
282
296
  ### B. For Sonamu Users (npm Version)
283
297
 
284
298
  > **When using the npm version:**
299
+ >
285
300
  > - Skills are included in the npm package
286
301
  > - No local link needed
287
302
  > - For general users
288
303
 
289
304
  #### 1-3. Create and Configure the Project
305
+
290
306
  ```bash
291
307
  pnpm create sonamu [project-name] --yes
292
308
  cd [project-name]
@@ -355,6 +371,7 @@ Claude: "Before designing the survey system entities, let me confirm a few thing
355
371
  ```
356
372
 
357
373
  **Why this is wrong:**
374
+
358
375
  - Asking multiple questions at once (should ask one at a time)
359
376
  - The question order is not clear
360
377
 
@@ -371,6 +388,7 @@ Claude: "The packages/api/.env file has been created. Would you like to review t
371
388
  ```
372
389
 
373
390
  Default generated .env:
391
+
374
392
  ```env
375
393
  DB_HOST=0.0.0.0
376
394
  DB_PORT=5432
@@ -393,15 +411,17 @@ grep -r 'SonamuProject' packages/api/src/
393
411
  ```
394
412
 
395
413
  **`packages/api/src/sonamu.config.ts`:**
414
+
396
415
  ```typescript
397
416
  // DO NOT - template default left as-is
398
- projectName: process.env.PROJECT_NAME ?? "SonamuProject"
417
+ projectName: process.env.PROJECT_NAME ?? "SonamuProject";
399
418
 
400
419
  // DO - replace with real project name
401
- projectName: process.env.PROJECT_NAME ?? "NIFOS"
420
+ projectName: process.env.PROJECT_NAME ?? "NIFOS";
402
421
  ```
403
422
 
404
423
  **Replacement checklist:**
424
+
405
425
  - [ ] `projectName` default in `sonamu.config.ts`
406
426
  - [ ] `name` field in `package.json` (root)
407
427
  - [ ] `PROJECT_NAME`, `DATABASE_NAME` in `.env`
@@ -448,10 +468,10 @@ After receiving the path, you can confirm by checking whether `packages/api/src/
448
468
 
449
469
  When the user asks a configuration-related question, refer to `config.md` for the answer:
450
470
 
451
- | Question | Reference |
452
- |----------|-----------|
453
- | "How do I configure .env?" | config.md - .env file |
454
- | "How do I connect S3?" | config.md - server.storage |
471
+ | Question | Reference |
472
+ | --------------------------------------- | ---------------------------------- |
473
+ | "How do I configure .env?" | config.md - .env file |
474
+ | "How do I connect S3?" | config.md - server.storage |
455
475
  | "How do I change the session settings?" | config.md - server.plugins.session |
456
- | "How do I change the port?" | config.md - server.listen |
457
- | "Cache settings?" | config.md - server.cache |
476
+ | "How do I change the port?" | config.md - server.listen |
477
+ | "Cache settings?" | config.md - server.cache |
@@ -27,10 +27,10 @@ const users = await db.table({ u: "users" }).select({ id: "u.id" });
27
27
  >
28
28
  > ```typescript
29
29
  > // WRONG — character spread bug
30
- > db.table("files").select("files.entity_id", "files.file_type")
30
+ > db.table("files").select("files.entity_id", "files.file_type");
31
31
  >
32
32
  > // CORRECT
33
- > db.table("files").select({ entity_id: "files.entity_id", file_type: "files.file_type" })
33
+ > db.table("files").select({ entity_id: "files.entity_id", file_type: "files.file_type" });
34
34
  > ```
35
35
 
36
36
  ```typescript
@@ -46,7 +46,7 @@ db.select({
46
46
  parent: {
47
47
  id: "parent.id",
48
48
  name: "parent.name",
49
- }
49
+ },
50
50
  });
51
51
 
52
52
  // Append to existing select
@@ -99,7 +99,7 @@ db.select({
99
99
  db.select({
100
100
  score: Puri.rawNumber(
101
101
  `word_similarity(?, items.title) * 5 + word_similarity(?, items.tags) * 2`,
102
- [query, query]
102
+ [query, query],
103
103
  ),
104
104
  label: Puri.rawString(`COALESCE(??, ?)`, ["items.name", "Unspecified"]),
105
105
  });
@@ -109,23 +109,23 @@ db.select({
109
109
 
110
110
  ```typescript
111
111
  // Basic
112
- db.where("role", "admin")
113
- db.where("age", ">=", 18)
114
- db.where("deleted_at", null) // IS NULL
115
- db.where("deleted_at", "!=", null) // IS NOT NULL
112
+ db.where("role", "admin");
113
+ db.where("age", ">=", 18);
114
+ db.where("deleted_at", null); // IS NULL
115
+ db.where("deleted_at", "!=", null); // IS NOT NULL
116
116
 
117
117
  // Multiple conditions (AND)
118
- db.where("role", "admin").where("is_active", true)
118
+ db.where("role", "admin").where("is_active", true);
119
119
 
120
120
  // IN / NOT IN
121
- db.whereIn("role", ["admin", "moderator"])
122
- db.whereNotIn("status", ["deleted", "banned"])
121
+ db.whereIn("role", ["admin", "moderator"]);
122
+ db.whereNotIn("status", ["deleted", "banned"]);
123
123
 
124
124
  // LIKE
125
- db.where("email", "like", `%${keyword}%`)
125
+ db.where("email", "like", `%${keyword}%`);
126
126
 
127
127
  // Raw WHERE
128
- db.whereRaw("EXTRACT(YEAR FROM created_at) = ?", [2024])
128
+ db.whereRaw("EXTRACT(YEAR FROM created_at) = ?", [2024]);
129
129
  ```
130
130
 
131
131
  ### WHERE Grouping (Parentheses)
@@ -137,10 +137,9 @@ db.whereGroup((g) => {
137
137
  }).where("is_active", true);
138
138
 
139
139
  // OR group
140
- db.where("status", "active")
141
- .orWhereGroup((g) => {
142
- g.where("role", "admin").where("is_verified", true);
143
- });
140
+ db.where("status", "active").orWhereGroup((g) => {
141
+ g.where("role", "admin").where("is_verified", true);
142
+ });
144
143
  ```
145
144
 
146
145
  ## JOIN
@@ -149,26 +148,24 @@ db.where("status", "active")
149
148
  // INNER JOIN
150
149
  db.table("employees")
151
150
  .join("users", "employees.user_id", "users.id")
152
- .select({ empId: "employees.id", userName: "users.username" })
151
+ .select({ empId: "employees.id", userName: "users.username" });
153
152
 
154
153
  // LEFT JOIN
155
- db.table("employees")
156
- .leftJoin("departments", "employees.department_id", "departments.id")
154
+ db.table("employees").leftJoin("departments", "employees.department_id", "departments.id");
157
155
 
158
156
  // Using aliases
159
157
  db.table({ e: "employees" })
160
158
  .join({ u: "users" }, "e.user_id", "u.id")
161
- .leftJoin({ d: "departments" }, "e.department_id", "d.id")
159
+ .leftJoin({ d: "departments" }, "e.department_id", "d.id");
162
160
 
163
161
  // Complex JOIN conditions with callback
164
- db.table("orders")
165
- .join("products", (j) => {
166
- j.on("orders.product_id", "products.id")
167
- .on("orders.store_id", "products.store_id");
168
- })
162
+ db.table("orders").join("products", (j) => {
163
+ j.on("orders.product_id", "products.id").on("orders.store_id", "products.store_id");
164
+ });
169
165
 
170
166
  // Subquery JOIN
171
- const subquery = db.table("order_items")
167
+ const subquery = db
168
+ .table("order_items")
172
169
  .select({ order_id: "order_id", total: Puri.sum("amount") })
173
170
  .groupBy("order_id");
174
171
 
@@ -180,9 +177,7 @@ db.table("orders")
180
177
  ## ORDER BY & LIMIT
181
178
 
182
179
  ```typescript
183
- db.orderBy("created_at", "desc")
184
- .limit(20)
185
- .offset(40) // Page 3
180
+ db.orderBy("created_at", "desc").limit(20).offset(40); // Page 3
186
181
  ```
187
182
 
188
183
  ## GROUP BY & HAVING
@@ -208,46 +203,41 @@ db.groupBy("user_id").having("count", ">", 10);
208
203
  await db.table("users").insert({ username: "john", email: "john@test.com" });
209
204
 
210
205
  // RETURNING
211
- const [{ id }] = await db.table("users")
212
- .insert({ username: "john" })
213
- .returning("id");
206
+ const [{ id }] = await db.table("users").insert({ username: "john" }).returning("id");
214
207
 
215
208
  // Multiple columns RETURNING
216
- const [row] = await db.table("users")
217
- .insert({ username: "john" })
218
- .returning(["id", "created_at"]);
209
+ const [row] = await db.table("users").insert({ username: "john" }).returning(["id", "created_at"]);
219
210
 
220
211
  // All columns RETURNING
221
- const [user] = await db.table("users")
222
- .insert({ username: "john" })
223
- .returning("*");
212
+ const [user] = await db.table("users").insert({ username: "john" }).returning("*");
224
213
  ```
225
214
 
226
215
  ### INSERT onConflict (Upsert)
227
216
 
228
217
  ```typescript
229
218
  // DO NOTHING
230
- await db.table("users")
231
- .insert({ id: 1, username: "john" })
232
- .onConflict("id"); // or .onConflict("id", "nothing")
219
+ await db.table("users").insert({ id: 1, username: "john" }).onConflict("id"); // or .onConflict("id", "nothing")
233
220
 
234
221
  // DO UPDATE - specific columns only
235
- await db.table("users")
222
+ await db
223
+ .table("users")
236
224
  .insert({ id: 1, username: "john", email: "new@test.com" })
237
225
  .onConflict("id", { update: ["username", "email"] });
238
226
 
239
227
  // DO UPDATE - with specified values
240
- await db.table("users")
228
+ await db
229
+ .table("users")
241
230
  .insert({ id: 1, username: "john" })
242
231
  .onConflict("id", {
243
232
  update: {
244
233
  username: "updated_john",
245
234
  updated_at: Puri.rawDate("NOW()"),
246
- }
235
+ },
247
236
  });
248
237
 
249
238
  // Composite key conflict
250
- await db.table("user_settings")
239
+ await db
240
+ .table("user_settings")
251
241
  .insert({ user_id: 1, key: "theme", value: "dark" })
252
242
  .onConflict(["user_id", "key"], { update: ["value"] });
253
243
  ```
@@ -270,15 +260,15 @@ await db.table("users").where("id", 1).delete();
270
260
 
271
261
  ## Result Methods
272
262
 
273
- | Method | Returns | Description |
274
- |--------|---------|-------------|
275
- | `await query` | `T[]` | Array result (Puri is Thenable) |
276
- | `first()` | `Promise<T \| undefined>` | First record |
277
- | `pluck("col")` | `Promise<V[]>` | Array of a specific column only |
263
+ | Method | Returns | Description |
264
+ | -------------- | ------------------------- | ------------------------------- |
265
+ | `await query` | `T[]` | Array result (Puri is Thenable) |
266
+ | `first()` | `Promise<T \| undefined>` | First record |
267
+ | `pluck("col")` | `Promise<V[]>` | Array of a specific column only |
278
268
 
279
269
  ```typescript
280
- const users = await db.table("users").select({ id: "id" }); // T[]
281
- const user = await db.table("users").where("id", 1).first(); // T | undefined
270
+ const users = await db.table("users").select({ id: "id" }); // T[]
271
+ const user = await db.table("users").where("id", 1).first(); // T | undefined
282
272
  const ids = await db.table("users").where("role", "admin").pluck("id"); // number[]
283
273
  ```
284
274
 
@@ -297,13 +287,13 @@ const query1 = baseQuery.clone().where("role", "admin");
297
287
  const query2 = baseQuery.clone().where("role", "user");
298
288
 
299
289
  // Clear parts of a query
300
- db.clear("select") // Clear SELECT clause
301
- db.clear("order") // Clear ORDER BY
302
- db.clear("limit") // Clear LIMIT
303
- db.clear("offset") // Clear OFFSET
290
+ db.clear("select"); // Clear SELECT clause
291
+ db.clear("order"); // Clear ORDER BY
292
+ db.clear("limit"); // Clear LIMIT
293
+ db.clear("offset"); // Clear OFFSET
304
294
 
305
295
  // Remove a specific JOIN
306
- db.clearJoin("alias")
296
+ db.clearJoin("alias");
307
297
  ```
308
298
 
309
299
  ## Transactions
@@ -324,16 +314,16 @@ await this.getPuri("w").transaction(async (trx) => {
324
314
 
325
315
  ```typescript
326
316
  // Basic search (websearch_to_tsquery, simple config)
327
- db.whereTsSearch("search_vector", "search term")
317
+ db.whereTsSearch("search_vector", "search term");
328
318
 
329
319
  // Specify config
330
- db.whereTsSearch("search_vector", "search term", "korean")
320
+ db.whereTsSearch("search_vector", "search term", "korean");
331
321
 
332
322
  // Detailed options
333
323
  db.whereTsSearch("search_vector", "search term", {
334
- parser: "plainto_tsquery", // websearch_to_tsquery | plainto_tsquery | phraseto_tsquery
324
+ parser: "plainto_tsquery", // websearch_to_tsquery | plainto_tsquery | phraseto_tsquery
335
325
  config: "korean",
336
- })
326
+ });
337
327
  ```
338
328
 
339
329
  ### tsHighlight (Search Term Highlighting)
@@ -366,8 +356,8 @@ The first argument must be `Puri.toTsVector()` rather than a column name string.
366
356
  db.select({
367
357
  rank: Puri.tsRank(Puri.toTsVector("documents.search_vector"), "search term"),
368
358
  })
369
- .whereTsSearch("documents.search_vector", "search term")
370
- .orderBy("rank", "desc");
359
+ .whereTsSearch("documents.search_vector", "search term")
360
+ .orderBy("rank", "desc");
371
361
 
372
362
  // Specify config
373
363
  db.select({
@@ -377,8 +367,8 @@ db.select({
377
367
  // Options
378
368
  db.select({
379
369
  rank: Puri.tsRank(Puri.toTsVector("documents.title"), "search term", {
380
- normalization: 1, // Document length normalization
381
- weights: [0.1, 0.2, 0.4, 1.0], // D, C, B, A weights
370
+ normalization: 1, // Document length normalization
371
+ weights: [0.1, 0.2, 0.4, 1.0], // D, C, B, A weights
382
372
  }),
383
373
  });
384
374
 
@@ -404,15 +394,15 @@ db.select({
404
394
 
405
395
  ```typescript
406
396
  // Single column search
407
- db.whereSearch("title", "search term")
397
+ db.whereSearch("title", "search term");
408
398
 
409
399
  // Multi-column search (requires same column composition as index)
410
- db.whereSearch(["title", "content"], "search term")
400
+ db.whereSearch(["title", "content"], "search term");
411
401
 
412
402
  // Weight options
413
403
  db.whereSearch(["title", "content"], "search term", {
414
- weights: [10, 1], // 10x weight on title
415
- })
404
+ weights: [10, 1], // 10x weight on title
405
+ });
416
406
  ```
417
407
 
418
408
  ### score (Search Score)
@@ -423,8 +413,8 @@ db.select({
423
413
  title: "title",
424
414
  score: Puri.score(),
425
415
  })
426
- .whereSearch("title", "search term")
427
- .orderBy("score", "desc");
416
+ .whereSearch("title", "search term")
417
+ .orderBy("score", "desc");
428
418
  ```
429
419
 
430
420
  ### highlight (Highlighting)
@@ -456,7 +446,8 @@ db.select({
456
446
  const embedding = await getEmbedding("search query");
457
447
 
458
448
  // Default (cosine similarity)
459
- const results = await db.table("documents")
449
+ const results = await db
450
+ .table("documents")
460
451
  .select({ id: "id", title: "title" })
461
452
  .vectorSimilarity("embedding", embedding);
462
453
  // → SELECT *, 1 - (embedding <=> '[...]'::vector) as similarity
@@ -471,22 +462,22 @@ db.vectorSimilarity("embedding", embedding, { method: "inner_product" });
471
462
  // threshold filter
472
463
  db.vectorSimilarity("embedding", embedding, {
473
464
  method: "cosine",
474
- threshold: 0.7, // only similarity >= 0.7
465
+ threshold: 0.7, // only similarity >= 0.7
475
466
  });
476
467
 
477
468
  // distinctOn (deduplicate)
478
469
  db.vectorSimilarity("embedding", embedding, {
479
- distinctOn: "document_id", // best similarity per document_id only
470
+ distinctOn: "document_id", // best similarity per document_id only
480
471
  });
481
472
  ```
482
473
 
483
474
  **Return value**: `similarity` column is automatically added
484
475
 
485
- | method | similarity meaning | sort order |
486
- |--------|-------------------|------------|
487
- | cosine | 1 - distance (higher = more similar) | desc |
488
- | l2 | distance (lower = more similar) | asc |
489
- | inner_product | -distance (higher = more similar) | desc |
476
+ | method | similarity meaning | sort order |
477
+ | ------------- | ------------------------------------ | ---------- |
478
+ | cosine | 1 - distance (higher = more similar) | desc |
479
+ | l2 | distance (lower = more similar) | asc |
480
+ | inner_product | -distance (higher = more similar) | desc |
490
481
 
491
482
  ---
492
483
 
@@ -498,11 +489,11 @@ Requires `CREATE EXTENSION IF NOT EXISTS pg_trgm`. Typically used together with
498
489
 
499
490
  The SQL operand order differs per operator:
500
491
 
501
- | operator | meaning | SQL |
502
- |----------|---------|-----|
503
- | `<%` (default) | word similarity | `'query' <% column` |
504
- | `%` | similarity | `column % 'query'` |
505
- | `<<%` | strict word similarity | `'query' <<% column` |
492
+ | operator | meaning | SQL |
493
+ | -------------- | ---------------------- | -------------------- |
494
+ | `<%` (default) | word similarity | `'query' <% column` |
495
+ | `%` | similarity | `column % 'query'` |
496
+ | `<<%` | strict word similarity | `'query' <<% column` |
506
497
 
507
498
  ```typescript
508
499
  puri.whereFuzzy("items.search_text", query);
@@ -527,7 +518,7 @@ const results = await this.getPuri("r")
527
518
  title: "items.title_ko",
528
519
  score: Puri.rawNumber(
529
520
  `word_similarity(?, items.title_ko) * 5 + word_similarity(?, items.title_en) * 3`,
530
- [query, query]
521
+ [query, query],
531
522
  ),
532
523
  })
533
524
  .orderByRaw("score DESC");
@@ -535,11 +526,11 @@ const results = await this.getPuri("r")
535
526
 
536
527
  ### Language-specific Characteristics
537
528
 
538
- | Language | Suitability | Notes |
539
- |----------|-------------|-------|
540
- | English | Excellent | Word-level splitting + word_similarity |
541
- | Korean | Good | Performance degrades for 1-2 character searches |
542
- | Japanese | Good | Performance degrades for 1-2 character searches |
529
+ | Language | Suitability | Notes |
530
+ | -------- | ----------- | ----------------------------------------------- |
531
+ | English | Excellent | Word-level splitting + word_similarity |
532
+ | Korean | Good | Performance degrades for 1-2 character searches |
533
+ | Japanese | Good | Performance degrades for 1-2 character searches |
543
534
 
544
535
  ---
545
536