alepha 0.15.1 → 0.15.3

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 (523) hide show
  1. package/README.md +68 -80
  2. package/dist/api/audits/index.d.ts +10 -33
  3. package/dist/api/audits/index.d.ts.map +1 -1
  4. package/dist/api/audits/index.js +10 -33
  5. package/dist/api/audits/index.js.map +1 -1
  6. package/dist/api/files/index.d.ts +10 -3
  7. package/dist/api/files/index.d.ts.map +1 -1
  8. package/dist/api/files/index.js +10 -3
  9. package/dist/api/files/index.js.map +1 -1
  10. package/dist/api/jobs/index.d.ts +162 -155
  11. package/dist/api/jobs/index.d.ts.map +1 -1
  12. package/dist/api/jobs/index.js +10 -3
  13. package/dist/api/jobs/index.js.map +1 -1
  14. package/dist/api/keys/index.d.ts +413 -0
  15. package/dist/api/keys/index.d.ts.map +1 -0
  16. package/dist/api/keys/index.js +476 -0
  17. package/dist/api/keys/index.js.map +1 -0
  18. package/dist/api/notifications/index.d.ts +10 -4
  19. package/dist/api/notifications/index.d.ts.map +1 -1
  20. package/dist/api/notifications/index.js +10 -4
  21. package/dist/api/notifications/index.js.map +1 -1
  22. package/dist/api/parameters/index.d.ts +43 -50
  23. package/dist/api/parameters/index.d.ts.map +1 -1
  24. package/dist/api/parameters/index.js +30 -37
  25. package/dist/api/parameters/index.js.map +1 -1
  26. package/dist/api/users/index.d.ts +1081 -760
  27. package/dist/api/users/index.d.ts.map +1 -1
  28. package/dist/api/users/index.js +2539 -218
  29. package/dist/api/users/index.js.map +1 -1
  30. package/dist/api/verifications/index.d.ts +138 -132
  31. package/dist/api/verifications/index.d.ts.map +1 -1
  32. package/dist/api/verifications/index.js +12 -4
  33. package/dist/api/verifications/index.js.map +1 -1
  34. package/dist/batch/index.d.ts +20 -40
  35. package/dist/batch/index.d.ts.map +1 -1
  36. package/dist/batch/index.js +31 -44
  37. package/dist/batch/index.js.map +1 -1
  38. package/dist/bucket/index.d.ts +440 -8
  39. package/dist/bucket/index.d.ts.map +1 -1
  40. package/dist/bucket/index.js +1861 -12
  41. package/dist/bucket/index.js.map +1 -1
  42. package/dist/cache/core/index.d.ts +179 -7
  43. package/dist/cache/core/index.d.ts.map +1 -1
  44. package/dist/cache/core/index.js +213 -7
  45. package/dist/cache/core/index.js.map +1 -1
  46. package/dist/cache/redis/index.d.ts +1 -0
  47. package/dist/cache/redis/index.d.ts.map +1 -1
  48. package/dist/cache/redis/index.js +4 -0
  49. package/dist/cache/redis/index.js.map +1 -1
  50. package/dist/cli/index.d.ts +638 -5645
  51. package/dist/cli/index.d.ts.map +1 -1
  52. package/dist/cli/index.js +2550 -368
  53. package/dist/cli/index.js.map +1 -1
  54. package/dist/command/index.d.ts +203 -45
  55. package/dist/command/index.d.ts.map +1 -1
  56. package/dist/command/index.js +2060 -71
  57. package/dist/command/index.js.map +1 -1
  58. package/dist/core/index.browser.js +70 -40
  59. package/dist/core/index.browser.js.map +1 -1
  60. package/dist/core/index.d.ts +34 -13
  61. package/dist/core/index.d.ts.map +1 -1
  62. package/dist/core/index.js +90 -40
  63. package/dist/core/index.js.map +1 -1
  64. package/dist/core/index.native.js +70 -40
  65. package/dist/core/index.native.js.map +1 -1
  66. package/dist/datetime/index.d.ts +15 -0
  67. package/dist/datetime/index.d.ts.map +1 -1
  68. package/dist/datetime/index.js +15 -0
  69. package/dist/datetime/index.js.map +1 -1
  70. package/dist/email/index.d.ts +323 -20
  71. package/dist/email/index.d.ts.map +1 -1
  72. package/dist/email/index.js +1857 -7
  73. package/dist/email/index.js.map +1 -1
  74. package/dist/fake/index.d.ts +90 -8
  75. package/dist/fake/index.d.ts.map +1 -1
  76. package/dist/fake/index.js +91 -20
  77. package/dist/fake/index.js.map +1 -1
  78. package/dist/lock/core/index.d.ts +11 -4
  79. package/dist/lock/core/index.d.ts.map +1 -1
  80. package/dist/lock/core/index.js +11 -4
  81. package/dist/lock/core/index.js.map +1 -1
  82. package/dist/logger/index.d.ts +17 -66
  83. package/dist/logger/index.d.ts.map +1 -1
  84. package/dist/logger/index.js +14 -63
  85. package/dist/logger/index.js.map +1 -1
  86. package/dist/mcp/index.d.ts +10 -30
  87. package/dist/mcp/index.d.ts.map +1 -1
  88. package/dist/mcp/index.js +12 -35
  89. package/dist/mcp/index.js.map +1 -1
  90. package/dist/orm/index.browser.js +3 -3
  91. package/dist/orm/index.browser.js.map +1 -1
  92. package/dist/orm/index.bun.js +39 -20
  93. package/dist/orm/index.bun.js.map +1 -1
  94. package/dist/orm/index.d.ts +517 -540
  95. package/dist/orm/index.d.ts.map +1 -1
  96. package/dist/orm/index.js +58 -71
  97. package/dist/orm/index.js.map +1 -1
  98. package/dist/queue/core/index.d.ts +18 -10
  99. package/dist/queue/core/index.d.ts.map +1 -1
  100. package/dist/queue/core/index.js +14 -6
  101. package/dist/queue/core/index.js.map +1 -1
  102. package/dist/react/auth/index.browser.js +108 -0
  103. package/dist/react/auth/index.browser.js.map +1 -0
  104. package/dist/react/auth/index.d.ts +100 -0
  105. package/dist/react/auth/index.d.ts.map +1 -0
  106. package/dist/react/auth/index.js +145 -0
  107. package/dist/react/auth/index.js.map +1 -0
  108. package/dist/react/core/index.d.ts +469 -0
  109. package/dist/react/core/index.d.ts.map +1 -0
  110. package/dist/react/core/index.js +464 -0
  111. package/dist/react/core/index.js.map +1 -0
  112. package/dist/react/form/index.d.ts +232 -0
  113. package/dist/react/form/index.d.ts.map +1 -0
  114. package/dist/react/form/index.js +432 -0
  115. package/dist/react/form/index.js.map +1 -0
  116. package/dist/react/head/index.browser.js +423 -0
  117. package/dist/react/head/index.browser.js.map +1 -0
  118. package/dist/react/head/index.d.ts +288 -0
  119. package/dist/react/head/index.d.ts.map +1 -0
  120. package/dist/react/head/index.js +465 -0
  121. package/dist/react/head/index.js.map +1 -0
  122. package/dist/react/i18n/index.d.ts +175 -0
  123. package/dist/react/i18n/index.d.ts.map +1 -0
  124. package/dist/react/i18n/index.js +224 -0
  125. package/dist/react/i18n/index.js.map +1 -0
  126. package/dist/react/router/index.browser.js +1974 -0
  127. package/dist/react/router/index.browser.js.map +1 -0
  128. package/dist/react/router/index.d.ts +1956 -0
  129. package/dist/react/router/index.d.ts.map +1 -0
  130. package/dist/react/router/index.js +4722 -0
  131. package/dist/react/router/index.js.map +1 -0
  132. package/dist/react/websocket/index.d.ts +117 -0
  133. package/dist/react/websocket/index.d.ts.map +1 -0
  134. package/dist/react/websocket/index.js +107 -0
  135. package/dist/react/websocket/index.js.map +1 -0
  136. package/dist/redis/index.bun.js +4 -0
  137. package/dist/redis/index.bun.js.map +1 -1
  138. package/dist/redis/index.d.ts +41 -44
  139. package/dist/redis/index.d.ts.map +1 -1
  140. package/dist/redis/index.js +16 -25
  141. package/dist/redis/index.js.map +1 -1
  142. package/dist/retry/index.d.ts +11 -2
  143. package/dist/retry/index.d.ts.map +1 -1
  144. package/dist/retry/index.js +11 -2
  145. package/dist/retry/index.js.map +1 -1
  146. package/dist/scheduler/index.d.ts +11 -2
  147. package/dist/scheduler/index.d.ts.map +1 -1
  148. package/dist/scheduler/index.js +11 -2
  149. package/dist/scheduler/index.js.map +1 -1
  150. package/dist/security/index.d.ts +140 -49
  151. package/dist/security/index.d.ts.map +1 -1
  152. package/dist/security/index.js +164 -32
  153. package/dist/security/index.js.map +1 -1
  154. package/dist/server/auth/index.d.ts +12 -7
  155. package/dist/server/auth/index.d.ts.map +1 -1
  156. package/dist/server/auth/index.js +12 -7
  157. package/dist/server/auth/index.js.map +1 -1
  158. package/dist/server/cache/index.d.ts +7 -22
  159. package/dist/server/cache/index.d.ts.map +1 -1
  160. package/dist/server/cache/index.js +7 -22
  161. package/dist/server/cache/index.js.map +1 -1
  162. package/dist/server/compress/index.d.ts +10 -2
  163. package/dist/server/compress/index.d.ts.map +1 -1
  164. package/dist/server/compress/index.js +10 -2
  165. package/dist/server/compress/index.js.map +1 -1
  166. package/dist/server/cookies/index.d.ts +40 -16
  167. package/dist/server/cookies/index.d.ts.map +1 -1
  168. package/dist/server/cookies/index.js +7 -5
  169. package/dist/server/cookies/index.js.map +1 -1
  170. package/dist/server/core/index.d.ts +124 -23
  171. package/dist/server/core/index.d.ts.map +1 -1
  172. package/dist/server/core/index.js +231 -14
  173. package/dist/server/core/index.js.map +1 -1
  174. package/dist/server/cors/index.d.ts +13 -23
  175. package/dist/server/cors/index.d.ts.map +1 -1
  176. package/dist/server/cors/index.js +7 -21
  177. package/dist/server/cors/index.js.map +1 -1
  178. package/dist/server/health/index.d.ts +8 -2
  179. package/dist/server/health/index.d.ts.map +1 -1
  180. package/dist/server/health/index.js +8 -2
  181. package/dist/server/health/index.js.map +1 -1
  182. package/dist/server/helmet/index.d.ts +11 -3
  183. package/dist/server/helmet/index.d.ts.map +1 -1
  184. package/dist/server/helmet/index.js +11 -3
  185. package/dist/server/helmet/index.js.map +1 -1
  186. package/dist/server/links/index.d.ts +11 -6
  187. package/dist/server/links/index.d.ts.map +1 -1
  188. package/dist/server/links/index.js +11 -6
  189. package/dist/server/links/index.js.map +1 -1
  190. package/dist/server/metrics/index.d.ts +10 -3
  191. package/dist/server/metrics/index.d.ts.map +1 -1
  192. package/dist/server/metrics/index.js +10 -3
  193. package/dist/server/metrics/index.js.map +1 -1
  194. package/dist/server/multipart/index.d.ts +9 -3
  195. package/dist/server/multipart/index.d.ts.map +1 -1
  196. package/dist/server/multipart/index.js +9 -3
  197. package/dist/server/multipart/index.js.map +1 -1
  198. package/dist/server/proxy/index.d.ts +8 -2
  199. package/dist/server/proxy/index.d.ts.map +1 -1
  200. package/dist/server/proxy/index.js +8 -2
  201. package/dist/server/proxy/index.js.map +1 -1
  202. package/dist/server/rate-limit/index.d.ts +30 -35
  203. package/dist/server/rate-limit/index.d.ts.map +1 -1
  204. package/dist/server/rate-limit/index.js +18 -55
  205. package/dist/server/rate-limit/index.js.map +1 -1
  206. package/dist/server/static/index.d.ts +137 -4
  207. package/dist/server/static/index.d.ts.map +1 -1
  208. package/dist/server/static/index.js +1853 -5
  209. package/dist/server/static/index.js.map +1 -1
  210. package/dist/server/swagger/index.d.ts +309 -6
  211. package/dist/server/swagger/index.d.ts.map +1 -1
  212. package/dist/server/swagger/index.js +1854 -6
  213. package/dist/server/swagger/index.js.map +1 -1
  214. package/dist/sms/index.d.ts +309 -7
  215. package/dist/sms/index.d.ts.map +1 -1
  216. package/dist/sms/index.js +1856 -7
  217. package/dist/sms/index.js.map +1 -1
  218. package/dist/system/index.browser.js +1218 -0
  219. package/dist/system/index.browser.js.map +1 -0
  220. package/dist/{file → system}/index.d.ts +343 -16
  221. package/dist/system/index.d.ts.map +1 -0
  222. package/dist/{file → system}/index.js +419 -22
  223. package/dist/system/index.js.map +1 -0
  224. package/dist/thread/index.d.ts +11 -2
  225. package/dist/thread/index.d.ts.map +1 -1
  226. package/dist/thread/index.js +11 -2
  227. package/dist/thread/index.js.map +1 -1
  228. package/dist/topic/core/index.d.ts +12 -5
  229. package/dist/topic/core/index.d.ts.map +1 -1
  230. package/dist/topic/core/index.js +12 -5
  231. package/dist/topic/core/index.js.map +1 -1
  232. package/dist/vite/index.d.ts +5 -6272
  233. package/dist/vite/index.d.ts.map +1 -1
  234. package/dist/vite/index.js +23 -10
  235. package/dist/vite/index.js.map +1 -1
  236. package/dist/websocket/index.d.ts +12 -8
  237. package/dist/websocket/index.d.ts.map +1 -1
  238. package/dist/websocket/index.js +12 -8
  239. package/dist/websocket/index.js.map +1 -1
  240. package/package.json +82 -11
  241. package/src/api/audits/index.ts +10 -33
  242. package/src/api/files/__tests__/$bucket.spec.ts +1 -1
  243. package/src/api/files/controllers/AdminFileStatsController.spec.ts +1 -1
  244. package/src/api/files/controllers/FileController.spec.ts +1 -1
  245. package/src/api/files/index.ts +10 -3
  246. package/src/api/files/jobs/FileJobs.spec.ts +1 -1
  247. package/src/api/files/services/FileService.spec.ts +1 -1
  248. package/src/api/jobs/index.ts +10 -3
  249. package/src/api/keys/controllers/AdminApiKeyController.ts +75 -0
  250. package/src/api/keys/controllers/ApiKeyController.ts +103 -0
  251. package/src/api/keys/entities/apiKeyEntity.ts +41 -0
  252. package/src/api/keys/index.ts +49 -0
  253. package/src/api/keys/schemas/adminApiKeyQuerySchema.ts +7 -0
  254. package/src/api/keys/schemas/adminApiKeyResourceSchema.ts +17 -0
  255. package/src/api/keys/schemas/createApiKeyBodySchema.ts +7 -0
  256. package/src/api/keys/schemas/createApiKeyResponseSchema.ts +11 -0
  257. package/src/api/keys/schemas/listApiKeyResponseSchema.ts +15 -0
  258. package/src/api/keys/schemas/revokeApiKeyParamsSchema.ts +5 -0
  259. package/src/api/keys/schemas/revokeApiKeyResponseSchema.ts +5 -0
  260. package/src/api/keys/services/ApiKeyService.spec.ts +553 -0
  261. package/src/api/keys/services/ApiKeyService.ts +306 -0
  262. package/src/api/logs/TODO.md +55 -0
  263. package/src/api/notifications/index.ts +10 -4
  264. package/src/api/parameters/index.ts +9 -30
  265. package/src/api/parameters/primitives/$config.ts +12 -4
  266. package/src/api/parameters/services/ConfigStore.ts +9 -3
  267. package/src/api/users/__tests__/ApiKeys-integration.spec.ts +1035 -0
  268. package/src/api/users/__tests__/ApiKeys.spec.ts +401 -0
  269. package/src/api/users/index.ts +14 -3
  270. package/src/api/users/primitives/$realm.ts +33 -5
  271. package/src/api/users/providers/RealmProvider.ts +1 -12
  272. package/src/api/users/services/SessionService.ts +1 -1
  273. package/src/api/verifications/controllers/VerificationController.ts +2 -0
  274. package/src/api/verifications/index.ts +10 -4
  275. package/src/batch/index.ts +9 -36
  276. package/src/batch/primitives/$batch.ts +0 -8
  277. package/src/batch/providers/BatchProvider.ts +29 -2
  278. package/src/bucket/__tests__/shared.ts +1 -1
  279. package/src/bucket/index.ts +13 -6
  280. package/src/bucket/primitives/$bucket.ts +1 -1
  281. package/src/bucket/providers/LocalFileStorageProvider.ts +1 -1
  282. package/src/bucket/providers/MemoryFileStorageProvider.ts +1 -1
  283. package/src/cache/core/__tests__/shared.ts +30 -0
  284. package/src/cache/core/index.ts +11 -6
  285. package/src/cache/core/primitives/$cache.spec.ts +5 -0
  286. package/src/cache/core/providers/CacheProvider.ts +17 -0
  287. package/src/cache/core/providers/MemoryCacheProvider.ts +300 -1
  288. package/src/cache/redis/__tests__/cache-redis.spec.ts +5 -0
  289. package/src/cache/redis/providers/RedisCacheProvider.ts +9 -0
  290. package/src/cli/apps/AlephaCli.ts +1 -14
  291. package/src/cli/apps/AlephaPackageBuilderCli.ts +10 -1
  292. package/src/cli/atoms/buildOptions.ts +99 -9
  293. package/src/cli/commands/build.ts +150 -37
  294. package/src/cli/commands/db.ts +22 -18
  295. package/src/cli/commands/deploy.ts +1 -1
  296. package/src/cli/commands/dev.ts +1 -20
  297. package/src/cli/commands/gen/env.ts +5 -2
  298. package/src/cli/commands/gen/openapi.ts +5 -2
  299. package/src/cli/commands/init.spec.ts +588 -0
  300. package/src/cli/commands/init.ts +115 -58
  301. package/src/cli/commands/lint.ts +7 -1
  302. package/src/cli/commands/typecheck.ts +11 -0
  303. package/src/cli/providers/AppEntryProvider.ts +1 -1
  304. package/src/cli/providers/ViteBuildProvider.ts +8 -50
  305. package/src/cli/providers/ViteDevServerProvider.ts +35 -16
  306. package/src/cli/services/AlephaCliUtils.ts +52 -121
  307. package/src/cli/services/PackageManagerUtils.ts +129 -11
  308. package/src/cli/services/ProjectScaffolder.spec.ts +97 -0
  309. package/src/cli/services/ProjectScaffolder.ts +148 -81
  310. package/src/cli/services/ViteUtils.ts +82 -0
  311. package/src/cli/{assets/claudeMd.ts → templates/agentMd.ts} +37 -24
  312. package/src/cli/templates/apiAppSecurityTs.ts +11 -0
  313. package/src/cli/templates/apiIndexTs.ts +30 -0
  314. package/src/cli/templates/gitignore.ts +39 -0
  315. package/src/cli/{assets → templates}/mainCss.ts +11 -2
  316. package/src/cli/templates/mainServerTs.ts +33 -0
  317. package/src/cli/templates/webAppRouterTs.ts +74 -0
  318. package/src/cli/templates/webHelloComponentTsx.ts +30 -0
  319. package/src/command/helpers/Runner.spec.ts +139 -0
  320. package/src/command/helpers/Runner.ts +7 -22
  321. package/src/command/index.ts +12 -4
  322. package/src/command/providers/CliProvider.spec.ts +1392 -0
  323. package/src/command/providers/CliProvider.ts +320 -47
  324. package/src/core/Alepha.ts +34 -27
  325. package/src/core/__tests__/Alepha-start.spec.ts +4 -4
  326. package/src/core/helpers/jsonSchemaToTypeBox.spec.ts +771 -0
  327. package/src/core/helpers/jsonSchemaToTypeBox.ts +62 -10
  328. package/src/core/index.shared.ts +1 -0
  329. package/src/core/index.ts +20 -0
  330. package/src/core/providers/EventManager.spec.ts +0 -71
  331. package/src/core/providers/EventManager.ts +3 -15
  332. package/src/core/providers/Json.ts +2 -14
  333. package/src/datetime/index.ts +15 -0
  334. package/src/email/index.ts +10 -5
  335. package/src/email/providers/LocalEmailProvider.spec.ts +1 -1
  336. package/src/email/providers/LocalEmailProvider.ts +1 -1
  337. package/src/fake/__tests__/keyName.example.ts +1 -1
  338. package/src/fake/__tests__/keyName.spec.ts +5 -5
  339. package/src/fake/index.ts +9 -6
  340. package/src/fake/providers/FakeProvider.spec.ts +258 -40
  341. package/src/fake/providers/FakeProvider.ts +133 -19
  342. package/src/lock/core/index.ts +11 -4
  343. package/src/logger/index.ts +17 -66
  344. package/src/mcp/index.ts +10 -27
  345. package/src/mcp/transports/SseMcpTransport.ts +0 -11
  346. package/src/orm/__tests__/PostgresProvider.spec.ts +2 -2
  347. package/src/orm/index.browser.ts +2 -2
  348. package/src/orm/index.bun.ts +5 -3
  349. package/src/orm/index.ts +23 -53
  350. package/src/orm/providers/drivers/BunSqliteProvider.ts +5 -1
  351. package/src/orm/providers/drivers/CloudflareD1Provider.ts +57 -30
  352. package/src/orm/providers/drivers/DatabaseProvider.ts +9 -1
  353. package/src/orm/providers/drivers/NodeSqliteProvider.ts +4 -1
  354. package/src/orm/services/Repository.ts +7 -3
  355. package/src/queue/core/index.ts +14 -6
  356. package/src/react/auth/__tests__/$auth.spec.ts +202 -0
  357. package/src/react/auth/hooks/useAuth.ts +32 -0
  358. package/src/react/auth/index.browser.ts +13 -0
  359. package/src/react/auth/index.shared.ts +2 -0
  360. package/src/react/auth/index.ts +48 -0
  361. package/src/react/auth/providers/ReactAuthProvider.ts +16 -0
  362. package/src/react/auth/services/ReactAuth.ts +135 -0
  363. package/src/react/core/__tests__/Router.spec.tsx +169 -0
  364. package/src/react/core/components/ClientOnly.tsx +49 -0
  365. package/src/react/core/components/ErrorBoundary.tsx +73 -0
  366. package/src/react/core/contexts/AlephaContext.ts +7 -0
  367. package/src/react/core/contexts/AlephaProvider.tsx +42 -0
  368. package/src/react/core/hooks/useAction.browser.spec.tsx +569 -0
  369. package/src/react/core/hooks/useAction.ts +480 -0
  370. package/src/react/core/hooks/useAlepha.ts +26 -0
  371. package/src/react/core/hooks/useClient.ts +17 -0
  372. package/src/react/core/hooks/useEvents.ts +51 -0
  373. package/src/react/core/hooks/useInject.ts +12 -0
  374. package/src/react/core/hooks/useStore.ts +52 -0
  375. package/src/react/core/index.ts +90 -0
  376. package/src/react/form/components/FormState.tsx +17 -0
  377. package/src/react/form/errors/FormValidationError.ts +18 -0
  378. package/src/react/form/hooks/useForm.browser.spec.tsx +366 -0
  379. package/src/react/form/hooks/useForm.ts +47 -0
  380. package/src/react/form/hooks/useFormState.ts +130 -0
  381. package/src/react/form/index.ts +44 -0
  382. package/src/react/form/services/FormModel.ts +614 -0
  383. package/src/react/head/helpers/SeoExpander.spec.ts +203 -0
  384. package/src/react/head/helpers/SeoExpander.ts +142 -0
  385. package/src/react/head/hooks/useHead.spec.tsx +288 -0
  386. package/src/react/head/hooks/useHead.ts +62 -0
  387. package/src/react/head/index.browser.ts +26 -0
  388. package/src/react/head/index.ts +44 -0
  389. package/src/react/head/interfaces/Head.ts +105 -0
  390. package/src/react/head/primitives/$head.ts +25 -0
  391. package/src/react/head/providers/BrowserHeadProvider.browser.spec.ts +196 -0
  392. package/src/react/head/providers/BrowserHeadProvider.ts +212 -0
  393. package/src/react/head/providers/HeadProvider.ts +168 -0
  394. package/src/react/head/providers/ServerHeadProvider.ts +31 -0
  395. package/src/react/i18n/__tests__/integration.spec.tsx +239 -0
  396. package/src/react/i18n/components/Localize.spec.tsx +357 -0
  397. package/src/react/i18n/components/Localize.tsx +35 -0
  398. package/src/react/i18n/hooks/useI18n.browser.spec.tsx +438 -0
  399. package/src/react/i18n/hooks/useI18n.ts +18 -0
  400. package/src/react/i18n/index.ts +41 -0
  401. package/src/react/i18n/primitives/$dictionary.ts +69 -0
  402. package/src/react/i18n/providers/I18nProvider.spec.ts +389 -0
  403. package/src/react/i18n/providers/I18nProvider.ts +278 -0
  404. package/src/react/router/__tests__/page-head-browser.browser.spec.ts +95 -0
  405. package/src/react/router/__tests__/page-head.spec.ts +48 -0
  406. package/src/react/router/__tests__/seo-head.spec.ts +125 -0
  407. package/src/react/router/atoms/ssrManifestAtom.ts +58 -0
  408. package/src/react/router/components/ErrorViewer.tsx +872 -0
  409. package/src/react/router/components/Link.tsx +23 -0
  410. package/src/react/router/components/NestedView.tsx +223 -0
  411. package/src/react/router/components/NotFound.tsx +30 -0
  412. package/src/react/router/constants/PAGE_PRELOAD_KEY.ts +6 -0
  413. package/src/react/router/contexts/RouterLayerContext.ts +12 -0
  414. package/src/react/router/errors/Redirection.ts +28 -0
  415. package/src/react/router/hooks/useActive.ts +52 -0
  416. package/src/react/router/hooks/useQueryParams.ts +63 -0
  417. package/src/react/router/hooks/useRouter.ts +20 -0
  418. package/src/react/router/hooks/useRouterState.ts +11 -0
  419. package/src/react/router/index.browser.ts +45 -0
  420. package/src/react/router/index.shared.ts +19 -0
  421. package/src/react/router/index.ts +146 -0
  422. package/src/react/router/primitives/$page.browser.spec.tsx +851 -0
  423. package/src/react/router/primitives/$page.spec.tsx +676 -0
  424. package/src/react/router/primitives/$page.ts +489 -0
  425. package/src/react/router/providers/ReactBrowserProvider.ts +312 -0
  426. package/src/react/router/providers/ReactBrowserRendererProvider.ts +25 -0
  427. package/src/react/router/providers/ReactBrowserRouterProvider.ts +168 -0
  428. package/src/react/router/providers/ReactPageProvider.ts +726 -0
  429. package/src/react/router/providers/ReactPreloadProvider.spec.ts +142 -0
  430. package/src/react/router/providers/ReactPreloadProvider.ts +85 -0
  431. package/src/react/router/providers/ReactServerProvider.spec.tsx +316 -0
  432. package/src/react/router/providers/ReactServerProvider.ts +487 -0
  433. package/src/react/router/providers/ReactServerTemplateProvider.spec.ts +210 -0
  434. package/src/react/router/providers/ReactServerTemplateProvider.ts +542 -0
  435. package/src/react/router/providers/SSRManifestProvider.ts +334 -0
  436. package/src/react/router/services/ReactPageServerService.ts +48 -0
  437. package/src/react/router/services/ReactPageService.ts +27 -0
  438. package/src/react/router/services/ReactRouter.ts +262 -0
  439. package/src/react/websocket/hooks/useRoom.tsx +242 -0
  440. package/src/react/websocket/index.ts +7 -0
  441. package/src/redis/__tests__/redis.spec.ts +13 -0
  442. package/src/redis/index.ts +9 -25
  443. package/src/redis/providers/BunRedisProvider.ts +9 -0
  444. package/src/redis/providers/NodeRedisProvider.ts +8 -0
  445. package/src/redis/providers/RedisProvider.ts +16 -0
  446. package/src/retry/index.ts +11 -2
  447. package/src/router/index.ts +15 -0
  448. package/src/scheduler/index.ts +11 -2
  449. package/src/security/__tests__/BasicAuth.spec.ts +2 -0
  450. package/src/security/__tests__/ServerSecurityProvider.spec.ts +90 -5
  451. package/src/security/index.ts +15 -10
  452. package/src/security/interfaces/IssuerResolver.ts +27 -0
  453. package/src/security/primitives/$issuer.ts +55 -0
  454. package/src/security/providers/SecurityProvider.ts +179 -0
  455. package/src/security/providers/ServerBasicAuthProvider.ts +6 -2
  456. package/src/security/providers/ServerSecurityProvider.ts +63 -41
  457. package/src/server/auth/index.ts +12 -7
  458. package/src/server/cache/index.ts +7 -22
  459. package/src/server/compress/index.ts +10 -2
  460. package/src/server/cookies/index.ts +7 -5
  461. package/src/server/cookies/primitives/$cookie.ts +33 -11
  462. package/src/server/core/index.ts +16 -6
  463. package/src/server/core/interfaces/ServerRequest.ts +83 -1
  464. package/src/server/core/primitives/$action.spec.ts +1 -1
  465. package/src/server/core/primitives/$action.ts +8 -3
  466. package/src/server/core/providers/NodeHttpServerProvider.spec.ts +9 -3
  467. package/src/server/core/providers/NodeHttpServerProvider.ts +9 -3
  468. package/src/server/core/services/ServerRequestParser.spec.ts +520 -0
  469. package/src/server/core/services/ServerRequestParser.ts +306 -13
  470. package/src/server/cors/index.ts +7 -21
  471. package/src/server/cors/primitives/$cors.ts +6 -2
  472. package/src/server/health/index.ts +8 -2
  473. package/src/server/helmet/index.ts +11 -3
  474. package/src/server/links/index.ts +11 -6
  475. package/src/server/metrics/index.ts +10 -3
  476. package/src/server/multipart/index.ts +9 -3
  477. package/src/server/proxy/index.ts +8 -2
  478. package/src/server/rate-limit/index.ts +21 -25
  479. package/src/server/rate-limit/primitives/$rateLimit.ts +6 -2
  480. package/src/server/rate-limit/providers/ServerRateLimitProvider.spec.ts +38 -14
  481. package/src/server/rate-limit/providers/ServerRateLimitProvider.ts +22 -56
  482. package/src/server/static/index.ts +8 -2
  483. package/src/server/static/providers/ServerStaticProvider.ts +1 -1
  484. package/src/server/swagger/index.ts +9 -4
  485. package/src/server/swagger/providers/ServerSwaggerProvider.ts +1 -1
  486. package/src/sms/index.ts +9 -5
  487. package/src/sms/providers/LocalSmsProvider.spec.ts +1 -1
  488. package/src/sms/providers/LocalSmsProvider.ts +1 -1
  489. package/src/system/index.browser.ts +36 -0
  490. package/src/system/index.ts +62 -0
  491. package/src/system/index.workerd.ts +1 -0
  492. package/src/{file → system}/providers/FileSystemProvider.ts +24 -0
  493. package/src/{file → system}/providers/MemoryFileSystemProvider.ts +116 -3
  494. package/src/system/providers/MemoryShellProvider.ts +164 -0
  495. package/src/{file → system}/providers/NodeFileSystemProvider.spec.ts +2 -2
  496. package/src/{file → system}/providers/NodeFileSystemProvider.ts +47 -2
  497. package/src/system/providers/NodeShellProvider.ts +184 -0
  498. package/src/system/providers/ShellProvider.ts +74 -0
  499. package/src/{file → system}/services/FileDetector.spec.ts +2 -2
  500. package/src/thread/index.ts +11 -2
  501. package/src/topic/core/index.ts +12 -5
  502. package/src/vite/tasks/buildClient.ts +2 -7
  503. package/src/vite/tasks/buildServer.ts +19 -13
  504. package/src/vite/tasks/generateCloudflare.ts +10 -7
  505. package/src/vite/tasks/generateDocker.ts +4 -0
  506. package/src/websocket/index.ts +12 -8
  507. package/dist/file/index.d.ts.map +0 -1
  508. package/dist/file/index.js.map +0 -1
  509. package/src/cli/assets/apiIndexTs.ts +0 -16
  510. package/src/cli/assets/mainServerTs.ts +0 -24
  511. package/src/cli/assets/webAppRouterTs.ts +0 -16
  512. package/src/cli/assets/webHelloComponentTsx.ts +0 -20
  513. package/src/cli/providers/ViteTemplateProvider.ts +0 -27
  514. package/src/file/index.ts +0 -43
  515. /package/src/cli/{assets → templates}/apiHelloControllerTs.ts +0 -0
  516. /package/src/cli/{assets → templates}/biomeJson.ts +0 -0
  517. /package/src/cli/{assets → templates}/dummySpecTs.ts +0 -0
  518. /package/src/cli/{assets → templates}/editorconfig.ts +0 -0
  519. /package/src/cli/{assets → templates}/mainBrowserTs.ts +0 -0
  520. /package/src/cli/{assets → templates}/tsconfigJson.ts +0 -0
  521. /package/src/cli/{assets → templates}/webIndexTs.ts +0 -0
  522. /package/src/{file → system}/errors/FileError.ts +0 -0
  523. /package/src/{file → system}/services/FileDetector.ts +0 -0
