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.
Files changed (52) hide show
  1. package/dist/config/loader.js +3 -1
  2. package/dist/config/loader.js.map +1 -1
  3. package/dist/config/validators/InputNavigationSchema.d.ts +75 -75
  4. package/dist/config/validators/validate.d.ts +6 -6
  5. package/dist/lib/core/plugins.d.ts +11 -1
  6. package/dist/lib/core/plugins.js +1 -0
  7. package/dist/lib/core/plugins.js.map +1 -1
  8. package/dist/lib/core/transform-config.d.ts +2 -0
  9. package/dist/lib/core/transform-config.js +22 -0
  10. package/dist/lib/core/transform-config.js.map +1 -0
  11. package/dist/lib/oas/graphql/circular.d.ts +1 -1
  12. package/dist/lib/oas/graphql/circular.js +18 -35
  13. package/dist/lib/oas/graphql/circular.js.map +1 -1
  14. package/dist/lib/oas/graphql/circular.test.js +33 -2
  15. package/dist/lib/oas/graphql/circular.test.js.map +1 -1
  16. package/dist/lib/ui/Command.d.ts +3 -3
  17. package/dist/lib/util/readFrontmatter.js +2 -1
  18. package/dist/lib/util/readFrontmatter.js.map +1 -1
  19. package/dist/vite/build.js +91 -73
  20. package/dist/vite/build.js.map +1 -1
  21. package/dist/vite/mdx/remark-inject-filepath.js +5 -1
  22. package/dist/vite/mdx/remark-inject-filepath.js.map +1 -1
  23. package/dist/vite/mdx/remark-link-rewrite.js +3 -2
  24. package/dist/vite/mdx/remark-link-rewrite.js.map +1 -1
  25. package/dist/vite/plugin-docs.js +9 -7
  26. package/dist/vite/plugin-docs.js.map +1 -1
  27. package/dist/vite/plugin-markdown-export.js +4 -2
  28. package/dist/vite/plugin-markdown-export.js.map +1 -1
  29. package/lib/{OasProvider-CS_ASmBB.js → OasProvider-B2KxIBsI.js} +2 -2
  30. package/lib/{OasProvider-CS_ASmBB.js.map → OasProvider-B2KxIBsI.js.map} +1 -1
  31. package/lib/{OperationList-Dq_AB4W9.js → OperationList-C2tAfThO.js} +3 -3
  32. package/lib/{OperationList-Dq_AB4W9.js.map → OperationList-C2tAfThO.js.map} +1 -1
  33. package/lib/{SchemaList-BJZJv1gD.js → SchemaList-Ep8DleP_.js} +3 -3
  34. package/lib/{SchemaList-BJZJv1gD.js.map → SchemaList-Ep8DleP_.js.map} +1 -1
  35. package/lib/{SchemaView-U4JMYB3N.js → SchemaView-BpaEKRYx.js} +2 -2
  36. package/lib/{SchemaView-U4JMYB3N.js.map → SchemaView-BpaEKRYx.js.map} +1 -1
  37. package/lib/{circular-BmMJjG1v.js → circular-CG3e0_Uz.js} +1327 -1346
  38. package/lib/{circular-BmMJjG1v.js.map → circular-CG3e0_Uz.js.map} +1 -1
  39. package/lib/{createServer-CLSZ7hWJ.js → createServer-CNeRqj98.js} +3 -3
  40. package/lib/{createServer-CLSZ7hWJ.js.map → createServer-CNeRqj98.js.map} +1 -1
  41. package/lib/firebase-BCXX7Qv5.js.map +1 -1
  42. package/lib/{index-O9RHI87z.js → index-I3kmZ7tG.js} +6 -6
  43. package/lib/{index-O9RHI87z.js.map → index-I3kmZ7tG.js.map} +1 -1
  44. package/lib/zudoku.plugin-openapi.js +1 -1
  45. package/lib/zudoku.plugins.js +9 -8
  46. package/lib/zudoku.plugins.js.map +1 -1
  47. package/package.json +3 -2
  48. package/src/lib/core/plugins.ts +21 -1
  49. package/src/lib/core/transform-config.ts +29 -0
  50. package/src/lib/oas/graphql/circular.test.ts +37 -2
  51. package/src/lib/oas/graphql/circular.ts +25 -51
  52. 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;
