irgen 0.2.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 (244) hide show
  1. package/CHANGELOG.md +113 -0
  2. package/LICENSE +21 -0
  3. package/README.md +161 -0
  4. package/dist/cli.d.ts +3 -0
  5. package/dist/cli.d.ts.map +1 -0
  6. package/dist/cli.js +312 -0
  7. package/dist/cli.js.map +1 -0
  8. package/dist/dsl/aggregator.d.ts +8 -0
  9. package/dist/dsl/aggregator.d.ts.map +1 -0
  10. package/dist/dsl/aggregator.js +64 -0
  11. package/dist/dsl/aggregator.js.map +1 -0
  12. package/dist/dsl/frontend-runtime.d.ts +486 -0
  13. package/dist/dsl/frontend-runtime.d.ts.map +1 -0
  14. package/dist/dsl/frontend-runtime.js +232 -0
  15. package/dist/dsl/frontend-runtime.js.map +1 -0
  16. package/dist/dsl/runtime.d.ts +33 -0
  17. package/dist/dsl/runtime.d.ts.map +1 -0
  18. package/dist/dsl/runtime.js +120 -0
  19. package/dist/dsl/runtime.js.map +1 -0
  20. package/dist/emit/backend/adapters.d.ts +11 -0
  21. package/dist/emit/backend/adapters.d.ts.map +1 -0
  22. package/dist/emit/backend/adapters.js +374 -0
  23. package/dist/emit/backend/adapters.js.map +1 -0
  24. package/dist/emit/backend/backend-tsmorph.d.ts +5 -0
  25. package/dist/emit/backend/backend-tsmorph.d.ts.map +1 -0
  26. package/dist/emit/backend/backend-tsmorph.js +858 -0
  27. package/dist/emit/backend/backend-tsmorph.js.map +1 -0
  28. package/dist/emit/backend/fake-backend.d.ts +2 -0
  29. package/dist/emit/backend/fake-backend.d.ts.map +1 -0
  30. package/dist/emit/backend/fake-backend.js +19 -0
  31. package/dist/emit/backend/fake-backend.js.map +1 -0
  32. package/dist/emit/backend/packaging.d.ts +3 -0
  33. package/dist/emit/backend/packaging.d.ts.map +1 -0
  34. package/dist/emit/backend/packaging.js +71 -0
  35. package/dist/emit/backend/packaging.js.map +1 -0
  36. package/dist/emit/backend/server.d.ts +4 -0
  37. package/dist/emit/backend/server.d.ts.map +1 -0
  38. package/dist/emit/backend/server.js +169 -0
  39. package/dist/emit/backend/server.js.map +1 -0
  40. package/dist/emit/cli/cli-fake.d.ts +2 -0
  41. package/dist/emit/cli/cli-fake.d.ts.map +1 -0
  42. package/dist/emit/cli/cli-fake.js +33 -0
  43. package/dist/emit/cli/cli-fake.js.map +1 -0
  44. package/dist/emit/electron/electron-shell.d.ts +3 -0
  45. package/dist/emit/electron/electron-shell.d.ts.map +1 -0
  46. package/dist/emit/electron/electron-shell.js +454 -0
  47. package/dist/emit/electron/electron-shell.js.map +1 -0
  48. package/dist/emit/engine.d.ts +14 -0
  49. package/dist/emit/engine.d.ts.map +1 -0
  50. package/dist/emit/engine.js +25 -0
  51. package/dist/emit/engine.js.map +1 -0
  52. package/dist/emit/format.d.ts +2 -0
  53. package/dist/emit/format.d.ts.map +1 -0
  54. package/dist/emit/format.js +23 -0
  55. package/dist/emit/format.js.map +1 -0
  56. package/dist/emit/frontend/frontend-react.d.ts +4 -0
  57. package/dist/emit/frontend/frontend-react.d.ts.map +1 -0
  58. package/dist/emit/frontend/frontend-react.js +2021 -0
  59. package/dist/emit/frontend/frontend-react.js.map +1 -0
  60. package/dist/emit/frontend/registry.d.ts +20 -0
  61. package/dist/emit/frontend/registry.d.ts.map +1 -0
  62. package/dist/emit/frontend/registry.js +46 -0
  63. package/dist/emit/frontend/registry.js.map +1 -0
  64. package/dist/emit/frontend/runtime-emitter.d.ts +4 -0
  65. package/dist/emit/frontend/runtime-emitter.d.ts.map +1 -0
  66. package/dist/emit/frontend/runtime-emitter.js +435 -0
  67. package/dist/emit/frontend/runtime-emitter.js.map +1 -0
  68. package/dist/emit/frontend/runtime-template.d.ts +28 -0
  69. package/dist/emit/frontend/runtime-template.d.ts.map +1 -0
  70. package/dist/emit/frontend/runtime-template.js +218 -0
  71. package/dist/emit/frontend/runtime-template.js.map +1 -0
  72. package/dist/emit/frontend/ssg.d.ts +8 -0
  73. package/dist/emit/frontend/ssg.d.ts.map +1 -0
  74. package/dist/emit/frontend/ssg.js +219 -0
  75. package/dist/emit/frontend/ssg.js.map +1 -0
  76. package/dist/emit/registry.d.ts +17 -0
  77. package/dist/emit/registry.d.ts.map +1 -0
  78. package/dist/emit/registry.js +38 -0
  79. package/dist/emit/registry.js.map +1 -0
  80. package/dist/emit/static-site/css.d.ts +5 -0
  81. package/dist/emit/static-site/css.d.ts.map +1 -0
  82. package/dist/emit/static-site/css.js +872 -0
  83. package/dist/emit/static-site/css.js.map +1 -0
  84. package/dist/emit/static-site/enhancements.d.ts +11 -0
  85. package/dist/emit/static-site/enhancements.d.ts.map +1 -0
  86. package/dist/emit/static-site/enhancements.js +266 -0
  87. package/dist/emit/static-site/enhancements.js.map +1 -0
  88. package/dist/emit/static-site/static-site-html.d.ts +3 -0
  89. package/dist/emit/static-site/static-site-html.d.ts.map +1 -0
  90. package/dist/emit/static-site/static-site-html.js +1172 -0
  91. package/dist/emit/static-site/static-site-html.js.map +1 -0
  92. package/dist/emit/utils/sdk.d.ts +15 -0
  93. package/dist/emit/utils/sdk.d.ts.map +1 -0
  94. package/dist/emit/utils/sdk.js +34 -0
  95. package/dist/emit/utils/sdk.js.map +1 -0
  96. package/dist/extensions/context.d.ts +23 -0
  97. package/dist/extensions/context.d.ts.map +1 -0
  98. package/dist/extensions/context.js +43 -0
  99. package/dist/extensions/context.js.map +1 -0
  100. package/dist/index.d.ts +32 -0
  101. package/dist/index.d.ts.map +1 -0
  102. package/dist/index.js +135 -0
  103. package/dist/index.js.map +1 -0
  104. package/dist/ir/decl/backend.raw.schema.d.ts +128 -0
  105. package/dist/ir/decl/backend.raw.schema.d.ts.map +1 -0
  106. package/dist/ir/decl/backend.raw.schema.js +24 -0
  107. package/dist/ir/decl/backend.raw.schema.js.map +1 -0
  108. package/dist/ir/decl/bundle.d.ts +15 -0
  109. package/dist/ir/decl/bundle.d.ts.map +1 -0
  110. package/dist/ir/decl/bundle.js +8 -0
  111. package/dist/ir/decl/bundle.js.map +1 -0
  112. package/dist/ir/decl/cli.raw.schema.d.ts +133 -0
  113. package/dist/ir/decl/cli.raw.schema.d.ts.map +1 -0
  114. package/dist/ir/decl/cli.raw.schema.js +20 -0
  115. package/dist/ir/decl/cli.raw.schema.js.map +1 -0
  116. package/dist/ir/decl/frontend.raw.schema.d.ts +6631 -0
  117. package/dist/ir/decl/frontend.raw.schema.d.ts.map +1 -0
  118. package/dist/ir/decl/frontend.raw.schema.js +272 -0
  119. package/dist/ir/decl/frontend.raw.schema.js.map +1 -0
  120. package/dist/ir/decl/index.d.ts +6 -0
  121. package/dist/ir/decl/index.d.ts.map +1 -0
  122. package/dist/ir/decl/index.js +6 -0
  123. package/dist/ir/decl/index.js.map +1 -0
  124. package/dist/ir/decl/normalize.schema.d.ts +9154 -0
  125. package/dist/ir/decl/normalize.schema.d.ts.map +1 -0
  126. package/dist/ir/decl/normalize.schema.js +71 -0
  127. package/dist/ir/decl/normalize.schema.js.map +1 -0
  128. package/dist/ir/domain/backend.d.ts +19 -0
  129. package/dist/ir/domain/backend.d.ts.map +1 -0
  130. package/dist/ir/domain/backend.js +3 -0
  131. package/dist/ir/domain/backend.js.map +1 -0
  132. package/dist/ir/domain/cli.d.ts +18 -0
  133. package/dist/ir/domain/cli.d.ts.map +1 -0
  134. package/dist/ir/domain/cli.js +2 -0
  135. package/dist/ir/domain/cli.js.map +1 -0
  136. package/dist/ir/domain/frontend/index.d.ts +190 -0
  137. package/dist/ir/domain/frontend/index.d.ts.map +1 -0
  138. package/dist/ir/domain/frontend/index.js +2 -0
  139. package/dist/ir/domain/frontend/index.js.map +1 -0
  140. package/dist/ir/domain/frontend.d.ts +2 -0
  141. package/dist/ir/domain/frontend.d.ts.map +1 -0
  142. package/dist/ir/domain/frontend.js +3 -0
  143. package/dist/ir/domain/frontend.js.map +1 -0
  144. package/dist/ir/frontend-contract.d.ts +187 -0
  145. package/dist/ir/frontend-contract.d.ts.map +1 -0
  146. package/dist/ir/frontend-contract.js +6 -0
  147. package/dist/ir/frontend-contract.js.map +1 -0
  148. package/dist/ir/target/backend.d.ts +11 -0
  149. package/dist/ir/target/backend.d.ts.map +1 -0
  150. package/dist/ir/target/backend.js +2 -0
  151. package/dist/ir/target/backend.js.map +1 -0
  152. package/dist/ir/target/backend.policy.d.ts +896 -0
  153. package/dist/ir/target/backend.policy.d.ts.map +1 -0
  154. package/dist/ir/target/backend.policy.js +106 -0
  155. package/dist/ir/target/backend.policy.js.map +1 -0
  156. package/dist/ir/target/cli.d.ts +3 -0
  157. package/dist/ir/target/cli.d.ts.map +1 -0
  158. package/dist/ir/target/cli.js +2 -0
  159. package/dist/ir/target/cli.js.map +1 -0
  160. package/dist/ir/target/electron.d.ts +99 -0
  161. package/dist/ir/target/electron.d.ts.map +1 -0
  162. package/dist/ir/target/electron.js +2 -0
  163. package/dist/ir/target/electron.js.map +1 -0
  164. package/dist/ir/target/electron.policy.d.ts +7015 -0
  165. package/dist/ir/target/electron.policy.d.ts.map +1 -0
  166. package/dist/ir/target/electron.policy.js +119 -0
  167. package/dist/ir/target/electron.policy.js.map +1 -0
  168. package/dist/ir/target/frontend.d.ts +12 -0
  169. package/dist/ir/target/frontend.d.ts.map +1 -0
  170. package/dist/ir/target/frontend.js +2 -0
  171. package/dist/ir/target/frontend.js.map +1 -0
  172. package/dist/ir/target/frontend.policy.d.ts +268 -0
  173. package/dist/ir/target/frontend.policy.d.ts.map +1 -0
  174. package/dist/ir/target/frontend.policy.js +33 -0
  175. package/dist/ir/target/frontend.policy.js.map +1 -0
  176. package/dist/ir/target/index.d.ts +6 -0
  177. package/dist/ir/target/index.d.ts.map +1 -0
  178. package/dist/ir/target/index.js +6 -0
  179. package/dist/ir/target/index.js.map +1 -0
  180. package/dist/ir/target/static-site.d.ts +18 -0
  181. package/dist/ir/target/static-site.d.ts.map +1 -0
  182. package/dist/ir/target/static-site.js +2 -0
  183. package/dist/ir/target/static-site.js.map +1 -0
  184. package/dist/ir/target/static-site.policy.d.ts +2911 -0
  185. package/dist/ir/target/static-site.policy.d.ts.map +1 -0
  186. package/dist/ir/target/static-site.policy.js +127 -0
  187. package/dist/ir/target/static-site.policy.js.map +1 -0
  188. package/dist/lowering/backend.d.ts +4 -0
  189. package/dist/lowering/backend.d.ts.map +1 -0
  190. package/dist/lowering/backend.js +57 -0
  191. package/dist/lowering/backend.js.map +1 -0
  192. package/dist/lowering/cli.d.ts +4 -0
  193. package/dist/lowering/cli.d.ts.map +1 -0
  194. package/dist/lowering/cli.js +22 -0
  195. package/dist/lowering/cli.js.map +1 -0
  196. package/dist/lowering/engine.d.ts +18 -0
  197. package/dist/lowering/engine.d.ts.map +1 -0
  198. package/dist/lowering/engine.js +47 -0
  199. package/dist/lowering/engine.js.map +1 -0
  200. package/dist/lowering/frontend.d.ts +9 -0
  201. package/dist/lowering/frontend.d.ts.map +1 -0
  202. package/dist/lowering/frontend.js +246 -0
  203. package/dist/lowering/frontend.js.map +1 -0
  204. package/dist/lowering/targets/to-backend.d.ts +9 -0
  205. package/dist/lowering/targets/to-backend.d.ts.map +1 -0
  206. package/dist/lowering/targets/to-backend.js +55 -0
  207. package/dist/lowering/targets/to-backend.js.map +1 -0
  208. package/dist/lowering/targets/to-cli.d.ts +4 -0
  209. package/dist/lowering/targets/to-cli.d.ts.map +1 -0
  210. package/dist/lowering/targets/to-cli.js +11 -0
  211. package/dist/lowering/targets/to-cli.js.map +1 -0
  212. package/dist/lowering/targets/to-electron.d.ts +30 -0
  213. package/dist/lowering/targets/to-electron.d.ts.map +1 -0
  214. package/dist/lowering/targets/to-electron.js +87 -0
  215. package/dist/lowering/targets/to-electron.js.map +1 -0
  216. package/dist/lowering/targets/to-frontend.d.ts +4 -0
  217. package/dist/lowering/targets/to-frontend.d.ts.map +1 -0
  218. package/dist/lowering/targets/to-frontend.js +30 -0
  219. package/dist/lowering/targets/to-frontend.js.map +1 -0
  220. package/dist/lowering/targets/to-static-site.d.ts +16 -0
  221. package/dist/lowering/targets/to-static-site.d.ts.map +1 -0
  222. package/dist/lowering/targets/to-static-site.js +30 -0
  223. package/dist/lowering/targets/to-static-site.js.map +1 -0
  224. package/dist/mappers/index.d.ts +12 -0
  225. package/dist/mappers/index.d.ts.map +1 -0
  226. package/dist/mappers/index.js +60 -0
  227. package/dist/mappers/index.js.map +1 -0
  228. package/dist/types/extension.d.ts +3 -0
  229. package/dist/types/extension.d.ts.map +1 -0
  230. package/dist/types/extension.js +2 -0
  231. package/dist/types/extension.js.map +1 -0
  232. package/dist/utils/array.d.ts +2 -0
  233. package/dist/utils/array.d.ts.map +1 -0
  234. package/dist/utils/array.js +4 -0
  235. package/dist/utils/array.js.map +1 -0
  236. package/dist/utils/index.d.ts +3 -0
  237. package/dist/utils/index.d.ts.map +1 -0
  238. package/dist/utils/index.js +3 -0
  239. package/dist/utils/index.js.map +1 -0
  240. package/dist/utils/string.d.ts +13 -0
  241. package/dist/utils/string.d.ts.map +1 -0
  242. package/dist/utils/string.js +56 -0
  243. package/dist/utils/string.js.map +1 -0
  244. package/package.json +112 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-template.js","sourceRoot":"","sources":["../../../src/emit/frontend/runtime-template.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { Project } from "ts-morph";
