jamdesk 1.0.10 → 1.0.11
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/dist/lib/deps.d.ts.map +1 -1
- package/dist/lib/deps.js +3 -1
- package/dist/lib/deps.js.map +1 -1
- package/package.json +2 -2
- package/vendored/components/navigation/Sidebar.tsx +4 -2
- package/vendored/lib/isr-build-executor.ts +16 -0
- package/vendored/lib/openapi-isr.ts +16 -24
- package/vendored/lib/r2-content.ts +5 -0
- package/vendored/lib/revalidation-trigger.ts +21 -0
package/dist/lib/deps.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../../src/lib/deps.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../../src/lib/deps.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAyGH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAqF1E;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC"}
|
package/dist/lib/deps.js
CHANGED
|
@@ -57,6 +57,8 @@ const REQUIRED_DEPS = {
|
|
|
57
57
|
'katex': '^0.16.28',
|
|
58
58
|
// Diagrams
|
|
59
59
|
'mermaid': '^11.12.2',
|
|
60
|
+
// YAML parsing (for OpenAPI specs)
|
|
61
|
+
'js-yaml': '^4.1.1',
|
|
60
62
|
// Schema validation
|
|
61
63
|
'ajv': '^8.17.1',
|
|
62
64
|
// MDX compilation (for validate command)
|
|
@@ -76,7 +78,7 @@ const REQUIRED_DEPS = {
|
|
|
76
78
|
// Script dependencies (for vendored scripts)
|
|
77
79
|
'fs-extra': '^11.3.3',
|
|
78
80
|
'json5': '^2.2.3',
|
|
79
|
-
'glob': '^13.0.
|
|
81
|
+
'glob': '^13.0.6',
|
|
80
82
|
// TypeScript (needed for Next.js to avoid auto-install breaking symlink)
|
|
81
83
|
'typescript': '^5.3.3',
|
|
82
84
|
'@types/node': '^25.2.0',
|
package/dist/lib/deps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deps.js","sourceRoot":"","sources":["../../src/lib/deps.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"deps.js","sourceRoot":"","sources":["../../src/lib/deps.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,oBAAoB,CAAwB,CAAC;AAExE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC;AACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;AAExD,uCAAuC;AACvC,MAAM,aAAa,GAA2B;IAC5C,oBAAoB;IACpB,MAAM,EAAE,SAAS;IACjB,8CAA8C;IAC9C,6BAA6B,EAAE,SAAS;IACxC,eAAe,EAAE,SAAS;IAC1B,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE,SAAS;IACtB,iBAAiB,EAAE,QAAQ;IAC3B,aAAa,EAAE,QAAQ;IACvB,QAAQ;IACR,mCAAmC,EAAE,QAAQ;IAC7C,oCAAoC,EAAE,QAAQ;IAC9C,qCAAqC,EAAE,QAAQ;IAC/C,mCAAmC,EAAE,QAAQ;IAC7C,gCAAgC,EAAE,QAAQ;IAC1C,cAAc,EAAE,UAAU;IAC1B,6BAA6B;IAC7B,aAAa,EAAE,QAAQ;IACvB,YAAY,EAAE,UAAU;IACxB,SAAS,EAAE,QAAQ;IACnB,qBAAqB;IACrB,cAAc,EAAE,SAAS;IACzB,gCAAgC,EAAE,SAAS;IAC3C,gBAAgB,EAAE,SAAS;IAC3B,OAAO,EAAE,SAAS;IAClB,iBAAiB,EAAE,SAAS;IAC5B,uBAAuB,EAAE,SAAS;IAClC,kBAAkB,EAAE,QAAQ;IAC5B,cAAc,EAAE,QAAQ;IACxB,aAAa,EAAE,QAAQ;IACvB,YAAY,EAAE,QAAQ;IACtB,aAAa,EAAE,QAAQ;IACvB,oBAAoB,EAAE,QAAQ;IAC9B,uBAAuB;IACvB,OAAO,EAAE,UAAU;IACnB,WAAW;IACX,SAAS,EAAE,UAAU;IACrB,mCAAmC;IACnC,SAAS,EAAE,QAAQ;IACnB,oBAAoB;IACpB,KAAK,EAAE,SAAS;IAChB,yCAAyC;IACzC,aAAa,EAAE,QAAQ;IACvB,sDAAsD;IACtD,mBAAmB,EAAE,SAAS;IAC9B,4CAA4C;IAC5C,SAAS,EAAE,SAAS;IACpB,kBAAkB,EAAE,QAAQ;IAC5B,MAAM,EAAE,QAAQ;IAChB,MAAM;IACN,aAAa,EAAE,QAAQ;IACvB,sBAAsB,EAAE,QAAQ;IAChC,yBAAyB,EAAE,SAAS;IACpC,SAAS,EAAE,SAAS;IACpB,cAAc,EAAE,UAAU;IAC1B,6CAA6C;IAC7C,UAAU,EAAE,SAAS;IACrB,OAAO,EAAE,QAAQ;IACjB,MAAM,EAAE,SAAS;IACjB,yEAAyE;IACzE,YAAY,EAAE,QAAQ;IACtB,aAAa,EAAE,SAAS;IACxB,cAAc,EAAE,UAAU;IAC1B,kBAAkB,EAAE,SAAS;IAC7B,qBAAqB,EAAE,SAAS;CACjC,CAAC;AAWF;;;GAGG;AACH,SAAS,WAAW;IAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAClF,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAAgB;IACvD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAC/D,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC;IACvC,MAAM,SAAS,GAAG,WAAW,EAAE,CAAC;IAEhC,0EAA0E;IAC1E,IAAI,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAqB,CAAC;YACnE,MAAM,YAAY,GAAG,GAAG,CAAC,eAAe,KAAK,WAAW,CAAC;YACzD,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC;YAE9C,IAAI,YAAY,IAAI,SAAS,EAAE,CAAC;gBAC9B,IAAI,OAAO;oBAAE,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;gBAC3D,OAAO,QAAQ,CAAC;YAClB,CAAC;YAED,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,MAAM,GAAG,CAAC,YAAY;oBAC1B,CAAC,CAAC,wBAAwB,GAAG,CAAC,eAAe,MAAM,WAAW,EAAE;oBAChE,CAAC,CAAC,cAAc,CAAC;gBACnB,MAAM,CAAC,IAAI,CAAC,0BAA0B,MAAM,GAAG,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,uCAAuC;QACzC,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,6CAA6C,CAAC,CAAC;IAEpE,IAAI,CAAC;QACH,sBAAsB;QACtB,MAAM,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAChC,MAAM,EAAE,CAAC,SAAS,CAAC,eAAe,EAAE;YAClC,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,QAAQ;YACd,eAAe,EAAE,WAAW;YAC5B,SAAS,EAAE,SAAS;YACpB,YAAY,EAAE,aAAa;SAC5B,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAElB,0DAA0D;QAC1D,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE;gBACtF,GAAG,EAAE,WAAW;gBAChB,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;aACpC,CAAC,CAAC;YAEH,mBAAmB;YACnB,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC3B,MAAM,CAAC,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC,CAAC;YAC7D,CAAC,EAAE,MAAM,CAAC,CAAC;YAEX,2CAA2C;YAC3C,IAAI,YAAY,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,OAAO,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;gBAClC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;oBACpC,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClC,CAAC,CAAC,CAAC;YACL,CAAC;YAED,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC9B,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;oBACf,OAAO,EAAE,CAAC;gBACZ,CAAC;qBAAM,CAAC;oBACN,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/D,MAAM,CAAC,IAAI,KAAK,CAAC,gCAAgC,IAAI,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC;gBACtE,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC7B,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtB,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;QACvC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC5C,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAC7C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jamdesk",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.11",
|
|
4
4
|
"description": "CLI for Jamdesk — build, preview, and deploy documentation sites from MDX. Dev server with hot reload, 50+ components, OpenAPI support, AI search, and Mintlify migration",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jamdesk",
|
|
@@ -99,7 +99,7 @@
|
|
|
99
99
|
"commander": "^14.0.3",
|
|
100
100
|
"fastest-levenshtein": "^1.0.16",
|
|
101
101
|
"fs-extra": "^11.2.0",
|
|
102
|
-
"glob": "^13.0.
|
|
102
|
+
"glob": "^13.0.6",
|
|
103
103
|
"gray-matter": "^4.0.3",
|
|
104
104
|
"json5": "^2.2.3",
|
|
105
105
|
"ora": "^9.3.0"
|
|
@@ -156,9 +156,11 @@ export function Sidebar({ config, layout = 'header-logo', tabsPosition: tabsPosi
|
|
|
156
156
|
const showLogoImage = logoSrc && !logoError;
|
|
157
157
|
|
|
158
158
|
// Resolve navigation using the new resolver
|
|
159
|
+
// Use the actual pathname — never fall back to '/docs' which resolves the wrong
|
|
160
|
+
// active tab and causes the sidebar to highlight "Introduction" instead of the current page
|
|
159
161
|
const resolvedNav = useMemo(() => {
|
|
160
|
-
return resolveNavigation(config, effectivePathname || '/
|
|
161
|
-
}, [config, effectivePathname]);
|
|
162
|
+
return resolveNavigation(config, effectivePathname || pathname || '/');
|
|
163
|
+
}, [config, effectivePathname, pathname]);
|
|
162
164
|
|
|
163
165
|
// Track if this is the initial mount (for resetting expanded state on refresh)
|
|
164
166
|
const isInitialMount = useRef(true);
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* This module provides testable helper functions used by build.ts.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
+
import fs from 'fs';
|
|
10
11
|
import glob from 'fast-glob';
|
|
11
12
|
|
|
12
13
|
/**
|
|
@@ -82,6 +83,19 @@ export async function collectSnippetFiles(projectDir: string): Promise<string[]>
|
|
|
82
83
|
return files;
|
|
83
84
|
}
|
|
84
85
|
|
|
86
|
+
/** Collect OpenAPI spec files from project directory. Returns paths relative to openapi/. */
|
|
87
|
+
export async function collectOpenApiFiles(projectDir: string): Promise<string[]> {
|
|
88
|
+
const openapiDir = `${projectDir}/openapi`;
|
|
89
|
+
if (!fs.existsSync(openapiDir)) return [];
|
|
90
|
+
|
|
91
|
+
const files = await glob('**/*.{yaml,yml,json}', {
|
|
92
|
+
cwd: openapiDir,
|
|
93
|
+
ignore: ['node_modules/**'],
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
return files;
|
|
97
|
+
}
|
|
98
|
+
|
|
85
99
|
/**
|
|
86
100
|
* Options for getting project base URL.
|
|
87
101
|
*/
|
|
@@ -137,6 +151,8 @@ export interface IsrBuildResult {
|
|
|
137
151
|
assetCount: number;
|
|
138
152
|
/** Number of snippets uploaded */
|
|
139
153
|
snippetCount: number;
|
|
154
|
+
/** Number of OpenAPI spec files uploaded */
|
|
155
|
+
openapiCount: number;
|
|
140
156
|
/** Paths that were revalidated */
|
|
141
157
|
revalidatedPaths: string[];
|
|
142
158
|
/** Build duration in milliseconds */
|
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
* with caching for ISR mode rendering.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import
|
|
8
|
+
import yaml from 'js-yaml';
|
|
9
|
+
import SwaggerParser from '@apidevtools/swagger-parser';
|
|
10
|
+
import { fetchOpenApiFile } from './r2-content';
|
|
9
11
|
|
|
10
12
|
interface OpenApiSpec {
|
|
11
13
|
openapi?: string;
|
|
@@ -19,12 +21,7 @@ interface OpenApiSpec {
|
|
|
19
21
|
const specCache = new Map<string, { spec: OpenApiSpec; timestamp: number }>();
|
|
20
22
|
const CACHE_TTL = 600_000; // 10 minutes
|
|
21
23
|
|
|
22
|
-
/**
|
|
23
|
-
* Fetch OpenAPI spec from external URL.
|
|
24
|
-
*
|
|
25
|
-
* @param url - Full URL to OpenAPI spec
|
|
26
|
-
* @returns Parsed OpenAPI specification
|
|
27
|
-
*/
|
|
24
|
+
/** Fetch OpenAPI spec from external URL. */
|
|
28
25
|
export async function fetchOpenApiSpec(url: string): Promise<OpenApiSpec> {
|
|
29
26
|
// Check cache
|
|
30
27
|
const cached = specCache.get(url);
|
|
@@ -51,9 +48,8 @@ export async function fetchOpenApiSpec(url: string): Promise<OpenApiSpec> {
|
|
|
51
48
|
/**
|
|
52
49
|
* Fetch OpenAPI spec from R2 (project-local spec file).
|
|
53
50
|
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
* @returns Parsed OpenAPI specification
|
|
51
|
+
* Handles both YAML and JSON formats, and resolves all internal $ref
|
|
52
|
+
* references (matching the static mode behavior of SwaggerParser.validate).
|
|
57
53
|
*/
|
|
58
54
|
export async function fetchOpenApiSpecFromR2(
|
|
59
55
|
projectSlug: string,
|
|
@@ -67,8 +63,14 @@ export async function fetchOpenApiSpecFromR2(
|
|
|
67
63
|
return cached.spec;
|
|
68
64
|
}
|
|
69
65
|
|
|
70
|
-
const content = await
|
|
71
|
-
|
|
66
|
+
const content = await fetchOpenApiFile(projectSlug, specPath);
|
|
67
|
+
|
|
68
|
+
// Parse YAML or JSON into a plain object
|
|
69
|
+
const isYaml = /\.ya?ml$/i.test(specPath);
|
|
70
|
+
const raw = isYaml ? yaml.load(content) : JSON.parse(content);
|
|
71
|
+
|
|
72
|
+
// Dereference all $ref pointers (matching static mode's SwaggerParser.validate behavior)
|
|
73
|
+
const spec = await SwaggerParser.dereference(raw as any) as unknown as OpenApiSpec;
|
|
72
74
|
|
|
73
75
|
// Cache it
|
|
74
76
|
specCache.set(cacheKey, { spec, timestamp: Date.now() });
|
|
@@ -79,10 +81,6 @@ export async function fetchOpenApiSpecFromR2(
|
|
|
79
81
|
/**
|
|
80
82
|
* Resolve OpenAPI spec from config reference.
|
|
81
83
|
* Handles both URLs and local file references.
|
|
82
|
-
*
|
|
83
|
-
* @param projectSlug - Project identifier
|
|
84
|
-
* @param specRef - URL or local path to spec
|
|
85
|
-
* @returns Parsed OpenAPI specification
|
|
86
84
|
*/
|
|
87
85
|
export async function resolveOpenApiSpec(
|
|
88
86
|
projectSlug: string,
|
|
@@ -96,11 +94,7 @@ export async function resolveOpenApiSpec(
|
|
|
96
94
|
return fetchOpenApiSpecFromR2(projectSlug, specRef);
|
|
97
95
|
}
|
|
98
96
|
|
|
99
|
-
/**
|
|
100
|
-
* Clear OpenAPI cache.
|
|
101
|
-
*
|
|
102
|
-
* @param projectSlug - Optional project to clear. If not provided, clears all.
|
|
103
|
-
*/
|
|
97
|
+
/** Clear OpenAPI cache. If projectSlug is provided, clears only that project. */
|
|
104
98
|
export function clearOpenApiCache(projectSlug?: string): void {
|
|
105
99
|
if (projectSlug) {
|
|
106
100
|
for (const key of specCache.keys()) {
|
|
@@ -113,9 +107,7 @@ export function clearOpenApiCache(projectSlug?: string): void {
|
|
|
113
107
|
}
|
|
114
108
|
}
|
|
115
109
|
|
|
116
|
-
/**
|
|
117
|
-
* Get the current size of the OpenAPI spec cache.
|
|
118
|
-
*/
|
|
110
|
+
/** Get the current size of the OpenAPI spec cache. */
|
|
119
111
|
export function getOpenApiCacheSize(): number {
|
|
120
112
|
return specCache.size;
|
|
121
113
|
}
|
|
@@ -36,6 +36,10 @@ export async function fetchSnippet(_projectSlug: string, _snippetPath: string):
|
|
|
36
36
|
throw new Error('R2 snippet fetching not available in dev mode');
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
+
export async function fetchOpenApiFile(_projectSlug: string, _specPath: string): Promise<string> {
|
|
40
|
+
throw new Error('R2 OpenAPI fetching not available in dev mode');
|
|
41
|
+
}
|
|
42
|
+
|
|
39
43
|
export async function listAllPaths(_projectSlug: string): Promise<string[]> { return []; }
|
|
40
44
|
|
|
41
45
|
export interface Manifest {
|
|
@@ -44,6 +48,7 @@ export interface Manifest {
|
|
|
44
48
|
projectSlug?: string;
|
|
45
49
|
files: Record<string, { hash: string; size?: number }>;
|
|
46
50
|
snippets?: Record<string, { hash: string }>;
|
|
51
|
+
openapi?: Record<string, { hash: string }>;
|
|
47
52
|
configHash?: string;
|
|
48
53
|
}
|
|
49
54
|
|
|
@@ -99,6 +99,7 @@ async function revalidateProxy(secret: string, projectSlug: string): Promise<voi
|
|
|
99
99
|
|
|
100
100
|
export interface Manifest {
|
|
101
101
|
files: Record<string, { hash: string }>;
|
|
102
|
+
openapi?: Record<string, { hash: string }>;
|
|
102
103
|
}
|
|
103
104
|
|
|
104
105
|
/** Compare manifests and return paths that changed (without .mdx extension). */
|
|
@@ -128,9 +129,29 @@ export function getChangedPaths(
|
|
|
128
129
|
}
|
|
129
130
|
}
|
|
130
131
|
|
|
132
|
+
// When only OpenAPI specs changed (no MDX changes), revalidate all pages
|
|
133
|
+
// because we can't know which pages reference the changed spec
|
|
134
|
+
if (changed.length === 0 && hasOpenapiChanges(oldManifest, newManifest)) {
|
|
135
|
+
return Object.keys(newManifest.files).map(p => p.replace('.mdx', ''));
|
|
136
|
+
}
|
|
137
|
+
|
|
131
138
|
return changed;
|
|
132
139
|
}
|
|
133
140
|
|
|
141
|
+
/** Check if any OpenAPI spec hashes changed between manifests. */
|
|
142
|
+
function hasOpenapiChanges(oldManifest: Manifest, newManifest: Manifest): boolean {
|
|
143
|
+
const oldSpecs = oldManifest.openapi || {};
|
|
144
|
+
const newSpecs = newManifest.openapi || {};
|
|
145
|
+
|
|
146
|
+
for (const [path, info] of Object.entries(newSpecs)) {
|
|
147
|
+
if (!oldSpecs[path] || oldSpecs[path].hash !== info.hash) return true;
|
|
148
|
+
}
|
|
149
|
+
for (const path of Object.keys(oldSpecs)) {
|
|
150
|
+
if (!(path in newSpecs)) return true;
|
|
151
|
+
}
|
|
152
|
+
return false;
|
|
153
|
+
}
|
|
154
|
+
|
|
134
155
|
/** Trigger revalidation for changed files between manifests. */
|
|
135
156
|
export async function triggerRevalidationForChanges(
|
|
136
157
|
projectSlug: string,
|