alepha 0.15.4 → 0.15.5

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 (282) hide show
  1. package/README.md +26 -11
  2. package/dist/api/audits/index.d.ts +3 -3
  3. package/dist/api/audits/index.js +3 -3
  4. package/dist/api/audits/index.js.map +1 -1
  5. package/dist/api/files/index.d.ts +3 -3
  6. package/dist/api/files/index.js +3 -3
  7. package/dist/api/files/index.js.map +1 -1
  8. package/dist/api/jobs/index.d.ts +47 -4
  9. package/dist/api/jobs/index.d.ts.map +1 -1
  10. package/dist/api/jobs/index.js +100 -5
  11. package/dist/api/jobs/index.js.map +1 -1
  12. package/dist/api/keys/index.d.ts +3 -3
  13. package/dist/api/keys/index.js +3 -3
  14. package/dist/api/keys/index.js.map +1 -1
  15. package/dist/api/notifications/index.d.ts +3 -3
  16. package/dist/api/notifications/index.js +3 -3
  17. package/dist/api/notifications/index.js.map +1 -1
  18. package/dist/api/parameters/index.d.ts +263 -263
  19. package/dist/api/parameters/index.d.ts.map +1 -1
  20. package/dist/api/parameters/index.js +31 -30
  21. package/dist/api/parameters/index.js.map +1 -1
  22. package/dist/api/users/index.d.ts +373 -67
  23. package/dist/api/users/index.d.ts.map +1 -1
  24. package/dist/api/users/index.js +273 -72
  25. package/dist/api/users/index.js.map +1 -1
  26. package/dist/api/verifications/index.d.ts +3 -3
  27. package/dist/api/verifications/index.js +3 -3
  28. package/dist/api/verifications/index.js.map +1 -1
  29. package/dist/batch/index.d.ts +7 -7
  30. package/dist/batch/index.js +3 -3
  31. package/dist/batch/index.js.map +1 -1
  32. package/dist/bucket/index.d.ts +3 -3
  33. package/dist/bucket/index.js +6 -6
  34. package/dist/bucket/index.js.map +1 -1
  35. package/dist/cache/core/index.d.ts +3 -3
  36. package/dist/cache/core/index.js +3 -3
  37. package/dist/cache/core/index.js.map +1 -1
  38. package/dist/cli/index.d.ts +5607 -20
  39. package/dist/cli/index.d.ts.map +1 -1
  40. package/dist/cli/index.js +103 -89
  41. package/dist/cli/index.js.map +1 -1
  42. package/dist/command/index.d.ts +11 -4
  43. package/dist/command/index.d.ts.map +1 -1
  44. package/dist/command/index.js +8 -6
  45. package/dist/command/index.js.map +1 -1
  46. package/dist/core/index.browser.js.map +1 -1
  47. package/dist/core/index.d.ts +4 -8
  48. package/dist/core/index.d.ts.map +1 -1
  49. package/dist/core/index.js +3 -3
  50. package/dist/core/index.js.map +1 -1
  51. package/dist/core/index.native.js.map +1 -1
  52. package/dist/datetime/index.d.ts +3 -3
  53. package/dist/datetime/index.js +3 -3
  54. package/dist/datetime/index.js.map +1 -1
  55. package/dist/email/index.d.ts +3 -3
  56. package/dist/email/index.js +8 -8
  57. package/dist/email/index.js.map +1 -1
  58. package/dist/fake/index.d.ts +3 -3
  59. package/dist/fake/index.js +3 -3
  60. package/dist/fake/index.js.map +1 -1
  61. package/dist/lock/core/index.d.ts +3 -3
  62. package/dist/lock/core/index.js +3 -3
  63. package/dist/lock/core/index.js.map +1 -1
  64. package/dist/logger/index.d.ts +3 -3
  65. package/dist/logger/index.js +6 -3
  66. package/dist/logger/index.js.map +1 -1
  67. package/dist/mcp/index.d.ts +3 -3
  68. package/dist/mcp/index.js +3 -3
  69. package/dist/mcp/index.js.map +1 -1
  70. package/dist/orm/index.d.ts +12 -12
  71. package/dist/orm/index.js +4 -4
  72. package/dist/orm/index.js.map +1 -1
  73. package/dist/queue/core/index.d.ts +3 -3
  74. package/dist/queue/core/index.js +3 -3
  75. package/dist/queue/core/index.js.map +1 -1
  76. package/dist/react/auth/index.d.ts +3 -3
  77. package/dist/react/auth/index.js +3 -3
  78. package/dist/react/auth/index.js.map +1 -1
  79. package/dist/react/core/index.d.ts +3 -3
  80. package/dist/react/core/index.js +3 -3
  81. package/dist/react/core/index.js.map +1 -1
  82. package/dist/react/form/index.d.ts +3 -3
  83. package/dist/react/form/index.js +3 -3
  84. package/dist/react/form/index.js.map +1 -1
  85. package/dist/react/head/index.d.ts +3 -3
  86. package/dist/react/head/index.js +3 -3
  87. package/dist/react/head/index.js.map +1 -1
  88. package/dist/react/i18n/index.d.ts +3 -3
  89. package/dist/react/i18n/index.js +3 -3
  90. package/dist/react/i18n/index.js.map +1 -1
  91. package/dist/react/intro/index.css +337 -0
  92. package/dist/react/intro/index.css.map +1 -0
  93. package/dist/react/intro/index.d.ts +10 -0
  94. package/dist/react/intro/index.d.ts.map +1 -0
  95. package/dist/react/intro/index.js +222 -0
  96. package/dist/react/intro/index.js.map +1 -0
  97. package/dist/react/router/index.browser.js +2 -2
  98. package/dist/react/router/index.browser.js.map +1 -1
  99. package/dist/react/router/index.d.ts +1 -1
  100. package/dist/react/router/index.d.ts.map +1 -1
  101. package/dist/react/router/index.js +5 -5
  102. package/dist/react/router/index.js.map +1 -1
  103. package/dist/redis/index.d.ts +17 -17
  104. package/dist/redis/index.js +3 -3
  105. package/dist/redis/index.js.map +1 -1
  106. package/dist/retry/index.d.ts +3 -3
  107. package/dist/retry/index.js +3 -3
  108. package/dist/retry/index.js.map +1 -1
  109. package/dist/scheduler/index.d.ts +3 -3
  110. package/dist/scheduler/index.js +3 -3
  111. package/dist/scheduler/index.js.map +1 -1
  112. package/dist/security/index.d.ts +3 -3
  113. package/dist/security/index.js +5 -5
  114. package/dist/security/index.js.map +1 -1
  115. package/dist/server/auth/index.d.ts +3 -3
  116. package/dist/server/auth/index.js +3 -3
  117. package/dist/server/auth/index.js.map +1 -1
  118. package/dist/server/cache/index.d.ts +3 -3
  119. package/dist/server/cache/index.js +3 -3
  120. package/dist/server/cache/index.js.map +1 -1
  121. package/dist/server/compress/index.d.ts +3 -3
  122. package/dist/server/compress/index.js +3 -3
  123. package/dist/server/compress/index.js.map +1 -1
  124. package/dist/server/cookies/index.d.ts +3 -3
  125. package/dist/server/cookies/index.js +3 -3
  126. package/dist/server/cookies/index.js.map +1 -1
  127. package/dist/server/core/index.d.ts +5 -16
  128. package/dist/server/core/index.d.ts.map +1 -1
  129. package/dist/server/core/index.js +13 -29
  130. package/dist/server/core/index.js.map +1 -1
  131. package/dist/server/cors/index.d.ts +3 -3
  132. package/dist/server/cors/index.js +3 -3
  133. package/dist/server/cors/index.js.map +1 -1
  134. package/dist/server/health/index.d.ts +20 -20
  135. package/dist/server/health/index.js +3 -3
  136. package/dist/server/health/index.js.map +1 -1
  137. package/dist/server/helmet/index.d.ts +3 -3
  138. package/dist/server/helmet/index.js +3 -3
  139. package/dist/server/helmet/index.js.map +1 -1
  140. package/dist/server/links/index.d.ts +42 -42
  141. package/dist/server/links/index.d.ts.map +1 -1
  142. package/dist/server/links/index.js +3 -3
  143. package/dist/server/links/index.js.map +1 -1
  144. package/dist/server/metrics/index.d.ts +3 -3
  145. package/dist/server/metrics/index.js +3 -3
  146. package/dist/server/metrics/index.js.map +1 -1
  147. package/dist/server/multipart/index.d.ts +3 -3
  148. package/dist/server/multipart/index.js +3 -3
  149. package/dist/server/multipart/index.js.map +1 -1
  150. package/dist/server/proxy/index.d.ts +3 -3
  151. package/dist/server/proxy/index.js +3 -3
  152. package/dist/server/proxy/index.js.map +1 -1
  153. package/dist/server/rate-limit/index.d.ts +3 -3
  154. package/dist/server/rate-limit/index.js +3 -3
  155. package/dist/server/rate-limit/index.js.map +1 -1
  156. package/dist/server/static/index.d.ts +3 -3
  157. package/dist/server/static/index.js +6 -6
  158. package/dist/server/static/index.js.map +1 -1
  159. package/dist/server/swagger/index.d.ts +3 -3
  160. package/dist/server/swagger/index.js +6 -6
  161. package/dist/server/swagger/index.js.map +1 -1
  162. package/dist/sms/index.d.ts +3 -3
  163. package/dist/sms/index.js +6 -6
  164. package/dist/sms/index.js.map +1 -1
  165. package/dist/system/index.d.ts +3 -3
  166. package/dist/system/index.js +3 -3
  167. package/dist/system/index.js.map +1 -1
  168. package/dist/thread/index.d.ts +3 -3
  169. package/dist/thread/index.js +3 -3
  170. package/dist/thread/index.js.map +1 -1
  171. package/dist/topic/core/index.d.ts +3 -3
  172. package/dist/topic/core/index.js +3 -3
  173. package/dist/topic/core/index.js.map +1 -1
  174. package/dist/vite/index.d.ts +6284 -3
  175. package/dist/vite/index.d.ts.map +1 -1
  176. package/dist/websocket/index.d.ts +3 -3
  177. package/dist/websocket/index.js +3 -3
  178. package/dist/websocket/index.js.map +1 -1
  179. package/package.json +7 -2
  180. package/src/api/audits/index.ts +3 -3
  181. package/src/api/files/index.ts +3 -3
  182. package/src/api/jobs/controllers/AdminJobController.ts +15 -2
  183. package/src/api/jobs/index.ts +4 -3
  184. package/src/api/jobs/services/JobAudits.spec.ts +89 -0
  185. package/src/api/jobs/services/JobAudits.ts +101 -0
  186. package/src/api/keys/index.ts +3 -3
  187. package/src/api/notifications/index.ts +3 -3
  188. package/src/api/parameters/index.ts +5 -3
  189. package/src/api/users/__tests__/ApiKeys-integration.spec.ts +1 -1
  190. package/src/api/users/__tests__/ApiKeys.spec.ts +1 -1
  191. package/src/api/users/__tests__/EmailVerification.spec.ts +16 -1
  192. package/src/api/users/__tests__/PasswordReset.spec.ts +11 -0
  193. package/src/api/users/atoms/realmAuthSettingsAtom.ts +10 -0
  194. package/src/api/users/index.ts +8 -9
  195. package/src/api/users/primitives/$realm.ts +117 -19
  196. package/src/api/users/providers/RealmProvider.ts +15 -7
  197. package/src/api/users/services/CredentialService.spec.ts +11 -0
  198. package/src/api/users/services/CredentialService.ts +47 -24
  199. package/src/api/users/services/IdentityService.ts +12 -4
  200. package/src/api/users/services/RegistrationService.spec.ts +11 -0
  201. package/src/api/users/services/RegistrationService.ts +33 -12
  202. package/src/api/users/services/SessionService.ts +83 -12
  203. package/src/api/users/services/UserAudits.ts +47 -0
  204. package/src/api/users/services/UserFiles.ts +19 -0
  205. package/src/api/users/services/UserJobs.spec.ts +107 -0
  206. package/src/api/users/services/UserJobs.ts +62 -0
  207. package/src/api/users/services/UserParameters.ts +23 -0
  208. package/src/api/users/services/UserService.ts +34 -17
  209. package/src/api/verifications/index.ts +3 -3
  210. package/src/batch/index.ts +3 -3
  211. package/src/bucket/index.ts +3 -3
  212. package/src/cache/core/index.ts +3 -3
  213. package/src/cli/commands/db.ts +9 -0
  214. package/src/cli/commands/init.spec.ts +2 -17
  215. package/src/cli/commands/init.ts +37 -1
  216. package/src/cli/providers/ViteDevServerProvider.ts +5 -2
  217. package/src/cli/services/AlephaCliUtils.ts +17 -0
  218. package/src/cli/services/PackageManagerUtils.ts +15 -1
  219. package/src/cli/services/ProjectScaffolder.ts +8 -13
  220. package/src/cli/templates/agentMd.ts +2 -25
  221. package/src/cli/templates/apiAppSecurityTs.ts +37 -2
  222. package/src/cli/templates/mainCss.ts +2 -32
  223. package/src/cli/templates/webAppRouterTs.ts +5 -5
  224. package/src/cli/templates/webHomeComponentTsx.ts +10 -0
  225. package/src/command/helpers/Runner.ts +14 -1
  226. package/src/command/index.ts +3 -3
  227. package/src/core/helpers/primitive.ts +0 -5
  228. package/src/core/index.ts +3 -3
  229. package/src/datetime/index.ts +3 -3
  230. package/src/email/index.ts +3 -3
  231. package/src/email/providers/LocalEmailProvider.ts +2 -2
  232. package/src/fake/index.ts +3 -3
  233. package/src/lock/core/index.ts +3 -3
  234. package/src/logger/index.ts +3 -3
  235. package/src/logger/providers/PrettyFormatterProvider.ts +7 -0
  236. package/src/mcp/index.ts +3 -3
  237. package/src/orm/index.ts +3 -3
  238. package/src/orm/providers/drivers/NodeSqliteProvider.ts +1 -1
  239. package/src/queue/core/index.ts +3 -3
  240. package/src/react/auth/index.ts +3 -3
  241. package/src/react/core/index.ts +3 -3
  242. package/src/react/form/index.ts +3 -3
  243. package/src/react/head/index.ts +3 -3
  244. package/src/react/i18n/index.ts +3 -3
  245. package/src/react/intro/components/GettingStarted.css +334 -0
  246. package/src/react/intro/components/GettingStarted.tsx +276 -0
  247. package/src/react/intro/index.ts +1 -0
  248. package/src/react/router/index.browser.ts +2 -0
  249. package/src/react/router/index.ts +2 -0
  250. package/src/redis/index.ts +3 -3
  251. package/src/retry/index.ts +3 -3
  252. package/src/router/index.ts +3 -3
  253. package/src/scheduler/index.ts +3 -3
  254. package/src/security/index.ts +3 -3
  255. package/src/security/providers/JwtProvider.ts +2 -2
  256. package/src/server/auth/index.ts +3 -3
  257. package/src/server/cache/index.ts +3 -3
  258. package/src/server/compress/index.ts +3 -3
  259. package/src/server/cookies/index.ts +3 -3
  260. package/src/server/core/index.ts +3 -3
  261. package/src/server/core/primitives/$action.spec.ts +3 -2
  262. package/src/server/core/primitives/$action.ts +6 -2
  263. package/src/server/core/providers/NodeHttpServerProvider.ts +2 -15
  264. package/src/server/core/providers/ServerProvider.ts +4 -2
  265. package/src/server/core/providers/ServerRouterProvider.ts +5 -27
  266. package/src/server/cors/index.ts +3 -3
  267. package/src/server/health/index.ts +3 -3
  268. package/src/server/helmet/index.ts +3 -3
  269. package/src/server/links/index.ts +3 -3
  270. package/src/server/metrics/index.ts +3 -3
  271. package/src/server/multipart/index.ts +3 -3
  272. package/src/server/proxy/index.ts +3 -3
  273. package/src/server/rate-limit/index.ts +3 -3
  274. package/src/server/static/index.ts +3 -3
  275. package/src/server/swagger/index.ts +3 -3
  276. package/src/sms/index.ts +3 -3
  277. package/src/system/index.ts +3 -3
  278. package/src/thread/index.ts +3 -3
  279. package/src/topic/core/index.ts +3 -3
  280. package/src/websocket/index.ts +3 -3
  281. package/src/cli/templates/webHelloComponentTsx.ts +0 -30
  282. /package/src/api/users/{notifications → services}/UserNotifications.ts +0 -0