@@ -1,5 +1,5 @@
1
1
  import { n as __reExport, t as __exportAll } from "./chunk-DH6iiROE.js";
2
- import * as alepha34 from "alepha";
2
+ import * as alepha26 from "alepha";
3
3
  import { Alepha, AlephaError, KIND, Page, Page as Page$1, PageQuery, PageQuery as PageQuery$1, Primitive, Service, Static, StaticEncode, TBigInt, TInteger, TNull, TNumber, TNumberOptions, TObject, TObjectOptions, TOptional, TPage, TSchema, TString, TStringOptions, TUnion, TUnsafe, pageQuerySchema, pageSchema } from "alepha";
4
4
  import { DateTime, DateTimeProvider } from "alepha/datetime";
5
5
  import * as drizzle_orm_pg_core0 from "drizzle-orm/pg-core";
@@ -18,12 +18,65 @@ import { BunSQLDatabase } from "drizzle-orm/bun-sql";
18
18
  import { BunSQLiteDatabase } from "drizzle-orm/bun-sqlite";
19
19
  import { DrizzleD1Database } from "drizzle-orm/d1";
20
20
  import { DatabaseSync } from "node:sqlite";
21
+ import * as typebox0 from "typebox";
22
+ import * as DrizzleKit from "drizzle-kit/api";
21
23
  import { UpdateDeleteAction as UpdateDeleteAction$1 } from "drizzle-orm/pg-core/foreign-keys";
