@x12i/docify-export 1.1.0 → 1.1.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.
@@ -0,0 +1,21 @@
1
+ export type AssembleWebTreeOptions = {
2
+ /** Built content bundle (agent tree, HTML pages, assets). */
3
+ bundleDir: string;
4
+ /** Destination static web tree (served / deployed). */
5
+ webOut: string;
6
+ /** Optional @x12i/docify-web/public overlay for runtime shells. */
7
+ publicDir?: string;
8
+ /**
9
+ * HTML basenames from publicDir that may overwrite generated pages
10
+ * (reader + agents shells). Everything else loses to the bundle.
11
+ */
12
+ keepPublicHtml?: string[];
13
+ };
14
+ /**
15
+ * Copy the content bundle into a deployable web tree and overlay shared
16
+ * runtime assets from docify-web/public without clobbering generated pages.
17
+ */
18
+ export declare function assembleWebTree(opts: AssembleWebTreeOptions): {
19
+ copied: string[];
20
+ };
21
+ //# sourceMappingURL=assemble-web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assemble-web.d.ts","sourceRoot":"","sources":["../src/assemble-web.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,sBAAsB,GAAG;IACnC,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEF;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,sBAAsB,GAAG;IAC7D,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAqBA"}
@@ -0,0 +1,29 @@
1
+ import { cpSync, existsSync, mkdirSync, readdirSync, statSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ /**
4
+ * Copy the content bundle into a deployable web tree and overlay shared
5
+ * runtime assets from docify-web/public without clobbering generated pages.
6
+ */
7
+ export function assembleWebTree(opts) {
8
+ const keep = new Set(opts.keepPublicHtml ?? ["read.html", "agents.html"]);
9
+ mkdirSync(opts.webOut, { recursive: true });
10
+ cpSync(opts.bundleDir, opts.webOut, { recursive: true });
11
+ const copied = [];
12
+ if (opts.publicDir && existsSync(opts.publicDir)) {
13
+ for (const name of readdirSync(opts.publicDir)) {
14
+ if (name.endsWith(".html") && !keep.has(name))
15
+ continue;
16
+ const abs = join(opts.publicDir, name);
17
+ const dest = join(opts.webOut, name);
18
+ if (statSync(abs).isDirectory()) {
19
+ cpSync(abs, dest, { recursive: true });
20
+ }
21
+ else {
22
+ cpSync(abs, dest);
23
+ }
24
+ copied.push(name);
25
+ }
26
+ }
27
+ return { copied };
28
+ }
29
+ //# sourceMappingURL=assemble-web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assemble-web.js","sourceRoot":"","sources":["../src/assemble-web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAgBjC;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,IAA4B;IAG1D,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC;IAC1E,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEzD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,IAAI,CAAC,SAAS,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACjD,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/C,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YACxD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACvC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACrC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;gBAChC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACpB,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC"}
@@ -0,0 +1,11 @@
1
+ export type PackageCheckReport = {
2
+ ok: boolean;
3
+ missing: string[];
4
+ bundleDir: string;
5
+ };
6
+ /**
7
+ * Fail when a built bundle is missing the open-Markdown contract artifacts
8
+ * agents rely on (INDEX.md, SEARCH.json, packs, search/explore pages).
9
+ */
10
+ export declare function checkPackageCompleteness(bundleDir: string): PackageCheckReport;
11
+ //# sourceMappingURL=check-package.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-package.d.ts","sourceRoot":"","sources":["../src/check-package.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAeF;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,CAqB9E"}
@@ -0,0 +1,42 @@
1
+ import { existsSync, readdirSync, statSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ function hasPacks(dir) {
4
+ if (!existsSync(dir))
5
+ return false;
6
+ for (const name of readdirSync(dir)) {
7
+ const abs = join(dir, name);
8
+ if (!statSync(abs).isDirectory())
9
+ continue;
10
+ if (existsSync(join(abs, "PACK.md")) && existsSync(join(abs, "pack.json"))) {
11
+ return true;
12
+ }
13
+ if (hasPacks(abs))
14
+ return true;
15
+ }
16
+ return false;
17
+ }
18
+ /**
19
+ * Fail when a built bundle is missing the open-Markdown contract artifacts
20
+ * agents rely on (INDEX.md, SEARCH.json, packs, search/explore pages).
21
+ */
22
+ export function checkPackageCompleteness(bundleDir) {
23
+ const agent = join(bundleDir, "agent");
24
+ const required = [
25
+ join(bundleDir, "agent-manifest.json"),
26
+ join(bundleDir, "INDEX.md"),
27
+ join(bundleDir, "SEARCH.json"),
28
+ join(agent, "INDEX.md"),
29
+ join(agent, "SEARCH.json"),
30
+ join(agent, "indexes", "concepts.json"),
31
+ join(agent, "indexes", "guides.json"),
32
+ join(bundleDir, "search.html"),
33
+ join(bundleDir, "explore.html"),
34
+ join(bundleDir, "knowledge.json"),
35
+ ];
36
+ const missing = required.filter((p) => !existsSync(p));
37
+ if (!hasPacks(join(agent, "packs"))) {
38
+ missing.push(join(agent, "packs", "<type>/<id>/PACK.md"));
39
+ }
40
+ return { ok: missing.length === 0, missing, bundleDir };
41
+ }
42
+ //# sourceMappingURL=check-package.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-package.js","sourceRoot":"","sources":["../src/check-package.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAQjC,SAAS,QAAQ,CAAC,GAAW;IAC3B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACnC,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE;YAAE,SAAS;QAC3C,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;YAC3E,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;IACjC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,SAAiB;IACxD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG;QACf,IAAI,CAAC,SAAS,EAAE,qBAAqB,CAAC;QACtC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;QAC3B,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC;QAC9B,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC;QACvB,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC;QAC1B,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,eAAe,CAAC;QACvC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,CAAC;QACrC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC;QAC9B,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC;QAC/B,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC;KAClC,CAAC;IAEF,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAC1D,CAAC"}
@@ -0,0 +1,53 @@
1
+ /** Shell assets every Docify site must serve. Agents must not invent another list. */
2
+ export declare const REQUIRED_SHELL_ASSETS: readonly ["assets/site.css", "assets/extras.css", "app.js"];
3
+ /**
4
+ * Adds the file:// serve notice to every page in a built web tree, including
5
+ * static shells that are copied in rather than rendered. Pages whose assets are
6
+ * all relative (book documents) load correctly from disk and are left alone.
7
+ */
8
+ export declare function injectServeGuard(webDir: string, opts?: {
9
+ serveCommand?: string;
10
+ projectDir?: string;
11
+ }): {
12
+ injected: string[];
13
+ skipped: string[];
14
+ };
15
+ export type AssetKind = "style" | "script" | "image";
16
+ export type AssetIssue = {
17
+ page: string;
18
+ ref: string;
19
+ kind: AssetKind;
20
+ reason: "missing" | "empty";
21
+ };
22
+ export type WebAssetReport = {
23
+ ok: boolean;
24
+ pages: number;
25
+ checked: number;
26
+ /** Missing stylesheets and scripts — these produce an unstyled, dead site. */
27
+ issues: AssetIssue[];
28
+ /** Missing images — reported, but the site still renders and works. */
29
+ warnings: AssetIssue[];
30
+ /** Local asset refs that were found, deduplicated. */
31
+ assets: string[];
32
+ /** Pages that need the file:// notice but do not carry it. */
33
+ unguarded: string[];
34
+ };
35
+ /**
36
+ * Fails when a page references CSS/JS that the build did not emit — the failure
37
+ * mode that silently produces an unstyled site.
38
+ */
39
+ export declare function verifyWebAssets(webDir: string): WebAssetReport;
40
+ export type SmokeResult = {
41
+ ok: boolean;
42
+ failures: {
43
+ path: string;
44
+ status?: number;
45
+ reason: string;
46
+ }[];
47
+ };
48
+ /**
49
+ * Requests the critical shell assets from a running server. Catches build trees
50
+ * that look complete on disk but are not reachable through the served routes.
51
+ */
52
+ export declare function smokeTestServedSite(baseUrl: string, paths?: string[]): Promise<SmokeResult>;
53
+ //# sourceMappingURL=harden-web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harden-web.d.ts","sourceRoot":"","sources":["../src/harden-web.ts"],"names":[],"mappings":"AAIA,sFAAsF;AACtF,eAAO,MAAM,qBAAqB,6DAIxB,CAAC;AAYX;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,IAAI,GAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GACxD;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CA0B3C;AAED,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAErD,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,8EAA8E;IAC9E,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,uEAAuE;IACvE,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,sDAAsD;IACtD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,8DAA8D;IAC9D,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAuBF;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CA4C9D;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC/D,CAAC;AAEF;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,MAAM,EAAwD,GACpE,OAAO,CAAC,WAAW,CAAC,CAsBtB"}
@@ -0,0 +1,144 @@
1
+ import { existsSync, readFileSync, readdirSync, statSync, writeFileSync } from "node:fs";
2
+ import { dirname, join, posix, relative, resolve } from "node:path";
3
+ import { fileProtocolGuardScript, SERVE_GUARD_MARKER } from "@x12i/docify-render";
4
+ /** Shell assets every Docify site must serve. Agents must not invent another list. */
5
+ export const REQUIRED_SHELL_ASSETS = [
6
+ "assets/site.css",
7
+ "assets/extras.css",
8
+ "app.js",
9
+ ];
10
+ function htmlFiles(dir, acc = []) {
11
+ if (!existsSync(dir))
12
+ return acc;
13
+ for (const name of readdirSync(dir)) {
14
+ const abs = join(dir, name);
15
+ if (statSync(abs).isDirectory())
16
+ htmlFiles(abs, acc);
17
+ else if (name.endsWith(".html"))
18
+ acc.push(abs);
19
+ }
20
+ return acc;
21
+ }
22
+ /**
23
+ * Adds the file:// serve notice to every page in a built web tree, including
24
+ * static shells that are copied in rather than rendered. Pages whose assets are
25
+ * all relative (book documents) load correctly from disk and are left alone.
26
+ */
27
+ export function injectServeGuard(webDir, opts = {}) {
28
+ const guard = fileProtocolGuardScript(opts);
29
+ const injected = [];
30
+ const skipped = [];
31
+ const existing = new RegExp(`<script data-docify-guard="${SERVE_GUARD_MARKER}">[\\s\\S]*?</script>`);
32
+ for (const file of htmlFiles(webDir)) {
33
+ const html = readFileSync(file, "utf8");
34
+ const rel = relative(webDir, file);
35
+ const needsGuard = refsFrom(html).some((r) => r.ref.startsWith("/"));
36
+ if (!needsGuard || !html.includes("</head>") || html.includes(guard)) {
37
+ skipped.push(rel);
38
+ continue;
39
+ }
40
+ // Render-time guards carry no product context; restamp them with this build's.
41
+ const next = existing.test(html)
42
+ ? html.replace(existing, guard)
43
+ : html.replace("</head>", `${guard}\n</head>`);
44
+ writeFileSync(file, next);
45
+ injected.push(rel);
46
+ }
47
+ return { injected, skipped };
48
+ }
49
+ const EXTERNAL = /^(?:[a-z]+:)?\/\/|^data:|^mailto:|^tel:|^#/i;
50
+ function refsFrom(html) {
51
+ const refs = [];
52
+ for (const tag of html.match(/<link[^>]+rel=["'][^"']*stylesheet[^"']*["'][^>]*>/gi) ?? []) {
53
+ const href = tag.match(/href=["']([^"']+)["']/i)?.[1];
54
+ if (href)
55
+ refs.push({ ref: href, kind: "style" });
56
+ }
57
+ for (const m of html.matchAll(/<script[^>]+src=["']([^"']+)["'][^>]*>/gi)) {
58
+ if (m[1])
59
+ refs.push({ ref: m[1], kind: "script" });
60
+ }
61
+ for (const m of html.matchAll(/<img[^>]+src=["']([^"']+)["'][^>]*>/gi)) {
62
+ if (m[1])
63
+ refs.push({ ref: m[1], kind: "image" });
64
+ }
65
+ return refs.filter((r) => r.ref && !EXTERNAL.test(r.ref));
66
+ }
67
+ /**
68
+ * Fails when a page references CSS/JS that the build did not emit — the failure
69
+ * mode that silently produces an unstyled site.
70
+ */
71
+ export function verifyWebAssets(webDir) {
72
+ const issues = [];
73
+ const warnings = [];
74
+ const assets = new Set();
75
+ const unguarded = [];
76
+ const pages = htmlFiles(webDir);
77
+ let checked = 0;
78
+ for (const file of pages) {
79
+ const html = readFileSync(file, "utf8");
80
+ const pageRel = relative(webDir, file);
81
+ const refs = refsFrom(html);
82
+ if (refs.some((r) => r.ref.startsWith("/")) && !html.includes(SERVE_GUARD_MARKER)) {
83
+ unguarded.push(pageRel);
84
+ }
85
+ for (const { ref, kind } of refs) {
86
+ const clean = ref.split("?")[0].split("#")[0];
87
+ if (!clean)
88
+ continue;
89
+ const abs = clean.startsWith("/")
90
+ ? join(webDir, clean.replace(/^\/+/, ""))
91
+ : resolve(dirname(file), clean);
92
+ assets.add(posix.normalize(clean));
93
+ checked += 1;
94
+ let reason = null;
95
+ if (!existsSync(abs))
96
+ reason = "missing";
97
+ else if (statSync(abs).size === 0)
98
+ reason = "empty";
99
+ if (!reason)
100
+ continue;
101
+ const issue = { page: pageRel, ref: clean, kind, reason };
102
+ if (kind === "image")
103
+ warnings.push(issue);
104
+ else
105
+ issues.push(issue);
106
+ }
107
+ }
108
+ return {
109
+ ok: issues.length === 0 && unguarded.length === 0,
110
+ pages: pages.length,
111
+ checked,
112
+ issues,
113
+ warnings,
114
+ assets: [...assets].sort(),
115
+ unguarded,
116
+ };
117
+ }
118
+ /**
119
+ * Requests the critical shell assets from a running server. Catches build trees
120
+ * that look complete on disk but are not reachable through the served routes.
121
+ */
122
+ export async function smokeTestServedSite(baseUrl, paths = ["/", ...REQUIRED_SHELL_ASSETS.map((a) => `/${a}`)]) {
123
+ const failures = [];
124
+ const base = baseUrl.replace(/\/+$/, "");
125
+ for (const p of paths) {
126
+ const url = `${base}${p.startsWith("/") ? p : `/${p}`}`;
127
+ try {
128
+ const res = await fetch(url);
129
+ if (!res.ok) {
130
+ failures.push({ path: p, status: res.status, reason: `HTTP ${res.status}` });
131
+ continue;
132
+ }
133
+ const body = await res.text();
134
+ if (body.trim().length === 0) {
135
+ failures.push({ path: p, status: res.status, reason: "empty response" });
136
+ }
137
+ }
138
+ catch (err) {
139
+ failures.push({ path: p, reason: String(err.message ?? err) });
140
+ }
141
+ }
142
+ return { ok: failures.length === 0, failures };
143
+ }
144
+ //# sourceMappingURL=harden-web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harden-web.js","sourceRoot":"","sources":["../src/harden-web.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,10 @@
1
1
  export { assembleUseCaseMarkdown, buildContentBundle, copyBundleInto, type BuildBundleOptions, } from "./build-bundle.js";
2
2
  export { buildDocifyLibrary, type BuildDocifyLibraryInput, } from "./build-library.js";
3
3
  export { emitOpenKnowledge, type EmitKnowledgeOptions, type EmitKnowledgeResult, } from "./emit-knowledge.js";
4
+ export { injectServeGuard, smokeTestServedSite, verifyWebAssets, REQUIRED_SHELL_ASSETS, type AssetIssue, type AssetKind, type SmokeResult, type WebAssetReport, } from "./harden-web.js";
5
+ export { assembleWebTree, type AssembleWebTreeOptions, } from "./assemble-web.js";
6
+ export { checkPackageCompleteness, type PackageCheckReport, } from "./check-package.js";
7
+ export { waitForServer, openInBrowser, startDocifyServer, runDocifyDocs, type WaitForServerResult, type DocifyServerHandle, type StartDocifyServerOptions, type RunDocifyDocsOptions, type RunDocifyDocsResult, } from "./serve-site.js";
8
+ export { DOCIFY_PUBLISH_ORDER, planDocifyRelease, bumpDocifyPackages, publishDocifyPackagesOrdered, type PackageRef, type ReleasePlan, type BumpResult, type PublishOrderedOptions, type PublishOrderedResult, } from "./release.js";
4
9
  export { createDocifyPublisher, publishDocifySite, type Publisher, type PublishResult, type PublisherDeps, } from "./publish.js";
5
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,cAAc,EACd,KAAK,kBAAkB,GACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,GAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,iBAAiB,EACjB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,aAAa,GACnB,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,cAAc,EACd,KAAK,kBAAkB,GACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,GAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,iBAAiB,EACjB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,cAAc,GACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,eAAe,EACf,KAAK,sBAAsB,GAC5B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,wBAAwB,EACxB,KAAK,kBAAkB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,4BAA4B,EAC5B,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,GAC1B,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,aAAa,GACnB,MAAM,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,10 @@
1
1
  export { assembleUseCaseMarkdown, buildContentBundle, copyBundleInto, } from "./build-bundle.js";
2
2
  export { buildDocifyLibrary, } from "./build-library.js";
3
3
  export { emitOpenKnowledge, } from "./emit-knowledge.js";
4
+ export { injectServeGuard, smokeTestServedSite, verifyWebAssets, REQUIRED_SHELL_ASSETS, } from "./harden-web.js";
5
+ export { assembleWebTree, } from "./assemble-web.js";
6
+ export { checkPackageCompleteness, } from "./check-package.js";
7
+ export { waitForServer, openInBrowser, startDocifyServer, runDocifyDocs, } from "./serve-site.js";
8
+ export { DOCIFY_PUBLISH_ORDER, planDocifyRelease, bumpDocifyPackages, publishDocifyPackagesOrdered, } from "./release.js";
4
9
  export { createDocifyPublisher, publishDocifySite, } from "./publish.js";
5
10
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,cAAc,GAEf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,kBAAkB,GAEnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,iBAAiB,GAGlB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,qBAAqB,EACrB,iBAAiB,GAIlB,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,cAAc,GAEf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,kBAAkB,GAEnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,iBAAiB,GAGlB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,qBAAqB,GAKtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,eAAe,GAEhB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,wBAAwB,GAEzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,aAAa,GAMd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,4BAA4B,GAM7B,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,qBAAqB,EACrB,iBAAiB,GAIlB,MAAM,cAAc,CAAC"}
package/dist/publish.d.ts CHANGED
@@ -18,6 +18,7 @@ export type PublishResult = {
18
18
  export type PublisherDeps = {
19
19
  exec?: (command: string, args: string[], opts?: {
20
20
  env?: NodeJS.ProcessEnv;
21
+ interactive?: boolean;
21
22
  }) => {
22
23
  status: number | null;
23
24
  stdout: string;
@@ -31,6 +32,8 @@ export type Publisher = {
31
32
  validateConfig(): DocifyConfig;
32
33
  connect(): Promise<PublishResult>;
33
34
  setup(): Promise<PublishResult>;
35
+ whoami(): Promise<PublishResult>;
36
+ preflight(): PublishResult;
34
37
  deployProduction(): Promise<PublishResult>;
35
38
  deployPreview(branch?: string): Promise<PublishResult>;
36
39
  getStatus(): Promise<PublishResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,YAAY,GAAG,SAAS,CAAC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACpE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,CAAC,EAAE,CACL,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;KAAE,KAC/B;QAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/D,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,cAAc,IAAI,YAAY,CAAC;IAC/B,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;IAClC,KAAK,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;IAChC,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;IAC3C,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACvD,SAAS,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;IACpC,eAAe,IAAI,OAAO,CAAC,aAAa,GAAG;QAAE,WAAW,CAAC,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC,CAAC;IACxE,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAClD,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1D,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACvD,OAAO,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CAChF,CAAC;AAuCF;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,OAAO,EACpB,IAAI,GAAE,aAAkB,GACvB,SAAS,CA8QX;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,OAAO,EACf,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,GAC5D,OAAO,CAAC,aAAa,CAAC,CAIxB"}
1
+ {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,YAAY,GAAG,SAAS,CAAC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACpE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,CAAC,EAAE,CACL,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,KACtD;QAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/D,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,cAAc,IAAI,YAAY,CAAC;IAC/B,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;IAClC,KAAK,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;IAChC,MAAM,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;IACjC,SAAS,IAAI,aAAa,CAAC;IAC3B,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;IAC3C,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACvD,SAAS,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;IACpC,eAAe,IAAI,OAAO,CAAC,aAAa,GAAG;QAAE,WAAW,CAAC,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC,CAAC;IACxE,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAClD,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1D,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACvD,OAAO,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CAChF,CAAC;AA0CF;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,OAAO,EACpB,IAAI,GAAE,aAAkB,GACvB,SAAS,CAsTX;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,OAAO,EACf,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,GAC5D,OAAO,CAAC,aAAa,CAAC,CAIxB"}
package/dist/publish.js CHANGED
@@ -5,9 +5,12 @@ import { DocifyConfigSchema, resolvePublishHostname, } from "@x12i/docify-core";
5
5
  const PAGES_MAX_FILES = 20_000;
6
6
  const PAGES_MAX_FILE_BYTES = 25 * 1024 * 1024;
7
7
  function defaultExec(command, args, opts) {
8
+ // Interactive commands (OAuth consent) must reach the terminal, otherwise the
9
+ // login URL and prompt are captured and the user sees nothing to approve.
8
10
  const r = spawnSync(command, args, {
9
11
  encoding: "utf8",
10
12
  env: { ...process.env, ...opts?.env },
13
+ stdio: opts?.interactive ? "inherit" : "pipe",
11
14
  });
12
15
  return {
13
16
  status: r.status,
@@ -53,6 +56,15 @@ export function createDocifyPublisher(configInput, deps = {}) {
53
56
  const customDomainUrl = `https://${hostname}`;
54
57
  const project = publishCfg.projectName;
55
58
  const outputDir = config.build.outputDir;
59
+ const accountId = publishCfg.accountId ||
60
+ process.env.CLOUDFLARE_ACCOUNT_ID ||
61
+ process.env.CF_ACCOUNT_ID ||
62
+ "";
63
+ const wranglerEnv = () => accountId ? { CLOUDFLARE_ACCOUNT_ID: accountId } : {};
64
+ const wrangler = (args, opts) => exec("npx", ["--yes", "wrangler", ...args], {
65
+ env: wranglerEnv(),
66
+ interactive: opts?.interactive,
67
+ });
56
68
  const baseResult = (environment, extra = {}) => ({
57
69
  provider: publishCfg.provider,
58
70
  project,
@@ -94,28 +106,57 @@ export function createDocifyPublisher(configInput, deps = {}) {
94
106
  throw new Error(`Preflight failed: files exceed size limit:\n${tooLarge.slice(0, 10).join("\n")}`);
95
107
  }
96
108
  }
109
+ function runPreflight() {
110
+ try {
111
+ preflight();
112
+ const { count } = countFiles(outputDir);
113
+ return baseResult("production", {
114
+ status: "preflight-ok",
115
+ message: `${count} files under ${PAGES_MAX_FILES}; account=${accountId || "(default wrangler session)"}`,
116
+ });
117
+ }
118
+ catch (e) {
119
+ return baseResult("production", {
120
+ status: "preflight-failed",
121
+ message: e instanceof Error ? e.message : String(e),
122
+ });
123
+ }
124
+ }
125
+ const dashboard = accountId
126
+ ? `https://dash.cloudflare.com/${accountId}/pages/view/${project}`
127
+ : `https://dash.cloudflare.com/?to=/:account/pages/view/${project}`;
97
128
  return {
98
129
  validateConfig() {
99
130
  return config;
100
131
  },
101
132
  async connect() {
102
133
  log("Connecting via Wrangler login (credentials stay outside the repo)…");
103
- const r = exec("npx", ["--yes", "wrangler", "login"]);
134
+ log("Approve the Cloudflare consent screen in the browser window that opens.");
135
+ const r = wrangler(["login"], { interactive: true });
104
136
  if (r.status !== 0) {
105
137
  return baseResult("production", {
106
138
  status: "connect-failed",
107
139
  message: r.stderr || r.stdout || "wrangler login failed",
108
140
  });
109
141
  }
110
- const who = exec("npx", ["--yes", "wrangler", "whoami"]);
142
+ const who = wrangler(["whoami"]);
111
143
  return baseResult("production", {
112
144
  status: "connected",
113
145
  message: (who.stdout || "Connected").trim(),
114
146
  });
115
147
  },
148
+ async whoami() {
149
+ const who = wrangler(["whoami"]);
150
+ return baseResult("production", {
151
+ status: who.status === 0 ? "ok" : "whoami-failed",
152
+ message: (who.stdout || who.stderr || "").trim(),
153
+ dashboardUrl: dashboard,
154
+ });
155
+ },
156
+ preflight: runPreflight,
116
157
  async setup() {
117
158
  log(`Setting up Cloudflare Pages project "${project}" for ${hostname}…`);
118
- const list = exec("npx", ["--yes", "wrangler", "pages", "project", "list"]);
159
+ const list = wrangler(["pages", "project", "list"]);
119
160
  const exists = (list.stdout || "").includes(project);
120
161
  if (!exists) {
121
162
  const confirmed = deps.confirm == null
@@ -127,9 +168,7 @@ export function createDocifyPublisher(configInput, deps = {}) {
127
168
  message: "User cancelled project creation",
128
169
  });
129
170
  }
130
- const created = exec("npx", [
131
- "--yes",
132
- "wrangler",
171
+ const created = wrangler([
133
172
  "pages",
134
173
  "project",
135
174
  "create",
@@ -147,15 +186,13 @@ export function createDocifyPublisher(configInput, deps = {}) {
147
186
  return baseResult("production", {
148
187
  status: exists ? "adopted-existing-project" : "project-created",
149
188
  message: `Associate custom domain ${hostname} in Cloudflare Pages if not already linked. Docify will not delete other domains.`,
150
- dashboardUrl: `https://dash.cloudflare.com/?to=/:account/pages/view/${project}`,
189
+ dashboardUrl: dashboard,
151
190
  });
152
191
  },
153
192
  async deployProduction() {
154
193
  preflight();
155
194
  log(`Deploying ${outputDir} → Pages project ${project} (production)…`);
156
- const r = exec("npx", [
157
- "--yes",
158
- "wrangler",
195
+ const r = wrangler([
159
196
  "pages",
160
197
  "deploy",
161
198
  outputDir,
@@ -163,6 +200,7 @@ export function createDocifyPublisher(configInput, deps = {}) {
163
200
  project,
164
201
  "--branch",
165
202
  publishCfg.productionBranch,
203
+ "--commit-dirty=true",
166
204
  ]);
167
205
  if (r.status !== 0) {
168
206
  return baseResult("production", {
@@ -183,13 +221,12 @@ export function createDocifyPublisher(configInput, deps = {}) {
183
221
  ...verified,
184
222
  providerUrl: providerUrl ?? verified.providerUrl,
185
223
  message: r.stdout.trim(),
224
+ dashboardUrl: dashboard,
186
225
  };
187
226
  },
188
227
  async deployPreview(branch = "preview") {
189
228
  preflight();
190
- const r = exec("npx", [
191
- "--yes",
192
- "wrangler",
229
+ const r = wrangler([
193
230
  "pages",
194
231
  "deploy",
195
232
  outputDir,
@@ -197,6 +234,7 @@ export function createDocifyPublisher(configInput, deps = {}) {
197
234
  project,
198
235
  "--branch",
199
236
  branch,
237
+ "--commit-dirty=true",
200
238
  ]);
201
239
  if (r.status !== 0) {
202
240
  return baseResult("preview", {
@@ -210,12 +248,11 @@ export function createDocifyPublisher(configInput, deps = {}) {
210
248
  status: "deployed",
211
249
  providerUrl,
212
250
  message: r.stdout.trim(),
251
+ dashboardUrl: dashboard,
213
252
  });
214
253
  },
215
254
  async getStatus() {
216
- const r = exec("npx", [
217
- "--yes",
218
- "wrangler",
255
+ const r = wrangler([
219
256
  "pages",
220
257
  "deployment",
221
258
  "list",
@@ -225,12 +262,11 @@ export function createDocifyPublisher(configInput, deps = {}) {
225
262
  return baseResult("production", {
226
263
  status: r.status === 0 ? "ok" : "status-failed",
227
264
  message: (r.stdout || r.stderr).trim(),
265
+ dashboardUrl: dashboard,
228
266
  });
229
267
  },
230
268
  async listDeployments() {
231
- const r = exec("npx", [
232
- "--yes",
233
- "wrangler",
269
+ const r = wrangler([
234
270
  "pages",
235
271
  "deployment",
236
272
  "list",
@@ -241,6 +277,7 @@ export function createDocifyPublisher(configInput, deps = {}) {
241
277
  ...baseResult("production", {
242
278
  status: r.status === 0 ? "ok" : "list-failed",
243
279
  message: (r.stdout || r.stderr).trim(),
280
+ dashboardUrl: dashboard,
244
281
  }),
245
282
  deployments: [],
246
283
  };
@@ -250,14 +287,12 @@ export function createDocifyPublisher(configInput, deps = {}) {
250
287
  deploymentId: id,
251
288
  status: "ok",
252
289
  message: `Inspect deployment ${id} in the Cloudflare dashboard`,
253
- dashboardUrl: `https://dash.cloudflare.com/?to=/:account/pages/view/${project}`,
290
+ dashboardUrl: dashboard,
254
291
  });
255
292
  },
256
293
  verifyDeployment,
257
294
  async rollbackDeployment(id) {
258
- const r = exec("npx", [
259
- "--yes",
260
- "wrangler",
295
+ const r = wrangler([
261
296
  "pages",
262
297
  "deployment",
263
298
  "rollback",
@@ -1 +1 @@
1
- {"version":3,"file":"publish.js","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publish.js","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Default dependency order for publishing Docify platform + product knowledge
3
+ * packages. Agents must not invent a different order.
4
+ */
5
+ export declare const DOCIFY_PUBLISH_ORDER: readonly ["x12i-docify/packages/docify-core", "x12i-docify/packages/docify-theme", "x12i-docify/packages/docify-web", "x12i-docify/packages/docify-render", "x12i-docify/packages/docify-screenshots", "x12i-docify/packages/docify-export", "x12i-docify/packages/docify-sdk", "x12i-docify/packages/docify", "x12i-docify/packages/docify-docs", "memorix-docs/packages/memorix-docs"];
6
+ export type PackageRef = {
7
+ dir: string;
8
+ name: string;
9
+ version: string;
10
+ };
11
+ export type ReleasePlan = {
12
+ packages: PackageRef[];
13
+ alreadyPublished: string[];
14
+ toPublish: PackageRef[];
15
+ };
16
+ /**
17
+ * List what would be published for the current workspace versions.
18
+ */
19
+ export declare function planDocifyRelease(repoRoot: string, order?: readonly string[]): ReleasePlan;
20
+ export type BumpResult = {
21
+ changed: {
22
+ name: string;
23
+ from: string;
24
+ to: string;
25
+ dir: string;
26
+ }[];
27
+ };
28
+ /**
29
+ * Bump package.json versions for selected packages. Does not publish.
30
+ */
31
+ export declare function bumpDocifyPackages(repoRoot: string, opts?: {
32
+ kind?: "patch" | "minor" | "major";
33
+ /** Relative package dirs; defaults to all in DOCIFY_PUBLISH_ORDER. */
34
+ packages?: string[];
35
+ /** Only bump packages whose name matches (substring). */
36
+ filter?: string;
37
+ }): BumpResult;
38
+ export type PublishOrderedOptions = {
39
+ repoRoot: string;
40
+ order?: readonly string[];
41
+ /** Run npm pack cleanliness check before each publish. */
42
+ assertClean?: (pkgDir: string) => void;
43
+ /** Skip packages already on the registry at this version. Default true. */
44
+ skipExisting?: boolean;
45
+ dryRun?: boolean;
46
+ log?: (message: string) => void;
47
+ run?: (command: string, args: string[], cwd: string) => {
48
+ status: number | null;
49
+ stdout: string;
50
+ stderr: string;
51
+ };
52
+ };
53
+ export type PublishOrderedResult = {
54
+ published: string[];
55
+ skipped: string[];
56
+ failed?: string;
57
+ };
58
+ /**
59
+ * Publish packages in dependency order. Used by `docify release publish` and
60
+ * `scripts/publish-docify.sh`. Agents must not hand-roll an alternate order.
61
+ */
62
+ export declare function publishDocifyPackagesOrdered(opts: PublishOrderedOptions): PublishOrderedResult;
63
+ //# sourceMappingURL=release.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../src/release.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,eAAO,MAAM,oBAAoB,0XAWvB,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AA6BF,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,SAAS,EAAE,UAAU,EAAE,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,SAAS,MAAM,EAAyB,GAC9C,WAAW,CAmBb;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACpE,CAAC;AAEF;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE;IACJ,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IACnC,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;CACZ,GACL,UAAU,CAkBZ;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,0DAA0D;IAC1D,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,2EAA2E;IAC3E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,CACJ,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,MAAM,KACR;QAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAChE,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAWF;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,qBAAqB,GAC1B,oBAAoB,CAkEtB"}
@@ -0,0 +1,155 @@
1
+ import { spawnSync } from "node:child_process";
2
+ import { existsSync, readFileSync, writeFileSync } from "node:fs";
3
+ import { join } from "node:path";
4
+ /**
5
+ * Default dependency order for publishing Docify platform + product knowledge
6
+ * packages. Agents must not invent a different order.
7
+ */
8
+ export const DOCIFY_PUBLISH_ORDER = [
9
+ "x12i-docify/packages/docify-core",
10
+ "x12i-docify/packages/docify-theme",
11
+ "x12i-docify/packages/docify-web",
12
+ "x12i-docify/packages/docify-render",
13
+ "x12i-docify/packages/docify-screenshots",
14
+ "x12i-docify/packages/docify-export",
15
+ "x12i-docify/packages/docify-sdk",
16
+ "x12i-docify/packages/docify",
17
+ "x12i-docify/packages/docify-docs",
18
+ "memorix-docs/packages/memorix-docs",
19
+ ];
20
+ function readPkg(pkgPath) {
21
+ const j = JSON.parse(readFileSync(join(pkgPath, "package.json"), "utf8"));
22
+ return { dir: pkgPath, name: j.name, version: j.version };
23
+ }
24
+ function bumpSemver(version, kind) {
25
+ const parts = version.split(".").map((n) => Number(n));
26
+ if (parts.length !== 3 || parts.some((n) => Number.isNaN(n))) {
27
+ throw new Error(`Cannot bump non-semver version: ${version}`);
28
+ }
29
+ let [maj, min, pat] = parts;
30
+ if (kind === "major") {
31
+ maj += 1;
32
+ min = 0;
33
+ pat = 0;
34
+ }
35
+ else if (kind === "minor") {
36
+ min += 1;
37
+ pat = 0;
38
+ }
39
+ else {
40
+ pat += 1;
41
+ }
42
+ return `${maj}.${min}.${pat}`;
43
+ }
44
+ /**
45
+ * List what would be published for the current workspace versions.
46
+ */
47
+ export function planDocifyRelease(repoRoot, order = DOCIFY_PUBLISH_ORDER) {
48
+ const packages = order.map((rel) => readPkg(join(repoRoot, rel)));
49
+ const alreadyPublished = [];
50
+ const toPublish = [];
51
+ for (const pkg of packages) {
52
+ const check = spawnSync("npm", ["view", `${pkg.name}@${pkg.version}`, "version"], { encoding: "utf8" });
53
+ if (check.status === 0 && (check.stdout || "").trim()) {
54
+ alreadyPublished.push(`${pkg.name}@${pkg.version}`);
55
+ }
56
+ else {
57
+ toPublish.push(pkg);
58
+ }
59
+ }
60
+ return { packages, alreadyPublished, toPublish };
61
+ }
62
+ /**
63
+ * Bump package.json versions for selected packages. Does not publish.
64
+ */
65
+ export function bumpDocifyPackages(repoRoot, opts = {}) {
66
+ const kind = opts.kind ?? "patch";
67
+ const dirs = opts.packages ?? [...DOCIFY_PUBLISH_ORDER];
68
+ const changed = [];
69
+ for (const rel of dirs) {
70
+ const pkgPath = join(repoRoot, rel);
71
+ if (!existsSync(join(pkgPath, "package.json")))
72
+ continue;
73
+ const pkg = readPkg(pkgPath);
74
+ if (opts.filter && !pkg.name.includes(opts.filter))
75
+ continue;
76
+ const next = bumpSemver(pkg.version, kind);
77
+ const j = JSON.parse(readFileSync(join(pkgPath, "package.json"), "utf8"));
78
+ j.version = next;
79
+ writeFileSync(join(pkgPath, "package.json"), `${JSON.stringify(j, null, 2)}\n`);
80
+ changed.push({ name: pkg.name, from: pkg.version, to: next, dir: rel });
81
+ }
82
+ return { changed };
83
+ }
84
+ function defaultRun(command, args, cwd) {
85
+ const r = spawnSync(command, args, { cwd, encoding: "utf8", stdio: "pipe" });
86
+ return {
87
+ status: r.status,
88
+ stdout: r.stdout ?? "",
89
+ stderr: r.stderr ?? "",
90
+ };
91
+ }
92
+ /**
93
+ * Publish packages in dependency order. Used by `docify release publish` and
94
+ * `scripts/publish-docify.sh`. Agents must not hand-roll an alternate order.
95
+ */
96
+ export function publishDocifyPackagesOrdered(opts) {
97
+ const log = opts.log ?? console.log;
98
+ const run = opts.run ?? defaultRun;
99
+ const order = opts.order ?? DOCIFY_PUBLISH_ORDER;
100
+ const published = [];
101
+ const skipped = [];
102
+ for (const rel of order) {
103
+ const pkgPath = join(opts.repoRoot, rel);
104
+ const pkg = readPkg(pkgPath);
105
+ const id = `${pkg.name}@${pkg.version}`;
106
+ log(`\n=== Publishing ${id} ===`);
107
+ if (opts.skipExisting !== false) {
108
+ const check = run("npm", ["view", `${pkg.name}@${pkg.version}`, "version"], opts.repoRoot);
109
+ if (check.status === 0 && check.stdout.trim()) {
110
+ log(`Already on registry: ${id} — skip`);
111
+ skipped.push(id);
112
+ continue;
113
+ }
114
+ }
115
+ if (opts.assertClean)
116
+ opts.assertClean(pkgPath);
117
+ const j = JSON.parse(readFileSync(join(pkgPath, "package.json"), "utf8"));
118
+ if (j.scripts?.build) {
119
+ const b = run("npm", ["run", "build"], pkgPath);
120
+ if (b.status !== 0) {
121
+ return {
122
+ published,
123
+ skipped,
124
+ failed: `build failed for ${id}: ${b.stderr || b.stdout}`,
125
+ };
126
+ }
127
+ }
128
+ if (j.scripts?.test) {
129
+ const t = run("npm", ["test"], pkgPath);
130
+ if (t.status !== 0) {
131
+ return {
132
+ published,
133
+ skipped,
134
+ failed: `test failed for ${id}: ${t.stderr || t.stdout}`,
135
+ };
136
+ }
137
+ }
138
+ if (opts.dryRun) {
139
+ log(`dry-run: would publish ${id}`);
140
+ published.push(id);
141
+ continue;
142
+ }
143
+ const p = run("npm", ["publish", "--access", "public"], pkgPath);
144
+ if (p.status !== 0) {
145
+ return {
146
+ published,
147
+ skipped,
148
+ failed: `publish failed for ${id}: ${p.stderr || p.stdout}`,
149
+ };
150
+ }
151
+ published.push(id);
152
+ }
153
+ return { published, skipped };
154
+ }
155
+ //# sourceMappingURL=release.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release.js","sourceRoot":"","sources":["../src/release.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import { type ChildProcess } from "node:child_process";
2
+ export type WaitForServerResult = {
3
+ ok: true;
4
+ } | {
5
+ ok: false;
6
+ reason: string;
7
+ };
8
+ /**
9
+ * Poll until a URL answers 2xx. Agents and CLIs should use this instead of
10
+ * sleeping a fixed delay before opening a browser.
11
+ */
12
+ export declare function waitForServer(target: string, opts?: {
13
+ attempts?: number;
14
+ intervalMs?: number;
15
+ }): Promise<WaitForServerResult>;
16
+ /** Open a URL in the user's default browser (macOS / Windows / Linux). */
17
+ export declare function openInBrowser(url: string): void;
18
+ export type DocifyServerHandle = {
19
+ url: string;
20
+ port: number;
21
+ webDir: string;
22
+ child: ChildProcess;
23
+ close(): void;
24
+ };
25
+ export type StartDocifyServerOptions = {
26
+ webDir: string;
27
+ port?: number | string;
28
+ host?: string;
29
+ /** Path to docify-web bin; defaults to resolved package. */
30
+ serveBin?: string;
31
+ };
32
+ /**
33
+ * Start the Docify static server and wait until it answers. Does not open a
34
+ * browser and does not smoke-test assets — use {@link runDocifyDocs} for that.
35
+ */
36
+ export declare function startDocifyServer(opts: StartDocifyServerOptions): Promise<DocifyServerHandle>;
37
+ export type RunDocifyDocsOptions = {
38
+ webDir: string;
39
+ port?: number | string;
40
+ host?: string;
41
+ open?: boolean;
42
+ smoke?: boolean;
43
+ /** Extra smoke paths beyond the required shell assets. */
44
+ smokePaths?: string[];
45
+ serveBin?: string;
46
+ log?: (message: string) => void;
47
+ /** Product label printed to the console. */
48
+ label?: string;
49
+ /** Extra lines printed after the URL (hub routes, hints). */
50
+ hints?: string[];
51
+ };
52
+ export type RunDocifyDocsResult = {
53
+ url: string;
54
+ handle: DocifyServerHandle;
55
+ };
56
+ /**
57
+ * One-command local docs viewer: start server → wait → smoke shell assets →
58
+ * optionally open the browser. This is what product `npm run docs` should call.
59
+ */
60
+ export declare function runDocifyDocs(opts: RunDocifyDocsOptions): Promise<RunDocifyDocsResult>;
61
+ //# sourceMappingURL=serve-site.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve-site.d.ts","sourceRoot":"","sources":["../src/serve-site.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAO9D,MAAM,MAAM,mBAAmB,GAC3B;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAElC;;;GAGG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,EACd,IAAI,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GACpD,OAAO,CAAC,mBAAmB,CAAC,CAkB9B;AAED,0EAA0E;AAC1E,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAY/C;AAmBD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,IAAI,IAAI,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,kBAAkB,CAAC,CA6B7B;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,kBAAkB,CAAC;CAC5B,CAAC;AAEF;;;GAGG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,mBAAmB,CAAC,CA8C9B"}
@@ -0,0 +1,134 @@
1
+ import { spawn } from "node:child_process";
2
+ import { existsSync } from "node:fs";
3
+ import { createRequire } from "node:module";
4
+ import { dirname, join } from "node:path";
5
+ import { fileURLToPath } from "node:url";
6
+ import { REQUIRED_SHELL_ASSETS, smokeTestServedSite } from "./harden-web.js";
7
+ /**
8
+ * Poll until a URL answers 2xx. Agents and CLIs should use this instead of
9
+ * sleeping a fixed delay before opening a browser.
10
+ */
11
+ export async function waitForServer(target, opts = {}) {
12
+ const attempts = opts.attempts ?? 60;
13
+ const intervalMs = opts.intervalMs ?? 150;
14
+ let lastError = "no response";
15
+ for (let i = 0; i < attempts; i += 1) {
16
+ try {
17
+ const res = await fetch(target, { method: "GET" });
18
+ if (res.ok)
19
+ return { ok: true };
20
+ lastError = `HTTP ${res.status}`;
21
+ }
22
+ catch (err) {
23
+ const e = err;
24
+ lastError = e.cause?.message || e.message || String(err);
25
+ }
26
+ await new Promise((r) => setTimeout(r, intervalMs));
27
+ }
28
+ return { ok: false, reason: lastError };
29
+ }
30
+ /** Open a URL in the user's default browser (macOS / Windows / Linux). */
31
+ export function openInBrowser(url) {
32
+ const openCmd = process.platform === "darwin"
33
+ ? "open"
34
+ : process.platform === "win32"
35
+ ? "start"
36
+ : "xdg-open";
37
+ spawn(openCmd, [url], {
38
+ stdio: "ignore",
39
+ shell: process.platform === "win32",
40
+ detached: true,
41
+ }).unref();
42
+ }
43
+ function resolveDocifyWebBin() {
44
+ const require = createRequire(import.meta.url);
45
+ try {
46
+ const pkgJson = require.resolve("@x12i/docify-web/package.json");
47
+ const candidate = join(dirname(pkgJson), "bin", "docify-web.js");
48
+ if (existsSync(candidate))
49
+ return candidate;
50
+ }
51
+ catch {
52
+ // fall through to monorepo sibling
53
+ }
54
+ const here = dirname(fileURLToPath(import.meta.url));
55
+ const sibling = join(here, "..", "..", "docify-web", "bin", "docify-web.js");
56
+ if (existsSync(sibling))
57
+ return sibling;
58
+ throw new Error("Cannot find @x12i/docify-web bin. Install @x12i/docify-web or run from the monorepo.");
59
+ }
60
+ /**
61
+ * Start the Docify static server and wait until it answers. Does not open a
62
+ * browser and does not smoke-test assets — use {@link runDocifyDocs} for that.
63
+ */
64
+ export async function startDocifyServer(opts) {
65
+ const webDir = opts.webDir;
66
+ if (!existsSync(webDir)) {
67
+ throw new Error(`Web tree missing: ${webDir}. Run the docs build first.`);
68
+ }
69
+ const port = Number(opts.port ?? process.env.PORT ?? 4173);
70
+ const host = opts.host ?? "127.0.0.1";
71
+ const serveBin = opts.serveBin ?? resolveDocifyWebBin();
72
+ const url = `http://${host}:${port}/`;
73
+ const child = spawn(process.execPath, [serveBin, "serve", webDir, "--port", String(port)], {
74
+ stdio: "inherit",
75
+ });
76
+ const ready = await waitForServer(url);
77
+ if (!ready.ok) {
78
+ child.kill();
79
+ throw new Error(`Server did not become ready at ${url} — ${ready.reason}`);
80
+ }
81
+ return {
82
+ url,
83
+ port,
84
+ webDir,
85
+ child,
86
+ close() {
87
+ child.kill();
88
+ },
89
+ };
90
+ }
91
+ /**
92
+ * One-command local docs viewer: start server → wait → smoke shell assets →
93
+ * optionally open the browser. This is what product `npm run docs` should call.
94
+ */
95
+ export async function runDocifyDocs(opts) {
96
+ const log = opts.log ?? console.log;
97
+ const handle = await startDocifyServer(opts);
98
+ const { url } = handle;
99
+ if (opts.smoke !== false) {
100
+ const paths = [
101
+ "/",
102
+ ...REQUIRED_SHELL_ASSETS.map((a) => `/${a}`),
103
+ ...(opts.smokePaths ?? []),
104
+ ];
105
+ const smoke = await smokeTestServedSite(url, paths);
106
+ if (!smoke.ok) {
107
+ handle.close();
108
+ const detail = smoke.failures
109
+ .map((f) => ` - ${f.path} → ${f.reason}`)
110
+ .join("\n");
111
+ throw new Error(`Site is serving, but shell assets are missing:\n${detail}\n\nRebuild with: npm run docs -- --rebuild`);
112
+ }
113
+ }
114
+ log("");
115
+ log(opts.label ?? "Docify docs");
116
+ log(` ${url}`);
117
+ for (const hint of opts.hints ?? [
118
+ " Docs hub → /docs",
119
+ " Use cases → /use-cases",
120
+ " Catalog → /catalog",
121
+ " Agents → /agents",
122
+ ]) {
123
+ log(hint);
124
+ }
125
+ log("");
126
+ log(`Assets verified: ${REQUIRED_SHELL_ASSETS.map((a) => `/${a}`).join(", ")}`);
127
+ log("Open pages through this URL — file:// cannot load the stylesheets.");
128
+ log("");
129
+ if (opts.open !== false) {
130
+ openInBrowser(url);
131
+ }
132
+ return { url, handle };
133
+ }
134
+ //# sourceMappingURL=serve-site.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve-site.js","sourceRoot":"","sources":["../src/serve-site.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@x12i/docify-export",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "description": "Build content bundles, open Markdown/indexes/packs, and Cloudflare Pages publishing for x12i docify.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -25,8 +25,8 @@
25
25
  "node": ">=18.0.0"
26
26
  },
27
27
  "dependencies": {
28
- "@x12i/docify-core": "^1.1.0",
29
- "@x12i/docify-render": "^1.1.0"
28
+ "@x12i/docify-core": "^1.1.1",
29
+ "@x12i/docify-render": "^1.1.1"
30
30
  },
31
31
  "peerDependencies": {
32
32
  "@x12i/docify-screenshots": "^1.0.1"