zudoku 0.3.0-dev.31 → 0.3.0-dev.33

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 (206) hide show
  1. package/dist/app/App.d.ts +1 -0
  2. package/dist/app/App.js +2 -0
  3. package/dist/app/App.js.map +1 -0
  4. package/dist/app/entry.client.d.ts +3 -0
  5. package/dist/app/entry.client.js +38 -0
  6. package/dist/app/entry.client.js.map +1 -0
  7. package/dist/app/entry.server.d.ts +10 -0
  8. package/dist/app/entry.server.js +107 -0
  9. package/dist/app/entry.server.js.map +1 -0
  10. package/dist/app/main.d.ts +26 -2
  11. package/dist/app/main.js +39 -17
  12. package/dist/app/main.js.map +1 -1
  13. package/dist/app/tailwind.js +5 -0
  14. package/dist/app/tailwind.js.map +1 -1
  15. package/dist/app/zudoku-manifest.d.ts +1 -0
  16. package/dist/app/zudoku-manifest.js +20 -0
  17. package/dist/app/zudoku-manifest.js.map +1 -0
  18. package/dist/cli/cmds/dev.js +5 -0
  19. package/dist/cli/cmds/dev.js.map +1 -1
  20. package/dist/cli/dev/handler.d.ts +1 -0
  21. package/dist/cli/dev/handler.js +3 -1
  22. package/dist/cli/dev/handler.js.map +1 -1
  23. package/dist/config/config.d.ts +5 -0
  24. package/dist/lib/authentication/providers/clerk.js +2 -0
  25. package/dist/lib/authentication/providers/clerk.js.map +1 -1
  26. package/dist/lib/components/DevPortal.d.ts +1 -1
  27. package/dist/lib/components/DevPortal.js +6 -10
  28. package/dist/lib/components/DevPortal.js.map +1 -1
  29. package/dist/lib/components/ErrorPage.d.ts +6 -0
  30. package/dist/lib/components/ErrorPage.js +9 -0
  31. package/dist/lib/components/ErrorPage.js.map +1 -0
  32. package/dist/lib/components/InlineCode.d.ts +5 -0
  33. package/dist/lib/components/InlineCode.js +4 -0
  34. package/dist/lib/components/InlineCode.js.map +1 -0
  35. package/dist/lib/components/Layout.js +2 -1
  36. package/dist/lib/components/Layout.js.map +1 -1
  37. package/dist/lib/components/NotFoundPage.d.ts +1 -0
  38. package/dist/lib/components/NotFoundPage.js +12 -0
  39. package/dist/lib/components/NotFoundPage.js.map +1 -0
  40. package/dist/lib/components/SyntaxHighlight.d.ts +3 -2
  41. package/dist/lib/components/SyntaxHighlight.js +20 -22
  42. package/dist/lib/components/SyntaxHighlight.js.map +1 -1
  43. package/dist/lib/errors/RouterError.js +6 -3
  44. package/dist/lib/errors/RouterError.js.map +1 -1
  45. package/dist/lib/errors/ServerError.d.ts +3 -0
  46. package/dist/lib/errors/ServerError.js +6 -0
  47. package/dist/lib/errors/ServerError.js.map +1 -0
  48. package/dist/lib/oas/parser/index.d.ts +1 -1
  49. package/dist/lib/oas/parser/index.js +38 -14
  50. package/dist/lib/oas/parser/index.js.map +1 -1
  51. package/dist/lib/plugins/api-keys/index.js +3 -8
  52. package/dist/lib/plugins/api-keys/index.js.map +1 -1
  53. package/dist/lib/plugins/markdown/generateRoutes.js.map +1 -1
  54. package/dist/lib/plugins/markdown/index.js +3 -7
  55. package/dist/lib/plugins/markdown/index.js.map +1 -1
  56. package/dist/lib/plugins/openapi/OperationList.js +11 -1
  57. package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
  58. package/dist/lib/plugins/openapi/OperationListItem.js +2 -1
  59. package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
  60. package/dist/lib/plugins/openapi/SchemaListView.js +2 -1
  61. package/dist/lib/plugins/openapi/SchemaListView.js.map +1 -1
  62. package/dist/lib/plugins/openapi/client/createMemoryClient.js +1 -1
  63. package/dist/lib/plugins/openapi/client/createMemoryClient.js.map +1 -1
  64. package/dist/lib/plugins/openapi/index.js +9 -1
  65. package/dist/lib/plugins/openapi/index.js.map +1 -1
  66. package/dist/lib/plugins/openapi/playground/QueryParams.js +2 -1
  67. package/dist/lib/plugins/openapi/playground/QueryParams.js.map +1 -1
  68. package/dist/lib/plugins/redirect/index.js +2 -3
  69. package/dist/lib/plugins/redirect/index.js.map +1 -1
  70. package/dist/lib/ui/Callout.js +1 -1
  71. package/dist/lib/ui/Callout.js.map +1 -1
  72. package/dist/lib/ui/button-variants.d.ts +1 -1
  73. package/dist/lib/util/MdxComponents.js +2 -2
  74. package/dist/lib/util/MdxComponents.js.map +1 -1
  75. package/dist/lib/util/groupBy.d.ts +1 -6
  76. package/dist/lib/util/groupBy.js +10 -8
  77. package/dist/lib/util/groupBy.js.map +1 -1
  78. package/dist/vite/build.js +30 -11
  79. package/dist/vite/build.js.map +1 -1
  80. package/dist/vite/config.d.ts +2 -1
  81. package/dist/vite/config.js +34 -7
  82. package/dist/vite/config.js.map +1 -1
  83. package/dist/vite/dev-server.d.ts +1 -1
  84. package/dist/vite/dev-server.js +15 -9
  85. package/dist/vite/dev-server.js.map +1 -1
  86. package/dist/vite/html.js +5 -4
  87. package/dist/vite/html.js.map +1 -1
  88. package/dist/vite/plugin-custom-css.d.ts +6 -0
  89. package/dist/vite/plugin-custom-css.js +55 -0
  90. package/dist/vite/plugin-custom-css.js.map +1 -0
  91. package/dist/vite/plugin-docs.js +14 -5
  92. package/dist/vite/plugin-docs.js.map +1 -1
  93. package/dist/vite/plugin-openapi-worker.js +4 -1
  94. package/dist/vite/plugin-openapi-worker.js.map +1 -1
  95. package/dist/vite/plugin.js +2 -0
  96. package/dist/vite/plugin.js.map +1 -1
  97. package/dist/vite/prerender.d.ts +1 -0
  98. package/dist/vite/prerender.js +57 -0
  99. package/dist/vite/prerender.js.map +1 -0
  100. package/lib/{DevPortalProvider-BMk-RCE0.js → DevPortalProvider-BlxLX6GG.js} +230 -250
  101. package/lib/DevPortalProvider-BlxLX6GG.js.map +1 -0
  102. package/lib/{Markdown-DDmW47R9.js → Markdown-CL8KPvJN.js} +8 -9
  103. package/lib/{Markdown-DDmW47R9.js.map → Markdown-CL8KPvJN.js.map} +1 -1
  104. package/lib/MdxComponents-Ev_hBHb2.js +5885 -0
  105. package/lib/MdxComponents-Ev_hBHb2.js.map +1 -0
  106. package/lib/{MdxPage-DyJAHF9y.js → MdxPage-Z3HKNTrj.js} +92 -89
  107. package/lib/MdxPage-Z3HKNTrj.js.map +1 -0
  108. package/lib/{OperationList-Dz9rHM9r.js → OperationList-DfkWNe8Y.js} +1972 -1786
  109. package/lib/OperationList-DfkWNe8Y.js.map +1 -0
  110. package/lib/Route-Bf1_D_vC.js +13 -0
  111. package/lib/{Route-CN_7-e5r.js.map → Route-Bf1_D_vC.js.map} +1 -1
  112. package/lib/Select-DSa3bN4t.js +4770 -0
  113. package/lib/Select-DSa3bN4t.js.map +1 -0
  114. package/lib/assets/{worker-BXS8hiSM.js → worker-BjPv-hjP.js} +3100 -2720
  115. package/lib/assets/worker-BjPv-hjP.js.map +1 -0
  116. package/lib/hook-CTmJ6CWq.js +35 -0
  117. package/lib/hook-CTmJ6CWq.js.map +1 -0
  118. package/lib/index-BdWBDosx.js +74 -0
  119. package/lib/index-BdWBDosx.js.map +1 -0
  120. package/lib/{index-Cpdpun6t.js → index-BjSy8IQO.js} +57 -41
  121. package/lib/index-BjSy8IQO.js.map +1 -0
  122. package/lib/{AnchorLink-ptdQk87q.js → index.esm-CPEExBJE.js} +156 -168
  123. package/lib/index.esm-CPEExBJE.js.map +1 -0
  124. package/lib/jsx-runtime-CM0TzjGp.js +866 -0
  125. package/lib/jsx-runtime-CM0TzjGp.js.map +1 -0
  126. package/lib/mutation-91kw0lHb.js +208 -0
  127. package/lib/mutation-91kw0lHb.js.map +1 -0
  128. package/lib/router-CcYTwKjf.js +183 -0
  129. package/lib/router-CcYTwKjf.js.map +1 -0
  130. package/lib/zudoku.auth-clerk.js.map +1 -1
  131. package/lib/zudoku.auth-openid.js +588 -441
  132. package/lib/zudoku.auth-openid.js.map +1 -1
  133. package/lib/zudoku.components.js +284 -595
  134. package/lib/zudoku.components.js.map +1 -1
  135. package/lib/zudoku.openapi-worker.js +18 -18
  136. package/lib/zudoku.plugin-api-keys.js +143 -98
  137. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  138. package/lib/zudoku.plugin-markdown.js +2 -49
  139. package/lib/zudoku.plugin-markdown.js.map +1 -1
  140. package/lib/zudoku.plugin-openapi.js +5 -3
  141. package/lib/zudoku.plugin-openapi.js.map +1 -1
  142. package/lib/zudoku.plugin-redirect.js +6 -7
  143. package/lib/zudoku.plugin-redirect.js.map +1 -1
  144. package/package.json +9 -8
  145. package/src/app/App.tsx +0 -0
  146. package/src/app/entry.client.tsx +64 -0
  147. package/src/app/entry.server.tsx +158 -0
  148. package/src/app/main.tsx +65 -43
  149. package/src/app/tailwind.ts +6 -0
  150. package/src/app/zudoku-manifest.ts +22 -0
  151. package/src/lib/authentication/providers/clerk.tsx +1 -0
  152. package/src/lib/components/DevPortal.tsx +25 -33
  153. package/src/lib/components/ErrorPage.tsx +28 -0
  154. package/src/lib/components/InlineCode.tsx +19 -0
  155. package/src/lib/components/Layout.tsx +7 -4
  156. package/src/lib/components/NotFoundPage.tsx +39 -0
  157. package/src/lib/components/SyntaxHighlight.tsx +26 -22
  158. package/src/lib/errors/RouterError.tsx +8 -7
  159. package/src/lib/errors/ServerError.tsx +5 -0
  160. package/src/lib/oas/parser/index.ts +41 -22
  161. package/src/lib/plugins/api-keys/index.tsx +4 -16
  162. package/src/lib/plugins/markdown/generateRoutes.tsx +1 -1
  163. package/src/lib/plugins/markdown/index.tsx +3 -7
  164. package/src/lib/plugins/openapi/OperationList.tsx +30 -0
  165. package/src/lib/plugins/openapi/OperationListItem.tsx +3 -1
  166. package/src/lib/plugins/openapi/SchemaListView.tsx +8 -10
  167. package/src/lib/plugins/openapi/client/createMemoryClient.ts +1 -1
  168. package/src/lib/plugins/openapi/index.tsx +18 -1
  169. package/src/lib/plugins/openapi/playground/QueryParams.tsx +6 -1
  170. package/src/lib/plugins/redirect/index.tsx +2 -2
  171. package/src/lib/ui/Callout.tsx +2 -2
  172. package/src/lib/util/MdxComponents.tsx +2 -11
  173. package/src/lib/util/groupBy.ts +7 -12
  174. package/dist/lib/components/Router.d.ts +0 -4
  175. package/dist/lib/components/Router.js +0 -21
  176. package/dist/lib/components/Router.js.map +0 -1
  177. package/lib/AnchorLink-ptdQk87q.js.map +0 -1
  178. package/lib/DevPortalProvider-BMk-RCE0.js.map +0 -1
  179. package/lib/MdxComponents-C0R6zobS.js +0 -3019
  180. package/lib/MdxComponents-C0R6zobS.js.map +0 -1
  181. package/lib/MdxPage-DyJAHF9y.js.map +0 -1
  182. package/lib/OperationList-Dz9rHM9r.js.map +0 -1
  183. package/lib/Route-CN_7-e5r.js +0 -14
  184. package/lib/Select-D-Jtx53Q.js +0 -4572
  185. package/lib/Select-D-Jtx53Q.js.map +0 -1
  186. package/lib/Spinner-BG1JnYy0.js +0 -182
  187. package/lib/Spinner-BG1JnYy0.js.map +0 -1
  188. package/lib/assets/worker-BXS8hiSM.js.map +0 -1
  189. package/lib/cn-DpqTslo9.js +0 -2342
  190. package/lib/cn-DpqTslo9.js.map +0 -1
  191. package/lib/hook-BzBeIPL4.js +0 -25
  192. package/lib/hook-BzBeIPL4.js.map +0 -1
  193. package/lib/index-BaOOUFsA.js +0 -412
  194. package/lib/index-BaOOUFsA.js.map +0 -1
  195. package/lib/index-CPvRaBBB.js +0 -713
  196. package/lib/index-CPvRaBBB.js.map +0 -1
  197. package/lib/index-Cpdpun6t.js.map +0 -1
  198. package/lib/index-DLS6fPwU.js +0 -464
  199. package/lib/index-DLS6fPwU.js.map +0 -1
  200. package/lib/jsx-runtime-SV6hXQua.js +0 -3009
  201. package/lib/jsx-runtime-SV6hXQua.js.map +0 -1
  202. package/lib/loglevel-CA34MiFn.js +0 -153
  203. package/lib/loglevel-CA34MiFn.js.map +0 -1
  204. package/lib/util-CCWvaWo7.js +0 -41
  205. package/lib/util-CCWvaWo7.js.map +0 -1
  206. package/src/lib/components/Router.tsx +0 -24
