blume 1.7.1 → 1.7.3
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-0qymqwzz.js +164 -0
- package/dist/cli/chunk-0qymqwzz.js.map +15 -0
- package/dist/cli/{chunk-8gnpdsn1.js → chunk-0xjyb285.js} +2 -2
- package/dist/cli/{chunk-12dzsn9b.js → chunk-1jefwnfs.js} +82 -81
- package/dist/cli/{chunk-12dzsn9b.js.map → chunk-1jefwnfs.js.map} +3 -3
- 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-jtb45atp.js → chunk-3r45185y.js} +10 -12
- package/dist/cli/{chunk-jtb45atp.js.map → chunk-3r45185y.js.map} +2 -2
- package/dist/cli/{chunk-6mq7qkve.js → chunk-4x36ddpw.js} +18 -24
- package/dist/cli/{chunk-6mq7qkve.js.map → chunk-4x36ddpw.js.map} +2 -2
- package/dist/cli/{chunk-he2zfgah.js → chunk-5093q3n7.js} +22 -30
- package/dist/cli/{chunk-he2zfgah.js.map → chunk-5093q3n7.js.map} +2 -2
- package/dist/cli/{chunk-k0v1f8bb.js → chunk-5g0w1e2c.js} +21 -28
- package/dist/cli/{chunk-k0v1f8bb.js.map → chunk-5g0w1e2c.js.map} +2 -2
- package/dist/cli/{chunk-5gfw0q4j.js → chunk-5qk08vmp.js} +26 -34
- package/dist/cli/{chunk-5gfw0q4j.js.map → chunk-5qk08vmp.js.map} +2 -2
- package/dist/cli/{chunk-r99hynxh.js → chunk-7s8hm3b6.js} +41 -9
- package/dist/cli/{chunk-r99hynxh.js.map → chunk-7s8hm3b6.js.map} +3 -3
- package/dist/cli/{chunk-vyqj481z.js → chunk-8cjtbafj.js} +68 -66
- package/dist/cli/chunk-8cjtbafj.js.map +13 -0
- package/dist/cli/{chunk-aqjvpd03.js → chunk-97r59kpr.js} +27 -33
- package/dist/cli/{chunk-aqjvpd03.js.map → chunk-97r59kpr.js.map} +2 -2
- package/dist/cli/{chunk-np8dmfb0.js → chunk-ahnw3kxw.js} +26 -33
- package/dist/cli/{chunk-np8dmfb0.js.map → chunk-ahnw3kxw.js.map} +2 -2
- package/dist/cli/{chunk-j5f2wrj5.js → chunk-b27xqwn9.js} +10 -15
- package/dist/cli/{chunk-j5f2wrj5.js.map → chunk-b27xqwn9.js.map} +2 -2
- package/dist/cli/{chunk-kmx2mydj.js → chunk-bf6bt1xt.js} +8 -8
- package/dist/cli/{chunk-kmx2mydj.js.map → chunk-bf6bt1xt.js.map} +1 -1
- package/dist/cli/{chunk-90pdhkpm.js → chunk-bvwwhd84.js} +23 -32
- package/dist/cli/{chunk-90pdhkpm.js.map → chunk-bvwwhd84.js.map} +2 -2
- package/dist/cli/{chunk-mfm4sjwx.js → chunk-cjtn640a.js} +32 -43
- package/dist/cli/{chunk-mfm4sjwx.js.map → chunk-cjtn640a.js.map} +2 -2
- package/dist/cli/{chunk-pxj10x8y.js → chunk-ct47dqpx.js} +14 -3
- package/dist/cli/{chunk-pxj10x8y.js.map → chunk-ct47dqpx.js.map} +4 -3
- package/dist/cli/{chunk-x66c5yjn.js → chunk-dwgcp5sm.js} +2 -2
- package/dist/cli/{chunk-4trphnvy.js → chunk-e7f42gdj.js} +10 -13
- package/dist/cli/{chunk-4trphnvy.js.map → chunk-e7f42gdj.js.map} +2 -2
- package/dist/cli/{chunk-82atea4k.js → chunk-esphfr8p.js} +14 -18
- package/dist/cli/{chunk-82atea4k.js.map → chunk-esphfr8p.js.map} +2 -2
- package/dist/cli/{chunk-q56730e0.js → chunk-ex56aa81.js} +53 -53
- package/dist/cli/chunk-ex56aa81.js.map +13 -0
- package/dist/cli/{chunk-ywn7t0pb.js → chunk-garjf5z9.js} +3 -3
- package/dist/cli/{chunk-ev67ycx0.js → chunk-jq5n4avg.js} +1 -1
- package/dist/cli/{chunk-ka5k7cz9.js → chunk-js7saxwm.js} +35 -39
- package/dist/cli/{chunk-ka5k7cz9.js.map → chunk-js7saxwm.js.map} +4 -6
- package/dist/cli/{chunk-x1wvw7a8.js → chunk-k79xp7av.js} +168 -208
- package/dist/cli/chunk-k79xp7av.js.map +39 -0
- package/dist/cli/{chunk-3r94j3tc.js → chunk-nn13znc2.js} +2 -2
- package/dist/cli/{chunk-4ae4f395.js → chunk-ps4m1xh4.js} +60 -35
- package/dist/cli/chunk-ps4m1xh4.js.map +15 -0
- package/dist/cli/{chunk-wd27zjcz.js → chunk-q4rae3bg.js} +1 -1
- package/dist/cli/{chunk-pdwg3q9g.js → chunk-rqy0s5wh.js} +21 -30
- package/dist/cli/{chunk-pdwg3q9g.js.map → chunk-rqy0s5wh.js.map} +2 -2
- package/dist/cli/{chunk-52cwcqvp.js → chunk-rz9jmfhz.js} +15 -24
- package/dist/cli/{chunk-52cwcqvp.js.map → chunk-rz9jmfhz.js.map} +2 -2
- package/dist/cli/{chunk-8p3xe5jv.js → chunk-vacwm2hv.js} +3 -3
- package/dist/cli/{chunk-cbjnx4s8.js → chunk-vh9w1sgp.js} +1 -1
- package/dist/cli/{chunk-sbdqrjbb.js → chunk-vrfp10qk.js} +1 -1
- package/dist/cli/{chunk-h9ekmtz7.js → chunk-yg63d42r.js} +28 -35
- package/dist/cli/{chunk-h9ekmtz7.js.map → chunk-yg63d42r.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/core/config-input.d.ts +59 -0
- package/dist/types/core/data.d.ts +2 -0
- package/dist/types/core/schema.d.ts +47 -3
- package/dist/types/core/types.d.ts +5 -0
- package/docs/configuration/ask-ai.mdx +61 -0
- package/docs/configuration/index.mdx +3 -1
- package/docs/content/navigation.mdx +3 -0
- package/docs/content/syntax.mdx +10 -0
- package/docs/discoverability/agent-discovery.mdx +82 -1
- package/docs/discoverability/index.mdx +1 -1
- package/docs/discoverability/llms-txt.mdx +1 -1
- package/docs/reference/frontmatter.mdx +2 -0
- package/package.json +1 -1
- package/src/ai/agent-readability.ts +5 -0
- package/src/ai/ai-catalog.ts +241 -0
- package/src/ai/cors.ts +87 -0
- package/src/ai/link-headers.ts +12 -0
- package/src/ai/llms.ts +6 -0
- package/src/ai/mcp/discovery.ts +1 -1
- package/src/astro/generate.ts +4 -0
- package/src/astro/templates.ts +88 -23
- package/src/cli/commands/build.ts +3 -1
- package/src/components/islands/hooks.ts +50 -1
- package/src/components/layout/NavTree.astro +75 -66
- package/src/components/layout/RootLayout.astro +28 -2
- package/src/components/layout/analytics-client.ts +36 -7
- package/src/components/layout/nav-utils.ts +17 -3
- package/src/core/adapter.ts +61 -0
- package/src/core/config-input.ts +60 -0
- package/src/core/data.ts +2 -0
- package/src/core/navigation.ts +22 -3
- package/src/core/schema.ts +88 -0
- package/src/core/types.ts +5 -0
- package/src/deploy/artifacts.ts +12 -1
- package/src/deploy/headers.ts +6 -0
- package/src/deploy/vercel-negotiation.ts +25 -2
- package/src/registry/eject.ts +2 -0
- package/src/search/build.ts +25 -3
- package/src/theme/entry.ts +23 -0
- package/dist/cli/chunk-2aj8ddew.js +0 -72
- package/dist/cli/chunk-2aj8ddew.js.map +0 -10
- package/dist/cli/chunk-4ae4f395.js.map +0 -15
- 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-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-q56730e0.js.map +0 -13
- package/dist/cli/chunk-qvvpnwaz.js +0 -69
- package/dist/cli/chunk-qvvpnwaz.js.map +0 -11
- package/dist/cli/chunk-vt8fgygt.js +0 -23
- package/dist/cli/chunk-vt8fgygt.js.map +0 -10
- package/dist/cli/chunk-vxv4x1n8.js +0 -17
- package/dist/cli/chunk-vxv4x1n8.js.map +0 -10
- package/dist/cli/chunk-vyqj481z.js.map +0 -13
- package/dist/cli/chunk-x1wvw7a8.js.map +0 -40
- /package/dist/cli/{chunk-8gnpdsn1.js.map → chunk-0xjyb285.js.map} +0 -0
- /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-x66c5yjn.js.map → chunk-dwgcp5sm.js.map} +0 -0
- /package/dist/cli/{chunk-ywn7t0pb.js.map → chunk-garjf5z9.js.map} +0 -0
- /package/dist/cli/{chunk-ev67ycx0.js.map → chunk-jq5n4avg.js.map} +0 -0
- /package/dist/cli/{chunk-3r94j3tc.js.map → chunk-nn13znc2.js.map} +0 -0
- /package/dist/cli/{chunk-wd27zjcz.js.map → chunk-q4rae3bg.js.map} +0 -0
- /package/dist/cli/{chunk-8p3xe5jv.js.map → chunk-vacwm2hv.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
|
@@ -1,131 +1,127 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
renderRssFeed
|
|
9
|
-
} from "./chunk-ka5k7cz9.js";
|
|
3
|
+
packageRoot,
|
|
4
|
+
getBlumeVersion,
|
|
5
|
+
BlumeError,
|
|
6
|
+
enrichDiagnostic
|
|
7
|
+
} from "./index.js";
|
|
10
8
|
import {
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
resolveReferences,
|
|
10
|
+
referenceRoutes,
|
|
11
|
+
hasScalarReferences,
|
|
12
|
+
builtinProxyKinds,
|
|
13
|
+
needsPlaygroundProxy,
|
|
14
|
+
GOOGLE_FONTS,
|
|
15
|
+
isFontSlug,
|
|
16
|
+
fontLocaleCodes,
|
|
17
|
+
buildFontsCss,
|
|
18
|
+
configuredFonts,
|
|
19
|
+
repoUrl,
|
|
20
|
+
editBaseUrl,
|
|
21
|
+
apiUrl,
|
|
22
|
+
EN_UI,
|
|
23
|
+
resolveUIStrings
|
|
24
|
+
} from "./chunk-7s8hm3b6.js";
|
|
13
25
|
import {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
26
|
+
resolveFallbackLocale,
|
|
27
|
+
validateSearchPopularIcons,
|
|
28
|
+
validateNavTargets,
|
|
29
|
+
buildIncludeGraph,
|
|
30
|
+
apiNamePhrase,
|
|
31
|
+
isOpenApiSource,
|
|
32
|
+
resolveDocsCollection
|
|
33
|
+
} from "./chunk-1jefwnfs.js";
|
|
19
34
|
import {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
} from "./chunk-
|
|
35
|
+
siteRoot,
|
|
36
|
+
absoluteUrl
|
|
37
|
+
} from "./chunk-ct47dqpx.js";
|
|
23
38
|
import {
|
|
24
|
-
|
|
25
|
-
|
|
39
|
+
buildRssFeeds,
|
|
40
|
+
renderRssFeed,
|
|
41
|
+
buildRawMarkdown,
|
|
42
|
+
markdownRoutePaths,
|
|
43
|
+
buildSearchDocuments,
|
|
44
|
+
buildMcpData
|
|
45
|
+
} from "./chunk-js7saxwm.js";
|
|
26
46
|
import {
|
|
27
|
-
|
|
28
|
-
|
|
47
|
+
OPENAPI_PATH,
|
|
48
|
+
API_PAGES_PATH,
|
|
49
|
+
API_PAGE_PATH,
|
|
50
|
+
API_NAVIGATION_PATH,
|
|
51
|
+
API_SEARCH_PATH,
|
|
52
|
+
buildMcpDiscovery,
|
|
53
|
+
buildMcpServerCard,
|
|
54
|
+
hasAiCatalog
|
|
55
|
+
} from "./chunk-0qymqwzz.js";
|
|
29
56
|
import {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
57
|
+
rewriteRelativeImages,
|
|
58
|
+
collectContentAssets
|
|
59
|
+
} from "./chunk-bf6bt1xt.js";
|
|
60
|
+
import {
|
|
61
|
+
resolveAskBackend,
|
|
35
62
|
askBackendRuntimeDep,
|
|
36
|
-
askComponentTemplate,
|
|
37
|
-
askEndpointTemplate,
|
|
38
|
-
astroConfigTemplate,
|
|
39
63
|
buildHomeLinkHeader,
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
64
|
+
publishRuntimeModules,
|
|
65
|
+
runtimeDependencies,
|
|
66
|
+
astroConfigTemplate,
|
|
67
|
+
stagedContentDir,
|
|
43
68
|
contentConfigTemplate,
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
examplesPageTemplate,
|
|
69
|
+
askEndpointTemplate,
|
|
70
|
+
askComponentTemplate,
|
|
71
|
+
searchEndpointTemplate,
|
|
48
72
|
featuresTemplate,
|
|
49
|
-
|
|
50
|
-
islandWrapperTemplate,
|
|
51
|
-
mcpEndpointTemplate,
|
|
52
|
-
mcpPageFile,
|
|
73
|
+
searchClientTemplate,
|
|
53
74
|
mixedbreadSearchEndpointTemplate,
|
|
54
|
-
navFragmentTemplate,
|
|
55
|
-
notFoundJsonTemplate,
|
|
56
|
-
notFoundMarkdownTemplate,
|
|
57
|
-
notFoundPageTemplate,
|
|
58
|
-
ogEndpointTemplate,
|
|
59
|
-
playgroundProxyTemplate,
|
|
60
|
-
publishRuntimeModules,
|
|
61
75
|
rawMarkdownEndpointTemplate,
|
|
62
|
-
|
|
76
|
+
contentAssetsEndpointTemplate,
|
|
77
|
+
mcpPageFile,
|
|
78
|
+
mcpEndpointTemplate,
|
|
79
|
+
playgroundProxyTemplate,
|
|
80
|
+
staticJsonEndpointTemplate,
|
|
63
81
|
rssEndpointTemplate,
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
runtimeTsconfigTemplate,
|
|
82
|
+
navFragmentTemplate,
|
|
83
|
+
ogEndpointTemplate,
|
|
67
84
|
scalarReferenceTemplate,
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
85
|
+
catchAllPageTemplate,
|
|
86
|
+
changelogIndexTemplate,
|
|
87
|
+
notFoundPageTemplate,
|
|
88
|
+
notFoundMarkdownTemplate,
|
|
89
|
+
notFoundJsonTemplate,
|
|
90
|
+
apiPagesIndexTemplate,
|
|
91
|
+
apiPageTemplate,
|
|
92
|
+
apiNavigationTemplate,
|
|
93
|
+
apiSearchTemplate,
|
|
94
|
+
apiNotFoundTemplate,
|
|
95
|
+
islandWrapperTemplate,
|
|
96
|
+
islandMapTemplate,
|
|
97
|
+
exampleSlug,
|
|
98
|
+
exampleWrapperTemplate,
|
|
99
|
+
exampleMapTemplate,
|
|
100
|
+
examplesPageTemplate,
|
|
101
|
+
runtimePackageTemplate,
|
|
102
|
+
runtimeTsconfigTemplate
|
|
103
|
+
} from "./chunk-ps4m1xh4.js";
|
|
73
104
|
import {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
} from "./chunk-qvvpnwaz.js";
|
|
105
|
+
discoverPages,
|
|
106
|
+
routeIsTaken,
|
|
107
|
+
hasGeneratedChangelog,
|
|
108
|
+
customOgRoutes
|
|
109
|
+
} from "./chunk-vrfp10qk.js";
|
|
80
110
|
import {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
111
|
+
writeTextAtomic
|
|
112
|
+
} from "./chunk-jq5n4avg.js";
|
|
113
|
+
import {
|
|
114
|
+
registry
|
|
115
|
+
} from "./chunk-nn13znc2.js";
|
|
84
116
|
import {
|
|
85
117
|
searchProviderMeta,
|
|
86
118
|
servesStaticIndex
|
|
87
|
-
} from "./chunk-
|
|
88
|
-
import {
|
|
89
|
-
apiNamePhrase,
|
|
90
|
-
buildIncludeGraph,
|
|
91
|
-
isOpenApiSource,
|
|
92
|
-
resolveDocsCollection,
|
|
93
|
-
resolveFallbackLocale,
|
|
94
|
-
validateNavTargets,
|
|
95
|
-
validateSearchPopularIcons
|
|
96
|
-
} from "./chunk-12dzsn9b.js";
|
|
97
|
-
import {
|
|
98
|
-
EN_UI,
|
|
99
|
-
GOOGLE_FONTS,
|
|
100
|
-
apiUrl,
|
|
101
|
-
buildFontsCss,
|
|
102
|
-
builtinProxyKinds,
|
|
103
|
-
configuredFonts,
|
|
104
|
-
editBaseUrl,
|
|
105
|
-
fontLocaleCodes,
|
|
106
|
-
hasScalarReferences,
|
|
107
|
-
isFontSlug,
|
|
108
|
-
needsPlaygroundProxy,
|
|
109
|
-
referenceRoutes,
|
|
110
|
-
repoUrl,
|
|
111
|
-
resolveReferences,
|
|
112
|
-
resolveUIStrings
|
|
113
|
-
} from "./chunk-r99hynxh.js";
|
|
119
|
+
} from "./chunk-q4rae3bg.js";
|
|
114
120
|
import {
|
|
115
|
-
normalizeBasePath,
|
|
116
121
|
trimChar,
|
|
122
|
+
normalizeBasePath,
|
|
117
123
|
withBasePath
|
|
118
|
-
} from "./chunk-
|
|
119
|
-
import {
|
|
120
|
-
getBlumeVersion
|
|
121
|
-
} from "./chunk-4xyggvgf.js";
|
|
122
|
-
import {
|
|
123
|
-
packageRoot
|
|
124
|
-
} from "./chunk-6kzzpsx8.js";
|
|
125
|
-
import {
|
|
126
|
-
BlumeError,
|
|
127
|
-
enrichDiagnostic
|
|
128
|
-
} from "./chunk-ey89bjj1.js";
|
|
124
|
+
} from "./chunk-2mzebbbz.js";
|
|
129
125
|
|
|
130
126
|
// src/ai/web-bot-auth.ts
|
|
131
127
|
var SIGNATURES_DIRECTORY_PATH = "/.well-known/http-message-signatures-directory";
|
|
@@ -135,10 +131,10 @@ var SIGNATURES_DIRECTORY_TYPE = "application/http-message-signatures-directory+j
|
|
|
135
131
|
import { join as join3, relative, resolve as resolve2 } from "pathe";
|
|
136
132
|
|
|
137
133
|
// src/deploy/artifacts.ts
|
|
138
|
-
import { dirname, join as join2, resolve } from "pathe";
|
|
134
|
+
import { dirname as dirname2, join as join2, resolve } from "pathe";
|
|
139
135
|
|
|
140
136
|
// src/search/build.ts
|
|
141
|
-
import { join } from "pathe";
|
|
137
|
+
import { dirname, join } from "pathe";
|
|
142
138
|
|
|
143
139
|
// src/deploy/sitemap.ts
|
|
144
140
|
import { escape as escapeXml } from "html-escaper";
|
|
@@ -223,7 +219,7 @@ import {
|
|
|
223
219
|
rm,
|
|
224
220
|
writeFile
|
|
225
221
|
} from "node:fs/promises";
|
|
226
|
-
import { dirname as
|
|
222
|
+
import { dirname as dirname3, join as join4 } from "pathe";
|
|
227
223
|
var ogCacheDir = (context) => existsSync(join4(context.root, "node_modules")) ? join4(context.root, "node_modules", ".cache", "blume", "og") : join4(context.outDir, ".cache", "og");
|
|
228
224
|
var REGISTRY_KEY2 = Symbol.for("blume.og-cache");
|
|
229
225
|
var registry3 = () => {
|
|
@@ -267,7 +263,7 @@ import { pathToFileURL } from "node:url";
|
|
|
267
263
|
import pMap3 from "p-map";
|
|
268
264
|
import {
|
|
269
265
|
basename as basename2,
|
|
270
|
-
dirname as
|
|
266
|
+
dirname as dirname7,
|
|
271
267
|
isAbsolute as isAbsolute6,
|
|
272
268
|
join as join11,
|
|
273
269
|
normalize,
|
|
@@ -809,68 +805,6 @@ var buildAskData = async (project) => {
|
|
|
809
805
|
};
|
|
810
806
|
};
|
|
811
807
|
|
|
812
|
-
// src/ai/mcp/discovery.ts
|
|
813
|
-
var serverUrl2 = (input) => {
|
|
814
|
-
const path = withBasePath(input.base, input.route);
|
|
815
|
-
return input.site ? absoluteUrl(input.site, path) : path;
|
|
816
|
-
};
|
|
817
|
-
var buildMcpDiscovery = (input) => ({
|
|
818
|
-
servers: [
|
|
819
|
-
{
|
|
820
|
-
name: input.name,
|
|
821
|
-
transport: "streamable-http",
|
|
822
|
-
url: serverUrl2(input)
|
|
823
|
-
}
|
|
824
|
-
]
|
|
825
|
-
});
|
|
826
|
-
var SERVER_CARD_SCHEMA = "https://static.modelcontextprotocol.io/schemas/v1/server-card.schema.json";
|
|
827
|
-
var CARD_TEXT_MAX = 100;
|
|
828
|
-
var truncate = (text) => text.length > CARD_TEXT_MAX ? `${text.slice(0, CARD_TEXT_MAX - 1)}…` : text;
|
|
829
|
-
var NON_ASCII_SLUG = /[^a-z0-9]+/gu;
|
|
830
|
-
var COMBINING_MARKS = /\p{M}+/gu;
|
|
831
|
-
var asciiSlugify = (text) => trimChar(text.normalize("NFKD").replace(COMBINING_MARKS, "").toLowerCase().replace(NON_ASCII_SLUG, "-"), "-");
|
|
832
|
-
var reverseDnsName = (input) => {
|
|
833
|
-
let namespace = "localhost";
|
|
834
|
-
if (input.site) {
|
|
835
|
-
try {
|
|
836
|
-
namespace = new URL(input.site).hostname.split(".").toReversed().join(".");
|
|
837
|
-
} catch {}
|
|
838
|
-
}
|
|
839
|
-
return `${namespace}/${asciiSlugify(input.name) || "docs"}`;
|
|
840
|
-
};
|
|
841
|
-
var HTTP_URL = /^https?:\/\//u;
|
|
842
|
-
var buildMcpServerCard = (input) => {
|
|
843
|
-
const url = serverUrl2(input);
|
|
844
|
-
const card = {
|
|
845
|
-
$schema: SERVER_CARD_SCHEMA,
|
|
846
|
-
capabilities: {
|
|
847
|
-
resources: { listChanged: false, subscribe: false },
|
|
848
|
-
tools: { listChanged: false }
|
|
849
|
-
},
|
|
850
|
-
description: truncate(`Model Context Protocol server for the ${input.name} documentation.`),
|
|
851
|
-
name: reverseDnsName(input),
|
|
852
|
-
serverInfo: { name: input.name, version: input.version },
|
|
853
|
-
title: truncate(input.name),
|
|
854
|
-
tools: MCP_TOOLS.map((tool) => ({
|
|
855
|
-
annotations: tool.annotations,
|
|
856
|
-
description: tool.description,
|
|
857
|
-
name: tool.name,
|
|
858
|
-
title: tool.title
|
|
859
|
-
})),
|
|
860
|
-
transport: "streamable-http",
|
|
861
|
-
transports: [{ endpoint: url, type: "streamable-http" }],
|
|
862
|
-
url,
|
|
863
|
-
version: input.version
|
|
864
|
-
};
|
|
865
|
-
if (HTTP_URL.test(url)) {
|
|
866
|
-
card.remotes = [{ type: "streamable-http", url }];
|
|
867
|
-
}
|
|
868
|
-
if (input.site) {
|
|
869
|
-
card.websiteUrl = siteRoot(input.site);
|
|
870
|
-
}
|
|
871
|
-
return card;
|
|
872
|
-
};
|
|
873
|
-
|
|
874
808
|
// src/components/layout/nav-utils.ts
|
|
875
809
|
var hasDeferrableGroups = (sidebar) => sidebar.some((node) => node.kind === "group" && ((node.display ?? "flat") !== "flat" || hasDeferrableGroups(node.children)));
|
|
876
810
|
var navVariants = (data, hiddenDefault = null) => [
|
|
@@ -953,7 +887,7 @@ var validateUsedComponents = (pages, extraTags, registryNames) => {
|
|
|
953
887
|
|
|
954
888
|
// src/core/component-overrides.ts
|
|
955
889
|
import { existsSync as existsSync2 } from "node:fs";
|
|
956
|
-
import { dirname as
|
|
890
|
+
import { dirname as dirname4, extname, isAbsolute, resolve as resolve3 } from "pathe";
|
|
957
891
|
import ts from "typescript";
|
|
958
892
|
var GROUPS = ["mdx", "layout", "islands"];
|
|
959
893
|
var GROUP_SET = new Set(GROUPS);
|
|
@@ -1054,10 +988,10 @@ var probeExtension = (base) => {
|
|
|
1054
988
|
return null;
|
|
1055
989
|
};
|
|
1056
990
|
var toImport = (specifier, imported, dir) => {
|
|
1057
|
-
const
|
|
991
|
+
const relative = specifier.startsWith(".") || isAbsolute(specifier);
|
|
1058
992
|
let path = specifier;
|
|
1059
993
|
let extension = extname(specifier).slice(1).toLowerCase();
|
|
1060
|
-
if (
|
|
994
|
+
if (relative) {
|
|
1061
995
|
const absolute = isAbsolute(specifier) ? specifier : resolve3(dir, specifier);
|
|
1062
996
|
if (extension) {
|
|
1063
997
|
path = absolute;
|
|
@@ -1209,7 +1143,7 @@ var analyzeComponentOverrides = (source, filePath) => {
|
|
|
1209
1143
|
return result;
|
|
1210
1144
|
}
|
|
1211
1145
|
const imports = collectImports(sourceFile);
|
|
1212
|
-
const dir =
|
|
1146
|
+
const dir = dirname4(filePath);
|
|
1213
1147
|
for (const property of object.properties) {
|
|
1214
1148
|
collectGroupOverrides(property, imports, dir, result);
|
|
1215
1149
|
}
|
|
@@ -1281,7 +1215,7 @@ var svgDimensions = (svg) => {
|
|
|
1281
1215
|
|
|
1282
1216
|
// src/core/tsconfig-aliases.ts
|
|
1283
1217
|
import { existsSync as existsSync3 } from "node:fs";
|
|
1284
|
-
import { dirname as
|
|
1218
|
+
import { dirname as dirname5, join as join5, resolve as resolve4 } from "pathe";
|
|
1285
1219
|
import ts2 from "typescript";
|
|
1286
1220
|
var PARSE_HOST = {
|
|
1287
1221
|
fileExists: ts2.sys.fileExists,
|
|
@@ -1311,7 +1245,7 @@ var resolveTsconfigAliases = (root) => {
|
|
|
1311
1245
|
if (error) {
|
|
1312
1246
|
return {};
|
|
1313
1247
|
}
|
|
1314
|
-
const configDir =
|
|
1248
|
+
const configDir = dirname5(entry);
|
|
1315
1249
|
const { options } = ts2.parseJsonConfigFileContent(config, PARSE_HOST, configDir, undefined, entry);
|
|
1316
1250
|
const { paths } = options;
|
|
1317
1251
|
if (!paths) {
|
|
@@ -1577,10 +1511,10 @@ var resolveOgLogo = (project, source) => {
|
|
|
1577
1511
|
if (!source?.toLowerCase().endsWith(".svg")) {
|
|
1578
1512
|
return;
|
|
1579
1513
|
}
|
|
1580
|
-
const
|
|
1514
|
+
const relative = source.replace(/^\//u, "");
|
|
1581
1515
|
const file = [
|
|
1582
|
-
join7(project.context.root, "public",
|
|
1583
|
-
join7(project.context.root,
|
|
1516
|
+
join7(project.context.root, "public", relative),
|
|
1517
|
+
join7(project.context.root, relative)
|
|
1584
1518
|
].find((path) => existsSync5(path));
|
|
1585
1519
|
return file ? readFileSync(file, "utf-8") : undefined;
|
|
1586
1520
|
};
|
|
@@ -1693,52 +1627,52 @@ var specConfiguration = async (spec, root) => {
|
|
|
1693
1627
|
};
|
|
1694
1628
|
}
|
|
1695
1629
|
};
|
|
1696
|
-
var acceptScalarReference = (
|
|
1697
|
-
if (
|
|
1630
|
+
var acceptScalarReference = (ref, seen, contentRoutes, warnings) => {
|
|
1631
|
+
if (ref.renderer !== "scalar") {
|
|
1698
1632
|
return null;
|
|
1699
1633
|
}
|
|
1700
|
-
if (seen.has(
|
|
1701
|
-
warnings.push(`Two API reference sources resolve to ${
|
|
1634
|
+
if (seen.has(ref.route)) {
|
|
1635
|
+
warnings.push(`Two API reference sources resolve to ${ref.route}; keeping the first.`);
|
|
1702
1636
|
return null;
|
|
1703
1637
|
}
|
|
1704
|
-
if (contentRoutes.has(
|
|
1705
|
-
warnings.push(`API reference route ${
|
|
1638
|
+
if (contentRoutes.has(ref.route)) {
|
|
1639
|
+
warnings.push(`API reference route ${ref.route} collides with a content page; skipping the reference there.`);
|
|
1706
1640
|
return null;
|
|
1707
1641
|
}
|
|
1708
|
-
seen.add(
|
|
1709
|
-
return
|
|
1642
|
+
seen.add(ref.route);
|
|
1643
|
+
return ref;
|
|
1710
1644
|
};
|
|
1711
1645
|
var buildReferenceFiles = async (options) => {
|
|
1712
1646
|
const { config, root, contentRoutes } = options;
|
|
1713
1647
|
const warnings = [];
|
|
1714
1648
|
const seen = new Set;
|
|
1715
1649
|
const accepted = [];
|
|
1716
|
-
for (const
|
|
1717
|
-
const next = acceptScalarReference(
|
|
1650
|
+
for (const ref of resolveReferences(config)) {
|
|
1651
|
+
const next = acceptScalarReference(ref, seen, contentRoutes, warnings);
|
|
1718
1652
|
if (next) {
|
|
1719
1653
|
accepted.push(next);
|
|
1720
1654
|
}
|
|
1721
1655
|
}
|
|
1722
|
-
const built = await Promise.all(accepted.map(async (
|
|
1723
|
-
ref
|
|
1724
|
-
spec: await specConfiguration(
|
|
1656
|
+
const built = await Promise.all(accepted.map(async (ref) => ({
|
|
1657
|
+
ref,
|
|
1658
|
+
spec: await specConfiguration(ref.spec, root)
|
|
1725
1659
|
})));
|
|
1726
1660
|
const files = [];
|
|
1727
|
-
for (const { ref
|
|
1661
|
+
for (const { ref, spec } of built) {
|
|
1728
1662
|
if (spec.warning) {
|
|
1729
1663
|
warnings.push(spec.warning);
|
|
1730
1664
|
}
|
|
1731
|
-
const pagePath = referencePagePath(
|
|
1665
|
+
const pagePath = referencePagePath(ref.route);
|
|
1732
1666
|
files.push({
|
|
1733
1667
|
content: scalarReferenceTemplate({
|
|
1734
1668
|
configuration: {
|
|
1735
1669
|
...spec.config,
|
|
1736
|
-
...themeConfiguration(config,
|
|
1737
|
-
...
|
|
1670
|
+
...themeConfiguration(config, ref.theme),
|
|
1671
|
+
...ref.scalar
|
|
1738
1672
|
},
|
|
1739
|
-
noindex:
|
|
1740
|
-
route:
|
|
1741
|
-
title:
|
|
1673
|
+
noindex: ref.noindex,
|
|
1674
|
+
route: ref.route,
|
|
1675
|
+
title: ref.label
|
|
1742
1676
|
}),
|
|
1743
1677
|
pagePath
|
|
1744
1678
|
});
|
|
@@ -2013,6 +1947,11 @@ ${THEME_MAPPING}
|
|
|
2013
1947
|
--tw-prose-pre-bg: var(--blume-code-background);
|
|
2014
1948
|
--tw-prose-th-borders: var(--blume-border);
|
|
2015
1949
|
--tw-prose-td-borders: var(--blume-border);
|
|
1950
|
+
/* Neutralized: the plugin defaults are near-black text and shadow with no
|
|
1951
|
+
dark counterpart (Blume never applies prose-invert), and the kbd rule
|
|
1952
|
+
below draws the badge with Blume tokens instead. */
|
|
1953
|
+
--tw-prose-kbd: inherit;
|
|
1954
|
+
--tw-prose-kbd-shadows: transparent;
|
|
2016
1955
|
color: var(--blume-muted-foreground);
|
|
2017
1956
|
font-size: 0.875rem;
|
|
2018
1957
|
line-height: 1.7;
|
|
@@ -2542,6 +2481,24 @@ pre:has(.line.focused):hover .line:not(.focused) {
|
|
|
2542
2481
|
content: none;
|
|
2543
2482
|
}
|
|
2544
2483
|
|
|
2484
|
+
/* Keyboard keys (<kbd>) render as the same bordered badge the search dialog
|
|
2485
|
+
uses for its shortcut hints. Typography's own kbd rule is scoped with
|
|
2486
|
+
:not(.not-prose *), so it never reaches a key inside <Steps>, <Callout>,
|
|
2487
|
+
<Card>, or any other not-prose component; this rule is deliberately
|
|
2488
|
+
unscoped from that exclusion so a key looks the same everywhere in the
|
|
2489
|
+
content column. Unlayered, so it outranks the plugin's layered rule. */
|
|
2490
|
+
.prose kbd {
|
|
2491
|
+
background: var(--blume-muted);
|
|
2492
|
+
border: 1px solid var(--blume-border);
|
|
2493
|
+
border-radius: 0.25rem;
|
|
2494
|
+
box-shadow: none;
|
|
2495
|
+
color: inherit;
|
|
2496
|
+
font-family: var(--font-mono);
|
|
2497
|
+
font-size: 0.85em;
|
|
2498
|
+
font-weight: 500;
|
|
2499
|
+
padding: 0.125rem 0.25rem;
|
|
2500
|
+
}
|
|
2501
|
+
|
|
2545
2502
|
/* Inline code highlighting: Shiki colors the tokens of a \`code\`{:lang} snippet
|
|
2546
2503
|
via the same dual-theme CSS variables as fenced blocks, keeping the inline
|
|
2547
2504
|
pill background. Always on — it only fires on the trailing {:lang} marker. */
|
|
@@ -2633,10 +2590,10 @@ ${options.userCss}
|
|
|
2633
2590
|
`;
|
|
2634
2591
|
|
|
2635
2592
|
// src/theme/sources.ts
|
|
2636
|
-
import { dirname as
|
|
2593
|
+
import { dirname as dirname6, isAbsolute as isAbsolute4, relative as relative2, resolve as resolve5 } from "pathe";
|
|
2637
2594
|
var SOURCE_DIRECTIVE = /@source(?<not>\s+not)?\s+(?<quote>["'])(?<path>[^"']+)\k<quote>/gu;
|
|
2638
2595
|
var rebaseSourceDirectives = (css, options) => {
|
|
2639
|
-
const base =
|
|
2596
|
+
const base = dirname6(options.from);
|
|
2640
2597
|
return css.replace(SOURCE_DIRECTIVE, (directive, not, quote, path) => {
|
|
2641
2598
|
if (isAbsolute4(path)) {
|
|
2642
2599
|
return directive;
|
|
@@ -3023,7 +2980,7 @@ var resolvedAstroHit = (fromDir) => {
|
|
|
3023
2980
|
if (pkg) {
|
|
3024
2981
|
return { modulesDir, pkg };
|
|
3025
2982
|
}
|
|
3026
|
-
const parent =
|
|
2983
|
+
const parent = dirname7(dir);
|
|
3027
2984
|
if (parent === dir) {
|
|
3028
2985
|
return null;
|
|
3029
2986
|
}
|
|
@@ -3039,7 +2996,7 @@ var sameRealDir = (a, b) => {
|
|
|
3039
2996
|
};
|
|
3040
2997
|
var depsCandidates = (pkgDir) => [
|
|
3041
2998
|
join11(pkgDir, "node_modules"),
|
|
3042
|
-
|
|
2999
|
+
dirname7(pkgDir)
|
|
3043
3000
|
];
|
|
3044
3001
|
var candidateHolding = (pkgDir, ...segments) => depsCandidates(pkgDir).find((dir) => existsSync6(join11(dir, ...segments))) ?? null;
|
|
3045
3002
|
var symlinkDir = async (target, link) => {
|
|
@@ -3061,13 +3018,13 @@ var linkDepsJunction = async (link, depsDir) => {
|
|
|
3061
3018
|
return;
|
|
3062
3019
|
}
|
|
3063
3020
|
try {
|
|
3064
|
-
if (resolve6(
|
|
3021
|
+
if (resolve6(dirname7(link), await readlink(link)) === resolve6(depsDir)) {
|
|
3065
3022
|
return;
|
|
3066
3023
|
}
|
|
3067
3024
|
} catch {}
|
|
3068
3025
|
await rm2(link, { force: true });
|
|
3069
3026
|
}
|
|
3070
|
-
await mkdir2(
|
|
3027
|
+
await mkdir2(dirname7(link), { recursive: true });
|
|
3071
3028
|
await symlinkDir(depsDir, link);
|
|
3072
3029
|
};
|
|
3073
3030
|
var readPkgVersion = (pkgJsonPath) => {
|
|
@@ -3516,6 +3473,7 @@ var buildRuntimeData = (project) => {
|
|
|
3516
3473
|
description: config.description,
|
|
3517
3474
|
discovery: {
|
|
3518
3475
|
agentReadability: config.seo.agentReadability,
|
|
3476
|
+
aiCatalog: hasAiCatalog(config),
|
|
3519
3477
|
api: config.ai.api,
|
|
3520
3478
|
llmsTxt: config.ai.llmsTxt.enabled,
|
|
3521
3479
|
sitemap: config.seo.sitemap && Boolean(config.deployment.site)
|
|
@@ -3762,7 +3720,9 @@ var writeAskFiles = async (project, srcDir, write, modules) => {
|
|
|
3762
3720
|
modules.set("blume:ask-data", JSON.stringify(await buildAskData(project)));
|
|
3763
3721
|
}
|
|
3764
3722
|
await write(join11(srcDir, "pages", "api", "ask.ts"), askEndpointTemplate(resolveAskBackend(ask), grounded, {
|
|
3723
|
+
cors: ask.cors,
|
|
3765
3724
|
instructions: ask.instructions,
|
|
3725
|
+
reasoning: ask.reasoning,
|
|
3766
3726
|
retrieval: ask.retrieval
|
|
3767
3727
|
}));
|
|
3768
3728
|
};
|
|
@@ -4068,7 +4028,7 @@ var generateRuntime = async (project) => {
|
|
|
4068
4028
|
return { structuralChange: structural.some(Boolean), warnings };
|
|
4069
4029
|
};
|
|
4070
4030
|
|
|
4071
|
-
export { SIGNATURES_DIRECTORY_PATH, SIGNATURES_DIRECTORY_TYPE, publishBuildProject, refreshBlumeContent, showBlumeErrorOverlay, ogCacheDir, pruneCardCache, cardCacheTally, buildAskData,
|
|
4031
|
+
export { SIGNATURES_DIRECTORY_PATH, SIGNATURES_DIRECTORY_TYPE, publishBuildProject, refreshBlumeContent, showBlumeErrorOverlay, ogCacheDir, pruneCardCache, cardCacheTally, buildAskData, buildThemeCss, buildReferenceFiles, tailwindEntryTemplate, examplesEntryTemplate, rebaseSourceDirectives, twoslashCss, planComponentSlots, discoverIslands, EXAMPLE_SCAN_GLOB, exampleScanRoots, discoverExamples, exampleMarkdownLookup, detectNeedsReact, detectUsesMath, collectStaged, buildRuntimeData, languageIconCssFor, clientFeaturesFor, generateRuntime };
|
|
4072
4032
|
|
|
4073
|
-
//# debugId=
|
|
4074
|
-
//# sourceMappingURL=chunk-
|
|
4033
|
+
//# debugId=54E9E2185852692F64756E2164756E21
|
|
4034
|
+
//# sourceMappingURL=chunk-k79xp7av.js.map
|