@takazudo/zudo-doc 4.4.8 → 4.4.9
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
CHANGED
|
@@ -4,6 +4,20 @@ All notable changes to `@takazudo/zudo-doc` are documented in this file.
|
|
|
4
4
|
|
|
5
5
|
The format is based on Keep a Changelog, and release notes are generated from the changelog MDX pages.
|
|
6
6
|
|
|
7
|
+
## [4.4.9] - 2026-07-27
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
- Fixed a build failure that made every `docHistory: false` project unbuildable with `Could not resolve "@takazudo/zudo-doc-history-server/exclude"`. The chrome graph's `doc-history-area` imported that subpath at module top level, and because the chrome graph is always bundled, esbuild had to resolve it on every build — even though `@takazudo/zudo-doc-history-server` is an *optional* peer that a doc-history-off project never installs. A regression introduced in 4.3.0 by the exclude-filtering work. The canonical matcher now lives inside `@takazudo/zudo-doc` and both consumers import it relatively; `doc-history-server` keeps its own copy and its published `./exclude` export (it is a standalone dependency-free Node server/CLI and cannot depend back on the framework package), with a source-identity parity test pinning the two copies together (5dc2a2bec)
|
|
12
|
+
- Restored `@takazudo/zudo-doc-history-server` to the `docHistory` feature block in the generated scaffold's `package.json`. It had been promoted to an unconditional base dependency purely to work around the resolution bug above; with that root cause fixed, a doc-history-off scaffold no longer needs the package at all. The scaffold test now asserts docHistory-OFF ⇒ absent so the workaround cannot silently creep back (5d5d0ad1a)
|
|
13
|
+
- Widened the release script's pin-rewrite regex to accept both pin spellings (bracket-assignment and object-literal-key). It previously matched only the colon form, so moving the pin into a conditional block would have failed the following release with `could not locate ... pin` (5d5d0ad1a)
|
|
14
|
+
|
|
15
|
+
### Other Changes
|
|
16
|
+
|
|
17
|
+
- Added an optional-peer reachability guard that walks the real injected doc routes and reports any optional peer reachable from the always-bundled graph. This bug class has now shipped three times and nothing else catches it — unit tests import from source, and this repo's own build installs every optional peer. The guard also resolves package self-imports back to source through the exports map rather than treating them as external, so the walk crosses the `@takazudo/zudo-doc/*` boundary instead of stopping at it (5dc2a2bec, cd6bd9516)
|
|
18
|
+
- Made cold checkouts self-healing. A tree installed with `pnpm install --ignore-scripts` has no `dist/` for the workspace packages, so `zfb` could not even load `zfb.config.ts` (it imports `@takazudo/zudo-doc/config`, which resolves through `dist/config.js`) and `check` / `build` / `check:pages` / `test:packages` all failed before a single line was edited. A new `ensure:workspace-build` prerequisite now runs ahead of those commands and as a `b4push` preflight, building the two workspace packages in their mandatory order (c63615d90)
|
|
19
|
+
- Made that build guard check every literal `./dist/**` target declared in each package's `exports` map instead of a single sentinel file. A `tsc` declaration pass killed partway leaves some `.d.ts` written and others missing — a state the sentinel pair accepted, so the next command failed on a missing subpath instead of self-healing. Deriving completeness from the manifest keeps the check correct as exports change and leaves no hand-maintained list to drift (833b9110e)
|
|
20
|
+
|
|
7
21
|
## [4.4.8] - 2026-07-27
|
|
8
22
|
|
|
9
23
|
### Bug Fixes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx, jsxs } from "preact/jsx-runtime";
|
|
2
2
|
import { Island } from "@takazudo/zfb";
|
|
3
|
-
import { compileExclude } from "
|
|
3
|
+
import { compileExclude } from "../doc-history-exclude/index.js";
|
|
4
4
|
import { BodyFootUtilArea } from "../body-foot-util/index.js";
|
|
5
5
|
import { toHistorySlug } from "../slug/index.js";
|
|
6
6
|
import { buildGitHubSourceUrl as buildGitHubSourceUrlBase } from "../github-helpers/index.js";
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
function compileExclude(patterns) {
|
|
2
|
+
const matchers = patterns.map((pattern) => {
|
|
3
|
+
let source = "";
|
|
4
|
+
for (let i = 0; i < pattern.length; i++) {
|
|
5
|
+
const char = pattern[i];
|
|
6
|
+
if (char === "/" && pattern.slice(i + 1) === "**") {
|
|
7
|
+
source += "(?:/.*)?";
|
|
8
|
+
break;
|
|
9
|
+
}
|
|
10
|
+
if (pattern.slice(i, i + 3) === "**/") {
|
|
11
|
+
source += "(?:[^/]+/)*";
|
|
12
|
+
i += 2;
|
|
13
|
+
continue;
|
|
14
|
+
}
|
|
15
|
+
if (pattern.slice(i, i + 2) === "**") {
|
|
16
|
+
source += ".*";
|
|
17
|
+
i++;
|
|
18
|
+
continue;
|
|
19
|
+
}
|
|
20
|
+
if (char === "*") {
|
|
21
|
+
source += "[^/]*";
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
if (char === "?") {
|
|
25
|
+
source += "[^/]";
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
source += char?.replace(/[\\^$.*+?()[\]{}|]/g, "\\$&");
|
|
29
|
+
}
|
|
30
|
+
return new RegExp(`^${source}$`);
|
|
31
|
+
});
|
|
32
|
+
return (slug) => matchers.some((matcher) => matcher.test(slug));
|
|
33
|
+
}
|
|
34
|
+
export {
|
|
35
|
+
compileExclude
|
|
36
|
+
};
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
collectContentFiles,
|
|
5
5
|
getAllFilesFirstLastMetaAsync
|
|
6
6
|
} from "@takazudo/zudo-doc-history-server/git-history";
|
|
7
|
-
import { compileExclude } from "
|
|
7
|
+
import { compileExclude } from "../../../doc-history-exclude/index.js";
|
|
8
8
|
const META_OUT_RELATIVE_DIR = ".zfb";
|
|
9
9
|
const META_OUT_FILENAME = "doc-history-meta.json";
|
|
10
10
|
function deriveSourceExt(filePath) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@takazudo/zudo-doc",
|
|
3
|
-
"version": "4.4.
|
|
3
|
+
"version": "4.4.9",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "zudo-doc framework primitives layer that sits on top of zfb's engine — sidebar, theme, TOC, breadcrumb, layouts, head injection, View Transitions, SSR-skip wrappers (per ADR-003).",
|
|
6
6
|
"license": "MIT",
|
|
@@ -650,7 +650,7 @@
|
|
|
650
650
|
"typescript": "^5.0.0",
|
|
651
651
|
"vitest": "^4.1.0",
|
|
652
652
|
"zod": "^4.3.6",
|
|
653
|
-
"@takazudo/zudo-doc-history-server": "4.4.
|
|
653
|
+
"@takazudo/zudo-doc-history-server": "4.4.9"
|
|
654
654
|
},
|
|
655
655
|
"scripts": {
|
|
656
656
|
"build": "tsup && tsc -p tsconfig.build.json",
|