@@ -27,6 +27,7 @@ This file provides guidance to AI coding assistants when working with this Aleph
27
27
 
28
28
  ### Pages with \`$page\`
29
29
  \`\`\`tsx
30
+ import { t } from "alepha";
30
31
  import { $page } from "alepha/react/router";
31
32
  import { $client } from "alepha/server/links";
32
33
  import type { UserController } from "./UserController.ts";
@@ -196,31 +197,6 @@ class AppRouter {
196
197
  }
197
198
  \`\`\`
198
199
 
199
- ### Modules with \`$module\`
200
- \`\`\`typescript
201
- // src/api/index.ts - Groups all API services
202
- import { $module } from "alepha";
203
-
204
- export const ApiModule = $module({
205
- name: "app.api",
206
- services: [
207
- UserController,
208
- OrderController,
209
- UserService,
210
- ],
211
- });
212
-
213
- // src/web/index.ts - Groups all web services (React only)
214
- export const WebModule = $module({
215
- name: "app.web",
216
- services: [AppRouter, Toaster],
217
- register(alepha) {
218
- // Optional: configure additional services
219
- alepha.with(SomeLibrary);
220
- },
221
- });
222
- \`\`\`
223
-
224
200
  ### Environment Variables
225
201
  \`\`\`typescript
226
202
  import { $env, t } from "alepha";
@@ -268,6 +244,7 @@ describe("UserService", () => {
268
244
  it("should create user", async () => {
269
245
  const alepha = Alepha.create().with(UserService);
270
246
  const service = alepha.inject(UserService);
247
+ await alepha.start();
271
248
 
272
249
  const user = await service.create({ email: "test@example.com" });
273
250
  expect(user.email).toBe("test@example.com");
@@ -1,10 +1,45 @@
1
- export const apiAppSecurityTs = () => {
1
+ export const apiAppSecurityTs = (opts: { adminEmail?: string } = {}) => {
2
+ const adminEmailsValue = opts.adminEmail ? `["${opts.adminEmail}"]` : "[]";
3
+
2
4
  return `
