alepha 0.19.2 → 0.19.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/dist/api/jobs/index.d.ts +24 -24
  2. package/dist/api/jobs/index.d.ts.map +1 -1
  3. package/dist/api/jobs/index.js +10 -4
  4. package/dist/api/jobs/index.js.map +1 -1
  5. package/dist/api/keys/index.d.ts +5 -5
  6. package/dist/api/users/index.d.ts +9 -19
  7. package/dist/api/users/index.d.ts.map +1 -1
  8. package/dist/api/verifications/index.d.ts +13 -13
  9. package/dist/cli/config/index.d.ts +6 -28
  10. package/dist/cli/config/index.d.ts.map +1 -1
  11. package/dist/cli/config/index.js +5 -10
  12. package/dist/cli/config/index.js.map +1 -1
  13. package/dist/cli/core/index.d.ts +11653 -208
  14. package/dist/cli/core/index.d.ts.map +1 -1
  15. package/dist/cli/core/index.js +48 -12
  16. package/dist/cli/core/index.js.map +1 -1
  17. package/dist/cli/devtools/index.d.ts +5 -0
  18. package/dist/cli/devtools/index.d.ts.map +1 -1
  19. package/dist/cli/devtools/index.js +4 -0
  20. package/dist/cli/devtools/index.js.map +1 -1
  21. package/dist/cli/platform/index.d.ts +69 -64
  22. package/dist/cli/platform/index.d.ts.map +1 -1
  23. package/dist/cli/platform/index.js +6 -2
  24. package/dist/cli/platform/index.js.map +1 -1
  25. package/dist/cli/vendor/index.d.ts +7 -2
  26. package/dist/cli/vendor/index.d.ts.map +1 -1
  27. package/dist/cli/vendor/index.js +6 -2
  28. package/dist/cli/vendor/index.js.map +1 -1
  29. package/dist/core/index.browser.js.map +1 -1
  30. package/dist/core/index.d.ts.map +1 -1
  31. package/dist/core/index.js +4 -0
  32. package/dist/core/index.js.map +1 -1
  33. package/dist/core/index.native.js +4 -0
  34. package/dist/core/index.native.js.map +1 -1
  35. package/dist/core/index.workerd.js +4 -0
  36. package/dist/core/index.workerd.js.map +1 -1
  37. package/dist/logger/index.d.ts.map +1 -1
  38. package/dist/logger/index.js +1 -1
  39. package/dist/logger/index.js.map +1 -1
  40. package/dist/orm/core/index.bun.js +25 -56
  41. package/dist/orm/core/index.bun.js.map +1 -1
  42. package/dist/orm/core/index.d.ts +9 -19
  43. package/dist/orm/core/index.d.ts.map +1 -1
  44. package/dist/orm/core/index.js +25 -56
  45. package/dist/orm/core/index.js.map +1 -1
  46. package/dist/orm/postgres/index.d.ts +2 -1
  47. package/dist/orm/postgres/index.d.ts.map +1 -1
  48. package/package.json +6 -6
  49. package/src/api/jobs/providers/JobProvider.ts +10 -6
  50. package/src/cli/config/defineConfig.ts +17 -46
  51. package/src/cli/core/providers/ViteDevServerProvider.ts +45 -3
  52. package/src/cli/core/services/PackageManagerUtils.ts +3 -1
  53. package/src/cli/core/services/ProjectScaffolder.ts +5 -5
  54. package/src/cli/core/templates/agentMd.ts +14 -5
  55. package/src/cli/devtools/index.ts +21 -1
  56. package/src/cli/platform/index.ts +23 -2
  57. package/src/cli/vendor/index.ts +20 -3
  58. package/src/core/Alepha.ts +10 -0
  59. package/src/logger/index.ts +6 -1
  60. package/src/orm/core/providers/DrizzleKitProvider.ts +56 -105
  61. package/tsconfig.base.json +0 -1
