zudoku 0.0.0-z6bcd96da → 0.0.0-z9d382b4a
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 +3 -1
- package/dist/config/loader.js.map +1 -1
- package/dist/config/validators/InputNavigationSchema.d.ts +75 -75
- package/dist/config/validators/validate.d.ts +6 -6
- package/dist/lib/core/plugins.d.ts +11 -1
- package/dist/lib/core/plugins.js +1 -0
- package/dist/lib/core/plugins.js.map +1 -1
- package/dist/lib/core/transform-config.d.ts +2 -0
- package/dist/lib/core/transform-config.js +22 -0
- package/dist/lib/core/transform-config.js.map +1 -0
- package/dist/lib/oas/graphql/circular.d.ts +1 -1
- package/dist/lib/oas/graphql/circular.js +18 -35
- package/dist/lib/oas/graphql/circular.js.map +1 -1
- package/dist/lib/oas/graphql/circular.test.js +33 -2
- package/dist/lib/oas/graphql/circular.test.js.map +1 -1
- package/dist/lib/ui/Command.d.ts +3 -3
- package/dist/lib/util/readFrontmatter.js +2 -1
- package/dist/lib/util/readFrontmatter.js.map +1 -1
- package/dist/vite/build.js +91 -73
- package/dist/vite/build.js.map +1 -1
- package/dist/vite/mdx/remark-inject-filepath.js +5 -1
- package/dist/vite/mdx/remark-inject-filepath.js.map +1 -1
- package/dist/vite/mdx/remark-link-rewrite.js +3 -2
- package/dist/vite/mdx/remark-link-rewrite.js.map +1 -1
- package/dist/vite/plugin-docs.js +9 -7
- package/dist/vite/plugin-docs.js.map +1 -1
- package/dist/vite/plugin-markdown-export.js +4 -2
- package/dist/vite/plugin-markdown-export.js.map +1 -1
- package/lib/{OasProvider-CS_ASmBB.js → OasProvider-B2KxIBsI.js} +2 -2
- package/lib/{OasProvider-CS_ASmBB.js.map → OasProvider-B2KxIBsI.js.map} +1 -1
- package/lib/{OperationList-Dq_AB4W9.js → OperationList-C2tAfThO.js} +3 -3
- package/lib/{OperationList-Dq_AB4W9.js.map → OperationList-C2tAfThO.js.map} +1 -1
- package/lib/{SchemaList-BJZJv1gD.js → SchemaList-Ep8DleP_.js} +3 -3
- package/lib/{SchemaList-BJZJv1gD.js.map → SchemaList-Ep8DleP_.js.map} +1 -1
- package/lib/{SchemaView-U4JMYB3N.js → SchemaView-BpaEKRYx.js} +2 -2
- package/lib/{SchemaView-U4JMYB3N.js.map → SchemaView-BpaEKRYx.js.map} +1 -1
- package/lib/{circular-BmMJjG1v.js → circular-CG3e0_Uz.js} +1327 -1346
- package/lib/{circular-BmMJjG1v.js.map → circular-CG3e0_Uz.js.map} +1 -1
- package/lib/{createServer-CLSZ7hWJ.js → createServer-CNeRqj98.js} +3 -3
- package/lib/{createServer-CLSZ7hWJ.js.map → createServer-CNeRqj98.js.map} +1 -1
- package/lib/firebase-BCXX7Qv5.js.map +1 -1
- package/lib/{index-O9RHI87z.js → index-I3kmZ7tG.js} +6 -6
- package/lib/{index-O9RHI87z.js.map → index-I3kmZ7tG.js.map} +1 -1
- package/lib/zudoku.plugin-openapi.js +1 -1
- package/lib/zudoku.plugins.js +9 -8
- package/lib/zudoku.plugins.js.map +1 -1
- package/package.json +3 -2
- package/src/lib/core/plugins.ts +21 -1
- package/src/lib/core/transform-config.ts +29 -0
- package/src/lib/oas/graphql/circular.test.ts +37 -2
- package/src/lib/oas/graphql/circular.ts +25 -51
- package/src/lib/util/readFrontmatter.ts +2 -1
|
@@ -171,8 +171,8 @@ export declare const FooterSocialSchema: z.ZodObject<{
|
|
|
171
171
|
export declare const FooterSchema: z.ZodOptional<z.ZodObject<{
|
|
172
172
|
columns: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
173
173
|
position: z.ZodOptional<z.ZodEnum<{
|
|
174
|
-
center: "center";
|
|
175
174
|
end: "end";
|
|
175
|
+
center: "center";
|
|
176
176
|
start: "start";
|
|
177
177
|
}>>;
|
|
178
178
|
title: z.ZodString;
|
|
@@ -212,8 +212,8 @@ export declare const FooterSchema: z.ZodOptional<z.ZodObject<{
|
|
|
212
212
|
href: z.ZodOptional<z.ZodString>;
|
|
213
213
|
}, z.core.$strip>>;
|
|
214
214
|
position: z.ZodOptional<z.ZodEnum<{
|
|
215
|
-
center: "center";
|
|
216
215
|
end: "end";
|
|
216
|
+
center: "center";
|
|
217
217
|
start: "start";
|
|
218
218
|
}>>;
|
|
219
219
|
}, z.core.$strip>>;
|
|
@@ -283,10 +283,10 @@ declare const AuthenticationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
283
283
|
github: "github";
|
|
284
284
|
phone: "phone";
|
|
285
285
|
twitter: "twitter";
|
|
286
|
+
password: "password";
|
|
286
287
|
google: "google";
|
|
287
288
|
microsoft: "microsoft";
|
|
288
289
|
yahoo: "yahoo";
|
|
289
|
-
password: "password";
|
|
290
290
|
}>>>;
|
|
291
291
|
redirectToAfterSignUp: z.ZodOptional<z.ZodString>;
|
|
292
292
|
redirectToAfterSignIn: z.ZodOptional<z.ZodString>;
|
|
@@ -442,8 +442,8 @@ export declare const ZudokuConfig: z.ZodObject<{
|
|
|
442
442
|
footer: z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
443
443
|
columns: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
444
444
|
position: z.ZodOptional<z.ZodEnum<{
|
|
445
|
-
center: "center";
|
|
446
445
|
end: "end";
|
|
446
|
+
center: "center";
|
|
447
447
|
start: "start";
|
|
448
448
|
}>>;
|
|
449
449
|
title: z.ZodString;
|
|
@@ -483,8 +483,8 @@ export declare const ZudokuConfig: z.ZodObject<{
|
|
|
483
483
|
href: z.ZodOptional<z.ZodString>;
|
|
484
484
|
}, z.core.$strip>>;
|
|
485
485
|
position: z.ZodOptional<z.ZodEnum<{
|
|
486
|
-
center: "center";
|
|
487
486
|
end: "end";
|
|
487
|
+
center: "center";
|
|
488
488
|
start: "start";
|
|
489
489
|
}>>;
|
|
490
490
|
}, z.core.$strip>>>;
|
|
@@ -674,10 +674,10 @@ export declare const ZudokuConfig: z.ZodObject<{
|
|
|
674
674
|
github: "github";
|
|
675
675
|
phone: "phone";
|
|
676
676
|
twitter: "twitter";
|
|
677
|
+
password: "password";
|
|
677
678
|
google: "google";
|
|
678
679
|
microsoft: "microsoft";
|
|
679
680
|
yahoo: "yahoo";
|
|
680
|
-
password: "password";
|
|
681
681
|
}>>>;
|
|
682
682
|
redirectToAfterSignUp: z.ZodOptional<z.ZodString>;
|
|
683
683
|
redirectToAfterSignIn: z.ZodOptional<z.ZodString>;
|
|
@@ -3,10 +3,11 @@ import type { ReactNode } from "react";
|
|
|
3
3
|
import type { Location, RouteObject } from "react-router";
|
|
4
4
|
import type { Navigation } from "../../config/validators/NavigationSchema.js";
|
|
5
5
|
import type { ProtectedRoutesInput } from "../../config/validators/ProtectedRoutesSchema.js";
|
|
6
|
+
import type { ZudokuConfig } from "../../config/validators/validate.js";
|
|
6
7
|
import type { AuthenticationPlugin } from "../authentication/authentication.js";
|
|
7
8
|
import type { MdxComponentsType } from "../util/MdxComponents.js";
|
|
8
9
|
import type { ApiIdentity, ZudokuContext, ZudokuEvents } from "./ZudokuContext.js";
|
|
9
|
-
export type ZudokuPlugin = CommonPlugin | ProfileMenuPlugin | NavigationPlugin | ApiIdentityPlugin | SearchProviderPlugin | EventConsumerPlugin | AuthenticationPlugin;
|
|
10
|
+
export type ZudokuPlugin = CommonPlugin | ProfileMenuPlugin | NavigationPlugin | ApiIdentityPlugin | SearchProviderPlugin | EventConsumerPlugin | AuthenticationPlugin | TransformConfigPlugin;
|
|
10
11
|
export type { AuthenticationPlugin, RouteObject };
|
|
11
12
|
export interface NavigationPlugin {
|
|
12
13
|
getRoutes: () => RouteObject[];
|
|
@@ -35,6 +36,14 @@ export type ProfileNavigationItem = {
|
|
|
35
36
|
children?: ProfileNavigationItem[];
|
|
36
37
|
icon?: LucideIcon;
|
|
37
38
|
};
|
|
39
|
+
export interface ConfigHookContext {
|
|
40
|
+
mode: typeof process.env.ZUDOKU_ENV;
|
|
41
|
+
rootDir: string;
|
|
42
|
+
configPath: string;
|
|
43
|
+
}
|
|
44
|
+
export interface TransformConfigPlugin {
|
|
45
|
+
transformConfig?: (config: ZudokuConfig, ctx: ConfigHookContext) => Partial<ZudokuConfig> | void | Promise<Partial<ZudokuConfig> | void>;
|
|
46
|
+
}
|
|
38
47
|
export interface CommonPlugin {
|
|
39
48
|
initialize?: (context: ZudokuContext) => Promise<void | boolean> | void | boolean;
|
|
40
49
|
getHead?: (args: {
|
|
@@ -56,3 +65,4 @@ export declare const needsInitialization: (obj: ZudokuPlugin) => obj is CommonPl
|
|
|
56
65
|
export declare const hasHead: (obj: ZudokuPlugin) => obj is CommonPlugin;
|
|
57
66
|
export declare const isMdxProviderPlugin: (obj: ZudokuPlugin) => obj is CommonPlugin;
|
|
58
67
|
export declare const isApiIdentityPlugin: (obj: ZudokuPlugin) => obj is ApiIdentityPlugin;
|
|
68
|
+
export declare const isTransformConfigPlugin: (obj: ZudokuPlugin) => obj is TransformConfigPlugin;
|
package/dist/lib/core/plugins.js
CHANGED
|
@@ -9,4 +9,5 @@ export const needsInitialization = (obj) => "initialize" in obj && typeof obj.in
|
|
|
9
9
|
export const hasHead = (obj) => "getHead" in obj && typeof obj.getHead === "function";
|
|
10
10
|
export const isMdxProviderPlugin = (obj) => "getMdxComponents" in obj && typeof obj.getMdxComponents === "function";
|
|
11
11
|
export const isApiIdentityPlugin = (obj) => "getIdentities" in obj && typeof obj.getIdentities === "function";
|
|
12
|
+
export const isTransformConfigPlugin = (obj) => "transformConfig" in obj && typeof obj.transformConfig === "function";
|
|
12
13
|
//# sourceMappingURL=plugins.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../../src/lib/core/plugins.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../../src/lib/core/plugins.ts"],"names":[],"mappings":"AAgCA,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,MAAyB,EACN,EAAE,CAAC,MAAM,CAAC;AAE/B,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,MAAyB,EACN,EAAE,CAAC,MAAM,CAAC;AAmD/B,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,GAAiB,EACW,EAAE,CAC9B,QAAQ,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC;AAEpD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,GAAiB,EACS,EAAE,CAC5B,qBAAqB,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,mBAAmB,KAAK,UAAU,CAAC;AAEhF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,GAAiB,EACQ,EAAE,CAC3B,WAAW,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,UAAU,CAAC;AAE5D,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,GAAiB,EACY,EAAE,CAC/B,QAAQ,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,UAAU,CAAC;AAEtD,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,GAAiB,EACY,EAAE,CAC/B,cAAc,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,UAAU,CAAC;AAElE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAiB,EAAuB,EAAE,CAC5E,YAAY,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,UAAU,CAAC;AAE9D,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAiB,EAAuB,EAAE,CAChE,SAAS,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU,CAAC;AAExD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAiB,EAAuB,EAAE,CAC5E,kBAAkB,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,gBAAgB,KAAK,UAAU,CAAC;AAE1E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,GAAiB,EACS,EAAE,CAC5B,eAAe,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,aAAa,KAAK,UAAU,CAAC;AAEpE,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,GAAiB,EACa,EAAE,CAChC,iBAAiB,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,eAAe,KAAK,UAAU,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import createDeepmerge from "@fastify/deepmerge";
|
|
2
|
+
import { isTransformConfigPlugin } from "./plugins.js";
|
|
3
|
+
const mergeConfig = createDeepmerge({
|
|
4
|
+
mergeArray: (opt) => (_, source) => opt.clone(source),
|
|
5
|
+
});
|
|
6
|
+
export const runTransformConfigHooks = async (config) => {
|
|
7
|
+
const ctx = {
|
|
8
|
+
mode: config.__meta.mode,
|
|
9
|
+
rootDir: config.__meta.rootDir,
|
|
10
|
+
configPath: config.__meta.configPath,
|
|
11
|
+
};
|
|
12
|
+
const plugins = config.plugins ?? [];
|
|
13
|
+
let result = config;
|
|
14
|
+
for (const plugin of plugins.filter(isTransformConfigPlugin)) {
|
|
15
|
+
const partial = await plugin.transformConfig?.(result, ctx);
|
|
16
|
+
if (!partial)
|
|
17
|
+
continue;
|
|
18
|
+
result = mergeConfig(result, partial);
|
|
19
|
+
}
|
|
20
|
+
return result;
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=transform-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform-config.js","sourceRoot":"","sources":["../../../src/lib/core/transform-config.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAA0B,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAE/E,MAAM,WAAW,GAAG,eAAe,CAAC;IAClC,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;CACtD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAC1C,MAAsB,EACG,EAAE;IAC3B,MAAM,GAAG,GAAG;QACV,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;QACxB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO;QAC9B,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU;KACT,CAAC;IAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IAErC,IAAI,MAAM,GAAG,MAAM,CAAC;IAEpB,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAC,EAAE,CAAC;QAC7D,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO;YAAE,SAAS;QAEvB,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAmB,CAAC;IAC1D,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { GraphQLScalarType } from "graphql/index.js";
|
|
2
2
|
export declare const CIRCULAR_REF = "$[Circular Reference]";
|
|
3
3
|
export declare const SCHEMA_REF_PREFIX = "$ref:";
|
|
4
|
-
export declare const handleCircularRefs: (obj: any,
|
|
4
|
+
export declare const handleCircularRefs: (obj: any, currentPath?: WeakSet<WeakKey>, refs?: WeakMap<WeakKey, any>, path?: string[], currentRefPaths?: Set<string>) => any;
|
|
5
5
|
export declare const GraphQLJSONSchema: GraphQLScalarType<unknown, unknown>;
|
|
@@ -12,48 +12,31 @@ const OPENAPI_PROPS = new Set([
|
|
|
12
12
|
]);
|
|
13
13
|
export const handleCircularRefs = (
|
|
14
14
|
// biome-ignore lint/suspicious/noExplicitAny: Allow any type
|
|
15
|
-
obj,
|
|
15
|
+
obj, currentPath = new WeakSet(), refs = new WeakMap(), path = [], currentRefPaths = new Set()) => {
|
|
16
16
|
if (obj === null || typeof obj !== "object")
|
|
17
17
|
return obj;
|
|
18
18
|
const refPath = obj.__$ref;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
if (visited.has(obj)) {
|
|
26
|
-
const cached = refs.get(obj);
|
|
27
|
-
if (cached) {
|
|
28
|
-
return typeof refPath === "string"
|
|
29
|
-
? // If already processed, return ref marker to avoid duplicate serialization
|
|
30
|
-
SCHEMA_REF_PREFIX + refPath
|
|
31
|
-
: cached;
|
|
32
|
-
}
|
|
19
|
+
const isCircular = currentPath.has(obj) ||
|
|
20
|
+
(typeof refPath === "string" && currentRefPaths.has(refPath));
|
|
21
|
+
if (isCircular) {
|
|
22
|
+
if (typeof refPath === "string")
|
|
23
|
+
return SCHEMA_REF_PREFIX + refPath;
|
|
33
24
|
const circularProp = path.find((p) => !OPENAPI_PROPS.has(p)) || path[0];
|
|
34
25
|
return [CIRCULAR_REF, circularProp].filter(Boolean).join(":");
|
|
35
26
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
if (typeof refPath === "string")
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
result = {};
|
|
48
|
-
for (const [key, value] of Object.entries(obj)) {
|
|
49
|
-
result[key] = handleCircularRefs(value, visited, refs, [...path, key], seenRefPaths);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
27
|
+
if (refs.has(obj))
|
|
28
|
+
return refs.get(obj);
|
|
29
|
+
currentPath.add(obj);
|
|
30
|
+
if (typeof refPath === "string")
|
|
31
|
+
currentRefPaths.add(refPath);
|
|
32
|
+
const recurse = (value, key) => handleCircularRefs(value, currentPath, refs, [...path, key], currentRefPaths);
|
|
33
|
+
const result = Array.isArray(obj)
|
|
34
|
+
? obj.map((item, i) => recurse(item, i.toString()))
|
|
35
|
+
: Object.fromEntries(Object.entries(obj).map(([k, v]) => [k, recurse(v, k)]));
|
|
52
36
|
refs.set(obj, result);
|
|
53
|
-
|
|
54
|
-
if (typeof refPath === "string")
|
|
55
|
-
|
|
56
|
-
}
|
|
37
|
+
currentPath.delete(obj);
|
|
38
|
+
if (typeof refPath === "string")
|
|
39
|
+
currentRefPaths.delete(refPath);
|
|
57
40
|
return result;
|
|
58
41
|
};
|
|
59
42
|
export const GraphQLJSONSchema = new GraphQLScalarType({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"circular.js","sourceRoot":"","sources":["../../../../src/lib/oas/graphql/circular.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"circular.js","sourceRoot":"","sources":["../../../../src/lib/oas/graphql/circular.ts"],"names":[],"mappings":"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"}
|
|
@@ -125,15 +125,19 @@ describe("handleCircularRefs", () => {
|
|
|
125
125
|
type: "object",
|
|
126
126
|
});
|
|
127
127
|
});
|
|
128
|
-
it("should
|
|
128
|
+
it("should handle shared object instances with __$ref without marking circular", () => {
|
|
129
129
|
const shared = { __$ref: "#/components/schemas/Foo", type: "string" };
|
|
130
130
|
const obj = { a: shared, b: shared };
|
|
131
131
|
const result = handleCircularRefs(obj);
|
|
132
|
+
// Both should return the cached result, not mark as circular
|
|
132
133
|
expect(result.a).toEqual({
|
|
133
134
|
__$ref: "#/components/schemas/Foo",
|
|
134
135
|
type: "string",
|
|
135
136
|
});
|
|
136
|
-
expect(result.b).
|
|
137
|
+
expect(result.b).toEqual({
|
|
138
|
+
__$ref: "#/components/schemas/Foo",
|
|
139
|
+
type: "string",
|
|
140
|
+
});
|
|
137
141
|
});
|
|
138
142
|
it("should mark circular ref with property name from path", () => {
|
|
139
143
|
const parent = {
|
|
@@ -148,5 +152,32 @@ describe("handleCircularRefs", () => {
|
|
|
148
152
|
const result = handleCircularRefs(parent);
|
|
149
153
|
expect(result.properties.child.properties.back).toContain(CIRCULAR_REF);
|
|
150
154
|
});
|
|
155
|
+
// Exact reproduction of #1869 - shared object instances with __$ref
|
|
156
|
+
it("should NOT mark shared object instances with __$ref as circular (issue #1869)", () => {
|
|
157
|
+
// When dereferencing, the SAME object instance is returned for all refs to the same schema
|
|
158
|
+
const timestampSchema = {
|
|
159
|
+
__$ref: "#/components/schemas/timestamp",
|
|
160
|
+
type: "string",
|
|
161
|
+
format: "date-time",
|
|
162
|
+
};
|
|
163
|
+
// Both created_at and updated_at point to the SAME object instance
|
|
164
|
+
const obj = {
|
|
165
|
+
type: "object",
|
|
166
|
+
properties: {
|
|
167
|
+
created_at: timestampSchema,
|
|
168
|
+
updated_at: timestampSchema,
|
|
169
|
+
},
|
|
170
|
+
};
|
|
171
|
+
const result = handleCircularRefs(obj);
|
|
172
|
+
// The first one should be fully expanded
|
|
173
|
+
expect(result.properties.created_at).toEqual({
|
|
174
|
+
__$ref: "#/components/schemas/timestamp",
|
|
175
|
+
type: "string",
|
|
176
|
+
format: "date-time",
|
|
177
|
+
});
|
|
178
|
+
// The second one should ALSO be fully expanded (not marked as circular)
|
|
179
|
+
expect(typeof result.properties.updated_at).toBe("object");
|
|
180
|
+
expect(result.properties.updated_at).not.toContain(CIRCULAR_REF);
|
|
181
|
+
});
|
|
151
182
|
});
|
|
152
183
|
//# sourceMappingURL=circular.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"circular.test.js","sourceRoot":"","sources":["../../../../src/lib/oas/graphql/circular.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"circular.test.js","sourceRoot":"","sources":["../../../../src/lib/oas/graphql/circular.test.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/ui/Command.d.ts
CHANGED
|
@@ -28,7 +28,7 @@ declare const CommandInput: React.ForwardRefExoticComponent<Omit<Omit<Pick<Pick<
|
|
|
28
28
|
ref?: React.Ref<HTMLInputElement>;
|
|
29
29
|
} & {
|
|
30
30
|
asChild?: boolean;
|
|
31
|
-
}, "key" | "asChild" | keyof React.InputHTMLAttributes<HTMLInputElement>>, "
|
|
31
|
+
}, "key" | "asChild" | keyof React.InputHTMLAttributes<HTMLInputElement>>, "value" | "type" | "onChange"> & {
|
|
32
32
|
value?: string;
|
|
33
33
|
onValueChange?: (search: string) => void;
|
|
34
34
|
} & React.RefAttributes<HTMLInputElement>, "ref"> & React.RefAttributes<HTMLInputElement>>;
|
|
@@ -36,7 +36,7 @@ declare const CommandInlineInput: React.ForwardRefExoticComponent<Omit<Omit<Pick
|
|
|
36
36
|
ref?: React.Ref<HTMLInputElement>;
|
|
37
37
|
} & {
|
|
38
38
|
asChild?: boolean;
|
|
39
|
-
}, "key" | "asChild" | keyof React.InputHTMLAttributes<HTMLInputElement>>, "
|
|
39
|
+
}, "key" | "asChild" | keyof React.InputHTMLAttributes<HTMLInputElement>>, "value" | "type" | "onChange"> & {
|
|
40
40
|
value?: string;
|
|
41
41
|
onValueChange?: (search: string) => void;
|
|
42
42
|
} & React.RefAttributes<HTMLInputElement>, "ref"> & React.RefAttributes<HTMLInputElement>>;
|
|
@@ -80,7 +80,7 @@ declare const CommandItem: React.ForwardRefExoticComponent<Omit<{
|
|
|
80
80
|
ref?: React.Ref<HTMLDivElement>;
|
|
81
81
|
} & {
|
|
82
82
|
asChild?: boolean;
|
|
83
|
-
}, "key" | "asChild" | keyof React.HTMLAttributes<HTMLDivElement>>, "
|
|
83
|
+
}, "key" | "asChild" | keyof React.HTMLAttributes<HTMLDivElement>>, "value" | "disabled" | "onSelect"> & {
|
|
84
84
|
disabled?: boolean;
|
|
85
85
|
onSelect?: (value: string) => void;
|
|
86
86
|
value?: string;
|
|
@@ -7,6 +7,7 @@ export const yaml = {
|
|
|
7
7
|
};
|
|
8
8
|
export const readFrontmatter = async (filePath) => {
|
|
9
9
|
const content = await readFile(filePath, "utf-8");
|
|
10
|
-
|
|
10
|
+
const normalizedContent = content.replace(/\r\n/g, "\n");
|
|
11
|
+
return matter(normalizedContent, { engines: { yaml } });
|
|
11
12
|
};
|
|
12
13
|
//# sourceMappingURL=readFrontmatter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readFrontmatter.js","sourceRoot":"","sources":["../../../src/lib/util/readFrontmatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAExC,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,KAAK,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;IAC5C,SAAS,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC;CAC3C,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,QAAgB,EAAE,EAAE;IACxD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClD,OAAO,
|
|
1
|
+
{"version":3,"file":"readFrontmatter.js","sourceRoot":"","sources":["../../../src/lib/util/readFrontmatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAExC,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,KAAK,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;IAC5C,SAAS,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC;CAC3C,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,QAAgB,EAAE,EAAE;IACxD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClD,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACzD,OAAO,MAAM,CAAC,iBAAiB,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AAC1D,CAAC,CAAC"}
|
package/dist/vite/build.js
CHANGED
|
@@ -12,88 +12,106 @@ import { writeOutput } from "./output.js";
|
|
|
12
12
|
import { prerender } from "./prerender/prerender.js";
|
|
13
13
|
const DIST_DIR = "dist";
|
|
14
14
|
export async function runBuild(options) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const viteServerConfig = await getViteConfig(options.dir, {
|
|
21
|
-
mode: "production",
|
|
22
|
-
command: "build",
|
|
23
|
-
isSsrBuild: true,
|
|
24
|
-
});
|
|
25
|
-
// Don't run in parallel because it might overwrite itself
|
|
26
|
-
const clientResult = await viteBuild(viteClientConfig);
|
|
27
|
-
const serverResult = await viteBuild({
|
|
28
|
-
...viteServerConfig,
|
|
29
|
-
logLevel: "silent",
|
|
30
|
-
});
|
|
31
|
-
if (Array.isArray(clientResult)) {
|
|
32
|
-
throw new Error("Build failed");
|
|
33
|
-
}
|
|
34
|
-
const { config } = await loadZudokuConfig({ mode: "production", command: "build" }, options.dir);
|
|
35
|
-
const issuer = await getIssuer(config);
|
|
36
|
-
if ("output" in clientResult) {
|
|
37
|
-
const [jsEntry, cssEntries] = [
|
|
38
|
-
clientResult.output.find((o) => "isEntry" in o && o.isEntry)?.fileName,
|
|
39
|
-
clientResult.output
|
|
40
|
-
.filter((o) => o.fileName.endsWith(".css"))
|
|
41
|
-
.map((o) => o.fileName),
|
|
42
|
-
];
|
|
43
|
-
if (!jsEntry || cssEntries.length === 0) {
|
|
44
|
-
throw new Error("Build failed. No js or css assets found");
|
|
45
|
-
}
|
|
46
|
-
const html = getBuildHtml({
|
|
47
|
-
jsEntry: joinUrl(viteClientConfig.base, jsEntry),
|
|
48
|
-
cssEntries: cssEntries.map((css) => joinUrl(viteClientConfig.base, css)),
|
|
49
|
-
dir: config.site?.dir,
|
|
15
|
+
try {
|
|
16
|
+
// Shouldn't run in parallel because it's potentially racy
|
|
17
|
+
const viteClientConfig = await getViteConfig(options.dir, {
|
|
18
|
+
mode: "production",
|
|
19
|
+
command: "build",
|
|
50
20
|
});
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
21
|
+
const viteServerConfig = await getViteConfig(options.dir, {
|
|
22
|
+
mode: "production",
|
|
23
|
+
command: "build",
|
|
24
|
+
isSsrBuild: true,
|
|
25
|
+
});
|
|
26
|
+
// Don't run in parallel because it might overwrite itself
|
|
27
|
+
const clientResult = await viteBuild(viteClientConfig);
|
|
28
|
+
const serverResult = await viteBuild({
|
|
29
|
+
...viteServerConfig,
|
|
30
|
+
logLevel: "silent",
|
|
31
|
+
});
|
|
32
|
+
if (Array.isArray(clientResult)) {
|
|
33
|
+
throw new Error("Build failed");
|
|
34
|
+
}
|
|
35
|
+
const { config } = await loadZudokuConfig({ mode: "production", command: "build" }, options.dir);
|
|
36
|
+
const issuer = await getIssuer(config);
|
|
37
|
+
if ("output" in clientResult) {
|
|
38
|
+
const [jsEntry, cssEntries] = [
|
|
39
|
+
clientResult.output.find((o) => "isEntry" in o && o.isEntry)?.fileName,
|
|
40
|
+
clientResult.output
|
|
41
|
+
.filter((o) => o.fileName.endsWith(".css"))
|
|
42
|
+
.map((o) => o.fileName),
|
|
43
|
+
];
|
|
44
|
+
if (!jsEntry || cssEntries.length === 0) {
|
|
45
|
+
throw new Error("Build failed. No js or css assets found");
|
|
71
46
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
47
|
+
const html = getBuildHtml({
|
|
48
|
+
jsEntry: joinUrl(viteClientConfig.base, jsEntry),
|
|
49
|
+
cssEntries: cssEntries.map((css) => joinUrl(viteClientConfig.base, css)),
|
|
50
|
+
dir: config.site?.dir,
|
|
51
|
+
});
|
|
52
|
+
const serverConfigFilename = findOutputPathOfServerConfig(serverResult);
|
|
53
|
+
invariant(viteClientConfig.build?.outDir, "Client build outDir is missing");
|
|
54
|
+
invariant(viteServerConfig.build?.outDir, "Server build outDir is missing");
|
|
55
|
+
try {
|
|
56
|
+
const results = await prerender({
|
|
57
|
+
html,
|
|
58
|
+
dir: options.dir,
|
|
59
|
+
basePath: config.basePath,
|
|
60
|
+
serverConfigFilename,
|
|
61
|
+
writeRedirects: process.env.VERCEL === undefined,
|
|
62
|
+
});
|
|
63
|
+
const indexHtml = path.join(viteClientConfig.build.outDir, "index.html");
|
|
64
|
+
if (!results.find((r) => r.outputPath === indexHtml)) {
|
|
65
|
+
await writeFile(indexHtml, html, "utf-8");
|
|
66
|
+
}
|
|
67
|
+
// find 400.html, 404.html, 500.html
|
|
68
|
+
const statusPages = results.flatMap((r) => /400|404|500\.html$/.test(r.outputPath) ? r.outputPath : []);
|
|
69
|
+
// move status pages to root path (i.e. without base path)
|
|
70
|
+
for (const statusPage of statusPages) {
|
|
71
|
+
await rename(statusPage, path.join(options.dir, DIST_DIR, path.basename(statusPage)));
|
|
72
|
+
}
|
|
73
|
+
// Delete the server build output directory because we don't need it anymore
|
|
74
|
+
await rm(viteServerConfig.build.outDir, {
|
|
76
75
|
recursive: true,
|
|
76
|
+
force: true,
|
|
77
77
|
});
|
|
78
|
-
|
|
78
|
+
if (process.env.VERCEL) {
|
|
79
|
+
await mkdir(path.join(options.dir, ".vercel/output/static"), {
|
|
80
|
+
recursive: true,
|
|
81
|
+
});
|
|
82
|
+
await rename(path.join(options.dir, DIST_DIR), path.join(options.dir, ".vercel/output/static"));
|
|
83
|
+
}
|
|
84
|
+
// Write the build output file
|
|
85
|
+
await writeOutput(options.dir, {
|
|
86
|
+
config,
|
|
87
|
+
redirects: results.flatMap((r) => r.redirect ?? []),
|
|
88
|
+
});
|
|
89
|
+
if (ZuploEnv.isZuplo && issuer) {
|
|
90
|
+
await writeFile(path.join(options.dir, DIST_DIR, ".output/zuplo.json"), JSON.stringify({ issuer }, null, 2), "utf-8");
|
|
91
|
+
}
|
|
79
92
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
if (ZuploEnv.isZuplo && issuer) {
|
|
86
|
-
await writeFile(path.join(options.dir, DIST_DIR, ".output/zuplo.json"), JSON.stringify({ issuer }, null, 2), "utf-8");
|
|
93
|
+
catch (e) {
|
|
94
|
+
// dynamic imports in prerender swallow the stack trace, so we log it here
|
|
95
|
+
// biome-ignore lint/suspicious/noConsole: Logging allowed here
|
|
96
|
+
console.error(e);
|
|
97
|
+
throw e;
|
|
87
98
|
}
|
|
99
|
+
return;
|
|
88
100
|
}
|
|
89
|
-
|
|
90
|
-
|
|
101
|
+
throw new Error("Build failed");
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
// biome-ignore lint/suspicious/noConsole: Logging allowed here
|
|
105
|
+
console.error("\n❌ [FATAL] Build error in runBuild:");
|
|
106
|
+
// biome-ignore lint/suspicious/noConsole: Logging allowed here
|
|
107
|
+
console.error(error);
|
|
108
|
+
if (error instanceof Error && error.stack) {
|
|
109
|
+
// biome-ignore lint/suspicious/noConsole: Logging allowed here
|
|
110
|
+
console.error("\nStack:");
|
|
91
111
|
// biome-ignore lint/suspicious/noConsole: Logging allowed here
|
|
92
|
-
console.error(
|
|
93
|
-
throw e;
|
|
112
|
+
console.error(error.stack);
|
|
94
113
|
}
|
|
95
|
-
|
|
114
|
+
throw error;
|
|
96
115
|
}
|
|
97
|
-
throw new Error("Build failed");
|
|
98
116
|
}
|
|
99
117
|
//# sourceMappingURL=build.js.map
|
package/dist/vite/build.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/vite/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,4BAA4B,EAC5B,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,SAAS,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,MAAM,QAAQ,GAAG,MAAM,CAAC;AAExB,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAwB;IACrD,0DAA0D;
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/vite/build.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import { exportMdxjsConst } from "./utils.js";
|
|
3
3
|
export const remarkInjectFilepath = (rootDir) => (tree, vfile) => {
|
|
4
|
-
|
|
4
|
+
const relativePath = path
|
|
5
|
+
.relative(rootDir, vfile.path)
|
|
6
|
+
.split(path.sep)
|
|
7
|
+
.join(path.posix.sep);
|
|
8
|
+
tree.children.unshift(exportMdxjsConst("__filepath", relativePath));
|
|
5
9
|
};
|
|
6
10
|
//# sourceMappingURL=remark-inject-filepath.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remark-inject-filepath.js","sourceRoot":"","sources":["../../../src/vite/mdx/remark-inject-filepath.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,CAAC,MAAM,oBAAoB,GAC/B,CAAC,OAAe,EAAE,EAAE,CAAC,CAAC,IAAU,EAAE,KAAY,EAAE,EAAE;IAChD,IAAI,
|
|
1
|
+
{"version":3,"file":"remark-inject-filepath.js","sourceRoot":"","sources":["../../../src/vite/mdx/remark-inject-filepath.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,CAAC,MAAM,oBAAoB,GAC/B,CAAC,OAAe,EAAE,EAAE,CAAC,CAAC,IAAU,EAAE,KAAY,EAAE,EAAE;IAChD,MAAM,YAAY,GAAG,IAAI;SACtB,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC;SAC7B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;SACf,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC;AACtE,CAAC,CAAC"}
|
|
@@ -4,7 +4,8 @@ export const remarkLinkRewrite = (basePath = "") => (tree) => {
|
|
|
4
4
|
visit(tree, "link", (node) => {
|
|
5
5
|
if (!node.url)
|
|
6
6
|
return;
|
|
7
|
-
|
|
7
|
+
node.url = node.url.replace(/\\/g, "/");
|
|
8
|
+
const base = path.posix.join(basePath);
|
|
8
9
|
if (basePath && node.url.startsWith(base)) {
|
|
9
10
|
node.url = node.url.slice(base.length);
|
|
10
11
|
}
|
|
@@ -12,7 +13,7 @@ export const remarkLinkRewrite = (basePath = "") => (tree) => {
|
|
|
12
13
|
!node.url.startsWith("mailto:") &&
|
|
13
14
|
!node.url.startsWith("/") &&
|
|
14
15
|
!node.url.startsWith("#")) {
|
|
15
|
-
node.url = path.join("
|
|
16
|
+
node.url = path.posix.join("..", node.url);
|
|
16
17
|
}
|
|
17
18
|
node.url = node.url.replace(/\.mdx?(#.*)?$/, "$1");
|
|
18
19
|
});
|