22
24
  import { PgTransactionConfig } from "drizzle-orm/pg-core/session";
23
- import * as DrizzleKit from "drizzle-kit/api";
24
- import * as typebox1 from "typebox";
25
25
  export * from "drizzle-orm/pg-core";
26
26
 
27
+ //#region ../../src/orm/constants/PG_SYMBOLS.d.ts
28
+ declare const PG_DEFAULT: unique symbol;
29
+ declare const PG_PRIMARY_KEY: unique symbol;
30
+ declare const PG_CREATED_AT: unique symbol;
31
+ declare const PG_UPDATED_AT: unique symbol;
32
+ declare const PG_DELETED_AT: unique symbol;
33
+ declare const PG_VERSION: unique symbol;
34
+ declare const PG_IDENTITY: unique symbol;
35
+ declare const PG_ENUM: unique symbol;
36
+ declare const PG_REF: unique symbol;
37
+ /**
38
+ * @deprecated Use `PG_IDENTITY` instead.
39
+ */
40
+ declare const PG_SERIAL: unique symbol;
41
+ type PgDefault = typeof PG_DEFAULT;
42
+ type PgRef = typeof PG_REF;
43
+ type PgPrimaryKey = typeof PG_PRIMARY_KEY;
44
+ type PgSymbols = {
45
+ [PG_DEFAULT]: {};
46
+ [PG_PRIMARY_KEY]: {};
47
+ [PG_CREATED_AT]: {};
48
+ [PG_UPDATED_AT]: {};
49
+ [PG_DELETED_AT]: {};
50
+ [PG_VERSION]: {};
51
+ [PG_IDENTITY]: PgIdentityOptions;
52
+ [PG_REF]: PgRefOptions;
53
+ [PG_ENUM]: PgEnumOptions;
54
+ /**
55
+ * @deprecated Use `PG_IDENTITY` instead.
56
+ */
57
+ [PG_SERIAL]: {};
58
+ };
59
+ type PgSymbolKeys = keyof PgSymbols;
60
+ type PgIdentityOptions = {
61
+ mode: "always" | "byDefault";
62
+ } & PgSequenceOptions & {
63
+ name?: string;
64
+ };
65
+ interface PgEnumOptions {
66
+ name?: string;
67
+ description?: string;
68
+ }
69
+ interface PgRefOptions {
70
+ ref: () => {
71
+ name: string;
72
+ entity: EntityPrimitive;
73
+ };
74
+ actions?: {
75
+ onUpdate?: UpdateDeleteAction;
76
+ onDelete?: UpdateDeleteAction;
77
+ };
78
+ }
79
+ //#endregion
27
80
  //#region ../../src/orm/schemas/insertSchema.d.ts
28
81
  /**
29
82
  * Transforms a TObject schema for insert operations.
@@ -214,57 +267,385 @@ type EntityColumn<T extends TObject> = {
214
267
  };
215
268
  type EntityColumns<T extends TObject> = { [key in keyof T["properties"]]: EntityColumn<T> };
216
269
  //#endregion
217
- //#region ../../src/orm/constants/PG_SYMBOLS.d.ts
218
- declare const PG_DEFAULT: unique symbol;
219
- declare const PG_PRIMARY_KEY: unique symbol;
220
- declare const PG_CREATED_AT: unique symbol;
221
- declare const PG_UPDATED_AT: unique symbol;
222
- declare const PG_DELETED_AT: unique symbol;
223
- declare const PG_VERSION: unique symbol;
224
- declare const PG_IDENTITY: unique symbol;
225
- declare const PG_ENUM: unique symbol;
226
- declare const PG_REF: unique symbol;
270
+ //#region ../../src/orm/services/ModelBuilder.d.ts
227
271
  /**
228
- * @deprecated Use `PG_IDENTITY` instead.
272
+ * Database-specific table configuration functions
229
273
  */