@@ -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":"AA8BA,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;AAsC/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"}
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,2 @@
1
+ import type { ConfigWithMeta } from "../../config/loader.js";
2
+ export declare const runTransformConfigHooks: (config: ConfigWithMeta) => Promise<ConfigWithMeta>;
@@ -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, visited?: WeakSet<WeakKey>, refs?: WeakMap<WeakKey, any>, path?: string[], seenRefPaths?: Set<string>) => 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, visited = new WeakSet(), refs = new WeakMap(), path = [], seenRefPaths = new Set()) => {
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
- // Check if this object has a __$ref marker (set during schema code generation)
20
- // If we've already fully processed this ref path, return a reference marker
21
- // instead of the full data to avoid JSON.stringify serializing duplicates
22
- if (typeof refPath === "string" && seenRefPaths.has(refPath)) {
23
- return SCHEMA_REF_PREFIX + refPath;
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
- visited.add(obj);
37
- // Add refPath BEFORE recursing to detect cycles within this branch
38
- // This will be removed after processing to allow siblings with the same ref
39
- if (typeof refPath === "string") {
40
- seenRefPaths.add(refPath);
41
- }
42
- let result;
43
- if (Array.isArray(obj)) {
44
- result = obj.map((item, index) => handleCircularRefs(item, visited, refs, [...path, index.toString()], seenRefPaths));
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
- // Remove refPath after processing so sibling refs aren't incorrectly marked
54
- if (typeof refPath === "string") {
55
- seenRefPaths.delete(refPath);
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;AAGhD,MAAM,CAAC,MAAM,YAAY,GAAG,uBAAuB,CAAC;AACpD,MAAM,CAAC,MAAM,iBAAiB,GAAG,OAAO,CAAC;AAEzC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;IAC5B,YAAY;IACZ,OAAO;IACP,sBAAsB;IACtB,OAAO;IACP,OAAO;IACP,OAAO;CACR,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG;AAChC,6DAA6D;AAC7D,GAAQ,EACR,OAAO,GAAG,IAAI,OAAO,EAAE,EACvB,IAAI,GAAG,IAAI,OAAO,EAAE,EACpB,OAAiB,EAAE,EACnB,eAAe,IAAI,GAAG,EAAU,EAE3B,EAAE;IACP,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IAExD,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC;IAE3B,+EAA+E;IAC/E,4EAA4E;IAC5E,0EAA0E;IAC1E,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7D,OAAO,iBAAiB,GAAG,OAAO,CAAC;IACrC,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,OAAO,OAAO,KAAK,QAAQ;gBAChC,CAAC,CAAC,2EAA2E;oBAC3E,iBAAiB,GAAG,OAAO;gBAC7B,CAAC,CAAC,MAAM,CAAC;QACb,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;QAExE,OAAO,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAEjB,mEAAmE;IACnE,4EAA4E;IAC5E,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,MAA+B,CAAC;IACpC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAC/B,kBAAkB,CAChB,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,EAC3B,YAAY,CACb,CACF,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,EAAE,CAAC;QACZ,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAC9B,KAAK,EACL,OAAO,EACP,IAAI,EACJ,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EACd,YAAY,CACb,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAEtB,4EAA4E;IAC5E,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,CAAC;IACrD,GAAG,WAAW;IACd,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,6DAA6D;IAC1E,SAAS,EAAE,CAAC,KAAc,EAAE,EAAE,CAC5B,WAAW,CAAC,SAAS,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;CACnD,CAAC,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 deduplicate shared object instances with __$ref", () => {
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).toBe(`${SCHEMA_REF_PREFIX}#/components/schemas/Foo`);
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":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AAEvB,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtD,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;QACxD,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC9B,MAAM,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,GAAG,GAA4B,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACxD,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;QAEf,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,KAAK,GAAG,EAAE,MAAM,EAAE,2BAA2B,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACtE,MAAM,GAAG,GAAG;YACV,MAAM,EAAE,2BAA2B;YACnC,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE,KAAK;aACb;SACF,CAAC;QACD,KAAiC,CAAC,UAAU,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QAEhE,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,CAClC,GAAG,iBAAiB,2BAA2B,CAChD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,4BAA4B;IAC5B,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,gBAAgB,GAAG;YACvB,MAAM,EAAE,gCAAgC;YACxC,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,WAAW;SACpB,CAAC;QACF,MAAM,gBAAgB,GAAG;YACvB,MAAM,EAAE,gCAAgC;YACxC,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,WAAW;SACpB,CAAC;QAEF,MAAM,GAAG,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,UAAU,EAAE,gBAAgB;gBAC5B,UAAU,EAAE,gBAAgB;aAC7B;SACF,CAAC;QAEF,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAEvC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;YAC3C,MAAM,EAAE,gCAAgC;YACxC,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,WAAW;SACpB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;YAC3C,MAAM,EAAE,gCAAgC;YACxC,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,WAAW;SACpB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,MAAM,GAAG,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,EAAE,EAAE,EAAE,MAAM,EAAE,iCAAiC,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACjE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;qBACzB;iBACF;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,EAAE,EAAE,EAAE,MAAM,EAAE,iCAAiC,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACjE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;qBAC1B;iBACF;aACF;SACF,CAAC;QAEF,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAEvC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CACnD,MAAM,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAC3C,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CACnD,MAAM,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAC3C,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;QAClF,MAAM,YAAY,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;QAC/D,MAAM,GAAG,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE;SAC3D,CAAC;QAEF,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAEvC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACvC,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,QAAQ;SACtB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACvC,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,QAAQ;SACtB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,GAAG,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE;gBACL,EAAE,MAAM,EAAE,2BAA2B,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACvD,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;aAC9D;SACF,CAAC;QAEF,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAEvC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC9B,MAAM,EAAE,2BAA2B;YACnC,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,0BAA0B,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACtE,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAEvC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACvB,MAAM,EAAE,0BAA0B;YAClC,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,iBAAiB,0BAA0B,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,MAAM,GAA4B;YACtC,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAA6B;SAC1C,CAAC;QACF,MAAM,KAAK,GAA4B;YACrC,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SAC7B,CAAC;QACD,MAAM,CAAC,UAAsC,CAAC,KAAK,GAAG,KAAK,CAAC;QAE7D,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAE1C,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"circular.test.js","sourceRoot":"","sources":["../../../../src/lib/oas/graphql/circular.test.ts"],"names":[],"mappings":"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"}
@@ -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>>, "type" | "value" | "onChange"> & {
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>>, "type" | "value" | "onChange"> & {
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>>, "disabled" | "value" | "onSelect"> & {
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
- return matter(content, { engines: { yaml } });
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,MAAM,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AAChD,CAAC,CAAC"}
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"}
@@ -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
- // Shouldn't run in parallel because it's potentially racy
16
- const viteClientConfig = await getViteConfig(options.dir, {
17
- mode: "production",
18
- command: "build",
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 serverConfigFilename = findOutputPathOfServerConfig(serverResult);
52
- invariant(viteClientConfig.build?.outDir, "Client build outDir is missing");
53
- invariant(viteServerConfig.build?.outDir, "Server build outDir is missing");
54
- try {
55
- const results = await prerender({
56
- html,
57
- dir: options.dir,
58
- basePath: config.basePath,
59
- serverConfigFilename,
60
- writeRedirects: process.env.VERCEL === undefined,
61
- });
62
- const indexHtml = path.join(viteClientConfig.build.outDir, "index.html");
63
- if (!results.find((r) => r.outputPath === indexHtml)) {
64
- await writeFile(indexHtml, html, "utf-8");
65
- }
66
- // find 400.html, 404.html, 500.html
67
- const statusPages = results.flatMap((r) => /400|404|500\.html$/.test(r.outputPath) ? r.outputPath : []);
68
- // move status pages to root path (i.e. without base path)
69
- for (const statusPage of statusPages) {
70
- await rename(statusPage, path.join(options.dir, DIST_DIR, path.basename(statusPage)));
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
- // Delete the server build output directory because we don't need it anymore
73
- await rm(viteServerConfig.build.outDir, { recursive: true, force: true });
74
- if (process.env.VERCEL) {
75
- await mkdir(path.join(options.dir, ".vercel/output/static"), {
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
- await rename(path.join(options.dir, DIST_DIR), path.join(options.dir, ".vercel/output/static"));
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
- // Write the build output file
81
- await writeOutput(options.dir, {
82
- config,
83
- redirects: results.flatMap((r) => r.redirect ?? []),
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
- catch (e) {
90
- // dynamic imports in prerender swallow the stack trace, so we log it here
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(e);
93
- throw e;
112
+ console.error(error.stack);
94
113
  }
95
- return;
114
+ throw error;
96
115
  }
97
- throw new Error("Build failed");
98
116
  }
99
117
  //# sourceMappingURL=build.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/vite/build.ts"],"names":[],"mappings":"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"}
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
- tree.children.unshift(exportMdxjsConst("__filepath", path.relative(rootDir, vfile.path)));
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,CAAC,QAAQ,CAAC,OAAO,CACnB,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CACnE,CAAC;AACJ,CAAC,CAAC"}
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
- const base = path.join(basePath);
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("../", node.url);
16
+ node.url = path.posix.join("..", node.url);
16
17
  }
17
18
  node.url = node.url.replace(/\.mdx?(#.*)?$/, "$1");
18
19
  });