scribe-cms 0.0.8 → 0.0.10

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 (50) hide show
  1. package/README.md +5 -5
  2. package/dist/cli/index.cjs +433 -384
  3. package/dist/cli/index.cjs.map +1 -1
  4. package/dist/cli/index.js +433 -384
  5. package/dist/cli/index.js.map +1 -1
  6. package/dist/index.cjs +643 -512
  7. package/dist/index.cjs.map +1 -1
  8. package/dist/index.js +643 -513
  9. package/dist/index.js.map +1 -1
  10. package/dist/runtime.cjs +287 -261
  11. package/dist/runtime.cjs.map +1 -1
  12. package/dist/runtime.js +286 -261
  13. package/dist/runtime.js.map +1 -1
  14. package/dist/src/config/resolve-config.d.ts.map +1 -1
  15. package/dist/src/core/builtin-fields.d.ts +8 -8
  16. package/dist/src/core/builtin-fields.d.ts.map +1 -1
  17. package/dist/src/core/types.d.ts +11 -4
  18. package/dist/src/core/types.d.ts.map +1 -1
  19. package/dist/src/create-project.d.ts.map +1 -1
  20. package/dist/src/export/build-static-raw-exports.d.ts.map +1 -1
  21. package/dist/src/i18n/build-url.d.ts +16 -3
  22. package/dist/src/i18n/build-url.d.ts.map +1 -1
  23. package/dist/src/i18n/resolve-document.d.ts +3 -2
  24. package/dist/src/i18n/resolve-document.d.ts.map +1 -1
  25. package/dist/src/index.d.ts +3 -2
  26. package/dist/src/index.d.ts.map +1 -1
  27. package/dist/src/loader/create-loader.d.ts.map +1 -1
  28. package/dist/src/redirects/build-json-redirects.d.ts +6 -0
  29. package/dist/src/redirects/build-json-redirects.d.ts.map +1 -0
  30. package/dist/src/redirects/build-redirects.d.ts +9 -7
  31. package/dist/src/redirects/build-redirects.d.ts.map +1 -1
  32. package/dist/src/redirects/load-type-redirects.d.ts +14 -0
  33. package/dist/src/redirects/load-type-redirects.d.ts.map +1 -0
  34. package/dist/src/redirects/redirect-schema.d.ts +31 -0
  35. package/dist/src/redirects/redirect-schema.d.ts.map +1 -0
  36. package/dist/src/runtime.d.ts +3 -1
  37. package/dist/src/runtime.d.ts.map +1 -1
  38. package/dist/src/sitemap/generate-sitemap.d.ts.map +1 -1
  39. package/dist/src/validate/validate-project.d.ts.map +1 -1
  40. package/dist/src/validate/validate-redirects.d.ts +4 -0
  41. package/dist/src/validate/validate-redirects.d.ts.map +1 -0
  42. package/dist/studio/server.cjs +90 -61
  43. package/dist/studio/server.cjs.map +1 -1
  44. package/dist/studio/server.js +90 -61
  45. package/dist/studio/server.js.map +1 -1
  46. package/package.json +1 -1
  47. package/dist/src/core/slug-aliases.d.ts +0 -27
  48. package/dist/src/core/slug-aliases.d.ts.map +0 -1
  49. package/dist/src/redirects/translation-index.d.ts +0 -4
  50. package/dist/src/redirects/translation-index.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-config.d.ts","sourceRoot":"","sources":["../../../src/config/resolve-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,YAAY,EACZ,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAK1B,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,YAAY,CAMxE;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,iBAAiB,CAAC,GAAG,CAAC,GAAG,YAAY,EAC5C,OAAO,CAAC,EAAE,MAAM,GACf,YAAY,CAuDd"}
