scribe-cms 0.0.20 → 0.0.22

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.
@@ -1,4 +1,5 @@
1
1
  import type { ScribeConfig, ScribeProject } from "./core/types.js";
2
+ import { type InlineLinkStyle } from "./inline/resolve-tokens.js";
2
3
  /**
3
4
  * Create the untyped project engine (CLI, validation, studio).
4
5
  * Apps should use `createScribe()` for typed per-type accessors.
@@ -13,8 +14,13 @@ import type { ScribeConfig, ScribeProject } from "./core/types.js";
13
14
  * the CLI, validation, and studio keep raw token syntax.
14
15
  * @internal
15
16
  */
16
- export declare function createProject(config: ScribeConfig, options?: {
17
+ export interface CreateProjectOptions {
17
18
  resolveAssets?: boolean;
18
19
  resolveInlineTokens?: boolean;
19
- }): ScribeProject;
20
+ /** How `:href` relation tokens resolve. Default `"app"`. */
21
+ inlineLinkStyle?: InlineLinkStyle;
22
+ /** Extension for `:href` in `"export"` mode. Default `.md`. */
23
+ exportLinkExtension?: `.${string}`;
24
+ }
25
+ export declare function createProject(config: ScribeConfig, options?: CreateProjectOptions): ScribeProject;
20
26
  //# sourceMappingURL=create-project.d.ts.map
@@ -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;AA2MzB;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAAO,GACvE,aAAa,CAuCf"}
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;AAGzB,OAAO,EAEL,KAAK,eAAe,EAErB,MAAM,4BAA4B,CAAC;AAwMpC;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,oBAAoB;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,4DAA4D;IAC5D,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,+DAA+D;IAC/D,mBAAmB,CAAC,EAAE,IAAI,MAAM,EAAE,CAAC;CACpC;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,oBAAyB,GACjC,aAAa,CA0Cf"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-scribe.d.ts","sourceRoot":"","sources":["../../src/create-scribe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,gBAAgB,EAEhB,MAAM,EACN,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AAOzB;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,CAAC,MAAM,SAAS,SAAS,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAChF,KAAK,EAAE,iBAAiB,CAAC,MAAM,CAAC,GAC/B,MAAM,CAAC,MAAM,CAAC,CA+BhB"}
1
+ {"version":3,"file":"create-scribe.d.ts","sourceRoot":"","sources":["../../src/create-scribe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,gBAAgB,EAEhB,MAAM,EACN,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AAOzB;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,CAAC,MAAM,SAAS,SAAS,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAChF,KAAK,EAAE,iBAAiB,CAAC,MAAM,CAAC,GAC/B,MAAM,CAAC,MAAM,CAAC,CAmChB"}
@@ -13,7 +13,15 @@ import { type InlineToken } from "./tokens.js";
13
13
  export interface InlineResolver {
14
14
  resolve(token: InlineToken, enFrontmatter: Record<string, unknown>, locale: string): string;
15
15
  }
16
- export declare function createInlineResolver(config: ScribeConfig): InlineResolver;
16
+ /** How `:href` relation tokens resolve (see `docs/inline-tokens.md`). */
17
+ export type InlineLinkStyle = "app" | "export";
18
+ export interface CreateInlineResolverOptions {
19
+ /** Default `"app"` — locale-free pathnames for framework routers. */
20
+ linkStyle?: InlineLinkStyle;
21
+ /** File extension appended to localized slugs in `"export"` mode. Default `.md`. */
22
+ exportExtension?: `.${string}`;
23
+ }
24
+ export declare function createInlineResolver(config: ScribeConfig, options?: CreateInlineResolverOptions): InlineResolver;
17
25
  /**
18
26
  * Substitute inline tokens in an EN body at read time: extract tokens, resolve
19
27
  * each for the default locale, fill the placeholder markers, and unescape any
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-tokens.d.ts","sourceRoot":"","sources":["../../../src/inline/resolve-tokens.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAKrD,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AAErB;;;;;;;;;GASG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,CACL,KAAK,EAAE,WAAW,EAClB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,MAAM,EAAE,MAAM,GACb,MAAM,CAAC;CACX;AAWD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,cAAc,CA2EzE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,cAAc,GACvB,MAAM,CAKR;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,cAAc,GACvB,MAAM,CAKR"}
1
+ {"version":3,"file":"resolve-tokens.d.ts","sourceRoot":"","sources":["../../../src/inline/resolve-tokens.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAKrD,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AAErB;;;;;;;;;GASG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,CACL,KAAK,EAAE,WAAW,EAClB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,MAAM,EAAE,MAAM,GACb,MAAM,CAAC;CACX;AAED,yEAAyE;AACzE,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,QAAQ,CAAC;AAE/C,MAAM,WAAW,2BAA2B;IAC1C,qEAAqE;IACrE,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,oFAAoF;IACpF,eAAe,CAAC,EAAE,IAAI,MAAM,EAAE,CAAC;CAChC;AAWD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,2BAAgC,GACxC,cAAc,CAgFhB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,cAAc,GACvB,MAAM,CAKR;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,cAAc,GACvB,MAAM,CAKR"}
@@ -23,8 +23,8 @@ export interface RelationInlineToken {
23
23
  kind: "relation";
24
24
  targetTypeId: string;
25
25
  enSlug: string;
26
- /** `"url"` resolves to the localized URL; `"slug"` resolves to the EN slug. */
27
- mode: "url" | "slug";
26
+ /** `"href"` resolves to a link path; `"slug"` resolves to the EN slug. */
27
+ mode: "href" | "slug";
28
28
  raw: string;
29
29
  }
