zudoku 0.40.1 → 0.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app/main.js +7 -4
- package/dist/app/main.js.map +1 -1
- package/dist/cli/cli.js +12 -1
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/common/machine-id/lib.js +1 -0
- package/dist/cli/common/machine-id/lib.js.map +1 -1
- package/dist/config/ZuploBuildConfig.d.ts +155 -0
- package/dist/config/ZuploBuildConfig.js +29 -0
- package/dist/config/ZuploBuildConfig.js.map +1 -0
- package/dist/config/loader.js +0 -3
- package/dist/config/loader.js.map +1 -1
- package/dist/config/validators/common.d.ts +17 -11
- package/dist/config/validators/common.js +1 -1
- package/dist/config/validators/common.js.map +1 -1
- package/dist/config/validators/validate.d.ts +7 -5
- package/dist/lib/authentication/providers/openid.d.ts +3 -1
- package/dist/lib/authentication/providers/openid.js +17 -11
- package/dist/lib/authentication/providers/openid.js.map +1 -1
- package/dist/lib/components/BuildCheck.d.ts +4 -0
- package/dist/lib/components/BuildCheck.js +22 -0
- package/dist/lib/components/BuildCheck.js.map +1 -0
- package/dist/lib/components/Zudoku.js +1 -3
- package/dist/lib/components/Zudoku.js.map +1 -1
- package/dist/lib/components/context/ViewportAnchorContext.js +8 -9
- package/dist/lib/components/context/ViewportAnchorContext.js.map +1 -1
- package/dist/lib/components/index.d.ts +4 -0
- package/dist/lib/components/index.js +2 -0
- package/dist/lib/components/index.js.map +1 -1
- package/dist/lib/components/navigation/PoweredByZudoku.js +2 -1
- package/dist/lib/components/navigation/PoweredByZudoku.js.map +1 -1
- package/dist/lib/components/navigation/ZuploLogo.d.ts +3 -0
- package/dist/lib/components/navigation/ZuploLogo.js +4 -0
- package/dist/lib/components/navigation/ZuploLogo.js.map +1 -0
- package/dist/lib/oas/parser/index.d.ts +1 -1
- package/dist/lib/oas/parser/index.js +3 -2
- package/dist/lib/oas/parser/index.js.map +1 -1
- package/dist/lib/plugins/openapi/OperationList.d.ts +1 -1
- package/dist/lib/plugins/openapi/OperationList.js +6 -4
- package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
- package/dist/lib/plugins/openapi/util/getRoutes.js +20 -13
- package/dist/lib/plugins/openapi/util/getRoutes.js.map +1 -1
- package/dist/lib/util/ensureArray.d.ts +1 -0
- package/dist/lib/util/ensureArray.js +2 -0
- package/dist/lib/util/ensureArray.js.map +1 -0
- package/dist/vite/api/SchemaManager.d.ts +36 -0
- package/dist/vite/api/SchemaManager.js +120 -0
- package/dist/vite/api/SchemaManager.js.map +1 -0
- package/dist/vite/api/SchemaManager.test.d.ts +1 -0
- package/dist/vite/api/SchemaManager.test.js +106 -0
- package/dist/vite/api/SchemaManager.test.js.map +1 -0
- package/dist/vite/config.js +5 -1
- package/dist/vite/config.js.map +1 -1
- package/dist/vite/plugin-api.js +38 -110
- package/dist/vite/plugin-api.js.map +1 -1
- package/dist/vite/plugin-sidebar.d.ts +3 -1
- package/dist/vite/plugin-sidebar.js +8 -2
- package/dist/vite/plugin-sidebar.js.map +1 -1
- package/dist/zuplo/env.d.ts +26 -0
- package/dist/zuplo/env.js +17 -0
- package/dist/zuplo/env.js.map +1 -1
- package/dist/zuplo/with-zuplo.d.ts +3 -0
- package/dist/zuplo/with-zuplo.js +6 -9
- package/dist/zuplo/with-zuplo.js.map +1 -1
- package/lib/{Markdown-C5h6bxbE.js → Markdown-DqDbGCj2.js} +314 -315
- package/lib/{Markdown-C5h6bxbE.js.map → Markdown-DqDbGCj2.js.map} +1 -1
- package/lib/{MdxPage-B66ht0D_.js → MdxPage-DGVqOhzg.js} +5 -5
- package/lib/{MdxPage-B66ht0D_.js.map → MdxPage-DGVqOhzg.js.map} +1 -1
- package/lib/{OasProvider-BKPF0Pbt.js → OasProvider-qeJNCq-h.js} +2 -2
- package/lib/{OasProvider-BKPF0Pbt.js.map → OasProvider-qeJNCq-h.js.map} +1 -1
- package/lib/{OperationList-0bhBU7ME.js → OperationList-CBpQALZd.js} +798 -794
- package/lib/{OperationList-0bhBU7ME.js.map → OperationList-CBpQALZd.js.map} +1 -1
- package/lib/{Pagination-Bt1czAiJ.js → Pagination-PfYTF0cF.js} +2 -2
- package/lib/{Pagination-Bt1czAiJ.js.map → Pagination-PfYTF0cF.js.map} +1 -1
- package/lib/{SchemaList-CsTIT1pi.js → SchemaList-BIzyXPnY.js} +5 -5
- package/lib/{SchemaList-CsTIT1pi.js.map → SchemaList-BIzyXPnY.js.map} +1 -1
- package/lib/{SchemaView-DCSWtnYr.js → SchemaView-DwlVvFfp.js} +2 -2
- package/lib/{SchemaView-DCSWtnYr.js.map → SchemaView-DwlVvFfp.js.map} +1 -1
- package/lib/{SlotletProvider-VUmTNmLZ.js → SlotletProvider-p4XaFFOh.js} +2 -2
- package/lib/{SlotletProvider-VUmTNmLZ.js.map → SlotletProvider-p4XaFFOh.js.map} +1 -1
- package/lib/{Toc-BK39DQvI.js → Toc-BVdRaIC0.js} +2 -2
- package/lib/{Toc-BK39DQvI.js.map → Toc-BVdRaIC0.js.map} +1 -1
- package/lib/{createServer-DLN7APz_.js → createServer-D_5UkLtY.js} +1459 -1485
- package/lib/createServer-D_5UkLtY.js.map +1 -0
- package/lib/{index-tpbiZmWp.js → index-B7lRu87v.js} +686 -648
- package/lib/index-B7lRu87v.js.map +1 -0
- package/lib/index-BpThvE5R.js +66 -0
- package/lib/index-BpThvE5R.js.map +1 -0
- package/lib/{index-Ba_X7EnR.js → index-CxdJ8TBB.js} +255 -249
- package/lib/{index-Ba_X7EnR.js.map → index-CxdJ8TBB.js.map} +1 -1
- package/lib/index-ueM1dihS.js +247 -0
- package/lib/index-ueM1dihS.js.map +1 -0
- package/lib/{index-DcHeSvkE.js → public-api-CrAQFYc4.js} +651 -684
- package/lib/public-api-CrAQFYc4.js.map +1 -0
- package/lib/zudoku.auth-openid.js +144 -138
- package/lib/zudoku.auth-openid.js.map +1 -1
- package/lib/zudoku.components.js +23 -22
- package/lib/zudoku.plugin-api-catalog.js +2 -2
- package/lib/zudoku.plugin-api-keys.js +1 -1
- package/lib/zudoku.plugin-custom-pages.js +1 -1
- package/lib/zudoku.plugin-markdown.js +1 -1
- package/lib/zudoku.plugin-openapi.js +1 -1
- package/package.json +2 -2
- package/src/app/main.tsx +12 -1
- package/src/lib/authentication/providers/openid.tsx +23 -12
- package/src/lib/components/BuildCheck.tsx +60 -0
- package/src/lib/components/Zudoku.tsx +1 -3
- package/src/lib/components/context/ViewportAnchorContext.tsx +8 -15
- package/src/lib/components/index.ts +2 -0
- package/src/lib/components/navigation/PoweredByZudoku.tsx +8 -3
- package/src/lib/components/navigation/ZuploLogo.tsx +14 -0
- package/src/lib/oas/parser/index.ts +4 -2
- package/src/lib/plugins/openapi/OperationList.tsx +15 -3
- package/src/lib/plugins/openapi/util/getRoutes.tsx +21 -13
- package/src/lib/util/ensureArray.ts +3 -0
- package/client.d.ts +0 -8
- package/dist/lib/oas/parser/upgrade/index.d.ts +0 -9
- package/dist/lib/oas/parser/upgrade/index.js +0 -90
- package/dist/lib/oas/parser/upgrade/index.js.map +0 -1
- package/lib/createServer-DLN7APz_.js.map +0 -1
- package/lib/index-DcHeSvkE.js.map +0 -1
- package/lib/index-tpbiZmWp.js.map +0 -1
- package/src/lib/oas/parser/upgrade/index.ts +0 -103
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { LoadedConfig } from "../../config/config.js";
|
|
2
|
+
import type { Processor } from "../../config/validators/BuildSchema.js";
|
|
3
|
+
import type { OpenAPIDocument } from "../../lib/oas/parser/index.js";
|
|
4
|
+
type ProcessedSchema = {
|
|
5
|
+
schema: OpenAPIDocument;
|
|
6
|
+
version: string;
|
|
7
|
+
inputPath: string;
|
|
8
|
+
};
|
|
9
|
+
export declare class SchemaManager {
|
|
10
|
+
private storeDir;
|
|
11
|
+
private processors;
|
|
12
|
+
private processedSchemas;
|
|
13
|
+
private fileToNavigationId;
|
|
14
|
+
config: LoadedConfig;
|
|
15
|
+
trackedFiles: Set<string>;
|
|
16
|
+
schemaMap: Map<string, {
|
|
17
|
+
filePath: string;
|
|
18
|
+
processedTime: number;
|
|
19
|
+
}>;
|
|
20
|
+
constructor({ storeDir, config, processors, }: {
|
|
21
|
+
storeDir: string;
|
|
22
|
+
config: LoadedConfig;
|
|
23
|
+
processors: Processor[];
|
|
24
|
+
});
|
|
25
|
+
private getNavigationIdForFile;
|
|
26
|
+
processSchema: (input: string) => Promise<{
|
|
27
|
+
schema: OpenAPIDocument;
|
|
28
|
+
version: string;
|
|
29
|
+
inputPath: string;
|
|
30
|
+
} | undefined>;
|
|
31
|
+
processAllSchemas: () => Promise<void>;
|
|
32
|
+
getLatestSchema: (navigationId: string) => ProcessedSchema | undefined;
|
|
33
|
+
getSchemasForId: (navigationId: string) => ProcessedSchema[] | undefined;
|
|
34
|
+
private validateSchema;
|
|
35
|
+
}
|
|
36
|
+
export {};
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { $RefParser, } from "@apidevtools/json-schema-ref-parser";
|
|
2
|
+
import { upgrade, validate } from "@scalar/openapi-parser";
|
|
3
|
+
import fs from "node:fs/promises";
|
|
4
|
+
import path from "node:path";
|
|
5
|
+
import { ensureArray } from "../../lib/util/ensureArray.js";
|
|
6
|
+
import { generateCode } from "./schema-codegen.js";
|
|
7
|
+
const FALLBACK_VERSION = "default";
|
|
8
|
+
export class SchemaManager {
|
|
9
|
+
storeDir;
|
|
10
|
+
processors;
|
|
11
|
+
processedSchemas = {};
|
|
12
|
+
fileToNavigationId = new Map();
|
|
13
|
+
config;
|
|
14
|
+
trackedFiles = new Set();
|
|
15
|
+
schemaMap = new Map();
|
|
16
|
+
constructor({ storeDir, config, processors, }) {
|
|
17
|
+
this.storeDir = storeDir;
|
|
18
|
+
this.config = config;
|
|
19
|
+
this.processors = [
|
|
20
|
+
({ schema }) => upgrade(schema).specification,
|
|
21
|
+
...processors,
|
|
22
|
+
];
|
|
23
|
+
}
|
|
24
|
+
getNavigationIdForFile = (input) => {
|
|
25
|
+
const filePath = path.resolve(this.config.__meta.rootDir, input);
|
|
26
|
+
if (this.fileToNavigationId.has(filePath)) {
|
|
27
|
+
return this.fileToNavigationId.get(filePath);
|
|
28
|
+
}
|
|
29
|
+
const apis = ensureArray(this.config.apis ?? []);
|
|
30
|
+
for (const apiConfig of apis) {
|
|
31
|
+
if (!apiConfig || apiConfig.type !== "file" || !apiConfig.navigationId)
|
|
32
|
+
continue;
|
|
33
|
+
const inputs = ensureArray(apiConfig.input).map((i) => path.resolve(this.config.__meta.rootDir, i));
|
|
34
|
+
if (inputs.includes(filePath)) {
|
|
35
|
+
this.fileToNavigationId.set(filePath, apiConfig.navigationId);
|
|
36
|
+
return apiConfig.navigationId;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
processSchema = async (input) => {
|
|
41
|
+
const filePath = path.resolve(this.config.__meta.rootDir, input);
|
|
42
|
+
const navigationId = this.getNavigationIdForFile(filePath);
|
|
43
|
+
if (!navigationId) {
|
|
44
|
+
// eslint-disable-next-line no-console
|
|
45
|
+
console.warn(`No navigation ID found for file ${input}`);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
const parser = new $RefParser();
|
|
49
|
+
const schema = await parser.bundle(filePath);
|
|
50
|
+
parser.$refs.paths().forEach((file) => this.trackedFiles.add(file));
|
|
51
|
+
const validatedSchema = await this.validateSchema(schema, filePath);
|
|
52
|
+
const processedSchema = await this.processors.reduce(async (schema, processor) => processor({
|
|
53
|
+
schema: await schema,
|
|
54
|
+
file: filePath,
|
|
55
|
+
dereference: (schema) => new $RefParser().dereference(schema),
|
|
56
|
+
}), Promise.resolve(validatedSchema));
|
|
57
|
+
const processedTime = Date.now();
|
|
58
|
+
const code = await generateCode(processedSchema, filePath);
|
|
59
|
+
const processedFilePath = path.posix.join(this.storeDir, `${path.basename(filePath)}.js`);
|
|
60
|
+
await fs.writeFile(processedFilePath, code);
|
|
61
|
+
this.schemaMap.set(filePath, {
|
|
62
|
+
filePath: processedFilePath,
|
|
63
|
+
processedTime,
|
|
64
|
+
});
|
|
65
|
+
const processed = {
|
|
66
|
+
schema: processedSchema,
|
|
67
|
+
version: processedSchema.info.version || FALLBACK_VERSION,
|
|
68
|
+
inputPath: filePath,
|
|
69
|
+
};
|
|
70
|
+
const schemas = this.processedSchemas[navigationId];
|
|
71
|
+
if (!schemas) {
|
|
72
|
+
throw new Error(`No schemas found for navigation ID ${navigationId}.`);
|
|
73
|
+
}
|
|
74
|
+
const index = schemas.findIndex((s) => s.inputPath === filePath);
|
|
75
|
+
if (index > -1) {
|
|
76
|
+
schemas[index] = processed;
|
|
77
|
+
}
|
|
78
|
+
this.fileToNavigationId.set(filePath, navigationId);
|
|
79
|
+
return processed;
|
|
80
|
+
};
|
|
81
|
+
processAllSchemas = async () => {
|
|
82
|
+
this.schemaMap.clear();
|
|
83
|
+
this.trackedFiles.clear();
|
|
84
|
+
this.fileToNavigationId.clear();
|
|
85
|
+
this.processedSchemas = {};
|
|
86
|
+
const apis = ensureArray(this.config.apis ?? []);
|
|
87
|
+
for (const apiConfig of apis) {
|
|
88
|
+
if (apiConfig.type !== "file" || !apiConfig.navigationId)
|
|
89
|
+
continue;
|
|
90
|
+
const inputs = ensureArray(apiConfig.input);
|
|
91
|
+
if (inputs.length === 0)
|
|
92
|
+
throw new Error("No schema found");
|
|
93
|
+
this.processedSchemas[apiConfig.navigationId] = inputs.map((input) => ({
|
|
94
|
+
schema: {},
|
|
95
|
+
version: "",
|
|
96
|
+
inputPath: path.resolve(this.config.__meta.rootDir, input),
|
|
97
|
+
}));
|
|
98
|
+
const results = await Promise.allSettled(inputs.map((input) => this.processSchema(input)));
|
|
99
|
+
const errors = results.flatMap((r) => r.status === "rejected" ? r.reason : []);
|
|
100
|
+
if (errors.length > 0) {
|
|
101
|
+
throw new Error(`Failed to process schemas for ${apiConfig.navigationId}: ${errors.join(", ")}`);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
getLatestSchema = (navigationId) => this.processedSchemas[navigationId]?.at(0);
|
|
106
|
+
getSchemasForId = (navigationId) => this.processedSchemas[navigationId];
|
|
107
|
+
validateSchema = async (schema, filePath) => {
|
|
108
|
+
const validated = await validate(schema);
|
|
109
|
+
if (validated.errors?.length) {
|
|
110
|
+
// eslint-disable-next-line no-console
|
|
111
|
+
console.warn(`Schema warnings in ${filePath}:`);
|
|
112
|
+
for (const error of validated.errors) {
|
|
113
|
+
// eslint-disable-next-line no-console
|
|
114
|
+
console.warn(error);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return schema;
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=SchemaManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SchemaManager.js","sourceRoot":"","sources":["../../../src/vite/api/SchemaManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
2
|
+
import os from "node:os";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { afterEach, beforeEach, describe, expect, it } from "vitest";
|
|
5
|
+
import { SchemaManager } from "./SchemaManager.js";
|
|
6
|
+
const mockSchema = {
|
|
7
|
+
openapi: "3.0.0",
|
|
8
|
+
info: {
|
|
9
|
+
title: "Test API",
|
|
10
|
+
version: "1.0.0",
|
|
11
|
+
},
|
|
12
|
+
paths: {},
|
|
13
|
+
};
|
|
14
|
+
describe("SchemaManager", () => {
|
|
15
|
+
let tempDir;
|
|
16
|
+
let storeDir;
|
|
17
|
+
beforeEach(async () => {
|
|
18
|
+
tempDir = await fs.mkdtemp(path.join(os.tmpdir(), "zudoku-test-"));
|
|
19
|
+
storeDir = path.join(tempDir, "store");
|
|
20
|
+
await fs.mkdir(storeDir);
|
|
21
|
+
});
|
|
22
|
+
afterEach(async () => {
|
|
23
|
+
await fs.rm(tempDir, { recursive: true, force: true });
|
|
24
|
+
});
|
|
25
|
+
it("should process schema and store it", async () => {
|
|
26
|
+
const schemaPath = path.join(tempDir, "openapi.json");
|
|
27
|
+
await fs.writeFile(schemaPath, JSON.stringify(mockSchema));
|
|
28
|
+
const config = {
|
|
29
|
+
__meta: {
|
|
30
|
+
rootDir: tempDir,
|
|
31
|
+
moduleDir: path.join(tempDir, "node_modules"),
|
|
32
|
+
mode: "module",
|
|
33
|
+
dependencies: [],
|
|
34
|
+
configPath: path.join(tempDir, "zudoku.config.ts"),
|
|
35
|
+
},
|
|
36
|
+
apis: [
|
|
37
|
+
{
|
|
38
|
+
type: "file",
|
|
39
|
+
navigationId: "test-api",
|
|
40
|
+
input: schemaPath,
|
|
41
|
+
},
|
|
42
|
+
],
|
|
43
|
+
};
|
|
44
|
+
const manager = new SchemaManager({ storeDir, config, processors: [] });
|
|
45
|
+
await manager.processAllSchemas();
|
|
46
|
+
const latestSchema = manager.getLatestSchema("test-api");
|
|
47
|
+
expect(latestSchema).toBeDefined();
|
|
48
|
+
expect(latestSchema?.version).toBe("1.0.0");
|
|
49
|
+
});
|
|
50
|
+
it("should handle multiple versions of the same schema", async () => {
|
|
51
|
+
const schemaPath = path.join(tempDir, "openapi.json");
|
|
52
|
+
const schemaPathV2 = path.join(tempDir, "openapi-v2.json");
|
|
53
|
+
await fs.writeFile(schemaPath, JSON.stringify(mockSchema));
|
|
54
|
+
await fs.writeFile(schemaPathV2, JSON.stringify({
|
|
55
|
+
...mockSchema,
|
|
56
|
+
info: { ...mockSchema.info, version: "2.0.0" },
|
|
57
|
+
}));
|
|
58
|
+
const config = {
|
|
59
|
+
__meta: {
|
|
60
|
+
rootDir: tempDir,
|
|
61
|
+
moduleDir: path.join(tempDir, "node_modules"),
|
|
62
|
+
mode: "module",
|
|
63
|
+
dependencies: [],
|
|
64
|
+
configPath: path.join(tempDir, "zudoku.config.ts"),
|
|
65
|
+
},
|
|
66
|
+
apis: [
|
|
67
|
+
{
|
|
68
|
+
type: "file",
|
|
69
|
+
navigationId: "test-api",
|
|
70
|
+
input: [schemaPathV2, schemaPath], // v2 first, then v1
|
|
71
|
+
},
|
|
72
|
+
],
|
|
73
|
+
};
|
|
74
|
+
const manager = new SchemaManager({ storeDir, config, processors: [] });
|
|
75
|
+
await manager.processAllSchemas();
|
|
76
|
+
const schemas = manager.getSchemasForId("test-api");
|
|
77
|
+
expect(schemas).toHaveLength(2);
|
|
78
|
+
expect(schemas?.[0]?.version).toBe("2.0.0"); // v2 first
|
|
79
|
+
expect(schemas?.[1]?.version).toBe("1.0.0"); // v1 second
|
|
80
|
+
});
|
|
81
|
+
it("should track processed files", async () => {
|
|
82
|
+
const schemaPath = path.join(tempDir, "openapi.json");
|
|
83
|
+
await fs.writeFile(schemaPath, JSON.stringify(mockSchema));
|
|
84
|
+
const config = {
|
|
85
|
+
__meta: {
|
|
86
|
+
rootDir: tempDir,
|
|
87
|
+
moduleDir: path.join(tempDir, "node_modules"),
|
|
88
|
+
mode: "module",
|
|
89
|
+
dependencies: [],
|
|
90
|
+
configPath: path.join(tempDir, "zudoku.config.ts"),
|
|
91
|
+
},
|
|
92
|
+
apis: [
|
|
93
|
+
{
|
|
94
|
+
type: "file",
|
|
95
|
+
navigationId: "test-api",
|
|
96
|
+
input: schemaPath,
|
|
97
|
+
},
|
|
98
|
+
],
|
|
99
|
+
};
|
|
100
|
+
const manager = new SchemaManager({ storeDir, config, processors: [] });
|
|
101
|
+
await manager.processAllSchemas();
|
|
102
|
+
expect(manager.trackedFiles.size).toBeGreaterThan(0);
|
|
103
|
+
expect(manager.trackedFiles.has(schemaPath)).toBe(true);
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
//# sourceMappingURL=SchemaManager.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SchemaManager.test.js","sourceRoot":"","sources":["../../../src/vite/api/SchemaManager.test.ts"],"names":[],"mappings":"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"}
|
package/dist/vite/config.js
CHANGED
|
@@ -10,6 +10,7 @@ import { logger } from "../cli/common/logger.js";
|
|
|
10
10
|
import { tryLoadZudokuConfig } from "../config/loader.js";
|
|
11
11
|
import { CdnUrlSchema } from "../config/validators/common.js";
|
|
12
12
|
import { joinUrl } from "../lib/util/joinUrl.js";
|
|
13
|
+
import { ZuploEnv } from "../zuplo/env.js";
|
|
13
14
|
import vitePlugin from "./plugin.js";
|
|
14
15
|
const getDocsConfigFiles = (docsConfig, baseDir) => {
|
|
15
16
|
if (!docsConfig)
|
|
@@ -18,7 +19,7 @@ const getDocsConfigFiles = (docsConfig, baseDir) => {
|
|
|
18
19
|
return docsArray.map((doc) => path.posix.join(baseDir, doc.files));
|
|
19
20
|
};
|
|
20
21
|
function loadEnv(configEnv, rootDir) {
|
|
21
|
-
const envPrefix = ["
|
|
22
|
+
const envPrefix = ["ZUPLO_", "ZUDOKU_PUBLIC_"];
|
|
22
23
|
const localEnv = viteLoadEnv(configEnv.mode, rootDir, envPrefix);
|
|
23
24
|
process.env = { ...localEnv, ...process.env };
|
|
24
25
|
const publicEnv = Object.entries(process.env).reduce((val, [key]) => {
|
|
@@ -124,6 +125,9 @@ export async function getViteConfig(dir, configEnv, onConfigChange) {
|
|
|
124
125
|
define: {
|
|
125
126
|
"process.env.ZUDOKU_VERSION": JSON.stringify(packageJson.version),
|
|
126
127
|
"process.env.SENTRY_DSN": JSON.stringify(process.env.SENTRY_DSN),
|
|
128
|
+
// This env var doesn't start with the public `ZUPLO_` prefix, so we need to manually define it here
|
|
129
|
+
"process.env.IS_ZUPLO": ZuploEnv.isZuplo,
|
|
130
|
+
"import.meta.env.IS_ZUPLO": ZuploEnv.isZuplo,
|
|
127
131
|
...publicEnv,
|
|
128
132
|
},
|
|
129
133
|
ssr: {
|
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,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,MAAM,MAAM,YAAY,CAAC;AAChC,OAAO,WAAW,MAAM,aAAa,CAAC;AACtC,OAAO,EAIL,kBAAkB,EAClB,WAAW,EACX,OAAO,IAAI,WAAW,GACvB,MAAM,MAAM,CAAC;AACd,OAAO,WAAW,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACnE,OAAO,cAAc,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,UAAU,MAAM,aAAa,CAAC;AAOrC,MAAM,kBAAkB,GAAG,CACzB,UAAgC,EAChC,OAAe,EACL,EAAE;IACZ,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,CAAC;IAC3B,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAExE,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACrE,CAAC,CAAC;AAEF,SAAS,OAAO,CAAC,SAAoB,EAAE,OAAe;IACpD,MAAM,SAAS,GAAG,CAAC,
|
|
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,85 +1,21 @@
|
|
|
1
|
-
import { $RefParser, } from "@apidevtools/json-schema-ref-parser";
|
|
2
|
-
import { upgrade, validate } from "@scalar/openapi-parser";
|
|
3
1
|
import fs from "node:fs/promises";
|
|
4
2
|
import path from "node:path";
|
|
3
|
+
import { deepEquals } from "nx/src/utils/json-diff.js";
|
|
5
4
|
import { runnerImport } from "vite";
|
|
6
5
|
import { fileExists } from "../config/loader.js";
|
|
7
6
|
import { validateBuildConfig, } from "../config/validators/BuildSchema.js";
|
|
8
7
|
import { getAllOperations, getAllSlugs, getAllTags, } from "../lib/oas/graphql/index.js";
|
|
9
|
-
import {
|
|
8
|
+
import { ensureArray } from "../lib/util/ensureArray.js";
|
|
9
|
+
import { ZuploEnv } from "../zuplo/env.js";
|
|
10
|
+
import { SchemaManager } from "./api/SchemaManager.js";
|
|
10
11
|
import { reload } from "./plugin-config-reload.js";
|
|
11
|
-
|
|
12
|
-
const validateSchema = async (schema, filePath) => {
|
|
13
|
-
const validated = await validate(schema);
|
|
14
|
-
if (validated.errors?.length) {
|
|
15
|
-
// eslint-disable-next-line no-console
|
|
16
|
-
console.warn(`Schema warnings in ${filePath}:`);
|
|
17
|
-
for (const error of validated.errors) {
|
|
18
|
-
// eslint-disable-next-line no-console
|
|
19
|
-
console.warn(error);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
return schema;
|
|
23
|
-
};
|
|
24
|
-
// We track all schema files to invalidate when changed (this includes external references as well)
|
|
25
|
-
const allSchemaFiles = new Set();
|
|
26
|
-
async function processSchemas(dir, config, processors = []) {
|
|
27
|
-
if (!config.apis)
|
|
28
|
-
return {};
|
|
29
|
-
const apis = Array.isArray(config.apis) ? config.apis : [config.apis];
|
|
30
|
-
const processedSchemas = {};
|
|
31
|
-
allSchemaFiles.clear();
|
|
32
|
-
for (const apiConfig of apis) {
|
|
33
|
-
if (apiConfig.type !== "file" || !apiConfig.navigationId) {
|
|
34
|
-
continue;
|
|
35
|
-
}
|
|
36
|
-
const allProcessors = [
|
|
37
|
-
({ schema }) => upgrade(schema).specification,
|
|
38
|
-
...processors,
|
|
39
|
-
];
|
|
40
|
-
const inputs = Array.isArray(apiConfig.input)
|
|
41
|
-
? apiConfig.input
|
|
42
|
-
: [apiConfig.input];
|
|
43
|
-
const inputFiles = await Promise.all(inputs.map(async (input) => {
|
|
44
|
-
const fullPath = path.resolve(config.__meta.rootDir, input);
|
|
45
|
-
const parser = new $RefParser();
|
|
46
|
-
const schema = await parser.bundle(fullPath);
|
|
47
|
-
parser.$refs.paths().forEach((file) => allSchemaFiles.add(file));
|
|
48
|
-
return validateSchema(schema, input);
|
|
49
|
-
}));
|
|
50
|
-
const processedInputs = await Promise.all(inputFiles.map(async (schema, index) => {
|
|
51
|
-
let processedSchema = schema;
|
|
52
|
-
for (const processor of allProcessors) {
|
|
53
|
-
processedSchema = await processor({
|
|
54
|
-
schema: processedSchema,
|
|
55
|
-
file: inputs[index],
|
|
56
|
-
dereference: (schema) => new $RefParser().dereference(schema),
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
const inputPath = inputs[index];
|
|
60
|
-
const code = await generateCode(processedSchema, inputPath);
|
|
61
|
-
const processedFilePath = path.posix.join(dir, `${path.basename(inputPath)}.js`);
|
|
62
|
-
await fs.writeFile(processedFilePath, code);
|
|
63
|
-
schemaMap.set(inputPath, processedFilePath);
|
|
64
|
-
return {
|
|
65
|
-
schema: processedSchema,
|
|
66
|
-
version: processedSchema.info.version || "default",
|
|
67
|
-
inputPath,
|
|
68
|
-
};
|
|
69
|
-
}));
|
|
70
|
-
if (processedInputs.length === 0) {
|
|
71
|
-
throw new Error("No schema found");
|
|
72
|
-
}
|
|
73
|
-
processedSchemas[apiConfig.navigationId] = processedInputs;
|
|
74
|
-
}
|
|
75
|
-
return processedSchemas;
|
|
76
|
-
}
|
|
12
|
+
import { invalidate as invalidateSidebar } from "./plugin-sidebar.js";
|
|
77
13
|
const viteApiPlugin = async (getConfig) => {
|
|
78
14
|
const virtualModuleId = "virtual:zudoku-api-plugins";
|
|
79
15
|
const resolvedVirtualModuleId = "\0" + virtualModuleId;
|
|
80
16
|
const initialConfig = getConfig();
|
|
81
17
|
// Load Zuplo-specific processors if in Zuplo environment
|
|
82
|
-
const zuploProcessors =
|
|
18
|
+
const zuploProcessors = ZuploEnv.isZuplo
|
|
83
19
|
? await runnerImport(path.resolve(import.meta.dirname, "../zuplo/with-zuplo-processors.js")).then((m) => m.module.default(initialConfig.__meta.rootDir))
|
|
84
20
|
: [];
|
|
85
21
|
const buildFilePath = path.join(initialConfig.__meta.rootDir, "zudoku.build.ts");
|
|
@@ -91,29 +27,30 @@ const viteApiPlugin = async (getConfig) => {
|
|
|
91
27
|
buildConfig = validateBuildConfig(buildModule);
|
|
92
28
|
buildProcessors = buildConfig?.processors ?? [];
|
|
93
29
|
}
|
|
94
|
-
|
|
95
|
-
const
|
|
30
|
+
const tmpStoreDir = path.posix.join(initialConfig.__meta.rootDir, "node_modules/.zudoku/processed");
|
|
31
|
+
const processors = [...buildProcessors, ...zuploProcessors];
|
|
32
|
+
const schemaManager = new SchemaManager({
|
|
33
|
+
storeDir: tmpStoreDir,
|
|
34
|
+
config: initialConfig,
|
|
35
|
+
processors,
|
|
36
|
+
});
|
|
96
37
|
return {
|
|
97
38
|
name: "zudoku-api-plugins",
|
|
98
39
|
async buildStart() {
|
|
99
|
-
await fs.rm(
|
|
100
|
-
await fs.mkdir(
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
...zuploProcessors,
|
|
104
|
-
]);
|
|
105
|
-
// Potential files outside of the root dir are not watched by default, so we add all schemas just to be sure
|
|
106
|
-
allSchemaFiles.forEach((file) => this.addWatchFile(file));
|
|
40
|
+
await fs.rm(tmpStoreDir, { recursive: true, force: true });
|
|
41
|
+
await fs.mkdir(tmpStoreDir, { recursive: true });
|
|
42
|
+
await schemaManager.processAllSchemas();
|
|
43
|
+
schemaManager.trackedFiles.forEach((file) => this.addWatchFile(file));
|
|
107
44
|
},
|
|
108
45
|
configureServer(server) {
|
|
109
46
|
server.watcher.on("change", async (id) => {
|
|
110
|
-
if (!
|
|
47
|
+
if (!schemaManager.trackedFiles.has(id))
|
|
111
48
|
return;
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
49
|
+
// eslint-disable-next-line no-console
|
|
50
|
+
console.log(`Re-processing schema ${id}`);
|
|
51
|
+
await schemaManager.processSchema(id);
|
|
52
|
+
schemaManager.trackedFiles.forEach((file) => server.watcher.add(file));
|
|
53
|
+
invalidateSidebar(server);
|
|
117
54
|
reload(server);
|
|
118
55
|
});
|
|
119
56
|
},
|
|
@@ -126,6 +63,11 @@ const viteApiPlugin = async (getConfig) => {
|
|
|
126
63
|
if (id !== resolvedVirtualModuleId)
|
|
127
64
|
return;
|
|
128
65
|
const config = getConfig();
|
|
66
|
+
if (!deepEquals(schemaManager.config.apis, config.apis)) {
|
|
67
|
+
schemaManager.config = config;
|
|
68
|
+
await schemaManager.processAllSchemas();
|
|
69
|
+
schemaManager.trackedFiles.forEach((file) => this.addWatchFile(file));
|
|
70
|
+
}
|
|
129
71
|
if (config.__meta.mode === "standalone") {
|
|
130
72
|
return [
|
|
131
73
|
"export const configuredApiPlugins = [];",
|
|
@@ -140,30 +82,19 @@ const viteApiPlugin = async (getConfig) => {
|
|
|
140
82
|
if (config.apis) {
|
|
141
83
|
code.push('import { openApiPlugin } from "zudoku/plugins/openapi";');
|
|
142
84
|
code.push(`const apis = Array.isArray(config.apis) ? config.apis : [config.apis]`);
|
|
143
|
-
const apis =
|
|
85
|
+
const apis = ensureArray(config.apis);
|
|
144
86
|
const apiMetadata = [];
|
|
145
|
-
const versionMaps = {};
|
|
146
87
|
for (const apiConfig of apis) {
|
|
147
88
|
if (apiConfig.type === "file" && apiConfig.navigationId) {
|
|
148
|
-
const
|
|
149
|
-
if (!
|
|
150
|
-
continue;
|
|
151
|
-
const latestSchema = schemas[0]?.schema;
|
|
152
|
-
if (!latestSchema?.info)
|
|
89
|
+
const latestSchema = schemaManager.getLatestSchema(apiConfig.navigationId);
|
|
90
|
+
if (!latestSchema?.schema.info)
|
|
153
91
|
continue;
|
|
154
92
|
apiMetadata.push({
|
|
155
93
|
path: apiConfig.navigationId,
|
|
156
|
-
label: latestSchema.info.title,
|
|
157
|
-
description: latestSchema.info.description ?? "",
|
|
94
|
+
label: latestSchema.schema.info.title,
|
|
95
|
+
description: latestSchema.schema.info.description ?? "",
|
|
158
96
|
categories: apiConfig.categories ?? [],
|
|
159
97
|
});
|
|
160
|
-
const versionMap = Object.fromEntries(schemas.map((processed) => [
|
|
161
|
-
processed.version,
|
|
162
|
-
processed.inputPath,
|
|
163
|
-
]));
|
|
164
|
-
if (Object.keys(versionMap).length > 0) {
|
|
165
|
-
versionMaps[apiConfig.navigationId] = versionMap;
|
|
166
|
-
}
|
|
167
98
|
}
|
|
168
99
|
}
|
|
169
100
|
// Generate API plugin code
|
|
@@ -171,11 +102,9 @@ const viteApiPlugin = async (getConfig) => {
|
|
|
171
102
|
for (const apiConfig of apis) {
|
|
172
103
|
apiIndex++;
|
|
173
104
|
if (apiConfig.type === "file") {
|
|
174
|
-
if (!apiConfig.navigationId
|
|
175
|
-
!versionMaps[apiConfig.navigationId]) {
|
|
105
|
+
if (!apiConfig.navigationId)
|
|
176
106
|
continue;
|
|
177
|
-
|
|
178
|
-
const schemas = processedSchemas[apiConfig.navigationId];
|
|
107
|
+
const schemas = schemaManager.getSchemasForId(apiConfig.navigationId);
|
|
179
108
|
if (!schemas?.length)
|
|
180
109
|
continue;
|
|
181
110
|
const tags = Array.from(new Set(schemas
|
|
@@ -185,7 +114,8 @@ const viteApiPlugin = async (getConfig) => {
|
|
|
185
114
|
return getAllTags(schema, slugs.tags);
|
|
186
115
|
})
|
|
187
116
|
.map(({ slug }) => slug)));
|
|
188
|
-
|
|
117
|
+
const schemaMapEntries = Array.from(schemaManager.schemaMap.entries());
|
|
118
|
+
code.push("configuredApiPlugins.push(openApiPlugin({", ` type: "file",`, ` input: ${JSON.stringify(Object.fromEntries(schemas.map((s) => [s.version, s.inputPath])))},`, ` navigationId: ${JSON.stringify(apiConfig.navigationId)},`, ` tagPages: ${JSON.stringify(tags)},`, ` options: {`, ` examplesLanguage: config.defaults?.apis?.examplesLanguage ?? config.defaults?.examplesLanguage,`, ` disablePlayground: config.defaults?.apis?.disablePlayground,`, ` showVersionSelect: config.defaults?.apis?.showVersionSelect ?? "if-available",`, ` expandAllTags: config.defaults?.apis?.expandAllTags ?? true,`, ` transformExamples: config.defaults?.apis?.transformExamples,`, ` ...(apis[${apiIndex}].options ?? {}),`, ` },`, ` schemaImports: {`, ...schemaMapEntries.map(([key, processed]) => ` "${key}": () => import("${processed.filePath.replace(/\\/g, "/")}?d=${processed.processedTime}"),`), ` },`, "}));");
|
|
189
119
|
}
|
|
190
120
|
else {
|
|
191
121
|
code.push("configuredApiPlugins.push(openApiPlugin({", ` ...${JSON.stringify(apiConfig)},`, " options: {", ` examplesLanguage: config.defaults?.apis?.examplesLanguage ?? config.defaults?.examplesLanguage,`, ` disablePlayground: config.defaults?.apis?.disablePlayground,`, ` showVersionSelect: config.defaults?.apis?.showVersionSelect ?? "if-available",`, ` expandAllTags: config.defaults?.apis?.expandAllTags ?? false,`, ` ...${JSON.stringify(apiConfig.options ?? {})},`, " },", "}));");
|
|
@@ -193,9 +123,7 @@ const viteApiPlugin = async (getConfig) => {
|
|
|
193
123
|
}
|
|
194
124
|
if (config.catalogs) {
|
|
195
125
|
code.push('import { apiCatalogPlugin } from "zudoku/plugins/api-catalog";');
|
|
196
|
-
const catalogs =
|
|
197
|
-
? config.catalogs
|
|
198
|
-
: [config.catalogs];
|
|
126
|
+
const catalogs = ensureArray(config.catalogs);
|
|
199
127
|
const categories = apis
|
|
200
128
|
.flatMap((api) => api.categories ?? [])
|
|
201
129
|
.reduce((acc, catalog) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-api.js","sourceRoot":"","sources":["../../src/vite/plugin-api.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"plugin-api.js","sourceRoot":"","sources":["../../src/vite/plugin-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
import { type Plugin } from "vite";
|
|
1
|
+
import { type Plugin, type ViteDevServer } from "vite";
|
|
2
2
|
import { type LoadedConfig } from "../config/config.js";
|
|
3
|
+
export declare const resolvedVirtualModuleId: string;
|
|
4
|
+
export declare const invalidate: (server: ViteDevServer) => void;
|
|
3
5
|
export declare const viteSidebarPlugin: (getConfig: () => LoadedConfig) => Plugin;
|