alepha 0.15.4 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (318) hide show
  1. package/README.md +26 -11
  2. package/dist/api/audits/index.d.ts +335 -335
  3. package/dist/api/audits/index.d.ts.map +1 -1
  4. package/dist/api/audits/index.js +3 -3
  5. package/dist/api/audits/index.js.map +1 -1
  6. package/dist/api/files/index.d.ts +3 -3
  7. package/dist/api/files/index.js +3 -3
  8. package/dist/api/files/index.js.map +1 -1
  9. package/dist/api/jobs/index.d.ts +199 -156
  10. package/dist/api/jobs/index.d.ts.map +1 -1
  11. package/dist/api/jobs/index.js +100 -5
  12. package/dist/api/jobs/index.js.map +1 -1
  13. package/dist/api/keys/index.d.ts +198 -198
  14. package/dist/api/keys/index.d.ts.map +1 -1
  15. package/dist/api/keys/index.js +3 -3
  16. package/dist/api/keys/index.js.map +1 -1
  17. package/dist/api/notifications/index.d.ts +3 -3
  18. package/dist/api/notifications/index.js +3 -3
  19. package/dist/api/notifications/index.js.map +1 -1
  20. package/dist/api/parameters/index.d.ts +263 -263
  21. package/dist/api/parameters/index.d.ts.map +1 -1
  22. package/dist/api/parameters/index.js +31 -30
  23. package/dist/api/parameters/index.js.map +1 -1
  24. package/dist/api/users/index.d.ts +1097 -791
  25. package/dist/api/users/index.d.ts.map +1 -1
  26. package/dist/api/users/index.js +364 -101
  27. package/dist/api/users/index.js.map +1 -1
  28. package/dist/api/verifications/index.d.ts +131 -131
  29. package/dist/api/verifications/index.d.ts.map +1 -1
  30. package/dist/api/verifications/index.js +3 -3
  31. package/dist/api/verifications/index.js.map +1 -1
  32. package/dist/batch/index.d.ts +7 -7
  33. package/dist/batch/index.js +3 -3
  34. package/dist/batch/index.js.map +1 -1
  35. package/dist/bucket/index.d.ts +3 -3
  36. package/dist/bucket/index.js +97 -35
  37. package/dist/bucket/index.js.map +1 -1
  38. package/dist/cache/core/index.d.ts +3 -3
  39. package/dist/cache/core/index.js +3 -3
  40. package/dist/cache/core/index.js.map +1 -1
  41. package/dist/cli/index.d.ts +5765 -37
  42. package/dist/cli/index.d.ts.map +1 -1
  43. package/dist/cli/index.js +900 -184
  44. package/dist/cli/index.js.map +1 -1
  45. package/dist/command/index.d.ts +12 -4
  46. package/dist/command/index.d.ts.map +1 -1
  47. package/dist/command/index.js +103 -37
  48. package/dist/command/index.js.map +1 -1
  49. package/dist/core/index.browser.js +20 -0
  50. package/dist/core/index.browser.js.map +1 -1
  51. package/dist/core/index.d.ts +13 -8
  52. package/dist/core/index.d.ts.map +1 -1
  53. package/dist/core/index.js +23 -3
  54. package/dist/core/index.js.map +1 -1
  55. package/dist/core/index.native.js +20 -0
  56. package/dist/core/index.native.js.map +1 -1
  57. package/dist/datetime/index.d.ts +3 -3
  58. package/dist/datetime/index.js +3 -3
  59. package/dist/datetime/index.js.map +1 -1
  60. package/dist/email/index.d.ts +3 -3
  61. package/dist/email/index.js +100 -38
  62. package/dist/email/index.js.map +1 -1
  63. package/dist/fake/index.d.ts +3 -3
  64. package/dist/fake/index.js +3 -3
  65. package/dist/fake/index.js.map +1 -1
  66. package/dist/lock/core/index.d.ts +3 -3
  67. package/dist/lock/core/index.js +3 -3
  68. package/dist/lock/core/index.js.map +1 -1
  69. package/dist/logger/index.d.ts +3 -3
  70. package/dist/logger/index.js +6 -3
  71. package/dist/logger/index.js.map +1 -1
  72. package/dist/mcp/index.d.ts +3 -3
  73. package/dist/mcp/index.js +3 -3
  74. package/dist/mcp/index.js.map +1 -1
  75. package/dist/orm/index.bun.js +3 -2
  76. package/dist/orm/index.bun.js.map +1 -1
  77. package/dist/orm/index.d.ts +19 -19
  78. package/dist/orm/index.d.ts.map +1 -1
  79. package/dist/orm/index.js +22 -8
  80. package/dist/orm/index.js.map +1 -1
  81. package/dist/queue/core/index.d.ts +3 -3
  82. package/dist/queue/core/index.js +3 -3
  83. package/dist/queue/core/index.js.map +1 -1
  84. package/dist/react/auth/index.d.ts +3 -3
  85. package/dist/react/auth/index.js +3 -3
  86. package/dist/react/auth/index.js.map +1 -1
  87. package/dist/react/core/index.d.ts +6 -6
  88. package/dist/react/core/index.js +3 -3
  89. package/dist/react/core/index.js.map +1 -1
  90. package/dist/react/form/index.d.ts +3 -3
  91. package/dist/react/form/index.js +3 -3
  92. package/dist/react/form/index.js.map +1 -1
  93. package/dist/react/head/index.d.ts +3 -3
  94. package/dist/react/head/index.js +3 -3
  95. package/dist/react/head/index.js.map +1 -1
  96. package/dist/react/i18n/index.d.ts +3 -3
  97. package/dist/react/i18n/index.js +3 -3
  98. package/dist/react/i18n/index.js.map +1 -1
  99. package/dist/react/intro/index.d.ts +40 -0
  100. package/dist/react/intro/index.d.ts.map +1 -0
  101. package/dist/react/intro/index.js +634 -0
  102. package/dist/react/intro/index.js.map +1 -0
  103. package/dist/react/router/index.browser.js +9 -6
  104. package/dist/react/router/index.browser.js.map +1 -1
  105. package/dist/react/router/index.d.ts +1 -1
  106. package/dist/react/router/index.d.ts.map +1 -1
  107. package/dist/react/router/index.js +103 -38
  108. package/dist/react/router/index.js.map +1 -1
  109. package/dist/redis/index.d.ts +3 -3
  110. package/dist/redis/index.js +3 -3
  111. package/dist/redis/index.js.map +1 -1
  112. package/dist/retry/index.d.ts +3 -3
  113. package/dist/retry/index.js +3 -3
  114. package/dist/retry/index.js.map +1 -1
  115. package/dist/scheduler/index.d.ts +3 -3
  116. package/dist/scheduler/index.js +3 -3
  117. package/dist/scheduler/index.js.map +1 -1
  118. package/dist/security/index.d.ts +3 -3
  119. package/dist/security/index.js +5 -5
  120. package/dist/security/index.js.map +1 -1
  121. package/dist/server/auth/index.d.ts +3 -3
  122. package/dist/server/auth/index.js +3 -3
  123. package/dist/server/auth/index.js.map +1 -1
  124. package/dist/server/cache/index.d.ts +3 -3
  125. package/dist/server/cache/index.js +3 -3
  126. package/dist/server/cache/index.js.map +1 -1
  127. package/dist/server/compress/index.d.ts +3 -3
  128. package/dist/server/compress/index.js +3 -3
  129. package/dist/server/compress/index.js.map +1 -1
  130. package/dist/server/cookies/index.d.ts +3 -3
  131. package/dist/server/cookies/index.js +3 -3
  132. package/dist/server/cookies/index.js.map +1 -1
  133. package/dist/server/core/index.d.ts +43 -51
  134. package/dist/server/core/index.d.ts.map +1 -1
  135. package/dist/server/core/index.js +42 -38
  136. package/dist/server/core/index.js.map +1 -1
  137. package/dist/server/cors/index.d.ts +3 -3
  138. package/dist/server/cors/index.js +3 -3
  139. package/dist/server/cors/index.js.map +1 -1
  140. package/dist/server/health/index.d.ts +3 -3
  141. package/dist/server/health/index.js +3 -3
  142. package/dist/server/health/index.js.map +1 -1
  143. package/dist/server/helmet/index.d.ts +3 -3
  144. package/dist/server/helmet/index.js +3 -3
  145. package/dist/server/helmet/index.js.map +1 -1
  146. package/dist/server/links/index.browser.js +5 -0
  147. package/dist/server/links/index.browser.js.map +1 -1
  148. package/dist/server/links/index.d.ts +4 -3
  149. package/dist/server/links/index.d.ts.map +1 -1
  150. package/dist/server/links/index.js +8 -3
  151. package/dist/server/links/index.js.map +1 -1
  152. package/dist/server/metrics/index.d.ts +3 -3
  153. package/dist/server/metrics/index.js +3 -3
  154. package/dist/server/metrics/index.js.map +1 -1
  155. package/dist/server/multipart/index.d.ts +3 -3
  156. package/dist/server/multipart/index.js +3 -3
  157. package/dist/server/multipart/index.js.map +1 -1
  158. package/dist/server/proxy/index.d.ts +3 -3
  159. package/dist/server/proxy/index.js +3 -3
  160. package/dist/server/proxy/index.js.map +1 -1
  161. package/dist/server/rate-limit/index.d.ts +3 -3
  162. package/dist/server/rate-limit/index.js +3 -3
  163. package/dist/server/rate-limit/index.js.map +1 -1
  164. package/dist/server/static/index.d.ts +3 -3
  165. package/dist/server/static/index.d.ts.map +1 -1
  166. package/dist/server/static/index.js +103 -39
  167. package/dist/server/static/index.js.map +1 -1
  168. package/dist/server/swagger/index.d.ts +3 -3
  169. package/dist/server/swagger/index.js +97 -35
  170. package/dist/server/swagger/index.js.map +1 -1
  171. package/dist/sms/index.d.ts +3 -3
  172. package/dist/sms/index.js +97 -35
  173. package/dist/sms/index.js.map +1 -1
  174. package/dist/system/index.browser.js +30 -16
  175. package/dist/system/index.browser.js.map +1 -1
  176. package/dist/system/index.d.ts +19 -3
  177. package/dist/system/index.d.ts.map +1 -1
  178. package/dist/system/index.js +94 -32
  179. package/dist/system/index.js.map +1 -1
  180. package/dist/thread/index.d.ts +3 -3
  181. package/dist/thread/index.js +3 -3
  182. package/dist/thread/index.js.map +1 -1
  183. package/dist/topic/core/index.d.ts +3 -3
  184. package/dist/topic/core/index.js +3 -3
  185. package/dist/topic/core/index.js.map +1 -1
  186. package/dist/vite/index.d.ts +6284 -3
  187. package/dist/vite/index.d.ts.map +1 -1
  188. package/dist/vite/index.js +5 -4
  189. package/dist/vite/index.js.map +1 -1
  190. package/dist/websocket/index.d.ts +37 -37
  191. package/dist/websocket/index.d.ts.map +1 -1
  192. package/dist/websocket/index.js +3 -3
  193. package/dist/websocket/index.js.map +1 -1
  194. package/package.json +13 -8
  195. package/src/api/audits/index.ts +3 -3
  196. package/src/api/files/index.ts +3 -3
  197. package/src/api/files/jobs/FileJobs.spec.ts +1 -1
  198. package/src/api/jobs/controllers/AdminJobController.ts +15 -2
  199. package/src/api/jobs/index.ts +4 -3
  200. package/src/api/jobs/services/JobAudits.spec.ts +89 -0
  201. package/src/api/jobs/services/JobAudits.ts +101 -0
  202. package/src/api/keys/index.ts +3 -3
  203. package/src/api/notifications/index.ts +3 -3
  204. package/src/api/parameters/index.ts +5 -3
  205. package/src/api/users/__tests__/ApiKeys-integration.spec.ts +1 -1
  206. package/src/api/users/__tests__/ApiKeys.spec.ts +1 -1
  207. package/src/api/users/__tests__/EmailVerification.spec.ts +16 -1
  208. package/src/api/users/__tests__/PasswordReset.spec.ts +11 -0
  209. package/src/api/users/atoms/realmAuthSettingsAtom.ts +10 -0
  210. package/src/api/users/index.ts +8 -9
  211. package/src/api/users/primitives/$realm.ts +117 -19
  212. package/src/api/users/providers/RealmProvider.ts +15 -7
  213. package/src/api/users/services/CredentialService.spec.ts +11 -0
  214. package/src/api/users/services/CredentialService.ts +47 -24
  215. package/src/api/users/services/IdentityService.ts +12 -4
  216. package/src/api/users/services/RegistrationService.spec.ts +11 -0
  217. package/src/api/users/services/RegistrationService.ts +33 -12
  218. package/src/api/users/services/SessionService.ts +83 -12
  219. package/src/api/users/services/UserAudits.ts +47 -0
  220. package/src/api/users/services/UserFiles.ts +19 -0
  221. package/src/api/users/services/UserJobs.spec.ts +107 -0
  222. package/src/api/users/services/UserJobs.ts +62 -0
  223. package/src/api/users/services/UserParameters.ts +23 -0
  224. package/src/api/users/services/UserService.ts +34 -17
  225. package/src/api/verifications/index.ts +3 -3
  226. package/src/batch/index.ts +3 -3
  227. package/src/bucket/index.ts +3 -3
  228. package/src/cache/core/index.ts +3 -3
  229. package/src/cli/apps/AlephaCli.ts +4 -2
  230. package/src/cli/apps/AlephaPackageBuilderCli.ts +7 -1
  231. package/src/cli/commands/db.ts +15 -2
  232. package/src/cli/commands/init.spec.ts +23 -17
  233. package/src/cli/commands/init.ts +47 -2
  234. package/src/cli/providers/AppEntryProvider.ts +14 -19
  235. package/src/cli/providers/DevServerProvider.ts +563 -0
  236. package/src/cli/providers/ViteDevServerProvider.ts +99 -115
  237. package/src/cli/services/AlephaCliUtils.ts +17 -0
  238. package/src/cli/services/PackageManagerUtils.ts +15 -1
  239. package/src/cli/services/ProjectScaffolder.ts +34 -8
  240. package/src/cli/templates/agentMd.ts +2 -25
  241. package/src/cli/templates/alephaConfigTs.ts +44 -0
  242. package/src/cli/templates/apiAppSecurityTs.ts +37 -2
  243. package/src/cli/templates/apiHelloControllerTs.ts +20 -6
  244. package/src/cli/templates/apiHelloResponseSchemaTs.ts +11 -0
  245. package/src/cli/templates/mainCss.ts +43 -29
  246. package/src/cli/templates/webAppRouterTs.ts +5 -5
  247. package/src/cli/templates/webHomeComponentTsx.ts +30 -0
  248. package/src/command/helpers/PrettyPrint.ts +4 -1
  249. package/src/command/helpers/Runner.ts +14 -1
  250. package/src/command/index.ts +3 -3
  251. package/src/core/Alepha.ts +25 -0
  252. package/src/core/helpers/primitive.ts +0 -5
  253. package/src/core/index.ts +3 -3
  254. package/src/datetime/index.ts +3 -3
  255. package/src/email/index.ts +3 -3
  256. package/src/email/providers/LocalEmailProvider.ts +2 -2
  257. package/src/fake/index.ts +3 -3
  258. package/src/lock/core/index.ts +3 -3
  259. package/src/logger/index.ts +3 -3
  260. package/src/logger/providers/PrettyFormatterProvider.ts +7 -0
  261. package/src/mcp/index.ts +3 -3
  262. package/src/orm/index.ts +3 -3
  263. package/src/orm/providers/drivers/BunSqliteProvider.ts +4 -3
  264. package/src/orm/providers/drivers/NodeSqliteProvider.ts +26 -4
  265. package/src/queue/core/index.ts +3 -3
  266. package/src/react/auth/index.ts +3 -3
  267. package/src/react/core/index.ts +3 -3
  268. package/src/react/form/index.ts +3 -3
  269. package/src/react/head/index.ts +3 -3
  270. package/src/react/i18n/index.ts +3 -3
  271. package/src/react/intro/components/GettingStarted.tsx +580 -0
  272. package/src/react/intro/components/GettingStartedAdminSlide.tsx +91 -0
  273. package/src/react/intro/components/GettingStartedAuthSlide.tsx +62 -0
  274. package/src/react/intro/index.ts +5 -0
  275. package/src/react/router/components/ErrorViewer.tsx +3 -1
  276. package/src/react/router/index.browser.ts +2 -0
  277. package/src/react/router/index.ts +2 -0
  278. package/src/react/router/providers/ReactBrowserRouterProvider.ts +10 -2
  279. package/src/redis/index.ts +3 -3
  280. package/src/retry/index.ts +3 -3
  281. package/src/router/index.ts +3 -3
  282. package/src/scheduler/index.ts +3 -3
  283. package/src/security/index.ts +3 -3
  284. package/src/security/providers/JwtProvider.ts +2 -2
  285. package/src/server/auth/index.ts +3 -3
  286. package/src/server/cache/index.ts +3 -3
  287. package/src/server/compress/index.ts +3 -3
  288. package/src/server/cookies/index.ts +3 -3
  289. package/src/server/core/index.ts +3 -3
  290. package/src/server/core/primitives/$action.spec.ts +3 -2
  291. package/src/server/core/primitives/$action.ts +6 -2
  292. package/src/server/core/providers/NodeHttpServerProvider.ts +46 -29
  293. package/src/server/core/providers/ServerProvider.ts +4 -2
  294. package/src/server/core/providers/ServerRouterProvider.ts +5 -27
  295. package/src/server/cors/index.ts +3 -3
  296. package/src/server/health/index.ts +3 -3
  297. package/src/server/helmet/index.ts +3 -3
  298. package/src/server/links/index.ts +3 -3
  299. package/src/server/links/providers/LinkProvider.ts +7 -0
  300. package/src/server/metrics/index.ts +3 -3
  301. package/src/server/multipart/index.ts +3 -3
  302. package/src/server/proxy/index.ts +3 -3
  303. package/src/server/rate-limit/index.ts +3 -3
  304. package/src/server/static/index.ts +3 -3
  305. package/src/server/static/providers/ServerStaticProvider.ts +8 -5
  306. package/src/server/swagger/index.ts +3 -3
  307. package/src/sms/index.ts +3 -3
  308. package/src/system/index.ts +3 -3
  309. package/src/system/providers/MemoryFileSystemProvider.ts +25 -11
  310. package/src/system/providers/NodeFileSystemProvider.ts +4 -4
  311. package/src/system/providers/NodeShellProvider.ts +90 -29
  312. package/src/thread/index.ts +3 -3
  313. package/src/topic/core/index.ts +3 -3
  314. package/src/vite/tasks/buildServer.ts +6 -5
  315. package/src/vite/tasks/prerenderPages.ts +2 -1
  316. package/src/websocket/index.ts +3 -3
  317. package/src/cli/templates/webHelloComponentTsx.ts +0 -30
  318. /package/src/api/users/{notifications → services}/UserNotifications.ts +0 -0
