@openspecui/web 1.5.0 → 1.6.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 (53) hide show
  1. package/dist/assets/{BufferResource-Bn1UWy0D.js → BufferResource-BFEntdoN.js} +1 -1
  2. package/dist/assets/{CanvasRenderer-D8NiU8la.js → CanvasRenderer-ZQxN8ITJ.js} +1 -1
  3. package/dist/assets/{Filter-CRwq487x.js → Filter-trCu1CQG.js} +1 -1
  4. package/dist/assets/{RenderTargetSystem-CtoB_qTm.js → RenderTargetSystem-DHoDBu3v.js} +1 -1
  5. package/dist/assets/{WebGLRenderer-BgKO8R0a.js → WebGLRenderer-DYS9LSzA.js} +1 -1
  6. package/dist/assets/{WebGPURenderer-CQeL2efC.js → WebGPURenderer-CDj9ZzDs.js} +1 -1
  7. package/dist/assets/{browserAll-DP6sOYev.js → browserAll-B8FBs1Rt.js} +1 -1
  8. package/dist/assets/{ghostty-web-evxujSxm.js → ghostty-web-C6hNf21K.js} +1 -1
  9. package/dist/assets/{index-B147AOgf.js → index-BByfw4ws.js} +1 -1
  10. package/dist/assets/{index-D2Tp4F9B.js → index-BDu-q_RJ.js} +1 -1
  11. package/dist/assets/{index-B0IbsqHi.js → index-BRrJSB9v.js} +1 -1
  12. package/dist/assets/{index-CBCPR3Qb.js → index-CFiXnV5n.js} +1 -1
  13. package/dist/assets/{index-D6ardy54.js → index-CLKNqdA1.js} +1 -1
  14. package/dist/assets/{index-BPZ3nG0r.js → index-Cja7GFdu.js} +1 -1
  15. package/dist/assets/{index-DcXyAs0z.js → index-Cq8vn29r.js} +1 -1
  16. package/dist/assets/{index-f0QdJSzm.js → index-CqDTsKqD.js} +1 -1
  17. package/dist/assets/{index-DTeOcXKn.js → index-CxCFae0J.js} +1 -1
  18. package/dist/assets/{index-dSf1u0YV.js → index-CxF-jUR9.js} +1 -1
  19. package/dist/assets/{index-BMashGQn.js → index-Dj2t_cJN.js} +1 -1
  20. package/dist/assets/{index-BnT52DZ8.js → index-Drwn-PWd.js} +1 -1
  21. package/dist/assets/index-DzNp3fwv.css +1 -0
  22. package/dist/assets/{index-BejnsZfY.js → index-FMaDFama.js} +1 -1
  23. package/dist/assets/index-YEDqrGu6.js +1540 -0
  24. package/dist/assets/{index-DJqmTRAR.js → index-hID85NKg.js} +1 -1
  25. package/dist/assets/{index-4MAU81Qk.js → index-vJWwTEOs.js} +1 -1
  26. package/dist/assets/{webworkerAll-DA2HufNb.js → webworkerAll-Pgv9S8Bp.js} +1 -1
  27. package/dist/index.html +2 -2
  28. package/dist-ssg/client/.vite/ssr-manifest.json +40 -25
  29. package/dist-ssg/client/assets/{index-CsRZVfC5.js → index-8QkEUJki.js} +1 -1
  30. package/dist-ssg/client/assets/{index-BKuRbAoU.js → index-BNet68GQ.js} +1 -1
  31. package/dist-ssg/client/assets/index-BPSmIo9z.css +1 -0
  32. package/dist-ssg/client/assets/{index-BPqe-tty.js → index-BuwmGUA3.js} +1 -1
  33. package/dist-ssg/client/assets/{index-C1d9Zuhl.js → index-BvdsW-5R.js} +1 -1
  34. package/dist-ssg/client/assets/{index-CkIJT9VM.js → index-C86U3e7F.js} +1 -1
  35. package/dist-ssg/client/assets/{index-Qc9PpyXL.js → index-CD7IUwmF.js} +1 -1
  36. package/dist-ssg/client/assets/{index-nXK46PJX.js → index-CNv54Jfz.js} +1 -1
  37. package/dist-ssg/client/assets/{index-DoT0nwXT.js → index-CbqRKbpG.js} +1 -1
  38. package/dist-ssg/client/assets/{index-CfKJRsCY.js → index-CtCbaXu2.js} +1 -1
  39. package/dist-ssg/client/assets/{index-lmUf9UYl.js → index-CuIbO-WR.js} +1 -1
  40. package/dist-ssg/client/assets/{index-Bts5PKwE.js → index-DGZn6OuM.js} +1 -1
  41. package/dist-ssg/client/assets/{index-BNvK4AuA.js → index-DTr_ZBFY.js} +1 -1
  42. package/dist-ssg/client/assets/{index-neDlRvdc.js → index-DYyM8Ux0.js} +1 -1
  43. package/dist-ssg/client/assets/{index-DaAYjM02.js → index-pf4chBPZ.js} +1 -1
  44. package/dist-ssg/client/assets/{index-DuI28swy.js → index-qnT8Vltq.js} +1 -1
  45. package/dist-ssg/client/assets/index.ssg-BCf4nYjB.js +633 -0
  46. package/dist-ssg/client/index.ssg.html +2 -2
  47. package/dist-ssg/server/entry-server.js +6031 -659
  48. package/dist-ssg/ssg-cli.mjs +27 -2
  49. package/package.json +7 -4
  50. package/dist/assets/index-T8xoxmUb.js +0 -1516
  51. package/dist/assets/index-Ys2MTD3W.css +0 -1
  52. package/dist-ssg/client/assets/index-42NXIrUL.css +0 -1
  53. package/dist-ssg/client/assets/index.ssg-B7Yw_6vy.js +0 -600