230
- declare const PG_SERIAL: unique symbol;
231
- type PgDefault = typeof PG_DEFAULT;
232
- type PgRef = typeof PG_REF;
233
- type PgPrimaryKey = typeof PG_PRIMARY_KEY;
234
- type PgSymbols = {
235
- [PG_DEFAULT]: {};
236
- [PG_PRIMARY_KEY]: {};
237
- [PG_CREATED_AT]: {};
238
- [PG_UPDATED_AT]: {};
239
- [PG_DELETED_AT]: {};
240
- [PG_VERSION]: {};
241
- [PG_IDENTITY]: PgIdentityOptions;
242
- [PG_REF]: PgRefOptions;
243
- [PG_ENUM]: PgEnumOptions;
274
+ interface TableConfigBuilders<TConfig> {
275
+ index: (name: string) => {
276
+ on: (...columns: any[]) => TConfig;
277
+ };
278
+ uniqueIndex: (name: string) => {
279
+ on: (...columns: any[]) => TConfig;
280
+ };
281
+ unique: (name: string) => {
282
+ on: (...columns: any[]) => TConfig;
283
+ };
284
+ check: (name: string, sql: SQL) => TConfig;
285
+ foreignKey: (config: {
286
+ name: string;
287
+ columns: any[];
288
+ foreignColumns: any[];
289
+ }) => TConfig;
290
+ }
291
+ /**
292
+ * Abstract base class for transforming Alepha Primitives (Entity, Sequence, etc...)
293
+ * into drizzle models (tables, enums, sequences, etc...).
294
+ */
295
+ declare abstract class ModelBuilder {
244
296
  /**
245
- * @deprecated Use `PG_IDENTITY` instead.
297
+ * Build a table from an entity primitive.
246
298
  */
247
- [PG_SERIAL]: {};
248
- };
249
- type PgSymbolKeys = keyof PgSymbols;
250
- type PgIdentityOptions = {
251
- mode: "always" | "byDefault";
252
- } & PgSequenceOptions & {
253
- name?: string;
299
+ abstract buildTable(entity: EntityPrimitive, options: {
300
+ tables: Map<string, unknown>;
301
+ enums: Map<string, unknown>;
302
+ schema: string;
303
+ }): void;
304
+ /**
305
+ * Build a sequence from a sequence primitive.
306
+ */
307
+ abstract buildSequence(sequence: SequencePrimitive, options: {
308
+ sequences: Map<string, unknown>;
309
+ schema: string;
310
+ }): void;
311
+ /**
312
+ * Convert camelCase to snake_case for column names.
313
+ */
314
+ protected toColumnName(str: string): string;
315
+ /**
316
+ * Build the table configuration function for any database.
317
+ * This includes indexes, foreign keys, constraints, and custom config.
318
+ *
319
+ * @param entity - The entity primitive
320
+ * @param builders - Database-specific builder functions
321
+ * @param tableResolver - Function to resolve entity references to table columns
322
+ * @param customConfigHandler - Optional handler for custom config
323
+ */
324
+ protected buildTableConfig<TConfig, TSelf>(entity: EntityPrimitive, builders: TableConfigBuilders<TConfig>, tableResolver?: (entityName: string) => any, customConfigHandler?: (config: any, self: TSelf) => TConfig[]): ((self: TSelf) => TConfig[]) | undefined;
325
+ }
326
+ //#endregion
327
+ //#region ../../src/orm/providers/DrizzleKitProvider.d.ts
328
+ declare class DrizzleKitProvider {
329
+ protected readonly log: alepha_logger4.Logger;
330
+ protected readonly alepha: Alepha;
331
+ /**
332
+ * Synchronize database with current schema definitions.
333
+ *
334
+ * In development mode, it will generate and execute migrations based on the current state.
335
+ * In testing mode, it will generate migrations from scratch without applying them.
336
+ *
337
+ * Does nothing in production mode, you must handle migrations manually.
338
+ */
339
+ synchronize(provider: DatabaseProvider): Promise<void>;
340
+ /**
341
+ * Mostly used for testing purposes. You can generate SQL migration statements without executing them.
342
+ */
343
+ generateMigration(provider: DatabaseProvider, prevSnapshot?: any): Promise<{
344
+ statements: string[];
345
+ models: Record<string, unknown>;
346
+ snapshot?: any;
347
+ }>;
348
+ /**
349
+ * Load all tables, enums, sequences, etc. from the provider's repositories.
350
+ */
351
+ getModels(provider: DatabaseProvider): Record<string, unknown>;
352
+ /**
353
+ * Load the migration snapshot from the database.
354
+ */
355
+ protected loadDevMigrations(provider: DatabaseProvider): Promise<DevMigrations | undefined>;
356
+ protected saveDevMigrations(provider: DatabaseProvider, curr: Record<string, any>, devMigrations?: DevMigrations): Promise<void>;
357
+ protected executeStatements(statements: string[], provider: DatabaseProvider, catchErrors?: boolean): Promise<void>;
358
+ protected createSchemaIfNotExists(provider: DatabaseProvider, schemaName: string): Promise<void>;
359
+ /**
360
+ * Try to load the official Drizzle Kit API.
361
+ * If not available, fallback to the local kit import.
362
+ */
363
+ importDrizzleKit(): typeof DrizzleKit;
364
+ }
365
+ declare const devMigrationsSchema: alepha26.TObject<{
366
+ id: alepha26.TNumber;
367
+ name: alepha26.TString;
368
+ snapshot: alepha26.TString;
369
+ created_at: alepha26.TString;
370
+ }>;
371
+ type DevMigrations = Static<typeof devMigrationsSchema>;
372
+ //#endregion
373
+ //#region ../../src/orm/providers/drivers/DatabaseProvider.d.ts
374
+ type SQLLike = SQLWrapper | string;
375
+ declare abstract class DatabaseProvider {
376
+ protected readonly alepha: Alepha;
377
+ protected readonly log: alepha_logger4.Logger;
378
+ protected abstract readonly builder: ModelBuilder;
379
+ protected abstract readonly kit: DrizzleKitProvider;
380
+ abstract readonly db: PgDatabase<any>;
381
+ abstract readonly dialect: "postgresql" | "sqlite";
382
+ abstract readonly url: string;
383
+ readonly enums: Map<string, unknown>;
384
+ readonly tables: Map<string, unknown>;
385
+ readonly sequences: Map<string, unknown>;
386
+ get name(): string;
387
+ get driver(): string;
388
+ get schema(): string;
389
+ table<T extends TObject>(entity: EntityPrimitive<T>): PgTableWithColumns<SchemaToTableConfig<T>>;
390
+ registerEntity(entity: EntityPrimitive): void;
391
+ registerSequence(sequence: SequencePrimitive): void;
392
+ abstract execute(statement: SQLLike): Promise<Record<string, unknown>[]>;
393
+ run<T extends TObject>(statement: SQLLike, schema: T): Promise<Array<Static<T>>>;
394
+ /**
395
+ * Get migrations folder path - can be overridden
396
+ */
397
+ protected getMigrationsFolder(): string;
398
+ /**
399
+ * Base migration orchestration - handles environment logic.
400
+ *
401
+ * Never runs in serverless mode - migrations should be applied during
402
+ * deployment, not at runtime (to avoid race conditions and timeouts).
403
+ */
404
+ migrate(): Promise<void>;
405
+ /**
406
+ * Production: run migrations from folder
407
+ */
408
+ protected runProductionMigration(migrationsFolder: string): Promise<void>;
409
+ /**
410
+ * Test: always synchronize
411
+ */
412
+ protected runTestMigration(): Promise<void>;
413
+ /**
414
+ * Development: default to synchronize (can be overridden)
415
+ */
416
+ protected runDevelopmentMigration(migrationsFolder: string): Promise<void>;
417
+ /**
418
+ * Common synchronization with error handling
419
+ */
420
+ protected synchronizeSchema(): Promise<void>;
421
+ /**
422
+ * Provider-specific migration execution
423
+ * MUST be implemented by each provider
424
+ */
425
+ protected abstract executeMigrations(migrationsFolder: string): Promise<void>;
426
+ /**
427
+ * For testing purposes, generate a unique schema name.
428
+ * The schema name will be generated based on the current date and time.
429
+ * It will be in the format of `test_YYYYMMDD_HHMMSS_randomSuffix`.
430
+ */
431
+ protected generateTestSchemaName(): string;
432
+ }
433
+ //#endregion
434
+ //#region ../../src/orm/primitives/$sequence.d.ts
435
+ /**
436
+ * Creates a PostgreSQL sequence primitive for generating unique numeric values.
437
+ */
438
+ declare const $sequence: {
439
+ (options?: SequencePrimitiveOptions): SequencePrimitive;
440
+ [KIND]: typeof SequencePrimitive;
254
441
  };
255
- interface PgEnumOptions {
442
+ interface SequencePrimitiveOptions extends PgSequenceOptions {
443
+ /**
444
+ * The name of the sequence. If not provided, the property key will be used.
445
+ */
256
446
  name?: string;
257
- description?: string;
447
+ provider?: DatabaseProvider;
258
448
  }
259
- interface PgRefOptions {
260
- ref: () => {
449
+ declare class SequencePrimitive extends Primitive<SequencePrimitiveOptions> {
450
+ readonly provider: DatabaseProvider;
451
+ onInit(): void;
452
+ get name(): string;
453
+ next(): Promise<number>;
454
+ current(): Promise<number>;
455
+ protected $provider(): DatabaseProvider;
456
+ }
457
+ //#endregion
458
+ //#region ../../src/orm/services/SqliteModelBuilder.d.ts
459
+ declare class SqliteModelBuilder extends ModelBuilder {
460
+ buildTable(entity: EntityPrimitive<any>, options: {
461
+ tables: Map<string, unknown>;
462
+ enums: Map<string, unknown>;
463
+ schema: string;
464
+ }): void;
465
+ buildSequence(sequence: SequencePrimitive, options: {
466
+ sequences: Map<string, unknown>;
467
+ schema: string;
468
+ }): void;
469
+ /**
470
+ * Get SQLite-specific config builder for the table.
471
+ */
472
+ protected getTableConfig(entity: EntityPrimitive, tables: Map<string, unknown>): ((self: BuildColumns<string, any, "sqlite">) => any) | undefined;
473
+ schemaToSqliteColumns: <T extends TObject>(tableName: string, schema: T, enums: Map<string, unknown>, tables: Map<string, unknown>) => SchemaToSqliteBuilder<T>;
474
+ mapFieldToSqliteColumn: (tableName: string, fieldName: string, value: TSchema, enums: Map<string, any>) => pg$1.SQLiteIntegerBuilderInitial<string> | pg$1.SQLiteNumericBuilderInitial<string> | pg$1.SQLiteTextBuilderInitial<string, [string, ...string[]], number | undefined> | drizzle_orm0.$Type<pg$1.SQLiteCustomColumnBuilder<{
261
475
  name: string;
262
- entity: EntityPrimitive;
476
+ dataType: "custom";
477
+ columnType: "SQLiteCustomColumn";
478
+ data: string;
479
+ driverParam: string;
480
+ enumValues: undefined;
481
+ }>, string> | pg$1.SQLiteCustomColumnBuilder<{
482
+ name: string;
483
+ dataType: "custom";
484
+ columnType: "SQLiteCustomColumn";
485
+ data: string;
486
+ driverParam: number;
487
+ enumValues: undefined;
488
+ }> | pg$1.SQLiteCustomColumnBuilder<{
489
+ name: string;
490
+ dataType: "custom";
491
+ columnType: "SQLiteCustomColumn";
492
+ data: boolean;
493
+ driverParam: number;
494
+ enumValues: undefined;
495
+ }> | drizzle_orm0.$Type<pg$1.SQLiteCustomColumnBuilder<{
496
+ name: string;
497
+ dataType: "custom";
498
+ columnType: "SQLiteCustomColumn";
499
+ data: {
500
+ [x: string]: unknown;
501
+ [x: number]: unknown;
502
+ [x: symbol]: unknown;
503
+ };
504
+ driverParam: string;
505
+ enumValues: undefined;
506
+ }>, {
507
+ [x: string]: unknown;
508
+ [x: number]: unknown;
509
+ [x: symbol]: unknown;
510
+ }> | drizzle_orm0.$Type<pg$1.SQLiteCustomColumnBuilder<{
511
+ name: string;
512
+ dataType: "custom";
513
+ columnType: "SQLiteCustomColumn";
514
+ data: typebox0.StaticRecord<[], "Decode", {}, {}, string, TSchema>;
515
+ driverParam: string;
516
+ enumValues: undefined;
517
+ }>, typebox0.StaticRecord<[], "Decode", {}, {}, string, TSchema>> | drizzle_orm0.$Type<pg$1.SQLiteCustomColumnBuilder<{
518
+ name: string;
519
+ dataType: "custom";
520
+ columnType: "SQLiteCustomColumn";
521
+ data: any;
522
+ driverParam: string;
523
+ enumValues: undefined;
524
+ }>, any> | drizzle_orm0.$Type<pg$1.SQLiteCustomColumnBuilder<{
525
+ name: string;
526
+ dataType: "custom";
527
+ columnType: "SQLiteCustomColumn";
528
+ data: unknown[];
529
+ driverParam: string;
530
+ enumValues: undefined;
531
+ }>, unknown[]>;
532
+ mapStringToSqliteColumn: (key: string, value: TString) => pg$1.SQLiteTextBuilderInitial<string, [string, ...string[]], number | undefined> | drizzle_orm0.$Type<pg$1.SQLiteCustomColumnBuilder<{
533
+ name: string;
534
+ dataType: "custom";
535
+ columnType: "SQLiteCustomColumn";
536
+ data: string;
537
+ driverParam: string;
538
+ enumValues: undefined;
539
+ }>, string> | pg$1.SQLiteCustomColumnBuilder<{
540
+ name: string;
541
+ dataType: "custom";
542
+ columnType: "SQLiteCustomColumn";
543
+ data: string;
544
+ driverParam: number;
545
+ enumValues: undefined;
546
+ }>;
547
+ sqliteJson: <TDocument extends TSchema>(name: string, document: TDocument) => drizzle_orm0.$Type<pg$1.SQLiteCustomColumnBuilder<{
548
+ name: string;
549
+ dataType: "custom";
550
+ columnType: "SQLiteCustomColumn";
551
+ data: typebox0.StaticType<[], "Decode", {}, {}, TDocument>;
552
+ driverParam: string;
553
+ enumValues: undefined;
554
+ }>, typebox0.StaticType<[], "Decode", {}, {}, TDocument>>;
555
+ sqliteDateTime: {
556
+ <TConfig extends Record<string, any>>(fieldConfig: TConfig): pg$1.SQLiteCustomColumnBuilder<{
557
+ name: "";
558
+ dataType: "custom";
559
+ columnType: "SQLiteCustomColumn";
560
+ data: string;
561
+ driverParam: number;
562
+ enumValues: undefined;
563
+ }>;
564
+ <TName extends string>(dbName: TName, fieldConfig: unknown): pg$1.SQLiteCustomColumnBuilder<{
565
+ name: TName;
566
+ dataType: "custom";
567
+ columnType: "SQLiteCustomColumn";
568
+ data: string;
569
+ driverParam: number;
570
+ enumValues: undefined;
571
+ }>;
572
+ };
573
+ sqliteBool: {
574
+ <TConfig extends Record<string, any>>(fieldConfig: TConfig): pg$1.SQLiteCustomColumnBuilder<{
575
+ name: "";
576
+ dataType: "custom";
577
+ columnType: "SQLiteCustomColumn";
578
+ data: boolean;
579
+ driverParam: number;
580
+ enumValues: undefined;
581
+ }>;
582
+ <TName extends string>(dbName: TName, fieldConfig: unknown): pg$1.SQLiteCustomColumnBuilder<{
583
+ name: TName;
584
+ dataType: "custom";
585
+ columnType: "SQLiteCustomColumn";
586
+ data: boolean;
587
+ driverParam: number;
588
+ enumValues: undefined;
589
+ }>;
590
+ };
591
+ sqliteDate: {
592
+ <TConfig extends Record<string, any>>(fieldConfig: TConfig): pg$1.SQLiteCustomColumnBuilder<{
593
+ name: "";
594
+ dataType: "custom";
595
+ columnType: "SQLiteCustomColumn";
596
+ data: string;
597
+ driverParam: number;
598
+ enumValues: undefined;
599
+ }>;
600
+ <TName extends string>(dbName: TName, fieldConfig: unknown): pg$1.SQLiteCustomColumnBuilder<{
601
+ name: TName;
602
+ dataType: "custom";
603
+ columnType: "SQLiteCustomColumn";
604
+ data: string;
605
+ driverParam: number;
606
+ enumValues: undefined;
607
+ }>;
263
608
  };
264
- actions?: {
265
- onUpdate?: UpdateDeleteAction;
266
- onDelete?: UpdateDeleteAction;
609
+ }
610
+ type SchemaToSqliteBuilder<T extends TObject> = { [key in keyof T["properties"]]: SQLiteColumnBuilderBase };
611
+ //#endregion
612
+ //#region ../../src/orm/providers/drivers/NodeSqliteProvider.d.ts
613
+ /**
614
+ * Configuration options for the Node.js SQLite database provider.
615
+ */
616
+ declare const nodeSqliteOptions: alepha26.Atom<alepha26.TObject<{
617
+ path: alepha26.TOptional<alepha26.TString>;
618
+ }>, "alepha.postgres.node-sqlite.options">;
619
+ type NodeSqliteProviderOptions = Static<typeof nodeSqliteOptions.schema>;
620
+ declare module "alepha" {
621
+ interface State {
622
+ [nodeSqliteOptions.key]: NodeSqliteProviderOptions;
623
+ }
624
+ }
625
+ /**
626
+ * Add a fake support for SQLite in Node.js based on Postgres interfaces.
627
+ *
628
+ * This is NOT a real SQLite provider, it's a workaround to use SQLite with Drizzle ORM.
629
+ * This is NOT recommended for production use.
630
+ */
631
+ declare class NodeSqliteProvider extends DatabaseProvider {
632
+ protected readonly kit: DrizzleKitProvider;
633
+ protected readonly log: alepha_logger4.Logger;
634
+ protected readonly env: {
635
+ DATABASE_URL?: string | undefined;
267
636
  };
637
+ protected readonly builder: SqliteModelBuilder;
638
+ protected readonly options: Readonly<{
639
+ path?: string | undefined;
640
+ }>;
641
+ protected sqlite: DatabaseSync;
642
+ get name(): string;
643
+ readonly dialect = "sqlite";
644
+ get url(): string;
645
+ execute(query: SQLLike): Promise<Array<Record<string, unknown>>>;
646
+ readonly db: PgDatabase<any>;
647
+ protected readonly onStart: alepha26.HookPrimitive<"start">;
648
+ protected executeMigrations(migrationsFolder: string): Promise<void>;
268
649
  }
269
650
  //#endregion
270
651
  //#region ../../src/orm/errors/DbError.d.ts
@@ -996,247 +1377,62 @@ declare class DatabaseTypeProvider {
996
1377
  /**
997
1378
  * Creates a column Deleted At for soft delete functionality.
998
1379
  * This is used to mark rows as deleted without actually removing them from the database.
999
- * The column is nullable - NULL means not deleted, timestamp means deleted.
1000
- */
1001
- readonly deletedAt: (options?: TStringOptions) => PgAttr<alepha34.TOptional<TString>, typeof PG_DELETED_AT>;
1002
- /**
1003
- * Creates a Postgres ENUM type.
1004
- *
1005
- * > By default, `t.enum()` is mapped to a TEXT column in Postgres.
1006
- * > Using this method, you can create a real ENUM type in the database.
1007
- *
1008
- * @example
1009
- * ```ts
1010
- * const statusEnum = pg.enum(["pending", "active", "archived"], { name: "status_enum" });
1011
- * ```
1012
- */
1013
- readonly enum: <T extends string[]>(values: [...T], pgEnumOptions?: PgEnumOptions, typeOptions?: TStringOptions) => PgAttr<TUnsafe<T[number]>, typeof PG_ENUM>;
1014
- /**
1015
- * Creates a reference to another table or schema. Basically a foreign key.
1016
- */
1017
- readonly ref: <T extends TSchema>(type: T, ref: () => any, actions?: {
1018
- onUpdate?: UpdateDeleteAction$1;
1019
- onDelete?: UpdateDeleteAction$1;
1020
- }) => PgAttr<T, PgRef>;
1021
- /**
1022
- * Creates a page schema for a given object schema.
1023
- * It's used by {@link Repository#paginate} method.
1024
- */
1025
- readonly page: <T extends TObject>(resource: T, options?: TObjectOptions) => TPage<T>;
1026
- }
1027
- /**
1028
- * Wrapper of TypeProvider (`t`) for database types.
1029
- *
1030
- * Use `db` for improve TypeBox schema definitions with database-specific attributes.
1031
- *
1032
- * @example
1033
- * ```ts
1034
- * import { t } from "alepha";
1035
- * import { db } from "alepha/orm";
1036
- *
1037
- * const userSchema = t.object({
1038
- * id: db.primaryKey(t.uuid()),
1039
- * email: t.email(),
1040
- * createdAt: db.createdAt(),
1041
- * });
1042
- * ```
1043
- */
1044
- declare const db: DatabaseTypeProvider;
1045
- /**
1046
- * @deprecated Use `db` instead.
1047
- */
1048
- declare const pg: DatabaseTypeProvider;
1049
- //#endregion
1050
- //#region ../../src/orm/schemas/legacyIdSchema.d.ts
1051
- /**
1052
- * @deprecated Use `pg.primaryKey()` instead.
1053
- */
1054
- declare const legacyIdSchema: PgAttr<PgAttr<PgAttr<alepha34.TInteger, typeof PG_PRIMARY_KEY>, typeof PG_SERIAL>, typeof PG_DEFAULT>;
1055
- //#endregion
1056
- //#region ../../src/orm/primitives/$sequence.d.ts
1057
- /**
1058
- * Creates a PostgreSQL sequence primitive for generating unique numeric values.
1059
- */
1060
- declare const $sequence: {
1061
- (options?: SequencePrimitiveOptions): SequencePrimitive;
1062
- [KIND]: typeof SequencePrimitive;
1063
- };
1064
- interface SequencePrimitiveOptions extends PgSequenceOptions {
1065
- /**
1066
- * The name of the sequence. If not provided, the property key will be used.
1067
- */
1068
- name?: string;
1069
- provider?: DatabaseProvider;
1070
- }
1071
- declare class SequencePrimitive extends Primitive<SequencePrimitiveOptions> {
1072
- readonly provider: DatabaseProvider;
1073
- onInit(): void;
1074
- get name(): string;
1075
- next(): Promise<number>;
1076
- current(): Promise<number>;
1077
- protected $provider(): DatabaseProvider;
1078
- }
1079
- //#endregion
1080
- //#region ../../src/orm/services/ModelBuilder.d.ts
1081
- /**
1082
- * Database-specific table configuration functions
1083
- */
1084
- interface TableConfigBuilders<TConfig> {
1085
- index: (name: string) => {
1086
- on: (...columns: any[]) => TConfig;
1087
- };
1088
- uniqueIndex: (name: string) => {
1089
- on: (...columns: any[]) => TConfig;
1090
- };
1091
- unique: (name: string) => {
1092
- on: (...columns: any[]) => TConfig;
1093
- };
1094
- check: (name: string, sql: SQL) => TConfig;
1095
- foreignKey: (config: {
1096
- name: string;
1097
- columns: any[];
1098
- foreignColumns: any[];
1099
- }) => TConfig;
1100
- }
1101
- /**
1102
- * Abstract base class for transforming Alepha Primitives (Entity, Sequence, etc...)
1103
- * into drizzle models (tables, enums, sequences, etc...).
1104
- */
1105
- declare abstract class ModelBuilder {
1106
- /**
1107
- * Build a table from an entity primitive.
1108
- */
1109
- abstract buildTable(entity: EntityPrimitive, options: {
1110
- tables: Map<string, unknown>;
1111
- enums: Map<string, unknown>;
1112
- schema: string;
1113
- }): void;
1114
- /**
1115
- * Build a sequence from a sequence primitive.
1116
- */
1117
- abstract buildSequence(sequence: SequencePrimitive, options: {
1118
- sequences: Map<string, unknown>;
1119
- schema: string;
1120
- }): void;
1121
- /**
1122
- * Convert camelCase to snake_case for column names.
1123
- */
1124
- protected toColumnName(str: string): string;
1125
- /**
1126
- * Build the table configuration function for any database.
1127
- * This includes indexes, foreign keys, constraints, and custom config.
1128
- *
1129
- * @param entity - The entity primitive
1130
- * @param builders - Database-specific builder functions
1131
- * @param tableResolver - Function to resolve entity references to table columns
1132
- * @param customConfigHandler - Optional handler for custom config
1133
- */
1134
- protected buildTableConfig<TConfig, TSelf>(entity: EntityPrimitive, builders: TableConfigBuilders<TConfig>, tableResolver?: (entityName: string) => any, customConfigHandler?: (config: any, self: TSelf) => TConfig[]): ((self: TSelf) => TConfig[]) | undefined;
1135
- }
1136
- //#endregion
1137
- //#region ../../src/orm/providers/DrizzleKitProvider.d.ts
1138
- declare class DrizzleKitProvider {
1139
- protected readonly log: alepha_logger4.Logger;
1140
- protected readonly alepha: Alepha;
1141
- /**
1142
- * Synchronize database with current schema definitions.
1143
- *
1144
- * In development mode, it will generate and execute migrations based on the current state.
1145
- * In testing mode, it will generate migrations from scratch without applying them.
1146
- *
1147
- * Does nothing in production mode, you must handle migrations manually.
1148
- */
1149
- synchronize(provider: DatabaseProvider): Promise<void>;
1150
- /**
1151
- * Mostly used for testing purposes. You can generate SQL migration statements without executing them.
1152
- */
1153
- generateMigration(provider: DatabaseProvider, prevSnapshot?: any): Promise<{
1154
- statements: string[];
1155
- models: Record<string, unknown>;
1156
- snapshot?: any;
1157
- }>;
1158
- /**
1159
- * Load all tables, enums, sequences, etc. from the provider's repositories.
1160
- */
1161
- getModels(provider: DatabaseProvider): Record<string, unknown>;
1162
- /**
1163
- * Load the migration snapshot from the database.
1164
- */
1165
- protected loadDevMigrations(provider: DatabaseProvider): Promise<DevMigrations | undefined>;
1166
- protected saveDevMigrations(provider: DatabaseProvider, curr: Record<string, any>, devMigrations?: DevMigrations): Promise<void>;
1167
- protected executeStatements(statements: string[], provider: DatabaseProvider, catchErrors?: boolean): Promise<void>;
1168
- protected createSchemaIfNotExists(provider: DatabaseProvider, schemaName: string): Promise<void>;
1169
- /**
1170
- * Try to load the official Drizzle Kit API.
1171
- * If not available, fallback to the local kit import.
1172
- */
1173
- importDrizzleKit(): typeof DrizzleKit;
1174
- }
1175
- declare const devMigrationsSchema: alepha34.TObject<{
1176
- id: alepha34.TNumber;
1177
- name: alepha34.TString;
1178
- snapshot: alepha34.TString;
1179
- created_at: alepha34.TString;
1180
- }>;
1181
- type DevMigrations = Static<typeof devMigrationsSchema>;
1182
- //#endregion
1183
- //#region ../../src/orm/providers/drivers/DatabaseProvider.d.ts
1184
- type SQLLike = SQLWrapper | string;
1185
- declare abstract class DatabaseProvider {
1186
- protected readonly alepha: Alepha;
1187
- protected readonly log: alepha_logger4.Logger;
1188
- protected abstract readonly builder: ModelBuilder;
1189
- protected abstract readonly kit: DrizzleKitProvider;
1190
- abstract readonly db: PgDatabase<any>;
1191
- abstract readonly dialect: "postgresql" | "sqlite";
1192
- abstract readonly url: string;
1193
- readonly enums: Map<string, unknown>;
1194
- readonly tables: Map<string, unknown>;
1195
- readonly sequences: Map<string, unknown>;
1196
- get name(): string;
1197
- get driver(): string;
1198
- get schema(): string;
1199
- table<T extends TObject>(entity: EntityPrimitive<T>): PgTableWithColumns<SchemaToTableConfig<T>>;
1200
- registerEntity(entity: EntityPrimitive): void;
1201
- registerSequence(sequence: SequencePrimitive): void;
1202
- abstract execute(statement: SQLLike): Promise<Record<string, unknown>[]>;
1203
- run<T extends TObject>(statement: SQLLike, schema: T): Promise<Array<Static<T>>>;
1204
- /**
1205
- * Get migrations folder path - can be overridden
1206
- */
1207
- protected getMigrationsFolder(): string;
1208
- /**
1209
- * Base migration orchestration - handles environment logic
1210
- */
1211
- migrate(): Promise<void>;
1212
- /**
1213
- * Production: run migrations from folder
1214
- */
1215
- protected runProductionMigration(migrationsFolder: string): Promise<void>;
1216
- /**
1217
- * Test: always synchronize
1218
- */
1219
- protected runTestMigration(): Promise<void>;
1220
- /**
1221
- * Development: default to synchronize (can be overridden)
1380
+ * The column is nullable - NULL means not deleted, timestamp means deleted.
1222
1381
  */
1223
- protected runDevelopmentMigration(migrationsFolder: string): Promise<void>;
1382
+ readonly deletedAt: (options?: TStringOptions) => PgAttr<alepha26.TOptional<TString>, typeof PG_DELETED_AT>;
1224
1383
  /**
1225
- * Common synchronization with error handling
1384
+ * Creates a Postgres ENUM type.
1385
+ *
1386
+ * > By default, `t.enum()` is mapped to a TEXT column in Postgres.
1387
+ * > Using this method, you can create a real ENUM type in the database.
1388
+ *
1389
+ * @example
1390
+ * ```ts
1391
+ * const statusEnum = pg.enum(["pending", "active", "archived"], { name: "status_enum" });
1392
+ * ```
1226
1393
  */
1227
- protected synchronizeSchema(): Promise<void>;
1394
+ readonly enum: <T extends string[]>(values: [...T], pgEnumOptions?: PgEnumOptions, typeOptions?: TStringOptions) => PgAttr<TUnsafe<T[number]>, typeof PG_ENUM>;
1228
1395
  /**
1229
- * Provider-specific migration execution
1230
- * MUST be implemented by each provider
1396
+ * Creates a reference to another table or schema. Basically a foreign key.
1231
1397
  */
1232
- protected abstract executeMigrations(migrationsFolder: string): Promise<void>;
1398
+ readonly ref: <T extends TSchema>(type: T, ref: () => any, actions?: {
1399
+ onUpdate?: UpdateDeleteAction$1;
1400
+ onDelete?: UpdateDeleteAction$1;
1401
+ }) => PgAttr<T, PgRef>;
1233
1402
  /**
1234
- * For testing purposes, generate a unique schema name.
1235
- * The schema name will be generated based on the current date and time.
1236
- * It will be in the format of `test_YYYYMMDD_HHMMSS_randomSuffix`.
1403
+ * Creates a page schema for a given object schema.
1404
+ * It's used by {@link Repository#paginate} method.
1237
1405
  */
1238
- protected generateTestSchemaName(): string;
1406
+ readonly page: <T extends TObject>(resource: T, options?: TObjectOptions) => TPage<T>;
1239
1407
  }
1408
+ /**
1409
+ * Wrapper of TypeProvider (`t`) for database types.
1410
+ *
1411
+ * Use `db` for improve TypeBox schema definitions with database-specific attributes.
1412
+ *
1413
+ * @example
1414
+ * ```ts
1415
+ * import { t } from "alepha";
1416
+ * import { db } from "alepha/orm";
1417
+ *
1418
+ * const userSchema = t.object({
1419
+ * id: db.primaryKey(t.uuid()),
1420
+ * email: t.email(),
1421
+ * createdAt: db.createdAt(),
1422
+ * });
1423
+ * ```
1424
+ */
1425
+ declare const db: DatabaseTypeProvider;
1426
+ /**
1427
+ * @deprecated Use `db` instead.
1428
+ */
1429
+ declare const pg: DatabaseTypeProvider;
1430
+ //#endregion
1431
+ //#region ../../src/orm/schemas/legacyIdSchema.d.ts
1432
+ /**
1433
+ * @deprecated Use `pg.primaryKey()` instead.
1434
+ */
1435
+ declare const legacyIdSchema: PgAttr<PgAttr<PgAttr<alepha26.TInteger, typeof PG_PRIMARY_KEY>, typeof PG_SERIAL>, typeof PG_DEFAULT>;
1240
1436
  //#endregion
1241
1437
  //#region ../../src/orm/services/QueryManager.d.ts
1242
1438
  declare class QueryManager {
@@ -1302,7 +1498,7 @@ declare class QueryManager {
1302
1498
  createPagination<T>(entities: T[], limit?: number, offset?: number, sort?: Array<{
1303
1499
  column: string;
1304
1500
  direction: "asc" | "desc";
1305
- }>): alepha34.Page<T>;
1501
+ }>): alepha26.Page<T>;
1306
1502
  }
1307
1503
  interface PgJoin {
1308
1504
  table: string;
@@ -1487,7 +1683,7 @@ declare abstract class Repository<T extends TObject> {
1487
1683
  /**
1488
1684
  * Find an entity and update it.
1489
1685
  */
1490
- updateOne(where: PgQueryWhereOrSQL<T>, data: Partial<Static<TObjectUpdate<T>>>, opts?: StatementOptions): Promise<Static<T>>;
1686
+ updateOne(where: PgQueryWhereOrSQL<T>, data: WithSQL<Static<TObjectUpdate<T>>>, opts?: StatementOptions): Promise<Static<T>>;
1491
1687
  /**
1492
1688
  * Save a given entity.
1493
1689
  *
@@ -1512,11 +1708,11 @@ declare abstract class Repository<T extends TObject> {
1512
1708
  /**
1513
1709
  * Find an entity by ID and update it.
1514
1710
  */
1515
- updateById(id: string | number, data: Partial<Static<TObjectUpdate<T>>>, opts?: StatementOptions): Promise<Static<T>>;
1711
+ updateById(id: string | number, data: WithSQL<Static<TObjectUpdate<T>>>, opts?: StatementOptions): Promise<Static<T>>;
1516
1712
  /**
1517
1713
  * Find many entities and update all of them.
1518
1714
  */
1519
- updateMany(where: PgQueryWhereOrSQL<T>, data: Partial<Static<TObjectUpdate<T>>>, opts?: StatementOptions): Promise<Array<number | string>>;
1715
+ updateMany(where: PgQueryWhereOrSQL<T>, data: WithSQL<Static<TObjectUpdate<T>>>, opts?: StatementOptions): Promise<Array<number | string>>;
1520
1716
  /**
1521
1717
  * Find many and delete all of them.
1522
1718
  * @returns Array of deleted entity IDs
@@ -1611,6 +1807,7 @@ interface StatementOptions {
1611
1807
  */
1612
1808
  now?: DateTime | string;
1613
1809
  }
1810
+ type WithSQL<T> = { [P in keyof T]?: T[P] | SQL };
1614
1811
  //#endregion
1615
1812
  //#region ../../src/orm/primitives/$repository.d.ts
1616
1813
  /**
@@ -1739,160 +1936,6 @@ interface TransactionPrimitiveOptions<T extends any[], R> {
1739
1936
  }
1740
1937
  type TransactionContext = PgTransaction<any, any, any>;
1741
1938
  //#endregion
1742
- //#region ../../src/orm/services/SqliteModelBuilder.d.ts
1743
- declare class SqliteModelBuilder extends ModelBuilder {
1744
- buildTable(entity: EntityPrimitive<any>, options: {
1745
- tables: Map<string, unknown>;
1746
- enums: Map<string, unknown>;
1747
- schema: string;
1748
- }): void;
1749
- buildSequence(sequence: SequencePrimitive, options: {
1750
- sequences: Map<string, unknown>;
1751
- schema: string;
1752
- }): void;
1753
- /**
1754
- * Get SQLite-specific config builder for the table.
1755
- */
1756
- protected getTableConfig(entity: EntityPrimitive, tables: Map<string, unknown>): ((self: BuildColumns<string, any, "sqlite">) => any) | undefined;
1757
- schemaToSqliteColumns: <T extends TObject>(tableName: string, schema: T, enums: Map<string, unknown>, tables: Map<string, unknown>) => SchemaToSqliteBuilder<T>;
1758
- mapFieldToSqliteColumn: (tableName: string, fieldName: string, value: TSchema, enums: Map<string, any>) => pg$1.SQLiteIntegerBuilderInitial<string> | pg$1.SQLiteNumericBuilderInitial<string> | pg$1.SQLiteTextBuilderInitial<string, [string, ...string[]], number | undefined> | drizzle_orm0.$Type<pg$1.SQLiteCustomColumnBuilder<{
1759
- name: string;
1760
- dataType: "custom";
1761
- columnType: "SQLiteCustomColumn";
1762
- data: string;
1763
- driverParam: string;
1764
- enumValues: undefined;
1765
- }>, string> | pg$1.SQLiteCustomColumnBuilder<{
1766
- name: string;
1767
- dataType: "custom";
1768
- columnType: "SQLiteCustomColumn";
1769
- data: string;
1770
- driverParam: number;
1771
- enumValues: undefined;
1772
- }> | pg$1.SQLiteCustomColumnBuilder<{
1773
- name: string;
1774
- dataType: "custom";
1775
- columnType: "SQLiteCustomColumn";
1776
- data: boolean;
1777
- driverParam: number;
1778
- enumValues: undefined;
1779
- }> | drizzle_orm0.$Type<pg$1.SQLiteCustomColumnBuilder<{
1780
- name: string;
1781
- dataType: "custom";
1782
- columnType: "SQLiteCustomColumn";
1783
- data: {
1784
- [x: string]: unknown;
1785
- [x: number]: unknown;
1786
- [x: symbol]: unknown;
1787
- };
1788
- driverParam: string;
1789
- enumValues: undefined;
1790
- }>, {
1791
- [x: string]: unknown;
1792
- [x: number]: unknown;
1793
- [x: symbol]: unknown;
1794
- }> | drizzle_orm0.$Type<pg$1.SQLiteCustomColumnBuilder<{
1795
- name: string;
1796
- dataType: "custom";
1797
- columnType: "SQLiteCustomColumn";
1798
- data: typebox1.StaticRecord<[], "Decode", {}, {}, string, TSchema>;
1799
- driverParam: string;
1800
- enumValues: undefined;
1801
- }>, typebox1.StaticRecord<[], "Decode", {}, {}, string, TSchema>> | drizzle_orm0.$Type<pg$1.SQLiteCustomColumnBuilder<{
1802
- name: string;
1803
- dataType: "custom";
1804
- columnType: "SQLiteCustomColumn";
1805
- data: any;
1806
- driverParam: string;
1807
- enumValues: undefined;
1808
- }>, any> | drizzle_orm0.$Type<pg$1.SQLiteCustomColumnBuilder<{
1809
- name: string;
1810
- dataType: "custom";
1811
- columnType: "SQLiteCustomColumn";
1812
- data: unknown[];
1813
- driverParam: string;
1814
- enumValues: undefined;
1815
- }>, unknown[]>;
1816
- mapStringToSqliteColumn: (key: string, value: TString) => pg$1.SQLiteTextBuilderInitial<string, [string, ...string[]], number | undefined> | drizzle_orm0.$Type<pg$1.SQLiteCustomColumnBuilder<{
1817
- name: string;
1818
- dataType: "custom";
1819
- columnType: "SQLiteCustomColumn";
1820
- data: string;
1821
- driverParam: string;
1822
- enumValues: undefined;
1823
- }>, string> | pg$1.SQLiteCustomColumnBuilder<{
1824
- name: string;
1825
- dataType: "custom";
1826
- columnType: "SQLiteCustomColumn";
1827
- data: string;
1828
- driverParam: number;
1829
- enumValues: undefined;
1830
- }>;
1831
- sqliteJson: <TDocument extends TSchema>(name: string, document: TDocument) => drizzle_orm0.$Type<pg$1.SQLiteCustomColumnBuilder<{
1832
- name: string;
1833
- dataType: "custom";
1834
- columnType: "SQLiteCustomColumn";
1835
- data: typebox1.StaticType<[], "Decode", {}, {}, TDocument>;
1836
- driverParam: string;
1837
- enumValues: undefined;
1838
- }>, typebox1.StaticType<[], "Decode", {}, {}, TDocument>>;
1839
- sqliteDateTime: {
1840
- <TConfig extends Record<string, any>>(fieldConfig: TConfig): pg$1.SQLiteCustomColumnBuilder<{
1841
- name: "";
1842
- dataType: "custom";
1843
- columnType: "SQLiteCustomColumn";
1844
- data: string;
1845
- driverParam: number;
1846
- enumValues: undefined;
1847
- }>;
1848
- <TName extends string>(dbName: TName, fieldConfig: unknown): pg$1.SQLiteCustomColumnBuilder<{
1849
- name: TName;
1850
- dataType: "custom";
1851
- columnType: "SQLiteCustomColumn";
1852
- data: string;
1853
- driverParam: number;
1854
- enumValues: undefined;
1855
- }>;
1856
- };
1857
- sqliteBool: {
1858
- <TConfig extends Record<string, any>>(fieldConfig: TConfig): pg$1.SQLiteCustomColumnBuilder<{
1859
- name: "";
1860
- dataType: "custom";
1861
- columnType: "SQLiteCustomColumn";
1862
- data: boolean;
1863
- driverParam: number;
1864
- enumValues: undefined;
1865
- }>;
1866
- <TName extends string>(dbName: TName, fieldConfig: unknown): pg$1.SQLiteCustomColumnBuilder<{
1867
- name: TName;
1868
- dataType: "custom";
1869
- columnType: "SQLiteCustomColumn";
1870
- data: boolean;
1871
- driverParam: number;
1872
- enumValues: undefined;
1873
- }>;
1874
- };
1875
- sqliteDate: {
1876
- <TConfig extends Record<string, any>>(fieldConfig: TConfig): pg$1.SQLiteCustomColumnBuilder<{
1877
- name: "";
1878
- dataType: "custom";
1879
- columnType: "SQLiteCustomColumn";
1880
- data: string;
1881
- driverParam: number;
1882
- enumValues: undefined;
1883
- }>;
1884
- <TName extends string>(dbName: TName, fieldConfig: unknown): pg$1.SQLiteCustomColumnBuilder<{
1885
- name: TName;
1886
- dataType: "custom";
1887
- columnType: "SQLiteCustomColumn";
1888
- data: string;
1889
- driverParam: number;
1890
- enumValues: undefined;
1891
- }>;
1892
- };
1893
- }
1894
- type SchemaToSqliteBuilder<T extends TObject> = { [key in keyof T["properties"]]: SQLiteColumnBuilderBase };
1895
- //#endregion
1896
1939
  //#region ../../src/orm/providers/drivers/CloudflareD1Provider.d.ts
1897
1940
  /**
1898
1941
  * D1Database interface matching Cloudflare's D1 API.
@@ -1952,7 +1995,7 @@ declare class CloudflareD1Provider extends DatabaseProvider {
1952
1995
  get url(): string;
1953
1996
  get db(): PgDatabase<any>;
1954
1997
  execute(query: SQLLike): Promise<Array<Record<string, unknown>>>;
1955
- protected readonly onStart: alepha34.HookPrimitive<"start">;
1998
+ protected readonly onStart: alepha26.HookPrimitive<"start">;
1956
1999
  protected executeMigrations(migrationsFolder: string): Promise<void>;
1957
2000
  /**
1958
2001
  * Override development migration to skip sync (not supported on D1).
@@ -1970,7 +2013,7 @@ declare class CloudflareD1Provider extends DatabaseProvider {
1970
2013
  declare class RepositoryProvider {
1971
2014
  protected readonly alepha: Alepha;
1972
2015
  protected readonly registry: Map<EntityPrimitive<any>, Service<Repository<any>>>;
1973
- getRepositories(provider?: DatabaseProvider): Repository<TObject<alepha34.TProperties>>[];
2016
+ getRepositories(provider?: DatabaseProvider): Repository<TObject<alepha26.TProperties>>[];
1974
2017
  getRepository<T extends TObject>(entity: EntityPrimitive<T>): Repository<T>;
1975
2018
  createClassRepository<T extends TObject>(entity: EntityPrimitive<T>): Service<Repository<T>>;
1976
2019
  }
@@ -1983,10 +2026,10 @@ declare const schema: <TDocument extends TSchema>(name: string, document: TDocum
1983
2026
  name: string;
1984
2027
  dataType: "custom";
1985
2028
  columnType: "PgCustomColumn";
1986
- data: typebox1.StaticType<[], "Decode", {}, {}, TDocument>;
2029
+ data: typebox0.StaticType<[], "Decode", {}, {}, TDocument>;
1987
2030
  driverParam: string;
1988
2031
  enumValues: undefined;
1989
- }>, typebox1.StaticType<[], "Decode", {}, {}, TDocument>>;
2032
+ }>, typebox0.StaticType<[], "Decode", {}, {}, TDocument>>;
1990
2033
  //#endregion
1991
2034
  //#region ../../src/orm/services/PostgresModelBuilder.d.ts
1992
2035
  declare class PostgresModelBuilder extends ModelBuilder {
@@ -2027,7 +2070,7 @@ declare class PostgresModelBuilder extends ModelBuilder {
2027
2070
  declare module "alepha" {
2028
2071
  interface Env extends Partial<Static<typeof envSchema$1>> {}
2029
2072
  }
2030
- declare const envSchema$1: alepha34.TObject<{
2073
+ declare const envSchema$1: alepha26.TObject<{
2031
2074
  /**
2032
2075
  * Main configuration for database connection.
2033
2076
  * Accept a string in the format of a Postgres connection URL.
@@ -2035,11 +2078,11 @@ declare const envSchema$1: alepha34.TObject<{
2035
2078
  * or
2036
2079
  * Example: postgres://user:password@localhost:5432/database?sslmode=require
2037
2080
  */
2038
- DATABASE_URL: alepha34.TOptional<alepha34.TString>;
2081
+ DATABASE_URL: alepha26.TOptional<alepha26.TString>;
2039
2082
  /**
2040
2083
  * In addition to the DATABASE_URL, you can specify the postgres schema name.
2041
2084
  */
2042
- POSTGRES_SCHEMA: alepha34.TOptional<alepha34.TString>;
2085
+ POSTGRES_SCHEMA: alepha26.TOptional<alepha26.TString>;
2043
2086
  }>;
2044
2087
  /**
2045
2088
  * Bun PostgreSQL provider using Drizzle ORM with Bun's native SQL client.
@@ -2089,8 +2132,8 @@ declare class BunPostgresProvider extends DatabaseProvider {
2089
2132
  */
2090
2133
  get db(): PgDatabase<any>;
2091
2134
  protected executeMigrations(migrationsFolder: string): Promise<void>;
2092
- protected readonly onStart: alepha34.HookPrimitive<"start">;
2093
- protected readonly onStop: alepha34.HookPrimitive<"stop">;
2135
+ protected readonly onStart: alepha26.HookPrimitive<"start">;
2136
+ protected readonly onStop: alepha26.HookPrimitive<"stop">;
2094
2137
  connect(): Promise<void>;
2095
2138
  close(): Promise<void>;
2096
2139
  protected migrateLock: alepha_lock0.LockPrimitive<() => Promise<void>>;
@@ -2100,8 +2143,8 @@ declare class BunPostgresProvider extends DatabaseProvider {
2100
2143
  /**
2101
2144
  * Configuration options for the Bun SQLite database provider.
2102
2145
  */
2103
- declare const bunSqliteOptions: alepha34.Atom<alepha34.TObject<{
2104
- path: alepha34.TOptional<alepha34.TString>;
2146
+ declare const bunSqliteOptions: alepha26.Atom<alepha26.TObject<{
2147
+ path: alepha26.TOptional<alepha26.TString>;
2105
2148
  }>, "alepha.postgres.bun-sqlite.options">;
2106
2149
  type BunSqliteProviderOptions = Static<typeof bunSqliteOptions.schema>;
2107
2150
  declare module "alepha" {
@@ -2150,8 +2193,8 @@ declare class BunSqliteProvider extends DatabaseProvider {
2150
2193
  get url(): string;
2151
2194
  get db(): PgDatabase<any>;
2152
2195
  execute(query: SQLLike): Promise<Array<Record<string, unknown>>>;
2153
- protected readonly onStart: alepha34.HookPrimitive<"start">;
2154
- protected readonly onStop: alepha34.HookPrimitive<"stop">;
2196
+ protected readonly onStart: alepha26.HookPrimitive<"start">;
2197
+ protected readonly onStop: alepha26.HookPrimitive<"stop">;
2155
2198
  protected executeMigrations(migrationsFolder: string): Promise<void>;
2156
2199
  }
2157
2200
  //#endregion
@@ -2159,7 +2202,7 @@ declare class BunSqliteProvider extends DatabaseProvider {
2159
2202
  declare module "alepha" {
2160
2203
  interface Env extends Partial<Static<typeof envSchema>> {}
2161
2204
  }
2162
- declare const envSchema: alepha34.TObject<{
2205
+ declare const envSchema: alepha26.TObject<{
2163
2206
  /**
2164
2207
  * Main configuration for database connection.
2165
2208
  * Accept a string in the format of a Postgres connection URL.
@@ -2167,13 +2210,13 @@ declare const envSchema: alepha34.TObject<{
2167
2210
  * or
2168
2211
  * Example: postgres://user:password@localhost:5432/database?sslmode=require
2169
2212
  */
2170
- DATABASE_URL: alepha34.TOptional<alepha34.TString>;
2213
+ DATABASE_URL: alepha26.TOptional<alepha26.TString>;
2171
2214
  /**
2172
2215
  * In addition to the DATABASE_URL, you can specify the postgres schema name.
2173
2216
  *
2174
2217
  * It will monkey patch drizzle tables.
2175
2218
  */
2176
- POSTGRES_SCHEMA: alepha34.TOptional<alepha34.TString>;
2219
+ POSTGRES_SCHEMA: alepha26.TOptional<alepha26.TString>;
2177
2220
  }>;
2178
2221
  declare class NodePostgresProvider extends DatabaseProvider {
2179
2222
  static readonly SSL_MODES: readonly ["require", "allow", "prefer", "verify-full"];
@@ -2206,8 +2249,8 @@ declare class NodePostgresProvider extends DatabaseProvider {
2206
2249
  */
2207
2250
  get db(): PostgresJsDatabase;
2208
2251
  protected executeMigrations(migrationsFolder: string): Promise<void>;
2209
- protected readonly onStart: alepha34.HookPrimitive<"start">;
2210
- protected readonly onStop: alepha34.HookPrimitive<"stop">;
2252
+ protected readonly onStart: alepha26.HookPrimitive<"start">;
2253
+ protected readonly onStop: alepha26.HookPrimitive<"stop">;
2211
2254
  connect(): Promise<void>;
2212
2255
  close(): Promise<void>;
2213
2256
  protected migrateLock: alepha_lock0.LockPrimitive<() => Promise<void>>;
@@ -2217,47 +2260,8 @@ declare class NodePostgresProvider extends DatabaseProvider {
2217
2260
  protected getClientOptions(): postgres.Options<any>;
2218
2261
  protected ssl(url: URL): "require" | "allow" | "prefer" | "verify-full" | undefined;
2219
2262
  }
2220
- //#endregion
2221
- //#region ../../src/orm/providers/drivers/NodeSqliteProvider.d.ts
2222
- /**
2223
- * Configuration options for the Node.js SQLite database provider.
2224
- */
2225
- declare const nodeSqliteOptions: alepha34.Atom<alepha34.TObject<{
2226
- path: alepha34.TOptional<alepha34.TString>;
2227
- }>, "alepha.postgres.node-sqlite.options">;
2228
- type NodeSqliteProviderOptions = Static<typeof nodeSqliteOptions.schema>;
2229
- declare module "alepha" {
2230
- interface State {
2231
- [nodeSqliteOptions.key]: NodeSqliteProviderOptions;
2232
- }
2233
- }
2234
- /**
2235
- * Add a fake support for SQLite in Node.js based on Postgres interfaces.
2236
- *
2237
- * This is NOT a real SQLite provider, it's a workaround to use SQLite with Drizzle ORM.
2238
- * This is NOT recommended for production use.
2239
- */
2240
- declare class NodeSqliteProvider extends DatabaseProvider {
2241
- protected readonly kit: DrizzleKitProvider;
2242
- protected readonly log: alepha_logger4.Logger;
2243
- protected readonly env: {
2244
- DATABASE_URL?: string | undefined;
2245
- };
2246
- protected readonly builder: SqliteModelBuilder;
2247
- protected readonly options: Readonly<{
2248
- path?: string | undefined;
2249
- }>;
2250
- protected sqlite: DatabaseSync;
2251
- get name(): string;
2252
- readonly dialect = "sqlite";
2253
- get url(): string;
2254
- execute(query: SQLLike): Promise<Array<Record<string, unknown>>>;
2255
- readonly db: PgDatabase<any>;
2256
- protected readonly onStart: alepha34.HookPrimitive<"start">;
2257
- protected executeMigrations(migrationsFolder: string): Promise<void>;
2258
- }
2259
2263
  declare namespace index_d_exports {
2260
- export { $entity, $repository, $sequence, $transaction, AlephaPostgres, BunPostgresProvider, BunSqliteProvider, BunSqliteProviderOptions, CloudflareD1Provider, D1Database, D1ExecResult, D1PreparedStatement, D1Result, DatabaseProvider, DatabaseTypeProvider, DbConflictError, DbEntityNotFoundError, DbError, DbMigrationError, DbVersionMismatchError, DrizzleKitProvider, EntityColumn, EntityColumns, EntityPrimitive, EntityPrimitiveOptions, FilterOperators, FromSchema, NodePostgresProvider, NodeSqliteProvider, NodeSqliteProviderOptions, OrderBy, OrderByClause, OrderDirection, PG_CREATED_AT, PG_DEFAULT, PG_DELETED_AT, PG_ENUM, PG_IDENTITY, PG_PRIMARY_KEY, PG_REF, PG_SERIAL, PG_UPDATED_AT, PG_VERSION, Page, PageQuery, PgAttr, PgAttrField, PgDefault, PgEnumOptions, PgIdentityOptions, PgPrimaryKey, PgQuery, PgQueryRelations, PgQueryWhere, PgQueryWhereOrSQL, PgRef, PgRefOptions, PgRelation, PgRelationMap, PgStatic, PgSymbolKeys, PgSymbols, Repository, RepositoryProvider, SQLLike, SchemaToTableConfig, SequencePrimitive, SequencePrimitiveOptions, StatementOptions, TObjectInsert, TObjectUpdate, TransactionContext, TransactionPrimitiveOptions, buildQueryString, bunSqliteOptions, db, drizzle_orm0 as drizzle, getAttrFields, insertSchema, legacyIdSchema, nodeSqliteOptions, pageQuerySchema, pageSchema, parseQueryString, pg, pgAttr, schema, sql, updateSchema };
2264
+ export { $entity, $repository, $sequence, $transaction, AlephaOrm, BunPostgresProvider, BunSqliteProvider, BunSqliteProviderOptions, CloudflareD1Provider, D1Database, D1ExecResult, D1PreparedStatement, D1Result, DatabaseProvider, DatabaseTypeProvider, DbConflictError, DbEntityNotFoundError, DbError, DbMigrationError, DbVersionMismatchError, DrizzleKitProvider, EntityColumn, EntityColumns, EntityPrimitive, EntityPrimitiveOptions, FilterOperators, FromSchema, NodePostgresProvider, NodeSqliteProvider, NodeSqliteProviderOptions, OrderBy, OrderByClause, OrderDirection, PG_CREATED_AT, PG_DEFAULT, PG_DELETED_AT, PG_ENUM, PG_IDENTITY, PG_PRIMARY_KEY, PG_REF, PG_SERIAL, PG_UPDATED_AT, PG_VERSION, Page, PageQuery, PgAttr, PgAttrField, PgDefault, PgEnumOptions, PgIdentityOptions, PgPrimaryKey, PgQuery, PgQueryRelations, PgQueryWhere, PgQueryWhereOrSQL, PgRef, PgRefOptions, PgRelation, PgRelationMap, PgStatic, PgSymbolKeys, PgSymbols, Repository, RepositoryProvider, SQLLike, SchemaToTableConfig, SequencePrimitive, SequencePrimitiveOptions, SqliteProvider, StatementOptions, TObjectInsert, TObjectUpdate, TransactionContext, TransactionPrimitiveOptions, buildQueryString, bunSqliteOptions, db, drizzle_orm0 as drizzle, getAttrFields, insertSchema, legacyIdSchema, nodeSqliteOptions, pageQuerySchema, pageSchema, parseQueryString, pg, pgAttr, schema, sql, updateSchema };
2261
2265
  }
2262
2266
  declare module "alepha" {
2263
2267
  interface Hooks {
@@ -2325,58 +2329,31 @@ declare module "alepha" {
2325
2329
  };
2326
2330
  }
2327
2331
  }
2332
+ declare const SqliteProvider: typeof NodeSqliteProvider;
2328
2333
  /**
2329
- * Postgres client based on Drizzle ORM, Alepha type-safe friendly.
2330
- *
2331
- * Automatically selects the appropriate provider based on runtime:
2332
- * - Bun: Uses `BunPostgresProvider` or `BunSqliteProvider`
2333
- * - Node.js: Uses `NodePostgresProvider` or `NodeSqliteProvider`
2334
- *
2335
- * ```ts
2336
- * import { t } from "alepha";
2337
- * import { $entity, $repository, db } from "alepha/postgres";
2338
- *
2339
- * const users = $entity({
2340
- * name: "users",
2341
- * schema: t.object({
2342
- * id: db.primaryKey(),
2343
- * name: t.text(),
2344
- * email: t.text(),
2345
- * }),
2346
- * });
2347
- *
2348
- * class App {
2349
- * users = $repository(users);
2350
- *
2351
- * getUserByName(name: string) {
2352
- * return this.users.findOne({ name: { eq: name } });
2353
- * }
2354
- * }
2355
- * ```
2356
- *
2357
- * This is not a full ORM, but rather a set of tools to work with Postgres databases in a type-safe way.
2334
+ * | type | quality | stability |
2335
+ * |------|---------|-----------|
2336
+ * | backend | epic | stable |
2358
2337
  *
2359
- * It provides:
2360
- * - A type-safe way to define entities and repositories. (via `$entity` and `$repository`)
2361
- * - Custom query builders and filters.
2362
- * - Built-in special columns like `createdAt`, `updatedAt`, `deletedAt`, `version`.
2363
- * - Automatic JSONB support.
2364
- * - Automatic synchronization of entities with the database schema (for testing and development).
2365
- * - Fallback to raw SQL via Drizzle ORM `sql` function.
2338
+ * Full-featured database abstraction built on Drizzle ORM with complete type safety.
2366
2339
  *
2367
- * Migrations are supported via Drizzle ORM, you need to use the `drizzle-kit` CLI tool to generate and run migrations.
2340
+ * **Features:**
2341
+ * - Define database entities with TypeBox schemas
2342
+ * - Automatic timestamps, soft deletes, and versioning columns
2343
+ * - Type-safe CRUD operations with filtering, pagination, sorting, and relationships
2344
+ * - Database transaction support with automatic rollback
2345
+ * - Auto-incrementing sequences for IDs
2346
+ * - PostgreSQL support (Node.js, Bun, Cloudflare Workers via pglite)
2347
+ * - SQLite support (Node.js, Bun, Cloudflare D1)
2348
+ * - Automatic schema sync for development/testing
2349
+ * - Drizzle Kit migrations for production
2350
+ * - Type-safe filters: `eq`, `ne`, `gt`, `gte`, `lt`, `lte`, `in`, `nin`, `like`, `between`
2351
+ * - JSONB column support
2352
+ * - Relationship joins
2368
2353
  *
2369
- * @see {@link $entity}
2370
- * @see {@link $sequence}
2371
- * @see {@link $repository}
2372
- * @see {@link $transaction}
2373
- * @see {@link NodePostgresProvider} - Node.js Postgres implementation
2374
- * @see {@link NodeSqliteProvider} - Node.js SQLite implementation
2375
- * @see {@link BunPostgresProvider} - Bun Postgres implementation
2376
- * @see {@link BunSqliteProvider} - Bun SQLite implementation
2377
2354
  * @module alepha.postgres
2378
2355
  */
2379
- declare const AlephaPostgres: alepha34.Service<alepha34.Module>;
2356
+ declare const AlephaOrm: alepha26.Service<alepha26.Module>;
2380
2357
  //#endregion
2381
- export { $entity, $repository, $sequence, $transaction, AlephaPostgres, BunPostgresProvider, BunSqliteProvider, BunSqliteProviderOptions, CloudflareD1Provider, D1Database, D1ExecResult, D1PreparedStatement, D1Result, DatabaseProvider, DatabaseTypeProvider, DbConflictError, DbEntityNotFoundError, DbError, DbMigrationError, DbVersionMismatchError, DrizzleKitProvider, EntityColumn, EntityColumns, EntityPrimitive, EntityPrimitiveOptions, FilterOperators, FromSchema, NodePostgresProvider, NodeSqliteProvider, NodeSqliteProviderOptions, OrderBy, OrderByClause, OrderDirection, PG_CREATED_AT, PG_DEFAULT, PG_DELETED_AT, PG_ENUM, PG_IDENTITY, PG_PRIMARY_KEY, PG_REF, PG_SERIAL, PG_UPDATED_AT, PG_VERSION, type Page, type PageQuery, PgAttr, PgAttrField, PgDefault, PgEnumOptions, PgIdentityOptions, PgPrimaryKey, PgQuery, PgQueryRelations, PgQueryWhere, PgQueryWhereOrSQL, PgRef, PgRefOptions, PgRelation, PgRelationMap, PgStatic, PgSymbolKeys, PgSymbols, Repository, RepositoryProvider, SQLLike, SchemaToTableConfig, SequencePrimitive, SequencePrimitiveOptions, StatementOptions, TObjectInsert, TObjectUpdate, TransactionContext, TransactionPrimitiveOptions, buildQueryString, bunSqliteOptions, db, drizzle_orm0 as drizzle, getAttrFields, insertSchema, legacyIdSchema, nodeSqliteOptions, pageQuerySchema, pageSchema, parseQueryString, pg, pgAttr, schema, sql, updateSchema };
2358
+ export { $entity, $repository, $sequence, $transaction, AlephaOrm, BunPostgresProvider, BunSqliteProvider, BunSqliteProviderOptions, CloudflareD1Provider, D1Database, D1ExecResult, D1PreparedStatement, D1Result, DatabaseProvider, DatabaseTypeProvider, DbConflictError, DbEntityNotFoundError, DbError, DbMigrationError, DbVersionMismatchError, DrizzleKitProvider, EntityColumn, EntityColumns, EntityPrimitive, EntityPrimitiveOptions, FilterOperators, FromSchema, NodePostgresProvider, NodeSqliteProvider, NodeSqliteProviderOptions, OrderBy, OrderByClause, OrderDirection, PG_CREATED_AT, PG_DEFAULT, PG_DELETED_AT, PG_ENUM, PG_IDENTITY, PG_PRIMARY_KEY, PG_REF, PG_SERIAL, PG_UPDATED_AT, PG_VERSION, type Page, type PageQuery, PgAttr, PgAttrField, PgDefault, PgEnumOptions, PgIdentityOptions, PgPrimaryKey, PgQuery, PgQueryRelations, PgQueryWhere, PgQueryWhereOrSQL, PgRef, PgRefOptions, PgRelation, PgRelationMap, PgStatic, PgSymbolKeys, PgSymbols, Repository, RepositoryProvider, SQLLike, SchemaToTableConfig, SequencePrimitive, SequencePrimitiveOptions, SqliteProvider, StatementOptions, TObjectInsert, TObjectUpdate, TransactionContext, TransactionPrimitiveOptions, buildQueryString, bunSqliteOptions, db, drizzle_orm0 as drizzle, getAttrFields, insertSchema, legacyIdSchema, nodeSqliteOptions, pageQuerySchema, pageSchema, parseQueryString, pg, pgAttr, schema, sql, updateSchema };
2382
2359
  //# sourceMappingURL=index.d.ts.map