zudoku 0.30.1 → 0.31.1
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/dist/config/loader.js +4 -1
- package/dist/config/loader.js.map +1 -1
- package/dist/config/validators/common.d.ts +97 -12
- package/dist/config/validators/common.js +16 -1
- package/dist/config/validators/common.js.map +1 -1
- package/dist/config/validators/validate.d.ts +33 -6
- package/dist/lib/components/ThemeSwitch.js +8 -5
- package/dist/lib/components/ThemeSwitch.js.map +1 -1
- package/dist/lib/components/context/ZudokuContext.js +8 -2
- package/dist/lib/components/context/ZudokuContext.js.map +1 -1
- package/dist/lib/core/RouteGuard.js +6 -2
- package/dist/lib/core/RouteGuard.js.map +1 -1
- package/dist/lib/oas/parser/upgrade/index.js +2 -1
- package/dist/lib/oas/parser/upgrade/index.js.map +1 -1
- package/dist/lib/util/useLatest.d.ts +1 -0
- package/dist/lib/util/useLatest.js +15 -0
- package/dist/lib/util/useLatest.js.map +1 -0
- package/dist/vite/api/schema-codegen.js +2 -2
- package/dist/vite/api/schema-codegen.js.map +1 -1
- package/dist/vite/config.js +25 -12
- package/dist/vite/config.js.map +1 -1
- package/dist/vite/plugin-api.js +26 -10
- package/dist/vite/plugin-api.js.map +1 -1
- package/dist/vite/plugin-mdx.js +31 -26
- package/dist/vite/plugin-mdx.js.map +1 -1
- package/dist/vite/prerender/worker.js +2 -1
- package/dist/vite/prerender/worker.js.map +1 -1
- package/lib/{AuthenticationPlugin-DeEA69mE.js → AuthenticationPlugin-DjnQ5hs7.js} +2 -2
- package/lib/{AuthenticationPlugin-DeEA69mE.js.map → AuthenticationPlugin-DjnQ5hs7.js.map} +1 -1
- package/lib/{MdxPage-BalfwlsD.js → MdxPage-ZX2oquWw.js} +3 -3
- package/lib/{MdxPage-BalfwlsD.js.map → MdxPage-ZX2oquWw.js.map} +1 -1
- package/lib/{OpenApiRoute-ULLXjfro.js → OpenApiRoute-BP9kzG5k.js} +2 -2
- package/lib/{OpenApiRoute-ULLXjfro.js.map → OpenApiRoute-BP9kzG5k.js.map} +1 -1
- package/lib/{OperationList-CnYOgwBj.js → OperationList-c72qPMtm.js} +6 -7
- package/lib/{OperationList-CnYOgwBj.js.map → OperationList-c72qPMtm.js.map} +1 -1
- package/lib/{Select-BcAbBUmk.js → Select-NSz0gku6.js} +3 -3
- package/lib/{Select-BcAbBUmk.js.map → Select-NSz0gku6.js.map} +1 -1
- package/lib/{createServer-E3cXjB0P.js → createServer-ZDNGmPfQ.js} +2 -2
- package/lib/{createServer-E3cXjB0P.js.map → createServer-ZDNGmPfQ.js.map} +1 -1
- package/lib/hook-Dnj3SwPC.js +1455 -0
- package/lib/hook-Dnj3SwPC.js.map +1 -0
- package/lib/{index-CnKeVT2S.js → index-CZjcfK-H.js} +28 -30
- package/lib/{index-CnKeVT2S.js.map → index-CZjcfK-H.js.map} +1 -1
- package/lib/{hook-NIpDSpau.js → mutation-ByGtmi0-.js} +46 -65
- package/lib/mutation-ByGtmi0-.js.map +1 -0
- package/lib/{useScrollToAnchor-BVCQSeKB.js → useScrollToAnchor-DkVfWsxe.js} +2 -2
- package/lib/{useScrollToAnchor-BVCQSeKB.js.map → useScrollToAnchor-DkVfWsxe.js.map} +1 -1
- package/lib/zudoku.auth-auth0.js +1 -1
- package/lib/zudoku.auth-clerk.js +2 -2
- package/lib/zudoku.auth-openid.js +4 -5
- package/lib/zudoku.auth-openid.js.map +1 -1
- package/lib/zudoku.components.js +519 -489
- package/lib/zudoku.components.js.map +1 -1
- package/lib/zudoku.plugin-api-catalog.js +15 -16
- package/lib/zudoku.plugin-api-catalog.js.map +1 -1
- package/lib/zudoku.plugin-api-keys.js +12 -13
- package/lib/zudoku.plugin-api-keys.js.map +1 -1
- package/lib/zudoku.plugin-markdown.js +1 -1
- package/lib/zudoku.plugin-openapi.js +2 -2
- package/package.json +3 -1
- package/src/app/main.css +2 -1
- package/src/lib/components/ThemeSwitch.tsx +28 -8
- package/src/lib/components/context/ZudokuContext.ts +13 -2
- package/src/lib/core/RouteGuard.tsx +6 -2
- package/src/lib/oas/parser/upgrade/index.ts +2 -1
- package/src/lib/util/useLatest.ts +18 -0
- package/lib/ZudokuContext-dUyBGMap.js +0 -1229
- package/lib/ZudokuContext-dUyBGMap.js.map +0 -1
- package/lib/hook-NIpDSpau.js.map +0 -1
- package/lib/state-bfQxaDxU.js +0 -211
- package/lib/state-bfQxaDxU.js.map +0 -1
package/dist/vite/config.js
CHANGED
|
@@ -8,6 +8,8 @@ import tailwindConfig from "../app/tailwind.js";
|
|
|
8
8
|
import { logger } from "../cli/common/logger.js";
|
|
9
9
|
import { isPortAvailable } from "../cli/common/utils/ports.js";
|
|
10
10
|
import { tryLoadZudokuConfig } from "../config/loader.js";
|
|
11
|
+
import { CdnUrlSchema } from "../config/validators/common.js";
|
|
12
|
+
import { joinUrl } from "../lib/util/joinUrl.js";
|
|
11
13
|
import { ZuploEnv } from "../zuplo/env.js";
|
|
12
14
|
import vitePlugin from "./plugin.js";
|
|
13
15
|
const getDocsConfigFiles = (docsConfig, baseDir) => {
|
|
@@ -106,6 +108,9 @@ export function getPluginOptions({ dir, mode, }) {
|
|
|
106
108
|
mode,
|
|
107
109
|
};
|
|
108
110
|
}
|
|
111
|
+
// the vite config gets loaded multiple times, so we only log the CDN info once
|
|
112
|
+
let hasLoggedCdnInfo = false;
|
|
113
|
+
const MEDIA_REGEX = /\.(a?png|jpe?g|gif|bmp|svg|webp|tiff|ico|webm|ogg|mp3|wav|m4a|avif|mp4)/i;
|
|
109
114
|
export async function getViteConfig(dir, configEnv, onConfigChange) {
|
|
110
115
|
const { config, publicEnv, envPrefix } = await loadZudokuConfig(configEnv, dir);
|
|
111
116
|
const handleConfigChange = async () => {
|
|
@@ -122,9 +127,16 @@ export async function getViteConfig(dir, configEnv, onConfigChange) {
|
|
|
122
127
|
dir,
|
|
123
128
|
mode: process.env.ZUDOKU_INTERNAL_DEV ? "internal" : "module",
|
|
124
129
|
});
|
|
125
|
-
const
|
|
126
|
-
|
|
130
|
+
const cdnUrl = CdnUrlSchema.parse(config.cdnUrl);
|
|
131
|
+
const base = cdnUrl?.base
|
|
132
|
+
? joinUrl(cdnUrl.base, config.basePath)
|
|
127
133
|
: config.basePath;
|
|
134
|
+
if (cdnUrl && !hasLoggedCdnInfo) {
|
|
135
|
+
logger.info(colors.blue(`Using CDN URL:`));
|
|
136
|
+
logger.info(colors.blue(` base: `) + colors.dim(cdnUrl.base));
|
|
137
|
+
logger.info(colors.blue(` media: `) + colors.dim(cdnUrl.media));
|
|
138
|
+
hasLoggedCdnInfo = true;
|
|
139
|
+
}
|
|
128
140
|
const viteConfig = {
|
|
129
141
|
root: dir,
|
|
130
142
|
base,
|
|
@@ -176,16 +188,17 @@ export async function getViteConfig(dir, configEnv, onConfigChange) {
|
|
|
176
188
|
: undefined,
|
|
177
189
|
},
|
|
178
190
|
},
|
|
179
|
-
experimental:
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
return
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
|
|
191
|
+
experimental: {
|
|
192
|
+
renderBuiltUrl(filename) {
|
|
193
|
+
if (cdnUrl?.base && [".js", ".css"].includes(path.extname(filename))) {
|
|
194
|
+
return joinUrl(cdnUrl.base, filename);
|
|
195
|
+
}
|
|
196
|
+
if (cdnUrl?.media && MEDIA_REGEX.test(filename)) {
|
|
197
|
+
return joinUrl(cdnUrl.media, filename);
|
|
198
|
+
}
|
|
199
|
+
return { relative: true };
|
|
200
|
+
},
|
|
201
|
+
},
|
|
189
202
|
optimizeDeps: {
|
|
190
203
|
entries: [
|
|
191
204
|
configEnv.isSsrBuild
|
package/dist/vite/config.js.map
CHANGED
|
@@ -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":"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"}
|
package/dist/vite/plugin-api.js
CHANGED
|
@@ -1,12 +1,24 @@
|
|
|
1
|
+
import { $RefParser } from "@apidevtools/json-schema-ref-parser";
|
|
2
|
+
import { upgrade, validate } from "@scalar/openapi-parser";
|
|
1
3
|
import fs from "node:fs/promises";
|
|
2
4
|
import path from "node:path";
|
|
3
5
|
import { tsImport } from "tsx/esm/api";
|
|
4
|
-
import yaml from "yaml";
|
|
5
6
|
import { getAllOperations, getAllTags, } from "../lib/oas/graphql/index.js";
|
|
6
|
-
import { upgradeSchema } from "../lib/oas/parser/upgrade/index.js";
|
|
7
7
|
import { generateCode } from "./api/schema-codegen.js";
|
|
8
8
|
const API_COUNT_THRESHOLD = 50;
|
|
9
9
|
const schemaMap = new Map();
|
|
10
|
+
const validateSchema = async (schema, filePath) => {
|
|
11
|
+
const validated = await validate(schema);
|
|
12
|
+
if (validated.errors?.length) {
|
|
13
|
+
// eslint-disable-next-line no-console
|
|
14
|
+
console.warn(`Schema warnings in ${filePath}:`);
|
|
15
|
+
for (const error of validated.errors) {
|
|
16
|
+
// eslint-disable-next-line no-console
|
|
17
|
+
console.warn(error);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return schema;
|
|
21
|
+
};
|
|
10
22
|
async function processSchemas(config,
|
|
11
23
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
12
24
|
zuploProcessors = []) {
|
|
@@ -23,23 +35,27 @@ zuploProcessors = []) {
|
|
|
23
35
|
}
|
|
24
36
|
const postProcessors = [
|
|
25
37
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
26
|
-
(schema) =>
|
|
38
|
+
(schema) => upgrade(schema).specification,
|
|
27
39
|
...(apiConfig.postProcessors ?? []),
|
|
28
40
|
...zuploProcessors,
|
|
29
41
|
];
|
|
30
42
|
const inputs = Array.isArray(apiConfig.input)
|
|
31
43
|
? apiConfig.input
|
|
32
44
|
: [apiConfig.input];
|
|
33
|
-
const inputFiles = await Promise.all(inputs.map(async (input) =>
|
|
34
|
-
|
|
35
|
-
|
|
45
|
+
const inputFiles = await Promise.all(inputs.map(async (input) => {
|
|
46
|
+
const fullPath = path.resolve(config.rootDir, input);
|
|
47
|
+
const parser = new $RefParser();
|
|
48
|
+
const schema = await parser.bundle(fullPath);
|
|
49
|
+
config.__meta.registerDependency(...parser.$refs.paths());
|
|
50
|
+
return validateSchema(schema, input);
|
|
51
|
+
}));
|
|
36
52
|
const processedInputs = await Promise.all(inputFiles.map(async (schema, index) => {
|
|
37
|
-
const processedSchema = await postProcessors.reduce(async (acc, postProcessor) => postProcessor(await acc), schema);
|
|
53
|
+
const processedSchema = await postProcessors.reduce(async (acc, postProcessor) => postProcessor(await acc), Promise.resolve(schema));
|
|
38
54
|
const inputPath = inputs[index];
|
|
39
|
-
const processedPath = path.posix.join(tmpDir, `${path.basename(inputPath)}.js`);
|
|
40
55
|
const code = await generateCode(processedSchema);
|
|
41
|
-
|
|
42
|
-
|
|
56
|
+
const processedFilePath = path.posix.join(tmpDir, `${path.basename(inputPath)}.js`);
|
|
57
|
+
await fs.writeFile(processedFilePath, code);
|
|
58
|
+
schemaMap.set(inputPath, processedFilePath);
|
|
43
59
|
return {
|
|
44
60
|
schema: processedSchema,
|
|
45
61
|
version: processedSchema.info.version || "default",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-api.js","sourceRoot":"","sources":["../../src/vite/plugin-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"plugin-api.js","sourceRoot":"","sources":["../../src/vite/plugin-api.ts"],"names":[],"mappings":"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"}
|
package/dist/vite/plugin-mdx.js
CHANGED
|
@@ -13,7 +13,6 @@ import remarkFrontmatter from "remark-frontmatter";
|
|
|
13
13
|
import remarkGfm from "remark-gfm";
|
|
14
14
|
import remarkMdxFrontmatter from "remark-mdx-frontmatter";
|
|
15
15
|
import { EXIT, visit } from "unist-util-visit";
|
|
16
|
-
import { joinUrl } from "../lib/util/joinUrl.js";
|
|
17
16
|
import { remarkStaticGeneration } from "./remarkStaticGeneration.js";
|
|
18
17
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
19
18
|
const rehypeCodeBlockPlugin = () => (tree) => {
|
|
@@ -23,6 +22,35 @@ const rehypeCodeBlockPlugin = () => (tree) => {
|
|
|
23
22
|
}
|
|
24
23
|
});
|
|
25
24
|
};
|
|
25
|
+
// Convert mdxJsxFlowElement img elements to regular element nodes
|
|
26
|
+
// so rehype-mdx-import-media can pick them up
|
|
27
|
+
const rehypeNormalizeMdxImages = () => (tree) => {
|
|
28
|
+
visit(tree, ["mdxJsxFlowElement", "mdxJsxElement"], (node) => {
|
|
29
|
+
if (node.type !== "mdxJsxFlowElement" || node.name !== "img")
|
|
30
|
+
return;
|
|
31
|
+
const hasStringSrc = node.attributes.some(
|
|
32
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
33
|
+
(attr) => attr.type === "mdxJsxAttribute" &&
|
|
34
|
+
attr.name === "src" &&
|
|
35
|
+
typeof attr.value === "string");
|
|
36
|
+
if (!hasStringSrc)
|
|
37
|
+
return;
|
|
38
|
+
node.type = "element";
|
|
39
|
+
node.tagName = "img";
|
|
40
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
41
|
+
node.properties = {};
|
|
42
|
+
for (const attr of node.attributes) {
|
|
43
|
+
if (attr.type === "mdxJsxAttribute" && typeof attr.value === "string") {
|
|
44
|
+
node.properties[attr.name] = attr.value;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
delete node.name;
|
|
48
|
+
delete node.attributes;
|
|
49
|
+
delete node.children;
|
|
50
|
+
delete node.data;
|
|
51
|
+
delete node.position;
|
|
52
|
+
});
|
|
53
|
+
};
|
|
26
54
|
const remarkLinkRewritePlugin = (basePath = "") => (tree) => {
|
|
27
55
|
visit(tree, "link", (node) => {
|
|
28
56
|
if (!node.url)
|
|
@@ -40,29 +68,6 @@ const remarkLinkRewritePlugin = (basePath = "") => (tree) => {
|
|
|
40
68
|
node.url = node.url.replace(/\.mdx?(#.*?)?/, "$1");
|
|
41
69
|
});
|
|
42
70
|
};
|
|
43
|
-
const rehypeMediaBase = (rootDir, base = "") =>
|
|
44
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
45
|
-
(tree, vfile) => {
|
|
46
|
-
visit(tree, "element", (node) => {
|
|
47
|
-
if (!base)
|
|
48
|
-
return;
|
|
49
|
-
if (node.tagName !== "img" && node.tagName !== "video")
|
|
50
|
-
return;
|
|
51
|
-
if (node.properties.src && !node.properties.src.startsWith("http")) {
|
|
52
|
-
node.properties.src = joinUrl(base, node.properties.src);
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
// `rehype-mdx-import-media` doesn't handle images in mdxJsxFlowElement so we do it manually
|
|
56
|
-
visit(tree, ["mdxJsxFlowElement", "mdxJsxElement"], (node) => {
|
|
57
|
-
if (node.name !== "img" && node.name !== "video")
|
|
58
|
-
return;
|
|
59
|
-
const src = node.attributes.find((attr) => attr?.name === "src");
|
|
60
|
-
if (typeof src?.value !== "string" || /^(http|\/)/i.test(src.value))
|
|
61
|
-
return;
|
|
62
|
-
const relativePath = path.dirname(path.relative(rootDir, vfile.path));
|
|
63
|
-
src.value = "./" + path.join(base, relativePath, src.value);
|
|
64
|
-
});
|
|
65
|
-
};
|
|
66
71
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
67
72
|
const rehypeExcerptWithMdxExport = () => (tree) => {
|
|
68
73
|
let excerpt;
|
|
@@ -134,12 +139,12 @@ const viteMdxPlugin = (getConfig) => {
|
|
|
134
139
|
rehypeSlug,
|
|
135
140
|
rehypeCodeBlockPlugin,
|
|
136
141
|
rehypeMetaAsAttributes,
|
|
137
|
-
rehypeMdxImportMedia,
|
|
138
|
-
[rehypeMediaBase, config.rootDir, config.basePath],
|
|
139
142
|
withToc,
|
|
140
143
|
withTocExport,
|
|
141
144
|
rehypeExcerptWithMdxExport,
|
|
142
145
|
...(config.build?.rehypePlugins ?? []),
|
|
146
|
+
rehypeNormalizeMdxImages,
|
|
147
|
+
rehypeMdxImportMedia,
|
|
143
148
|
],
|
|
144
149
|
}),
|
|
145
150
|
name: "zudoku-mdx-plugin",
|
|
@@ -1 +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,GAAG,MAAM,gBAAgB,CAAC;AACjC,OAAO,OAAO,MAAM,kCAAkC,CAAC;AACvD,OAAO,aAAa,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAE/D,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,oBAAoB,MAAM,yBAAyB,CAAC;AAC3D,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,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin-mdx.js","sourceRoot":"","sources":["../../src/vite/plugin-mdx.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import { pathToFileURL } from "node:url";
|
|
3
3
|
import Piscina from "piscina";
|
|
4
|
+
import { joinUrl } from "../../lib/util/joinUrl.js";
|
|
4
5
|
import { FileWritingResponse } from "./FileWritingResponse.js";
|
|
5
6
|
const { template, distDir, serverConfigPath, entryServerPath } = Piscina.workerData;
|
|
6
7
|
const [render, config] = (await Promise.all([
|
|
@@ -9,7 +10,7 @@ const [render, config] = (await Promise.all([
|
|
|
9
10
|
]));
|
|
10
11
|
const renderPage = async ({ urlPath }) => {
|
|
11
12
|
const filename = urlPath === "/" ? "/index.html" : `${urlPath}.html`;
|
|
12
|
-
const url =
|
|
13
|
+
const url = joinUrl("http://localhost", config.basePath, urlPath);
|
|
13
14
|
const outputPath = path.join(distDir, filename);
|
|
14
15
|
const request = new Request(url);
|
|
15
16
|
const response = new FileWritingResponse(outputPath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/vite/prerender/worker.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,OAAO,MAAM,SAAS,CAAC;AAG9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAW/D,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,GAC5D,OAAO,CAAC,UAA8B,CAAC;AAEzC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC;IAC1C,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IACjE,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;CACpE,CAAC,CAAwC,CAAC;AAE3C,MAAM,UAAU,GAAG,KAAK,EAAE,EAAE,OAAO,EAAc,EAAmB,EAAE;IACpE,MAAM,QAAQ,GAAG,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,OAAO,OAAO,CAAC;IACrE,MAAM,GAAG,GAAG,
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/vite/prerender/worker.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,OAAO,MAAM,SAAS,CAAC;AAG9B,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAW/D,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,GAC5D,OAAO,CAAC,UAA8B,CAAC;AAEzC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC;IAC1C,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IACjE,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;CACpE,CAAC,CAAwC,CAAC;AAE3C,MAAM,UAAU,GAAG,KAAK,EAAE,EAAE,OAAO,EAAc,EAAmB,EAAE;IACpE,MAAM,QAAQ,GAAG,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,OAAO,OAAO,CAAC;IACrE,MAAM,GAAG,GAAG,OAAO,CAAC,kBAAkB,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,IAAI,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAErD,MAAM,MAAM,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACtD,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC;IAExB,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { j as o } from "./jsx-runtime-Bdg6XQ1m.js";
|
|
|
2
2
|
import { LogOutIcon as a } from "lucide-react";
|
|
3
3
|
import { useEffect as i } from "react";
|
|
4
4
|
import { b as u, a as r } from "./chunk-SYFQ2XB5-QijJrSf0.js";
|
|
5
|
-
import {
|
|
5
|
+
import { i as s } from "./hook-Dnj3SwPC.js";
|
|
6
6
|
const c = () => {
|
|
7
7
|
const t = s(), [e] = u();
|
|
8
8
|
return i(() => {
|
|
@@ -55,4 +55,4 @@ class d {
|
|
|
55
55
|
export {
|
|
56
56
|
d as A
|
|
57
57
|
};
|
|
58
|
-
//# sourceMappingURL=AuthenticationPlugin-
|
|
58
|
+
//# sourceMappingURL=AuthenticationPlugin-DjnQ5hs7.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthenticationPlugin-
|
|
1
|
+
{"version":3,"file":"AuthenticationPlugin-DjnQ5hs7.js","sources":["../src/lib/authentication/components/SignIn.tsx","../src/lib/authentication/components/SignOut.tsx","../src/lib/authentication/components/SignUp.tsx","../src/lib/authentication/AuthenticationPlugin.tsx"],"sourcesContent":["import { useEffect } from \"react\";\nimport { useSearchParams } from \"react-router\";\nimport { useZudoku } from \"../../components/context/ZudokuContext.js\";\n\nexport const SignIn = () => {\n const context = useZudoku();\n const [search] = useSearchParams();\n useEffect(() => {\n void context.authentication?.signIn({\n redirectTo: search.get(\"redirect\") ?? undefined,\n });\n }, [context.authentication, search]);\n\n return null;\n};\n","import { useEffect } from \"react\";\nimport { useNavigate } from \"react-router\";\nimport { useZudoku } from \"../../components/context/ZudokuContext.js\";\n\nexport const SignOut = () => {\n const context = useZudoku();\n const navigate = useNavigate();\n\n useEffect(() => {\n void context.authentication?.signOut().then(() => navigate(\"/\"));\n }, []);\n\n return null;\n};\n","import { useEffect } from \"react\";\nimport { useZudoku } from \"../../components/context/ZudokuContext.js\";\n\nexport const SignUp = () => {\n const context = useZudoku();\n useEffect(() => {\n void (context.authentication?.signUp() ?? context.authentication?.signIn());\n }, [context.authentication]);\n\n return null;\n};\n","import { LogOutIcon } from \"lucide-react\";\nimport {\n CommonPlugin,\n NavigationPlugin,\n ProfileMenuPlugin,\n} from \"../core/plugins.js\";\nimport { SignIn } from \"./components/SignIn.js\";\nimport { SignOut } from \"./components/SignOut.js\";\nimport { SignUp } from \"./components/SignUp.js\";\n\ntype PluginInterface = NavigationPlugin & CommonPlugin & ProfileMenuPlugin;\n\nexport class AuthenticationPlugin implements PluginInterface {\n getRoutes() {\n return [\n {\n path: \"/signout\",\n element: <SignOut />,\n },\n {\n path: \"/signin\",\n element: <SignIn />,\n },\n {\n path: \"/signup\",\n element: <SignUp />,\n },\n ];\n }\n\n getProfileMenuItems() {\n return [\n {\n label: \"Logout\",\n path: \"/signout\",\n category: \"bottom\",\n icon: LogOutIcon,\n } as const,\n ];\n }\n}\n"],"names":["SignIn","context","useZudoku","search","useSearchParams","useEffect","_a","SignOut","navigate","useNavigate","SignUp","_b","AuthenticationPlugin","LogOutIcon"],"mappings":";;;;;AAIO,MAAMA,IAAS,MAAM;AAC1B,QAAMC,IAAUC,EAAU,GACpB,CAACC,CAAM,IAAIC,EAAgB;AACjC,SAAAC,EAAU,MAAM;;AACT,KAAAC,IAAAL,EAAQ,mBAAR,QAAAK,EAAwB,OAAO;AAAA,MAClC,YAAYH,EAAO,IAAI,UAAU,KAAK;AAAA,IAAA;AAAA,EAEvC,GAAA,CAACF,EAAQ,gBAAgBE,CAAM,CAAC,GAE5B;AACT,GCVaI,IAAU,MAAM;AAC3B,QAAMN,IAAUC,EAAU,GACpBM,IAAWC,EAAY;AAE7B,SAAAJ,EAAU,MAAM;;AACT,KAAAC,IAAAL,EAAQ,mBAAR,QAAAK,EAAwB,UAAU,KAAK,MAAME,EAAS,GAAG;AAAA,EAChE,GAAG,EAAE,GAEE;AACT,GCVaE,IAAS,MAAM;AAC1B,QAAMT,IAAUC,EAAU;AAC1B,SAAAG,EAAU,MAAM;;AACd,MAAMC,IAAAL,EAAQ,mBAAR,gBAAAK,EAAwB,eAAYK,IAAAV,EAAQ,mBAAR,QAAAU,EAAwB;AAAA,EAAO,GACxE,CAACV,EAAQ,cAAc,CAAC,GAEpB;AACT;ACEO,MAAMW,EAAgD;AAAA,EAC3D,YAAY;AACH,WAAA;AAAA,MACL;AAAA,QACE,MAAM;AAAA,QACN,+BAAUL,GAAQ,CAAA,CAAA;AAAA,MACpB;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,+BAAUP,GAAO,CAAA,CAAA;AAAA,MACnB;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,+BAAUU,GAAO,CAAA,CAAA;AAAA,MAAA;AAAA,IAErB;AAAA,EAAA;AAAA,EAGF,sBAAsB;AACb,WAAA;AAAA,MACL;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,UAAU;AAAA,QACV,MAAMG;AAAA,MAAA;AAAA,IAEV;AAAA,EAAA;AAEJ;"}
|
|
@@ -5,10 +5,10 @@ import { useRef as b, useState as H, useEffect as A } from "react";
|
|
|
5
5
|
import { d as I, L as N } from "./chunk-SYFQ2XB5-QijJrSf0.js";
|
|
6
6
|
import { C as S } from "./CategoryHeading-MYL1u_6K.js";
|
|
7
7
|
import { u as $, P as L, H as g } from "./Markdown-8mv9nhGd.js";
|
|
8
|
-
import { b as D, d as M } from "./
|
|
8
|
+
import { b as D, d as M } from "./hook-Dnj3SwPC.js";
|
|
9
9
|
import { c as p } from "./cn-qaFjX9_3.js";
|
|
10
10
|
import { ListTreeIcon as q } from "lucide-react";
|
|
11
|
-
import { A as B, u as V } from "./useScrollToAnchor-
|
|
11
|
+
import { A as B, u as V } from "./useScrollToAnchor-DkVfWsxe.js";
|
|
12
12
|
const R = "data-active", w = ({
|
|
13
13
|
item: s,
|
|
14
14
|
children: t,
|
|
@@ -190,4 +190,4 @@ const R = "data-active", w = ({
|
|
|
190
190
|
export {
|
|
191
191
|
te as MdxPage
|
|
192
192
|
};
|
|
193
|
-
//# sourceMappingURL=MdxPage-
|
|
193
|
+
//# sourceMappingURL=MdxPage-ZX2oquWw.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MdxPage-BalfwlsD.js","sources":["../src/lib/plugins/markdown/Toc.tsx","../src/lib/plugins/markdown/MdxPage.tsx"],"sourcesContent":["import type { TocEntry } from \"@stefanprobst/rehype-extract-toc\";\nimport { ListTreeIcon } from \"lucide-react\";\nimport {\n useEffect,\n useRef,\n useState,\n type CSSProperties,\n type PropsWithChildren,\n} from \"react\";\nimport { AnchorLink } from \"../../components/AnchorLink.js\";\nimport { useViewportAnchor } from \"../../components/context/ViewportAnchorContext.js\";\nimport { cn } from \"../../util/cn.js\";\n\nconst DATA_ANCHOR_ATTR = \"data-active\";\n\nconst TocItem = ({\n item,\n children,\n className,\n isActive,\n}: PropsWithChildren<{\n item: TocEntry;\n isActive: boolean;\n className?: string;\n}>) => {\n return (\n <li\n className={cn(\n \"truncate\",\n isActive\n ? \"text-primary\"\n : \"text-foreground/65 dark:text-foreground/75\",\n className,\n )}\n title={item.value}\n >\n <AnchorLink\n to={`#${item.id}`}\n {...{ [DATA_ANCHOR_ATTR]: item.id }}\n className={cn(\n isActive\n ? \"text-primary\"\n : \"text-foreground/65 dark:text-foreground/75 hover:text-foreground\",\n )}\n >\n {item.value}\n </AnchorLink>\n {children}\n </li>\n );\n};\n\nexport const Toc = ({ entries }: { entries: TocEntry[] }) => {\n const { activeAnchor } = useViewportAnchor();\n const listWrapperRef = useRef<HTMLUListElement>(null);\n const paintedOnce = useRef(false);\n const [indicatorStyle, setIndicatorStyles] = useState<CSSProperties>({\n top: 0,\n opacity: 0,\n });\n\n // synchronize active anchor indicator with the scroll position\n useEffect(() => {\n if (!listWrapperRef.current) return;\n\n const activeElement = listWrapperRef.current.querySelector(\n `[${DATA_ANCHOR_ATTR}='${activeAnchor}']`,\n );\n\n if (!activeElement) {\n setIndicatorStyles({ top: 0, opacity: 0 });\n return;\n }\n\n const topParent = listWrapperRef.current.getBoundingClientRect().top;\n const topElement = activeElement.getBoundingClientRect().top;\n\n setIndicatorStyles({\n opacity: 1,\n top: `${topElement - topParent}px`,\n });\n\n if (paintedOnce.current) return;\n\n // after all is painted, the indicator should animate\n requestIdleCallback(() => {\n paintedOnce.current = true;\n });\n }, [activeAnchor]);\n\n return (\n <aside className=\"sticky scrollbar top-[--header-height] h-[calc(100vh-var(--header-height))] pt-[--padding-content-top] pb-[--padding-content-bottom] overflow-y-auto ps-1 text-sm\">\n <div className=\"flex items-center gap-2 font-medium mb-2\">\n <ListTreeIcon size={16} />\n On this page\n </div>\n <div className=\"relative ms-2 ps-4\">\n <div className=\"absolute inset-0 right-auto bg-border w-[2px]\" />\n <div\n className={cn(\n \"absolute -left-px -translate-y-1 h-6 w-[4px] rounded bg-primary\",\n paintedOnce.current &&\n \"ease-out [transition:top_150ms,opacity_325ms]\",\n )}\n style={indicatorStyle}\n />\n <ul\n ref={listWrapperRef}\n className=\"relative font-medium list-none space-y-2\"\n >\n {entries.map((item) => (\n <TocItem\n isActive={item.id === activeAnchor}\n key={item.id}\n item={item}\n className=\"pl-0\"\n >\n {item.children && (\n <ul className=\"list-none pl-4 pt-2 space-y-2\">\n {item.children.map((child) => (\n <TocItem\n item={child}\n isActive={child.id === activeAnchor}\n key={child.id}\n />\n ))}\n </ul>\n )}\n </TocItem>\n ))}\n </ul>\n </div>\n </aside>\n );\n};\n","import { useMDXComponents } from \"@mdx-js/react\";\nimport slugify from \"@sindresorhus/slugify\";\nimport { Helmet } from \"@zudoku/react-helmet-async\";\nimport { type PropsWithChildren, useEffect } from \"react\";\nimport { Link, useHref } from \"react-router\";\nimport { CategoryHeading } from \"../../components/CategoryHeading.js\";\nimport { Heading } from \"../../components/Heading.js\";\nimport { ProseClasses } from \"../../components/Markdown.js\";\nimport {\n useCurrentItem,\n usePrevNext,\n} from \"../../components/navigation/utils.js\";\nimport type { MdxComponentsType } from \"../../util/MdxComponents.js\";\nimport { cn } from \"../../util/cn.js\";\nimport { Toc } from \"./Toc.js\";\nimport { MarkdownPluginDefaultOptions, MDXImport } from \"./index.js\";\n\ndeclare global {\n interface Window {\n __getReactRefreshIgnoredExports?: (args: {\n id: string;\n }) => string[] | undefined;\n }\n}\n\nconst MarkdownHeadings = {\n h2: ({ children, id }) => (\n <Heading level={2} id={id} registerSidebarAnchor>\n {children}\n </Heading>\n ),\n h3: ({ children, id }) => (\n <Heading level={3} id={id} registerSidebarAnchor>\n {children}\n </Heading>\n ),\n} satisfies MdxComponentsType;\n\nexport const MdxPage = ({\n mdxComponent: MdxComponent,\n file,\n frontmatter = {},\n defaultOptions,\n tableOfContents,\n excerpt,\n}: PropsWithChildren<\n Omit<MDXImport, \"default\"> & {\n file: string;\n mdxComponent: MDXImport[\"default\"];\n defaultOptions?: MarkdownPluginDefaultOptions;\n }\n>) => {\n const categoryTitle = useCurrentItem()?.categoryLabel;\n let canonicalUrl = null;\n const path = useHref(\"\");\n if (typeof window !== \"undefined\") {\n const domain = window.location.origin;\n canonicalUrl = `${domain}${path}`;\n }\n\n const title = frontmatter.title;\n const category = frontmatter.category ?? categoryTitle;\n const hideToc = frontmatter.toc === false || defaultOptions?.toc === false;\n const pageTitle =\n tableOfContents.find((item) => item.depth === 1)?.value ?? title;\n const hidePager =\n frontmatter.disablePager ?? defaultOptions?.disablePager ?? false;\n\n const tocEntries =\n tableOfContents.find((item) => item.depth === 1)?.children ??\n // if `title` is provided by frontmatter it does not appear in the table of contents\n tableOfContents.filter((item) => item.depth === 2);\n\n const showToc = !hideToc && tocEntries.length > 0;\n\n const { prev, next } = usePrevNext();\n\n useEffect(() => {\n if (process.env.NODE_ENV === \"development\") {\n window.__getReactRefreshIgnoredExports = ({ id }) => {\n if (!id.endsWith(file)) return;\n\n return [\"frontmatter\", \"tableOfContents\"];\n };\n\n return () => {\n window.__getReactRefreshIgnoredExports = undefined;\n };\n }\n }, [file]);\n\n return (\n <div className=\"xl:grid grid-cols-[--sidecar-grid-cols] gap-8 justify-between\">\n <Helmet>\n <title>{pageTitle}</title>\n {excerpt && <meta name=\"description\" content={excerpt} />}\n {canonicalUrl && <link rel=\"canonical\" href={canonicalUrl} />}\n </Helmet>\n <div\n className={cn(\n ProseClasses,\n \"max-w-full xl:w-full xl:max-w-prose flex-1 flex-shrink pt-[--padding-content-top] pb-[--padding-content-bottom]\",\n )}\n >\n {(category || title) && (\n <header>\n {category && <CategoryHeading>{category}</CategoryHeading>}\n {title && (\n <Heading level={1} id={slugify(title)}>\n {title}\n </Heading>\n )}\n </header>\n )}\n <MdxComponent\n components={{ ...useMDXComponents(), ...MarkdownHeadings }}\n />\n {!hidePager && (\n <>\n <hr />\n <div className=\"not-prose flex flex-wrap items-center justify-between gap-2 lg:gap-8\">\n {prev ? (\n <Link\n to={prev.id}\n className=\"flex flex-col items-stretch gap-2 flex-1 min-w-max border rounded px-6 py-4 text-start hover:border-primary/85 transition shadow-sm hover:shadow-md\"\n title={prev.label}\n >\n <div className=\"text-sm text-muted-foreground\">\n ← Previous page\n </div>\n <div className=\"text-lg text-primary truncate\">\n {prev.label}\n </div>\n </Link>\n ) : (\n <div className=\"flex-1\" />\n )}\n {next ? (\n <Link\n to={next.id}\n className=\"flex flex-col items-stretch gap-2 flex-1 min-w-max border rounded px-6 py-4 text-end hover:border-primary/85 transition shadow-sm hover:shadow-md\"\n title={next.label}\n >\n <div className=\"text-sm text-muted-foreground\">\n Next page →\n </div>\n <div className=\"text-lg text-primary truncate\">\n {next.label}\n </div>\n </Link>\n ) : (\n <div className=\"flex-1\" />\n )}\n </div>\n </>\n )}\n </div>\n <div className=\"hidden xl:block\">\n {showToc && <Toc entries={tocEntries} />}\n </div>\n </div>\n );\n};\n"],"names":["DATA_ANCHOR_ATTR","TocItem","item","children","className","isActive","jsxs","cn","jsx","AnchorLink","Toc","entries","activeAnchor","useViewportAnchor","listWrapperRef","useRef","paintedOnce","indicatorStyle","setIndicatorStyles","useState","useEffect","activeElement","topParent","topElement","ListTreeIcon","child","MarkdownHeadings","id","Heading","MdxPage","MdxComponent","file","frontmatter","defaultOptions","tableOfContents","excerpt","categoryTitle","_a","useCurrentItem","canonicalUrl","path","useHref","title","category","hideToc","pageTitle","_b","hidePager","tocEntries","_c","showToc","prev","next","usePrevNext","Helmet","ProseClasses","CategoryHeading","slugify","useMDXComponents","Fragment","Link"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MdxPage-ZX2oquWw.js","sources":["../src/lib/plugins/markdown/Toc.tsx","../src/lib/plugins/markdown/MdxPage.tsx"],"sourcesContent":["import type { TocEntry } from \"@stefanprobst/rehype-extract-toc\";\nimport { ListTreeIcon } from \"lucide-react\";\nimport {\n useEffect,\n useRef,\n useState,\n type CSSProperties,\n type PropsWithChildren,\n} from \"react\";\nimport { AnchorLink } from \"../../components/AnchorLink.js\";\nimport { useViewportAnchor } from \"../../components/context/ViewportAnchorContext.js\";\nimport { cn } from \"../../util/cn.js\";\n\nconst DATA_ANCHOR_ATTR = \"data-active\";\n\nconst TocItem = ({\n item,\n children,\n className,\n isActive,\n}: PropsWithChildren<{\n item: TocEntry;\n isActive: boolean;\n className?: string;\n}>) => {\n return (\n <li\n className={cn(\n \"truncate\",\n isActive\n ? \"text-primary\"\n : \"text-foreground/65 dark:text-foreground/75\",\n className,\n )}\n title={item.value}\n >\n <AnchorLink\n to={`#${item.id}`}\n {...{ [DATA_ANCHOR_ATTR]: item.id }}\n className={cn(\n isActive\n ? \"text-primary\"\n : \"text-foreground/65 dark:text-foreground/75 hover:text-foreground\",\n )}\n >\n {item.value}\n </AnchorLink>\n {children}\n </li>\n );\n};\n\nexport const Toc = ({ entries }: { entries: TocEntry[] }) => {\n const { activeAnchor } = useViewportAnchor();\n const listWrapperRef = useRef<HTMLUListElement>(null);\n const paintedOnce = useRef(false);\n const [indicatorStyle, setIndicatorStyles] = useState<CSSProperties>({\n top: 0,\n opacity: 0,\n });\n\n // synchronize active anchor indicator with the scroll position\n useEffect(() => {\n if (!listWrapperRef.current) return;\n\n const activeElement = listWrapperRef.current.querySelector(\n `[${DATA_ANCHOR_ATTR}='${activeAnchor}']`,\n );\n\n if (!activeElement) {\n setIndicatorStyles({ top: 0, opacity: 0 });\n return;\n }\n\n const topParent = listWrapperRef.current.getBoundingClientRect().top;\n const topElement = activeElement.getBoundingClientRect().top;\n\n setIndicatorStyles({\n opacity: 1,\n top: `${topElement - topParent}px`,\n });\n\n if (paintedOnce.current) return;\n\n // after all is painted, the indicator should animate\n requestIdleCallback(() => {\n paintedOnce.current = true;\n });\n }, [activeAnchor]);\n\n return (\n <aside className=\"sticky scrollbar top-[--header-height] h-[calc(100vh-var(--header-height))] pt-[--padding-content-top] pb-[--padding-content-bottom] overflow-y-auto ps-1 text-sm\">\n <div className=\"flex items-center gap-2 font-medium mb-2\">\n <ListTreeIcon size={16} />\n On this page\n </div>\n <div className=\"relative ms-2 ps-4\">\n <div className=\"absolute inset-0 right-auto bg-border w-[2px]\" />\n <div\n className={cn(\n \"absolute -left-px -translate-y-1 h-6 w-[4px] rounded bg-primary\",\n paintedOnce.current &&\n \"ease-out [transition:top_150ms,opacity_325ms]\",\n )}\n style={indicatorStyle}\n />\n <ul\n ref={listWrapperRef}\n className=\"relative font-medium list-none space-y-2\"\n >\n {entries.map((item) => (\n <TocItem\n isActive={item.id === activeAnchor}\n key={item.id}\n item={item}\n className=\"pl-0\"\n >\n {item.children && (\n <ul className=\"list-none pl-4 pt-2 space-y-2\">\n {item.children.map((child) => (\n <TocItem\n item={child}\n isActive={child.id === activeAnchor}\n key={child.id}\n />\n ))}\n </ul>\n )}\n </TocItem>\n ))}\n </ul>\n </div>\n </aside>\n );\n};\n","import { useMDXComponents } from \"@mdx-js/react\";\nimport slugify from \"@sindresorhus/slugify\";\nimport { Helmet } from \"@zudoku/react-helmet-async\";\nimport { type PropsWithChildren, useEffect } from \"react\";\nimport { Link, useHref } from \"react-router\";\nimport { CategoryHeading } from \"../../components/CategoryHeading.js\";\nimport { Heading } from \"../../components/Heading.js\";\nimport { ProseClasses } from \"../../components/Markdown.js\";\nimport {\n useCurrentItem,\n usePrevNext,\n} from \"../../components/navigation/utils.js\";\nimport type { MdxComponentsType } from \"../../util/MdxComponents.js\";\nimport { cn } from \"../../util/cn.js\";\nimport { Toc } from \"./Toc.js\";\nimport { MarkdownPluginDefaultOptions, MDXImport } from \"./index.js\";\n\ndeclare global {\n interface Window {\n __getReactRefreshIgnoredExports?: (args: {\n id: string;\n }) => string[] | undefined;\n }\n}\n\nconst MarkdownHeadings = {\n h2: ({ children, id }) => (\n <Heading level={2} id={id} registerSidebarAnchor>\n {children}\n </Heading>\n ),\n h3: ({ children, id }) => (\n <Heading level={3} id={id} registerSidebarAnchor>\n {children}\n </Heading>\n ),\n} satisfies MdxComponentsType;\n\nexport const MdxPage = ({\n mdxComponent: MdxComponent,\n file,\n frontmatter = {},\n defaultOptions,\n tableOfContents,\n excerpt,\n}: PropsWithChildren<\n Omit<MDXImport, \"default\"> & {\n file: string;\n mdxComponent: MDXImport[\"default\"];\n defaultOptions?: MarkdownPluginDefaultOptions;\n }\n>) => {\n const categoryTitle = useCurrentItem()?.categoryLabel;\n let canonicalUrl = null;\n const path = useHref(\"\");\n if (typeof window !== \"undefined\") {\n const domain = window.location.origin;\n canonicalUrl = `${domain}${path}`;\n }\n\n const title = frontmatter.title;\n const category = frontmatter.category ?? categoryTitle;\n const hideToc = frontmatter.toc === false || defaultOptions?.toc === false;\n const pageTitle =\n tableOfContents.find((item) => item.depth === 1)?.value ?? title;\n const hidePager =\n frontmatter.disablePager ?? defaultOptions?.disablePager ?? false;\n\n const tocEntries =\n tableOfContents.find((item) => item.depth === 1)?.children ??\n // if `title` is provided by frontmatter it does not appear in the table of contents\n tableOfContents.filter((item) => item.depth === 2);\n\n const showToc = !hideToc && tocEntries.length > 0;\n\n const { prev, next } = usePrevNext();\n\n useEffect(() => {\n if (process.env.NODE_ENV === \"development\") {\n window.__getReactRefreshIgnoredExports = ({ id }) => {\n if (!id.endsWith(file)) return;\n\n return [\"frontmatter\", \"tableOfContents\"];\n };\n\n return () => {\n window.__getReactRefreshIgnoredExports = undefined;\n };\n }\n }, [file]);\n\n return (\n <div className=\"xl:grid grid-cols-[--sidecar-grid-cols] gap-8 justify-between\">\n <Helmet>\n <title>{pageTitle}</title>\n {excerpt && <meta name=\"description\" content={excerpt} />}\n {canonicalUrl && <link rel=\"canonical\" href={canonicalUrl} />}\n </Helmet>\n <div\n className={cn(\n ProseClasses,\n \"max-w-full xl:w-full xl:max-w-prose flex-1 flex-shrink pt-[--padding-content-top] pb-[--padding-content-bottom]\",\n )}\n >\n {(category || title) && (\n <header>\n {category && <CategoryHeading>{category}</CategoryHeading>}\n {title && (\n <Heading level={1} id={slugify(title)}>\n {title}\n </Heading>\n )}\n </header>\n )}\n <MdxComponent\n components={{ ...useMDXComponents(), ...MarkdownHeadings }}\n />\n {!hidePager && (\n <>\n <hr />\n <div className=\"not-prose flex flex-wrap items-center justify-between gap-2 lg:gap-8\">\n {prev ? (\n <Link\n to={prev.id}\n className=\"flex flex-col items-stretch gap-2 flex-1 min-w-max border rounded px-6 py-4 text-start hover:border-primary/85 transition shadow-sm hover:shadow-md\"\n title={prev.label}\n >\n <div className=\"text-sm text-muted-foreground\">\n ← Previous page\n </div>\n <div className=\"text-lg text-primary truncate\">\n {prev.label}\n </div>\n </Link>\n ) : (\n <div className=\"flex-1\" />\n )}\n {next ? (\n <Link\n to={next.id}\n className=\"flex flex-col items-stretch gap-2 flex-1 min-w-max border rounded px-6 py-4 text-end hover:border-primary/85 transition shadow-sm hover:shadow-md\"\n title={next.label}\n >\n <div className=\"text-sm text-muted-foreground\">\n Next page →\n </div>\n <div className=\"text-lg text-primary truncate\">\n {next.label}\n </div>\n </Link>\n ) : (\n <div className=\"flex-1\" />\n )}\n </div>\n </>\n )}\n </div>\n <div className=\"hidden xl:block\">\n {showToc && <Toc entries={tocEntries} />}\n </div>\n </div>\n );\n};\n"],"names":["DATA_ANCHOR_ATTR","TocItem","item","children","className","isActive","jsxs","cn","jsx","AnchorLink","Toc","entries","activeAnchor","useViewportAnchor","listWrapperRef","useRef","paintedOnce","indicatorStyle","setIndicatorStyles","useState","useEffect","activeElement","topParent","topElement","ListTreeIcon","child","MarkdownHeadings","id","Heading","MdxPage","MdxComponent","file","frontmatter","defaultOptions","tableOfContents","excerpt","categoryTitle","_a","useCurrentItem","canonicalUrl","path","useHref","title","category","hideToc","pageTitle","_b","hidePager","tocEntries","_c","showToc","prev","next","usePrevNext","Helmet","ProseClasses","CategoryHeading","slugify","useMDXComponents","Fragment","Link"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { j as e } from "./jsx-runtime-Bdg6XQ1m.js";
|
|
2
2
|
import { O as n } from "./chunk-SYFQ2XB5-QijJrSf0.js";
|
|
3
|
-
import { j as m } from "./
|
|
3
|
+
import { j as m } from "./hook-Dnj3SwPC.js";
|
|
4
4
|
import { O as j, G as O } from "./context-rwLGh-6_.js";
|
|
5
5
|
const h = ({
|
|
6
6
|
basePath: i,
|
|
@@ -33,4 +33,4 @@ const h = ({
|
|
|
33
33
|
export {
|
|
34
34
|
h as OpenApiRoute
|
|
35
35
|
};
|
|
36
|
-
//# sourceMappingURL=OpenApiRoute-
|
|
36
|
+
//# sourceMappingURL=OpenApiRoute-BP9kzG5k.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenApiRoute-
|
|
1
|
+
{"version":3,"file":"OpenApiRoute-BP9kzG5k.js","sources":["../src/lib/plugins/openapi/OpenApiRoute.tsx"],"sourcesContent":["import { Outlet } from \"react-router\";\nimport { joinPath } from \"../../util/joinPath.js\";\nimport type { GraphQLClient } from \"./client/GraphQLClient.js\";\nimport { GraphQLProvider } from \"./client/GraphQLContext.js\";\nimport { OasConfigProvider } from \"./context.js\";\nimport { type OasPluginConfig } from \"./interfaces.js\";\n\nexport const OpenApiRoute = ({\n basePath,\n versions,\n version,\n config,\n client,\n}: {\n basePath: string;\n version?: string;\n versions: string[];\n config: OasPluginConfig;\n client: GraphQLClient;\n}) => {\n const input =\n config.type === \"file\"\n ? {\n type: config.type,\n input: version\n ? config.input[version]!\n : Object.values(config.input).at(0)!,\n }\n : { type: config.type, input: config.input };\n\n const currentVersion = version ?? versions.at(0);\n\n return (\n <OasConfigProvider\n value={{\n config: {\n ...config,\n version: currentVersion,\n versions: Object.fromEntries(\n versions.map((version) => [version, joinPath(basePath, version)]),\n ),\n ...input,\n },\n }}\n >\n <GraphQLProvider client={client}>\n <Outlet />\n </GraphQLProvider>\n </OasConfigProvider>\n );\n};\n"],"names":["OpenApiRoute","basePath","versions","version","config","client","input","currentVersion","jsx","OasConfigProvider","joinPath","GraphQLProvider","Outlet"],"mappings":";;;;AAOO,MAAMA,IAAe,CAAC;AAAA,EAC3B,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,QAAAC;AAAA,EACA,QAAAC;AACF,MAMM;AACE,QAAAC,IACJF,EAAO,SAAS,SACZ;AAAA,IACE,MAAMA,EAAO;AAAA,IACb,OAAOD,IACHC,EAAO,MAAMD,CAAO,IACpB,OAAO,OAAOC,EAAO,KAAK,EAAE,GAAG,CAAC;AAAA,EAAA,IAEtC,EAAE,MAAMA,EAAO,MAAM,OAAOA,EAAO,MAAM,GAEzCG,IAAiBJ,KAAWD,EAAS,GAAG,CAAC;AAG7C,SAAAM,gBAAAA,EAAA;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,OAAO;AAAA,QACL,QAAQ;AAAA,UACN,GAAGL;AAAA,UACH,SAASG;AAAA,UACT,UAAU,OAAO;AAAA,YACfL,EAAS,IAAI,CAACC,MAAY,CAACA,GAASO,EAAST,GAAUE,CAAO,CAAC,CAAC;AAAA,UAClE;AAAA,UACA,GAAGG;AAAA,QAAA;AAAA,MAEP;AAAA,MAEA,UAACE,gBAAAA,EAAAA,IAAAG,GAAA,EAAgB,QAAAN,GACf,UAAAG,gBAAAA,EAAA,IAACI,KAAO,EACV,CAAA;AAAA,IAAA;AAAA,EACF;AAEJ;"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { j as g } from "./jsx-runtime-Bdg6XQ1m.js";
|
|
2
|
-
import {
|
|
2
|
+
import { a as vr, o as br, p as Ro } from "./hook-Dnj3SwPC.js";
|
|
3
3
|
import { H as qo } from "./index.esm-9-TF9KQB.js";
|
|
4
4
|
import { b as No, a as ko } from "./chunk-SYFQ2XB5-QijJrSf0.js";
|
|
5
|
-
import { S as Eo, a as Ao, b as Io, c as Lo, e as Uo } from "./Select-
|
|
6
|
-
import { a as br } from "./state-bfQxaDxU.js";
|
|
5
|
+
import { S as Eo, a as Ao, b as Io, c as Lo, e as Uo } from "./Select-NSz0gku6.js";
|
|
7
6
|
import { C as Fo } from "./CategoryHeading-MYL1u_6K.js";
|
|
8
7
|
import { I as _o, M as Re, H as Be, P as Le } from "./Markdown-8mv9nhGd.js";
|
|
9
8
|
import { c as le } from "./cn-qaFjX9_3.js";
|
|
@@ -11,7 +10,7 @@ import { ChevronsUpDownIcon as Bo, CheckIcon as Ho, CopyIcon as Mo, UnfoldVertic
|
|
|
11
10
|
import { useContext as Zo, useTransition as eo, useState as ge, useRef as xr, useEffect as $r, useLayoutEffect as ea, useMemo as to, useCallback as ta } from "react";
|
|
12
11
|
import { Button as ro } from "./ui/Button.js";
|
|
13
12
|
import { a as ra, u as jr } from "./context-rwLGh-6_.js";
|
|
14
|
-
import { g as rt, C as no, a as na, b as oa, c as _r, P as aa, m as oo, d as ia } from "./index-
|
|
13
|
+
import { g as rt, C as no, a as na, b as oa, c as _r, P as aa, m as oo, d as ia } from "./index-CZjcfK-H.js";
|
|
15
14
|
import { Tabs as sa, TabsList as la, TabsTrigger as ca, TabsContent as ua } from "./ui/Tabs.js";
|
|
16
15
|
import { Card as be, CardHeader as fa, CardTitle as pa, CardContent as da } from "./ui/Card.js";
|
|
17
16
|
import { c as ha } from "./index-Djenk2Hj.js";
|
|
@@ -5117,7 +5116,7 @@ const Ys = rt(
|
|
|
5117
5116
|
}
|
|
5118
5117
|
}
|
|
5119
5118
|
`
|
|
5120
|
-
),
|
|
5119
|
+
), bl = ({
|
|
5121
5120
|
tag: e,
|
|
5122
5121
|
untagged: r
|
|
5123
5122
|
}) => {
|
|
@@ -5175,7 +5174,7 @@ const Ys = rt(
|
|
|
5175
5174
|
] });
|
|
5176
5175
|
};
|
|
5177
5176
|
export {
|
|
5178
|
-
|
|
5177
|
+
bl as OperationList,
|
|
5179
5178
|
Ys as OperationsFragment
|
|
5180
5179
|
};
|
|
5181
|
-
//# sourceMappingURL=OperationList-
|
|
5180
|
+
//# sourceMappingURL=OperationList-c72qPMtm.js.map
|