package/README.md CHANGED
@@ -18,13 +18,24 @@ Alepha
18
18
 
19
19
  ## What is this?
20
20
 
21
- Full-stack TypeScript framework. Node.js and Bun, same code.
21
+ Enterprise-grade TypeScript framework for building full-stack applications with end-to-end type safety and minimal boilerplate.
22
22
 
23
- You define your API with `$action`, your DB with `$entity`, jobs with `$queue`.
24
- One schema handles database, validation, and TypeScript types.
25
- The client gets full autocomplete without codegen.
26
- Testing? Swap services with `.with()`, no mocking.
27
- Deploy anywhere — Cloudflare, Vercel, Docker, bare metal.
23
+ - **Multi-runtime** Same code runs on Node, Bun, Workerd, Browser, and Expo
24
+ - **One schema, everywhere** — Define once, get database, validation, TypeScript types, and React forms
25
+ - **Full autocomplete** Client calls server with complete type safety, zero codegen
26
+ - **Substitutable** — Swap any service with `.with()` for testing or customization
27
+ - **Deploy anywhere** — Cloudflare, Vercel, Docker, bare metal
28
+ - **AI friendly** — Built-in [llms.txt](https://alepha.dev/llms.txt) for LLM context
29
+
30
+ Pick your layer. Each one builds on the previous.
31
+
32
+ | Layer | Description | Primitives |
33
+ |-------|-------------|------------|
34
+ | **L0** | Foundation: DI, lifecycle, config | `$inject`, `$client`, `$env`, `$module`, `$hook`, `$logger` |
35
+ | **L1** | Backend: database, queues, storage | `$entity`, `$action`, `$queue`, `$bucket`, `$permission` |
36
+ | **L2** | React frontend with SSR, routing, i18n | `$page`, `$head`, `$atom`, `$dictionary` |
37
+ | **L3** | SaaS features: users, jobs, audits | `$realm`, `$job`, `$audit`, `$notification` |
38
+ | **L4** | Admin panel & auth UI included | `$uiAdmin`, `$uiAuth` |
28
39
 
29
40
  ## Example
30
41
 
@@ -46,7 +57,11 @@ export class Api {
46
57
  views = $repository(viewEntity);
47
58
 
48
59
  inc = $action({
49
- schema: { response: t.object({ count: t.number() }) }, // ← validates + generates OpenAPI
60
+ schema: { // ← validates + generates OpenAPI
61
+ response: t.object({
62
+ count: t.number()
63
+ })
64
+ },
50
65
  handler: async () => {
51
66
  await this.views.create({});
52
67
  return { count: await this.views.count() };
@@ -76,10 +91,10 @@ export class AppRouter {
76
91
  Requirements: [Node.js](https://nodejs.org/) 22+ or [Bun](https://bun.sh/) 1.3+
77
92
 
78
93
  ```bash
79
- npx alepha init my-app --api # API only
80
- npx alepha init my-app --react # With React
81
- npx alepha init my-app --admin # Full SaaS starter
82
- npx alepha init my-app --admin --ai # + AI assistant context
94
+ npx alepha init my-app --api # L1: Backend only
95
+ npx alepha init my-app --react # L2: + React frontend
96
+ npx alepha init my-app --admin # L4: Full SaaS starter
97
+ npx alepha init my-app --admin --ai # L4: + AI assistant context
83
98
 
84
99
  cd my-app && npm run dev
85
100
  ```