@@ -1,9 +1,9 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { Link } from "react-router-dom";
3
3
  import { Heading } from "../components/Heading.js";
4
+ import { InlineCode } from "../components/InlineCode.js";
4
5
  import { SyntaxHighlight } from "../components/SyntaxHighlight.js";
5
6
  import { Callout } from "../ui/Callout.js";
6
- import { cn } from "./cn.js";
7
7
  export const MdxComponents = {
8
8
  img: (props) => {
9
9
  if (/\.(mp4|webm|mov|avi)$/.test(props.src ?? "")) {
@@ -34,7 +34,7 @@ export const MdxComponents = {
34
34
  const match = className?.match(/language?-(\w+)/);
35
35
  return (_jsx(SyntaxHighlight, { language: match?.[1] ?? "markup", className: "rounded-xl overflow-x-auto p-4 border border-border dark:!bg-foreground/10 dark:border-transparent", showLanguageIndicator: true, code: String(children).trim() }));
36
36
  }
37
- return (_jsx("code", { className: cn(className, "font-mono border border-border p-1 py-0.5 rounded bg-border/50 dark:bg-border/70 whitespace-nowrap"), children: children }));
37
+ return _jsx(InlineCode, { className: className, children: children });
38
38
  },
39
39
  };
40
40
  //# sourceMappingURL=MdxComponents.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MdxComponents.js","sourceRoot":"","sources":["../../../src/lib/util/MdxComponents.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MdxComponents.js","sourceRoot":"","sources":["../../../src/lib/util/MdxComponents.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1 @@
1
- type MapValuesToKeysIfAllowed<T> = {
2
- [K in keyof T]: T[K] extends PropertyKey ? K : never;
3
- };
4
- type Filter<T> = MapValuesToKeysIfAllowed<T>[keyof T];
5
- export declare const groupBy: <T extends Record<PropertyKey, any>, Key extends Filter<T>>(arr: T[], key: Key) => Record<T[Key], T[]>;
6
- export {};
1
+ export declare const groupBy: <T extends Record<PropertyKey, any>, KeySelector extends (item: T) => PropertyKey>(arr: T[], keySelector: KeySelector) => Partial<Record<ReturnType<KeySelector>, T[]>>;
@@ -1,9 +1,11 @@
1
- export const groupBy = (arr, key) => arr.reduce((accumulator, val) => {
2
- const groupedKey = val[key];
3
- if (!accumulator[groupedKey]) {
4
- accumulator[groupedKey] = [];
5
- }
6
- accumulator[groupedKey].push(val);
7
- return accumulator;
8
- }, {});
1
+ export const groupBy = (arr, keySelector) => {
2
+ return arr.reduce((accumulator, val) => {
3
+ const groupedKey = keySelector(val);
4
+ if (!accumulator[groupedKey]) {
5
+ accumulator[groupedKey] = [];
6
+ }
7
+ accumulator[groupedKey].push(val);
8
+ return accumulator;
9
+ }, {});
10
+ };
9
11
  //# sourceMappingURL=groupBy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"groupBy.js","sourceRoot":"","sources":["../../../src/lib/util/groupBy.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,OAAO,GAAG,CAKrB,GAAQ,EACR,GAAQ,EACa,EAAE,CACvB,GAAG,CAAC,MAAM,CACR,CAAC,WAAW,EAAE,GAAG,EAAE,EAAE;IACnB,MAAM,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7B,WAAW,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;IAC/B,CAAC;IACD,WAAW,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClC,OAAO,WAAW,CAAC;AACrB,CAAC,EACD,EAAyB,CAC1B,CAAC"}
1
+ {"version":3,"file":"groupBy.js","sourceRoot":"","sources":["../../../src/lib/util/groupBy.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,CAIrB,GAAQ,EACR,WAAwB,EACuB,EAAE;IACjD,OAAO,GAAG,CAAC,MAAM,CACf,CAAC,WAAW,EAAE,GAAG,EAAE,EAAE;QACnB,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAA4B,CAAC;QAC/D,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7B,WAAW,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;QAC/B,CAAC;QACD,WAAW,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClC,OAAO,WAAW,CAAC;IACrB,CAAC,EACD,EAA0C,CAC3C,CAAC;AACJ,CAAC,CAAC"}
@@ -2,22 +2,41 @@ import { writeFile } from "fs/promises";
2
2
  import { build as viteBuild } from "vite";
3
3
  import { getViteConfig } from "./config.js";
4
4
  import { getBuildHtml } from "./html.js";
5
+ import { prerender } from "./prerender.js";
5
6
  export async function runBuild(options) {
6
- const viteConfig = await getViteConfig(options.dir, {
7
- mode: "production",
8
- command: "build",
9
- });
10
- const result = await viteBuild(viteConfig);
11
- if (Array.isArray(result)) {
7
+ const [viteClientConfig, viteServerConfig] = await Promise.all([
8
+ getViteConfig(options.dir, {
9
+ mode: "production",
10
+ command: "build",
11
+ }),
12
+ getViteConfig(options.dir, {
13
+ mode: "production",
14
+ command: "build",
15
+ isSsrBuild: true,
16
+ }),
17
+ ]);
18
+ const [clientResult, serverResult] = await Promise.all([
19
+ viteBuild(viteClientConfig),
20
+ viteBuild(viteServerConfig),
21
+ ]);
22
+ if (Array.isArray(clientResult)) {
12
23
  throw new Error("Build failed");
13
24
  }
14
- if ("output" in result) {
15
- const jsEntry = result.output.find((o) => "isEntry" in o && o.isEntry)?.fileName;
16
- const cssEntry = result.output.find((o) => o.fileName.endsWith(".css"))?.fileName;
25
+ if ("output" in clientResult) {
26
+ const jsEntry = clientResult.output.find((o) => "isEntry" in o && o.isEntry)?.fileName;
27
+ const cssEntry = clientResult.output.find((o) => o.fileName.endsWith(".css"))?.fileName;
17
28
  const html = getBuildHtml({
18
- jsEntry: `/${jsEntry}`,
19
- cssEntry: `/${cssEntry}`,
29
+ jsEntry: `/client/${jsEntry}`,
30
+ cssEntry: `/client/${cssEntry}`,
20
31
  });
32
+ try {
33
+ await prerender(html, options.dir);
34
+ }
35
+ catch (e) {
36
+ // dynamic imports in prerender swallow the stack trace, so we log it here
37
+ // eslint-disable-next-line no-console
38
+ console.error(e);
39
+ }
21
40
  await writeFile(`${options.dir}/dist/index.html`, html, "utf-8");
22
41
  return;
23
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/vite/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAwB;IACrD,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE;QAClD,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC,CAAC;IAE3C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAChC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CACnC,EAAE,QAAQ,CAAC;QACZ,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACxC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAC5B,EAAE,QAAQ,CAAC;QAEZ,MAAM,IAAI,GAAG,YAAY,CAAC;YACxB,OAAO,EAAE,IAAI,OAAO,EAAE;YACtB,QAAQ,EAAE,IAAI,QAAQ,EAAE;SACzB,CAAC,CAAC;QAEH,MAAM,SAAS,CAAC,GAAG,OAAO,CAAC,GAAG,kBAAkB,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACjE,OAAO;IACT,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/vite/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAwB;IACrD,MAAM,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC7D,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE;YACzB,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,OAAO;SACjB,CAAC;QACF,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE;YACzB,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,OAAO;YAChB,UAAU,EAAE,IAAI;SACjB,CAAC;KACH,CAAC,CAAC;IAEH,MAAM,CAAC,YAAY,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACrD,SAAS,CAAC,gBAAgB,CAAC;QAC3B,SAAS,CAAC,gBAAgB,CAAC;KAC5B,CAAC,CAAC;IAEH,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,QAAQ,IAAI,YAAY,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CACtC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CACnC,EAAE,QAAQ,CAAC;QACZ,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9C,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAC5B,EAAE,QAAQ,CAAC;QAEZ,MAAM,IAAI,GAAG,YAAY,CAAC;YACxB,OAAO,EAAE,WAAW,OAAO,EAAE;YAC7B,QAAQ,EAAE,WAAW,QAAQ,EAAE;SAChC,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,0EAA0E;YAC1E,sCAAsC;YACtC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;QACD,MAAM,SAAS,CAAC,GAAG,OAAO,CAAC,GAAG,kBAAkB,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAEjE,OAAO;IACT,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;AAClC,CAAC"}
@@ -9,7 +9,8 @@ export type ZudokuConfigEnv = ConfigEnv & {
9
9
  mode: "development" | "production";
10
10
  };
11
11
  export declare function loadZuploConfig(rootDir: string, configEnv: ZudokuConfigEnv): Promise<ZudokuConfig>;
12
- export declare function getAppMainTsxPath(): string;
12
+ export declare function getAppClientEntryPath(): string;
13
+ export declare function getAppServerEntryPath(): string;
13
14
  export declare function getPluginOptions({ dir, mode, }: {
14
15
  dir: string;
15
16
  mode: ZudokuPluginOptions["mode"];
@@ -1,3 +1,4 @@
1
+ import { vitePluginSsrCss } from "@hiogawa/vite-plugin-ssr-css";
1
2
  import autoprefixer from "autoprefixer";
2
3
  import { stat } from "node:fs/promises";
3
4
  import path from "node:path";
@@ -74,9 +75,13 @@ function getModuleDir() {
74
75
  return moduleDir;
75
76
  }
76
77
  }
77
- export function getAppMainTsxPath() {
78
+ export function getAppClientEntryPath() {
78
79
  const modDir = getModuleDir();
79
- return path.join(modDir, "src", "app", "main.tsx");
80
+ return path.join(modDir, "src", "app", "entry.client.tsx");
81
+ }
82
+ export function getAppServerEntryPath() {
83
+ const modDir = getModuleDir();
84
+ return path.join(modDir, "src", "app", "entry.server.tsx");
80
85
  }
81
86
  export function getPluginOptions({ dir, mode, }) {
82
87
  const moduleDir = getModuleDir();
@@ -110,6 +115,10 @@ export async function getViteConfig(dir, configEnv) {
110
115
  worker: {
111
116
  format: "es",
112
117
  },
118
+ ssr: {
119
+ target: "node",
120
+ noExternal: true,
121
+ },
113
122
  server: {
114
123
  middlewareMode: true,
115
124
  open: true,
@@ -127,22 +136,37 @@ export async function getViteConfig(dir, configEnv) {
127
136
  },
128
137
  },
129
138
  build: {
139
+ ssr: configEnv.isSsrBuild,
130
140
  sourcemap: true,
131
- outDir: path.resolve(dir, "dist"),
141
+ outDir: path.resolve(path.join(dir, "dist", configEnv.isSsrBuild ? "server" : "client")),
142
+ emptyOutDir: true,
132
143
  rollupOptions: {
133
144
  ...config.build?.rollupOptions,
134
- input: configEnv.command === "build" ? "zudoku/app/main.tsx" : undefined,
145
+ input: configEnv.command === "build"
146
+ ? configEnv.isSsrBuild
147
+ ? ["zudoku/app/entry.server.tsx", "zudoku/app/zudoku-manifest.ts"]
148
+ : "zudoku/app/entry.client.tsx"
149
+ : undefined,
135
150
  },
136
151
  },
137
152
  optimizeDeps: {
138
- entries: [getAppMainTsxPath()],
153
+ entries: [
154
+ configEnv.isSsrBuild
155
+ ? getAppServerEntryPath()
156
+ : getAppClientEntryPath(),
157
+ ],
139
158
  exclude: [
140
159
  // Vite does not like optimizing the worker dependency
141
160
  "zudoku/openapi-worker",
142
161
  "virtual:zudoku-openapi-worker",
143
162
  ],
144
163
  },
145
- plugins: [vitePlugin(pluginOptions)],
164
+ plugins: [
165
+ vitePluginSsrCss({
166
+ entries: [`${pluginOptions.moduleDir}/src/app/entry.client.tsx`],
167
+ }),
168
+ vitePlugin(pluginOptions),
169
+ ],
146
170
  css: {
147
171
  postcss: {
148
172
  plugins: [
@@ -155,7 +179,10 @@ export async function getViteConfig(dir, configEnv) {
155
179
  // `${moduleDir}/lib/**/*.{js,ts,jsx,tsx,md,mdx}`,
156
180
  `${pluginOptions.moduleDir}/src/lib/**/*.{js,ts,jsx,tsx,md,mdx}`,
157
181
  // Users custom components
158
- `${dir}/**/*.{js,ts,jsx,tsx,md,mdx}`,
182
+ // NOTE: For now we are requiring components to be in `src` folder
183
+ // would be good to make this more dynamic though because users
184
+ // could put their components anywhere
185
+ `${dir}/src/**/*.{js,ts,jsx,tsx,md,mdx}`,
159
186
  ],
160
187
  }),
161
188
  autoprefixer,
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/vite/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/vite/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,YAAY,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAM,MAAM,YAAY,CAAC;AAChC,OAAO,WAAW,MAAM,aAAa,CAAC;AACtC,OAAO,EAAqC,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAC7E,OAAO,cAAc,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAElE,OAAO,UAAU,MAAM,aAAa,CAAC;AAErC,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,kBAAkB;IAClB,mBAAmB;IACnB,kBAAkB;IAClB,mBAAmB;IACnB,mBAAmB;CACpB,CAAC;AAMF,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE,CAClC,IAAI,CAAC,IAAI,CAAC;KACP,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;KAChB,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AAExB,IAAI,UAA8B,CAAC;AAEnC,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAAe;IACrD,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAE9C,IAAI,MAAM,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,UAAU,GAAG,QAAQ,CAAC;YACtB,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;AAClE,CAAC;AAMD,IAAI,MAAgC,CAAC;AAErC,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAe,EACf,SAA0B;IAE1B,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAElD,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YACvE,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,sEAAsE;QACtE,uEAAuE;QACvE,qEAAqE;QACrE,kEAAkE;QAClE,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,EAAE,CAAC,CAAC;QAC7D,CAAC;QACD,MAAM,GAAG,MAAM,CAAC,MAAsB,CAAC;QACvC,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,iBAAiB;IACjB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,8CAA8C,CAAC,EAAE;QACvE,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,YAAY;IACnB,oEAAoE;IACpE,6DAA6D;IAC7D,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;IAC9D,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;SAAM,CAAC;QACN,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAC/B,GAAG,EACH,IAAI,GAIL;IACC,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,OAAO;QACL,GAAG,MAAM;QACT,OAAO,EAAE,GAAG;QACZ,SAAS;QACT,IAAI;KACL,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAW,EACX,SAA0B;IAE1B,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAErD,cAAc,CAAC,MAAM,CAAC,CAAC;IAEvB,IAAI,aAAa,GAAG,IAAI,CAAC;IACzB,OACE,CAAC,CAAC,MAAM,eAAe,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QACpD,aAAa,GAAG,IAAI,EACpB,CAAC;QACD,aAAa,EAAE,CAAC;IAClB,CAAC;IAED,MAAM,aAAa,GAAG,gBAAgB,CAAC;QACrC,GAAG;QACH,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ;KAC9D,CAAC,CAAC;IAEH,MAAM,UAAU,GAAqB;QACnC,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,QAAQ;QACjB,UAAU,EAAE,KAAK;QACjB,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,MAAM,CAAa;QACvD,YAAY,EAAE,MAAM;QACpB,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE;YACN,MAAM,EAAE,IAAI;SACb;QACD,GAAG,EAAE;YACH,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,IAAI;SACjB;QACD,MAAM,EAAE;YACN,cAAc,EAAE,IAAI;YACpB,IAAI,EAAE,IAAI;YACV,GAAG,EAAE;gBACH,IAAI,EAAE,aAAa;aACpB;YACD,KAAK,EAAE;gBACL,OAAO,EAAE;oBACP,GAAG,GAAG,OAAO;oBACb,GAAG,GAAG,MAAM;oBACZ,GAAG,GAAG,OAAO;oBACb,GAAG,aAAa,CAAC,SAAS,WAAW;oBACrC,GAAG,aAAa,CAAC,SAAS,UAAU;iBACrC;aACF;SACF;QACD,KAAK,EAAE;YACL,GAAG,EAAE,SAAS,CAAC,UAAU;YACzB,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,OAAO,CAClB,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CACnE;YACD,WAAW,EAAE,IAAI;YACjB,aAAa,EAAE;gBACb,GAAG,MAAM,CAAC,KAAK,EAAE,aAAa;gBAC9B,KAAK,EACH,SAAS,CAAC,OAAO,KAAK,OAAO;oBAC3B,CAAC,CAAC,SAAS,CAAC,UAAU;wBACpB,CAAC,CAAC,CAAC,6BAA6B,EAAE,+BAA+B,CAAC;wBAClE,CAAC,CAAC,6BAA6B;oBACjC,CAAC,CAAC,SAAS;aAChB;SACF;QACD,YAAY,EAAE;YACZ,OAAO,EAAE;gBACP,SAAS,CAAC,UAAU;oBAClB,CAAC,CAAC,qBAAqB,EAAE;oBACzB,CAAC,CAAC,qBAAqB,EAAE;aAC5B;YACD,OAAO,EAAE;gBACP,sDAAsD;gBACtD,uBAAuB;gBACvB,+BAA+B;aAChC;SACF;QACD,OAAO,EAAE;YACP,gBAAgB,CAAC;gBACf,OAAO,EAAE,CAAC,GAAG,aAAa,CAAC,SAAS,2BAA2B,CAAC;aACjE,CAAC;YACF,UAAU,CAAC,aAAa,CAAC;SAC1B;QACD,GAAG,EAAE;YACH,OAAO,EAAE;gBACP,OAAO,EAAE;oBACP,WAAW,CAAC;wBACV,GAAG,cAAc;wBACjB,OAAO,EAAE;4BACP,+BAA+B;4BAC/B,kEAAkE;4BAClE,mEAAmE;4BACnE,kDAAkD;4BAClD,GAAG,aAAa,CAAC,SAAS,sCAAsC;4BAChE,0BAA0B;4BAC1B,kEAAkE;4BAClE,+DAA+D;4BAC/D,sCAAsC;4BACtC,GAAG,GAAG,kCAAkC;yBACzC;qBACF,CAAC;oBACF,YAAY;iBACb;aACF;SACF;KACF,CAAC;IAEF,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -1,10 +1,10 @@
1
1
  export declare class DevServer {
2
2
  private options;
3
3
  private server;
4
- private viteServer;
5
4
  constructor(options: {
6
5
  port: number;
7
6
  dir: string;
7
+ ssr?: boolean;
8
8
  });
9
9
  watch(): Promise<void>;
10
10
  start(): Promise<void>;
@@ -5,12 +5,11 @@ import { createServer as createViteServer } from "vite";
5
5
  import { logger } from "../cli/common/logger.js";
6
6
  import { printDiagnosticsToConsole } from "../cli/common/output.js";
7
7
  import { createGraphQLServer } from "../lib/oas/graphql/index.js";
8
- import { getAppMainTsxPath, getViteConfig, zuploConfigFiles, } from "./config.js";
8
+ import { getAppClientEntryPath, getAppServerEntryPath, getViteConfig, zuploConfigFiles, } from "./config.js";
9
9
  import { getDevHtml } from "./html.js";
10
10
  export class DevServer {
11
11
  options;
12
12
  server;
13
- viteServer;
14
13
  constructor(options) {
15
14
  this.options = options;
16
15
  }
@@ -32,22 +31,29 @@ export class DevServer {
32
31
  mode: "development",
33
32
  command: "serve",
34
33
  });
35
- this.viteServer = await createViteServer(viteConfig);
34
+ const vite = await createViteServer(viteConfig);
36
35
  const graphql = createGraphQLServer({
37
36
  graphqlEndpoint: "/__z/graphql",
38
37
  });
39
38
  app.use(graphql.graphqlEndpoint, graphql);
40
- app.use(this.viteServer.middlewares);
39
+ app.use(vite.middlewares);
40
+ printDiagnosticsToConsole(`Server-side rendering ${this.options.ssr ? "enabled" : "disabled"}`);
41
41
  app.use("*", async (req, res) => {
42
+ const url = req.originalUrl;
42
43
  try {
43
- const entryJs = getAppMainTsxPath();
44
+ const entryJs = getAppClientEntryPath();
44
45
  const rawHtml = getDevHtml(entryJs);
45
- const indexHtml = await this.viteServer.transformIndexHtml(req.url, rawHtml);
46
- // Send the transformed index.html back to the client
47
- res.status(200).set({ "Content-Type": "text/html" }).end(indexHtml);
46
+ const template = await vite.transformIndexHtml(url, rawHtml);
47
+ if (this.options.ssr) {
48
+ const { render } = await vite.ssrLoadModule(getAppServerEntryPath());
49
+ render({ template, expressRequest: req, response: res });
50
+ }
51
+ else {
52
+ res.status(200).set({ "Content-Type": "text/html" }).end(template);
53
+ }
48
54
  }
49
55
  catch (e) {
50
- this.viteServer.ssrFixStacktrace(e);
56
+ vite.ssrFixStacktrace(e);
51
57
  logger.error(e);
52
58
  res.status(500).end(e.message);
53
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dev-server.js","sourceRoot":"","sources":["../../src/vite/dev-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dev-server.js","sourceRoot":"","sources":["../../src/vite/dev-server.ts"],"names":[],"mappings":"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"}
package/dist/vite/html.js CHANGED
@@ -1,12 +1,13 @@
1
1
  export function getDevHtml(jsEntry) {
2
2
  return `<!doctype html>
3
- <html lang="en" class="dark">
3
+ <html lang="en">
4
4
  <head>
5
5
  <meta charset="UTF-8" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
+ <!--app-helmet-->
7
8
  </head>
8
9
  <body>
9
- <div id="root"></div>
10
+ <div id="root"><!--app-html--></div>
10
11
  <script type="module" src="${jsEntry}"></script>
11
12
  </body>
12
13
  </html>
@@ -18,12 +19,12 @@ export function getBuildHtml({ jsEntry, cssEntry, }) {
18
19
  <head>
19
20
  <meta charset="UTF-8" />
20
21
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
21
- <title>Vite + React + TS</title>
22
22
  <script type="module" crossorigin src="${jsEntry}"></script>
23
23
  <link rel="stylesheet" crossorigin href="${cssEntry}">
24
+ <!--app-helmet-->
24
25
  </head>
25
26
  <body>
26
- <div id="root"></div>
27
+ <div id="root"><!--app-html--></div>
27
28
  </body>
28
29
  </html>`;
29
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/vite/html.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,OAAO;;;;;;;;iCAQwB,OAAO;;;CAGvC,CAAC;AACF,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAC3B,OAAO,EACP,QAAQ,GAIT;IACC,OAAO;;;;;;6CAMoC,OAAO;+CACL,QAAQ;;;;;QAK/C,CAAC;AACT,CAAC"}
1
+ {"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/vite/html.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,OAAO;;;;;;;;;iCASwB,OAAO;;;CAGvC,CAAC;AACF,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAC3B,OAAO,EACP,QAAQ,GAIT;IACC,OAAO;;;;;6CAKoC,OAAO;+CACL,QAAQ;;;;;;QAM/C,CAAC;AACT,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { Plugin } from "vite";
2
+ import { ZudokuPluginOptions } from "../config/config.js";
3
+ declare const THEME_VARIABLES: readonly ["background", "foreground", "card", "cardForeground", "popover", "popoverForeground", "primary", "primaryForeground", "secondary", "secondaryForeground", "muted", "mutedForeground", "accent", "accentForeground", "destructive", "destructiveForeground", "border", "input", "ring", "radius"];
4
+ export type Theme = Partial<Record<(typeof THEME_VARIABLES)[number], string>>;
5
+ declare const viteCustomCss: (config: ZudokuPluginOptions) => Plugin;
6
+ export default viteCustomCss;
@@ -0,0 +1,55 @@
1
+ import { objectEntries } from "../lib/util/objectEntries.js";
2
+ const THEME_VARIABLES = [
3
+ "background",
4
+ "foreground",
5
+ "card",
6
+ "cardForeground",
7
+ "popover",
8
+ "popoverForeground",
9
+ "primary",
10
+ "primaryForeground",
11
+ "secondary",
12
+ "secondaryForeground",
13
+ "muted",
14
+ "mutedForeground",
15
+ "accent",
16
+ "accentForeground",
17
+ "destructive",
18
+ "destructiveForeground",
19
+ "border",
20
+ "input",
21
+ "ring",
22
+ "radius",
23
+ ];
24
+ const uncamelize = (str) => str.replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`);
25
+ const generateCss = (theme) => objectEntries(theme)
26
+ .filter(([key]) => THEME_VARIABLES.includes(key))
27
+ .map(([key, value]) => `--${uncamelize(key)}:${value};`)
28
+ .join("\n");
29
+ const viteCustomCss = (config) => {
30
+ const virtualModuleId = "virtual:vite-zudoku-custom-css.css";
31
+ const resolvedVirtualModuleId = "\0" + virtualModuleId;
32
+ return {
33
+ name: "vite-zudoku-custom-css",
34
+ enforce: "post",
35
+ resolveId(id) {
36
+ if (id === virtualModuleId) {
37
+ return resolvedVirtualModuleId;
38
+ }
39
+ },
40
+ load(id) {
41
+ if (id !== resolvedVirtualModuleId)
42
+ return;
43
+ const cssParts = [];
44
+ if (config.theme?.light) {
45
+ cssParts.push(`:root:root { ${generateCss(config.theme.light)} }`);
46
+ }
47
+ if (config.theme?.dark) {
48
+ cssParts.push(`.dark.dark { ${generateCss(config.theme.dark)} }`);
49
+ }
50
+ return cssParts.join("\n");
51
+ },
52
+ };
53
+ };
54
+ export default viteCustomCss;
55
+ //# sourceMappingURL=plugin-custom-css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-custom-css.js","sourceRoot":"","sources":["../../src/vite/plugin-custom-css.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D,MAAM,eAAe,GAAG;IACtB,YAAY;IACZ,YAAY;IACZ,MAAM;IACN,gBAAgB;IAChB,SAAS;IACT,mBAAmB;IACnB,SAAS;IACT,mBAAmB;IACnB,WAAW;IACX,qBAAqB;IACrB,OAAO;IACP,iBAAiB;IACjB,QAAQ;IACR,kBAAkB;IAClB,aAAa;IACb,uBAAuB;IACvB,QAAQ;IACR,OAAO;IACP,MAAM;IACN,QAAQ;CACA,CAAC;AAEX,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,EAAE,CACjC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAIhE,MAAM,WAAW,GAAG,CAAC,KAAY,EAAE,EAAE,CACnC,aAAa,CAAC,KAAK,CAAC;KACjB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;KAChD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC;KACvD,IAAI,CAAC,IAAI,CAAC,CAAC;AAEhB,MAAM,aAAa,GAAG,CAAC,MAA2B,EAAU,EAAE;IAC5D,MAAM,eAAe,GAAG,oCAAoC,CAAC;IAC7D,MAAM,uBAAuB,GAAG,IAAI,GAAG,eAAe,CAAC;IAEvD,OAAO;QACL,IAAI,EAAE,wBAAwB;QAC9B,OAAO,EAAE,MAAM;QACf,SAAS,CAAC,EAAE;YACV,IAAI,EAAE,KAAK,eAAe,EAAE,CAAC;gBAC3B,OAAO,uBAAuB,CAAC;YACjC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,EAAE;YACL,IAAI,EAAE,KAAK,uBAAuB;gBAAE,OAAO;YAE3C,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,IAAI,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;gBACxB,QAAQ,CAAC,IAAI,CAAC,gBAAgB,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACrE,CAAC;YACD,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;gBACvB,QAAQ,CAAC,IAAI,CAAC,gBAAgB,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpE,CAAC;YAED,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -1,3 +1,10 @@
1
+ function getDefaultConfigIfFilesExist() {
2
+ const defaultDocs = import.meta.glob("/pages/**/*.mdx");
3
+ if (Object.keys(defaultDocs).length) {
4
+ return [{ files: "/pages/**/*.mdx" }];
5
+ }
6
+ return [];
7
+ }
1
8
  const viteDocsPlugin = (config) => {
2
9
  const virtualModuleId = "virtual:zudoku-docs-plugins";
3
10
  const resolvedVirtualModuleId = "\0" + virtualModuleId;
@@ -10,8 +17,8 @@ const viteDocsPlugin = (config) => {
10
17
  },
11
18
  load(id) {
12
19
  if (id === resolvedVirtualModuleId) {
13
- if (!config.docs || config.mode === "standalone") {
14
- return `export const configuredDocsPlugins = undefined;`;
20
+ if (config.mode === "standalone") {
21
+ return `export const configuredDocsPlugins = [];`;
15
22
  }
16
23
  const code = [
17
24
  // IMPORTANT! This path here is important, we MUST resolve
@@ -21,9 +28,11 @@ const viteDocsPlugin = (config) => {
21
28
  : `import { markdownPlugin } from "zudoku/plugins/markdown";`,
22
29
  `const configuredDocsPlugins = [];`,
23
30
  ];
24
- const docsConfigs = Array.isArray(config.docs)
25
- ? config.docs
26
- : [config.docs];
31
+ const docsConfigs = config.docs
32
+ ? Array.isArray(config.docs)
33
+ ? config.docs
34
+ : [config.docs]
35
+ : getDefaultConfigIfFilesExist();
27
36
  docsConfigs.forEach((docsConfig) => {
28
37
  code.push(...[
29
38
  `// @ts-ignore`, // To make tests pass
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-docs.js","sourceRoot":"","sources":["../../src/vite/plugin-docs.ts"],"names":[],"mappings":"AAGA,MAAM,cAAc,GAAG,CAAC,MAA2B,EAAU,EAAE;IAC7D,MAAM,eAAe,GAAG,6BAA6B,CAAC;IACtD,MAAM,uBAAuB,GAAG,IAAI,GAAG,eAAe,CAAC;IAEvD,OAAO;QACL,IAAI,EAAE,yBAAyB;QAC/B,SAAS,CAAC,EAAE;YACV,IAAI,EAAE,KAAK,eAAe,EAAE,CAAC;gBAC3B,OAAO,uBAAuB,CAAC;YACjC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,EAAE;YACL,IAAI,EAAE,KAAK,uBAAuB,EAAE,CAAC;gBACnC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBACjD,OAAO,iDAAiD,CAAC;gBAC3D,CAAC;gBACD,MAAM,IAAI,GAAa;oBACrB,0DAA0D;oBAC1D,2CAA2C;oBAC3C,MAAM,CAAC,IAAI,KAAK,UAAU;wBACxB,CAAC,CAAC,mCAAmC,MAAM,CAAC,SAAS,uCAAuC;wBAC5F,CAAC,CAAC,2DAA2D;oBAC/D,mCAAmC;iBACpC,CAAC;gBACF,MAAM,WAAW,GAAiB,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;oBAC1D,CAAC,CAAC,MAAM,CAAC,IAAI;oBACb,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAElB,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;oBACjC,IAAI,CAAC,IAAI,CACP,GAAG;wBACD,eAAe,EAAE,qBAAqB;wBACtC,0CAA0C,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK;wBAC/E,iBAAiB;wBACjB,KAAK;wBACL,8EAA8E,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,OAAO;qBAC/H,CACF,CAAC;gBACJ,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;gBAE/C,OAAO;oBACL,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;oBACrB,GAAG,EAAE,IAAI;iBACV,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"plugin-docs.js","sourceRoot":"","sources":["../../src/vite/plugin-docs.ts"],"names":[],"mappings":"AAGA,SAAS,4BAA4B;IACnC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACxD,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,CAAC;QACpC,OAAO,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,cAAc,GAAG,CAAC,MAA2B,EAAU,EAAE;IAC7D,MAAM,eAAe,GAAG,6BAA6B,CAAC;IACtD,MAAM,uBAAuB,GAAG,IAAI,GAAG,eAAe,CAAC;IAEvD,OAAO;QACL,IAAI,EAAE,yBAAyB;QAC/B,SAAS,CAAC,EAAE;YACV,IAAI,EAAE,KAAK,eAAe,EAAE,CAAC;gBAC3B,OAAO,uBAAuB,CAAC;YACjC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,EAAE;YACL,IAAI,EAAE,KAAK,uBAAuB,EAAE,CAAC;gBACnC,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBACjC,OAAO,0CAA0C,CAAC;gBACpD,CAAC;gBAED,MAAM,IAAI,GAAa;oBACrB,0DAA0D;oBAC1D,2CAA2C;oBAC3C,MAAM,CAAC,IAAI,KAAK,UAAU;wBACxB,CAAC,CAAC,mCAAmC,MAAM,CAAC,SAAS,uCAAuC;wBAC5F,CAAC,CAAC,2DAA2D;oBAC/D,mCAAmC;iBACpC,CAAC;gBACF,MAAM,WAAW,GAAiB,MAAM,CAAC,IAAI;oBAC3C,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;wBAC1B,CAAC,CAAC,MAAM,CAAC,IAAI;wBACb,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;oBACjB,CAAC,CAAC,4BAA4B,EAAE,CAAC;gBAEnC,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;oBACjC,IAAI,CAAC,IAAI,CACP,GAAG;wBACD,eAAe,EAAE,qBAAqB;wBACtC,0CAA0C,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK;wBAC/E,iBAAiB;wBACjB,KAAK;wBACL,8EAA8E,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,OAAO;qBAC/H,CACF,CAAC;gBACJ,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;gBAE/C,OAAO;oBACL,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;oBACrB,GAAG,EAAE,IAAI;iBACV,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -8,8 +8,11 @@ const viteOpenAPIWorkerPlugin = (config) => {
8
8
  return resolvedVirtualModuleId;
9
9
  }
10
10
  },
11
- load(id) {
11
+ load(id, options) {
12
12
  if (id === resolvedVirtualModuleId) {
13
+ if (options?.ssr) {
14
+ return `export { createClient } from "${config.moduleDir}/src/lib/plugins/openapi/client/createMemoryClient.ts";`;
15
+ }
13
16
  //
14
17
  // This is where we conditionally load the raw typescript for when
15
18
  // we are in internal dev mode. This allows hot reloading of the
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-openapi-worker.js","sourceRoot":"","sources":["../../src/vite/plugin-openapi-worker.ts"],"names":[],"mappings":"AAGA,MAAM,uBAAuB,GAAG,CAAC,MAA2B,EAAgB,EAAE;IAC5E,MAAM,eAAe,GAAG,+BAA+B,CAAC;IACxD,MAAM,uBAAuB,GAAG,IAAI,GAAG,eAAe,CAAC;IAEvD,OAAO;QACL,IAAI,EAAE,8BAA8B;QACpC,SAAS,CAAC,EAAE;YACV,IAAI,EAAE,KAAK,eAAe,EAAE,CAAC;gBAC3B,OAAO,uBAAuB,CAAC;YACjC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,EAAE;YACL,IAAI,EAAE,KAAK,uBAAuB,EAAE,CAAC;gBACnC,EAAE;gBACF,kEAAkE;gBAClE,gEAAgE;gBAChE,oCAAoC;gBACpC,EAAE;gBACF,wEAAwE;gBACxE,EAAE;gBACF,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;oBACpB,KAAK,UAAU,CAAC,CAAC,CAAC;wBAChB,OAAO,iCAAiC,MAAM,CAAC,SAAS,yDAAyD,CAAC;oBACpH,CAAC;oBACD,KAAK,YAAY,CAAC,CAAC,CAAC;wBAClB,OAAO,iCAAiC,MAAM,CAAC,SAAS,yDAAyD,CAAC;oBACpH,CAAC;oBACD,OAAO,CAAC,CAAC,CAAC;wBACR,OAAO,uDAAuD,CAAC;oBACjE,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
1
+ {"version":3,"file":"plugin-openapi-worker.js","sourceRoot":"","sources":["../../src/vite/plugin-openapi-worker.ts"],"names":[],"mappings":"AAGA,MAAM,uBAAuB,GAAG,CAAC,MAA2B,EAAgB,EAAE;IAC5E,MAAM,eAAe,GAAG,+BAA+B,CAAC;IACxD,MAAM,uBAAuB,GAAG,IAAI,GAAG,eAAe,CAAC;IAEvD,OAAO;QACL,IAAI,EAAE,8BAA8B;QACpC,SAAS,CAAC,EAAE;YACV,IAAI,EAAE,KAAK,eAAe,EAAE,CAAC;gBAC3B,OAAO,uBAAuB,CAAC;YACjC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,EAAE,EAAE,OAAO;YACd,IAAI,EAAE,KAAK,uBAAuB,EAAE,CAAC;gBACnC,IAAI,OAAO,EAAE,GAAG,EAAE,CAAC;oBACjB,OAAO,iCAAiC,MAAM,CAAC,SAAS,yDAAyD,CAAC;gBACpH,CAAC;gBACD,EAAE;gBACF,kEAAkE;gBAClE,gEAAgE;gBAChE,oCAAoC;gBACpC,EAAE;gBACF,wEAAwE;gBACxE,EAAE;gBACF,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;oBACpB,KAAK,UAAU,CAAC,CAAC,CAAC;wBAChB,OAAO,iCAAiC,MAAM,CAAC,SAAS,yDAAyD,CAAC;oBACpH,CAAC;oBACD,KAAK,YAAY,CAAC,CAAC,CAAC;wBAClB,OAAO,iCAAiC,MAAM,CAAC,SAAS,yDAAyD,CAAC;oBACpH,CAAC;oBACD,OAAO,CAAC,CAAC,CAAC;wBACR,OAAO,uDAAuD,CAAC;oBACjE,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
@@ -4,6 +4,7 @@ import viteApiPlugin from "./plugin-api.js";
4
4
  import viteAuthPlugin from "./plugin-auth.js";
5
5
  import viteComponentPlugin from "./plugin-component.js";
6
6
  import viteConfigPlugin from "./plugin-config.js";
7
+ import viteCustomCss from "./plugin-custom-css.js";
7
8
  import viteDocsPlugin from "./plugin-docs.js";
8
9
  import viteHtmlPlugin from "./plugin-html.js";
9
10
  import viteMdxPlugin from "./plugin-mdx.js";
@@ -22,6 +23,7 @@ export default function vitePlugin(config) {
22
23
  viteComponentPlugin(config),
23
24
  viteOpenAPIWorkerPlugin(config),
24
25
  viteRedirectPlugin(config),
26
+ viteCustomCss(config),
25
27
  ];
26
28
  }
27
29
  //# sourceMappingURL=plugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/vite/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,sBAAsB,CAAC;AAGzC,OAAO,iBAAiB,MAAM,sBAAsB,CAAC;AACrD,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,uBAAuB,MAAM,4BAA4B,CAAC;AACjE,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AAEtD,MAAM,CAAC,OAAO,UAAU,UAAU,CAChC,MAA2B;IAE3B,OAAO;QACL,aAAa,CAAC,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;QACzC,cAAc,EAAE;QAChB,gBAAgB,CAAC,MAAM,CAAC;QACxB,iBAAiB,CAAC,MAAM,CAAC;QACzB,cAAc,CAAC,MAAM,CAAC;QACtB,cAAc,CAAC,MAAM,CAAC;QACtB,aAAa,CAAC,MAAM,CAAC;QACrB,mBAAmB,CAAC,MAAM,CAAC;QAC3B,uBAAuB,CAAC,MAAM,CAAC;QAC/B,kBAAkB,CAAC,MAAM,CAAC;KAC3B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/vite/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,sBAAsB,CAAC;AAGzC,OAAO,iBAAiB,MAAM,sBAAsB,CAAC;AACrD,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,aAAa,MAAM,wBAAwB,CAAC;AACnD,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,uBAAuB,MAAM,4BAA4B,CAAC;AACjE,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AAEtD,MAAM,CAAC,OAAO,UAAU,UAAU,CAChC,MAA2B;IAE3B,OAAO;QACL,aAAa,CAAC,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;QACzC,cAAc,EAAE;QAChB,gBAAgB,CAAC,MAAM,CAAC;QACxB,iBAAiB,CAAC,MAAM,CAAC;QACzB,cAAc,CAAC,MAAM,CAAC;QACtB,cAAc,CAAC,MAAM,CAAC;QACtB,aAAa,CAAC,MAAM,CAAC;QACrB,mBAAmB,CAAC,MAAM,CAAC;QAC3B,uBAAuB,CAAC,MAAM,CAAC;QAC/B,kBAAkB,CAAC,MAAM,CAAC;QAC1B,aAAa,CAAC,MAAM,CAAC;KACtB,CAAC;AACJ,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const prerender: (html: string, dir: string) => Promise<any>;
@@ -0,0 +1,57 @@
1
+ // Pre-render the app into static HTML.
2
+ // run `npm run generate` and then `dist/static` can be served as a static site.
3
+ import fs from "node:fs/promises";
4
+ import path from "node:path";
5
+ class MyFileWritingResponse {
6
+ fileName;
7
+ buffer = "";
8
+ dontSave = false;
9
+ resolver = () => { };
10
+ set = () => { };
11
+ constructor(fileName) {
12
+ this.fileName = fileName;
13
+ this.fileName = fileName;
14
+ }
15
+ status() { }
16
+ redirect() {
17
+ this.buffer = "redirected";
18
+ this.dontSave = true;
19
+ this.resolver();
20
+ }
21
+ send = async (chunk) => {
22
+ this.write(chunk);
23
+ await this.end();
24
+ };
25
+ write(chunk) {
26
+ this.buffer += chunk;
27
+ }
28
+ async end(chunk = "") {
29
+ if (!this.dontSave) {
30
+ await fs.mkdir(path.dirname(this.fileName), { recursive: true });
31
+ await fs.writeFile(this.fileName, this.buffer + chunk);
32
+ }
33
+ this.resolver();
34
+ }
35
+ }
36
+ export const prerender = async (html, dir) => {
37
+ const { render } = await import(path.join(dir, "dist/server/entry.server.js"));
38
+ const { paths } = await import(path.join(dir, "dist/server/zudoku-manifest.js"));
39
+ for (const urlPath of paths) {
40
+ const req = new Request(`http://localhost${urlPath}`);
41
+ const response = new MyFileWritingResponse(path.join(dir, "dist/", `${urlPath}.html`));
42
+ const responsePromise = new Promise((res) => {
43
+ response.resolver = res;
44
+ });
45
+ const exit = await render({
46
+ template: html,
47
+ fetchRequest: req,
48
+ response,
49
+ });
50
+ if (exit === false) {
51
+ continue;
52
+ }
53
+ await responsePromise;
54
+ }
55
+ return paths;
56
+ };
57
+ //# sourceMappingURL=prerender.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prerender.js","sourceRoot":"","sources":["../../src/vite/prerender.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,gFAAgF;AAEhF,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,qBAAqB;IAOI;IANrB,MAAM,GAAG,EAAE,CAAC;IACZ,QAAQ,GAAG,KAAK,CAAC;IAEzB,QAAQ,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;IACpB,GAAG,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;IAEf,YAA6B,QAAgB;QAAhB,aAAQ,GAAR,QAAQ,CAAQ;QAC3C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,MAAM,KAAI,CAAC;IAEX,QAAQ;QACN,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,IAAI,GAAG,KAAK,EAAE,KAAa,EAAE,EAAE;QAC7B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAClB,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;IACnB,CAAC,CAAC;IAEF,KAAK,CAAC,KAAa;QACjB,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,QAAgB,EAAE;QAC1B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACjE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;CACF;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAAE,IAAY,EAAE,GAAW,EAAE,EAAE;IAC3D,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAC7B,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,6BAA6B,CAAC,CAC9C,CAAC;IACF,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAC5B,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,gCAAgC,CAAC,CACjD,CAAC;IACF,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,mBAAmB,OAAO,EAAE,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,IAAI,qBAAqB,CACxC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,OAAO,OAAO,CAAC,CAC3C,CAAC;QACF,MAAM,eAAe,GAAG,IAAI,OAAO,CAAO,CAAC,GAAG,EAAE,EAAE;YAChD,QAAQ,CAAC,QAAQ,GAAG,GAAG,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC;YACxB,QAAQ,EAAE,IAAI;YACd,YAAY,EAAE,GAAG;YACjB,QAAQ;SACT,CAAC,CAAC;QACH,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACnB,SAAS;QACX,CAAC;QACD,MAAM,eAAe,CAAC;IACxB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}