3
5
  import { $realm } from "alepha/api/users";
4
6
 
5
7
  export class AppSecurity {
6
8
  users = $realm({
7
- // configure your realm here
9
+ settings: {
10
+ // Auto-promote these users to admin on login
11
+ adminEmails: ${adminEmailsValue},
12
+ adminUsernames: [],
13
+
14
+ // Registration & login options
15
+ registrationAllowed: true,
16
+ emailEnabled: true,
17
+ emailRequired: true,
18
+ usernameEnabled: false,
19
+ usernameRequired: false,
20
+ phoneEnabled: false,
21
+ phoneRequired: false,
22
+
23
+ // Verification (requires notifications feature)
24
+ verifyEmailRequired: false,
25
+ verifyPhoneRequired: false,
26
+ resetPasswordAllowed: false,
27
+ },
28
+ features: {
29
+ // Enable additional features
30
+ notifications: false,
31
+ audits: false,
32
+ apiKeys: false,
33
+ jobs: false,
34
+ files: false,
35
+ parameters: false,
36
+ },
37
+ identities: {
38
+ // Enable authentication providers
39
+ credentials: true,
40
+ // google: true,
41
+ // github: true,
42
+ },
8
43
  });
9
44
  }
10
45
  `.trim();
@@ -1,33 +1,3 @@
1
- export interface MainCssOptions {
2
- ui?: boolean;
3
- }
4
-
5
- export const mainCss = (options: MainCssOptions = {}) => {
6
- if (options.ui) {
7
- return `@import "@alepha/ui/styles";`;
8
- }
9
-
10
- return `
11
- * {
12
- box-sizing: border-box;
13
- margin: 0;
14
- padding: 0;
15
- }
16
-
17
- html,
18
- body {
19
- height: 100%;
20
- }
21
-
22
- body {
23
- font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
24
- "Helvetica Neue", Arial, sans-serif;
25
- line-height: 1.5;
26
- -webkit-font-smoothing: antialiased;
27
- }
28
-
29
- #root {
30
- height: 100%;
31
- }
32
- `.trim();
1
+ export const mainCss = () => {
2
+ return `@import "@alepha/ui/styles";`;
33
3
  };
@@ -47,22 +47,22 @@ export const webAppRouterTs = (options: {
47
47
  }
48
48
 
49
49
  classMembers.push(` layout = $page({
50
- parent: this.ui.root,
51
- children: () => [this.home],
52
- });`);
50
+ parent: this.ui.root,
51
+ children: () => [this.home],
52
+ });`);
53
53
  }