1
+ {"version":3,"file":"resolve-config.d.ts","sourceRoot":"","sources":["../../../src/config/resolve-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,YAAY,EACZ,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAK1B,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,YAAY,CAMxE;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,iBAAiB,CAAC,GAAG,CAAC,GAAG,YAAY,EAC5C,OAAO,CAAC,EAAE,MAAM,GACf,YAAY,CAgEd"}
@@ -1,11 +1,10 @@
1
1
  import { z } from "zod";
2
- import type { ContentTypeConfig, ScribeDocument } from "./types.js";
2
+ import { pathPrefix, pathSuffix } from "../i18n/build-url.js";
3
+ import type { ContentTypeConfig, LocaleRoutingConfig, ScribeDocument } from "./types.js";
3
4
  export declare const SLUG_PATTERN: RegExp;
4
5
  export declare const slugPatternSchema: z.ZodString;
5
6
  export declare const isoDateSchema: z.ZodString;
6
7
  export interface BuiltinEnFields {
7
- aliases: string[];
8
- redirectTo?: string;
9
8
  publishedAt?: string;
10
9
  updatedAt?: string;
11
10
  noindex: boolean;
@@ -17,8 +16,8 @@ export interface BuiltinParseIssue {
17
16
  message: string;
18
17
  level: "error" | "warning";
19
18
  }
20
- /** Extract built-in EN frontmatter (aliases, dates, SEO) before Zod validation. */
21
- export declare function extractBuiltinEnFields(data: Record<string, unknown>, pathTemplate: string | undefined, enSlug: string, defaultLocale: string): {
19
+ /** Extract built-in EN frontmatter (dates, SEO) before Zod validation. */
20
+ export declare function extractBuiltinEnFields(data: Record<string, unknown>, _pathTemplate: string | undefined, _enSlug: string, _defaultLocale: string): {
22
21
  builtin: BuiltinEnFields;
23
22
  rest: Record<string, unknown>;
24
23
  issues: BuiltinParseIssue[];
@@ -31,8 +30,9 @@ export declare function documentLastModified(doc: {
31
30
  publishedAt?: string;
32
31
  }): string | undefined;
33
32
  /** Locale-aware pathname for a document. */
34
- export declare function resolveCanonicalPathname(type: Pick<ContentTypeConfig, "path">, doc: Pick<ScribeDocument, "slug" | "locale" | "canonicalPathOverride">, defaultLocale: string): string;
33
+ export declare function resolveCanonicalPathname(type: Pick<ContentTypeConfig, "path">, doc: Pick<ScribeDocument, "slug" | "locale" | "canonicalPathOverride">, defaultLocale: string, localeRouting?: LocaleRoutingConfig): string;
35
34
  /** Hydrate locale frontmatter with EN-only built-in fields at load time. */
36
- export declare function mergeBuiltinsIntoFrontmatter(frontmatter: Record<string, unknown>, doc: Pick<ScribeDocument, "publishedAt" | "updatedAt" | "noindex" | "canonicalPathOverride" | "slug" | "locale">, type: Pick<ContentTypeConfig, "path">, defaultLocale: string): Record<string, unknown>;
37
- export declare function seoFieldsFromEn(enDoc: ScribeDocument): Pick<ScribeDocument, "publishedAt" | "updatedAt" | "noindex" | "canonicalPathOverride" | "redirectTo">;
35
+ export declare function mergeBuiltinsIntoFrontmatter(frontmatter: Record<string, unknown>, doc: Pick<ScribeDocument, "publishedAt" | "updatedAt" | "noindex" | "canonicalPathOverride" | "slug" | "locale">, type: Pick<ContentTypeConfig, "path">, defaultLocale: string, localeRouting?: LocaleRoutingConfig): Record<string, unknown>;
36
+ export declare function seoFieldsFromEn(enDoc: ScribeDocument): Pick<ScribeDocument, "publishedAt" | "updatedAt" | "noindex" | "canonicalPathOverride">;
37
+ export { pathPrefix, pathSuffix };
38
38
  //# sourceMappingURL=builtin-fields.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"builtin-fields.d.ts","sourceRoot":"","sources":["../../../src/core/builtin-fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEpE,eAAO,MAAM,YAAY,QAA+B,CAAC;AAEzD,eAAO,MAAM,iBAAiB,aAE6B,CAAC;AAE5D,eAAO,MAAM,aAAa,aAE+D,CAAC;AAI1F,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,2DAA2D;IAC3D,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;CAC5B;AAaD,mFAAmF;AACnF,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,GACpB;IACD,OAAO,EAAE,eAAe,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,EAAE,iBAAiB,EAAE,CAAC;CAC7B,CAwHA;AAED,8DAA8D;AAC9D,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,iBAAiB,EAAE,CAQ9F;AAED,kEAAkE;AAClE,wBAAgB,oBAAoB,CAAC,GAAG,EAAE;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,MAAM,GAAG,SAAS,CAKrB;AAED,4CAA4C;AAC5C,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,EACrC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,QAAQ,GAAG,uBAAuB,CAAC,EACtE,aAAa,EAAE,MAAM,GACpB,MAAM,CAOR;AAED,4EAA4E;AAC5E,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,GAAG,EAAE,IAAI,CACP,cAAc,EACd,aAAa,GAAG,WAAW,GAAG,SAAS,GAAG,uBAAuB,GAAG,MAAM,GAAG,QAAQ,CACtF,EACD,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,EACrC,aAAa,EAAE,MAAM,GACpB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAOzB;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAC1D,cAAc,EACd,aAAa,GAAG,WAAW,GAAG,SAAS,GAAG,uBAAuB,GAAG,YAAY,CACjF,CAQA"}
1
+ {"version":3,"file":"builtin-fields.d.ts","sourceRoot":"","sources":["../../../src/core/builtin-fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAoB,UAAU,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEzF,eAAO,MAAM,YAAY,QAA+B,CAAC;AAEzD,eAAO,MAAM,iBAAiB,aAE6B,CAAC;AAE5D,eAAO,MAAM,aAAa,aAE+D,CAAC;AAI1F,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,2DAA2D;IAC3D,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;CAC5B;AAwBD,0EAA0E;AAC1E,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,GACrB;IACD,OAAO,EAAE,eAAe,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,EAAE,iBAAiB,EAAE,CAAC;CAC7B,CAmFA;AAED,8DAA8D;AAC9D,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,iBAAiB,EAAE,CAQ9F;AAED,kEAAkE;AAClE,wBAAgB,oBAAoB,CAAC,GAAG,EAAE;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,MAAM,GAAG,SAAS,CAKrB;AAED,4CAA4C;AAC5C,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,EACrC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,QAAQ,GAAG,uBAAuB,CAAC,EACtE,aAAa,EAAE,MAAM,EACrB,aAAa,CAAC,EAAE,mBAAmB,GAClC,MAAM,CAYR;AAED,4EAA4E;AAC5E,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,GAAG,EAAE,IAAI,CACP,cAAc,EACd,aAAa,GAAG,WAAW,GAAG,SAAS,GAAG,uBAAuB,GAAG,MAAM,GAAG,QAAQ,CACtF,EACD,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,EACrC,aAAa,EAAE,MAAM,EACrB,aAAa,CAAC,EAAE,mBAAmB,GAClC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAOzB;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAC1D,cAAc,EACd,aAAa,GAAG,WAAW,GAAG,SAAS,GAAG,uBAAuB,CAClE,CAOA;AAED,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC"}
@@ -33,6 +33,14 @@ export interface LocalePresets {
33
33
  ultraLight?: string[];
34
34
  [name: string]: string[] | undefined;
35
35
  }
36
+ /** How non-default locales appear in generated URLs. */
37
+ export type LocaleRoutingConfig = {
38
+ strategy: "path-prefix";
39
+ prefixDefaultLocale?: boolean;
40
+ } | {
41
+ strategy: "search-param";
42
+ param: string;
43
+ };
36
44
  /** Per-content-type translation settings (merged over the project-level defaults). */
37
45
  export interface TranslateConfig {
38
46
  /** Replace the default system prompt entirely. */
@@ -102,6 +110,8 @@ export interface ScribeConfigInput<TTypes extends readonly ContentTypeInput<any>
102
110
  locales: string[];
103
111
  /** Canonical source locale. Must be in `locales`. Default: `"en"`. */
104
112
  defaultLocale?: string;
113
+ /** How locale markers are applied to generated URLs. Default: path-prefix without default locale. */
114
+ localeRouting?: LocaleRoutingConfig;
105
115
  localePresets?: LocalePresets;
106
116
  translate?: ScribeTranslateDefaults;
107
117
  types: TTypes;
@@ -119,6 +129,7 @@ export interface ScribeConfig {
119
129
  assetsPath?: string;
120
130
  locales: string[];
121
131
  defaultLocale: string;
132
+ localeRouting: LocaleRoutingConfig;
122
133
  localePresets?: LocalePresets;
123
134
  translate?: ScribeTranslateDefaults;
124
135
  types: ContentTypeConfig[];
@@ -130,10 +141,6 @@ export interface ScribeDocument<TFrontmatter = Record<string, unknown>> {
130
141
  /** Slug of the EN (default-locale) parent. Equal to `slug` for EN documents. */
131
142
  enSlug: string;
132
143
  locale: string;
133
- /** Inbound slug aliases (EN canonical docs only). */
134
- aliases: string[];
135
- /** Outbound retirement redirect, e.g. `/blog/successor-slug`. */
136
- redirectTo?: string;
137
144
  publishedAt?: string;
138
145
  updatedAt?: string;
139
146
  noindex: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-project.d.ts","sourceRoot":"","sources":["../../src/create-project.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKV,YAAY,EAEZ,aAAa,EAEd,MAAM,iBAAiB,CAAC;AAoLzB;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,aAAa,CA0BjE"}
1
+ {"version":3,"file":"create-project.d.ts","sourceRoot":"","sources":["../../src/create-project.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKV,YAAY,EAEZ,aAAa,EAEd,MAAM,iBAAiB,CAAC;AA2LzB;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,aAAa,CA0BjE"}
@@ -1 +1 @@
1
- {"version":3,"file":"build-static-raw-exports.d.ts","sourceRoot":"","sources":["../../../src/export/build-static-raw-exports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAItD,MAAM,WAAW,eAAe;IAC9B,qFAAqF;IACrF,YAAY,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,4BAA4B;IAC3C,wDAAwD;IACxD,SAAS,CAAC,EAAE,IAAI,MAAM,EAAE,CAAC;IACzB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,oDAAoD;IACpD,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,gFAAgF;IAChF,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,4DAA4D;IAC5D,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAMD,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAG7D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,aAAa,EACtB,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAO,GAC9D,MAAM,EAAE,CAkBV;AAED,mEAAmE;AACnE,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,aAAa,EACtB,OAAO,GAAE,4BAAiC,GACzC,eAAe,EAAE,CA2CnB"}
1
+ {"version":3,"file":"build-static-raw-exports.d.ts","sourceRoot":"","sources":["../../../src/export/build-static-raw-exports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAItD,MAAM,WAAW,eAAe;IAC9B,qFAAqF;IACrF,YAAY,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,4BAA4B;IAC3C,wDAAwD;IACxD,SAAS,CAAC,EAAE,IAAI,MAAM,EAAE,CAAC;IACzB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,oDAAoD;IACpD,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,gFAAgF;IAChF,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,4DAA4D;IAC5D,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAMD,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAG7D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,aAAa,EACtB,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAO,GAC9D,MAAM,EAAE,CAkBV;AAED,mEAAmE;AACnE,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,aAAa,EACtB,OAAO,GAAE,4BAAiC,GACzC,eAAe,EAAE,CA4CnB"}
@@ -1,4 +1,4 @@
1
- import type { ContentTypeConfig } from "../core/types.js";
1
+ import type { ContentTypeConfig, LocaleRoutingConfig, ScribeConfig } from "../core/types.js";
2
2
  /** Whether a content type has a public URL path template. */
3
3
  export declare function isRoutableType(type: Pick<ContentTypeConfig, "path">): boolean;
4
4
  /** Validate path template at project init. */
@@ -7,8 +7,21 @@ export declare function assertValidPathTemplate(path: string, typeId: string): v
7
7
  export declare function pathPrefix(template: string): string;
8
8
  /** Segment after `{slug}` in the template, e.g. `/advanced` from `/blog/{slug}/advanced`. */
9
9
  export declare function pathSuffix(template: string): string;
10
+ export interface UrlBuilder {
11
+ defaultLocale: string;
12
+ locales: readonly string[];
13
+ localeRouting: LocaleRoutingConfig;
14
+ /** Locales that receive a non-default locale marker in generated URLs. */
15
+ prefixedLocales: string[];
16
+ resolvePath: (template: string, slug: string, locale: string) => string;
17
+ extractSlugFromResolvedPath: (template: string, resolvedPath: string) => string | null;
18
+ /** Apply locale routing to an already-resolved pathname (e.g. canonicalPath override). */
19
+ applyLocaleToPath: (pathname: string, locale: string) => string;
20
+ }
21
+ /** Create a locale-aware URL builder from a resolved Scribe config. */
22
+ export declare function createUrlBuilder(config: Pick<ScribeConfig, "locales" | "defaultLocale" | "localeRouting">): UrlBuilder;
10
23
  /** Build a locale-aware pathname from a path template and slug. */
11
- export declare function resolvePath(template: string, slug: string, locale: string, defaultLocale: string): string;
24
+ export declare function resolvePath(template: string, slug: string, locale: string, defaultLocale: string, localeRouting?: LocaleRoutingConfig): string;
12
25
  /** Extract slug from a resolved path that matches the template. */
13
- export declare function extractSlugFromResolvedPath(template: string, resolvedPath: string): string | null;
26
+ export declare function extractSlugFromResolvedPath(template: string, resolvedPath: string, localeRouting?: LocaleRoutingConfig): string | null;
14
27
  //# sourceMappingURL=build-url.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"build-url.d.ts","sourceRoot":"","sources":["../../../src/i18n/build-url.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAI1D,6DAA6D;AAC7D,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,GAAG,OAAO,CAE7E;AAED,8CAA8C;AAC9C,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAU1E;AAED,kFAAkF;AAClF,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAInD;AAED,6FAA6F;AAC7F,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAInD;AAED,mEAAmE;AACnE,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,GACpB,MAAM,CAIR;AAED,mEAAmE;AACnE,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQjG"}
1
+ {"version":3,"file":"build-url.d.ts","sourceRoot":"","sources":["../../../src/i18n/build-url.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAI7F,6DAA6D;AAC7D,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,GAAG,OAAO,CAE7E;AAED,8CAA8C;AAC9C,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAU1E;AAED,kFAAkF;AAClF,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAInD;AAED,6FAA6F;AAC7F,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAInD;AAYD,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,aAAa,EAAE,mBAAmB,CAAC;IACnC,0EAA0E;IAC1E,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IACxE,2BAA2B,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IACvF,0FAA0F;IAC1F,iBAAiB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;CACjE;AAED,uEAAuE;AACvE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,eAAe,GAAG,eAAe,CAAC,GAAG,UAAU,CAmEtH;AAED,mEAAmE;AACnE,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,aAAa,CAAC,EAAE,mBAAmB,GAClC,MAAM,CAOR;AAED,mEAAmE;AACnE,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,aAAa,CAAC,EAAE,mBAAmB,GAClC,MAAM,GAAG,IAAI,CAOf"}
@@ -1,9 +1,10 @@
1
1
  import type { ContentTypeConfig, ScribeDocument, ResolvedDocument } from "../core/types.js";
2
- /** Resolve a document by slug and locale (fallback, aliases, redirects). */
2
+ import type { LocaleRoutingConfig } from "../core/types.js";
3
+ /** Resolve a document by slug and locale (fallback, cross-locale slug correction). */
3
4
  export declare function resolveLocalizedDocument<TDoc extends ScribeDocument>(slug: string, locale: string, defaultLocale: string, allDocs: ReadonlyMap<string, {
4
5
  bySlug: ReadonlyMap<string, TDoc>;
5
6
  byEnSlug: ReadonlyMap<string, TDoc>;
6
- }>, type: ContentTypeConfig): ResolvedDocument<TDoc>;
7
+ }>, type: ContentTypeConfig, localeRouting?: LocaleRoutingConfig): ResolvedDocument<TDoc>;
7
8
  /** Map a document slug from one locale to another via the EN parent slug. */
8
9
  export declare function getSlugForLocale<TDoc extends ScribeDocument>(document: TDoc, sourceLocale: string, targetLocale: string, allDocs: ReadonlyMap<string, {
9
10
  bySlug: ReadonlyMap<string, TDoc>;
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-document.d.ts","sourceRoot":"","sources":["../../../src/i18n/resolve-document.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAgE5F,4EAA4E;AAC5E,wBAAgB,wBAAwB,CAAC,IAAI,SAAS,cAAc,EAClE,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;CAAE,CAAC,EACxG,IAAI,EAAE,iBAAiB,GACtB,gBAAgB,CAAC,IAAI,CAAC,CA2FxB;AAED,6EAA6E;AAC7E,wBAAgB,gBAAgB,CAAC,IAAI,SAAS,cAAc,EAC1D,QAAQ,EAAE,IAAI,EACd,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;CAAE,CAAC,EACxG,aAAa,EAAE,MAAM,GACpB,MAAM,GAAG,IAAI,CAQf"}
1
+ {"version":3,"file":"resolve-document.d.ts","sourceRoot":"","sources":["../../../src/i18n/resolve-document.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE5F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,sFAAsF;AACtF,wBAAgB,wBAAwB,CAAC,IAAI,SAAS,cAAc,EAClE,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;CAAE,CAAC,EACxG,IAAI,EAAE,iBAAiB,EACvB,aAAa,CAAC,EAAE,mBAAmB,GAClC,gBAAgB,CAAC,IAAI,CAAC,CA2DxB;AAED,6EAA6E;AAC7E,wBAAgB,gBAAgB,CAAC,IAAI,SAAS,cAAc,EAC1D,QAAQ,EAAE,IAAI,EACd,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;CAAE,CAAC,EACxG,aAAa,EAAE,MAAM,GACpB,MAAM,GAAG,IAAI,CAQf"}
@@ -1,10 +1,11 @@
1
1
  export { field, getRelationTarget, getFieldKind, unwrapSchema } from "./core/field.js";
2
2
  export type { RelationBrand, RelationField, RelationFieldOptions, RelationMeta, } from "./core/field.js";
3
3
  export { defineConfig, defineContentType } from "./core/types.js";
4
- export type { ScribeConfigInput, ScribeConfig, ScribeProject, ScribeDocument, ContentTypeInput, ContentTypeConfig, ContentTypeRuntime, ListOptions, OrderBy, StaticParam, LocaleIndex, AllDocuments, ResolvedDocument, CrossValidateContext, CrossValidateIssue, TranslateConfig, ScribeTranslateDefaults, LocalePresets, SlugStrategy, IndexFallback, Scribe, InferDocMap, InferDocFromTypeConfig, RelationFieldsOf, RelatedMapFor, ScribeClient, ScribeDocs, ScribeDocOf, } from "./core/types.js";
4
+ export type { ScribeConfigInput, ScribeConfig, ScribeProject, ScribeDocument, ContentTypeInput, ContentTypeConfig, ContentTypeRuntime, ListOptions, OrderBy, StaticParam, LocaleIndex, AllDocuments, ResolvedDocument, CrossValidateContext, CrossValidateIssue, TranslateConfig, ScribeTranslateDefaults, LocalePresets, LocaleRoutingConfig, SlugStrategy, IndexFallback, Scribe, InferDocMap, InferDocFromTypeConfig, RelationFieldsOf, RelatedMapFor, ScribeClient, ScribeDocs, ScribeDocOf, } from "./core/types.js";
5
5
  export { createScribe } from "./create-scribe.js";
6
6
  export { createProject } from "./create-project.js";
7
- export { isRoutableType } from "./i18n/build-url.js";
7
+ export { isRoutableType, createUrlBuilder } from "./i18n/build-url.js";
8
+ export type { UrlBuilder } from "./i18n/build-url.js";
8
9
  export { resolveConfig, isResolvedConfig } from "./config/resolve-config.js";
9
10
  export { loadConfigSync, findConfigPath } from "./config/load-config.js";
10
11
  export { validateProject } from "./validate/validate-project.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACvF,YAAY,EACV,aAAa,EACb,aAAa,EACb,oBAAoB,EACpB,YAAY,GACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAClE,YAAY,EACV,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EACX,OAAO,EACP,WAAW,EACX,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,aAAa,EACb,YAAY,EACZ,aAAa,EACb,MAAM,EACN,WAAW,EACX,sBAAsB,EACtB,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,UAAU,EACV,WAAW,GACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACpF,OAAO,EACL,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,gCAAgC,CAAC;AACxC,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAClF,YAAY,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACjH,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAClF,YAAY,EACV,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,YAAY,EACV,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,YAAY,EACZ,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,sCAAsC,CAAC;AAC9C,YAAY,EACV,4BAA4B,EAC5B,eAAe,GAChB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,YAAY,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AACzF,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACvF,YAAY,EACV,aAAa,EACb,aAAa,EACb,oBAAoB,EACpB,YAAY,GACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAClE,YAAY,EACV,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EACX,OAAO,EACP,WAAW,EACX,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,MAAM,EACN,WAAW,EACX,sBAAsB,EACtB,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,UAAU,EACV,WAAW,GACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACpF,OAAO,EACL,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,gCAAgC,CAAC;AACxC,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAClF,YAAY,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACjH,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAClF,YAAY,EACV,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,YAAY,EACV,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,YAAY,EACZ,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,sCAAsC,CAAC;AAC9C,YAAY,EACV,4BAA4B,EAC5B,eAAe,GAChB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,YAAY,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AACzF,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-loader.d.ts","sourceRoot":"","sources":["../../../src/loader/create-loader.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EAEjB,YAAY,EACZ,cAAc,EACf,MAAM,kBAAkB,CAAC;AAqB1B,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAChC,MAAM,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAA;KAAE,CAAC,CAAC;CAC/E;AAED,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,iBAAiB,GACtB,aAAa,CA2Ef;AAwCD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,iBAAiB,GAAG,MAAM,YAAY,CAoGrG;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,iBAAiB,EACvB,MAAM,EAAE,MAAM,GACb,cAAc,GAAG,IAAI,CASvB;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,iBAAiB,GACtB;IAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAKxD"}
1
+ {"version":3,"file":"create-loader.d.ts","sourceRoot":"","sources":["../../../src/loader/create-loader.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EAEjB,YAAY,EACZ,cAAc,EACf,MAAM,kBAAkB,CAAC;AAqB1B,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAChC,MAAM,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAA;KAAE,CAAC,CAAC;CAC/E;AAED,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,iBAAiB,GACtB,aAAa,CA0Ef;AAwCD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,iBAAiB,GAAG,MAAM,YAAY,CAoGrG;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,iBAAiB,EACvB,MAAM,EAAE,MAAM,GACb,cAAc,GAAG,IAAI,CASvB;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,iBAAiB,GACtB;IAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAKxD"}
@@ -0,0 +1,6 @@
1
+ import type { ScribeProject } from "../core/types.js";
2
+ import type { NextRedirectRule } from "./types.js";
3
+ export declare function buildJsonRedirects(project: ScribeProject): NextRedirectRule[];
4
+ export declare function buildRedirectSourceSlugSet(project: ScribeProject): Set<string>;
5
+ export declare function buildLegacyNoBlogPathRedirects(project: ScribeProject, redirectSourceKeys: Set<string>): NextRedirectRule[];
6
+ //# sourceMappingURL=build-json-redirects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-json-redirects.d.ts","sourceRoot":"","sources":["../../../src/redirects/build-json-redirects.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAqB,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAOzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAyInD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,aAAa,GAAG,gBAAgB,EAAE,CAoB7E;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,CAY9E;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,aAAa,EACtB,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,GAC9B,gBAAgB,EAAE,CAsCpB"}
@@ -1,17 +1,19 @@
1
1
  import type { ScribeProject } from "../core/types.js";
2
+ import { listEnSlugs } from "../core/alias-helpers.js";
2
3
  import type { NextRedirectRule } from "./types.js";
3
4
  export interface BuildRedirectsOptions {
4
- /** Locales that use a URL prefix (excludes default locale). */
5
- prefixedLocales: string[];
5
+ /** Locales that use a URL prefix (excludes default locale). Deprecated: derived from localeRouting when omitted. */
6
+ prefixedLocales?: string[];
6
7
  }
7
- /** Build Next.js redirect rules from aliases, redirect_to, and locale slug fixes. */
8
- export declare function buildAllContentRedirects(project: ScribeProject, options: BuildRedirectsOptions): NextRedirectRule[];
8
+ /** Build Next.js redirect rules from `_redirects.json`, locale slug fixes, and legacy blog paths. */
9
+ export declare function buildAllContentRedirects(project: ScribeProject, _options?: BuildRedirectsOptions): NextRedirectRule[];
9
10
  export interface RedirectSourceSlugs {
10
- /** All alias slugs (inbound old slugs) — exclude from sitemap. */
11
+ /** All inbound redirect source slugs — exclude from sitemap. */
11
12
  aliasSlugs: Set<string>;
12
- /** EN canonical slugs with outbound redirect_to — exclude from sitemap. */
13
+ /** EN canonical slugs with outbound redirects — exclude from sitemap. */
13
14
  outboundByType: Map<string, Set<string>>;
14
15
  }
15
- /** Slugs excluded from sitemap (aliases and outbound redirect_to sources). */
16
+ /** Slugs excluded from sitemap (redirect sources). */
16
17
  export declare function getRedirectSourceSlugs(project: ScribeProject): RedirectSourceSlugs;
18
+ export { listEnSlugs };
17
19
  //# sourceMappingURL=build-redirects.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"build-redirects.d.ts","sourceRoot":"","sources":["../../../src/redirects/build-redirects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAqB,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAKzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGnD,MAAM,WAAW,qBAAqB;IACpC,+DAA+D;IAC/D,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AA6MD,qFAAqF;AACrF,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,qBAAqB,GAC7B,gBAAgB,EAAE,CAUpB;AAED,MAAM,WAAW,mBAAmB;IAClC,kEAAkE;IAClE,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,2EAA2E;IAC3E,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;CAC1C;AAED,8EAA8E;AAC9E,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,aAAa,GAAG,mBAAmB,CAiBlF"}
1
+ {"version":3,"file":"build-redirects.d.ts","sourceRoot":"","sources":["../../../src/redirects/build-redirects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAevD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,WAAW,qBAAqB;IACpC,oHAAoH;IACpH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AA6ED,qGAAqG;AACrG,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,aAAa,EACtB,QAAQ,GAAE,qBAA0B,GACnC,gBAAgB,EAAE,CAapB;AAED,MAAM,WAAW,mBAAmB;IAClC,gEAAgE;IAChE,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,yEAAyE;IACzE,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;CAC1C;AAED,sDAAsD;AACtD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,aAAa,GAAG,mBAAmB,CAelF;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { ContentTypeConfig, ScribeConfig } from "../core/types.js";
2
+ import { type ParsedRedirectEntry } from "./redirect-schema.js";
3
+ export declare const TYPE_REDIRECTS_FILENAME = "_redirects.json";
4
+ export interface LoadedTypeRedirects {
5
+ contentTypeId: string;
6
+ contentDir: string;
7
+ filePath: string;
8
+ entries: ParsedRedirectEntry[];
9
+ }
10
+ export declare function loadTypeRedirectsFile(config: ScribeConfig, type: ContentTypeConfig): LoadedTypeRedirects | null;
11
+ export declare function loadAllTypeRedirects(config: ScribeConfig): LoadedTypeRedirects[];
12
+ export declare function collectRedirectSourceSlugs(loaded: LoadedTypeRedirects[]): Set<string>;
13
+ export declare function collectOutboundRedirectSourcesByType(loaded: LoadedTypeRedirects[]): Map<string, Set<string>>;
14
+ //# sourceMappingURL=load-type-redirects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-type-redirects.d.ts","sourceRoot":"","sources":["../../../src/redirects/load-type-redirects.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAEL,KAAK,mBAAmB,EAEzB,MAAM,sBAAsB,CAAC;AAE9B,eAAO,MAAM,uBAAuB,oBAAoB,CAAC;AAEzD,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,mBAAmB,EAAE,CAAC;CAChC;AAMD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,iBAAiB,GACtB,mBAAmB,GAAG,IAAI,CA2B5B;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,mBAAmB,EAAE,CAOhF;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,mBAAmB,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAUrF;AAED,wBAAgB,oCAAoC,CAClD,MAAM,EAAE,mBAAmB,EAAE,GAC5B,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAY1B"}
@@ -0,0 +1,31 @@
1
+ import { z } from "zod";
2
+ export declare const typeRedirectEntrySchema: z.ZodObject<{
3
+ from: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
4
+ toSlug: z.ZodOptional<z.ZodString>;
5
+ toType: z.ZodOptional<z.ZodString>;
6
+ toUrl: z.ZodOptional<z.ZodString>;
7
+ permanent: z.ZodOptional<z.ZodBoolean>;
8
+ }, z.core.$strip>;
9
+ export declare const typeRedirectsFileSchema: z.ZodObject<{
10
+ redirects: z.ZodArray<z.ZodObject<{
11
+ from: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
12
+ toSlug: z.ZodOptional<z.ZodString>;
13
+ toType: z.ZodOptional<z.ZodString>;
14
+ toUrl: z.ZodOptional<z.ZodString>;
15
+ permanent: z.ZodOptional<z.ZodBoolean>;
16
+ }, z.core.$strip>>;
17
+ }, z.core.$strip>;
18
+ export type TypeRedirectEntry = z.infer<typeof typeRedirectEntrySchema>;
19
+ export type TypeRedirectsFile = z.infer<typeof typeRedirectsFileSchema>;
20
+ export type RedirectTargetKind = "same-type" | "cross-type" | "anywhere";
21
+ export interface ParsedRedirectEntry {
22
+ fromSlugs: string[];
23
+ kind: RedirectTargetKind;
24
+ toSlug?: string;
25
+ toType?: string;
26
+ toUrl?: string;
27
+ permanent: boolean;
28
+ }
29
+ export declare function normalizeRedirectFrom(from: string | string[]): string[];
30
+ export declare function parseRedirectEntry(entry: TypeRedirectEntry): ParsedRedirectEntry;
31
+ //# sourceMappingURL=redirect-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redirect-schema.d.ts","sourceRoot":"","sources":["../../../src/redirects/redirect-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,eAAO,MAAM,uBAAuB;;;;;;iBAsChC,CAAC;AAEL,eAAO,MAAM,uBAAuB;;;;;;;;iBAElC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,YAAY,GAAG,UAAU,CAAC;AAEzE,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,CAEvE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,GAAG,mBAAmB,CAyBhF"}
@@ -1,6 +1,8 @@
1
1
  /** App-code entry — use instead of `scribe-cms` in bundled server code (Next.js, Astro, …) to keep CLI/translator code paths out of bundler tracing. */
2
2
  export { createScribe } from "./create-scribe.js";
3
- export { isRoutableType } from "./i18n/build-url.js";
3
+ export { isRoutableType, createUrlBuilder } from "./i18n/build-url.js";
4
+ export type { UrlBuilder } from "./i18n/build-url.js";
5
+ export type { LocaleRoutingConfig } from "./core/types.js";
4
6
  export type { ScribeConfigInput, ScribeConfig, ScribeDocument, ContentTypeInput, ContentTypeConfig, ContentTypeRuntime, ListOptions, OrderBy, StaticParam, ResolvedDocument, Scribe, InferDocMap, InferDocFromTypeConfig, ScribeClient, ScribeDocs, ScribeDocOf, } from "./core/types.js";
5
7
  export type { SitemapEntry, SitemapChangeFrequency } from "./sitemap/types.js";
6
8
  //# sourceMappingURL=runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime.ts"],"names":[],"mappings":"AAAA,wJAAwJ;AACxJ,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EACV,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EACX,OAAO,EACP,WAAW,EACX,gBAAgB,EAChB,MAAM,EACN,WAAW,EACX,sBAAsB,EACtB,YAAY,EACZ,UAAU,EACV,WAAW,GACZ,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime.ts"],"names":[],"mappings":"AAAA,wJAAwJ;AACxJ,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,YAAY,EACV,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EACX,OAAO,EACP,WAAW,EACX,gBAAgB,EAChB,MAAM,EACN,WAAW,EACX,sBAAsB,EACtB,YAAY,EACZ,UAAU,EACV,WAAW,GACZ,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"generate-sitemap.d.ts","sourceRoot":"","sources":["../../../src/sitemap/generate-sitemap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIrH,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAuFvE,iFAAiF;AACjF,wBAAsB,eAAe,CACnC,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,YAAY,EAAE,CAAC,CA8CzB"}
1
+ {"version":3,"file":"generate-sitemap.d.ts","sourceRoot":"","sources":["../../../src/sitemap/generate-sitemap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIrH,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAsFvE,iFAAiF;AACjF,wBAAsB,eAAe,CACnC,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,YAAY,EAAE,CAAC,CA8CzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate-project.d.ts","sourceRoot":"","sources":["../../../src/validate/validate-project.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAiBrD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB;AAWD,yFAAyF;AACzF,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,cAAc,CAuKpE"}
1
+ {"version":3,"file":"validate-project.d.ts","sourceRoot":"","sources":["../../../src/validate/validate-project.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAarD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB;AAWD,yFAAyF;AACzF,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,cAAc,CA4IpE"}
@@ -0,0 +1,4 @@
1
+ import type { ScribeProject } from "../core/types.js";
2
+ import type { ValidateIssue } from "../validate/validate-project.js";
3
+ export declare function validateTypeRedirects(project: ScribeProject): ValidateIssue[];
4
+ //# sourceMappingURL=validate-redirects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-redirects.d.ts","sourceRoot":"","sources":["../../../src/validate/validate-redirects.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAgB,aAAa,EAAE,MAAM,kBAAkB,CAAC;AASpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAmCrE,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa,EAAE,CA8J7E"}
@@ -195,65 +195,93 @@ function pathSuffix(template) {
195
195
  if (idx === -1) throw new Error(`Invalid path template (missing {slug}): ${template}`);
196
196
  return template.slice(idx + SLUG_PLACEHOLDER.length);
197
197
  }
198
- function resolvePath(template, slug, locale, defaultLocale) {
199
- const relative = template.replace(SLUG_PLACEHOLDER, slug);
200
- if (locale === defaultLocale) return relative;
201
- return `/${locale}${relative}`;
198
+ function resolveDefaultLocaleRouting() {
199
+ return { strategy: "path-prefix", prefixDefaultLocale: false };
202
200
  }
203
- function extractSlugFromResolvedPath(template, resolvedPath) {
204
- const prefix = pathPrefix(template);
205
- const suffix = pathSuffix(template);
206
- if (!resolvedPath.startsWith(prefix)) return null;
207
- if (suffix && !resolvedPath.endsWith(suffix)) return null;
208
- const slugEnd = suffix ? resolvedPath.length - suffix.length : resolvedPath.length;
209
- const slug = resolvedPath.slice(prefix.length, slugEnd);
210
- return slug.length > 0 ? slug : null;
201
+ function splitPathAndSearch(pathname) {
202
+ const q = pathname.indexOf("?");
203
+ if (q === -1) return { pathname, search: "" };
204
+ return { pathname: pathname.slice(0, q), search: pathname.slice(q) };
205
+ }
206
+ function createUrlBuilder(config) {
207
+ const localeRouting = config.localeRouting ?? resolveDefaultLocaleRouting();
208
+ const defaultLocale = config.defaultLocale;
209
+ const prefixedLocales = localeRouting.strategy === "path-prefix" ? localeRouting.prefixDefaultLocale ? [...config.locales] : config.locales.filter((locale) => locale !== defaultLocale) : config.locales.filter((locale) => locale !== defaultLocale);
210
+ function applyLocaleToPath(pathname, locale) {
211
+ if (locale === defaultLocale) {
212
+ if (localeRouting.strategy === "path-prefix" && localeRouting.prefixDefaultLocale) {
213
+ return `/${defaultLocale}${pathname}`;
214
+ }
215
+ return pathname;
216
+ }
217
+ if (localeRouting.strategy === "search-param") {
218
+ const { pathname: base, search } = splitPathAndSearch(pathname);
219
+ const params = new URLSearchParams(search.startsWith("?") ? search.slice(1) : search);
220
+ params.set(localeRouting.param, locale);
221
+ const qs = params.toString();
222
+ return qs ? `${base}?${qs}` : base;
223
+ }
224
+ return `/${locale}${pathname}`;
225
+ }
226
+ function resolvePath(template, slug, locale) {
227
+ const relative = template.replace(SLUG_PLACEHOLDER, slug);
228
+ return applyLocaleToPath(relative, locale);
229
+ }
230
+ function extractSlugFromResolvedPath(template, resolvedPath) {
231
+ let pathname = resolvedPath;
232
+ if (localeRouting.strategy === "search-param") {
233
+ pathname = splitPathAndSearch(resolvedPath).pathname;
234
+ } else if (localeRouting.strategy === "path-prefix") {
235
+ for (const locale of config.locales) {
236
+ if (locale === defaultLocale && !localeRouting.prefixDefaultLocale) continue;
237
+ const prefix2 = `/${locale}`;
238
+ if (pathname === prefix2 || pathname.startsWith(`${prefix2}/`)) {
239
+ pathname = pathname.slice(prefix2.length) || "/";
240
+ break;
241
+ }
242
+ }
243
+ }
244
+ const prefix = pathPrefix(template);
245
+ const suffix = pathSuffix(template);
246
+ if (!pathname.startsWith(prefix)) return null;
247
+ if (suffix && !pathname.endsWith(suffix)) return null;
248
+ const slugEnd = suffix ? pathname.length - suffix.length : pathname.length;
249
+ const slug = pathname.slice(prefix.length, slugEnd);
250
+ return slug.length > 0 ? slug : null;
251
+ }
252
+ return {
253
+ defaultLocale,
254
+ locales: config.locales,
255
+ localeRouting,
256
+ prefixedLocales,
257
+ resolvePath,
258
+ extractSlugFromResolvedPath,
259
+ applyLocaleToPath
260
+ };
211
261
  }
212
262
 
213
263
  // src/core/builtin-fields.ts
214
264
  var SLUG_PATTERN = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
215
- var slugPatternSchema = zod.z.string().regex(SLUG_PATTERN, "slug must be lowercase-kebab-case");
265
+ zod.z.string().regex(SLUG_PATTERN, "slug must be lowercase-kebab-case");
216
266
  var isoDateSchema = zod.z.string().regex(/^\d{4}-\d{2}-\d{2}(T[\d:.Z+-]*)?$/, "Use ISO date YYYY-MM-DD or full ISO 8601");
217
267
  var canonicalPathSchema = zod.z.string().regex(/^\//, "canonicalPath must start with /");
218
- function extractBuiltinEnFields(data, pathTemplate, enSlug, defaultLocale) {
268
+ var DEPRECATED_REDIRECT_FIELDS = [
269
+ [
270
+ "aliases",
271
+ "aliases frontmatter is removed \u2014 add redirects to content/<type>/_redirects.json instead"
272
+ ],
273
+ [
274
+ "redirect_to",
275
+ "redirect_to frontmatter is removed \u2014 add redirects to content/<type>/_redirects.json instead"
276
+ ]
277
+ ];
278
+ function extractBuiltinEnFields(data, _pathTemplate, _enSlug, _defaultLocale) {
219
279
  const issues = [];
220
280
  const rest = { ...data };
221
- const aliasesResult = zod.z.array(slugPatternSchema).max(20).optional().default([]).safeParse(rest.aliases ?? []);
222
- delete rest.aliases;
223
- const redirectRaw = rest.redirect_to;
224
- delete rest.redirect_to;
225
- let redirectTo;
226
- if (redirectRaw !== void 0 && redirectRaw !== null && redirectRaw !== "") {
227
- if (typeof redirectRaw !== "string") {
228
- issues.push({
229
- field: "redirect_to",
230
- message: "redirect_to must be a string path",
231
- level: "error"
232
- });
233
- } else if (!pathTemplate) {
234
- issues.push({
235
- field: "redirect_to",
236
- message: "redirect_to is not allowed on reference-only content types",
237
- level: "error"
238
- });
239
- } else if (!extractSlugFromResolvedPath(pathTemplate, redirectRaw)) {
240
- issues.push({
241
- field: "redirect_to",
242
- message: `redirect_to must match path template "${pathTemplate}" (prefix "${pathPrefix(pathTemplate)}"${pathSuffix(pathTemplate) ? `, suffix "${pathSuffix(pathTemplate)}"` : ""})`,
243
- level: "error"
244
- });
245
- } else {
246
- redirectTo = redirectRaw;
247
- }
248
- }
249
- const aliases = aliasesResult.success ? aliasesResult.data : [];
250
- if (!aliasesResult.success) {
251
- for (const issue of aliasesResult.error.issues) {
252
- issues.push({
253
- field: `aliases.${issue.path.join(".")}`,
254
- message: issue.message,
255
- level: "error"
256
- });
281
+ for (const [field, message] of DEPRECATED_REDIRECT_FIELDS) {
282
+ if (rest[field] !== void 0) {
283
+ issues.push({ field, message, level: "error" });
284
+ delete rest[field];
257
285
  }
258
286
  }
259
287
  let publishedAt;
@@ -315,8 +343,6 @@ function extractBuiltinEnFields(data, pathTemplate, enSlug, defaultLocale) {
315
343
  }
316
344
  return {
317
345
  builtin: {
318
- aliases,
319
- redirectTo,
320
346
  publishedAt,
321
347
  updatedAt,
322
348
  noindex,
@@ -326,20 +352,24 @@ function extractBuiltinEnFields(data, pathTemplate, enSlug, defaultLocale) {
326
352
  issues
327
353
  };
328
354
  }
329
- function resolveCanonicalPathname(type, doc, defaultLocale) {
355
+ function resolveCanonicalPathname(type, doc, defaultLocale, localeRouting) {
356
+ const urlBuilder = createUrlBuilder({
357
+ locales: [defaultLocale, ...doc.locale !== defaultLocale ? [doc.locale] : []],
358
+ defaultLocale,
359
+ localeRouting: localeRouting ?? { strategy: "path-prefix", prefixDefaultLocale: false }
360
+ });
330
361
  if (doc.canonicalPathOverride) {
331
- if (doc.locale === defaultLocale) return doc.canonicalPathOverride;
332
- return `/${doc.locale}${doc.canonicalPathOverride}`;
362
+ return urlBuilder.applyLocaleToPath(doc.canonicalPathOverride, doc.locale);
333
363
  }
334
364
  if (!type.path) return `/${doc.slug}`;
335
- return resolvePath(type.path, doc.slug, doc.locale, defaultLocale);
365
+ return urlBuilder.resolvePath(type.path, doc.slug, doc.locale);
336
366
  }
337
- function mergeBuiltinsIntoFrontmatter(frontmatter, doc, type, defaultLocale) {
367
+ function mergeBuiltinsIntoFrontmatter(frontmatter, doc, type, defaultLocale, localeRouting) {
338
368
  const out = { ...frontmatter };
339
369
  if (doc.publishedAt !== void 0) out.publishedAt = doc.publishedAt;
340
370
  if (doc.updatedAt !== void 0) out.updatedAt = doc.updatedAt;
341
371
  out.noindex = doc.noindex;
342
- out.canonicalPath = resolveCanonicalPathname(type, doc, defaultLocale);
372
+ out.canonicalPath = resolveCanonicalPathname(type, doc, defaultLocale, localeRouting);
343
373
  return out;
344
374
  }
345
375
  var SCHEMA_VERSION = 4;
@@ -512,7 +542,8 @@ function parseEnMdx(filePath, config, type) {
512
542
  locale: config.defaultLocale
513
543
  },
514
544
  type,
515
- config.defaultLocale
545
+ config.defaultLocale,
546
+ config.localeRouting
516
547
  );
517
548
  const crossIssues = type.crossValidate?.(result.data, {
518
549
  locale: config.defaultLocale,
@@ -526,8 +557,6 @@ function parseEnMdx(filePath, config, type) {
526
557
  slug,
527
558
  enSlug: slug,
528
559
  locale: config.defaultLocale,
529
- aliases: builtin.aliases,
530
- redirectTo: builtin.redirectTo,
531
560
  publishedAt: builtin.publishedAt,
532
561
  updatedAt: builtin.updatedAt,
533
562
  noindex: builtin.noindex,