zudoku 0.0.0-z6bcd96da → 0.0.0-zabced09d

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.
@@ -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"}
@@ -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
  });
@@ -1 +1 @@
1
- {"version":3,"file":"remark-link-rewrite.js","sourceRoot":"","sources":["../../../src/vite/mdx/remark-link-rewrite.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,MAAM,CAAC,MAAM,iBAAiB,GAC5B,CAAC,QAAQ,GAAG,EAAE,EAAE,EAAE,CAClB,CAAC,IAAU,EAAE,EAAE;IACb,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QAC3B,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,OAAO;QAEtB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;aAAM,IACL,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;YAC5B,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;YAC/B,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;YACzB,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EACzB,CAAC;YACD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
1
+ {"version":3,"file":"remark-link-rewrite.js","sourceRoot":"","sources":["../../../src/vite/mdx/remark-link-rewrite.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,MAAM,CAAC,MAAM,iBAAiB,GAC5B,CAAC,QAAQ,GAAG,EAAE,EAAE,EAAE,CAClB,CAAC,IAAU,EAAE,EAAE;IACb,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QAC3B,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,OAAO;QAEtB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAExC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;aAAM,IACL,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;YAC5B,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;YAC/B,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;YACzB,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EACzB,CAAC;YACD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -16,18 +16,20 @@ export const globMarkdownFiles = async (config, options = { absolute: false }) =
16
16
  const globbedFiles = await glob(globPattern, {
17
17
  root: config.__meta.rootDir,
18
18
  ignore: ["**/node_modules/**", "**/dist/**", "**/.git/**"],
19
- absolute: options.absolute,
19
+ // Always glob with relative paths to avoid issues on different OS
20
+ absolute: false,
20
21
  posix: true,
21
22
  });
22
23
  // Normalize parent by removing leading `./` or `/`
23
24
  const parent = globParent(globPattern).replace(/^\.?\//, "");
24
- const toRoutePath = (file) => {
25
- const relativePath = path.posix.relative(parent, file);
26
- return ensureLeadingSlash(relativePath.replace(/\.mdx?$/, ""));
27
- };
28
25
  for (const file of globbedFiles) {
29
- const routePath = toRoutePath(file);
30
- fileMapping[routePath] = file;
26
+ const relativePath = path.posix.relative(parent, file);
27
+ const routePath = ensureLeadingSlash(relativePath.replace(/\.mdx?$/, ""));
28
+ // Resolve to absolute path if requested, using path.resolve to handle cross-platform paths
29
+ const filePath = options.absolute
30
+ ? path.resolve(config.__meta.rootDir, file)
31
+ : file;
32
+ fileMapping[routePath] = filePath;
31
33
  }
32
34
  }
33
35
  return fileMapping;
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-docs.js","sourceRoot":"","sources":["../../src/vite/plugin-docs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin-docs.js","sourceRoot":"","sources":["../../src/vite/plugin-docs.ts"],"names":[],"mappings":"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"}
@@ -119,8 +119,10 @@ const viteMarkdownExportPlugin = () => {
119
119
  description,
120
120
  content: finalMarkdown,
121
121
  });
122
- const outputFileName = routePath === "/" ? "/index.md" : `${routePath}.md`;
123
- const outputPath = path.join(distDir, outputFileName);
122
+ const segments = routePath === "/"
123
+ ? ["index"]
124
+ : routePath.split("/").filter(Boolean);
125
+ const outputPath = `${path.join(distDir, ...segments)}.md`;
124
126
  await mkdir(path.dirname(outputPath), { recursive: true });
125
127
  await writeFile(outputPath, finalMarkdown, "utf-8");
126
128
  }
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-markdown-export.js","sourceRoot":"","sources":["../../src/vite/plugin-markdown-export.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin-markdown-export.js","sourceRoot":"","sources":["../../src/vite/plugin-markdown-export.ts"],"names":[],"mappings":"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"}