@@ -586,13 +586,13 @@ var AlephaCliUtils = class {
586
586
  //#endregion
587
587
  //#region ../../package.json
588
588
  var devDependencies = {
589
- "@biomejs/biome": "^2.4.9",
590
- "@electric-sql/pglite": "^0.4.2",
589
+ "@biomejs/biome": "^2.4.10",
590
+ "@electric-sql/pglite": "^0.4.3",
591
591
  "@faker-js/faker": "^10.4.0",
592
592
  "@testing-library/dom": "^10.4.1",
593
593
  "@testing-library/react": "^16.3.2",
594
594
  "@types/bun": "^1.3.11",
595
- "@types/node": "^25.5.0",
595
+ "@types/node": "^25.5.2",
596
596
  "@types/nodemailer": "^7.0.11",
597
597
  "@types/react": "^19.2.14",
598
598
  "@types/react-dom": "^19.2.3",
@@ -608,6 +608,7 @@ var devDependencies = {
608
608
  "react-dom": "^19.2.4",
609
609
  "swagger-ui-dist": "^5.32.1",
610
610
  "tsdown": "^0.21.7",
611
+ "vite": "^8.0.3",
611
612
  "vitest": "^4.1.2"
612
613
  };
613
614
  const version = JSON.parse(readFileSync(new URL("../../../package.json", import.meta.url), "utf-8")).version;
@@ -861,7 +862,7 @@ var PackageManagerUtils = class {
861
862
  generatePackageJsonContent(modes) {
862
863
  const alephaDeps = devDependencies;
863
864
  const dependencies = { alepha: `^${version}` };
864
- const devDependencies$1 = {};
865
+ const devDependencies$1 = { vite: alephaDeps.vite };
865
866
  if (!(modes.react && !modes.ui)) devDependencies$1["drizzle-kit"] = alephaDeps["drizzle-kit"];
866
867
  if (!modes.isPackage) {
867
868
  devDependencies$1["@biomejs/biome"] = alephaDeps["@biomejs/biome"];
@@ -905,8 +906,12 @@ var PackageManagerUtils = class {
905
906
  const cliAssets = { logo: join(join(fileURLToPath(import.meta.url), "../../../.."), "assets/logo.svg") };
906
907
  //#endregion
907
908
  //#region ../../src/cli/core/templates/agentMd.ts
908
- const agentMd = (type) => {
909
- return `${type === "claude" ? `# CLAUDE.md` : `# AGENTS.md`}
909
+ const agentMd = (options) => {
910
+ const header = options.type === "claude" ? `# CLAUDE.md` : `# AGENTS.md`;
911
+ const docs = [`- Framework source: \`node_modules/alepha/src/\``];
912
+ if (options.ui) docs.push(`- UI components: \`node_modules/@alepha/ui/src/\``);
913
+ docs.push(`- Docs: https://alepha.dev/llms.txt`);
914
+ return `${header}
910
915
 
911
916
  This is an **Alepha** project.
912
917
 
@@ -928,9 +933,7 @@ alepha build # Build
928
933
 
929
934
  ## Documentation
930
935
 
931
- - Framework source: \`node_modules/alepha/src/\`
932
- - UI components: \`node_modules/@alepha/ui/src/\`
933
- - Docs: https://alepha.dev/llms.txt
936
+ ${docs.join("\n")}
934
937
  `.trim();
935
938
  };
936
939
  //#endregion
@@ -1518,7 +1521,7 @@ var ProjectScaffolder = class {
1518
1521
  }
1519
1522
  async ensureAgentMd(root, options) {
1520
1523
  const filename = options.type === "claude" ? "CLAUDE.md" : "AGENTS.md";
1521
- await this.ensureFile(root, filename, agentMd(options.type), options.force);
1524
+ await this.ensureFile(root, filename, agentMd(options), options.force);
1522
1525
  }
1523
1526
  /**
1524
1527
  * Ensure alepha.config.ts exists with documented options.
@@ -1634,7 +1637,10 @@ var ProjectScaffolder = class {
1634
1637
  tsconfigJson: !workspace.config.tsconfigJson,
1635
1638
  biomeJson: true,
1636
1639
  editorconfig: !workspace.config.editorconfig,
1637
- agentMd: agentType ? { type: agentType } : false
1640
+ agentMd: agentType ? {
1641
+ type: agentType,
1642
+ ui: !!flags.ui
1643
+ } : false
1638
1644
  });
1639
1645
  await this.ensureAlephaConfig(root, { force });
1640
1646
  await this.ensureMainServerTs(root, {
@@ -3360,6 +3366,20 @@ var ViteDevServerProvider = class {
3360
3366
  server.hot.on("connection", () => {
3361
3367
  if (this.currentError) setTimeout(() => this.sendErrorOverlay(this.currentError), 50);
3362
3368
  });
3369
+ server.middlewares.use(async (req, res, next) => {
3370
+ if (req.url !== "/__alepha/ready") {
3371
+ next();
3372
+ return;
3373
+ }
3374
+ if (this.currentReloadPromise) await this.currentReloadPromise;
3375
+ if (this.alepha?.isReady()) {
3376
+ res.writeHead(200, { "content-type": "text/plain" });
3377
+ res.end("ok");
3378
+ } else {
3379
+ res.writeHead(503, { "content-type": "text/plain" });
3380
+ res.end("not ready");
3381
+ }
3382
+ });
3363
3383
  return () => {
3364
3384
  server.middlewares.use(async (req, res, next) => {
3365
3385
  const url = req.url || "/";
@@ -3367,6 +3387,7 @@ var ViteDevServerProvider = class {
3367
3387
  next();
3368
3388
  return;
3369
3389
  }
3390
+ if (this.currentReloadPromise) await this.currentReloadPromise;
3370
3391
  if (this.hasError && !this.alepha) {
3371
3392
  if (req.headers.accept?.includes("text/html")) {
3372
3393
  res.writeHead(200, { "content-type": "text/html" });
@@ -3415,9 +3436,10 @@ var ViteDevServerProvider = class {
3415
3436
  }
3416
3437
  /**
3417
3438
  * Send full browser reload via Vite's HMR.
3439
+ * Uses a custom event so the client can poll for readiness before reloading.
3418
3440
  */
3419
3441
  sendBrowserReload() {
3420
- this.server.hot.send({ type: "full-reload" });
3442
+ this.server.hot.send("alepha:reload", {});
3421
3443
  }
3422
3444
  /**
3423
3445
  * Send error to Vite's native error overlay.
@@ -3559,6 +3581,20 @@ var ViteDevServerProvider = class {
3559
3581
  const preamble = (await this.server.transformIndexHtml("/", "<!DOCTYPE html><html><head></head><body></body></html>")).match(/<head>([\s\S]*?)<\/head>/i)?.[1]?.trim() ?? "";
3560
3582
  const tags = [];
3561
3583
  if (preamble) tags.push(preamble);
3584
+ tags.push(`<script type="module">
3585
+ if (import.meta.hot) {
3586
+ import.meta.hot.on("alepha:reload", async () => {
3587
+ for (let i = 0; i < 50; i++) {
3588
+ try {
3589
+ const res = await fetch("/__alepha/ready");
3590
+ if (res.ok) { window.location.reload(); return; }
3591
+ } catch {}
3592
+ await new Promise(r => setTimeout(r, 200));
3593
+ }
3594
+ window.location.reload();
3595
+ });
3596
+ }
3597
+ <\/script>`);
3562
3598
  if (style) tags.push(`<link rel="stylesheet" href="/${style}">`);
3563
3599
  if (browser) tags.push(`<script type="module" src="/${browser}"><\/script>`);
3564
3600
  return tags.join("\n");