zudoku 0.1.1-dev.1 → 0.1.1-dev.11

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 (163) hide show
  1. package/cli.js +2 -0
  2. package/dist/app/App.js +20 -0
  3. package/dist/app/App.js.map +1 -0
  4. package/dist/app/DevPortal.d.ts +0 -1
  5. package/dist/app/authentication/openid.js +2 -2
  6. package/dist/app/authentication/openid.js.map +1 -1
  7. package/dist/app/components/Dialog.d.ts +19 -0
  8. package/dist/app/components/Dialog.js +23 -0
  9. package/dist/app/components/Dialog.js.map +1 -0
  10. package/dist/app/components/Header.d.ts +0 -1
  11. package/dist/app/components/Input.d.ts +5 -0
  12. package/dist/app/components/Input.js +9 -0
  13. package/dist/app/components/Input.js.map +1 -0
  14. package/dist/app/components/SyntaxHighlight.js +2 -0
  15. package/dist/app/components/SyntaxHighlight.js.map +1 -1
  16. package/dist/app/components/context/DevPortalProvider.d.ts +0 -1
  17. package/dist/app/components/navigation/SideNavigationWrapper.d.ts +1 -2
  18. package/dist/app/components/navigation/useNavigationCollapsibleState.d.ts +0 -1
  19. package/dist/app/main.js +3 -15
  20. package/dist/app/main.js.map +1 -1
  21. package/dist/app/plugins/markdown/index.d.ts +0 -1
  22. package/dist/app/plugins/openapi/ColorizedParam.d.ts +5 -1
  23. package/dist/app/plugins/openapi/ColorizedParam.js +10 -5
  24. package/dist/app/plugins/openapi/ColorizedParam.js.map +1 -1
  25. package/dist/app/plugins/openapi/MakeRequest.js +18 -6
  26. package/dist/app/plugins/openapi/MakeRequest.js.map +1 -1
  27. package/dist/app/plugins/openapi/OperationList.d.ts +2 -45
  28. package/dist/app/plugins/openapi/OperationList.js +16 -16
  29. package/dist/app/plugins/openapi/OperationList.js.map +1 -1
  30. package/dist/app/plugins/openapi/OperationListItem.d.ts +2 -2
  31. package/dist/app/plugins/openapi/OperationListItem.js +2 -2
  32. package/dist/app/plugins/openapi/OperationListItem.js.map +1 -1
  33. package/dist/app/plugins/openapi/RequestBodySidecarBox.js +8 -8
  34. package/dist/app/plugins/openapi/RequestBodySidecarBox.js.map +1 -1
  35. package/dist/app/plugins/openapi/ResponsesSidecarBox.js +1 -1
  36. package/dist/app/plugins/openapi/ResponsesSidecarBox.js.map +1 -1
  37. package/dist/app/plugins/openapi/Sidecar.js +73 -18
  38. package/dist/app/plugins/openapi/Sidecar.js.map +1 -1
  39. package/dist/app/plugins/openapi/SidecarBox.d.ts +3 -5
  40. package/dist/app/plugins/openapi/SidecarBox.js +3 -5
  41. package/dist/app/plugins/openapi/SidecarBox.js.map +1 -1
  42. package/dist/app/plugins/openapi/graphql/fragment-masking.d.ts +19 -0
  43. package/dist/app/plugins/openapi/graphql/fragment-masking.js +16 -0
  44. package/dist/app/plugins/openapi/graphql/fragment-masking.js.map +1 -0
  45. package/dist/app/plugins/openapi/graphql/gql.d.ts +58 -0
  46. package/dist/app/plugins/openapi/graphql/gql.js +22 -0
  47. package/dist/app/plugins/openapi/graphql/gql.js.map +1 -0
  48. package/dist/app/plugins/openapi/graphql/graphql.d.ts +282 -0
  49. package/dist/app/plugins/openapi/graphql/graphql.js +526 -0
  50. package/dist/app/plugins/openapi/graphql/graphql.js.map +1 -0
  51. package/dist/app/plugins/openapi/graphql/index.d.ts +2 -836
  52. package/dist/app/plugins/openapi/graphql/index.js +2 -3
  53. package/dist/app/plugins/openapi/graphql/index.js.map +1 -1
  54. package/dist/app/plugins/openapi/index.d.ts +0 -1
  55. package/dist/app/plugins/openapi/playground/Playground.d.ts +8 -0
  56. package/dist/app/plugins/openapi/playground/Playground.js +98 -0
  57. package/dist/app/plugins/openapi/playground/Playground.js.map +1 -0
  58. package/dist/app/plugins/openapi/util/urql.d.ts +0 -1
  59. package/dist/app/ui/Button.d.ts +11 -0
  60. package/dist/app/ui/Button.js +34 -0
  61. package/dist/app/ui/Button.js.map +1 -0
  62. package/dist/app/ui/Card.js +1 -1
  63. package/dist/app/ui/Card.js.map +1 -1
  64. package/dist/app/ui/Tabs.d.ts +7 -0
  65. package/dist/app/ui/Tabs.js +13 -0
  66. package/dist/app/ui/Tabs.js.map +1 -0
  67. package/dist/app/util/MdxComponents.d.ts +2 -2
  68. package/dist/app/util/createVariantComponent.d.ts +15 -0
  69. package/dist/app/util/createVariantComponent.js +12 -0
  70. package/dist/app/util/createVariantComponent.js.map +1 -0
  71. package/dist/app/util/createWaitForNotify.d.ts +1 -1
  72. package/dist/app/util/slugify.d.ts +0 -1
  73. package/dist/cli/cmds/dev.js +0 -1
  74. package/dist/cli/cmds/dev.js.map +1 -1
  75. package/dist/cli/common/logger.d.ts +1 -2
  76. package/dist/cli/common/logger.js +2 -4
  77. package/dist/cli/common/logger.js.map +1 -1
  78. package/dist/cli/dev/handler.d.ts +1 -1
  79. package/dist/cli/dev/handler.js +11 -2
  80. package/dist/cli/dev/handler.js.map +1 -1
  81. package/dist/config/config.d.ts +11 -5
  82. package/dist/ts.d.ts +6 -0
  83. package/dist/ts.js +62 -0
  84. package/dist/ts.js.map +1 -0
  85. package/dist/vite/config.d.ts +1 -0
  86. package/dist/vite/config.js +80 -16
  87. package/dist/vite/config.js.map +1 -1
  88. package/dist/vite/config.test.d.ts +1 -0
  89. package/dist/vite/config.test.js +10 -0
  90. package/dist/vite/config.test.js.map +1 -0
  91. package/dist/vite/dev-server.js +3 -2
  92. package/dist/vite/dev-server.js.map +1 -1
  93. package/dist/vite/html.d.ts +1 -1
  94. package/dist/vite/html.js +2 -3
  95. package/dist/vite/html.js.map +1 -1
  96. package/dist/vite/plugin-api.d.ts +4 -0
  97. package/dist/vite/plugin-api.js +47 -0
  98. package/dist/vite/plugin-api.js.map +1 -0
  99. package/dist/vite/plugin-auth.d.ts +4 -0
  100. package/dist/vite/plugin-auth.js +29 -0
  101. package/dist/vite/plugin-auth.js.map +1 -0
  102. package/dist/vite/plugin-config.d.ts +6 -0
  103. package/dist/vite/plugin-config.js +24 -0
  104. package/dist/vite/plugin-config.js.map +1 -0
  105. package/dist/vite/plugin-docs.d.ts +4 -0
  106. package/dist/vite/plugin-docs.js +43 -0
  107. package/dist/vite/plugin-docs.js.map +1 -0
  108. package/dist/vite/plugin-docs.test.d.ts +1 -0
  109. package/dist/vite/plugin-docs.test.js +31 -0
  110. package/dist/vite/plugin-docs.test.js.map +1 -0
  111. package/dist/vite/plugin-html.d.ts +3 -0
  112. package/dist/vite/plugin-html.js +50 -0
  113. package/dist/vite/plugin-html.js.map +1 -0
  114. package/dist/vite/plugin-mdx.d.ts +8 -0
  115. package/dist/vite/plugin-mdx.js +61 -0
  116. package/dist/vite/plugin-mdx.js.map +1 -0
  117. package/dist/vite/plugin-metadata.d.ts +6 -0
  118. package/dist/vite/plugin-metadata.js +24 -0
  119. package/dist/vite/plugin-metadata.js.map +1 -0
  120. package/dist/vite/plugin.d.ts +2 -6
  121. package/dist/vite/plugin.js +14 -104
  122. package/dist/vite/plugin.js.map +1 -1
  123. package/package.json +32 -22
  124. package/src/app/App.tsx +30 -0
  125. package/src/app/components/Dialog.tsx +119 -0
  126. package/src/app/components/Input.tsx +24 -0
  127. package/src/app/components/SyntaxHighlight.tsx +2 -0
  128. package/src/app/main.tsx +3 -16
  129. package/src/app/plugins/openapi/ColorizedParam.tsx +18 -9
  130. package/src/app/plugins/openapi/MakeRequest.tsx +19 -0
  131. package/src/app/plugins/openapi/OperationList.tsx +20 -22
  132. package/src/app/plugins/openapi/OperationListItem.tsx +3 -3
  133. package/src/app/plugins/openapi/RequestBodySidecarBox.tsx +31 -28
  134. package/src/app/plugins/openapi/ResponsesSidecarBox.tsx +1 -1
  135. package/src/app/plugins/openapi/Sidecar.tsx +81 -20
  136. package/src/app/plugins/openapi/SidecarBox.tsx +30 -29
  137. package/src/app/plugins/openapi/graphql/fragment-masking.ts +111 -0
  138. package/src/app/plugins/openapi/graphql/gql.ts +70 -0
  139. package/src/app/plugins/openapi/graphql/graphql.ts +795 -0
  140. package/src/app/plugins/openapi/graphql/index.ts +2 -13
  141. package/src/app/plugins/openapi/playground/Playground.tsx +309 -0
  142. package/src/app/plugins/openapi/queries.graphql +6 -0
  143. package/src/app/ui/Button.tsx +56 -0
  144. package/src/app/ui/Card.tsx +1 -1
  145. package/src/app/ui/Tabs.tsx +52 -0
  146. package/src/app/util/createVariantComponent.tsx +30 -0
  147. package/dist/app/app.js +0 -69
  148. package/dist/app/app.js.map +0 -1
  149. package/dist/app/config.d.ts +0 -3
  150. package/dist/app/config.js +0 -9
  151. package/dist/app/config.js.map +0 -1
  152. package/dist/app/markdowns.d.ts +0 -3
  153. package/dist/app/markdowns.js +0 -5
  154. package/dist/app/markdowns.js.map +0 -1
  155. package/dist/app/plugins/openapi/util/getCode.d.ts +0 -2
  156. package/dist/app/plugins/openapi/util/getCode.js +0 -54
  157. package/dist/app/plugins/openapi/util/getCode.js.map +0 -1
  158. package/src/app/app.tsx +0 -85
  159. package/src/app/config.ts +0 -20
  160. package/src/app/markdowns.ts +0 -7
  161. package/src/app/plugins/openapi/graphql/env.d.ts +0 -48
  162. package/src/app/plugins/openapi/util/getCode.tsx +0 -69
  163. /package/dist/app/{app.d.ts → App.d.ts} +0 -0
