zudoku 0.1.1-dev.1 → 0.1.1-dev.10
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.
- package/cli.js +2 -0
- package/dist/app/App.js +20 -0
- package/dist/app/App.js.map +1 -0
- package/dist/app/DevPortal.d.ts +0 -1
- package/dist/app/authentication/openid.js +2 -2
- package/dist/app/authentication/openid.js.map +1 -1
- package/dist/app/components/Dialog.d.ts +19 -0
- package/dist/app/components/Dialog.js +23 -0
- package/dist/app/components/Dialog.js.map +1 -0
- package/dist/app/components/Header.d.ts +0 -1
- package/dist/app/components/Input.d.ts +5 -0
- package/dist/app/components/Input.js +9 -0
- package/dist/app/components/Input.js.map +1 -0
- package/dist/app/components/SyntaxHighlight.js +2 -0
- package/dist/app/components/SyntaxHighlight.js.map +1 -1
- package/dist/app/components/context/DevPortalProvider.d.ts +0 -1
- package/dist/app/components/navigation/SideNavigationWrapper.d.ts +1 -2
- package/dist/app/components/navigation/useNavigationCollapsibleState.d.ts +0 -1
- package/dist/app/main.js +3 -15
- package/dist/app/main.js.map +1 -1
- package/dist/app/plugins/markdown/index.d.ts +0 -1
- package/dist/app/plugins/openapi/ColorizedParam.d.ts +5 -1
- package/dist/app/plugins/openapi/ColorizedParam.js +10 -5
- package/dist/app/plugins/openapi/ColorizedParam.js.map +1 -1
- package/dist/app/plugins/openapi/MakeRequest.js +18 -6
- package/dist/app/plugins/openapi/MakeRequest.js.map +1 -1
- package/dist/app/plugins/openapi/OperationList.d.ts +2 -45
- package/dist/app/plugins/openapi/OperationList.js +16 -16
- package/dist/app/plugins/openapi/OperationList.js.map +1 -1
- package/dist/app/plugins/openapi/OperationListItem.d.ts +2 -2
- package/dist/app/plugins/openapi/OperationListItem.js +2 -2
- package/dist/app/plugins/openapi/OperationListItem.js.map +1 -1
- package/dist/app/plugins/openapi/RequestBodySidecarBox.js +8 -8
- package/dist/app/plugins/openapi/RequestBodySidecarBox.js.map +1 -1
- package/dist/app/plugins/openapi/ResponsesSidecarBox.js +1 -1
- package/dist/app/plugins/openapi/ResponsesSidecarBox.js.map +1 -1
- package/dist/app/plugins/openapi/Sidecar.js +73 -18
- package/dist/app/plugins/openapi/Sidecar.js.map +1 -1
- package/dist/app/plugins/openapi/SidecarBox.d.ts +3 -5
- package/dist/app/plugins/openapi/SidecarBox.js +3 -5
- package/dist/app/plugins/openapi/SidecarBox.js.map +1 -1
- package/dist/app/plugins/openapi/graphql/fragment-masking.d.ts +19 -0
- package/dist/app/plugins/openapi/graphql/fragment-masking.js +16 -0
- package/dist/app/plugins/openapi/graphql/fragment-masking.js.map +1 -0
- package/dist/app/plugins/openapi/graphql/gql.d.ts +58 -0
- package/dist/app/plugins/openapi/graphql/gql.js +22 -0
- package/dist/app/plugins/openapi/graphql/gql.js.map +1 -0
- package/dist/app/plugins/openapi/graphql/graphql.d.ts +282 -0
- package/dist/app/plugins/openapi/graphql/graphql.js +526 -0
- package/dist/app/plugins/openapi/graphql/graphql.js.map +1 -0
- package/dist/app/plugins/openapi/graphql/index.d.ts +2 -836
- package/dist/app/plugins/openapi/graphql/index.js +2 -3
- package/dist/app/plugins/openapi/graphql/index.js.map +1 -1
- package/dist/app/plugins/openapi/index.d.ts +0 -1
- package/dist/app/plugins/openapi/playground/Playground.d.ts +8 -0
- package/dist/app/plugins/openapi/playground/Playground.js +98 -0
- package/dist/app/plugins/openapi/playground/Playground.js.map +1 -0
- package/dist/app/plugins/openapi/util/urql.d.ts +0 -1
- package/dist/app/ui/Button.d.ts +11 -0
- package/dist/app/ui/Button.js +34 -0
- package/dist/app/ui/Button.js.map +1 -0
- package/dist/app/ui/Card.js +1 -1
- package/dist/app/ui/Card.js.map +1 -1
- package/dist/app/ui/Tabs.d.ts +7 -0
- package/dist/app/ui/Tabs.js +13 -0
- package/dist/app/ui/Tabs.js.map +1 -0
- package/dist/app/util/MdxComponents.d.ts +2 -2
- package/dist/app/util/createVariantComponent.d.ts +15 -0
- package/dist/app/util/createVariantComponent.js +12 -0
- package/dist/app/util/createVariantComponent.js.map +1 -0
- package/dist/app/util/createWaitForNotify.d.ts +1 -1
- package/dist/app/util/slugify.d.ts +0 -1
- package/dist/cli/cmds/dev.js +0 -1
- package/dist/cli/cmds/dev.js.map +1 -1
- package/dist/cli/common/logger.d.ts +1 -2
- package/dist/cli/common/logger.js +2 -4
- package/dist/cli/common/logger.js.map +1 -1
- package/dist/cli/dev/handler.d.ts +1 -1
- package/dist/cli/dev/handler.js +11 -2
- package/dist/cli/dev/handler.js.map +1 -1
- package/dist/config/config.d.ts +11 -5
- package/dist/ts.d.ts +6 -0
- package/dist/ts.js +62 -0
- package/dist/ts.js.map +1 -0
- package/dist/vite/config.d.ts +1 -0
- package/dist/vite/config.js +80 -16
- package/dist/vite/config.js.map +1 -1
- package/dist/vite/config.test.d.ts +1 -0
- package/dist/vite/config.test.js +10 -0
- package/dist/vite/config.test.js.map +1 -0
- package/dist/vite/dev-server.js +3 -2
- package/dist/vite/dev-server.js.map +1 -1
- package/dist/vite/html.d.ts +1 -1
- package/dist/vite/html.js +2 -3
- package/dist/vite/html.js.map +1 -1
- package/dist/vite/plugin-api.d.ts +4 -0
- package/dist/vite/plugin-api.js +47 -0
- package/dist/vite/plugin-api.js.map +1 -0
- package/dist/vite/plugin-auth.d.ts +4 -0
- package/dist/vite/plugin-auth.js +29 -0
- package/dist/vite/plugin-auth.js.map +1 -0
- package/dist/vite/plugin-config.d.ts +6 -0
- package/dist/vite/plugin-config.js +24 -0
- package/dist/vite/plugin-config.js.map +1 -0
- package/dist/vite/plugin-docs.d.ts +4 -0
- package/dist/vite/plugin-docs.js +43 -0
- package/dist/vite/plugin-docs.js.map +1 -0
- package/dist/vite/plugin-docs.test.d.ts +1 -0
- package/dist/vite/plugin-docs.test.js +31 -0
- package/dist/vite/plugin-docs.test.js.map +1 -0
- package/dist/vite/plugin-html.d.ts +3 -0
- package/dist/vite/plugin-html.js +50 -0
- package/dist/vite/plugin-html.js.map +1 -0
- package/dist/vite/plugin-mdx.d.ts +8 -0
- package/dist/vite/plugin-mdx.js +61 -0
- package/dist/vite/plugin-mdx.js.map +1 -0
- package/dist/vite/plugin-metadata.d.ts +6 -0
- package/dist/vite/plugin-metadata.js +24 -0
- package/dist/vite/plugin-metadata.js.map +1 -0
- package/dist/vite/plugin.d.ts +2 -6
- package/dist/vite/plugin.js +14 -104
- package/dist/vite/plugin.js.map +1 -1
- package/package.json +32 -22
- package/src/app/App.tsx +30 -0
- package/src/app/components/Dialog.tsx +119 -0
- package/src/app/components/Input.tsx +24 -0
- package/src/app/components/SyntaxHighlight.tsx +2 -0
- package/src/app/main.tsx +3 -16
- package/src/app/plugins/openapi/ColorizedParam.tsx +18 -9
- package/src/app/plugins/openapi/MakeRequest.tsx +19 -0
- package/src/app/plugins/openapi/OperationList.tsx +20 -22
- package/src/app/plugins/openapi/OperationListItem.tsx +3 -3
- package/src/app/plugins/openapi/RequestBodySidecarBox.tsx +31 -28
- package/src/app/plugins/openapi/ResponsesSidecarBox.tsx +1 -1
- package/src/app/plugins/openapi/Sidecar.tsx +81 -20
- package/src/app/plugins/openapi/SidecarBox.tsx +30 -29
- package/src/app/plugins/openapi/graphql/fragment-masking.ts +111 -0
- package/src/app/plugins/openapi/graphql/gql.ts +70 -0
- package/src/app/plugins/openapi/graphql/graphql.ts +795 -0
- package/src/app/plugins/openapi/graphql/index.ts +2 -13
- package/src/app/plugins/openapi/playground/Playground.tsx +309 -0
- package/src/app/plugins/openapi/queries.graphql +6 -0
- package/src/app/ui/Button.tsx +56 -0
- package/src/app/ui/Card.tsx +1 -1
- package/src/app/ui/Tabs.tsx +52 -0
- package/src/app/util/createVariantComponent.tsx +30 -0
- package/dist/app/app.js +0 -69
- package/dist/app/app.js.map +0 -1
- package/dist/app/config.d.ts +0 -3
- package/dist/app/config.js +0 -9
- package/dist/app/config.js.map +0 -1
- package/dist/app/markdowns.d.ts +0 -3
- package/dist/app/markdowns.js +0 -5
- package/dist/app/markdowns.js.map +0 -1
- package/dist/app/plugins/openapi/util/getCode.d.ts +0 -2
- package/dist/app/plugins/openapi/util/getCode.js +0 -54
- package/dist/app/plugins/openapi/util/getCode.js.map +0 -1
- package/src/app/app.tsx +0 -85
- package/src/app/config.ts +0 -20
- package/src/app/markdowns.ts +0 -7
- package/src/app/plugins/openapi/graphql/env.d.ts +0 -48
- package/src/app/plugins/openapi/util/getCode.tsx +0 -69
- /package/dist/app/{app.d.ts → App.d.ts} +0 -0
package/dist/vite/config.js
CHANGED
|
@@ -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 {
|
|
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
|
|
8
|
-
|
|
9
|
-
path.
|
|
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
|
-
|
|
17
|
-
|
|
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
|
-
|
|
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
|
|
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:
|
|
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: [
|
|
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
|
package/dist/vite/config.js.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/vite/dev-server.js
CHANGED
|
@@ -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
|
|
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;
|
|
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"}
|
package/dist/vite/html.d.ts
CHANGED
package/dist/vite/html.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
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="${
|
|
10
|
+
<script type="module" src="${jsEntry}"></script>
|
|
12
11
|
</body>
|
|
13
12
|
</html>
|
|
14
13
|
`;
|
package/dist/vite/html.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/vite/html.ts"],"names":[],"mappings":"AAAA,
|
|
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,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,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,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,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,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,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
|