30
30
  export interface AssetInlineToken {
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../src/inline/tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAQH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,KAAK,CAAC;AAEtE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,QAAQ,CAAC;IACf,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,UAAU,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,KAAK,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,MAAM,WAAW,GACnB,iBAAiB,GACjB,mBAAmB,GACnB,gBAAgB,GAChB,cAAc,CAAC;AAEnB,kFAAkF;AAClF,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,yBAAyB;IACxC,sEAAsE;IACtE,eAAe,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,uDAAuD;IACvD,SAAS,EAAE,oBAAoB,EAAE,CAAC;CACnC;AAED,+DAA+D;AAC/D,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAEnD;AAyGD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,yBAAyB,CAyC3E;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,MAAM,CAK/E;AAED,iFAAiF;AACjF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE;IACJ,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9C,MAAM,EAAE,MAAM,MAAM,CAAC;CACtB,GACA,MAAM,CAuBR;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK3D"}
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../src/inline/tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAQH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,KAAK,CAAC;AAEtE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,QAAQ,CAAC;IACf,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,UAAU,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,KAAK,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,MAAM,WAAW,GACnB,iBAAiB,GACjB,mBAAmB,GACnB,gBAAgB,GAChB,cAAc,CAAC;AAEnB,kFAAkF;AAClF,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,yBAAyB;IACxC,sEAAsE;IACtE,eAAe,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,uDAAuD;IACvD,SAAS,EAAE,oBAAoB,EAAE,CAAC;CACnC;AAED,+DAA+D;AAC/D,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAEnD;AAyGD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,yBAAyB,CAyC3E;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,MAAM,CAK/E;AAED,iFAAiF;AACjF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE;IACJ,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9C,MAAM,EAAE,MAAM,MAAM,CAAC;CACtB,GACA,MAAM,CAuBR;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK3D"}
@@ -1 +1 @@
1
- {"version":3,"file":"translation-prompt.d.ts","sourceRoot":"","sources":["../../../../src/translate/prompts/translation-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAiB/C,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAOpF;AAED,uFAAuF;AACvF,wBAAgB,uBAAuB,CACrC,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,MAAM,CAIR;AA8CD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,QAAQ,EAAE,uBAAuB,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,YAAY,CAAC;IAC3B,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,MAAM,CAgDT"}
1
+ {"version":3,"file":"translation-prompt.d.ts","sourceRoot":"","sources":["../../../../src/translate/prompts/translation-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAiB/C,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAOpF;AAED,uFAAuF;AACvF,wBAAgB,uBAAuB,CACrC,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,MAAM,CAIR;AAkDD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,QAAQ,EAAE,uBAAuB,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,YAAY,CAAC;IAC3B,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,MAAM,CAgDT"}
@@ -299,18 +299,18 @@ function parseTokenInner(inner) {
299
299
  }
300
300
  case "relation": {
301
301
  const parts = rest.split(":");
302
- if (parts.length < 2 || parts.length > 3) {
302
+ if (parts.length !== 3) {
303
303
  return {
304
304
  ok: false,
305
- reason: `relation must be relation:<typeId>:<enSlug> or relation:<typeId>:<enSlug>:slug`
305
+ reason: `relation must be relation:<typeId>:<enSlug>:href or relation:<typeId>:<enSlug>:slug`
306
306
  };
307
307
  }
308
308
  const [targetTypeId, enSlug, mode] = parts;
309
309
  if (!targetTypeId || !enSlug) {
310
310
  return { ok: false, reason: `relation is missing a typeId or enSlug` };
311
311
  }
312
- if (mode !== void 0 && mode !== "slug") {
313
- return { ok: false, reason: `relation mode must be "slug" (got "${mode}")` };
312
+ if (mode !== "href" && mode !== "slug") {
313
+ return { ok: false, reason: `relation mode must be "href" or "slug" (got "${mode}")` };
314
314
  }
315
315
  return {
316
316
  ok: true,
@@ -318,7 +318,7 @@ function parseTokenInner(inner) {
318
318
  kind: "relation",
319
319
  targetTypeId,
320
320
  enSlug,
321
- mode: mode === "slug" ? "slug" : "url"
321
+ mode
322
322
  }
323
323
  };
324
324
  }
@@ -993,7 +993,9 @@ function isStringRecord(value) {
993
993
  if (!value || typeof value !== "object" || Array.isArray(value)) return false;
994
994
  return Object.values(value).every((v) => typeof v === "string");
995
995
  }
996
- function createInlineResolver(config) {
996
+ function createInlineResolver(config, options = {}) {
997
+ const linkStyle = options.linkStyle ?? "app";
998
+ const exportExtension = options.exportExtension ?? ".md";
997
999
  const urlBuilder = createUrlBuilder(config);
998
1000
  const typeById = new Map(config.types.map((t) => [t.id, t]));
999
1001
  const storePath = resolveStorePath(config);
@@ -1054,7 +1056,10 @@ function createInlineResolver(config) {
1054
1056
  if (token.mode === "slug") return token.enSlug;
1055
1057
  if (!isRoutableType(type)) return "";
1056
1058
  const slug = localizedSlug(token.targetTypeId, token.enSlug, locale);
1057
- return urlBuilder.resolvePath(type.path, slug, locale);
1059
+ if (linkStyle === "export") {
1060
+ return urlBuilder.resolvePath(type.path, `${slug}${exportExtension}`, locale);
1061
+ }
1062
+ return type.path.replace("{slug}", slug);
1058
1063
  }
1059
1064
  }
1060
1065
  }
@@ -1654,7 +1659,10 @@ function createProject(config, options = {}) {
1654
1659
  }
1655
1660
  return runtime;
1656
1661
  };
1657
- const inlineResolver = options.resolveInlineTokens ? createInlineResolver(config) : void 0;
1662
+ const inlineResolver = options.resolveInlineTokens ? createInlineResolver(config, {
1663
+ linkStyle: options.inlineLinkStyle,
1664
+ exportExtension: options.exportLinkExtension
1665
+ }) : void 0;
1658
1666
  for (const type of config.types) {
1659
1667
  runtimes.set(
1660
1668
  type.id,
@@ -2305,7 +2313,7 @@ function validateInlineTokens(config) {
2305
2313
  });
2306
2314
  break;
2307
2315
  }
2308
- if (token.mode === "url") {
2316
+ if (token.mode === "href") {
2309
2317
  const targetType = typeById.get(token.targetTypeId);
2310
2318
  if (!isRoutableType(targetType)) {
2311
2319
  issues.push({