alepha 0.15.0 → 0.15.2

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 (551) hide show
  1. package/README.md +43 -98
  2. package/dist/api/audits/index.d.ts +630 -653
  3. package/dist/api/audits/index.d.ts.map +1 -1
  4. package/dist/api/audits/index.js +12 -35
  5. package/dist/api/audits/index.js.map +1 -1
  6. package/dist/api/files/index.d.ts +365 -358
  7. package/dist/api/files/index.d.ts.map +1 -1
  8. package/dist/api/files/index.js +12 -5
  9. package/dist/api/files/index.js.map +1 -1
  10. package/dist/api/jobs/index.d.ts +255 -248
  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.browser.js +4 -4
  19. package/dist/api/notifications/index.browser.js.map +1 -1
  20. package/dist/api/notifications/index.d.ts +84 -78
  21. package/dist/api/notifications/index.d.ts.map +1 -1
  22. package/dist/api/notifications/index.js +14 -8
  23. package/dist/api/notifications/index.js.map +1 -1
  24. package/dist/api/parameters/index.d.ts +528 -535
  25. package/dist/api/parameters/index.d.ts.map +1 -1
  26. package/dist/api/parameters/index.js +30 -37
  27. package/dist/api/parameters/index.js.map +1 -1
  28. package/dist/api/users/index.d.ts +1221 -910
  29. package/dist/api/users/index.d.ts.map +1 -1
  30. package/dist/api/users/index.js +2556 -248
  31. package/dist/api/users/index.js.map +1 -1
  32. package/dist/api/verifications/index.d.ts +142 -136
  33. package/dist/api/verifications/index.d.ts.map +1 -1
  34. package/dist/api/verifications/index.js +12 -4
  35. package/dist/api/verifications/index.js.map +1 -1
  36. package/dist/batch/index.d.ts +142 -162
  37. package/dist/batch/index.d.ts.map +1 -1
  38. package/dist/batch/index.js +31 -44
  39. package/dist/batch/index.js.map +1 -1
  40. package/dist/bucket/index.d.ts +595 -171
  41. package/dist/bucket/index.d.ts.map +1 -1
  42. package/dist/bucket/index.js +1856 -12
  43. package/dist/bucket/index.js.map +1 -1
  44. package/dist/cache/core/index.d.ts +225 -53
  45. package/dist/cache/core/index.d.ts.map +1 -1
  46. package/dist/cache/core/index.js +213 -7
  47. package/dist/cache/core/index.js.map +1 -1
  48. package/dist/cache/redis/index.d.ts +1 -0
  49. package/dist/cache/redis/index.d.ts.map +1 -1
  50. package/dist/cache/redis/index.js +6 -2
  51. package/dist/cache/redis/index.js.map +1 -1
  52. package/dist/cli/index.d.ts +834 -226
  53. package/dist/cli/index.d.ts.map +1 -1
  54. package/dist/cli/index.js +2872 -417
  55. package/dist/cli/index.js.map +1 -1
  56. package/dist/command/index.d.ts +458 -310
  57. package/dist/command/index.d.ts.map +1 -1
  58. package/dist/command/index.js +2011 -76
  59. package/dist/command/index.js.map +1 -1
  60. package/dist/core/index.browser.js +309 -97
  61. package/dist/core/index.browser.js.map +1 -1
  62. package/dist/core/index.d.ts +796 -701
  63. package/dist/core/index.d.ts.map +1 -1
  64. package/dist/core/index.js +329 -97
  65. package/dist/core/index.js.map +1 -1
  66. package/dist/core/index.native.js +309 -97
  67. package/dist/core/index.native.js.map +1 -1
  68. package/dist/datetime/index.d.ts +59 -44
  69. package/dist/datetime/index.d.ts.map +1 -1
  70. package/dist/datetime/index.js +15 -0
  71. package/dist/datetime/index.js.map +1 -1
  72. package/dist/email/index.d.ts +314 -19
  73. package/dist/email/index.d.ts.map +1 -1
  74. package/dist/email/index.js +1852 -7
  75. package/dist/email/index.js.map +1 -1
  76. package/dist/fake/index.d.ts +5500 -5418
  77. package/dist/fake/index.d.ts.map +1 -1
  78. package/dist/fake/index.js +113 -42
  79. package/dist/fake/index.js.map +1 -1
  80. package/dist/lock/core/index.d.ts +219 -212
  81. package/dist/lock/core/index.d.ts.map +1 -1
  82. package/dist/lock/core/index.js +11 -4
  83. package/dist/lock/core/index.js.map +1 -1
  84. package/dist/lock/redis/index.d.ts.map +1 -1
  85. package/dist/logger/index.d.ts +41 -90
  86. package/dist/logger/index.d.ts.map +1 -1
  87. package/dist/logger/index.js +15 -68
  88. package/dist/logger/index.js.map +1 -1
  89. package/dist/mcp/index.d.ts +228 -230
  90. package/dist/mcp/index.d.ts.map +1 -1
  91. package/dist/mcp/index.js +32 -31
  92. package/dist/mcp/index.js.map +1 -1
  93. package/dist/orm/index.browser.js +12 -12
  94. package/dist/orm/index.browser.js.map +1 -1
  95. package/dist/orm/index.bun.js +90 -80
  96. package/dist/orm/index.bun.js.map +1 -1
  97. package/dist/orm/index.d.ts +1434 -1459
  98. package/dist/orm/index.d.ts.map +1 -1
  99. package/dist/orm/index.js +112 -130
  100. package/dist/orm/index.js.map +1 -1
  101. package/dist/queue/core/index.d.ts +262 -254
  102. package/dist/queue/core/index.d.ts.map +1 -1
  103. package/dist/queue/core/index.js +14 -6
  104. package/dist/queue/core/index.js.map +1 -1
  105. package/dist/queue/redis/index.d.ts.map +1 -1
  106. package/dist/react/auth/index.browser.js +108 -0
  107. package/dist/react/auth/index.browser.js.map +1 -0
  108. package/dist/react/auth/index.d.ts +100 -0
  109. package/dist/react/auth/index.d.ts.map +1 -0
  110. package/dist/react/auth/index.js +145 -0
  111. package/dist/react/auth/index.js.map +1 -0
  112. package/dist/react/core/index.d.ts +469 -0
  113. package/dist/react/core/index.d.ts.map +1 -0
  114. package/dist/react/core/index.js +464 -0
  115. package/dist/react/core/index.js.map +1 -0
  116. package/dist/react/form/index.d.ts +232 -0
  117. package/dist/react/form/index.d.ts.map +1 -0
  118. package/dist/react/form/index.js +432 -0
  119. package/dist/react/form/index.js.map +1 -0
  120. package/dist/react/head/index.browser.js +423 -0
  121. package/dist/react/head/index.browser.js.map +1 -0
  122. package/dist/react/head/index.d.ts +288 -0
  123. package/dist/react/head/index.d.ts.map +1 -0
  124. package/dist/react/head/index.js +465 -0
  125. package/dist/react/head/index.js.map +1 -0
  126. package/dist/react/i18n/index.d.ts +175 -0
  127. package/dist/react/i18n/index.d.ts.map +1 -0
  128. package/dist/react/i18n/index.js +224 -0
  129. package/dist/react/i18n/index.js.map +1 -0
  130. package/dist/react/router/index.browser.js +1980 -0
  131. package/dist/react/router/index.browser.js.map +1 -0
  132. package/dist/react/router/index.d.ts +2068 -0
  133. package/dist/react/router/index.d.ts.map +1 -0
  134. package/dist/react/router/index.js +4932 -0
  135. package/dist/react/router/index.js.map +1 -0
  136. package/dist/react/websocket/index.d.ts +117 -0
  137. package/dist/react/websocket/index.d.ts.map +1 -0
  138. package/dist/react/websocket/index.js +107 -0
  139. package/dist/react/websocket/index.js.map +1 -0
  140. package/dist/redis/index.bun.js +4 -0
  141. package/dist/redis/index.bun.js.map +1 -1
  142. package/dist/redis/index.d.ts +127 -130
  143. package/dist/redis/index.d.ts.map +1 -1
  144. package/dist/redis/index.js +16 -25
  145. package/dist/redis/index.js.map +1 -1
  146. package/dist/retry/index.d.ts +80 -71
  147. package/dist/retry/index.d.ts.map +1 -1
  148. package/dist/retry/index.js +11 -2
  149. package/dist/retry/index.js.map +1 -1
  150. package/dist/router/index.d.ts +6 -6
  151. package/dist/router/index.d.ts.map +1 -1
  152. package/dist/scheduler/index.d.ts +119 -28
  153. package/dist/scheduler/index.d.ts.map +1 -1
  154. package/dist/scheduler/index.js +404 -3
  155. package/dist/scheduler/index.js.map +1 -1
  156. package/dist/security/index.d.ts +642 -228
  157. package/dist/security/index.d.ts.map +1 -1
  158. package/dist/security/index.js +1579 -37
  159. package/dist/security/index.js.map +1 -1
  160. package/dist/server/auth/index.d.ts +1141 -111
  161. package/dist/server/auth/index.d.ts.map +1 -1
  162. package/dist/server/auth/index.js +1261 -25
  163. package/dist/server/auth/index.js.map +1 -1
  164. package/dist/server/cache/index.d.ts +63 -78
  165. package/dist/server/cache/index.d.ts.map +1 -1
  166. package/dist/server/cache/index.js +7 -22
  167. package/dist/server/cache/index.js.map +1 -1
  168. package/dist/server/compress/index.d.ts +13 -5
  169. package/dist/server/compress/index.d.ts.map +1 -1
  170. package/dist/server/compress/index.js +10 -2
  171. package/dist/server/compress/index.js.map +1 -1
  172. package/dist/server/cookies/index.d.ts +46 -22
  173. package/dist/server/cookies/index.d.ts.map +1 -1
  174. package/dist/server/cookies/index.js +7 -5
  175. package/dist/server/cookies/index.js.map +1 -1
  176. package/dist/server/core/index.d.ts +307 -196
  177. package/dist/server/core/index.d.ts.map +1 -1
  178. package/dist/server/core/index.js +271 -38
  179. package/dist/server/core/index.js.map +1 -1
  180. package/dist/server/cors/index.d.ts +24 -34
  181. package/dist/server/cors/index.d.ts.map +1 -1
  182. package/dist/server/cors/index.js +7 -21
  183. package/dist/server/cors/index.js.map +1 -1
  184. package/dist/server/health/index.d.ts +25 -19
  185. package/dist/server/health/index.d.ts.map +1 -1
  186. package/dist/server/health/index.js +8 -2
  187. package/dist/server/health/index.js.map +1 -1
  188. package/dist/server/helmet/index.d.ts +13 -5
  189. package/dist/server/helmet/index.d.ts.map +1 -1
  190. package/dist/server/helmet/index.js +11 -3
  191. package/dist/server/helmet/index.js.map +1 -1
  192. package/dist/server/links/index.browser.js +9 -1
  193. package/dist/server/links/index.browser.js.map +1 -1
  194. package/dist/server/links/index.d.ts +133 -128
  195. package/dist/server/links/index.d.ts.map +1 -1
  196. package/dist/server/links/index.js +24 -11
  197. package/dist/server/links/index.js.map +1 -1
  198. package/dist/server/metrics/index.d.ts +524 -4
  199. package/dist/server/metrics/index.d.ts.map +1 -1
  200. package/dist/server/metrics/index.js +4472 -7
  201. package/dist/server/metrics/index.js.map +1 -1
  202. package/dist/server/multipart/index.d.ts +15 -9
  203. package/dist/server/multipart/index.d.ts.map +1 -1
  204. package/dist/server/multipart/index.js +9 -3
  205. package/dist/server/multipart/index.js.map +1 -1
  206. package/dist/server/proxy/index.d.ts +110 -104
  207. package/dist/server/proxy/index.d.ts.map +1 -1
  208. package/dist/server/proxy/index.js +8 -2
  209. package/dist/server/proxy/index.js.map +1 -1
  210. package/dist/server/rate-limit/index.d.ts +46 -51
  211. package/dist/server/rate-limit/index.d.ts.map +1 -1
  212. package/dist/server/rate-limit/index.js +18 -55
  213. package/dist/server/rate-limit/index.js.map +1 -1
  214. package/dist/server/static/index.d.ts +181 -48
  215. package/dist/server/static/index.d.ts.map +1 -1
  216. package/dist/server/static/index.js +1848 -5
  217. package/dist/server/static/index.js.map +1 -1
  218. package/dist/server/swagger/index.d.ts +348 -53
  219. package/dist/server/swagger/index.d.ts.map +1 -1
  220. package/dist/server/swagger/index.js +1849 -6
  221. package/dist/server/swagger/index.js.map +1 -1
  222. package/dist/sms/index.d.ts +312 -18
  223. package/dist/sms/index.d.ts.map +1 -1
  224. package/dist/sms/index.js +1854 -10
  225. package/dist/sms/index.js.map +1 -1
  226. package/dist/system/index.browser.js +496 -0
  227. package/dist/system/index.browser.js.map +1 -0
  228. package/dist/system/index.d.ts +1158 -0
  229. package/dist/system/index.d.ts.map +1 -0
  230. package/dist/{file → system}/index.js +412 -20
  231. package/dist/system/index.js.map +1 -0
  232. package/dist/thread/index.d.ts +82 -73
  233. package/dist/thread/index.d.ts.map +1 -1
  234. package/dist/thread/index.js +13 -4
  235. package/dist/thread/index.js.map +1 -1
  236. package/dist/topic/core/index.d.ts +330 -323
  237. package/dist/topic/core/index.d.ts.map +1 -1
  238. package/dist/topic/core/index.js +12 -5
  239. package/dist/topic/core/index.js.map +1 -1
  240. package/dist/topic/redis/index.d.ts +6 -6
  241. package/dist/topic/redis/index.d.ts.map +1 -1
  242. package/dist/vite/index.d.ts +163 -5825
  243. package/dist/vite/index.d.ts.map +1 -1
  244. package/dist/vite/index.js +130 -477
  245. package/dist/vite/index.js.map +1 -1
  246. package/dist/websocket/index.browser.js +3 -3
  247. package/dist/websocket/index.browser.js.map +1 -1
  248. package/dist/websocket/index.d.ts +287 -283
  249. package/dist/websocket/index.d.ts.map +1 -1
  250. package/dist/websocket/index.js +15 -11
  251. package/dist/websocket/index.js.map +1 -1
  252. package/package.json +86 -17
  253. package/src/api/audits/index.ts +10 -33
  254. package/src/api/files/__tests__/$bucket.spec.ts +1 -1
  255. package/src/api/files/controllers/AdminFileStatsController.spec.ts +1 -1
  256. package/src/api/files/controllers/FileController.spec.ts +1 -1
  257. package/src/api/files/index.ts +10 -3
  258. package/src/api/files/jobs/FileJobs.spec.ts +1 -1
  259. package/src/api/files/services/FileService.spec.ts +1 -1
  260. package/src/api/jobs/index.ts +10 -3
  261. package/src/api/keys/controllers/AdminApiKeyController.ts +75 -0
  262. package/src/api/keys/controllers/ApiKeyController.ts +103 -0
  263. package/src/api/keys/entities/apiKeyEntity.ts +41 -0
  264. package/src/api/keys/index.ts +49 -0
  265. package/src/api/keys/schemas/adminApiKeyQuerySchema.ts +7 -0
  266. package/src/api/keys/schemas/adminApiKeyResourceSchema.ts +17 -0
  267. package/src/api/keys/schemas/createApiKeyBodySchema.ts +7 -0
  268. package/src/api/keys/schemas/createApiKeyResponseSchema.ts +11 -0
  269. package/src/api/keys/schemas/listApiKeyResponseSchema.ts +15 -0
  270. package/src/api/keys/schemas/revokeApiKeyParamsSchema.ts +5 -0
  271. package/src/api/keys/schemas/revokeApiKeyResponseSchema.ts +5 -0
  272. package/src/api/keys/services/ApiKeyService.spec.ts +553 -0
  273. package/src/api/keys/services/ApiKeyService.ts +306 -0
  274. package/src/api/logs/TODO.md +52 -0
  275. package/src/api/notifications/index.ts +10 -4
  276. package/src/api/parameters/index.ts +9 -30
  277. package/src/api/parameters/primitives/$config.ts +12 -4
  278. package/src/api/parameters/services/ConfigStore.ts +9 -3
  279. package/src/api/users/__tests__/ApiKeys-integration.spec.ts +1035 -0
  280. package/src/api/users/__tests__/ApiKeys.spec.ts +401 -0
  281. package/src/api/users/index.ts +14 -3
  282. package/src/api/users/primitives/$realm.ts +33 -5
  283. package/src/api/users/providers/RealmProvider.ts +1 -12
  284. package/src/api/users/services/SessionService.ts +1 -11
  285. package/src/api/verifications/controllers/VerificationController.ts +2 -0
  286. package/src/api/verifications/index.ts +10 -4
  287. package/src/batch/index.ts +9 -36
  288. package/src/batch/primitives/$batch.ts +0 -8
  289. package/src/batch/providers/BatchProvider.ts +29 -2
  290. package/src/bucket/__tests__/shared.ts +1 -1
  291. package/src/bucket/index.ts +13 -6
  292. package/src/bucket/primitives/$bucket.ts +1 -1
  293. package/src/bucket/providers/LocalFileStorageProvider.ts +1 -1
  294. package/src/bucket/providers/MemoryFileStorageProvider.ts +1 -1
  295. package/src/cache/core/__tests__/shared.ts +30 -0
  296. package/src/cache/core/index.ts +11 -6
  297. package/src/cache/core/primitives/$cache.spec.ts +5 -0
  298. package/src/cache/core/providers/CacheProvider.ts +17 -0
  299. package/src/cache/core/providers/MemoryCacheProvider.ts +300 -1
  300. package/src/cache/redis/__tests__/cache-redis.spec.ts +5 -0
  301. package/src/cache/redis/providers/RedisCacheProvider.ts +9 -0
  302. package/src/cli/apps/AlephaCli.ts +3 -16
  303. package/src/cli/apps/AlephaPackageBuilderCli.ts +10 -2
  304. package/src/cli/atoms/appEntryOptions.ts +13 -0
  305. package/src/cli/atoms/buildOptions.ts +1 -1
  306. package/src/cli/atoms/changelogOptions.ts +1 -1
  307. package/src/cli/commands/build.ts +64 -52
  308. package/src/cli/commands/db.ts +17 -11
  309. package/src/cli/commands/deploy.ts +1 -1
  310. package/src/cli/commands/dev.ts +13 -49
  311. package/src/cli/commands/gen/env.ts +6 -3
  312. package/src/cli/commands/gen/openapi.ts +5 -2
  313. package/src/cli/commands/init.spec.ts +544 -0
  314. package/src/cli/commands/init.ts +101 -58
  315. package/src/cli/commands/lint.ts +8 -2
  316. package/src/cli/commands/typecheck.ts +11 -0
  317. package/src/cli/defineConfig.ts +9 -0
  318. package/src/cli/index.ts +2 -1
  319. package/src/cli/providers/AppEntryProvider.ts +131 -0
  320. package/src/cli/providers/ViteBuildProvider.ts +40 -0
  321. package/src/cli/providers/ViteDevServerProvider.ts +378 -0
  322. package/src/cli/services/AlephaCliUtils.ts +39 -93
  323. package/src/cli/services/PackageManagerUtils.ts +140 -17
  324. package/src/cli/services/ProjectScaffolder.ts +169 -101
  325. package/src/cli/services/ViteUtils.ts +82 -0
  326. package/src/cli/{assets/claudeMd.ts → templates/agentMd.ts} +41 -28
  327. package/src/cli/{assets → templates}/apiHelloControllerTs.ts +2 -1
  328. package/src/cli/{assets → templates}/biomeJson.ts +2 -1
  329. package/src/cli/{assets → templates}/dummySpecTs.ts +2 -1
  330. package/src/cli/{assets → templates}/editorconfig.ts +2 -1
  331. package/src/cli/templates/gitignore.ts +39 -0
  332. package/src/cli/{assets → templates}/mainBrowserTs.ts +2 -1
  333. package/src/cli/templates/mainCss.ts +33 -0
  334. package/src/cli/templates/mainServerTs.ts +33 -0
  335. package/src/cli/{assets → templates}/tsconfigJson.ts +2 -1
  336. package/src/cli/templates/webAppRouterTs.ts +50 -0
  337. package/src/cli/templates/webHelloComponentTsx.ts +20 -0
  338. package/src/command/helpers/Runner.spec.ts +4 -0
  339. package/src/command/helpers/Runner.ts +3 -21
  340. package/src/command/index.ts +12 -4
  341. package/src/command/providers/CliProvider.spec.ts +1067 -0
  342. package/src/command/providers/CliProvider.ts +203 -40
  343. package/src/core/Alepha.ts +3 -9
  344. package/src/core/__tests__/Alepha-start.spec.ts +4 -4
  345. package/src/core/helpers/jsonSchemaToTypeBox.spec.ts +771 -0
  346. package/src/core/helpers/jsonSchemaToTypeBox.ts +62 -10
  347. package/src/core/index.shared.ts +1 -0
  348. package/src/core/index.ts +20 -0
  349. package/src/core/primitives/$module.ts +12 -0
  350. package/src/core/providers/EventManager.spec.ts +0 -71
  351. package/src/core/providers/EventManager.ts +3 -15
  352. package/src/core/providers/Json.ts +2 -14
  353. package/src/core/providers/KeylessJsonSchemaCodec.spec.ts +257 -0
  354. package/src/core/providers/KeylessJsonSchemaCodec.ts +396 -14
  355. package/src/core/providers/SchemaValidator.spec.ts +236 -0
  356. package/src/datetime/index.ts +15 -0
  357. package/src/email/index.ts +10 -5
  358. package/src/email/providers/LocalEmailProvider.spec.ts +1 -1
  359. package/src/email/providers/LocalEmailProvider.ts +1 -1
  360. package/src/fake/__tests__/keyName.example.ts +1 -1
  361. package/src/fake/__tests__/keyName.spec.ts +5 -5
  362. package/src/fake/index.ts +9 -6
  363. package/src/fake/providers/FakeProvider.spec.ts +258 -40
  364. package/src/fake/providers/FakeProvider.ts +133 -19
  365. package/src/lock/core/index.ts +11 -4
  366. package/src/logger/index.ts +17 -66
  367. package/src/logger/providers/PrettyFormatterProvider.ts +0 -9
  368. package/src/mcp/errors/McpError.ts +30 -0
  369. package/src/mcp/index.ts +13 -27
  370. package/src/mcp/transports/SseMcpTransport.ts +6 -7
  371. package/src/orm/__tests__/PostgresProvider.spec.ts +2 -2
  372. package/src/orm/index.browser.ts +2 -2
  373. package/src/orm/index.bun.ts +4 -2
  374. package/src/orm/index.ts +21 -47
  375. package/src/orm/providers/DrizzleKitProvider.ts +3 -5
  376. package/src/orm/providers/drivers/BunSqliteProvider.ts +1 -0
  377. package/src/orm/services/Repository.ts +18 -3
  378. package/src/queue/core/index.ts +14 -6
  379. package/src/react/auth/__tests__/$auth.spec.ts +202 -0
  380. package/src/react/auth/hooks/useAuth.ts +32 -0
  381. package/src/react/auth/index.browser.ts +13 -0
  382. package/src/react/auth/index.shared.ts +2 -0
  383. package/src/react/auth/index.ts +48 -0
  384. package/src/react/auth/providers/ReactAuthProvider.ts +16 -0
  385. package/src/react/auth/services/ReactAuth.ts +135 -0
  386. package/src/react/core/__tests__/Router.spec.tsx +169 -0
  387. package/src/react/core/components/ClientOnly.tsx +49 -0
  388. package/src/react/core/components/ErrorBoundary.tsx +73 -0
  389. package/src/react/core/contexts/AlephaContext.ts +7 -0
  390. package/src/react/core/contexts/AlephaProvider.tsx +42 -0
  391. package/src/react/core/hooks/useAction.browser.spec.tsx +569 -0
  392. package/src/react/core/hooks/useAction.ts +480 -0
  393. package/src/react/core/hooks/useAlepha.ts +26 -0
  394. package/src/react/core/hooks/useClient.ts +17 -0
  395. package/src/react/core/hooks/useEvents.ts +51 -0
  396. package/src/react/core/hooks/useInject.ts +12 -0
  397. package/src/react/core/hooks/useStore.ts +52 -0
  398. package/src/react/core/index.ts +90 -0
  399. package/src/react/form/components/FormState.tsx +17 -0
  400. package/src/react/form/errors/FormValidationError.ts +18 -0
  401. package/src/react/form/hooks/useForm.browser.spec.tsx +366 -0
  402. package/src/react/form/hooks/useForm.ts +47 -0
  403. package/src/react/form/hooks/useFormState.ts +130 -0
  404. package/src/react/form/index.ts +44 -0
  405. package/src/react/form/services/FormModel.ts +614 -0
  406. package/src/react/head/helpers/SeoExpander.spec.ts +203 -0
  407. package/src/react/head/helpers/SeoExpander.ts +142 -0
  408. package/src/react/head/hooks/useHead.spec.tsx +288 -0
  409. package/src/react/head/hooks/useHead.ts +62 -0
  410. package/src/react/head/index.browser.ts +26 -0
  411. package/src/react/head/index.ts +44 -0
  412. package/src/react/head/interfaces/Head.ts +105 -0
  413. package/src/react/head/primitives/$head.ts +25 -0
  414. package/src/react/head/providers/BrowserHeadProvider.browser.spec.ts +196 -0
  415. package/src/react/head/providers/BrowserHeadProvider.ts +212 -0
  416. package/src/react/head/providers/HeadProvider.ts +168 -0
  417. package/src/react/head/providers/ServerHeadProvider.ts +31 -0
  418. package/src/react/i18n/__tests__/integration.spec.tsx +239 -0
  419. package/src/react/i18n/components/Localize.spec.tsx +357 -0
  420. package/src/react/i18n/components/Localize.tsx +35 -0
  421. package/src/react/i18n/hooks/useI18n.browser.spec.tsx +438 -0
  422. package/src/react/i18n/hooks/useI18n.ts +18 -0
  423. package/src/react/i18n/index.ts +41 -0
  424. package/src/react/i18n/primitives/$dictionary.ts +69 -0
  425. package/src/react/i18n/providers/I18nProvider.spec.ts +389 -0
  426. package/src/react/i18n/providers/I18nProvider.ts +278 -0
  427. package/src/react/router/__tests__/page-head-browser.browser.spec.ts +95 -0
  428. package/src/react/router/__tests__/page-head.spec.ts +48 -0
  429. package/src/react/router/__tests__/seo-head.spec.ts +125 -0
  430. package/src/react/router/atoms/ssrManifestAtom.ts +58 -0
  431. package/src/react/router/components/ErrorViewer.tsx +872 -0
  432. package/src/react/router/components/Link.tsx +23 -0
  433. package/src/react/router/components/NestedView.tsx +223 -0
  434. package/src/react/router/components/NotFound.tsx +30 -0
  435. package/src/react/router/constants/PAGE_PRELOAD_KEY.ts +6 -0
  436. package/src/react/router/contexts/RouterLayerContext.ts +12 -0
  437. package/src/react/router/errors/Redirection.ts +28 -0
  438. package/src/react/router/hooks/useActive.ts +52 -0
  439. package/src/react/router/hooks/useQueryParams.ts +63 -0
  440. package/src/react/router/hooks/useRouter.ts +20 -0
  441. package/src/react/router/hooks/useRouterState.ts +11 -0
  442. package/src/react/router/index.browser.ts +45 -0
  443. package/src/react/router/index.shared.ts +19 -0
  444. package/src/react/router/index.ts +142 -0
  445. package/src/react/router/primitives/$page.browser.spec.tsx +851 -0
  446. package/src/react/router/primitives/$page.spec.tsx +708 -0
  447. package/src/react/router/primitives/$page.ts +497 -0
  448. package/src/react/router/providers/ReactBrowserProvider.ts +309 -0
  449. package/src/react/router/providers/ReactBrowserRendererProvider.ts +25 -0
  450. package/src/react/router/providers/ReactBrowserRouterProvider.ts +168 -0
  451. package/src/react/router/providers/ReactPageProvider.ts +726 -0
  452. package/src/react/router/providers/ReactServerProvider.spec.tsx +316 -0
  453. package/src/react/router/providers/ReactServerProvider.ts +558 -0
  454. package/src/react/router/providers/ReactServerTemplateProvider.ts +979 -0
  455. package/src/react/router/providers/SSRManifestProvider.ts +334 -0
  456. package/src/react/router/services/ReactPageServerService.ts +48 -0
  457. package/src/react/router/services/ReactPageService.ts +27 -0
  458. package/src/react/router/services/ReactRouter.ts +262 -0
  459. package/src/react/websocket/hooks/useRoom.tsx +242 -0
  460. package/src/react/websocket/index.ts +7 -0
  461. package/src/redis/__tests__/redis.spec.ts +13 -0
  462. package/src/redis/index.ts +9 -25
  463. package/src/redis/providers/BunRedisProvider.ts +9 -0
  464. package/src/redis/providers/NodeRedisProvider.ts +8 -0
  465. package/src/redis/providers/RedisProvider.ts +16 -0
  466. package/src/retry/index.ts +11 -2
  467. package/src/router/index.ts +15 -0
  468. package/src/scheduler/index.ts +11 -2
  469. package/src/security/__tests__/BasicAuth.spec.ts +2 -0
  470. package/src/security/__tests__/ServerSecurityProvider.spec.ts +13 -5
  471. package/src/security/index.ts +15 -10
  472. package/src/security/interfaces/IssuerResolver.ts +27 -0
  473. package/src/security/primitives/$issuer.ts +55 -0
  474. package/src/security/providers/SecurityProvider.ts +179 -0
  475. package/src/security/providers/ServerBasicAuthProvider.ts +6 -2
  476. package/src/security/providers/ServerSecurityProvider.ts +36 -22
  477. package/src/server/auth/index.ts +12 -7
  478. package/src/server/cache/index.ts +7 -22
  479. package/src/server/compress/index.ts +10 -2
  480. package/src/server/cookies/index.ts +7 -5
  481. package/src/server/cookies/primitives/$cookie.ts +33 -11
  482. package/src/server/core/index.ts +17 -7
  483. package/src/server/core/interfaces/ServerRequest.ts +83 -1
  484. package/src/server/core/primitives/$action.spec.ts +1 -1
  485. package/src/server/core/primitives/$action.ts +8 -3
  486. package/src/server/core/providers/BunHttpServerProvider.ts +1 -1
  487. package/src/server/core/providers/NodeHttpServerProvider.spec.ts +125 -0
  488. package/src/server/core/providers/NodeHttpServerProvider.ts +77 -22
  489. package/src/server/core/providers/ServerLoggerProvider.ts +2 -2
  490. package/src/server/core/providers/ServerProvider.ts +9 -12
  491. package/src/server/core/services/ServerRequestParser.spec.ts +520 -0
  492. package/src/server/core/services/ServerRequestParser.ts +306 -13
  493. package/src/server/cors/index.ts +7 -21
  494. package/src/server/cors/primitives/$cors.ts +6 -2
  495. package/src/server/health/index.ts +8 -2
  496. package/src/server/helmet/index.ts +11 -3
  497. package/src/server/links/atoms/apiLinksAtom.ts +7 -0
  498. package/src/server/links/index.browser.ts +2 -0
  499. package/src/server/links/index.ts +13 -6
  500. package/src/server/metrics/index.ts +10 -3
  501. package/src/server/multipart/index.ts +9 -3
  502. package/src/server/proxy/index.ts +8 -2
  503. package/src/server/rate-limit/index.ts +21 -25
  504. package/src/server/rate-limit/primitives/$rateLimit.ts +6 -2
  505. package/src/server/rate-limit/providers/ServerRateLimitProvider.spec.ts +38 -14
  506. package/src/server/rate-limit/providers/ServerRateLimitProvider.ts +22 -56
  507. package/src/server/static/index.ts +8 -2
  508. package/src/server/static/providers/ServerStaticProvider.ts +1 -1
  509. package/src/server/swagger/index.ts +9 -4
  510. package/src/server/swagger/providers/ServerSwaggerProvider.ts +1 -1
  511. package/src/sms/index.ts +9 -5
  512. package/src/sms/providers/LocalSmsProvider.spec.ts +1 -1
  513. package/src/sms/providers/LocalSmsProvider.ts +1 -1
  514. package/src/system/index.browser.ts +11 -0
  515. package/src/system/index.ts +62 -0
  516. package/src/{file → system}/providers/FileSystemProvider.ts +16 -0
  517. package/src/{file → system}/providers/MemoryFileSystemProvider.ts +116 -3
  518. package/src/system/providers/MemoryShellProvider.ts +164 -0
  519. package/src/{file → system}/providers/NodeFileSystemProvider.spec.ts +2 -2
  520. package/src/{file → system}/providers/NodeFileSystemProvider.ts +36 -0
  521. package/src/system/providers/NodeShellProvider.ts +184 -0
  522. package/src/system/providers/ShellProvider.ts +74 -0
  523. package/src/{file → system}/services/FileDetector.spec.ts +2 -2
  524. package/src/thread/index.ts +11 -2
  525. package/src/topic/core/index.ts +12 -5
  526. package/src/vite/index.ts +3 -2
  527. package/src/vite/tasks/buildClient.ts +2 -8
  528. package/src/vite/tasks/buildServer.ts +84 -21
  529. package/src/vite/tasks/copyAssets.ts +5 -4
  530. package/src/vite/tasks/generateSitemap.ts +64 -23
  531. package/src/vite/tasks/index.ts +0 -2
  532. package/src/vite/tasks/prerenderPages.ts +49 -24
  533. package/src/websocket/index.ts +12 -8
  534. package/dist/file/index.d.ts +0 -839
  535. package/dist/file/index.d.ts.map +0 -1
  536. package/dist/file/index.js.map +0 -1
  537. package/src/cli/assets/indexHtml.ts +0 -15
  538. package/src/cli/assets/mainServerTs.ts +0 -24
  539. package/src/cli/assets/webAppRouterTs.ts +0 -15
  540. package/src/cli/assets/webHelloComponentTsx.ts +0 -16
  541. package/src/cli/commands/format.ts +0 -23
  542. package/src/file/index.ts +0 -43
  543. package/src/vite/helpers/boot.ts +0 -117
  544. package/src/vite/plugins/viteAlephaDev.ts +0 -177
  545. package/src/vite/tasks/devServer.ts +0 -71
  546. package/src/vite/tasks/runAlepha.ts +0 -270
  547. /package/dist/orm/{chunk-DtkW-qnP.js → chunk-DH6iiROE.js} +0 -0
  548. /package/src/cli/{assets → templates}/apiIndexTs.ts +0 -0
  549. /package/src/cli/{assets → templates}/webIndexTs.ts +0 -0
  550. /package/src/{file → system}/errors/FileError.ts +0 -0
  551. /package/src/{file → system}/services/FileDetector.ts +0 -0
