scribe-cms 0.0.17 → 0.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -0
- package/dist/cli/index.cjs +4021 -555
- package/dist/cli/index.cjs.map +1 -1
- package/dist/cli/index.js +4019 -553
- package/dist/cli/index.js.map +1 -1
- package/dist/index.cjs +1514 -229
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1499 -228
- package/dist/index.js.map +1 -1
- package/dist/runtime.cjs +447 -33
- package/dist/runtime.cjs.map +1 -1
- package/dist/runtime.js +446 -32
- package/dist/runtime.js.map +1 -1
- package/dist/src/config/resolve-config.d.ts.map +1 -1
- package/dist/src/core/builtin-fields.d.ts +10 -1
- package/dist/src/core/builtin-fields.d.ts.map +1 -1
- package/dist/src/core/field.d.ts +70 -0
- package/dist/src/core/field.d.ts.map +1 -1
- package/dist/src/core/introspect-schema.d.ts +31 -1
- package/dist/src/core/introspect-schema.d.ts.map +1 -1
- package/dist/src/core/managed-roots.d.ts +15 -0
- package/dist/src/core/managed-roots.d.ts.map +1 -0
- package/dist/src/core/types.d.ts +56 -4
- package/dist/src/core/types.d.ts.map +1 -1
- package/dist/src/create-project.d.ts +17 -1
- package/dist/src/create-project.d.ts.map +1 -1
- package/dist/src/create-scribe.d.ts.map +1 -1
- package/dist/src/delete/execute.d.ts +21 -0
- package/dist/src/delete/execute.d.ts.map +1 -0
- package/dist/src/delete/plan.d.ts +85 -0
- package/dist/src/delete/plan.d.ts.map +1 -0
- package/dist/src/delete/render-text.d.ts +7 -0
- package/dist/src/delete/render-text.d.ts.map +1 -0
- package/dist/src/hash/page-hash.d.ts +9 -0
- package/dist/src/hash/page-hash.d.ts.map +1 -1
- package/dist/src/index.d.ts +12 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/inline/resolve-tokens.d.ts +39 -0
- package/dist/src/inline/resolve-tokens.d.ts.map +1 -0
- package/dist/src/inline/tokens.d.ts +95 -0
- package/dist/src/inline/tokens.d.ts.map +1 -0
- package/dist/src/loader/create-loader.d.ts +7 -1
- package/dist/src/loader/create-loader.d.ts.map +1 -1
- package/dist/src/loader/resolve-assets.d.ts +16 -0
- package/dist/src/loader/resolve-assets.d.ts.map +1 -0
- package/dist/src/runtime.d.ts +1 -1
- package/dist/src/runtime.d.ts.map +1 -1
- package/dist/src/storage/translations.d.ts +8 -0
- package/dist/src/storage/translations.d.ts.map +1 -1
- package/dist/src/translate/resolve-translate-config.d.ts.map +1 -1
- package/dist/src/translate/response-schema.d.ts +7 -1
- package/dist/src/translate/response-schema.d.ts.map +1 -1
- package/dist/src/translate/translate-core.d.ts +6 -0
- package/dist/src/translate/translate-core.d.ts.map +1 -1
- package/dist/src/translate/validate-translation.d.ts.map +1 -1
- package/dist/src/translate/worklist.d.ts +8 -1
- package/dist/src/translate/worklist.d.ts.map +1 -1
- package/dist/src/validate/validate-assets.d.ts +26 -2
- package/dist/src/validate/validate-assets.d.ts.map +1 -1
- package/dist/src/validate/validate-inline-tokens.d.ts +10 -0
- package/dist/src/validate/validate-inline-tokens.d.ts.map +1 -0
- package/dist/src/validate/validate-project.d.ts.map +1 -1
- package/dist/src/validate/validate-relations.d.ts +2 -1
- package/dist/src/validate/validate-relations.d.ts.map +1 -1
- package/dist/studio/asset-serve.d.ts +39 -0
- package/dist/studio/asset-serve.d.ts.map +1 -0
- package/dist/studio/asset-views.d.ts +4 -0
- package/dist/studio/asset-views.d.ts.map +1 -0
- package/dist/studio/content-views.d.ts +85 -0
- package/dist/studio/content-views.d.ts.map +1 -0
- package/dist/studio/introspect-fields.d.ts +111 -0
- package/dist/studio/introspect-fields.d.ts.map +1 -0
- package/dist/studio/mdx-preview.d.ts +3 -0
- package/dist/studio/mdx-preview.d.ts.map +1 -0
- package/dist/studio/preview-tokens.d.ts +16 -0
- package/dist/studio/preview-tokens.d.ts.map +1 -0
- package/dist/studio/search.d.ts +34 -0
- package/dist/studio/search.d.ts.map +1 -0
- package/dist/studio/server.cjs +4699 -304
- package/dist/studio/server.cjs.map +1 -1
- package/dist/studio/server.d.ts.map +1 -1
- package/dist/studio/server.js +4697 -302
- package/dist/studio/server.js.map +1 -1
- package/dist/studio/shared.d.ts +20 -0
- package/dist/studio/shared.d.ts.map +1 -0
- package/dist/studio/studio-cache.d.ts +93 -0
- package/dist/studio/studio-cache.d.ts.map +1 -0
- package/package.json +2 -2
package/dist/src/index.d.ts.map
CHANGED
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { ScribeConfig } from "../core/types.js";
|
|
2
|
+
import { type InlineToken } from "./tokens.js";
|
|
3
|
+
/**
|
|
4
|
+
* Read-time token resolver. Maps a single inline token to its string value given
|
|
5
|
+
* the EN source document's frontmatter and a target locale.
|
|
6
|
+
*
|
|
7
|
+
* Relations resolve to a locale-aware URL via the existing `resolvePath`
|
|
8
|
+
* machinery, using the target document's *localized* slug. Localized slugs live
|
|
9
|
+
* in the translation store; the resolver reads them once per store revision
|
|
10
|
+
* (keyed on the store file's mtime), never through another type's loader, so
|
|
11
|
+
* there is no cross-loader recursion.
|
|
12
|
+
*/
|
|
13
|
+
export interface InlineResolver {
|
|
14
|
+
resolve(token: InlineToken, enFrontmatter: Record<string, unknown>, locale: string): string;
|
|
15
|
+
}
|
|
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;
|
|
25
|
+
/**
|
|
26
|
+
* Substitute inline tokens in an EN body at read time: extract tokens, resolve
|
|
27
|
+
* each for the default locale, fill the placeholder markers, and unescape any
|
|
28
|
+
* `$\{{` sequences. A body with no tokens is returned unchanged (aside from
|
|
29
|
+
* unescaping).
|
|
30
|
+
*/
|
|
31
|
+
export declare function substituteEnInlineBody(rawBody: string, enFrontmatter: Record<string, unknown>, defaultLocale: string, resolver: InlineResolver): string;
|
|
32
|
+
/**
|
|
33
|
+
* Fill a stored translated body's `%%n%%` markers at read time. Tokens are
|
|
34
|
+
* extracted from the CURRENT raw EN body and resolved for the document's locale,
|
|
35
|
+
* so token VALUES (relation targets, asset paths, var values) always reflect the
|
|
36
|
+
* live EN source even when the translation itself is older.
|
|
37
|
+
*/
|
|
38
|
+
export declare function fillTranslatedInlineBody(translatedBody: string, enRawBody: string, enFrontmatter: Record<string, unknown>, locale: string, resolver: InlineResolver): string;
|
|
39
|
+
//# sourceMappingURL=resolve-tokens.d.ts.map
|
|
@@ -0,0 +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;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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inline tokens: `${{...}}` markers embedded in MDX bodies. Four kinds — static
|
|
3
|
+
* literals, relation URLs/slugs, asset URLs, and per-document vars. See
|
|
4
|
+
* `docs/inline-tokens.md`.
|
|
5
|
+
*
|
|
6
|
+
* This module is the shared, dependency-light heart of the feature: a tokenizer
|
|
7
|
+
* that turns a raw body into a `placeholderBody` (tokens swapped for inert
|
|
8
|
+
* `%%n%%` markers) plus the parsed token list, and the fill/mask helpers used by
|
|
9
|
+
* the loader, translator, validator, and studio.
|
|
10
|
+
*
|
|
11
|
+
* Why `%%n%%` and not `{{n}}`: `{{...}}` is a JSX expression to remark-mdx and
|
|
12
|
+
* would break MDX validation of stored translated bodies. `%%n%%` is inert text.
|
|
13
|
+
*/
|
|
14
|
+
export type InlineTokenKind = "static" | "relation" | "asset" | "var";
|
|
15
|
+
export interface StaticInlineToken {
|
|
16
|
+
kind: "static";
|
|
17
|
+
/** Verbatim literal (decoded from the token's JSON string). */
|
|
18
|
+
text: string;
|
|
19
|
+
/** The full `${{...}}` source span. */
|
|
20
|
+
raw: string;
|
|
21
|
+
}
|
|
22
|
+
export interface RelationInlineToken {
|
|
23
|
+
kind: "relation";
|
|
24
|
+
targetTypeId: string;
|
|
25
|
+
enSlug: string;
|
|
26
|
+
/** `"href"` resolves to a link path; `"slug"` resolves to the EN slug. */
|
|
27
|
+
mode: "href" | "slug";
|
|
28
|
+
raw: string;
|
|
29
|
+
}
|
|
30
|
+
export interface AssetInlineToken {
|
|
31
|
+
kind: "asset";
|
|
32
|
+
/** Root-relative web path, e.g. `/web/path.webp`. */
|
|
33
|
+
webPath: string;
|
|
34
|
+
raw: string;
|
|
35
|
+
}
|
|
36
|
+
export interface VarInlineToken {
|
|
37
|
+
kind: "var";
|
|
38
|
+
key: string;
|
|
39
|
+
raw: string;
|
|
40
|
+
}
|
|
41
|
+
export type InlineToken = StaticInlineToken | RelationInlineToken | AssetInlineToken | VarInlineToken;
|
|
42
|
+
/** A `${{...}}` span that failed to parse. Reported by validation, left as-is. */
|
|
43
|
+
export interface MalformedInlineToken {
|
|
44
|
+
raw: string;
|
|
45
|
+
reason: string;
|
|
46
|
+
/** Byte offset of the token's `$` in the source body. */
|
|
47
|
+
index: number;
|
|
48
|
+
}
|
|
49
|
+
export interface ExtractInlineTokensResult {
|
|
50
|
+
/** Body with each well-formed token replaced by `%%n%%` (1-based). */
|
|
51
|
+
placeholderBody: string;
|
|
52
|
+
/** Parsed well-formed tokens, in order of appearance. */
|
|
53
|
+
tokens: InlineToken[];
|
|
54
|
+
/** Spans that look like tokens but failed to parse. */
|
|
55
|
+
malformed: MalformedInlineToken[];
|
|
56
|
+
}
|
|
57
|
+
/** The inert marker for the n-th (1-based) extracted token. */
|
|
58
|
+
export declare function placeholderMarker(n: number): string;
|
|
59
|
+
/**
|
|
60
|
+
* Replace every well-formed token with an inert `%%n%%` marker and return the
|
|
61
|
+
* parsed token list. Malformed spans are left verbatim (validation reports them)
|
|
62
|
+
* and do NOT consume a marker index. Escape sequences (`$\{{`) are not tokens
|
|
63
|
+
* and pass through untouched — so a body with zero tokens yields
|
|
64
|
+
* `placeholderBody === body` byte-for-byte.
|
|
65
|
+
*/
|
|
66
|
+
export declare function extractInlineTokens(body: string): ExtractInlineTokensResult;
|
|
67
|
+
/**
|
|
68
|
+
* Fill `%%n%%` markers with resolved values (1-based). A marker with no
|
|
69
|
+
* corresponding value (a stale translation whose EN body lost tokens) is left
|
|
70
|
+
* verbatim rather than blanked, so no meaningful text is silently dropped.
|
|
71
|
+
*/
|
|
72
|
+
export declare function fillPlaceholders(body: string, resolvedValues: string[]): string;
|
|
73
|
+
/** Convert `$\{{` escape sequences back to a literal `${{`. Render-time only. */
|
|
74
|
+
export declare function unescapeInlineTokens(body: string): string;
|
|
75
|
+
/**
|
|
76
|
+
* Count the markers `%%1%%..%%N%%` in a body. Used by the post-receive
|
|
77
|
+
* verification: each must appear exactly once in a translated body.
|
|
78
|
+
*/
|
|
79
|
+
export declare function countMarkerOccurrences(body: string, n: number): number;
|
|
80
|
+
/**
|
|
81
|
+
* Walk a body replacing every token span (valid OR malformed) and every escape
|
|
82
|
+
* sequence via the provided callbacks. Used where the raw `${{` / `$\{{` braces
|
|
83
|
+
* must never reach a downstream MDX parser or preview renderer.
|
|
84
|
+
*/
|
|
85
|
+
export declare function replaceInlineSpans(body: string, opts: {
|
|
86
|
+
token: (raw: string, inner: string) => string;
|
|
87
|
+
escape: () => string;
|
|
88
|
+
}): string;
|
|
89
|
+
/**
|
|
90
|
+
* Neutralize inline tokens and escapes so a body can be handed to remark-mdx for
|
|
91
|
+
* a structural parse check without the `${{`/`{{` braces producing false MDX
|
|
92
|
+
* errors. Local to validation/preview: never used for hashing or storage.
|
|
93
|
+
*/
|
|
94
|
+
export declare function maskInlineTokensForMdx(body: string): string;
|
|
95
|
+
//# sourceMappingURL=tokens.d.ts.map
|
|
@@ -0,0 +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,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,4 +1,5 @@
|
|
|
1
1
|
import type { AllDocuments, ContentTypeConfig, ScribeConfig, ScribeDocument } from "../core/types.js";
|
|
2
|
+
import { type InlineResolver } from "../inline/resolve-tokens.js";
|
|
2
3
|
export interface ParseEnResult {
|
|
3
4
|
document: ScribeDocument | null;
|
|
4
5
|
issues: Array<{
|
|
@@ -8,7 +9,12 @@ export interface ParseEnResult {
|
|
|
8
9
|
}>;
|
|
9
10
|
}
|
|
10
11
|
export declare function parseEnMdx(filePath: string, config: ScribeConfig, type: ContentTypeConfig): ParseEnResult;
|
|
11
|
-
|
|
12
|
+
/** Invalidate every content loader's cache after an in-process content mutation. */
|
|
13
|
+
export declare function bumpContentVersion(): void;
|
|
14
|
+
export declare function createContentLoader(config: ScribeConfig, type: ContentTypeConfig, options?: {
|
|
15
|
+
resolveAssets?: boolean;
|
|
16
|
+
inlineResolver?: InlineResolver;
|
|
17
|
+
}): () => AllDocuments;
|
|
12
18
|
export declare function readEnDocument(config: ScribeConfig, type: ContentTypeConfig, enSlug: string): ScribeDocument | null;
|
|
13
19
|
export declare function getTranslatablePayload(doc: ScribeDocument, type: ContentTypeConfig): {
|
|
14
20
|
frontmatter: Record<string, unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-loader.d.ts","sourceRoot":"","sources":["../../../src/loader/create-loader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create-loader.d.ts","sourceRoot":"","sources":["../../../src/loader/create-loader.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EAEjB,YAAY,EACZ,cAAc,EACf,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,6BAA6B,CAAC;AAoBrC,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,CA8Ef;AA+DD,oFAAoF;AACpF,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,iBAAiB,EACvB,OAAO,GAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,cAAc,CAAA;CAAO,GACzE,MAAM,YAAY,CAiJpB;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,CAOxD"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { SchemaFieldMeta } from "../core/introspect-schema.js";
|
|
2
|
+
import type { ResolvedAssetsConfig, ScribeDocument } from "../core/types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Join `publicPath` in front of a root-relative web path, avoiding double
|
|
5
|
+
* slashes. Handles the `"/"` identity case, absolute origins
|
|
6
|
+
* (`https://cdn.example.com/`), and path prefixes (`/static/`).
|
|
7
|
+
*/
|
|
8
|
+
export declare function joinPublicPath(publicPath: string, webPath: string): string;
|
|
9
|
+
/**
|
|
10
|
+
* Resolve declared asset fields on a freshly-built document's frontmatter,
|
|
11
|
+
* in place: materialize templated paths (`{slug}` → EN slug) and prefix
|
|
12
|
+
* `assets.publicPath`. Runs after `mergeStructuralOntoLocale`, so locale
|
|
13
|
+
* documents resolve from the merged EN source values.
|
|
14
|
+
*/
|
|
15
|
+
export declare function resolveDocumentAssets(doc: ScribeDocument, assetFields: SchemaFieldMeta[], assets: ResolvedAssetsConfig): void;
|
|
16
|
+
//# sourceMappingURL=resolve-assets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-assets.d.ts","sourceRoot":"","sources":["../../../src/loader/resolve-assets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE7E;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAI1E;AA4CD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,cAAc,EACnB,WAAW,EAAE,eAAe,EAAE,EAC9B,MAAM,EAAE,oBAAoB,GAC3B,IAAI,CAYN"}
|
package/dist/src/runtime.d.ts
CHANGED
|
@@ -3,6 +3,6 @@ export { createScribe } from "./create-scribe.js";
|
|
|
3
3
|
export { isRoutableType, createUrlBuilder } from "./i18n/build-url.js";
|
|
4
4
|
export type { UrlBuilder } from "./i18n/build-url.js";
|
|
5
5
|
export type { LocaleRoutingConfig } from "./core/types.js";
|
|
6
|
-
export type { ScribeConfigInput, ScribeConfig, ScribeDocument, ContentTypeInput, ContentTypeConfig, ContentTypeRuntime, ListOptions, OrderBy, StaticParam, ResolvedDocument, Scribe, InferDocMap, InferDocFromTypeConfig, ScribeClient, ScribeDocs, ScribeDocOf, } from "./core/types.js";
|
|
6
|
+
export type { ScribeConfigInput, ScribeConfig, ScribeDocument, ContentTypeInput, ContentTypeConfig, ContentTypeRuntime, ListOptions, OrderBy, StaticParam, ResolvedDocument, AssetsConfigInput, ResolvedAssetsConfig, AssetUrlOptions, Scribe, InferDocMap, InferDocFromTypeConfig, ScribeClient, ScribeDocs, ScribeDocOf, } from "./core/types.js";
|
|
7
7
|
export type { SitemapEntry, SitemapChangeFrequency } from "./sitemap/types.js";
|
|
8
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,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
|
+
{"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,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,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"}
|
|
@@ -61,5 +61,13 @@ export declare function latestTranslationAtByLocale(db: Database.Database): Arra
|
|
|
61
61
|
locale: string;
|
|
62
62
|
latest: string;
|
|
63
63
|
}>;
|
|
64
|
+
/** Count translation rows for a single EN document (across every locale). */
|
|
65
|
+
export declare function countTranslationsForEnSlug(db: Database.Database, contentType: string, enSlug: string): number;
|
|
66
|
+
/** Count EN snapshot rows for a single EN document. */
|
|
67
|
+
export declare function countEnSnapshotsForEnSlug(db: Database.Database, contentType: string, enSlug: string): number;
|
|
68
|
+
/** Delete every translation row for an EN document. Returns the number removed. */
|
|
69
|
+
export declare function deleteTranslationsForEnSlug(db: Database.Database, contentType: string, enSlug: string): number;
|
|
70
|
+
/** Delete every EN snapshot row for an EN document. Returns the number removed. */
|
|
71
|
+
export declare function deleteEnSnapshotsForEnSlug(db: Database.Database, contentType: string, enSlug: string): number;
|
|
64
72
|
export declare function countStaleTranslations(db: Database.Database, contentType: string, enSlug: string, currentEnHash: string): number;
|
|
65
73
|
//# sourceMappingURL=translations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/storage/translations.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/storage/translations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAsB,SAAQ,aAAa;IAC1D,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,eAAe,GAAG,MAAM,CAsB3F;AAED,wBAAgB,aAAa,CAC3B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,UAAU,EAAE,MAAM,GACjB,aAAa,GAAG,SAAS,CAI3B;AAED,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,qBAAqB,EAAE,CAWzB;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAyBtF;AAED,wBAAgB,cAAc,CAC5B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,cAAc,GAAG,SAAS,CAM5B;AAED,wBAAgB,uBAAuB,CACrC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,WAAW,EAAE,MAAM,GAClB,cAAc,EAAE,CAIlB;AAED,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,cAAc,EAAE,CAMlB;AAED,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,cAAc,EAAE,CAIlB;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,cAAc,EAAE,CAE5E;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAG/D;AAED,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GACpB,KAAK,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAM1C;AAED,wBAAgB,2BAA2B,CACzC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GACpB,KAAK,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAM3C;AAED,6EAA6E;AAC7E,wBAAgB,0BAA0B,CACxC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,MAAM,CAOR;AAED,uDAAuD;AACvD,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,MAAM,CAOR;AAED,mFAAmF;AACnF,wBAAgB,2BAA2B,CACzC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,MAAM,CAKR;AAED,mFAAmF;AACnF,wBAAgB,0BAA0B,CACxC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,MAAM,CAKR;AAED,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,GACpB,MAAM,CAQR"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-translate-config.d.ts","sourceRoot":"","sources":["../../../src/translate/resolve-translate-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,YAAY,EAIb,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,uBAAuB;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;
|
|
1
|
+
{"version":3,"file":"resolve-translate-config.d.ts","sourceRoot":"","sources":["../../../src/translate/resolve-translate-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,YAAY,EAIb,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,uBAAuB;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAmDD,2DAA2D;AAC3D,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,iBAAiB,GACtB,uBAAuB,CAEzB"}
|
|
@@ -2,6 +2,12 @@ import { z } from "zod";
|
|
|
2
2
|
import type { SlugStrategy } from "../core/types.js";
|
|
3
3
|
/** Build a Zod object schema containing only translatable fields (including nested in structural arrays). */
|
|
4
4
|
export declare function buildTranslatableSubschema(schema: z.ZodTypeAny): z.ZodObject | null;
|
|
5
|
+
/**
|
|
6
|
+
* Like `buildTranslatableSubschema`, but only includes keys present in the EN
|
|
7
|
+
* translatable payload. Prevents the model from hallucinating nested structural
|
|
8
|
+
* arrays (e.g. blog `itemList`) when the source document has none.
|
|
9
|
+
*/
|
|
10
|
+
export declare function buildTranslatableSubschemaForPayload(schema: z.ZodTypeAny, translatableFrontmatter: Record<string, unknown>): z.ZodObject | null;
|
|
5
11
|
/**
|
|
6
12
|
* JSON Schema for Gemini structured output: `{ frontmatter, body, slug? }`.
|
|
7
13
|
* Types without translatable frontmatter get a body-only schema (Gemini
|
|
@@ -10,5 +16,5 @@ export declare function buildTranslatableSubschema(schema: z.ZodTypeAny): z.ZodO
|
|
|
10
16
|
* leave the model free-handing JSON, which fails often on MDX bodies
|
|
11
17
|
* (unescaped newlines, trailing prose after the JSON).
|
|
12
18
|
*/
|
|
13
|
-
export declare function buildGeminiResponseSchema(schema: z.ZodTypeAny, slugStrategy: SlugStrategy): Record<string, unknown> | null;
|
|
19
|
+
export declare function buildGeminiResponseSchema(schema: z.ZodTypeAny, slugStrategy: SlugStrategy, translatableFrontmatter?: Record<string, unknown>): Record<string, unknown> | null;
|
|
14
20
|
//# sourceMappingURL=response-schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response-schema.d.ts","sourceRoot":"","sources":["../../../src/translate/response-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAmCrD,6GAA6G;AAC7G,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,SAAS,GAAG,IAAI,CAkBnF;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,CAAC,CAAC,UAAU,EACpB,YAAY,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"response-schema.d.ts","sourceRoot":"","sources":["../../../src/translate/response-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAmCrD,6GAA6G;AAC7G,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,SAAS,GAAG,IAAI,CAkBnF;AAED;;;;GAIG;AACH,wBAAgB,oCAAoC,CAClD,MAAM,EAAE,CAAC,CAAC,UAAU,EACpB,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/C,CAAC,CAAC,SAAS,GAAG,IAAI,CAcpB;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,CAAC,CAAC,UAAU,EACpB,YAAY,EAAE,YAAY,EAC1B,uBAAuB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAyBhC"}
|
|
@@ -107,6 +107,12 @@ export declare function translationItemKey(item: {
|
|
|
107
107
|
}): string;
|
|
108
108
|
export declare function summarizeResults(results: TranslatePageResult[], durationMs: number): TranslateWorklistTotals;
|
|
109
109
|
export declare function formatTranslateError(error: unknown): string;
|
|
110
|
+
/**
|
|
111
|
+
* Post-receive verification: a translated body must reproduce every inline-token
|
|
112
|
+
* marker `%%1%%..%%N%%` (N = tokens in the current EN body) exactly once. A model
|
|
113
|
+
* that drops, duplicates, or mangles a marker fails the row so it retries.
|
|
114
|
+
*/
|
|
115
|
+
export declare function verifyInlineMarkers(enRawBody: string, translatedBody: string): void;
|
|
110
116
|
export declare function baseForItem(item: TranslationWorkItem): Pick<TranslatePageResult, "contentType" | "enSlug" | "locale">;
|
|
111
117
|
/** Everything needed to submit and finalize one translation request. */
|
|
112
118
|
export interface PreparedTranslation {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translate-core.d.ts","sourceRoot":"","sources":["../../../src/translate/translate-core.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"translate-core.d.ts","sourceRoot":"","sources":["../../../src/translate/translate-core.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-translation.d.ts","sourceRoot":"","sources":["../../../src/translate/validate-translation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGvD,wBAAgB,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,GAAG,MAAM,CAIzD;AAED,kEAAkE;AAClE,wBAAgB,6BAA6B,CAC3C,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,MAAM,EAAE,CAAC,CAAC,UAAU,GACnB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzB;AAED,sGAAsG;AACtG,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,cAAc,EACrB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1C,UAAU,EAAE,CAAC,CAAC,UAAU,GACvB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"validate-translation.d.ts","sourceRoot":"","sources":["../../../src/translate/validate-translation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGvD,wBAAgB,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,GAAG,MAAM,CAIzD;AAED,kEAAkE;AAClE,wBAAgB,6BAA6B,CAC3C,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,MAAM,EAAE,CAAC,CAAC,UAAU,GACnB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzB;AAED,sGAAsG;AACtG,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,cAAc,EACrB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1C,UAAU,EAAE,CAAC,CAAC,UAAU,GACvB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAanF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ScribeConfig } from "../core/types.js";
|
|
1
|
+
import type { ContentTypeConfig, ScribeConfig } from "../core/types.js";
|
|
2
2
|
export interface TranslationWorkItem {
|
|
3
3
|
contentType: string;
|
|
4
4
|
enSlug: string;
|
|
@@ -23,6 +23,13 @@ export interface WorklistOptions {
|
|
|
23
23
|
strategy?: TranslationWorklistStrategy;
|
|
24
24
|
/** Include fresh translations so prepareTranslation re-runs despite matching hashes. */
|
|
25
25
|
force?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Called once for each content type skipped because it is not translatable
|
|
28
|
+
* (bodyless with no translatable fields). The CLI uses it to emit the
|
|
29
|
+
* per-type "skipped" log line; other callers (studio) leave it unset for a
|
|
30
|
+
* silent skip.
|
|
31
|
+
*/
|
|
32
|
+
onSkipType?: (type: ContentTypeConfig) => void;
|
|
26
33
|
}
|
|
27
34
|
/** List locale pages that are missing or stale vs current EN content. */
|
|
28
35
|
export declare function buildWorklist(config: ScribeConfig, options?: WorklistOptions): TranslationWorkItem[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worklist.d.ts","sourceRoot":"","sources":["../../../src/translate/worklist.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"worklist.d.ts","sourceRoot":"","sources":["../../../src/translate/worklist.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAQxE,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,2BAA2B,GAAG,KAAK,GAAG,cAAc,CAAC;AAEjE,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,2BAA2B,CAAC;IACvC,wFAAwF;IACxF,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAChD;AAoBD,yEAAyE;AACzE,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,GAAE,eAAoB,GAAG,mBAAmB,EAAE,CA2DxG;AAED,+DAA+D;AAC/D,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,YAAY,EACpB,MAAM,CAAC,EAAE,MAAM,EACf,eAAe,CAAC,EAAE,MAAM,EAAE,GACzB,MAAM,EAAE,CAMV"}
|
|
@@ -1,20 +1,44 @@
|
|
|
1
|
+
import type { z } from "zod";
|
|
2
|
+
import { type SchemaFieldMeta } from "../core/introspect-schema.js";
|
|
1
3
|
import type { ScribeConfig } from "../core/types.js";
|
|
2
4
|
/** Collect absolute web paths to image assets from frontmatter values and MDX body. */
|
|
3
5
|
export declare function collectImagePaths(frontmatter: unknown, body: string): string[];
|
|
4
6
|
export interface AssetValidateIssue {
|
|
5
|
-
level: "warning";
|
|
7
|
+
level: "error" | "warning";
|
|
6
8
|
contentType?: string;
|
|
7
9
|
enSlug?: string;
|
|
8
10
|
locale?: string;
|
|
9
11
|
field?: string;
|
|
10
12
|
message: string;
|
|
11
13
|
}
|
|
12
|
-
/**
|
|
14
|
+
/**
|
|
15
|
+
* Warn when referenced image paths are missing from the configured assets
|
|
16
|
+
* folder. Heuristic pass over frontmatter strings and MDX body images.
|
|
17
|
+
*
|
|
18
|
+
* @param skipPaths web paths already covered by declared-asset validation
|
|
19
|
+
* (`validateDeclaredAssetFields`), skipped here to avoid duplicate reporting.
|
|
20
|
+
*/
|
|
13
21
|
export declare function validateDocumentAssets(config: ScribeConfig, input: {
|
|
14
22
|
contentType: string;
|
|
15
23
|
enSlug: string;
|
|
16
24
|
locale?: string;
|
|
17
25
|
frontmatter: unknown;
|
|
18
26
|
body: string;
|
|
27
|
+
}, skipPaths?: Set<string>): AssetValidateIssue[];
|
|
28
|
+
/**
|
|
29
|
+
* Validate declared `field.asset()` fields against the assets folder: required
|
|
30
|
+
* fields present, files exist, values inside `dir`, extensions in `formats`,
|
|
31
|
+
* sizes within `maxKB`, and templated paths materialized. Missing required or
|
|
32
|
+
* present-but-absent files are errors; format/size violations are warnings.
|
|
33
|
+
* Source frontmatter (unresolved) is expected. EN-sourced (structural) only.
|
|
34
|
+
*/
|
|
35
|
+
export declare function validateDeclaredAssetFields(config: ScribeConfig, input: {
|
|
36
|
+
contentType: string;
|
|
37
|
+
enSlug: string;
|
|
38
|
+
locale?: string;
|
|
39
|
+
frontmatter: Record<string, unknown>;
|
|
40
|
+
schema: z.ZodTypeAny;
|
|
19
41
|
}): AssetValidateIssue[];
|
|
42
|
+
/** Source (unresolved) web paths of every declared asset field, for heuristic skip. */
|
|
43
|
+
export declare function collectDeclaredAssetPaths(frontmatter: Record<string, unknown>, enSlug: string, schema: z.ZodTypeAny, fields?: SchemaFieldMeta[]): Set<string>;
|
|
20
44
|
//# sourceMappingURL=validate-assets.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-assets.d.ts","sourceRoot":"","sources":["../../../src/validate/validate-assets.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AA+CrD,uFAAuF;AACvF,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAK9E;AAMD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"validate-assets.d.ts","sourceRoot":"","sources":["../../../src/validate/validate-assets.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACrF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AA+CrD,uFAAuF;AACvF,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAK9E;AAMD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,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;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE;IACL,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd,EACD,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACtB,kBAAkB,EAAE,CAmBtB;AA2CD;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE;IACL,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC;CACtB,GACA,kBAAkB,EAAE,CA+EtB;AAED,uFAAuF;AACvF,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,CAAC,CAAC,UAAU,EACpB,MAAM,CAAC,EAAE,eAAe,EAAE,GACzB,GAAG,CAAC,MAAM,CAAC,CAWb"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ScribeConfig } from "../core/types.js";
|
|
2
|
+
import type { ValidateIssue } from "./validate-project.js";
|
|
3
|
+
/**
|
|
4
|
+
* Validate `${{...}}` inline tokens in EN document bodies. Entry-level issues so
|
|
5
|
+
* the studio badges pick them up automatically. Covers malformed syntax and each
|
|
6
|
+
* token kind's referential integrity (relation target/slug, asset file, var
|
|
7
|
+
* key). Static tokens are always valid.
|
|
8
|
+
*/
|
|
9
|
+
export declare function validateInlineTokens(config: ScribeConfig): ValidateIssue[];
|
|
10
|
+
//# sourceMappingURL=validate-inline-tokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-inline-tokens.d.ts","sourceRoot":"","sources":["../../../src/validate/validate-inline-tokens.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAMrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAsB3D;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,aAAa,EAAE,CAgH1E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-project.d.ts","sourceRoot":"","sources":["../../../src/validate/validate-project.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validate-project.d.ts","sourceRoot":"","sources":["../../../src/validate/validate-project.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAqB,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAoBxE,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;AAkED,yFAAyF;AACzF,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,cAAc,CAiMpE"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ScribeProject } from "../core/types.js";
|
|
1
|
+
import type { ScribeConfig, ScribeProject } from "../core/types.js";
|
|
2
2
|
export interface RelationValidateIssue {
|
|
3
3
|
contentTypeId: string;
|
|
4
4
|
enSlug: string;
|
|
@@ -12,6 +12,7 @@ export interface RelationValidateIssue {
|
|
|
12
12
|
*/
|
|
13
13
|
level: "error" | "warning";
|
|
14
14
|
}
|
|
15
|
+
export declare function buildEnSlugIndex(config: ScribeConfig): Map<string, Set<string>>;
|
|
15
16
|
/**
|
|
16
17
|
* Warn when a relation field references a slug that does not exist in the target type.
|
|
17
18
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-relations.d.ts","sourceRoot":"","sources":["../../../src/validate/validate-relations.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"validate-relations.d.ts","sourceRoot":"","sources":["../../../src/validate/validate-relations.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMpE,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;CAC5B;AAWD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAO/E;AAWD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,aAAa,GAAG,qBAAqB,EAAE,CAkEjF"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { ScribeConfig } from "../src/core/types.js";
|
|
2
|
+
export declare function contentTypeForPath(webPath: string): string;
|
|
3
|
+
/** The absolute assets directory the studio serves from, or null when disabled. */
|
|
4
|
+
export declare function assetsDirOf(config: ScribeConfig): string | null;
|
|
5
|
+
export interface ResolvedAssetPath {
|
|
6
|
+
/** Absolute path on disk, guaranteed to be inside the assets dir. */
|
|
7
|
+
absPath: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Map a root-relative web path onto the assets dir, refusing anything that
|
|
11
|
+
* escapes it. Returns null when the asset system is disabled or the resolved
|
|
12
|
+
* path would land outside the assets root (path traversal, absolute paths,
|
|
13
|
+
* symlink-free string check). Pure: no filesystem access — safe to unit-test.
|
|
14
|
+
*/
|
|
15
|
+
export declare function resolveAssetWebPath(config: ScribeConfig, webPath: string): ResolvedAssetPath | null;
|
|
16
|
+
export interface AssetFileInfo {
|
|
17
|
+
exists: boolean;
|
|
18
|
+
sizeBytes?: number;
|
|
19
|
+
contentType: string;
|
|
20
|
+
}
|
|
21
|
+
export interface StudioAssetResponse {
|
|
22
|
+
/** Backed by a plain ArrayBuffer (not SharedArrayBuffer) so Hono's `c.body` accepts it. */
|
|
23
|
+
body: Uint8Array<ArrayBuffer>;
|
|
24
|
+
contentType: string;
|
|
25
|
+
}
|
|
26
|
+
/** Read and return a traversal-safe asset file for studio preview serving. */
|
|
27
|
+
export declare function serveStudioAsset(config: ScribeConfig, rawWebPath: string): StudioAssetResponse | null;
|
|
28
|
+
/** Stat a resolved asset (existence + size). */
|
|
29
|
+
export declare function statAsset(absPath: string, webPath: string): AssetFileInfo;
|
|
30
|
+
export interface ImageDimensions {
|
|
31
|
+
width: number;
|
|
32
|
+
height: number;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Read image dimensions from the file header when cheap (PNG, JPEG, WEBP, GIF);
|
|
36
|
+
* returns null otherwise. Reads only the leading bytes needed. Never throws.
|
|
37
|
+
*/
|
|
38
|
+
export declare function readImageDimensions(absPath: string): ImageDimensions | null;
|
|
39
|
+
//# sourceMappingURL=asset-serve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset-serve.d.ts","sourceRoot":"","sources":["../../studio/asset-serve.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAqBzD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,mFAAmF;AACnF,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI,CAE/D;AAED,MAAM,WAAW,iBAAiB;IAChC,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,MAAM,GACd,iBAAiB,GAAG,IAAI,CAoB1B;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,2FAA2F;IAC3F,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,MAAM,GACjB,mBAAmB,GAAG,IAAI,CAoB5B;AAED,gDAAgD;AAChD,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa,CASzE;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAmB3E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset-views.d.ts","sourceRoot":"","sources":["../../studio/asset-views.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AASzD,OAAO,KAAK,EAAY,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAkHtE,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,aAAa,GACvB,MAAM,CA8DR"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import type { ContentTypeRuntime, ScribeConfig, ScribeDocument, ScribeProject } from "../src/core/types.js";
|
|
2
|
+
import type { ValidateIssue } from "../src/validate/validate-project.js";
|
|
3
|
+
import { type BackRefIndex, type FilterFieldMeta } from "./introspect-fields.js";
|
|
4
|
+
import type { DeletionPlan } from "../src/delete/plan.js";
|
|
5
|
+
export interface ValidationBuckets {
|
|
6
|
+
/** `typeId` → `enSlug` → issues touching that entry (any locale). */
|
|
7
|
+
byEntry: Map<string, Map<string, ValidateIssue[]>>;
|
|
8
|
+
/** `typeId` → issues for that type (aggregate). */
|
|
9
|
+
byType: Map<string, ValidateIssue[]>;
|
|
10
|
+
}
|
|
11
|
+
export declare function bucketValidation(issues: ValidateIssue[]): ValidationBuckets;
|
|
12
|
+
/**
|
|
13
|
+
* Error/warning count chips for a bag of issues, wrapped in a CSS-only hover
|
|
14
|
+
* tooltip that lists the individual issues. Empty string when there is nothing
|
|
15
|
+
* error/warning-level to show. Same signature as before, so every call site
|
|
16
|
+
* (sidebar type badges, collection rows, gallery cards, inspector) inherits the
|
|
17
|
+
* tooltip.
|
|
18
|
+
*/
|
|
19
|
+
export declare function validationBadge(issues: ValidateIssue[] | undefined): string;
|
|
20
|
+
/** Sidebar aggregate badge (compact) for each type. */
|
|
21
|
+
export declare function typeBadges(buckets: ValidationBuckets): Map<string, string>;
|
|
22
|
+
/** Neutral chip for a type with nothing to translate (bodyless + no translatable fields). */
|
|
23
|
+
export declare function notTranslatableChip(): string;
|
|
24
|
+
/** Neutral chip shown instead of a body section for `body: false` types. */
|
|
25
|
+
export declare function frontmatterOnlyChip(): string;
|
|
26
|
+
export interface ActiveFilters {
|
|
27
|
+
[key: string]: string;
|
|
28
|
+
}
|
|
29
|
+
/** Read active filter values from query params (only for the type's filterable fields). */
|
|
30
|
+
export declare function readFilters(filterFields: FilterFieldMeta[], query: (key: string) => string | undefined): ActiveFilters;
|
|
31
|
+
/** Apply active filters to a document list. Generic per filter kind. */
|
|
32
|
+
export declare function applyFilters(docs: ScribeDocument[], filterFields: FilterFieldMeta[], active: ActiveFilters): ScribeDocument[];
|
|
33
|
+
export interface CollectionContext {
|
|
34
|
+
project: ScribeProject;
|
|
35
|
+
config: ScribeConfig;
|
|
36
|
+
type: ContentTypeRuntime;
|
|
37
|
+
buckets: ValidationBuckets;
|
|
38
|
+
/** Per (type,slug,locale) status dots renderer supplied by the server. */
|
|
39
|
+
statusDots: (typeId: string, enSlug: string) => string;
|
|
40
|
+
}
|
|
41
|
+
export declare function renderCollectionBrowser(ctx: CollectionContext, query: (key: string) => string | undefined): string;
|
|
42
|
+
export interface InspectorContext {
|
|
43
|
+
project: ScribeProject;
|
|
44
|
+
config: ScribeConfig;
|
|
45
|
+
type: ContentTypeRuntime;
|
|
46
|
+
enSlug: string;
|
|
47
|
+
locale: string;
|
|
48
|
+
enDoc: ScribeDocument;
|
|
49
|
+
/** Locale frontmatter (already merged for display) or null when EN / untranslated. */
|
|
50
|
+
localeFrontmatter: Record<string, unknown> | null;
|
|
51
|
+
/** True when the requested locale has no stored translation (EN fallback shown). */
|
|
52
|
+
isFallback: boolean;
|
|
53
|
+
backRefs: BackRefIndex;
|
|
54
|
+
buckets: ValidationBuckets;
|
|
55
|
+
/** Locale tabs HTML from the server (reusing existing status dots). */
|
|
56
|
+
localeTabs: string;
|
|
57
|
+
/** Which body tab to show: raw MDX source (default) or the rendered approximation. */
|
|
58
|
+
bodyView?: "raw" | "preview";
|
|
59
|
+
/** Previous entry in the collection's default order (null at the start). */
|
|
60
|
+
prev?: {
|
|
61
|
+
href: string;
|
|
62
|
+
slug: string;
|
|
63
|
+
} | null;
|
|
64
|
+
/** Next entry in the collection's default order (null at the end). */
|
|
65
|
+
next?: {
|
|
66
|
+
href: string;
|
|
67
|
+
slug: string;
|
|
68
|
+
} | null;
|
|
69
|
+
/** URL of the delete confirmation page for this entry. */
|
|
70
|
+
deleteHref: string;
|
|
71
|
+
}
|
|
72
|
+
export declare function renderEntryInspector(ctx: InspectorContext): string;
|
|
73
|
+
export declare function renderUsedBy(project: ScribeProject, typeId: string, enSlug: string, backRefs: BackRefIndex): string;
|
|
74
|
+
/**
|
|
75
|
+
* Render the delete confirmation page: the full plan in sections with counts.
|
|
76
|
+
* A blocked plan shows the blockers and no confirm button; an executable plan
|
|
77
|
+
* shows a danger confirm button (POST) plus a cancel link back to the inspector.
|
|
78
|
+
*/
|
|
79
|
+
export declare function renderDeletionPlanPage(project: ScribeProject, plan: DeletionPlan, options: {
|
|
80
|
+
typeId: string;
|
|
81
|
+
enSlug: string;
|
|
82
|
+
cancelHref: string;
|
|
83
|
+
postHref: string;
|
|
84
|
+
}): string;
|
|
85
|
+
//# sourceMappingURL=content-views.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-views.d.ts","sourceRoot":"","sources":["../../studio/content-views.ts"],"names":[],"mappings":"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"}
|