2
+ import type { FrontendComponent } from "../../ir/domain/frontend.js";
3
+ import type { FrontendTargetIR } from "../../ir/target/frontend.js";
4
+ import type { FrontendPolicy } from "../../ir/target/frontend.policy.js";
5
+ export declare function isInteractiveComponent(component: FrontendComponent): boolean;
6
+ export declare function inferInteractiveRoutes(ir: FrontendTargetIR, policy: FrontendPolicy): string[];
7
+ export declare function emitSsgSupport(project: Project, outDir: string, frontendDir: string, ir: FrontendTargetIR): void;
8
+ //# sourceMappingURL=ssg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ssg.d.ts","sourceRoot":"","sources":["../../../src/emit/frontend/ssg.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,EAAgB,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACnF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAMzE,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAQ5E;AAED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,gBAAgB,EAAE,MAAM,EAAE,cAAc,GAAG,MAAM,EAAE,CAoC7F;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,gBAAgB,QA0KzG"}
@@ -0,0 +1,219 @@
1
+ import path from "node:path";
2
+ import fs from "node:fs";
3
+ function ensureDir(p) {
4
+ fs.mkdirSync(p, { recursive: true });
5
+ }
6
+ export function isInteractiveComponent(component) {
7
+ const hasIpcButton = Boolean(component.props && component.props["ipcChannel"]);
8
+ return Boolean(component.themeToggle ||
9
+ hasIpcButton ||
10
+ (component.form && component.form.fields && component.form.fields.length > 0) ||
11
+ component.layout?.kind === "tabs");
12
+ }
13
+ export function inferInteractiveRoutes(ir, policy) {
14
+ if (policy.framework.rendering.mode !== "hybrid")
15
+ return [];
16
+ // App shell uses interactive theme toggle, so hybrid requires hydration on all routes.
17
+ const appHasInteractivity = true;
18
+ if (appHasInteractivity)
19
+ return ir.pages.map((page) => page.path);
20
+ const componentMap = new Map(ir.components.map((component) => [component.name, component]));
21
+ const collectRefs = (component) => {
22
+ const refs = new Set();
23
+ if (component.layout?.items) {
24
+ component.layout.items.forEach((item) => refs.add(item));
25
+ }
26
+ component.layout?.tabs?.forEach((tab) => {
27
+ tab.items?.forEach((item) => refs.add(item));
28
+ });
29
+ return Array.from(refs);
30
+ };
31
+ const isPageInteractive = (page) => {
32
+ const queue = [...page.components];
33
+ const visited = new Set();
34
+ while (queue.length) {
35
+ const current = queue.shift();
36
+ if (!current)
37
+ continue;
38
+ if (isInteractiveComponent(current))
39
+ return true;
40
+ for (const ref of collectRefs(current)) {
41
+ if (visited.has(ref))
42
+ continue;
43
+ visited.add(ref);
44
+ const child = componentMap.get(ref);
45
+ if (child)
46
+ queue.push(child);
47
+ }
48
+ }
49
+ return false;
50
+ };
51
+ return ir.pages.filter((page) => isPageInteractive(page)).map((page) => page.path);
52
+ }
53
+ export function emitSsgSupport(project, outDir, frontendDir, ir) {
54
+ const policy = ir.policies.frontend;
55
+ const mode = policy.framework.rendering.mode;
56
+ // Create entry-server.tsx
57
+ const serverEntry = project.createSourceFile(path.join(frontendDir, "entry-server.tsx"), "", { overwrite: true });
58
+ serverEntry.addImportDeclaration({ moduleSpecifier: "react", defaultImport: "React" });
59
+ serverEntry.addImportDeclaration({ moduleSpecifier: "react-dom/server", namedImports: ["renderToString"] });
60
+ serverEntry.addImportDeclaration({ moduleSpecifier: "react-router-dom/server", namedImports: ["StaticRouter"] });
61
+ serverEntry.addImportDeclaration({ moduleSpecifier: "./App", namedImports: ["App"] });
62
+ serverEntry.addStatements(`
63
+ export function render(url: string) {
64
+ const html = renderToString(
65
+ <React.StrictMode>
66
+ <StaticRouter location={url}>
67
+ <App />
68
+ </StaticRouter>
69
+ </React.StrictMode>
70
+ );
71
+ return { html };
72
+ }
73
+ `.trim());
74
+ // Create SSG Template
75
+ const templateHtml = `
76
+ <!DOCTYPE html>
77
+ <html lang="en">
78
+ <head>
79
+ <meta charset="UTF-8" />
80
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
81
+ ${ir.pwa?.enabled ? `<link rel="manifest" href="/manifest.webmanifest" />` : ""}
82
+ ${ir.pwa?.enabled ? `<meta name="theme-color" content="${ir.pwa.themeColor}" />` : ""}
83
+ <!--app-head-->
84
+ <title>${ir.appName}</title>
85
+ </head>
86
+ <body>
87
+ <div id="root" data-irgen-interactive="false"><!--app-html--></div>
88
+ </body>
89
+ </html>
90
+ `.trim();
91
+ const scriptDir = path.join(outDir, "scripts");
92
+ ensureDir(scriptDir);
93
+ fs.writeFileSync(path.join(outDir, "ssg-template.html"), templateHtml, "utf-8");
94
+ // Create Prerender Script
95
+ const prerenderRoutes = policy.framework.rendering.prerender.routes === "auto"
96
+ ? ir.pages.map((p) => p.path)
97
+ : policy.framework.rendering.prerender.routes;
98
+ const interactiveRoutes = inferInteractiveRoutes(ir, policy);
99
+ const prerenderScript = `
100
+ import fs from "node:fs";
101
+ import path from "node:path";
102
+ import { fileURLToPath } from "node:url";
103
+
104
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
105
+ const rootDir = path.resolve(__dirname, "..");
106
+ const outDir = path.resolve(rootDir, "${policy.framework.rendering.prerender.outDir}");
107
+ const routes = ${JSON.stringify(prerenderRoutes)};
108
+ const interactiveRoutes = new Set(${JSON.stringify(interactiveRoutes)});
109
+ const mode = "${mode}";
110
+ const emitSitemap = ${policy.framework.rendering.prerender.emitSitemap};
111
+ const emitRobotsTxt = ${policy.framework.rendering.prerender.emitRobotsTxt};
112
+ const siteUrl = process.env.SITE_URL || "http://localhost";
113
+
114
+ function isDynamicRoute(route) {
115
+ return route.includes(":") || route.includes("*");
116
+ }
117
+
118
+ function routeToFilePath(route) {
119
+ if (route === "/") return "index.html";
120
+ const normalized = route.replace(/^\\//, "").replace(/\\/$/, "");
121
+ return path.join(normalized, "index.html");
122
+ }
123
+
124
+ function readManifest() {
125
+ const manifestPath = path.join(outDir, ".vite", "manifest.json");
126
+ const fallbackPath = path.join(outDir, "manifest.json");
127
+ const target = fs.existsSync(manifestPath) ? manifestPath : fallbackPath;
128
+ if (!fs.existsSync(target)) return null;
129
+ return JSON.parse(fs.readFileSync(target, "utf-8"));
130
+ }
131
+
132
+ function resolveEntry(manifest) {
133
+ if (!manifest) return null;
134
+ return manifest["src/entry-client.tsx"]
135
+ || manifest["index.html"]
136
+ || Object.values(manifest).find((entry) => entry && entry.isEntry);
137
+ }
138
+
139
+ function buildHead(entry, manifest, shouldHydrate) {
140
+ if (!entry) return "";
141
+ const tags = [];
142
+ if (entry.css) {
143
+ for (const css of entry.css) {
144
+ tags.push(\`<link rel="stylesheet" href="/\${css}">\`);
145
+ }
146
+ }
147
+ if (shouldHydrate && entry.imports) {
148
+ for (const imp of entry.imports) {
149
+ const file = manifest?.[imp]?.file ?? null;
150
+ if (file) tags.push(\`<link rel="modulepreload" href="/\${file}">\`);
151
+ }
152
+ }
153
+ if (shouldHydrate && entry.file) {
154
+ tags.push(\`<script type="module" src="/\${entry.file}"></script>\`);
155
+ }
156
+ return tags.join("\\n ");
157
+ }
158
+
159
+ async function prerender() {
160
+ const templatePath = path.join(rootDir, "ssg-template.html");
161
+ const template = fs.readFileSync(templatePath, "utf-8");
162
+
163
+ const manifest = readManifest();
164
+ const entry = resolveEntry(manifest);
165
+ const { render } = await import(path.join(rootDir, ".ssg", "entry-server.js"));
166
+
167
+ if (!fs.existsSync(outDir)) fs.mkdirSync(outDir, { recursive: true });
168
+
169
+ const spaFallback = path.join(outDir, "index.html");
170
+ if (fs.existsSync(spaFallback)) {
171
+ fs.copyFileSync(spaFallback, path.join(outDir, "index.spa.html"));
172
+ }
173
+
174
+ for (const route of routes) {
175
+ if (isDynamicRoute(route)) {
176
+ console.warn(\`Skipping dynamic route: \${route}\`);
177
+ continue;
178
+ }
179
+ const interactive = interactiveRoutes.has(route) && mode === "hybrid";
180
+ const { html } = render(route);
181
+ const head = buildHead(entry, manifest, interactive);
182
+ const finalHtml = template
183
+ .replace("<!--app-head-->", head)
184
+ .replace("<!--app-html-->", html)
185
+ .replace('data-irgen-interactive="false"', \`data-irgen-interactive="\${interactive}"\`);
186
+ const outFile = path.join(outDir, routeToFilePath(route));
187
+ fs.mkdirSync(path.dirname(outFile), { recursive: true });
188
+ fs.writeFileSync(outFile, finalHtml, "utf-8");
189
+ }
190
+
191
+ if (emitSitemap) {
192
+ const urls = routes
193
+ .filter((r) => !isDynamicRoute(r))
194
+ .map((route) => \` <url><loc>\${new URL(route, siteUrl).href}</loc></url>\`)
195
+ .join("\\n");
196
+ const sitemap = \`<?xml version="1.0" encoding="UTF-8"?>
197
+ <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
198
+ \${urls}
199
+ </urlset>\`;
200
+ fs.writeFileSync(path.join(outDir, "sitemap.xml"), sitemap, "utf-8");
201
+ }
202
+
203
+ if (emitRobotsTxt) {
204
+ const sitemapUrl = emitSitemap ? new URL("/sitemap.xml", siteUrl).href : null;
205
+ const robotsTxt = \`User-agent: *
206
+ Allow: /
207
+ \${sitemapUrl ? "\\nSitemap: " + sitemapUrl : ""}\`;
208
+ fs.writeFileSync(path.join(outDir, "robots.txt"), robotsTxt, "utf-8");
209
+ }
210
+ }
211
+
212
+ prerender().catch((err) => {
213
+ console.error("Prerender failed:", err);
214
+ process.exit(1);
215
+ });
216
+ `.trim();
217
+ fs.writeFileSync(path.join(scriptDir, "prerender.mjs"), prerenderScript, "utf-8");
218
+ }
219
+ //# sourceMappingURL=ssg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ssg.js","sourceRoot":"","sources":["../../../src/emit/frontend/ssg.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export declare function registerTargetEmitter(target: string, emitterName: string, options?: {
2
+ force?: boolean;
3
+ }): void;
4
+ export declare function getEmitterForTarget(target: string): string | undefined;
5
+ export declare function listTargetMappings(): {
6
+ target: string;
7
+ emitter: string;
8
+ }[];
9
+ export declare function setMappings(obj: Record<string, string>): void;
10
+ declare const _default: {
11
+ registerTargetEmitter: typeof registerTargetEmitter;
12
+ getEmitterForTarget: typeof getEmitterForTarget;
13
+ listTargetMappings: typeof listTargetMappings;
14
+ setMappings: typeof setMappings;
15
+ };
16
+ export default _default;
17
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/emit/registry.ts"],"names":[],"mappings":"AAEA,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,QAGvG;AAqBD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,sBAEjD;AAED,wBAAgB,kBAAkB;;;IAEjC;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAItD;;;;;;;AAED,wBAA+F"}
@@ -0,0 +1,38 @@
1
+ const mapping = new Map();
2
+ export function registerTargetEmitter(target, emitterName, options) {
3
+ if (mapping.has(target) && !options?.force)
4
+ throw new Error(`target already has emitter: ${target}`);
5
+ mapping.set(target, emitterName);
6
+ }
7
+ // register noop defaults to keep registry populated for known targets
8
+ try {
9
+ registerTargetEmitter("cli", "cli-fake", { force: false });
10
+ }
11
+ catch (e) {
12
+ // ignore if already set
13
+ }
14
+ try {
15
+ registerTargetEmitter("electron", "electron-shell", { force: false });
16
+ }
17
+ catch (e) {
18
+ // ignore if already set
19
+ }
20
+ try {
21
+ registerTargetEmitter("static-site", "static-site-html", { force: false });
22
+ }
23
+ catch (e) {
24
+ // ignore if already set
25
+ }
26
+ export function getEmitterForTarget(target) {
27
+ return mapping.get(target);
28
+ }
29
+ export function listTargetMappings() {
30
+ return Array.from(mapping.entries()).map(([t, e]) => ({ target: t, emitter: e }));
31
+ }
32
+ export function setMappings(obj) {
33
+ for (const k of Object.keys(obj)) {
34
+ mapping.set(k, obj[k]);
35
+ }
36
+ }
37
+ export default { registerTargetEmitter, getEmitterForTarget, listTargetMappings, setMappings };
38
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/emit/registry.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;AAE1C,MAAM,UAAU,qBAAqB,CAAC,MAAc,EAAE,WAAmB,EAAE,OAA6B;IACtG,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,MAAM,EAAE,CAAC,CAAC;IACrG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AACnC,CAAC;AAED,sEAAsE;AACtE,IAAI,CAAC;IACH,qBAAqB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AAC7D,CAAC;AAAC,OAAO,CAAC,EAAE,CAAC;IACX,wBAAwB;AAC1B,CAAC;AAED,IAAI,CAAC;IACH,qBAAqB,CAAC,UAAU,EAAE,gBAAgB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AACxE,CAAC;AAAC,OAAO,CAAC,EAAE,CAAC;IACX,wBAAwB;AAC1B,CAAC;AAED,IAAI,CAAC;IACH,qBAAqB,CAAC,aAAa,EAAE,kBAAkB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AAC7E,CAAC;AAAC,OAAO,CAAC,EAAE,CAAC;IACX,wBAAwB;AAC1B,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAA2B;IACrD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;AACH,CAAC;AAED,eAAe,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare function emitStaticSiteCss(outDir: string, options?: {
2
+ accentColor?: string;
3
+ }): Promise<void>;
4
+ export declare function appendCustomCss(outDir: string, customCssPath: string): Promise<void>;
5
+ //# sourceMappingURL=css.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"css.d.ts","sourceRoot":"","sources":["../../../src/emit/static-site/css.ts"],"names":[],"mappings":"AAk1BA,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GACjC,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAc1F"}