@@ -24,74 +24,85 @@ import { RedisClientType, createClient } from "@redis/client";
24
24
  */
25
25
  declare abstract class RedisProvider {
26
26
  /**
27
- * Whether the Redis client is ready to accept commands.
28
- */
27
+ * Whether the Redis client is ready to accept commands.
28
+ */
29
29
  abstract readonly isReady: boolean;
30
30
  /**
31
- * Connect to the Redis server.
32
- */
31
+ * Connect to the Redis server.
32
+ */
33
33
  abstract connect(): Promise<void>;
34
34
  /**
35
- * Close the connection to the Redis server.
36
- */
35
+ * Close the connection to the Redis server.
36
+ */
37
37
  abstract close(): Promise<void>;
38
38
  /**
39
- * Get the value of a key.
40
- *
41
- * @param key The key to get.
42
- * @returns The value as a Buffer, or undefined if the key does not exist.
43
- */
39
+ * Get the value of a key.
40
+ *
41
+ * @param key The key to get.
42
+ * @returns The value as a Buffer, or undefined if the key does not exist.
43
+ */
44
44
  abstract get(key: string): Promise<Buffer | undefined>;
45
45
  /**
46
- * Set the value of a key.
47
- *
48
- * @param key The key to set.
49
- * @param value The value to set (Buffer or string).
50
- * @param options Optional set options (EX, PX, NX, XX, etc.).
51
- * @returns The value as a Buffer.
52
- */
46
+ * Set the value of a key.
47
+ *
48
+ * @param key The key to set.
49
+ * @param value The value to set (Buffer or string).
50
+ * @param options Optional set options (EX, PX, NX, XX, etc.).
51
+ * @returns The value as a Buffer.
52
+ */
53
53
  abstract set(key: string, value: Buffer | string, options?: RedisSetOptions): Promise<Buffer>;
54
54
  /**
55
- * Check if a key exists.
56
- *
57
- * @param key The key to check.
58
- * @returns True if the key exists.
59
- */
55
+ * Check if a key exists.
56
+ *
57
+ * @param key The key to check.
58
+ * @returns True if the key exists.
59
+ */
60
60
  abstract has(key: string): Promise<boolean>;
61
61
  /**
62
- * Get all keys matching a pattern.
63
- *
64
- * @param pattern The glob-style pattern to match.
65
- * @returns Array of matching key names.
66
- */
62
+ * Get all keys matching a pattern.
63
+ *
64
+ * @param pattern The glob-style pattern to match.
65
+ * @returns Array of matching key names.
66
+ */
67
67
  abstract keys(pattern: string): Promise<string[]>;
68
68
  /**
69
- * Delete one or more keys.
70
- *
71
- * @param keys The keys to delete.
72
- */
69
+ * Delete one or more keys.
70
+ *
71
+ * @param keys The keys to delete.
72
+ */
73
73
  abstract del(keys: string[]): Promise<void>;
74
74
  /**
75
- * Push a value to the left (head) of a list.
76
- *
77
- * @param key The list key.
78
- * @param value The value to push.
79
- */
75
+ * Push a value to the left (head) of a list.
76
+ *
77
+ * @param key The list key.
78
+ * @param value The value to push.
79
+ */
80
80
  abstract lpush(key: string, value: string): Promise<void>;
81
81
  /**
82
- * Pop a value from the right (tail) of a list.
83
- *
84
- * @param key The list key.
85
- * @returns The value, or undefined if the list is empty.
86
- */
82
+ * Pop a value from the right (tail) of a list.
83
+ *
84
+ * @param key The list key.
85
+ * @returns The value, or undefined if the list is empty.
86
+ */
87
87
  abstract rpop(key: string): Promise<string | undefined>;
88
88
  /**
89
- * Publish a message to a channel.
90
- *
91
- * @param channel The channel name.
92
- * @param message The message to publish.
93
- */
89
+ * Publish a message to a channel.
90
+ *
91
+ * @param channel The channel name.
92
+ * @param message The message to publish.
93
+ */
94
94
  abstract publish(channel: string, message: string): Promise<void>;
95
+ /**
96
+ * Increment the integer value of a key by the given amount.
97
+ *
98
+ * If the key does not exist, it is set to 0 before performing the operation.
99
+ * This operation is atomic.
100
+ *
101
+ * @param key The key to increment.
102
+ * @param amount The amount to increment by.
103
+ * @returns The new value after incrementing.
104
+ */
105
+ abstract incr(key: string, amount: number): Promise<number>;
95
106
  }