@@ -1,7 +1,22 @@
1
1
  #!/usr/bin/env node
2
2
  import { existsSync, readFileSync, mkdirSync, cpSync, writeFileSync, copyFileSync, rmSync } from "node:fs";
3
- import { dirname, resolve, join } from "node:path";
3
+ import { join, dirname, resolve } from "node:path";
4
4
  import { fileURLToPath } from "node:url";
5
+ const INDEX_SSG_HTML = "index.ssg.html";
6
+ const INDEX_HTML = "index.html";
7
+ function resolveSsgTemplatePath(clientDir) {
8
+ const ssgTemplatePath = join(clientDir, INDEX_SSG_HTML);
9
+ if (existsSync(ssgTemplatePath)) {
10
+ return ssgTemplatePath;
11
+ }
12
+ const legacyTemplatePath = join(clientDir, INDEX_HTML);
13
+ if (existsSync(legacyTemplatePath)) {
14
+ return legacyTemplatePath;
15
+ }
16
+ throw new Error(
17
+ `No SSG template found in ${clientDir}. Expected ${INDEX_SSG_HTML} or ${INDEX_HTML}.`
18
+ );
19
+ }
5
20
  const __dirname$1 = dirname(fileURLToPath(import.meta.url));
6
21
  function getSSGDirs() {
7
22
  if (__dirname$1.endsWith("src/ssg") || __dirname$1.includes("src/ssg")) {
@@ -50,11 +65,12 @@ Options:
50
65
  }
51
66
  async function prerender(opts) {
52
67
  const snapshot = JSON.parse(readFileSync(opts.dataPath, "utf-8"));
53
- const template = readFileSync(join(opts.clientDir, "index.html"), "utf-8");
68
+ const template = readFileSync(resolveSsgTemplatePath(opts.clientDir), "utf-8");
54
69
  const serverPath = join(opts.serverDir, "entry-server.js");
55
70
  const { render, getRoutes, getTitle } = await import(serverPath);
56
71
  const routes = getRoutes(snapshot);
57
72
  console.log(`Routes: ${routes.length}`);
73
+ let hasRootRoute = false;
58
74
  const headTags = `
59
75
  <script>
60
76
  window.__OPENSPEC_BASE_PATH__ = '${opts.basePath}';
@@ -66,6 +82,7 @@ async function prerender(opts) {
66
82
  const title = getTitle(route, snapshot);
67
83
  const html = template.replace("<!--app-html-->", appHtml).replace("<!--head-tags-->", headTags).replace("<title>OpenSpec UI</title>", `<title>${title} - OpenSpec UI</title>`);
68
84
  if (route === "/") {
85
+ hasRootRoute = true;
69
86
  writeFileSync(join(opts.clientDir, "index.html"), html);
70
87
  } else {
71
88
  const routeDir = join(opts.clientDir, route.slice(1));
@@ -74,6 +91,14 @@ async function prerender(opts) {
74
91
  }
75
92
  console.log(` ${route}`);
76
93
  }
94
+ if (!hasRootRoute) {
95
+ const fallbackRoute = routes[0];
96
+ if (!fallbackRoute) {
97
+ throw new Error("No routes generated for static output");
98
+ }
99
+ const fallbackPath = fallbackRoute === "/" ? join(opts.clientDir, "index.html") : join(opts.clientDir, fallbackRoute.slice(1), "index.html");
100
+ copyFileSync(fallbackPath, join(opts.clientDir, "index.html"));
101
+ }
77
102
  copyFileSync(join(opts.clientDir, "index.html"), join(opts.clientDir, "404.html"));
78
103
  copyFileSync(opts.dataPath, join(opts.clientDir, "data.json"));
79
104
  rmSync(join(opts.clientDir, ".vite"), { recursive: true, force: true });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openspecui/web",
3
- "version": "1.5.0",
3
+ "version": "1.6.2",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "openspecui-ssg": "./dist-ssg/ssg-cli.mjs"
@@ -62,9 +62,12 @@
62
62
  "vitest": "^4.0.18",
63
63
  "yaml": "^2.8.0",
64
64
  "yargs": "^18.0.0",
65
- "@openspecui/search": "1.1.0",
66
- "@openspecui/server": "1.5.0",
67
- "xterm-input-panel": "1.2.0"
65
+ "xterm-input-panel": "1.2.1",
66
+ "@openspecui/server": "1.6.2",
67
+ "@openspecui/search": "1.1.0"
68
+ },
69
+ "dependencies": {
70
+ "@fsegurai/codemirror-theme-bundle": "^6.3.1"
68
71
  },
69
72
  "scripts": {
70
73
  "dev": "vite --host=0.0.0.0",