54
54
 
55
55
  // Home page - with or without loader
56
56
  if (options.api) {
57
57
  classMembers.push(` home = $page({
58
58
  path: "/",
59
- lazy: () => import("./components/Hello.tsx"),
59
+ lazy: () => import("./components/Home.tsx"),
60
60
  loader: () => this.api.hello(),
61
61
  });`);
62
62
  } else {
63
63
  classMembers.push(` home = $page({
64
64
  path: "/",
65
- lazy: () => import("./components/Hello.tsx"),
65
+ lazy: () => import("./components/Home.tsx"),
66
66
  });`);
67
67
  }
68
68
 
@@ -0,0 +1,10 @@
1
+ export const webHomeComponentTsx = () => {
2
+ return `import { GettingStarted } from "alepha/react/intro";
3
+
4
+ const Home = () => {
5
+ return <GettingStarted />;
6
+ };
7
+
8
+ export default Home;
9
+ `;
10
+ };
@@ -34,11 +34,19 @@ export interface RunnerMethod {
34
34
  ): Promise<string>;
35
35
  rm: (glob: string | string[], options?: RunOptions) => Promise<string>;
36
36
  cp: (source: string, dest: string, options?: RunOptions) => Promise<string>;
37
+
38
+ /**
39
+ * Ends the runner and prints a summary of executed tasks.
40
+ *
41
+ * > This is automatically called at the end of command execution.
42
+ * > But can be called manually if needed to print more stuff before the command ends.
43
+ */
44
+ end: () => void;
37
45
  }