96
107
  /**
97
108
  * Common Redis SET command options.
@@ -99,47 +110,47 @@ declare abstract class RedisProvider {
99
110
  */
100
111
  interface RedisSetOptions {
101
112
  /**
102
- * Set the specified expire time, in seconds.
103
- */
113
+ * Set the specified expire time, in seconds.
114
+ */
104
115
  EX?: number;
105
116
  /**
106
- * Set the specified expire time, in milliseconds.
107
- */
117
+ * Set the specified expire time, in milliseconds.
118
+ */
108
119
  PX?: number;
109
120
  /**
110
- * Set the specified Unix time at which the key will expire, in seconds.
111
- */
121
+ * Set the specified Unix time at which the key will expire, in seconds.
122
+ */
112
123
  EXAT?: number;
113
124
  /**
114
- * Set the specified Unix time at which the key will expire, in milliseconds.
115
- */
125
+ * Set the specified Unix time at which the key will expire, in milliseconds.
126
+ */
116
127
  PXAT?: number;
117
128
  /**
118
- * Only set the key if it does not already exist.
119
- */
129
+ * Only set the key if it does not already exist.
130
+ */
120
131
  NX?: boolean;
121
132
  /**
122
- * Only set the key if it already exists.
123
- */
133
+ * Only set the key if it already exists.
134
+ */
124
135
  XX?: boolean;
125
136
  /**
126
- * Retain the time to live associated with the key.
127
- */
137
+ * Retain the time to live associated with the key.
138
+ */
128
139
  KEEPTTL?: boolean;
129
140
  /**
130
- * Return the old string stored at key, or nil if key did not exist.
131
- */
141
+ * Return the old string stored at key, or nil if key did not exist.
142
+ */
132
143
  GET?: boolean;
133
144
  /**
134
- * Alternative expiration format (compatible with @redis/client).
135
- */
145
+ * Alternative expiration format (compatible with @redis/client).
146
+ */
136
147
  expiration?: {
137
148
  type: "EX" | "PX" | "EXAT" | "PXAT" | "KEEPTTL";
138
149
  value: number;
139
150
  };
140
151
  /**
141
- * Alternative condition format (compatible with @redis/client).
142
- */
152
+ * Alternative condition format (compatible with @redis/client).
153
+ */
143
154
  condition?: "NX" | "XX";
144
155
  }