@@ -1,25 +1,33 @@
1
1
  import autoprefixer from "autoprefixer";
2
+ import esbuild from "esbuild";
3
+ import { stat } from "node:fs/promises";
2
4
  import path from "node:path";
3
5
  import tailwindcss from "tailwindcss";
4
6
  import tailwindConfig from "../app/tailwind.js";
5
- import { devPortalPlugin } from "./plugin.js";
7
+ import { logger } from "../cli/common/logger.js";
8
+ import { isPortAvailable } from "../cli/common/utils/ports.js";
9
+ import vitePlugin from "./plugin.js";
10
+ const extensions = ["js", "jsx", "ts", "tsx", "mjs"];
11
+ const fileExists = (path) => stat(path)
12
+ .then(() => true)
13
+ .catch(() => false);
6
14
  export async function loadZuploConfig(rootDir) {
7
- const configPaths = [
8
- path.resolve(rootDir, "zudoku.config.ts"),
9
- path.resolve(rootDir, "zudoku.config.tsx"),
10
- path.resolve(rootDir, "zudoku.config.js"),
11
- path.resolve(rootDir, "zudoku.config.jsx"),
12
- path.resolve(rootDir, "zudoku.config.mjs"),
13
- ];
14
- for (const configPath of configPaths) {
15
+ for (const ext of extensions) {
16
+ const fileName = `zudoku.config.${ext}`;
17
+ const configPath = path.join(rootDir, fileName);
15
18
  try {
16
- const config = await import(configPath);
17
- return config.default;
19
+ if (await fileExists(configPath)) {
20
+ logger.info(`Loading zudoku.config file: ${configPath}`);
21
+ const config = await loadConfig(rootDir, fileName);
22
+ return config.default;
23
+ }
18
24
  }
19
25
  catch (e) {
20
- // Ignore
26
+ logger.error(e);
21
27
  }
22
28
  }
29
+ // Default config
30
+ logger.warn("No zudoku.config file found");
23
31
  return {};
24
32
  }
25
33
  export function getAppDir() {
@@ -32,17 +40,27 @@ export function getAppMainTsxPath() {
32
40
  return path.join(appDir, "main.tsx");
33
41
  }
34
42
  export async function getViteConfig(dir) {
35
- const appDir = getAppDir();
36
43
  const rootDir = path.resolve(process.cwd(), dir);
37
- const zudokuConfig = await loadZuploConfig(rootDir);
44
+ const appDir = getAppDir();
45
+ const config = await loadZuploConfig(rootDir);
46
+ let websocketPort = 9800;
47
+ while (!(await isPortAvailable("localhost", websocketPort)) &&
48
+ websocketPort < 9999) {
49
+ websocketPort++;
50
+ }
38
51
  const viteConfig = {
39
52
  root: rootDir,
40
53
  configFile: false,
41
54
  clearScreen: false,
55
+ logLevel: (process.env.LOG_LEVEL || "info"),
56
+ customLogger: logger,
57
+ envPrefix: "PUBLIC_",
42
58
  server: {
43
59
  middlewareMode: true,
44
60
  open: true,
45
- hmr: true,
61
+ hmr: {
62
+ port: websocketPort,
63
+ },
46
64
  watch: {
47
65
  ignored: [
48
66
  `${rootDir}/dist`,
@@ -51,9 +69,31 @@ export async function getViteConfig(dir) {
51
69
  `${rootDir}/zuplo.config.ts`,
52
70
  ],
53
71
  },
72
+ sourcemapIgnoreList: (sourcePath) => {
73
+ return (sourcePath.includes("node_modules/openapi-types/") ||
74
+ sourcePath.includes("node_modules/value-or-promise/"));
75
+ },
76
+ },
77
+ build: {
78
+ outDir: path.resolve(rootDir, "out"),
79
+ },
80
+ optimizeDeps: {
81
+ include: [
82
+ "hast-util-to-jsx-runtime > style-to-object",
83
+ "debug",
84
+ "extend",
85
+ "stringify-object",
86
+ "url",
87
+ "@zudoku/httpsnippet > qs",
88
+ "react-fast-compare",
89
+ "invariant",
90
+ "shallowequal",
91
+ "slugify",
92
+ "zustand",
93
+ ],
54
94
  },
55
95
  appType: "custom",
56
- plugins: [devPortalPlugin(zudokuConfig.build)],
96
+ plugins: [vitePlugin({ ...config, rootDir, appDir })],
57
97
  css: {
58
98
  postcss: {
59
99
  plugins: [
@@ -71,4 +111,28 @@ export async function getViteConfig(dir) {
71
111
  };
72
112
  return viteConfig;
73
113
  }
114
+ export async function loadConfig(rootPath, fileName) {
115
+ const compiledFilepath = path.join(rootPath, "node_modules", ".zudoku", "zudoku.config.mjs");
116
+ const filepath = path.join(rootPath, fileName);
117
+ try {
118
+ await esbuild.build({
119
+ entryPoints: [filepath],
120
+ bundle: true,
121
+ keepNames: true,
122
+ treeShaking: true,
123
+ minifyIdentifiers: false,
124
+ minifySyntax: false,
125
+ minifyWhitespace: false,
126
+ platform: "node",
127
+ target: "es2022",
128
+ format: "esm",
129
+ outfile: compiledFilepath,
130
+ });
131
+ }
132
+ catch (error) {
133
+ error.message = `TypeScript Error in ${filepath}:\n${error.message}`;
134
+ throw error;
135
+ }
136
+ return await import(compiledFilepath);
137
+ }
74
138
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/vite/config.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,cAAc,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,WAAW,MAAM,aAAa,CAAC;AAEtC,OAAO,cAAc,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAe;IACnD,MAAM,WAAW,GAAG;QAClB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,kBAAkB,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,mBAAmB,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,kBAAkB,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,mBAAmB,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,mBAAmB,CAAC;KAC3C,CAAC;IAEF,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;YACxC,OAAO,MAAM,CAAC,OAAO,CAAC;QACxB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,SAAS;QACX,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,oEAAoE;IACpE,6DAA6D;IAC7D,OAAO,IAAI,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAW;IAC7C,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;IAEjD,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;IAEpD,MAAM,UAAU,GAAiB;QAC/B,IAAI,EAAE,OAAO;QACb,UAAU,EAAE,KAAK;QACjB,WAAW,EAAE,KAAK;QAClB,MAAM,EAAE;YACN,cAAc,EAAE,IAAI;YACpB,IAAI,EAAE,IAAI;YACV,GAAG,EAAE,IAAI;YACT,KAAK,EAAE;gBACL,OAAO,EAAE;oBACP,GAAG,OAAO,OAAO;oBACjB,GAAG,OAAO,OAAO;oBACjB,GAAG,OAAO,eAAe;oBACzB,GAAG,OAAO,kBAAkB;iBAC7B;aACF;SACF;QACD,OAAO,EAAE,QAAQ;QACjB,OAAO,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC9C,GAAG,EAAE;YACH,OAAO,EAAE;gBACP,OAAO,EAAE;oBACP,WAAW,CAAC;wBACV,GAAG,cAAc;wBACjB,OAAO,EAAE;4BACP,GAAG,MAAM,8BAA8B;4BACvC,GAAG,OAAO,kCAAkC;yBAC7C;qBACF,CAAC;oBACF,YAAY;iBACb;aACF;SACF;KACF,CAAC;IAEF,OAAO,UAAU,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/vite/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,10 @@
1
+ import assert from "node:assert";
2
+ import path from "node:path";
3
+ import test from "node:test";
4
+ import { loadConfig } from "./config.js";
5
+ test("Should correctly load zudoku.config.ts file", async (t) => {
6
+ const rootPath = path.resolve("../../samples/with-config/");
7
+ const config = await loadConfig(rootPath, "zudoku.config.ts");
8
+ assert.equal(config.default.ui.headerTitle, "My Portal");
9
+ });
10
+ //# sourceMappingURL=config.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../src/vite/config.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,IAAI,CAAC,6CAA6C,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;IAC9D,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAC3D,CAAC,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import express from "express";
2
2
  import { createServer as createViteServer } from "vite";
3
3
  import { createGraphQLServer } from "../app/oas/graphql/index.js";
4
- import { getViteConfig } from "./config.js";
4
+ import { getAppMainTsxPath, getViteConfig } from "./config.js";
5
5
  import { getDevHtml } from "./html.js";
6
6
  export class DevServer {
7
7
  options;
@@ -20,7 +20,8 @@ export class DevServer {
20
20
  app.use(vite.middlewares);
21
21
  app.use("*", async (req, res) => {
22
22
  try {
23
- const rawHtml = getDevHtml();
23
+ const jsEntry = getAppMainTsxPath();
24
+ const rawHtml = getDevHtml(jsEntry);
24
25
  const indexHtml = await vite.transformIndexHtml(req.url, rawHtml);
25
26
  // Send the transformed index.html back to the client
26
27
  res.status(200).set({ "Content-Type": "text/html" }).end(indexHtml);
@@ -1 +1 @@
1
- {"version":3,"file":"dev-server.js","sourceRoot":"","sources":["../../src/vite/dev-server.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,MAAM,CAAC;AAExD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,MAAM,OAAO,SAAS;IAGA;IAFZ,MAAM,CAAqB;IAEnC,YAAoB,OAAsC;QAAtC,YAAO,GAAP,OAAO,CAA+B;IAAG,CAAC;IAE9D,KAAK,CAAC,KAAK;QACT,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;QAEtB,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEzD,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAEhD,MAAM,OAAO,GAAG,mBAAmB,CAAC;YAClC,eAAe,EAAE,cAAc;SAChC,CAAC,CAAC;QAEH,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QAC1C,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAE1B,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YAC9B,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;gBAC7B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBAElE,qDAAqD;gBACrD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACtE,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBACzB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACjB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YACjC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACnC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC3C,IAAI,CAAC,MAAO,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;oBACzB,IAAI,GAAG,EAAE,CAAC;wBACR,MAAM,CAAC,GAAG,CAAC,CAAC;oBACd,CAAC;yBAAM,CAAC;wBACN,OAAO,EAAE,CAAC;oBACZ,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"dev-server.js","sourceRoot":"","sources":["../../src/vite/dev-server.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,MAAM,CAAC;AAExD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,MAAM,OAAO,SAAS;IAGA;IAFZ,MAAM,CAAqB;IAEnC,YAAoB,OAAsC;QAAtC,YAAO,GAAP,OAAO,CAA+B;IAAG,CAAC;IAE9D,KAAK,CAAC,KAAK;QACT,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;QAEtB,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEzD,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAEhD,MAAM,OAAO,GAAG,mBAAmB,CAAC;YAClC,eAAe,EAAE,cAAc;SAChC,CAAC,CAAC;QAEH,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QAC1C,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAE1B,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YAC9B,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;gBACpC,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;gBACpC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBAElE,qDAAqD;gBACrD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACtE,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBACzB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACjB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YACjC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACnC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC3C,IAAI,CAAC,MAAO,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;oBACzB,IAAI,GAAG,EAAE,CAAC;wBACR,MAAM,CAAC,GAAG,CAAC,CAAC;oBACd,CAAC;yBAAM,CAAC;wBACN,OAAO,EAAE,CAAC;oBACZ,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- export declare function getDevHtml(): string;
1
+ export declare function getDevHtml(jsEntry: string): string;
2
2
  export declare function getBuildHtml({ jsEntry, cssEntry, }: {
3
3
  jsEntry: string;
4
4
  cssEntry: string;
package/dist/vite/html.js CHANGED
@@ -1,5 +1,4 @@
1
- import { getAppMainTsxPath } from "./config.js";
2
- export function getDevHtml() {
1
+ export function getDevHtml(jsEntry) {
3
2
  return `<!doctype html>
4
3
  <html lang="en" class="dark">
5
4
  <head>
@@ -8,7 +7,7 @@ export function getDevHtml() {
8
7
  </head>
9
8
  <body>
10
9
  <div id="root"></div>
11
- <script type="module" src="${getAppMainTsxPath()}"></script>
10
+ <script type="module" src="${jsEntry}"></script>
12
11
  </body>
13
12
  </html>
14
13
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/vite/html.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,UAAU,UAAU;IACxB,OAAO;;;;;;;;iCAQwB,iBAAiB,EAAE;;;CAGnD,CAAC;AACF,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAC3B,OAAO,EACP,QAAQ,GAIT;IACC,OAAO;;;;;;;6CAOoC,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;;;;;;;;iCAQwB,OAAO;;;CAGvC,CAAC;AACF,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAC3B,OAAO,EACP,QAAQ,GAIT;IACC,OAAO;;;;;;;6CAOoC,OAAO;+CACL,QAAQ;;;;;QAK/C,CAAC;AACT,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Plugin } from "vite";
2
+ import { ZudokuPluginOptions } from "../config/config.js";
3
+ declare const viteApiPlugin: (config: ZudokuPluginOptions) => Plugin;
4
+ export default viteApiPlugin;
@@ -0,0 +1,47 @@
1
+ import { getConfigExportCode } from "./plugin-config.js";
2
+ const viteApiPlugin = (config) => {
3
+ const virtualModuleId = "virtual:zudoku-api-plugins";
4
+ const resolvedVirtualModuleId = "\0" + virtualModuleId;
5
+ return {
6
+ name: "vite-zudoku-api-plugins",
7
+ resolveId(id) {
8
+ if (id === virtualModuleId) {
9
+ return resolvedVirtualModuleId;
10
+ }
11
+ },
12
+ load(id) {
13
+ if (id === resolvedVirtualModuleId) {
14
+ const code = [
15
+ // IMPORTANT! This path here is important, we MUST resolve
16
+ // files here as Typescript from the appDir
17
+ getConfigExportCode(config.rootDir),
18
+ `import { openApiPlugin } from "${config.appDir}/plugins/openapi/index.tsx";`,
19
+ `const configuredApiPlugins = [];`,
20
+ ];
21
+ if (config?.apis) {
22
+ if (Array.isArray(config.apis)) {
23
+ config.apis.forEach((c, i) => {
24
+ code.push(...[
25
+ `// @ts-ignore`, // To make tests pass
26
+ `configuredApiPlugins.push(openApiPlugin(config.apis?[${i}]));`,
27
+ ]);
28
+ });
29
+ }
30
+ else {
31
+ code.push(...[
32
+ `// @ts-ignore`, // To make tests pass
33
+ `configuredApiPlugins.push(openApiPlugin(config.apis));`,
34
+ ]);
35
+ }
36
+ }
37
+ code.push(`export { configuredApiPlugins };`);
38
+ return {
39
+ code: code.join("\n"),
40
+ map: null,
41
+ };
42
+ }
43
+ },
44
+ };
45
+ };
46
+ export default viteApiPlugin;
47
+ //# sourceMappingURL=plugin-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-api.js","sourceRoot":"","sources":["../../src/vite/plugin-api.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,aAAa,GAAG,CAAC,MAA2B,EAAU,EAAE;IAC5D,MAAM,eAAe,GAAG,4BAA4B,CAAC;IACrD,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,MAAM,IAAI,GAAa;oBACrB,0DAA0D;oBAC1D,2CAA2C;oBAC3C,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC;oBACnC,kCAAkC,MAAM,CAAC,MAAM,8BAA8B;oBAC7E,kCAAkC;iBACnC,CAAC;gBAEF,IAAI,MAAM,EAAE,IAAI,EAAE,CAAC;oBACjB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC/B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;4BAC3B,IAAI,CAAC,IAAI,CACP,GAAG;gCACD,eAAe,EAAE,qBAAqB;gCACtC,wDAAwD,CAAC,MAAM;6BAChE,CACF,CAAC;wBACJ,CAAC,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,IAAI,CACP,GAAG;4BACD,eAAe,EAAE,qBAAqB;4BACtC,wDAAwD;yBACzD,CACF,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAED,IAAI,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;gBAE9C,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,aAAa,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { PluginOption } from "vite";
2
+ import { ZudokuPluginOptions } from "../config/config.js";
3
+ declare const viteAuthPlugin: (config: ZudokuPluginOptions) => PluginOption;
4
+ export default viteAuthPlugin;
@@ -0,0 +1,29 @@
1
+ import path from "node:path";
2
+ import { getConfigExportCode } from "./plugin-config.js";
3
+ const viteAuthPlugin = (config) => {
4
+ const virtualModuleId = "virtual:zudoku-auth";
5
+ const resolvedVirtualModuleId = "\0" + virtualModuleId;
6
+ return {
7
+ name: "zudoku-auth-plugin", // required, will show up in warnings and errors
8
+ resolveId(id) {
9
+ if (id === virtualModuleId) {
10
+ return resolvedVirtualModuleId;
11
+ }
12
+ },
13
+ load(id) {
14
+ if (id === resolvedVirtualModuleId) {
15
+ if (!config.authentication) {
16
+ return `export const configuredAuthProvider = undefined;`;
17
+ }
18
+ // TODO: Validate that the authConfig.type is a valid authentication provider
19
+ return [
20
+ getConfigExportCode(config.rootDir),
21
+ `import authProvider from "${path.join(config.appDir, "authentication", `${config.authentication.type}.ts`)}";`,
22
+ `export const configuredAuthProvider = authProvider(config.authentication);`,
23
+ ].join("\n");
24
+ }
25
+ },
26
+ };
27
+ };
28
+ export default viteAuthPlugin;
29
+ //# sourceMappingURL=plugin-auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-auth.js","sourceRoot":"","sources":["../../src/vite/plugin-auth.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,cAAc,GAAG,CAAC,MAA2B,EAAgB,EAAE;IACnE,MAAM,eAAe,GAAG,qBAAqB,CAAC;IAC9C,MAAM,uBAAuB,GAAG,IAAI,GAAG,eAAe,CAAC;IAEvD,OAAO;QACL,IAAI,EAAE,oBAAoB,EAAE,gDAAgD;QAC5E,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,cAAc,EAAE,CAAC;oBAC3B,OAAO,kDAAkD,CAAC;gBAC5D,CAAC;gBACD,6EAA6E;gBAC7E,OAAO;oBACL,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC;oBACnC,6BAA6B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,IAAI;oBAC/G,4EAA4E;iBAC7E,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACf,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { PluginOption } from "vite";
2
+ export declare function getConfigExportCode(rootDir: string): string;
3
+ declare const viteConfigPlugin: ({ rootDir }: {
4
+ rootDir: string;
5
+ }) => PluginOption;
6
+ export default viteConfigPlugin;
@@ -0,0 +1,24 @@
1
+ import path from "path";
2
+ export function getConfigExportCode(rootDir) {
3
+ const configPath = path.join(rootDir, `/node_modules/.zudoku/zudoku.config.mjs`);
4
+ return `import config from "${configPath}"; export default config;`;
5
+ }
6
+ const viteConfigPlugin = ({ rootDir }) => {
7
+ const virtualModuleId = "virtual:zudoku-config";
8
+ const resolvedVirtualModuleId = "\0" + virtualModuleId;
9
+ return {
10
+ name: "zudoku-config-plugin",
11
+ resolveId(id) {
12
+ if (id === virtualModuleId) {
13
+ return resolvedVirtualModuleId;
14
+ }
15
+ },
16
+ load(id) {
17
+ if (id === resolvedVirtualModuleId) {
18
+ return getConfigExportCode(rootDir);
19
+ }
20
+ },
21
+ };
22
+ };
23
+ export default viteConfigPlugin;
24
+ //# sourceMappingURL=plugin-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-config.js","sourceRoot":"","sources":["../../src/vite/plugin-config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAC1B,OAAO,EACP,yCAAyC,CAC1C,CAAC;IACF,OAAO,uBAAuB,UAAU,2BAA2B,CAAC;AACtE,CAAC;AAED,MAAM,gBAAgB,GAAG,CAAC,EAAE,OAAO,EAAuB,EAAgB,EAAE;IAC1E,MAAM,eAAe,GAAG,uBAAuB,CAAC;IAChD,MAAM,uBAAuB,GAAG,IAAI,GAAG,eAAe,CAAC;IAEvD,OAAO;QACL,IAAI,EAAE,sBAAsB;QAC5B,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,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Plugin } from "vite";
2
+ import { ZudokuPluginOptions } from "../config/config.js";
3
+ declare const viteDocsPlugin: (config: ZudokuPluginOptions) => Plugin;
4
+ export default viteDocsPlugin;
@@ -0,0 +1,43 @@
1
+ const viteDocsPlugin = (config) => {
2
+ const virtualModuleId = "virtual:zudoku-docs-plugins";
3
+ const resolvedVirtualModuleId = "\0" + virtualModuleId;
4
+ return {
5
+ name: "vite-zudoku-docs-plugin",
6
+ resolveId(id) {
7
+ if (id === virtualModuleId) {
8
+ return resolvedVirtualModuleId;
9
+ }
10
+ },
11
+ load(id) {
12
+ if (id === resolvedVirtualModuleId) {
13
+ const code = [
14
+ // IMPORTANT! This path here is important, we MUST resolve
15
+ // files here as Typescript from the appDir
16
+ `import { markdownPlugin } from "${config.appDir}/plugins/markdown/index.tsx";`,
17
+ `const configuredDocsPlugins = [];`,
18
+ ];
19
+ const docsConfigs = config?.docs
20
+ ? Array.isArray(config.docs)
21
+ ? config.docs
22
+ : [config.docs]
23
+ : [];
24
+ docsConfigs.forEach((docsConfig) => {
25
+ code.push(...[
26
+ `// @ts-ignore`, // To make tests pass
27
+ `const markdownFiles = import.meta.glob(${JSON.stringify(docsConfig.files)}, {`,
28
+ ` eager: false,`,
29
+ `});`,
30
+ `configuredDocsPlugins.push(markdownPlugin({ markdownFiles }));`,
31
+ ]);
32
+ });
33
+ code.push(`export { configuredDocsPlugins };`);
34
+ return {
35
+ code: code.join("\n"),
36
+ map: null,
37
+ };
38
+ }
39
+ },
40
+ };
41
+ };
42
+ export default viteDocsPlugin;
43
+ //# sourceMappingURL=plugin-docs.js.map
@@ -0,0 +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,MAAM,IAAI,GAAa;oBACrB,0DAA0D;oBAC1D,2CAA2C;oBAC3C,mCAAmC,MAAM,CAAC,MAAM,+BAA+B;oBAC/E,mCAAmC;iBACpC,CAAC;gBACF,MAAM,WAAW,GAAiB,MAAM,EAAE,IAAI;oBAC5C,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,EAAE,CAAC;gBAEP,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,gEAAgE;qBACjE,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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,31 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import assert from "node:assert";
3
+ import test from "node:test";
4
+ import { checkTypescriptString } from "../ts.js";
5
+ import viteDocsPlugin from "./plugin-docs.js";
6
+ test.only("Builds code", async (t) => {
7
+ const plugin = viteDocsPlugin({
8
+ docs: { files: "docs/**/*.md" },
9
+ appDir: "",
10
+ });
11
+ if (!plugin.load) {
12
+ throw new Error("Plugin does not have a load function");
13
+ }
14
+ if (typeof plugin.load !== "function") {
15
+ throw new Error("Plugin.load is not a function");
16
+ }
17
+ const result = await plugin.load.call(
18
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
19
+ {}, "\0virtual:markdown-plugins");
20
+ if (result && typeof result === "object" && "code" in result) {
21
+ const diagnostics = await checkTypescriptString(result.code);
22
+ if (diagnostics.length > 0) {
23
+ console.error(diagnostics);
24
+ }
25
+ assert.equal(diagnostics.length, 0);
26
+ }
27
+ else {
28
+ assert.fail("Invalid return value from plugin.load");
29
+ }
30
+ });
31
+ //# sourceMappingURL=plugin-docs.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-docs.test.js","sourceRoot":"","sources":["../../src/vite/plugin-docs.test.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAE9C,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACnC,MAAM,MAAM,GAAG,cAAc,CAAC;QAC5B,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE;QAC/B,MAAM,EAAE,EAAE;KACJ,CAAC,CAAC;IACV,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI;IACnC,8DAA8D;IAC9D,EAAS,EACT,4BAA4B,CAC7B,CAAC;IACF,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;QAC7D,MAAM,WAAW,GAAG,MAAM,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC7B,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACtC,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;IACvD,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Plugin } from "vite";
2
+ declare const viteHtmlPlugin: () => Plugin;
3
+ export default viteHtmlPlugin;
@@ -0,0 +1,50 @@
1
+ const themeScript = `
2
+ if (
3
+ localStorage.getItem("theme") === "dark" ||
4
+ (!("theme" in localStorage) &&
5
+ window.matchMedia("(prefers-color-scheme: dark)").matches)
6
+ ) {
7
+ document.documentElement.classList.add("dark");
8
+ } else {
9
+ document.documentElement.classList.remove("dark");
10
+ }
11
+ `.trim();
12
+ const viteHtmlPlugin = () => {
13
+ return {
14
+ name: "vite-zudoku-core-plugin",
15
+ config: () => ({
16
+ worker: { format: "es" },
17
+ }),
18
+ transformIndexHtml: (html) => {
19
+ return {
20
+ html,
21
+ tags: [
22
+ {
23
+ tag: "script",
24
+ attrs: { type: "module" },
25
+ children: themeScript,
26
+ injectTo: "head",
27
+ },
28
+ {
29
+ tag: "link",
30
+ attrs: {
31
+ rel: "preconnect",
32
+ href: "https://cdn.zuplo.com/",
33
+ },
34
+ injectTo: "head",
35
+ },
36
+ {
37
+ tag: "link",
38
+ attrs: {
39
+ rel: "stylesheet",
40
+ href: "https://cdn.zuplo.com/static/fonts/geist.css",
41
+ },
42
+ injectTo: "head",
43
+ },
44
+ ],
45
+ };
46
+ },
47
+ };
48
+ };
49
+ export default viteHtmlPlugin;
50
+ //# sourceMappingURL=plugin-html.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-html.js","sourceRoot":"","sources":["../../src/vite/plugin-html.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,GAAG;;;;;;;;;;CAUnB,CAAC,IAAI,EAAE,CAAC;AAET,MAAM,cAAc,GAAG,GAAW,EAAE;IAClC,OAAO;QACL,IAAI,EAAE,yBAAyB;QAC/B,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACb,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;SACzB,CAAC;QACF,kBAAkB,EAAE,CAAC,IAAI,EAAE,EAAE;YAC3B,OAAO;gBACL,IAAI;gBACJ,IAAI,EAAE;oBACJ;wBACE,GAAG,EAAE,QAAQ;wBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACzB,QAAQ,EAAE,WAAW;wBACrB,QAAQ,EAAE,MAAM;qBACjB;oBACD;wBACE,GAAG,EAAE,MAAM;wBACX,KAAK,EAAE;4BACL,GAAG,EAAE,YAAY;4BACjB,IAAI,EAAE,wBAAwB;yBAC/B;wBACD,QAAQ,EAAE,MAAM;qBACjB;oBACD;wBACE,GAAG,EAAE,MAAM;wBACX,KAAK,EAAE;4BACL,GAAG,EAAE,YAAY;4BACjB,IAAI,EAAE,8CAA8C;yBACrD;wBACD,QAAQ,EAAE,MAAM;qBACjB;iBACF;aACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { type Options } from "@mdx-js/rollup";
2
+ import { Plugin } from "vite";
3
+ export type DevPortalPluginOptions = {
4
+ remarkPlugins?: Options["remarkPlugins"];
5
+ rehypePlugins?: Options["rehypePlugins"];
6
+ };
7
+ declare const viteMdxPlugin: ({ remarkPlugins, rehypePlugins, }?: DevPortalPluginOptions) => Plugin;
8
+ export default viteMdxPlugin;
@@ -0,0 +1,61 @@
1
+ import rehypeMetaAsAttributes from "@lekoarts/rehype-meta-as-attributes";
2
+ import mdx from "@mdx-js/rollup";
3
+ import withToc from "@stefanprobst/rehype-extract-toc";
4
+ import withTocExport from "@stefanprobst/rehype-extract-toc/mdx";
5
+ import path from "node:path";
6
+ import rehypeSlug from "rehype-slug";
7
+ import remarkComment from "remark-comment";
8
+ import remarkDirective from "remark-directive";
9
+ import remarkDirectiveRehype from "remark-directive-rehype";
10
+ import remarkFrontmatter from "remark-frontmatter";
11
+ import remarkGfm from "remark-gfm";
12
+ import remarkMdxFrontmatter from "remark-mdx-frontmatter";
13
+ import { visit } from "unist-util-visit";
14
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
15
+ const rehypeCodeBlockPlugin = () => (tree) => {
16
+ visit(tree, "element", (node, index, parent) => {
17
+ if (node.tagName === "code") {
18
+ node.properties.inline = parent?.tagName !== "pre";
19
+ }
20
+ });
21
+ };
22
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
23
+ const remarkLinkRewritePlugin = () => (tree) => {
24
+ visit(tree, "link", (node) => {
25
+ if (!node.url)
26
+ return;
27
+ if (!node.url.startsWith("http") && !node.url.startsWith("/")) {
28
+ node.url = path.join("../", node.url);
29
+ }
30
+ node.url = node.url.replace(/\.mdx?(#.*?)?/, "$1");
31
+ });
32
+ };
33
+ const viteMdxPlugin = ({ remarkPlugins, rehypePlugins, } = {}) => {
34
+ return {
35
+ enforce: "pre",
36
+ ...mdx({
37
+ providerImportSource: "@mdx-js/react",
38
+ remarkPlugins: [
39
+ remarkComment,
40
+ remarkGfm,
41
+ remarkFrontmatter,
42
+ remarkMdxFrontmatter,
43
+ remarkDirective,
44
+ remarkDirectiveRehype,
45
+ remarkLinkRewritePlugin,
46
+ ...(remarkPlugins ?? []),
47
+ ],
48
+ rehypePlugins: [
49
+ rehypeSlug,
50
+ rehypeCodeBlockPlugin,
51
+ rehypeMetaAsAttributes,
52
+ withToc,
53
+ withTocExport,
54
+ ...(rehypePlugins ?? []),
55
+ ],
56
+ }),
57
+ name: "vite-zudoku-mdx-plugin",
58
+ };
59
+ };
60
+ export default viteMdxPlugin;
61
+ //# sourceMappingURL=plugin-mdx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-mdx.js","sourceRoot":"","sources":["../../src/vite/plugin-mdx.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,MAAM,qCAAqC,CAAC;AACzE,OAAO,GAAqB,MAAM,gBAAgB,CAAC;AACnD,OAAO,OAAO,MAAM,kCAAkC,CAAC;AACvD,OAAO,aAAa,MAAM,sCAAsC,CAAC;AACjE,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,aAAa,MAAM,gBAAgB,CAAC;AAC3C,OAAO,eAAe,MAAM,kBAAkB,CAAC;AAC/C,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,iBAAiB,MAAM,oBAAoB,CAAC;AACnD,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAGzC,8DAA8D;AAC9D,MAAM,qBAAqB,GAAG,GAAG,EAAE,CAAC,CAAC,IAAS,EAAE,EAAE;IAChD,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAC7C,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,EAAE,OAAO,KAAK,KAAK,CAAC;QACrD,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,8DAA8D;AAC9D,MAAM,uBAAuB,GAAG,GAAG,EAAE,CAAC,CAAC,IAAS,EAAE,EAAE;IAClD,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QAC3B,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,OAAO;QAEtB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9D,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAOF,MAAM,aAAa,GAAG,CAAC,EACrB,aAAa,EACb,aAAa,MACa,EAAE,EAAU,EAAE;IACxC,OAAO;QACL,OAAO,EAAE,KAAK;QACd,GAAG,GAAG,CAAC;YACL,oBAAoB,EAAE,eAAe;YACrC,aAAa,EAAE;gBACb,aAAa;gBACb,SAAS;gBACT,iBAAiB;gBACjB,oBAAoB;gBACpB,eAAe;gBACf,qBAAqB;gBACrB,uBAAuB;gBACvB,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC;aACzB;YACD,aAAa,EAAE;gBACb,UAAU;gBACV,qBAAqB;gBACrB,sBAAsB;gBACtB,OAAO;gBACP,aAAa;gBACb,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC;aACzB;SACF,CAAC;QACF,IAAI,EAAE,wBAAwB;KAC/B,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { Plugin } from "vite";
2
+ /**
3
+ * Used for debugging, writes metadata to build.
4
+ */
5
+ declare const viteBuildMetadata: () => Plugin;
6
+ export default viteBuildMetadata;
@@ -0,0 +1,24 @@
1
+ import { writeFileSync } from "node:fs";
2
+ import path from "node:path";
3
+ /**
4
+ * Used for debugging, writes metadata to build.
5
+ */
6
+ const viteBuildMetadata = () => {
7
+ return {
8
+ name: "vite-zudoku-build-metadata-plugin",
9
+ buildEnd() {
10
+ const deps = [];
11
+ for (const id of this.getModuleIds()) {
12
+ const m = this.getModuleInfo(id);
13
+ if (m != null && !m.isExternal) {
14
+ for (const target of m.importedIds) {
15
+ deps.push({ source: m.id, target });
16
+ }
17
+ }
18
+ }
19
+ writeFileSync(path.join(__dirname, "graph.json"), JSON.stringify(deps, null, 2));
20
+ },
21
+ };
22
+ };
23
+ export default viteBuildMetadata;
24
+ //# sourceMappingURL=plugin-metadata.js.map