38
46
 
39
47
  export class Runner {
40
48
  protected readonly log = $logger();
41
- protected readonly timers: Timer[] = [];
49
+ protected timers: Timer[] = [];
42
50
  protected readonly startTime: number = Date.now();
43
51
  protected readonly prettyPrint = $inject(PrettyPrint);
44
52
  protected readonly alepha = $inject(Alepha);
@@ -149,6 +157,8 @@ export class Runner {
149
157
  );
150
158
  };
151
159
 
160
+ runFn.end = () => this.end();
161
+
152
162
  return runFn;
153
163
  }
154
164
 
@@ -189,6 +199,9 @@ export class Runner {
189
199
  const totalTime = ((Date.now() - this.startTime) / 1000).toFixed(1);
190
200
  this.log.info(`Total time: ${totalTime}s`);
191
201
  this.log.info(``);
202
+
203
+ // clear timers after rendering
204
+ this.timers = [];
192
205
  }
193
206
 
194
207
  protected async executeTask(task: Task): Promise<string> {
@@ -19,9 +19,9 @@ export * from "./providers/CliProvider.ts";
19
19
  // ---------------------------------------------------------------------------------------------------------------------
20
20
 
21
21
  /**
22
- * | type | quality | stability |
23
- * |------|---------|-----------|
24
- * | tooling | rare | stable |
22
+ * | Stability | Since | Runtime |
23
+ * |-----------|-------|---------|
24
+ * | 3 - stable | 0.6.0 | node, bun|
25
25
  *
26
26
  * Declarative CLI command framework.
27
27
  *
@@ -47,11 +47,6 @@ export abstract class Primitive<T extends object = {}> {
47
47
 
48
48
  // ---------------------------------------------------------------------------------------------------------------------
49
49
 
50
- export type PrimitiveFactory<TPrimitive extends Primitive = Primitive> = {
51
- (options: TPrimitive["options"]): TPrimitive;
52
- [KIND]: InstantiableClass<TPrimitive>;
53
- };
54
-
55
50
  export type PrimitiveFactoryLike<T extends object = any> = {
56
51
  (options: T): any;
57
52
  [KIND]: any;
package/src/core/index.ts CHANGED
@@ -23,9 +23,9 @@ export * from "./index.shared.ts";
23
23
  // ---------------------------------------------------------------------------------------------------------------------
24
24
 
25
25
  /**
26
- * | type | quality | stability |
27
- * |------|---------|-----------|
28
- * | tooling | epic | stable |
26
+ * | Stability | Since | Runtime |
27
+ * |-----------|-------|---------|
28
+ * | 3 - stable | 0.1.0 | node, bun, workerd, browser, expo|
29
29
  *
30
30
  * Foundation of the entire framework with dependency injection and lifecycle management.
31
31
  *
@@ -8,9 +8,9 @@ export * from "./providers/DateTimeProvider.ts";
8
8
  // ---------------------------------------------------------------------------------------------------------------------
9
9
 
10
10
  /**
11
- * | type | quality | stability |
12
- * |------|---------|-----------|
13
- * | tooling | standard | stable |
11
+ * | Stability | Since | Runtime |
12
+ * |-----------|-------|---------|
13
+ * | 3 - stable | 0.10.0 | node, bun, workerd, browser, expo|
14
14
  *
15
15
  * Date and time operations.
16
16
  *
@@ -36,9 +36,9 @@ declare module "alepha" {
36
36
  // ---------------------------------------------------------------------------------------------------------------------
37
37
 
38
38
  /**
39
- * | type | quality | stability |
40
- * |------|---------|-----------|
41
- * | backend | rare | stable |
39
+ * | Stability | Since | Runtime |
40
+ * |-----------|-------|---------|
41
+ * | 3 - stable | 0.4.0 | node, bun, workerd|
42
42
  *
43
43
  * Email delivery with template support.
44
44
  *
@@ -46,11 +46,11 @@ export class LocalEmailProvider implements EmailProvider {
46
46
  try {
47
47
  await this.fs.mkdir(this.directory, { recursive: true });
48
48
  this.log.info("Email directory OK", {
49
- directory: this.directory,
49
+ at: this.directory,
50
50
  });
51
51
  } catch (error) {
52
52
  const message = `Failed to create email directory: ${error instanceof Error ? error.message : String(error)}`;
53
- this.log.error(message, { directory: this.directory });
53
+ this.log.error(message, { at: this.directory });
54
54
  throw new EmailError(
55
55
  message,
56
56
  error instanceof Error ? error : undefined,
package/src/fake/index.ts CHANGED
@@ -9,9 +9,9 @@ export * from "./providers/FakeProvider.ts";
9
9
  // ---------------------------------------------------------------------------------------------------------------------
10
10
 
11
11
  /**
12
- * | type | quality | stability |
13
- * |------|---------|-----------|
14
- * | tooling | rare | stable |
12
+ * | Stability | Since | Runtime |
13
+ * |-----------|-------|---------|
14
+ * | 3 - stable | 0.11.0 | node, bun, workerd, browser|
15
15
  *
16
16
  * Test data generation with Faker.js.
17
17
  *
@@ -15,9 +15,9 @@ export * from "./providers/MemoryLockProvider.ts";
15
15
  // ---------------------------------------------------------------------------------------------------------------------
16
16
 
17
17
  /**
18
- * | type | quality | stability |
19
- * |------|---------|-----------|
20
- * | backend | rare | stable |
18
+ * | Stability | Since | Runtime |
19
+ * |-----------|-------|---------|
20
+ * | 3 - stable | 0.8.0 | node, bun, workerd|
21
21
  *
22
22
  * Resource locking for distributed systems.
23
23
  *
@@ -27,9 +27,9 @@ export * from "./services/Logger.ts";
27
27
  // ---------------------------------------------------------------------------------------------------------------------
28
28
 
29
29
  /**
30
- * | type | quality | stability |
31
- * |------|---------|-----------|
32
- * | tooling | rare | stable |
30
+ * | Stability | Since | Runtime |
31
+ * |-----------|-------|---------|
32
+ * | 3 - stable | 0.5.0 | node, bun, workerd, browser, expo|
33
33
  *
34
34
  * Configurable logging with multiple outputs.
35
35
  *
@@ -107,10 +107,17 @@ export class PrettyFormatterProvider extends LogFormatterProvider {
107
107
  return "";
108
108
  }
109
109
 
110
+ // hack: use vite's stack trace formatter if available
111
+ const vite = this.alepha.store.get("alepha.vite.server" as any);
112
+
113
+ vite?.ssrFixStacktrace(error);
114
+
110
115
  let str = error.stack ?? error.message;
111
116
 
112
117
  const anyError = error as any;
113
118
  while (anyError.cause && anyError.cause instanceof Error) {
119
+ vite?.ssrFixStacktrace(anyError.cause);
120
+
114
121
  str += `\nCaused by: ${anyError.cause.stack ?? anyError.cause.message}`;
115
122
  anyError.cause = anyError.cause.cause;
116
123
  }
package/src/mcp/index.ts CHANGED
@@ -93,9 +93,9 @@ export { StdioMcpTransport } from "./transports/StdioMcpTransport.ts";
93
93
  // ---------------------------------------------------------------------------------------------------------------------
94
94
 
95
95
  /**
96
- * | type | quality | stability |
97
- * |------|---------|-----------|
98
- * | backend | standard | stable |
96
+ * | Stability | Since | Runtime |
97
+ * |-----------|-------|---------|
98
+ * | 3 - stable | 0.18.0 | node, bun|
99
99
  *
100
100
  * Model Context Protocol for AI tool integration.
101
101
  *
package/src/orm/index.ts CHANGED
@@ -99,9 +99,9 @@ export const SqliteProvider = NodeSqliteProvider;
99
99
  // ---------------------------------------------------------------------------------------------------------------------
100
100
 
101
101
  /**
102
- * | type | quality | stability |
103
- * |------|---------|-----------|
104
- * | backend | epic | stable |
102
+ * | Stability | Since | Runtime |
103
+ * |-----------|-------|---------|
104
+ * | 3 - stable | 0.1.0 | node, bun, workerd|
105
105
  *
106
106
  * Full-featured database abstraction built on Drizzle ORM with complete type safety.
107
107
  *
@@ -162,7 +162,7 @@ export class NodeSqliteProvider extends DatabaseProvider {
162
162
  await this.migrate();
163
163
  }
164
164
 
165
- this.log.info(`Using SQLite database at ${filepath}`);
165
+ this.log.info(`SQLite database OK`, { at: filepath });
166
166
  },
167
167
  });
168
168
 
@@ -16,9 +16,9 @@ export * from "./providers/WorkerProvider.ts";
16
16
  // ---------------------------------------------------------------------------------------------------------------------
17
17
 
18
18
  /**
19
- * | type | quality | stability |
20
- * |------|---------|-----------|
21
- * | backend | epic | stable |
19
+ * | Stability | Since | Runtime |
20
+ * |-----------|-------|---------|
21
+ * | 3 - stable | 0.6.0 | node, bun|
22
22
  *
23
23
  * Asynchronous message processing with automatic worker management.
24
24
  *
@@ -22,9 +22,9 @@ declare module "alepha/react/router" {
22
22
  // ---------------------------------------------------------------------------------------------------------------------
23
23
 
24
24
  /**
25
- * | type | quality | stability |
26
- * |------|---------|-----------|
27
- * | frontend | rare | stable |
25
+ * | Stability | Since | Runtime |
26
+ * |-----------|-------|---------|
27
+ * | 3 - stable | 0.8.0 | node, bun, browser|
28
28
  *
29
29
  * Auth-related React components and hooks.
30
30
  *
@@ -58,9 +58,9 @@ declare module "alepha" {
58
58
  // ---------------------------------------------------------------------------------------------------------------------
59
59
 
60
60
  /**
61
- * | type | quality | stability |
62
- * |------|---------|-----------|
63
- * | frontend | epic | stable |
61
+ * | Stability | Since | Runtime |
62
+ * |-----------|-------|---------|
63
+ * | 3 - stable | 0.2.0 | node, bun, workerd, browser, expo|
64
64
  *
65
65
  * Full-stack React framework with server-side rendering.
66
66
  *
@@ -24,9 +24,9 @@ declare module "alepha" {
24
24
  // ---------------------------------------------------------------------------------------------------------------------
25
25
 
26
26
  /**
27
- * | type | quality | stability |
28
- * |------|---------|-----------|
29
- * | frontend | rare | stable |
27
+ * | Stability | Since | Runtime |
28
+ * |-----------|-------|---------|
29
+ * | 3 - stable | 0.12.0 | node, bun, workerd, browser|
30
30
  *
31
31
  * Type-safe forms with validation.
32
32
  *
@@ -18,9 +18,9 @@ export * from "./providers/ServerHeadProvider.ts";
18
18
  // ---------------------------------------------------------------------------------------------------------------------
19
19
 
20
20
  /**
21
- * | type | quality | stability |
22
- * |------|---------|-----------|
23
- * | frontend | standard | stable |
21
+ * | Stability | Since | Runtime |
22
+ * |-----------|-------|---------|
23
+ * | 3 - stable | 0.4.0 | node, bun, browser|
24
24
  *
25
25
  * HTML head element management.
26
26
  *
@@ -21,9 +21,9 @@ declare module "alepha" {
21
21
  // ---------------------------------------------------------------------------------------------------------------------
22
22
 
23
23
  /**
24
- * | type | quality | stability |
25
- * |------|---------|-----------|
26
- * | frontend | standard | stable |
24
+ * | Stability | Since | Runtime |
25
+ * |-----------|-------|---------|
26
+ * | 3 - stable | 0.10.0 | node, bun, workerd, browser|
27
27
  *
28
28
  * Multi-language support.
29
29
  *