145
156
  //#endregion
@@ -180,16 +191,16 @@ declare class BunRedisProvider extends RedisProvider {
180
191
  protected readonly start: alepha1.HookPrimitive<"start">;
181
192
  protected readonly stop: alepha1.HookPrimitive<"stop">;
182
193
  /**
183
- * Connect to the Redis server.
184
- */
194
+ * Connect to the Redis server.
195
+ */
185
196
  connect(): Promise<void>;
186
197
  /**
187
- * Close the connection to the Redis server.
188
- */
198
+ * Close the connection to the Redis server.
199
+ */
189
200
  close(): Promise<void>;
190
201
  /**
191
- * Create a duplicate connection for pub/sub or other isolated operations.
192
- */
202
+ * Create a duplicate connection for pub/sub or other isolated operations.
203
+ */
193
204
  duplicate(): Promise<Bun.RedisClient>;
194
205
  get(key: string): Promise<Buffer | undefined>;
195
206
  set(key: string, value: Buffer | string, options?: RedisSetOptions): Promise<Buffer>;
@@ -199,9 +210,10 @@ declare class BunRedisProvider extends RedisProvider {
199
210
  lpush(key: string, value: string): Promise<void>;
200
211
  rpop(key: string): Promise<string | undefined>;
201
212
  publish(channel: string, message: string): Promise<void>;
213
+ incr(key: string, amount: number): Promise<number>;
202
214
  /**
203
- * Get the Redis connection URL.
204
- */
215
+ * Get the Redis connection URL.
216
+ */
205
217
  protected getUrl(): string;
206
218
  }
207
219
  //#endregion
@@ -230,30 +242,30 @@ declare class BunRedisProvider extends RedisProvider {
230
242
  */
231
243
  declare abstract class RedisSubscriberProvider {
232
244
  /**
233
- * Whether the Redis subscriber client is ready to accept commands.
234
- */
245
+ * Whether the Redis subscriber client is ready to accept commands.
246
+ */
235
247
  abstract readonly isReady: boolean;
236
248
  /**
237
- * Connect to the Redis server for subscriptions.
238
- */
249
+ * Connect to the Redis server for subscriptions.
250
+ */
239
251
  abstract connect(): Promise<void>;
240
252
  /**
241
- * Close the subscriber connection.
242
- */
253
+ * Close the subscriber connection.
254
+ */
243
255
  abstract close(): Promise<void>;
244
256
  /**
245
- * Subscribe to a channel.
246
- *
247
- * @param channel The channel name.
248
- * @param callback The callback to invoke when a message is received.
249
- */
257
+ * Subscribe to a channel.
258
+ *
259
+ * @param channel The channel name.
260
+ * @param callback The callback to invoke when a message is received.
261
+ */
250
262
  abstract subscribe(channel: string, callback: SubscribeCallback): Promise<void>;
251
263
  /**
252
- * Unsubscribe from a channel.
253
- *
254
- * @param channel The channel name.
255
- * @param callback Optional specific callback to remove.
256
- */
264
+ * Unsubscribe from a channel.
265
+ *
266
+ * @param channel The channel name.
267
+ * @param callback Optional specific callback to remove.
268
+ */
257
269
  abstract unsubscribe(channel: string, callback?: SubscribeCallback): Promise<void>;
258
270
  }
259
271
  /**
@@ -286,12 +298,12 @@ declare class BunRedisSubscriberProvider extends RedisSubscriberProvider {
286
298
  protected readonly start: alepha1.HookPrimitive<"start">;
287
299
  protected readonly stop: alepha1.HookPrimitive<"stop">;
288
300
  /**
289
- * Connect to the Redis server for subscriptions.
290
- */
301
+ * Connect to the Redis server for subscriptions.
302
+ */
291
303
  connect(): Promise<void>;
292
304
  /**
293
- * Close the subscriber connection.
294
- */
305
+ * Close the subscriber connection.
306
+ */
295
307
  close(): Promise<void>;
296
308
  subscribe(channel: string, callback: SubscribeCallback): Promise<void>;
297
309
  unsubscribe(channel: string, _callback?: SubscribeCallback): Promise<void>;
@@ -337,12 +349,12 @@ declare class NodeRedisProvider extends RedisProvider {
337
349
  protected readonly start: alepha1.HookPrimitive<"start">;
338
350
  protected readonly stop: alepha1.HookPrimitive<"stop">;
339
351
  /**
340
- * Connect to the Redis server.
341
- */
352
+ * Connect to the Redis server.
353
+ */
342
354
  connect(): Promise<void>;
343
355
  /**
344
- * Close the connection to the Redis server.
345
- */
356
+ * Close the connection to the Redis server.
357
+ */
346
358
  close(): Promise<void>;
347
359
  duplicate(options?: Partial<NodeRedisClientOptions>): NodeRedisClient;
348
360
  get(key: string): Promise<Buffer | undefined>;
@@ -353,13 +365,14 @@ declare class NodeRedisProvider extends RedisProvider {
353
365
  lpush(key: string, value: string): Promise<void>;
354
366
  rpop(key: string): Promise<string | undefined>;
355
367
  publish(channel: string, message: string): Promise<void>;
368
+ incr(key: string, amount: number): Promise<number>;
356
369
  /**
357
- * Get the Redis connection URL.
358
- */
370
+ * Get the Redis connection URL.
371
+ */
359
372
  protected getUrl(): string;
360
373
  /**
361
- * Redis client factory method.
362
- */
374
+ * Redis client factory method.
375
+ */
363
376
  protected createClient(): NodeRedisClient;
364
377
  }
365
378
  //#endregion
@@ -392,41 +405,25 @@ declare class NodeRedisSubscriberProvider extends RedisSubscriberProvider {
392
405
  subscribe(channel: string, callback: SubscribeCallback): Promise<void>;
393
406
  unsubscribe(channel: string, callback?: SubscribeCallback): Promise<void>;
394
407
  /**
395
- * Redis subscriber client factory method.
396
- */
408
+ * Redis subscriber client factory method.
409
+ */
397
410
  protected createClient(): NodeRedisClient;
398
411
  }
399
412
  //#endregion
400
413
  //#region ../../src/redis/index.d.ts
401
414
  /**
402
- * Redis client provider for Alepha applications.
403
- *
404
- * Automatically selects the appropriate provider based on runtime:
405
- * - Bun: Uses `BunRedisProvider` with Bun's native Redis client (7.9x faster than ioredis)
406
- * - Node.js: Uses `NodeRedisProvider` with `@redis/client`
415
+ * | type | quality | stability |
416
+ * |------|---------|-----------|
417
+ * | backend | standard | stable |
407
418
  *
408
- * @example
409
- * ```ts
410
- * // Inject the abstract provider - runtime selects the implementation
411
- * const redis = alepha.inject(RedisProvider);
419
+ * Redis client wrapper.
412
420
  *
413
- * // Use common operations
414
- * await redis.set("key", "value");
415
- * const value = await redis.get("key");
416
- *
417
- * // For pub/sub
418
- * const subscriber = alepha.inject(RedisSubscriberProvider);
419
- * await subscriber.subscribe("channel", (message, channel) => {
420
- * console.log(`Received: ${message} on ${channel}`);
421
- * });
422
- * ```
421
+ * **Features:**
422
+ * - Connection pooling
423
+ * - Automatic reconnection
424
+ * - Command pipelining
425
+ * - Pub/sub support
423
426
  *
424
- * @see {@link RedisProvider} - Abstract base class
425
- * @see {@link NodeRedisProvider} - Node.js implementation
426
- * @see {@link BunRedisProvider} - Bun implementation
427
- * @see {@link RedisSubscriberProvider} - Abstract subscriber base class
428
- * @see {@link NodeRedisSubscriberProvider} - Node.js subscriber implementation
429
- * @see {@link BunRedisSubscriberProvider} - Bun subscriber implementation
430
427
  * @module alepha.redis
431
428
  */
432
429
  declare const AlephaRedis: alepha1.Service<alepha1.Module>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/redis/providers/RedisProvider.ts","../../src/redis/providers/BunRedisProvider.ts","../../src/redis/providers/RedisSubscriberProvider.ts","../../src/redis/providers/BunRedisSubscriberProvider.ts","../../src/redis/providers/NodeRedisProvider.ts","../../src/redis/providers/NodeRedisSubscriberProvider.ts","../../src/redis/index.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/redis/providers/RedisProvider.ts","../../src/redis/providers/BunRedisProvider.ts","../../src/redis/providers/RedisSubscriberProvider.ts","../../src/redis/providers/BunRedisSubscriberProvider.ts","../../src/redis/providers/NodeRedisProvider.ts","../../src/redis/providers/NodeRedisSubscriberProvider.ts","../../src/redis/index.ts"],"mappings":"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"}
@@ -161,6 +161,10 @@ var BunRedisProvider = class extends RedisProvider {
161
161
  async publish(channel, message) {
162
162
  await this.publisher.publish(channel, message);
163
163
  }
164
+ async incr(key, amount) {
165
+ const result = await this.publisher.send("INCRBY", [key, String(amount)]);
166
+ return Number(result);
167
+ }
164
168
  /**
165
169
  * Get the Redis connection URL.
166
170
  */
@@ -371,6 +375,9 @@ var NodeRedisProvider = class extends RedisProvider {
371
375
  async publish(channel, message) {
372
376
  await this.publisher.publish(channel, message);
373
377
  }
378
+ async incr(key, amount) {
379
+ return this.publisher.INCRBY(key, amount);
380
+ }
374
381
  /**
375
382
  * Get the Redis connection URL.
376
383
  */
@@ -459,34 +466,18 @@ var NodeRedisSubscriberProvider = class extends RedisSubscriberProvider {
459
466
  //#endregion
460
467
  //#region ../../src/redis/index.ts
461
468
  /**
462
- * Redis client provider for Alepha applications.
463
- *
464
- * Automatically selects the appropriate provider based on runtime:
465
- * - Bun: Uses `BunRedisProvider` with Bun's native Redis client (7.9x faster than ioredis)
466
- * - Node.js: Uses `NodeRedisProvider` with `@redis/client`
467
- *
468
- * @example
469
- * ```ts
470
- * // Inject the abstract provider - runtime selects the implementation
471
- * const redis = alepha.inject(RedisProvider);
469
+ * | type | quality | stability |
470
+ * |------|---------|-----------|
471
+ * | backend | standard | stable |
472
472
  *
473
- * // Use common operations
474
- * await redis.set("key", "value");
475
- * const value = await redis.get("key");
473
+ * Redis client wrapper.
476
474
  *
477
- * // For pub/sub
478
- * const subscriber = alepha.inject(RedisSubscriberProvider);
479
- * await subscriber.subscribe("channel", (message, channel) => {
480
- * console.log(`Received: ${message} on ${channel}`);
481
- * });
482
- * ```
475
+ * **Features:**
476
+ * - Connection pooling
477
+ * - Automatic reconnection
478
+ * - Command pipelining
479
+ * - Pub/sub support
483
480
  *
484
- * @see {@link RedisProvider} - Abstract base class
485
- * @see {@link NodeRedisProvider} - Node.js implementation
486
- * @see {@link BunRedisProvider} - Bun implementation
487
- * @see {@link RedisSubscriberProvider} - Abstract subscriber base class
488
- * @see {@link NodeRedisSubscriberProvider} - Node.js subscriber implementation
489
- * @see {@link BunRedisSubscriberProvider} - Bun subscriber implementation
490
481
  * @module alepha.redis
491
482
  */
492
483
  const AlephaRedis = $module({