blume 1.7.0 → 1.7.2
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/CHANGELOG.md +18 -0
- package/dist/cli/{chunk-9qs6acpw.js → chunk-12dxjqk7.js} +32 -43
- package/dist/cli/{chunk-9qs6acpw.js.map → chunk-12dxjqk7.js.map} +2 -2
- package/dist/cli/{chunk-s5dsk8bj.js → chunk-196vjxp9.js} +65 -64
- package/dist/cli/chunk-196vjxp9.js.map +13 -0
- package/dist/cli/{chunk-27gtm2ym.js → chunk-2mzebbbz.js} +1 -1
- package/dist/cli/{chunk-s5e5jt53.js → chunk-2z47ypj8.js} +1 -1
- package/dist/cli/{chunk-tnskyrej.js → chunk-30e87n55.js} +15 -24
- package/dist/cli/{chunk-tnskyrej.js.map → chunk-30e87n55.js.map} +2 -2
- package/dist/cli/{chunk-4trphnvy.js → chunk-3w7b2vcx.js} +10 -13
- package/dist/cli/{chunk-4trphnvy.js.map → chunk-3w7b2vcx.js.map} +2 -2
- package/dist/cli/{chunk-v5mm027v.js → chunk-450a7rcr.js} +8 -8
- package/dist/cli/{chunk-v5mm027v.js.map → chunk-450a7rcr.js.map} +1 -1
- package/dist/cli/{chunk-5d4q7121.js → chunk-5n7t497w.js} +142 -134
- package/dist/cli/{chunk-5d4q7121.js.map → chunk-5n7t497w.js.map} +5 -5
- package/dist/cli/{chunk-xv91q4nm.js → chunk-61j18dwk.js} +37 -9
- package/dist/cli/{chunk-xv91q4nm.js.map → chunk-61j18dwk.js.map} +3 -3
- package/dist/cli/{chunk-3r94j3tc.js → chunk-688e0dde.js} +2 -2
- package/dist/cli/{chunk-vxv4x1n8.js → chunk-88by27n5.js} +2 -2
- package/dist/cli/{chunk-cfw6x4rm.js → chunk-8cd8tj54.js} +28 -35
- package/dist/cli/{chunk-cfw6x4rm.js.map → chunk-8cd8tj54.js.map} +2 -2
- package/dist/cli/{chunk-8gnpdsn1.js → chunk-9bkjd11x.js} +2 -2
- package/dist/cli/{chunk-qq9nm3qd.js → chunk-9he6crym.js} +21 -28
- package/dist/cli/{chunk-qq9nm3qd.js.map → chunk-9he6crym.js.map} +2 -2
- package/dist/cli/{chunk-jk1zwka1.js → chunk-aztttvb3.js} +27 -33
- package/dist/cli/{chunk-jk1zwka1.js.map → chunk-aztttvb3.js.map} +2 -2
- package/dist/cli/{chunk-ckh3a410.js → chunk-cvky9gb2.js} +18 -24
- package/dist/cli/{chunk-ckh3a410.js.map → chunk-cvky9gb2.js.map} +2 -2
- package/dist/cli/{chunk-kwx90v78.js → chunk-eevwt1sc.js} +23 -32
- package/dist/cli/{chunk-kwx90v78.js.map → chunk-eevwt1sc.js.map} +2 -2
- package/dist/cli/{chunk-agy5rzxy.js → chunk-ejjx8znq.js} +126 -77
- package/dist/cli/chunk-ejjx8znq.js.map +15 -0
- package/dist/cli/{chunk-ye9zdkgv.js → chunk-exeeb35e.js} +3 -3
- package/dist/cli/{chunk-v2ymm99c.js → chunk-fmceyezb.js} +41 -50
- package/dist/cli/{chunk-v2ymm99c.js.map → chunk-fmceyezb.js.map} +2 -2
- package/dist/cli/{chunk-s102bysw.js → chunk-hdm2dkd2.js} +209 -97
- package/dist/cli/{chunk-s102bysw.js.map → chunk-hdm2dkd2.js.map} +6 -5
- package/dist/cli/{chunk-zr3ygrq3.js → chunk-hs3gbh8p.js} +10 -15
- package/dist/cli/{chunk-zr3ygrq3.js.map → chunk-hs3gbh8p.js.map} +2 -2
- package/dist/cli/{chunk-n0nyat6g.js → chunk-jbj4qhfw.js} +3 -3
- package/dist/cli/{chunk-ev67ycx0.js → chunk-jq5n4avg.js} +1 -1
- package/dist/cli/{chunk-jxkxjsc1.js → chunk-mqb2ka8m.js} +22 -30
- package/dist/cli/{chunk-jxkxjsc1.js.map → chunk-mqb2ka8m.js.map} +2 -2
- package/dist/cli/{chunk-drke6t0h.js → chunk-mt76t7dj.js} +26 -34
- package/dist/cli/{chunk-drke6t0h.js.map → chunk-mt76t7dj.js.map} +2 -2
- package/dist/cli/{chunk-jtb45atp.js → chunk-n9sra6sy.js} +13 -13
- package/dist/cli/{chunk-jtb45atp.js.map → chunk-n9sra6sy.js.map} +1 -1
- package/dist/cli/{chunk-x66c5yjn.js → chunk-ppfvdcd4.js} +2 -2
- package/dist/cli/{chunk-wd27zjcz.js → chunk-q4rae3bg.js} +1 -1
- package/dist/cli/{chunk-pxj10x8y.js → chunk-ra1v2nc2.js} +1 -1
- package/dist/cli/{chunk-y3g15rvv.js → chunk-t3tj0dgr.js} +26 -33
- package/dist/cli/{chunk-y3g15rvv.js.map → chunk-t3tj0dgr.js.map} +2 -2
- package/dist/cli/{chunk-j6pxe0dt.js → chunk-tqa1s0k8.js} +4 -4
- package/dist/cli/{chunk-cbjnx4s8.js → chunk-vh9w1sgp.js} +1 -1
- package/dist/cli/{chunk-0qhq7b8q.js → chunk-vkrsvbr5.js} +13 -17
- package/dist/cli/{chunk-0qhq7b8q.js.map → chunk-vkrsvbr5.js.map} +2 -2
- package/dist/cli/{chunk-sbdqrjbb.js → chunk-vrfp10qk.js} +1 -1
- package/dist/cli/{chunk-ynacq3ev.js → chunk-wjt80jps.js} +27 -40
- package/dist/cli/{chunk-ynacq3ev.js.map → chunk-wjt80jps.js.map} +3 -4
- package/dist/cli/{chunk-18tjv4f7.js → chunk-xhtpx3ff.js} +21 -30
- package/dist/cli/{chunk-18tjv4f7.js.map → chunk-xhtpx3ff.js.map} +2 -2
- package/dist/cli/{chunk-5hs6gb7n.js → chunk-yzhm0j9q.js} +1 -1
- package/dist/cli/index.js +397 -34
- package/dist/cli/index.js.map +12 -4
- package/dist/types/components/layout/nav-utils.d.ts +15 -2
- package/dist/types/core/config-input.d.ts +33 -0
- package/dist/types/core/schema.d.ts +29 -3
- package/docs/08-faq.mdx +21 -0
- package/docs/configuration/ask-ai.mdx +63 -0
- package/docs/content/sources.mdx +2 -2
- package/package.json +1 -1
- package/src/ai/ask.ts +31 -4
- package/src/ai/cors.ts +87 -0
- package/src/astro/generate.ts +3 -0
- package/src/astro/templates.ts +192 -83
- package/src/components/content/YouTube.astro +1 -1
- package/src/components/layout/Header.astro +1 -1
- package/src/components/layout/NavTree.astro +75 -66
- package/src/components/layout/RootLayout.astro +4 -1
- package/src/components/layout/Search.astro +11 -0
- package/src/components/layout/nav-utils.ts +47 -15
- package/src/core/adapter.ts +61 -0
- package/src/core/config-input.ts +33 -0
- package/src/core/schema.ts +61 -0
- package/src/core/sources/assets.ts +162 -26
- package/src/core/sources/notion.ts +60 -1
- package/src/registry/eject.ts +3 -0
- package/src/theme/entry.ts +9 -0
- package/dist/cli/chunk-2aj8ddew.js +0 -72
- package/dist/cli/chunk-2aj8ddew.js.map +0 -10
- package/dist/cli/chunk-4xyggvgf.js +0 -21
- package/dist/cli/chunk-4xyggvgf.js.map +0 -10
- package/dist/cli/chunk-6kzzpsx8.js +0 -26
- package/dist/cli/chunk-6kzzpsx8.js.map +0 -10
- package/dist/cli/chunk-agy5rzxy.js.map +0 -15
- package/dist/cli/chunk-bcy492zc.js +0 -16
- package/dist/cli/chunk-bcy492zc.js.map +0 -10
- package/dist/cli/chunk-btfr9yvw.js +0 -41
- package/dist/cli/chunk-btfr9yvw.js.map +0 -10
- package/dist/cli/chunk-ey89bjj1.js +0 -209
- package/dist/cli/chunk-ey89bjj1.js.map +0 -11
- package/dist/cli/chunk-s5dsk8bj.js.map +0 -13
- package/dist/cli/chunk-vt8fgygt.js +0 -23
- package/dist/cli/chunk-vt8fgygt.js.map +0 -10
- /package/dist/cli/{chunk-27gtm2ym.js.map → chunk-2mzebbbz.js.map} +0 -0
- /package/dist/cli/{chunk-s5e5jt53.js.map → chunk-2z47ypj8.js.map} +0 -0
- /package/dist/cli/{chunk-3r94j3tc.js.map → chunk-688e0dde.js.map} +0 -0
- /package/dist/cli/{chunk-vxv4x1n8.js.map → chunk-88by27n5.js.map} +0 -0
- /package/dist/cli/{chunk-8gnpdsn1.js.map → chunk-9bkjd11x.js.map} +0 -0
- /package/dist/cli/{chunk-ye9zdkgv.js.map → chunk-exeeb35e.js.map} +0 -0
- /package/dist/cli/{chunk-n0nyat6g.js.map → chunk-jbj4qhfw.js.map} +0 -0
- /package/dist/cli/{chunk-ev67ycx0.js.map → chunk-jq5n4avg.js.map} +0 -0
- /package/dist/cli/{chunk-x66c5yjn.js.map → chunk-ppfvdcd4.js.map} +0 -0
- /package/dist/cli/{chunk-wd27zjcz.js.map → chunk-q4rae3bg.js.map} +0 -0
- /package/dist/cli/{chunk-pxj10x8y.js.map → chunk-ra1v2nc2.js.map} +0 -0
- /package/dist/cli/{chunk-j6pxe0dt.js.map → chunk-tqa1s0k8.js.map} +0 -0
- /package/dist/cli/{chunk-cbjnx4s8.js.map → chunk-vh9w1sgp.js.map} +0 -0
- /package/dist/cli/{chunk-sbdqrjbb.js.map → chunk-vrfp10qk.js.map} +0 -0
- /package/dist/cli/{chunk-5hs6gb7n.js.map → chunk-yzhm0j9q.js.map} +0 -0
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"import matter from \"../core/frontmatter.ts\";\nimport { pinHeadingAnchors } from \"./anchors.ts\";\nimport { TRANSLATABLE_KEY_PATHS } from \"./prompts.ts\";\n\n/**\n * Structural validation of agent output. The agent is never trusted for\n * structure: the final frontmatter is *reconstructed* from the source (clone\n * the source data, overlay only the translatable string values), so invented\n * keys are dropped, deleted keys are restored, and slugs/icons/orders/dates\n * stay source-verbatim by construction. Only then is the file written.\n */\n\nexport type ValidationResult =\n | { ok: true; text: string }\n | { ok: false; reason: string };\n\n/**\n * A parsed YAML frontmatter value (agent meta replies parse from JSON into the\n * same shape). js-yaml can also mint Dates and other rich scalars; the\n * traversal below only ever distinguishes \"keyed object\" from \"string\", so\n * they ride along as the object arm.\n */\ntype FrontmatterValue =\n | string\n | number\n | boolean\n | null\n | FrontmatterValue[]\n | FrontmatterData;\n\ninterface FrontmatterData {\n [key: string]: FrontmatterValue;\n}\n\nconst FRONTMATTER_OPEN = /^---\\r?\\n/u;\nconst FENCE_LINE = /^\\s*(?:```|~~~)/u;\n\n/**\n * Strip exactly one symmetric outer code fence (any info string) — the one\n * wrapper agents add despite being told not to. Anything else (no fence, or a\n * fence that isn't the entire output) is returned trimmed and untouched.\n */\nexport const stripOuterFence = (text: string): string => {\n const trimmed = text.trim();\n const match = trimmed.match(\n /^(?<fence>`{3,}|~{3,})[^\\n]*\\n(?<inner>[\\s\\S]*?)\\n\\k<fence>\\s*$/u\n );\n return match?.groups?.inner ?? trimmed;\n};\n\n/** Lines opening or closing a code fence; their count must survive translation. */\nconst countFenceLines = (text: string): number =>\n text.split(\"\\n\").filter((line) => FENCE_LINE.test(line)).length;\n\nconst isKeyedObject = (\n value: FrontmatterValue | undefined\n): value is FrontmatterData => typeof value === \"object\" && value !== null;\n\nconst isString = (value: FrontmatterValue | undefined): value is string =>\n typeof value === \"string\";\n\nconst getPath = (\n data: FrontmatterValue,\n path: readonly string[]\n): FrontmatterValue | undefined => {\n let value: FrontmatterValue | undefined = data;\n for (const key of path) {\n if (!isKeyedObject(value)) {\n return;\n }\n value = value[key];\n }\n return value;\n};\n\n/** Set `path` on `data`; only called for paths whose parents exist in `data`. */\nconst setPath = (\n data: FrontmatterData,\n path: readonly string[],\n value: string\n): void => {\n let parent = data;\n for (const key of path.slice(0, -1)) {\n // SAFETY: callers only set paths that getPath already resolved to a string\n // on this same (cloned) data, so every intermediate step is a keyed object.\n parent = parent[key] as FrontmatterData;\n }\n // SAFETY: every TRANSLATABLE_KEY_PATHS entry is a non-empty tuple, so the\n // path always has a final key.\n parent[path.at(-1) as string] = value;\n};\n\nconst ensureTrailingNewline = (text: string): string =>\n text.endsWith(\"\\n\") ? text : `${text}\\n`;\n\n/**\n * Validate one translated page against its source and reassemble the file to\n * write. Fails (no write happens) on empty output, unparseable or missing\n * frontmatter, an empty body, or a changed code-fence count.\n */\nexport const validateTranslation = (\n sourceText: string,\n agentText: string\n): ValidationResult => {\n const candidate = stripOuterFence(agentText);\n if (candidate === \"\") {\n return { ok: false, reason: \"agent returned empty output\" };\n }\n\n const sourceHasFrontmatter = FRONTMATTER_OPEN.test(sourceText);\n const source = matter(sourceText);\n\n if (sourceHasFrontmatter && !FRONTMATTER_OPEN.test(candidate)) {\n return {\n ok: false,\n reason: \"translation dropped the frontmatter (must start with ---)\",\n };\n }\n\n let parsed: { content: string; data: FrontmatterData };\n try {\n parsed = matter(candidate);\n } catch {\n return { ok: false, reason: \"frontmatter does not parse as YAML\" };\n }\n\n const rawBody = ensureTrailingNewline(parsed.content.replace(/^\\r?\\n/u, \"\"));\n if (rawBody.trim() === \"\") {\n return { ok: false, reason: \"translation has an empty body\" };\n }\n\n const sourceFences = countFenceLines(source.content);\n const candidateFences = countFenceLines(rawBody);\n if (sourceFences !== candidateFences) {\n return {\n ok: false,\n reason: `code fence count changed (source has ${sourceFences}, translation has ${candidateFences})`,\n };\n }\n\n // Anchors stay identical across languages: each translated heading is\n // pinned to its source heading's id (see `anchors.ts`).\n const body = pinHeadingAnchors(source.content, rawBody).text;\n\n if (!sourceHasFrontmatter) {\n // A frontmatter-less source writes the body alone; any frontmatter the\n // agent invented is dropped with it.\n return { ok: true, text: body };\n }\n\n // Reconciliation by reconstruction: start from the SOURCE data and overlay\n // only the translatable key paths where both sides hold a string and the\n // translation is non-empty.\n const data: FrontmatterData = structuredClone(source.data);\n for (const path of TRANSLATABLE_KEY_PATHS) {\n const original = getPath(source.data, path);\n const translated = getPath(parsed.data, path);\n if (\n isString(original) &&\n isString(translated) &&\n translated.trim() !== \"\"\n ) {\n setPath(data, path, translated);\n }\n }\n\n return {\n ok: true,\n text: ensureTrailingNewline(matter.stringify(body, data)),\n };\n};\n\n/** A meta-batch parse: recovered titles by key, plus the keys still missing. */\nexport interface MetaTitlesResult {\n titles: Record<string, string>;\n missing: string[];\n}\n\n/**\n * Extract translated sidebar titles from a meta reply: tolerant first-`{`\n * to-last-`}` extraction (the eval `parseVerdict` idiom). Keys missing or\n * non-string in the reply land in `missing`, so a batch can partially succeed.\n */\nexport const parseMetaTitles = (\n agentText: string,\n expectedKeys: readonly string[]\n): MetaTitlesResult => {\n const start = agentText.indexOf(\"{\");\n const end = agentText.lastIndexOf(\"}\");\n let parsed: FrontmatterValue | undefined;\n if (start !== -1 && end > start) {\n try {\n parsed = JSON.parse(agentText.slice(start, end + 1));\n } catch {\n parsed = undefined;\n }\n }\n const record: FrontmatterData = isKeyedObject(parsed) ? parsed : {};\n\n const titles: Record<string, string> = {};\n const missing: string[] = [];\n for (const key of expectedKeys) {\n const value = record[key];\n if (isString(value) && value.trim() !== \"\") {\n titles[key] = value;\n } else {\n missing.push(key);\n }\n }\n return { missing, titles };\n};\n",
|
|
14
14
|
"import { existsSync } from \"node:fs\";\nimport { readFile } from \"node:fs/promises\";\n\nimport { dirname, extname, join, relative } from \"pathe\";\n\nimport { localeCodes, localeTargetPath } from \"../core/i18n.ts\";\nimport type { BlumeProject } from \"../core/project-graph.ts\";\nimport type { Diagnostic, PageRecord } from \"../core/types.ts\";\nimport { hashSource } from \"./ledger.ts\";\nimport type { TranslationLedger } from \"./ledger.ts\";\nimport { discoverTranslatableMeta, metaTargetPath } from \"./meta.ts\";\nimport type { TranslatableMeta } from \"./meta.ts\";\n\n/**\n * Classification of every (source, target locale) pair:\n * - `missing` — no non-fallback page record for (translationKey, locale).\n * Existence is the graph record, never a disk probe, so a hand-authored\n * translation at a non-canonical name still counts as existing.\n * - `stale` — a record exists, but the ledger hash differs from the current\n * source hash (the source changed since its last translation).\n * - up-to-date — hashes match (counted, not itemized).\n * - untracked — a record exists with no ledger entry: a pre-existing human\n * translation. Adopted (stamped at the current hash), never overwritten;\n * only `--force` retranslates it.\n */\nexport type WorkStatus = \"missing\" | \"stale\";\n\nexport interface PageWorkItem {\n kind: \"page\";\n /** Target locale code (configured casing). */\n locale: string;\n /** Absolute path of the default-locale source file. */\n sourcePath: string;\n /** POSIX root-relative source path — the ledger key. */\n sourceRel: string;\n status: WorkStatus;\n /** Absolute canonical target path (`localeTargetPath`). */\n targetPath: string;\n /** POSIX root-relative target path, for display. */\n targetRel: string;\n /** Copy the file unchanged instead of translating it — a non-markdown\n * include partial (code embed) has no prose, but must still exist in each\n * locale tree so the translated pages' relative includes resolve. */\n verbatim?: boolean;\n}\n\n/** One meta file needing its title in one locale, inside a `MetaWorkItem`. */\nexport interface MetaWorkEntry {\n meta: TranslatableMeta;\n status: WorkStatus;\n /** Absolute path of the generated per-locale `meta.ts`. */\n targetPath: string;\n}\n\n/** All of one locale's needed meta titles — a single agent call. */\nexport interface MetaWorkItem {\n kind: \"meta\";\n entries: MetaWorkEntry[];\n locale: string;\n}\n\nexport type WorkItem = MetaWorkItem | PageWorkItem;\n\n/** A pre-existing translation with no ledger entry, to adopt (stamp) as-is. */\nexport interface UntrackedEntry {\n /** The current source hash to stamp. */\n hash: string;\n kind: \"meta\" | \"page\";\n locale: string;\n sourceRel: string;\n}\n\nexport interface TranslateWorkList {\n diagnostics: Diagnostic[];\n items: WorkItem[];\n /** Every ledger key in the current universe (for pruning). */\n knownSources: Set<string>;\n /** The locales this run targets (configured casing, default excluded). */\n targetLocales: string[];\n untracked: UntrackedEntry[];\n /** Count of (source, locale) pairs already translated and current. */\n upToDate: number;\n}\n\nconst PAGE_EXTENSIONS = new Set([\".md\", \".mdx\"]);\n\n/**\n * The translatable page universe: filesystem-backed default-locale pages.\n * Remote/staged sources have no writable path; fallback records are padding;\n * a `.$.` shared file already materializes into every locale.\n */\nconst translatablePages = (\n project: BlumeProject,\n i18n: NonNullable<BlumeProject[\"config\"][\"i18n\"]>\n): {\n page: PageRecord;\n contentRoot: string;\n ext: string;\n sourcePath: string;\n}[] => {\n const rootsByName = new Map(\n project.sources.flatMap((source) =>\n source.staged || !source.contentRoot\n ? []\n : [[source.name, source.contentRoot] as const]\n )\n );\n const seen = new Set<string>();\n const universe: {\n page: PageRecord;\n contentRoot: string;\n ext: string;\n sourcePath: string;\n }[] = [];\n for (const page of project.graph.pages) {\n if (\n page.locale !== i18n.defaultLocale ||\n page.fallback ||\n !page.sourcePath ||\n seen.has(page.sourcePath) ||\n // Archived snapshots are frozen and carry their own translations —\n // they are never (re)translated. (`localeTargetPath` would also compute\n // `fr/v1.0/…` where the snapshot's translation lives at `v1.0/fr/…`.)\n page.version !== \"\"\n ) {\n continue;\n }\n const ext = extname(page.sourcePath);\n const base = page.sourcePath.slice(0, page.sourcePath.length - ext.length);\n const contentRoot = rootsByName.get(page.source.name);\n if (!PAGE_EXTENSIONS.has(ext) || base.endsWith(\".$\") || !contentRoot) {\n continue;\n }\n seen.add(page.sourcePath);\n universe.push({ contentRoot, ext, page, sourcePath: page.sourcePath });\n }\n return universe;\n};\n\n/** Outcome of classifying one (source, locale) pair against the ledger:\n * a work status, an existing translation to adopt, or already current. */\ntype PairOutcome = WorkStatus | \"current\" | \"untracked\";\n\n/** The shared pair classifier — see the WorkStatus doc for the taxonomy. */\nconst classifyPair = (\n exists: boolean,\n stamp: string | undefined,\n hash: string,\n force: boolean\n): PairOutcome => {\n if (!exists) {\n return \"missing\";\n }\n if (stamp === undefined) {\n return force ? \"stale\" : \"untracked\";\n }\n return stamp !== hash || force ? \"stale\" : \"current\";\n};\n\n/** The classified work for the include partials the pages reference. */\ninterface PartialWork {\n items: PageWorkItem[];\n /** Ledger keys to add to the run's known-source universe. */\n sources: string[];\n untracked: UntrackedEntry[];\n upToDate: number;\n}\n\n/**\n * Work for the include partials referenced by the translatable pages. Under\n * the `dir` parser each locale is its own tree, so a translated page's\n * relative `<include>` resolves *inside the locale tree* — the partial must\n * exist there too, or the next build fails with BLUME_INCLUDE_NOT_FOUND on\n * every locale. (Under `dot` the translated file sits beside its source and\n * the shared partial already resolves; nothing to do.) Markdown partials are\n * translated like pages; anything else (code embeds) is copied verbatim. A\n * partial that is itself a page is skipped — its own translation already\n * lands at the mirrored path. Existence is a disk probe: partials have no\n * page records to consult.\n */\nconst partialWorkItems = async (\n universe: ReturnType<typeof translatablePages>,\n project: BlumeProject,\n i18n: NonNullable<BlumeProject[\"config\"][\"i18n\"]>,\n ledger: TranslationLedger,\n targetLocales: string[],\n force: boolean\n): Promise<PartialWork> => {\n const work: PartialWork = {\n items: [],\n sources: [],\n untracked: [],\n upToDate: 0,\n };\n if (i18n.parser !== \"dir\") {\n return work;\n }\n const { root } = project.context;\n const pagePaths = new Set(\n project.graph.pages.flatMap((page) =>\n page.sourcePath ? [page.sourcePath] : []\n )\n );\n const partials = new Map<string, string>();\n for (const { page, contentRoot } of universe) {\n for (const partial of page.includes ?? []) {\n if (!(pagePaths.has(partial) || partials.has(partial))) {\n partials.set(partial, contentRoot);\n }\n }\n }\n for (const [partialPath, contentRoot] of partials) {\n const sourceRel = relative(root, partialPath);\n work.sources.push(sourceRel);\n // oxlint-disable-next-line no-await-in-loop -- one read per partial\n const hash = hashSource(await readFile(partialPath, \"utf-8\"));\n const ext = extname(partialPath);\n const verbatim = !PAGE_EXTENSIONS.has(ext.toLowerCase());\n const contentRel = relative(contentRoot, partialPath);\n for (const locale of targetLocales) {\n const targetPath = join(\n contentRoot,\n localeTargetPath(contentRel, ext, locale, i18n)\n );\n const item = (status: WorkStatus): PageWorkItem => {\n const partialItem: PageWorkItem = {\n kind: \"page\",\n locale,\n sourcePath: partialPath,\n sourceRel,\n status,\n targetPath,\n targetRel: relative(root, targetPath),\n };\n if (verbatim) {\n partialItem.verbatim = true;\n }\n return partialItem;\n };\n const stamp = ledger.files[sourceRel]?.[locale];\n const outcome = classifyPair(existsSync(targetPath), stamp, hash, force);\n if (outcome === \"untracked\") {\n work.untracked.push({ hash, kind: \"page\", locale, sourceRel });\n } else if (outcome === \"current\") {\n work.upToDate += 1;\n } else {\n work.items.push(item(outcome));\n }\n }\n }\n return work;\n};\n\n/**\n * Compute the run's work: which (source, locale) pairs are missing or stale,\n * which existing translations to adopt, and what's already up to date.\n * `force` promotes every pair to work; `locales` narrows the targets.\n */\nexport const computeWorkList = async (\n project: BlumeProject,\n ledger: TranslationLedger,\n options: { force?: boolean; locales?: string[] } = {}\n): Promise<TranslateWorkList> => {\n const { i18n } = project.config;\n if (!i18n) {\n return {\n diagnostics: [],\n items: [],\n knownSources: new Set(),\n targetLocales: [],\n untracked: [],\n upToDate: 0,\n };\n }\n const targetLocales = localeCodes(i18n).filter(\n (code) =>\n code !== i18n.defaultLocale &&\n (options.locales === undefined || options.locales.includes(code))\n );\n\n const translated = new Set(\n project.graph.pages.flatMap((page) =>\n page.fallback ? [] : [`${page.translationKey}\u0000${page.locale}`]\n )\n );\n\n const { root } = project.context;\n const knownSources = new Set<string>();\n const untracked: UntrackedEntry[] = [];\n const pageItems: PageWorkItem[] = [];\n let upToDate = 0;\n\n const universe = translatablePages(project, i18n);\n\n for (const { page, contentRoot, ext, sourcePath } of universe) {\n const sourceRel = relative(root, sourcePath);\n knownSources.add(sourceRel);\n // oxlint-disable-next-line no-await-in-loop -- one read per source file\n const hash = hashSource(await readFile(sourcePath, \"utf-8\"));\n const contentRel = relative(contentRoot, sourcePath);\n\n for (const locale of targetLocales) {\n const targetPath = join(\n contentRoot,\n localeTargetPath(contentRel, ext, locale, i18n)\n );\n const item = (status: WorkStatus): PageWorkItem => ({\n kind: \"page\",\n locale,\n sourcePath,\n sourceRel,\n status,\n targetPath,\n targetRel: relative(root, targetPath),\n });\n const exists = translated.has(`${page.translationKey}\u0000${locale}`);\n const stamp = ledger.files[sourceRel]?.[locale];\n const outcome = classifyPair(exists, stamp, hash, options.force === true);\n if (outcome === \"untracked\") {\n untracked.push({ hash, kind: \"page\", locale, sourceRel });\n } else if (outcome === \"current\") {\n upToDate += 1;\n } else {\n pageItems.push(item(outcome));\n }\n }\n }\n\n const partialWork = await partialWorkItems(\n universe,\n project,\n i18n,\n ledger,\n targetLocales,\n options.force ?? false\n );\n for (const rel of partialWork.sources) {\n knownSources.add(rel);\n }\n pageItems.push(...partialWork.items);\n untracked.push(...partialWork.untracked);\n upToDate += partialWork.upToDate;\n\n const meta = await discoverTranslatableMeta(project);\n const metaItems: MetaWorkItem[] = [];\n for (const locale of targetLocales) {\n const entries: MetaWorkEntry[] = [];\n for (const source of meta.metas) {\n knownSources.add(source.sourceRel);\n const targetDir = dirname(metaTargetPath(source, locale));\n const exists = [\"meta.ts\", \"meta.js\", \"meta.mjs\"].some((name) =>\n existsSync(join(targetDir, name))\n );\n const hash = hashSource(source.raw);\n const stamp = ledger.files[source.sourceRel]?.[locale];\n const entry = (status: WorkStatus): MetaWorkEntry => ({\n meta: source,\n status,\n targetPath: metaTargetPath(source, locale),\n });\n const outcome = classifyPair(exists, stamp, hash, options.force === true);\n if (outcome === \"untracked\") {\n untracked.push({\n hash,\n kind: \"meta\",\n locale,\n sourceRel: source.sourceRel,\n });\n } else if (outcome === \"current\") {\n upToDate += 1;\n } else {\n entries.push(entry(outcome));\n }\n }\n if (entries.length > 0) {\n metaItems.push({ entries, kind: \"meta\", locale });\n }\n }\n\n pageItems.sort((a, b) =>\n a.sourceRel === b.sourceRel\n ? a.locale.localeCompare(b.locale)\n : a.sourceRel.localeCompare(b.sourceRel)\n );\n metaItems.sort((a, b) => a.locale.localeCompare(b.locale));\n\n return {\n diagnostics: meta.diagnostics,\n items: [...pageItems, ...metaItems],\n knownSources,\n targetLocales,\n untracked,\n upToDate,\n };\n};\n"
|
|
15
15
|
],
|
|
16
|
-
"mappings": "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",
|
|
17
|
-
"debugId": "
|
|
16
|
+
"mappings": "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",
|
|
17
|
+
"debugId": "DEFFE7073BCA047464756E2164756E21",
|
|
18
18
|
"names": []
|
|
19
19
|
}
|
|
@@ -1,44 +1,38 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
|
-
gradeExternal,
|
|
4
|
-
probeAll
|
|
5
|
-
} from "./chunk-cbjnx4s8.js";
|
|
6
|
-
import {
|
|
7
|
-
reportInternalError
|
|
8
|
-
} from "./chunk-btfr9yvw.js";
|
|
9
|
-
import {
|
|
10
|
-
customStaticRoutes,
|
|
11
3
|
discoverPages,
|
|
4
|
+
customStaticRoutes,
|
|
12
5
|
hasGeneratedChangelog
|
|
13
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-vrfp10qk.js";
|
|
14
7
|
import {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
8
|
+
commandMeta,
|
|
9
|
+
reportInternalError,
|
|
10
|
+
BlumeError,
|
|
11
|
+
logger,
|
|
12
|
+
flushStdout,
|
|
13
|
+
reportDiagnosticsJson,
|
|
14
|
+
reportDiagnostics
|
|
15
|
+
} from "./index.js";
|
|
18
16
|
import {
|
|
19
|
-
buildManifest,
|
|
20
17
|
localePrefix,
|
|
21
18
|
localizeRoute,
|
|
19
|
+
buildManifest,
|
|
22
20
|
scanProject
|
|
23
|
-
} from "./chunk-
|
|
24
|
-
import"./chunk-
|
|
21
|
+
} from "./chunk-hdm2dkd2.js";
|
|
22
|
+
import"./chunk-61j18dwk.js";
|
|
25
23
|
import {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
} from "./chunk-27gtm2ym.js";
|
|
30
|
-
import"./chunk-4xyggvgf.js";
|
|
31
|
-
import"./chunk-6kzzpsx8.js";
|
|
24
|
+
isRelativeImageTarget,
|
|
25
|
+
resolveRelativeImage
|
|
26
|
+
} from "./chunk-450a7rcr.js";
|
|
32
27
|
import {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
reportDiagnostics,
|
|
37
|
-
reportDiagnosticsJson
|
|
38
|
-
} from "./chunk-ey89bjj1.js";
|
|
28
|
+
gradeExternal,
|
|
29
|
+
probeAll
|
|
30
|
+
} from "./chunk-vh9w1sgp.js";
|
|
39
31
|
import {
|
|
40
|
-
|
|
41
|
-
|
|
32
|
+
normalizePath,
|
|
33
|
+
withBasePath,
|
|
34
|
+
stripBasePath
|
|
35
|
+
} from "./chunk-2mzebbbz.js";
|
|
42
36
|
|
|
43
37
|
// src/cli/commands/validate.ts
|
|
44
38
|
import { existsSync as existsSync2 } from "node:fs";
|
|
@@ -363,8 +357,8 @@ var validateCommand = defineCommand({
|
|
|
363
357
|
}
|
|
364
358
|
const strictFailure = Boolean(args.strict) && diagnostics.some((diagnostic) => diagnostic.severity !== "info");
|
|
365
359
|
if (args.json) {
|
|
366
|
-
const
|
|
367
|
-
if (
|
|
360
|
+
const hadErrors = reportDiagnosticsJson(diagnostics, root);
|
|
361
|
+
if (hadErrors || strictFailure) {
|
|
368
362
|
await flushStdout();
|
|
369
363
|
process.exit(1);
|
|
370
364
|
}
|
|
@@ -383,5 +377,5 @@ export {
|
|
|
383
377
|
validateCommand
|
|
384
378
|
};
|
|
385
379
|
|
|
386
|
-
//# debugId=
|
|
387
|
-
//# sourceMappingURL=chunk-
|
|
380
|
+
//# debugId=129C7BB75B2906F164756E2164756E21
|
|
381
|
+
//# sourceMappingURL=chunk-aztttvb3.js.map
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"import { existsSync } from \"node:fs\";\n\nimport { basename, dirname, join, relative, resolve } from \"pathe\";\n\nimport { stripBasePath, withBasePath } from \"./base-path.ts\";\nimport {\n isRelativeImageTarget,\n resolveRelativeImage,\n} from \"./content-assets.ts\";\nimport type { LocaleRouting } from \"./i18n.ts\";\nimport { localizeLinkPath } from \"./locale-links.ts\";\nimport { gradeExternal, probeAll } from \"./probe.ts\";\nimport type {\n ContentGraph,\n Diagnostic,\n PageLink,\n PageRecord,\n} from \"./types.ts\";\n\nconst HTTP = /^https?:\\/\\//iu;\nconst PROTOCOL_RELATIVE = /^\\/\\//u;\nconst SCHEME = /^[a-z][a-z0-9+.-]*:/iu;\n\n/** Percent-decode a link piece; malformed sequences stay verbatim. */\nconst decodePercent = (value: string): string => {\n try {\n return decodeURIComponent(value);\n } catch {\n return value;\n }\n};\nconst DOC_EXT = /\\.(?:md|mdx)$/iu;\nconst FILE_EXT = /\\.[a-z0-9]+$/iu;\n\n/** Source position shared by every diagnostic raised for a link. */\ninterface LinkSite {\n column: number;\n file: string;\n line: number;\n}\n\n/**\n * Message context for a link written inside an included partial whose verdict\n * depends on *which* page splices it (relative paths resolve against the\n * including page's route; bare anchors against its headings). Without it the\n * same partial line can be reported broken while being valid from another\n * includer — with no way to tell the reports apart.\n */\nconst includedBySuffix = (link: PageLink, page: PageRecord): string =>\n link.file ? ` (included by ${basename(page.sourcePath ?? page.id)})` : \"\";\n\n/**\n * Invert the include image rebase for display: expansion rewrote a partial's\n * relative image target into the including page's directory so it resolves,\n * but the diagnostic points at the partial — report the path the author\n * actually wrote there, not the rebased one they never typed.\n */\nconst authoredImageTarget = (\n target: string,\n pagePath: string,\n partialPath: string\n): string => {\n const authored = relative(\n dirname(partialPath),\n resolve(dirname(pagePath), target)\n );\n return authored.startsWith(\".\") ? authored : `./${authored}`;\n};\n\n/** An external link occurrence queued for a network probe. */\ninterface ExternalRef extends LinkSite {\n url: string;\n}\n\n/** Lookups derived once from the content graph. */\ninterface LinkContext {\n anchors: Map<string, Set<string>>;\n /** Site-wide route mount point (`\"\"` or `/seg`); routes carry it, assets don't. */\n basePath: string;\n /** Servable routes outside the graph (custom pages, generated routes); their\n * headings are unknown, so anchors there are accepted unchecked. */\n extraRoutes: Set<string>;\n /** Locale routing, when the site is multi-locale; drives served-route resolution. */\n i18n: LocaleRouting | null;\n publicDir: string | null;\n /** Normalized `redirect.from` paths — valid targets that resolve at runtime. */\n redirects: Set<string>;\n routes: Set<string>;\n}\n\n/** Whether a resolved asset path exists under `public/`. */\nconst assetIsPresent = (resolved: string, ctx: LinkContext): boolean =>\n ctx.publicDir !== null && existsSync(join(ctx.publicDir, resolved));\n\n/** Outcome of classifying one link target. */\ntype LinkResult = Diagnostic | \"asset-unchecked\" | null;\n\n// Mirrors the ordering-prefix strip in `sources/normalize.ts`: route mapping\n// drops the prefix before recognizing `index`, so `01-index.mdx` is an index.\nconst NUMERIC_PREFIX = /^\\d+[-_.]/u;\n\n/**\n * Whether a page is a directory index (`…/index.md(x)`, ordering prefix\n * ignored). Its route already *is* its directory, so a relative link must\n * resolve against the route itself, not its parent — otherwise `./sibling`\n * from `guides/index.mdx` (route `/guides`) would resolve to `/sibling` and be\n * falsely flagged as broken. Tested against `navPath` — the locale-stripped\n * path — so a dot-parser localized index (`index.fr.mdx`) and a shared\n * locale-agnostic one (`index.$.mdx`) count too, matching how route mapping\n * recognizes them.\n */\nconst isIndexPage = (page: PageRecord): boolean =>\n /^index\\.(?:md|mdx)$/iu.test(\n basename(page.navPath).replace(NUMERIC_PREFIX, \"\")\n );\n\n/** Apply one relative-path segment to the accumulated route segments. */\nconst applyRelativePart = (segments: string[], part: string): void => {\n if (part === \"\" || part === \".\") {\n return;\n }\n if (part === \"..\") {\n segments.pop();\n return;\n }\n segments.push(part);\n};\n\n/** Resolve a relative link target against the directory of a page route. */\nconst resolveRelative = (\n pageRoute: string,\n target: string,\n isIndex: boolean\n): string => {\n const segments = pageRoute.split(\"/\").filter(Boolean);\n // Drop a leaf page's own segment so links resolve against its parent\n // directory. An index page's route already is its directory, so keep it.\n if (!isIndex) {\n segments.pop();\n }\n for (const part of target.split(\"/\")) {\n applyRelativePart(segments, part);\n }\n return `/${segments.join(\"/\")}`;\n};\n\n/** Normalize an internal path to its canonical route form. */\nconst toRoute = (path: string): string => {\n let route = path.replace(DOC_EXT, \"\");\n if (route.endsWith(\"/index\")) {\n route = route.slice(0, -\"/index\".length);\n }\n if (route.length > 1 && route.endsWith(\"/\")) {\n route = route.slice(0, -1);\n }\n return route === \"\" ? \"/\" : route;\n};\n\n/** Build a map of route -> set of heading anchor slugs. */\nconst buildAnchorIndex = (pages: PageRecord[]): Map<string, Set<string>> => {\n const anchors = new Map<string, Set<string>>();\n for (const page of pages) {\n anchors.set(\n page.route,\n new Set([\n ...page.headings.map((heading) => heading.slug),\n ...page.anchors,\n ])\n );\n }\n return anchors;\n};\n\n/** Verify a fragment resolves to a heading on the target route. */\nconst checkAnchor = (\n route: string,\n fragment: string,\n site: LinkSite,\n ctx: LinkContext,\n via = \"\"\n): Diagnostic | null => {\n const anchors = ctx.anchors.get(route);\n // Exact first: a `[#custom-id]` pin may contain uppercase, which the\n // lowercase fallback (lenient matching for slugger-generated ids) would miss.\n if (anchors?.has(fragment) || anchors?.has(fragment.toLowerCase())) {\n return null;\n }\n return {\n ...site,\n code: \"BLUME_BROKEN_ANCHOR\",\n message: `No anchor target on ${route} matches #${fragment}${via}.`,\n severity: \"warning\",\n };\n};\n\n/**\n * The route a link on `page` actually lands on. Rendered under a prefixed\n * locale, a root-relative link moves into that locale when the localized route\n * is served — a real translation (whose own headings then answer the anchor\n * check) or a fallback page (accepted unchecked via `extraRoutes`) — exactly as\n * `LocaleLinks.astro` rewrites it at render time. Otherwise the authored route\n * stands.\n */\nconst servedRoute = (\n authored: string,\n page: PageRecord,\n ctx: LinkContext\n): string =>\n ctx.i18n\n ? localizeLinkPath(authored, {\n basePath: ctx.basePath,\n i18n: ctx.i18n,\n locale: page.locale,\n routes: {\n has: (route) => ctx.routes.has(route) || ctx.extraRoutes.has(route),\n },\n })\n : authored;\n\n/** Validate a resolved internal path: asset, route, then optional anchor. */\nconst checkPathLink = (\n resolved: string,\n fragment: string,\n page: PageRecord,\n link: PageLink,\n site: LinkSite,\n ctx: LinkContext,\n via = \"\"\n): LinkResult => {\n // Page routes carry the site-wide base; an absolute author path is written\n // as if mounted at root, so base it for the route lookup (idempotent — a\n // relative link already resolved against the based `page.route`). A real\n // route always wins over the asset-extension heuristic, so a dotted route\n // (e.g. `/releases/v1.0`) isn't misread as a missing asset.\n const authoredRoute = toRoute(withBasePath(ctx.basePath, resolved));\n const route = servedRoute(authoredRoute, page, ctx);\n if (ctx.routes.has(route)) {\n return fragment ? checkAnchor(route, fragment, site, ctx, via) : null;\n }\n // A custom `.astro` page or generated route serves this path, but its\n // headings aren't indexed — accept any fragment rather than false-flag it.\n if (ctx.extraRoutes.has(route)) {\n return null;\n }\n // A configured `redirect.from` resolves at runtime, so it's a valid target.\n // Its destination (and any anchor there) is validated on its own page, so we\n // don't follow the redirect to check the fragment here.\n if (ctx.redirects.has(route)) {\n return null;\n }\n\n // Assets live in `public/` at the site root, unaffected by the base, so strip\n // it back off before probing the filesystem.\n const assetPath = stripBasePath(ctx.basePath, resolved);\n if (FILE_EXT.test(assetPath) && !DOC_EXT.test(assetPath)) {\n if (assetIsPresent(assetPath, ctx)) {\n return null;\n }\n // A colocated image embed (``) is resolved from beside\n // the page source and emitted to `_astro/` by the image pipeline, so it\n // never lands in `public/`. The *raw* target goes through the same\n // resolver that decides what the `/blume-assets/content` endpoint serves,\n // so a reference the rewriter skips (a `?v=2` suffix, a double-encoded\n // name) is reported here, not accepted. Plain links to the same path stay\n // on the public-dir probe — an href resolves as a site route, and only\n // image nodes are rewritten.\n if (link.image && page.sourcePath && isRelativeImageTarget(link.target)) {\n if (resolveRelativeImage(dirname(page.sourcePath), link.target)) {\n return null;\n }\n // A partial-origin image was rebased into the page's directory for\n // resolution but reports against the partial — cite the path as\n // authored there, so file, path, and \"next to\" agree.\n const authored = link.file\n ? authoredImageTarget(link.target, page.sourcePath, link.file)\n : link.target;\n return {\n ...site,\n code: \"BLUME_BROKEN_ASSET\",\n message: `Image ${authored} was not found next to ${basename(link.file ?? page.sourcePath)}.`,\n severity: \"warning\",\n suggestion:\n \"Add the file next to the page source or fix the reference.\",\n };\n }\n // Nowhere to look: no `public/` directory.\n if (ctx.publicDir === null) {\n return \"asset-unchecked\";\n }\n return {\n ...site,\n code: \"BLUME_BROKEN_ASSET\",\n message: `Asset ${assetPath} was not found in the public directory.`,\n severity: \"warning\",\n suggestion: `Add the file at public${assetPath} or fix the link.`,\n };\n }\n\n return {\n ...site,\n code: \"BLUME_BROKEN_LINK\",\n message: `Broken link to ${link.target}${via}: no page resolves to ${route}.`,\n severity: \"error\",\n suggestion: \"Check the path, or create the target page.\",\n };\n};\n\n/** Probe queued external links with bounded concurrency. */\nconst checkExternalLinks = async (\n refs: ExternalRef[]\n): Promise<Diagnostic[]> => {\n const results = await probeAll(refs.map((ref) => ref.url));\n\n const diagnostics: Diagnostic[] = [];\n for (const ref of refs) {\n const result = results.get(ref.url);\n const grade = result ? gradeExternal(result) : null;\n if (grade) {\n diagnostics.push({\n code: \"BLUME_DEAD_LINK\",\n column: ref.column,\n file: ref.file,\n line: ref.line,\n message: `External link ${ref.url} is unreachable (${grade.detail}).`,\n severity: grade.severity,\n });\n }\n }\n return diagnostics;\n};\n\n/** Classify a single link, queueing external refs via `onExternal`. */\nconst classifyLink = (\n page: PageRecord,\n link: PageLink,\n ctx: LinkContext,\n onExternal: (ref: ExternalRef) => void\n): LinkResult => {\n const { target } = link;\n const site: LinkSite = {\n column: link.column,\n // A link written inside an included partial reports against the partial\n // file, so the author fixes it where it lives.\n file: link.file ?? page.sourcePath ?? page.id,\n line: link.line,\n };\n\n if (HTTP.test(target) || PROTOCOL_RELATIVE.test(target)) {\n onExternal({\n ...site,\n url: PROTOCOL_RELATIVE.test(target) ? `https:${target}` : target,\n });\n return null;\n }\n if (SCHEME.test(target)) {\n // mailto:, tel:, and other non-HTTP schemes are not validated.\n return null;\n }\n\n const hashIndex = target.indexOf(\"#\");\n // Browser-copied links arrive percent-encoded (`/caf%C3%A9`, `#caf%C3%A9`)\n // while routes and anchor slugs are stored decoded — decode before comparing\n // so valid links aren't reported broken.\n const fragment = decodePercent(\n hashIndex === -1 ? \"\" : target.slice(hashIndex + 1)\n );\n let rawPath = hashIndex === -1 ? target : target.slice(0, hashIndex);\n const queryIndex = rawPath.indexOf(\"?\");\n if (queryIndex !== -1) {\n rawPath = rawPath.slice(0, queryIndex);\n }\n rawPath = decodePercent(rawPath);\n\n // A relative path (or a bare anchor) means something different from every\n // including page; an absolute path means the same thing everywhere — so\n // only includer-dependent targets carry the \"included by\" context, and\n // identical absolute-target reports collapse in the final dedupe.\n const via = rawPath.startsWith(\"/\") ? \"\" : includedBySuffix(link, page);\n if (rawPath === \"\") {\n return fragment ? checkAnchor(page.route, fragment, site, ctx, via) : null;\n }\n\n const resolved = rawPath.startsWith(\"/\")\n ? rawPath\n : resolveRelative(page.route, rawPath, isIndexPage(page));\n return checkPathLink(resolved, fragment, page, link, site, ctx, via);\n};\n\n/**\n * Validate every link discovered in the content graph: internal page links and\n * anchors against the route map, asset links against the public dir, and\n * (opt-in) external links over the network.\n */\nexport const validateLinks = async (\n graph: ContentGraph,\n options: {\n /** Site-wide route mount point (`\"\"` or `/seg`); routes and redirects carry it. */\n basePath?: string;\n /**\n * Servable routes the graph can't know: custom `.astro` pages and generated\n * routes (e.g. the `/changelog` index). Mounted outside `basePath` (they're\n * injected at their pattern), so they are *not* based here — mirroring the\n * full-route-set resolution in `nav-diagnostics.ts`/`generateRuntime`.\n */\n extraRoutes?: string[];\n /** Locale routing when i18n is on; links then resolve into the page's locale. */\n i18n?: LocaleRouting | null;\n publicDir: string | null;\n checkExternal?: boolean;\n /** Configured redirects; their `from` paths count as valid link targets. */\n redirects?: { from: string }[];\n }\n): Promise<Diagnostic[]> => {\n const basePath = options.basePath ?? \"\";\n const ctx: LinkContext = {\n anchors: buildAnchorIndex(graph.pages),\n basePath,\n extraRoutes: new Set((options.extraRoutes ?? []).map(toRoute)),\n i18n: options.i18n ?? null,\n publicDir: options.publicDir,\n redirects: new Set(\n (options.redirects ?? []).map((redirect) =>\n toRoute(withBasePath(basePath, redirect.from))\n )\n ),\n routes: new Set(graph.routes.keys()),\n };\n const diagnostics: Diagnostic[] = [];\n const external: ExternalRef[] = [];\n let uncheckedAssets = 0;\n\n for (const page of graph.pages) {\n for (const link of page.links) {\n const result = classifyLink(page, link, ctx, (ref) => external.push(ref));\n if (result === \"asset-unchecked\") {\n uncheckedAssets += 1;\n } else if (result) {\n diagnostics.push(result);\n }\n }\n }\n\n if (uncheckedAssets > 0) {\n diagnostics.push({\n code: \"BLUME_ASSETS_UNCHECKED\",\n message: `${uncheckedAssets} asset link(s) not checked: no public/ directory found.`,\n severity: \"info\",\n });\n }\n\n if (options.checkExternal && external.length > 0) {\n diagnostics.push(...(await checkExternalLinks(external)));\n }\n\n // A partial spliced into several pages (or every locale of one) yields the\n // same diagnostic once per including page record; byte-identical reports\n // add noise without information, so only the first of each survives.\n const seen = new Set<string>();\n return diagnostics.filter((diagnostic) => {\n const key = [\n diagnostic.code,\n diagnostic.file ?? \"\",\n diagnostic.line ?? \"\",\n diagnostic.column ?? \"\",\n diagnostic.message,\n ].join(\"\\n\");\n if (seen.has(key)) {\n return false;\n }\n seen.add(key);\n return true;\n });\n};\n",
|
|
7
7
|
"import {\n isInternalPath,\n normalizePath,\n stripBasePath,\n withBasePath,\n} from \"./base-path.ts\";\nimport { localePrefix, localizeRoute } from \"./i18n.ts\";\nimport type { LocaleRouting } from \"./i18n.ts\";\n\n/**\n * Locale-aware resolution of content links.\n *\n * Authors write internal links as if mounted at the default locale's root\n * (`[x](/guide)`, `<Card href=\"/guide\">`), and translated pages are usually\n * copies of the source with the same links — so read on `/fr/…`, a link would\n * otherwise drop the reader back into the default language. These helpers move\n * such a link to the reader's locale (`/fr/guide`) when that route is served\n * (a real translation or a materialized fallback page), and leave it alone\n * otherwise: an explicit cross-locale link (`/de/guide`), a custom `.astro`\n * page or generated route that has no per-locale variant, or a missing\n * translation on a site with fallbacks disabled all keep their authored\n * target rather than pointing at a 404.\n *\n * The rewrite runs at render time (`components/layout/LocaleLinks.astro`)\n * because content is compiled once per file but served per route: a fallback\n * route renders the fallback locale's file under the missing locale's URL, and\n * a shared `page.$.mdx` renders under every locale. The link checker applies\n * the same resolution so anchors are validated against the page a reader lands\n * on.\n */\n\n/** A route set, as the runtime (`Set`) or the checker (a predicate) sees it. */\nexport interface RouteSet {\n has: (route: string) => boolean;\n}\n\nexport interface LocalizeLinkOptions {\n /** Site-wide route mount point (`\"\"` or `/seg`); routes carry it. */\n basePath: string;\n i18n: LocaleRouting;\n /** Locale of the page the link is rendered on. */\n locale: string;\n /** Every served route, base-prefixed like `path` (no `deployment.base`). */\n routes: RouteSet;\n}\n\n/**\n * Mirrors the asset heuristic in `markdown/base-links.ts`: a path whose final\n * segment carries a file extension is a `public/` asset (or a raw `.md` twin),\n * served at the site root and never localized.\n */\nconst ASSET_PATH = /\\.[a-z0-9]+$/iu;\n\n/** Decode a percent-encoded path for a route lookup; leave junk as-is. */\nconst decodePercent = (value: string): string => {\n try {\n return decodeURIComponent(value);\n } catch {\n return value;\n }\n};\n\n/** Whether `path` (base-stripped) already sits under some locale's prefix. */\nconst hasLocalePrefix = (path: string, i18n: LocaleRouting): boolean =>\n i18n.locales.some((locale) => {\n const prefix = localePrefix(locale.code, i18n);\n return prefix !== \"\" && (path === prefix || path.startsWith(`${prefix}/`));\n });\n\n/**\n * Move a base-prefixed, fragment-less internal path into `locale` when that\n * route is served, else return it unchanged. Idempotent: a path already under\n * any configured locale prefix is never re-prefixed.\n */\nexport const localizeLinkPath = (\n path: string,\n options: LocalizeLinkOptions\n): string => {\n const { basePath, i18n, locale, routes } = options;\n if (localePrefix(locale, i18n) === \"\") {\n return path;\n }\n const rest = normalizePath(stripBasePath(basePath, path));\n if (hasLocalePrefix(rest, i18n)) {\n return path;\n }\n const localized = withBasePath(basePath, localizeRoute(rest, locale, i18n));\n // Routes are stored decoded; a browser-copied `/caf%C3%A9` must still find\n // its translation, but the emitted href keeps the author's encoding.\n return routes.has(localized) || routes.has(decodePercent(localized))\n ? localized\n : path;\n};\n\nexport interface LocalizeHrefOptions extends LocalizeLinkOptions {\n /** `deployment.base` (Astro's `BASE_URL`), layered over `basePath` in hrefs. */\n deployBase: string;\n}\n\n/**\n * Localize a rendered `href`: external URLs, relative paths, bare fragments, and\n * asset links pass through; a root-relative page link keeps its `?query` and\n * `#fragment` and its `deployment.base` layer around the localized path.\n */\nexport const localizeHref = (\n href: string,\n options: LocalizeHrefOptions\n): string => {\n if (!isInternalPath(href)) {\n return href;\n }\n const suffixAt = href.search(/[#?]/u);\n const path = suffixAt === -1 ? href : href.slice(0, suffixAt);\n const suffix = suffixAt === -1 ? \"\" : href.slice(suffixAt);\n if (ASSET_PATH.test(path)) {\n return href;\n }\n const based = stripBasePath(options.deployBase, path);\n const localized = localizeLinkPath(based, options);\n if (localized === based) {\n return href;\n }\n return `${withBasePath(options.deployBase, localized)}${suffix}`;\n};\n\n/** Every `<a …>` opening tag; `\\s` keeps `<abbr>`/`<astro-island>` out. */\nconst ANCHOR_TAG = /<a\\s[^>]*>/giu;\n/** The tag's `href` attribute, double- or single-quoted. */\nconst HREF_ATTR = /(?<attr>\\shref=)(?:\"(?<dq>[^\"]*)\"|'(?<sq>[^']*)')/iu;\n\n/**\n * Rewrite every `<a href>` in rendered content HTML through `rewrite`. Code\n * blocks are HTML-escaped (`<a`), and island props live on\n * `<astro-island>`, so neither is touched.\n */\nexport const localizeContentLinks = (\n html: string,\n rewrite: (href: string) => string\n): string =>\n html.replace(ANCHOR_TAG, (tag) =>\n tag.replace(HREF_ATTR, (_match, attr: string, dq?: string, sq?: string) => {\n const quote = dq === undefined ? \"'\" : '\"';\n return `${attr}${quote}${rewrite(dq ?? sq ?? \"\")}${quote}`;\n })\n );\n\n/**\n * The served route set for `blume:data`'s routes, built once per routes array\n * (the virtual module is evaluated once, so every page render shares it).\n */\nconst routeSets = new WeakMap<readonly { path: string }[], Set<string>>();\n\nexport const routeSetFor = (\n routes: readonly { path: string }[]\n): Set<string> => {\n const cached = routeSets.get(routes);\n if (cached) {\n return cached;\n }\n const built = new Set(routes.map((route) => route.path));\n routeSets.set(routes, built);\n return built;\n};\n"
|
|
8
8
|
],
|
|
9
|
-
"mappings": "
|
|
10
|
-
"debugId": "
|
|
9
|
+
"mappings": "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",
|
|
10
|
+
"debugId": "129C7BB75B2906F164756E2164756E21",
|
|
11
11
|
"names": []
|
|
12
12
|
}
|
|
@@ -1,34 +1,28 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
VERSION_ID,
|
|
4
|
+
loadConfig
|
|
5
|
+
} from "./chunk-61j18dwk.js";
|
|
6
|
+
import {
|
|
7
|
+
commandMeta,
|
|
8
|
+
reportInternalError,
|
|
9
|
+
BlumeError,
|
|
10
|
+
logger
|
|
11
|
+
} from "./index.js";
|
|
5
12
|
import {
|
|
6
13
|
writeTextAtomic
|
|
7
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-jq5n4avg.js";
|
|
8
15
|
import {
|
|
9
|
-
VERSION_LIKE,
|
|
10
|
-
isWithin,
|
|
11
16
|
localizeRoute,
|
|
17
|
+
VERSION_LIKE,
|
|
18
|
+
versionizeRoute,
|
|
12
19
|
nextFenceState,
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
} from "./chunk-
|
|
16
|
-
import {
|
|
17
|
-
VERSION_ID,
|
|
18
|
-
loadConfig
|
|
19
|
-
} from "./chunk-xv91q4nm.js";
|
|
20
|
+
isWithin,
|
|
21
|
+
scanProject
|
|
22
|
+
} from "./chunk-hdm2dkd2.js";
|
|
20
23
|
import {
|
|
21
24
|
stripBasePath
|
|
22
|
-
} from "./chunk-
|
|
23
|
-
import"./chunk-4xyggvgf.js";
|
|
24
|
-
import"./chunk-6kzzpsx8.js";
|
|
25
|
-
import {
|
|
26
|
-
BlumeError,
|
|
27
|
-
logger
|
|
28
|
-
} from "./chunk-ey89bjj1.js";
|
|
29
|
-
import {
|
|
30
|
-
commandMeta
|
|
31
|
-
} from "./chunk-2aj8ddew.js";
|
|
25
|
+
} from "./chunk-2mzebbbz.js";
|
|
32
26
|
|
|
33
27
|
// src/cli/commands/version.ts
|
|
34
28
|
import { defineCommand } from "citty";
|
|
@@ -273,5 +267,5 @@ export {
|
|
|
273
267
|
versionCommand
|
|
274
268
|
};
|
|
275
269
|
|
|
276
|
-
//# debugId=
|
|
277
|
-
//# sourceMappingURL=chunk-
|
|
270
|
+
//# debugId=FCCC841E358AFC4A64756E2164756E21
|
|
271
|
+
//# sourceMappingURL=chunk-cvky9gb2.js.map
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"import { defineCommand } from \"citty\";\n\nimport { loadConfig } from \"../../core/config.ts\";\nimport { BlumeError } from \"../../core/diagnostics.ts\";\nimport { CutError, cutVersion } from \"../../core/version-cut.ts\";\nimport { commandMeta } from \"../command-meta.ts\";\nimport { reportInternalError } from \"../internal-error.ts\";\nimport { logger } from \"../log.ts\";\n\nexport const versionCommand = defineCommand({\n args: {\n force: {\n description: \"Overwrite an existing snapshot directory.\",\n type: \"boolean\",\n },\n id: {\n description: 'Version id to cut (e.g. \"v1.0\").',\n required: false,\n type: \"positional\",\n },\n },\n meta: commandMeta.version,\n async run({ args }) {\n const root = process.cwd();\n\n if (!args.id) {\n const { config } = await loadConfig(root);\n if (!config.versions) {\n logger.info(\n \"Versioning is not configured. Cut the first version with `blume version <id>` (e.g. `blume version v1.0`).\"\n );\n return;\n }\n const { current, archived } = config.versions;\n process.stdout.write(\n ` ${current.label} (current)${current.badge ? ` — ${current.badge}` : \"\"}\\n`\n );\n for (const version of archived) {\n process.stdout.write(\n ` ${version.label ?? version.id} — ${version.id}/\\n`\n );\n }\n return;\n }\n\n try {\n const result = await cutVersion(root, args.id, { force: args.force });\n logger.success(\n `Snapshot ${result.dir} (${result.copied} file(s) copied)`\n );\n const totalRewrites = result.rewritten.reduce(\n (sum, entry) => sum + entry.count,\n 0\n );\n if (totalRewrites > 0) {\n logger.info(\n `Rewrote root-absolute links in ${result.rewritten.length} page(s) (${totalRewrites} line(s)).`\n );\n }\n if (result.configUpdated) {\n logger.success(\n `Added \"${args.id}\" to versions.archived in blume.config.ts`\n );\n } else if (result.configSnippet) {\n logger.info(result.configSnippet);\n }\n logger.info(\n \"Archived versions are frozen — future edits belong in the live tree. Restart `blume dev` to pick up the snapshot.\"\n );\n } catch (error) {\n if (error instanceof CutError) {\n logger.error(error.message);\n process.exit(1);\n }\n if (error instanceof BlumeError) {\n logger.error(error.diagnostic.message);\n process.exit(1);\n }\n reportInternalError(error);\n process.exit(1);\n }\n },\n});\n",
|
|
6
6
|
"import { existsSync } from \"node:fs\";\nimport { cp, readdir, readFile, rm } from \"node:fs/promises\";\n\nimport { join, relative } from \"pathe\";\n\nimport { stripBasePath } from \"./base-path.ts\";\nimport { nextFenceState } from \"./code-fences.ts\";\nimport type { FenceState } from \"./code-fences.ts\";\nimport { writeTextAtomic } from \"./fs-atomic.ts\";\nimport { localizeRoute } from \"./i18n.ts\";\nimport type { BlumeProject } from \"./project-graph.ts\";\nimport { isWithin, scanProject } from \"./project-graph.ts\";\nimport { VERSION_ID } from \"./schema.ts\";\nimport { VERSION_LIKE, versionizeRoute } from \"./versions.ts\";\n\n/** What `cutVersion` did, for the CLI to report. */\nexport interface CutResult {\n /** Files copied into the snapshot. */\n copied: number;\n /** Markdown pages whose root-absolute links were rewritten, with counts. */\n rewritten: { file: string; count: number }[];\n /** Whether `blume.config.ts` was updated in place. */\n configUpdated: boolean;\n /** Ready-to-paste config snippet when in-place update was not possible. */\n configSnippet: string | null;\n /** Absolute path of the created snapshot directory. */\n dir: string;\n}\n\n/** A `cutVersion` failure the CLI reports as a user error, not a crash. */\nexport class CutError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"CutError\";\n }\n}\n\n// Inline code spans are syntax being *shown*, not links — blank them before\n// matching so replacements can splice into the real line by index (the mask\n// preserves length). Mirrors the content-assets rewriter.\nconst INLINE_CODE = /`[^`]*`/gu;\n// A markdown link/image target or an HTML href/src attribute whose value is\n// root-absolute. Named groups carry the prefix (kept) and target (rewritten).\nconst ROOT_LINK = /(?<prefix>\\]\\(|href=\"|src=\")(?<target>\\/[^\\s\"')]*)/gu;\n\n/**\n * Build the link-rewrite table: every current-version route (basePath\n * stripped, since authors write root-absolute links as if mounted at root)\n * mapped to the same page's route inside the new snapshot. Only pages the\n * snapshot actually contains qualify — filesystem pages under the content\n * root. Spec-rendered references (`/api`, `/events`) and remote sources\n * aren't copied, so links to them keep pointing at the live pages instead of\n * a 404 inside the snapshot.\n */\nconst buildRouteRewrites = (\n project: BlumeProject,\n id: string\n): Map<string, string> => {\n const { basePath, i18n } = project.config;\n const { contentRoot } = project.context;\n const rewrites = new Map<string, string>();\n for (const page of project.graph.pages) {\n // `sourcePath` marks a page backed by a local file, which excludes\n // generated and remote pages; the content-root check below excludes local\n // files that live outside the tree a version snapshot copies. A staged\n // page (an Obsidian note) is served from its source, not from the copied\n // tree, so it keeps publishing as current even when its file sits under\n // the content root.\n const { sourcePath } = page;\n if (\n page.version !== \"\" ||\n page.collection === \"staged\" ||\n !sourcePath ||\n relative(contentRoot, sourcePath).startsWith(\"..\")\n ) {\n continue;\n }\n const logical = versionizeRoute(page.versionKey, id);\n rewrites.set(\n stripBasePath(basePath, page.route),\n i18n ? localizeRoute(logical, page.locale, i18n) : logical\n );\n }\n return rewrites;\n};\n\n/** Rewrite one line's root-absolute internal links via the rewrite table. */\nconst rewriteLine = (line: string, rewrites: Map<string, string>): string => {\n const masked = line.replaceAll(INLINE_CODE, (span) =>\n \" \".repeat(span.length)\n );\n let out = \"\";\n let cursor = 0;\n let count = 0;\n for (const match of masked.matchAll(ROOT_LINK)) {\n const target = match.groups?.target ?? \"\";\n // An anchor or query stays attached to the rewritten path.\n const hash = target.search(/[#?]/u);\n const path = hash === -1 ? target : target.slice(0, hash);\n const suffix = hash === -1 ? \"\" : target.slice(hash);\n const bare = path !== \"/\" && path.endsWith(\"/\") ? path.slice(0, -1) : path;\n const replacement = rewrites.get(bare);\n if (replacement === undefined) {\n continue;\n }\n const offset = (match.index ?? 0) + (match.groups?.prefix?.length ?? 0);\n out += line.slice(cursor, offset) + replacement + suffix;\n cursor = offset + target.length;\n count += 1;\n }\n return count === 0 ? line : out + line.slice(cursor);\n};\n\n/** A page's link-rewritten text and how many of its lines changed. */\nexport interface SnapshotRewrite {\n text: string;\n count: number;\n}\n\n/**\n * Rewrite a copied page's root-absolute internal links to their snapshot\n * equivalents, skipping fenced and inline code. Relative links need no\n * rewriting — the whole tree copies together, so they stay self-contained.\n */\nexport const rewriteSnapshotLinks = (\n source: string,\n rewrites: Map<string, string>\n): SnapshotRewrite => {\n let fence: FenceState = null;\n let count = 0;\n const lines = source.split(\"\\n\").map((line) => {\n const next = nextFenceState(line, fence);\n const inFence = fence !== null || next !== null;\n fence = next;\n if (inFence) {\n return line;\n }\n const rewrittenLine = rewriteLine(line, rewrites);\n if (rewrittenLine !== line) {\n count += 1;\n }\n return rewrittenLine;\n });\n return { count, text: lines.join(\"\\n\") };\n};\n\n/** The config entry to add, as a paste-ready snippet for the fallback path. */\nconst snippetFor = (id: string, hasVersions: boolean): string =>\n hasVersions\n ? `Add to versions.archived in blume.config.ts (newest first):\\n\\n { id: \"${id}\" },\\n`\n : `Add to blume.config.ts:\\n\\n versions: {\\n archived: [{ id: \"${id}\" }],\\n current: { label: \"…\" },\\n },\\n`;\n\n/**\n * Best-effort in-place config update: insert the new id at the head of an\n * existing \\`archived: [\\` array literal, preserving indentation. Anything\n * fancier (computed arrays, config spread across files) falls back to a\n * printed snippet — the config is user-authored TypeScript, and string-level\n * surgery beyond this simple shape risks corrupting it.\n */\nexport const insertArchivedVersion = async (\n configPath: string,\n id: string\n): Promise<boolean> => {\n let text: string;\n try {\n text = await readFile(configPath, \"utf-8\");\n } catch {\n return false;\n }\n const match = text.match(/(?<lead>archived:\\s*\\[)/u);\n if (!match || match.index === undefined) {\n return false;\n }\n const insertAt = match.index + (match.groups?.lead?.length ?? 0);\n // Indentation: one level deeper than the line holding `archived:`.\n const lineStart = text.lastIndexOf(\"\\n\", match.index) + 1;\n const indent = text.slice(lineStart).match(/^\\s*/u)?.[0] ?? \"\";\n const rest = text.slice(insertAt);\n // Match the array's authored shape: empty stays bare, an inline array gets\n // an inline entry, a multiline array gets its own indented line — on the\n // file's own line ending, so a CRLF config doesn't gain a lone LF.\n const eol = /^\\r?\\n/u.exec(rest)?.[0];\n let entry: string;\n if (rest.trimStart().startsWith(\"]\")) {\n entry = `{ id: \"${id}\" }`;\n } else if (eol) {\n entry = `${eol}${indent} { id: \"${id}\" },`;\n } else {\n entry = `{ id: \"${id}\" }, `;\n }\n await writeTextAtomic(configPath, text.slice(0, insertAt) + entry + rest);\n return true;\n};\n\n/**\n * Freeze the current docs as an archived version: copy the content tree into\n * `<contentRoot>/<id>/` (excluding existing snapshots), rewrite root-absolute\n * internal links so the copy is self-contained, and register the id in\n * `blume.config.ts` (or print the snippet to paste).\n */\nexport const cutVersion = async (\n root: string,\n id: string,\n options: { force?: boolean } = {}\n): Promise<CutResult> => {\n if (!VERSION_ID.test(id)) {\n throw new CutError(\n `Version ids must start with a letter (e.g. \"v1.0\") and contain only letters, digits, dots, hyphens, and underscores — got \"${id}\".`\n );\n }\n\n const project = await scanProject(root);\n const errors = project.diagnostics.filter(\n (diagnostic) => diagnostic.severity === \"error\"\n );\n if (errors.length > 0) {\n throw new CutError(\n `The project has ${errors.length} error diagnostic(s) — fix them before cutting a version (run \\`blume validate\\`).`\n );\n }\n // A missing content root already fails inside `scanProject` (the filesystem\n // source's own validation), so only the version-level checks remain here.\n const { contentRoot } = project.context;\n if (project.config.versions?.archived.some((version) => version.id === id)) {\n throw new CutError(\n `Version \"${id}\" is already registered in versions.archived.`\n );\n }\n\n const dir = join(contentRoot, id);\n if (existsSync(dir)) {\n if (!options.force) {\n throw new CutError(\n `${dir} already exists — pass --force to overwrite the snapshot.`\n );\n }\n await rm(dir, { force: true, recursive: true });\n }\n\n // Existing snapshots must not nest inside the new one: configured ids, plus\n // any version-shaped directory (`v1.0/`) that never made it into the config —\n // e.g. a prior cut whose config update fell back to a printed snippet. A\n // genuine content folder that merely looks like a version already draws the\n // rename-or-register diagnostic, so skipping it here is consistent.\n const excluded = new Set([\n id,\n \"node_modules\",\n ...(project.config.versions?.archived.map((version) => version.id) ?? []),\n ]);\n // Another local source's tree under the content root — an Obsidian vault the\n // filesystem source excludes — is that source's to publish. Copying it would\n // republish its raw notes (wikilinks and `%%comments%%` intact) as\n // filesystem pages of the snapshot, while the source itself keeps serving\n // them as current.\n const foreignRoots = project.sources\n .flatMap((source) =>\n source.staged && source.contentRoot ? [source.contentRoot] : []\n )\n .filter((tree) => isWithin(contentRoot, tree));\n const isForeign = (path: string): boolean =>\n foreignRoots.some((tree) => isWithin(tree, path));\n const entries = await readdir(contentRoot, { withFileTypes: true });\n let copied = 0;\n await Promise.all(\n entries.map(async (entry) => {\n if (\n excluded.has(entry.name) ||\n entry.name.startsWith(\".\") ||\n (entry.isDirectory() && VERSION_LIKE.test(entry.name))\n ) {\n return;\n }\n await cp(join(contentRoot, entry.name), join(dir, entry.name), {\n filter: (source) => !isForeign(source),\n recursive: true,\n });\n })\n );\n\n // Rewrite root-absolute internal links in every copied markdown page.\n const rewrites = buildRouteRewrites(project, id);\n const rewritten: { file: string; count: number }[] = [];\n const walk = async (current: string): Promise<void> => {\n const children = await readdir(current, { withFileTypes: true });\n await Promise.all(\n children.map(async (child) => {\n const abs = join(current, child.name);\n if (child.isDirectory()) {\n await walk(abs);\n return;\n }\n copied += 1;\n if (!/\\.mdx?$/u.test(child.name)) {\n return;\n }\n const source = await readFile(abs, \"utf-8\");\n const { text, count } = rewriteSnapshotLinks(source, rewrites);\n if (count > 0) {\n await writeTextAtomic(abs, text);\n rewritten.push({ count, file: relative(dir, abs) });\n }\n })\n );\n };\n await walk(dir);\n\n const configPath = join(root, \"blume.config.ts\");\n const configUpdated =\n project.config.versions !== undefined &&\n (await insertArchivedVersion(configPath, id));\n\n return {\n configSnippet: configUpdated\n ? null\n : snippetFor(id, project.config.versions !== undefined),\n configUpdated,\n copied,\n dir,\n rewritten,\n };\n};\n"
|
|
7
7
|
],
|
|
8
|
-
"mappings": "
|
|
9
|
-
"debugId": "
|
|
8
|
+
"mappings": "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",
|
|
9
|
+
"debugId": "FCCC841E358AFC4A64756E2164756E21",
|
|
10
10
|
"names": []
|
|
11
11
|
}
|
|
@@ -1,39 +1,30 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
|
-
|
|
4
|
-
} from "./chunk-0qhq7b8q.js";
|
|
5
|
-
import"./chunk-n0nyat6g.js";
|
|
6
|
-
import"./chunk-btfr9yvw.js";
|
|
7
|
-
import {
|
|
8
|
-
readDevLock
|
|
9
|
-
} from "./chunk-ye9zdkgv.js";
|
|
10
|
-
import"./chunk-5d4q7121.js";
|
|
11
|
-
import"./chunk-ynacq3ev.js";
|
|
12
|
-
import"./chunk-pxj10x8y.js";
|
|
13
|
-
import"./chunk-sbdqrjbb.js";
|
|
14
|
-
import"./chunk-v5mm027v.js";
|
|
15
|
-
import"./chunk-ev67ycx0.js";
|
|
16
|
-
import"./chunk-vt8fgygt.js";
|
|
17
|
-
import"./chunk-3r94j3tc.js";
|
|
18
|
-
import"./chunk-agy5rzxy.js";
|
|
19
|
-
import"./chunk-j6pxe0dt.js";
|
|
20
|
-
import"./chunk-vxv4x1n8.js";
|
|
21
|
-
import"./chunk-wd27zjcz.js";
|
|
22
|
-
import"./chunk-s102bysw.js";
|
|
23
|
-
import {
|
|
24
|
-
loadConfig,
|
|
3
|
+
resolveRuntimeDir,
|
|
25
4
|
resolveProjectContext,
|
|
26
|
-
|
|
27
|
-
} from "./chunk-
|
|
28
|
-
import"./chunk-27gtm2ym.js";
|
|
29
|
-
import"./chunk-4xyggvgf.js";
|
|
30
|
-
import"./chunk-6kzzpsx8.js";
|
|
5
|
+
loadConfig
|
|
6
|
+
} from "./chunk-61j18dwk.js";
|
|
31
7
|
import {
|
|
8
|
+
commandMeta,
|
|
32
9
|
logger
|
|
33
|
-
} from "./
|
|
10
|
+
} from "./index.js";
|
|
34
11
|
import {
|
|
35
|
-
|
|
36
|
-
} from "./chunk-
|
|
12
|
+
readDevLock
|
|
13
|
+
} from "./chunk-exeeb35e.js";
|
|
14
|
+
import"./chunk-tqa1s0k8.js";
|
|
15
|
+
import"./chunk-88by27n5.js";
|
|
16
|
+
import"./chunk-5n7t497w.js";
|
|
17
|
+
import"./chunk-wjt80jps.js";
|
|
18
|
+
import"./chunk-hdm2dkd2.js";
|
|
19
|
+
import"./chunk-450a7rcr.js";
|
|
20
|
+
import"./chunk-jq5n4avg.js";
|
|
21
|
+
import"./chunk-ejjx8znq.js";
|
|
22
|
+
import"./chunk-688e0dde.js";
|
|
23
|
+
import"./chunk-vrfp10qk.js";
|
|
24
|
+
import {
|
|
25
|
+
prepareProject
|
|
26
|
+
} from "./chunk-vkrsvbr5.js";
|
|
27
|
+
import"./chunk-jbj4qhfw.js";
|
|
37
28
|
|
|
38
29
|
// src/cli/commands/sync.ts
|
|
39
30
|
import { rm } from "node:fs/promises";
|
|
@@ -77,5 +68,5 @@ export {
|
|
|
77
68
|
syncCommand
|
|
78
69
|
};
|
|
79
70
|
|
|
80
|
-
//# debugId=
|
|
81
|
-
//# sourceMappingURL=chunk-
|
|
71
|
+
//# debugId=7B94E31DD936C06C64756E2164756E21
|
|
72
|
+
//# sourceMappingURL=chunk-eevwt1sc.js.map
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import { rm } from \"node:fs/promises\";\n\nimport { defineCommand } from \"citty\";\nimport { join } from \"pathe\";\n\nimport { loadConfig } from \"../../core/config.ts\";\nimport {\n resolveProjectContext,\n resolveRuntimeDir,\n} from \"../../core/project.ts\";\nimport { commandMeta } from \"../command-meta.ts\";\nimport { readDevLock } from \"../dev-lock.ts\";\nimport { logger } from \"../log.ts\";\nimport { prepareProject } from \"../prepare.ts\";\n\nexport const syncCommand = defineCommand({\n args: {\n force: {\n description: \"Clear the source cache before refetching.\",\n type: \"boolean\",\n },\n preview: {\n description: \"Include drafts and unpublished CMS content.\",\n type: \"boolean\",\n },\n strict: { description: \"Fail on diagnostics.\", type: \"boolean\" },\n },\n meta: commandMeta.sync,\n async run({ args }) {\n const root = process.cwd();\n\n // `--force` drops the snapshots so a stale or corrupt cache can't be served;\n // scoped to `.blume/cache`, so a running dev server's runtime is untouched.\n if (args.force) {\n const { config } = await loadConfig(root);\n const context = resolveProjectContext(root, config);\n await rm(join(context.outDir, \"cache\"), { force: true, recursive: true });\n logger.info(\"Cleared source cache.\");\n }\n\n // Dev mode keeps drafts and skips the static-build gate; `refresh` forces\n // remote sources to re-fetch rather than serve their cached snapshot. A\n // running dev server hot-reloads from the regenerated runtime — so when one\n // is live, regenerate with the same site fallback (its URL) it used, else\n // its astro.config loses `site` (dropping OG and canonicals) and Astro\n // restarts cold.\n const lock = readDevLock(resolveRuntimeDir(root));\n const devServerUrl = lock?.port\n ? `http://localhost:${lock.port}`\n : undefined;\n await prepareProject({\n devServerUrl,\n mode: \"dev\",\n preview: args.preview,\n refresh: true,\n root,\n strict: args.strict,\n });\n\n logger.success(\"Synced content sources.\");\n },\n});\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": "
|
|
8
|
-
"debugId": "
|
|
7
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAEA;AACA;AAYO,IAAM,cAAc,cAAc;AAAA,EACvC,MAAM;AAAA,IACJ,OAAO;AAAA,MACL,aAAa;AAAA,MACb,MAAM;AAAA,IACR;AAAA,IACA,SAAS;AAAA,MACP,aAAa;AAAA,MACb,MAAM;AAAA,IACR;AAAA,IACA,QAAQ,EAAE,aAAa,wBAAwB,MAAM,UAAU;AAAA,EACjE;AAAA,EACA,MAAM,YAAY;AAAA,OACZ,IAAG,GAAG,QAAQ;AAAA,IAClB,MAAM,OAAO,QAAQ,IAAI;AAAA,IAIzB,IAAI,KAAK,OAAO;AAAA,MACd,QAAQ,WAAW,MAAM,WAAW,IAAI;AAAA,MACxC,MAAM,UAAU,sBAAsB,MAAM,MAAM;AAAA,MAClD,MAAM,GAAG,KAAK,QAAQ,QAAQ,OAAO,GAAG,EAAE,OAAO,MAAM,WAAW,KAAK,CAAC;AAAA,MACxE,OAAO,KAAK,uBAAuB;AAAA,IACrC;AAAA,IAQA,MAAM,OAAO,YAAY,kBAAkB,IAAI,CAAC;AAAA,IAChD,MAAM,eAAe,MAAM,OACvB,oBAAoB,KAAK,SACzB;AAAA,IACJ,MAAM,eAAe;AAAA,MACnB;AAAA,MACA,MAAM;AAAA,MACN,SAAS,KAAK;AAAA,MACd,SAAS;AAAA,MACT;AAAA,MACA,QAAQ,KAAK;AAAA,IACf,CAAC;AAAA,IAED,OAAO,QAAQ,yBAAyB;AAAA;AAE5C,CAAC;",
|
|
8
|
+
"debugId": "7B94E31DD936C06C64756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|