@fumadocs/cli 1.6.0 → 1.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ai-BVuNjYXU.js → ai-C19ZOP53.js} +2 -2
- package/dist/{ai-BVuNjYXU.js.map → ai-C19ZOP53.js.map} +1 -1
- package/dist/all-BBf7I8hG.js +27 -0
- package/dist/{all-aUHxtoXL.js.map → all-BBf7I8hG.js.map} +1 -1
- package/dist/{config-CT2jj39D.d.ts → config-Bfg4yG8S.d.ts} +3 -1
- package/dist/config-Bfg4yG8S.d.ts.map +1 -0
- package/dist/{config-D6uv73fs.js → config-Bw0kmF01.js} +6 -3
- package/dist/config-Bw0kmF01.js.map +1 -0
- package/dist/config.d.ts +1 -1
- package/dist/config.js +1 -1
- package/dist/{docs-DeIEl_Kt.js → docs--WqEHTyl.js} +2 -2
- package/dist/{docs-DeIEl_Kt.js.map → docs--WqEHTyl.js.map} +1 -1
- package/dist/{epub-CnQFJh09.js → epub-jc_2B886.js} +2 -2
- package/dist/{epub-CnQFJh09.js.map → epub-jc_2B886.js.map} +1 -1
- package/dist/features/ai.d.ts +1 -1
- package/dist/features/ai.js +1 -1
- package/dist/features/all.d.ts +1 -1
- package/dist/features/all.js +1 -1
- package/dist/features/docs/index.d.ts +2 -2
- package/dist/features/docs/index.js +1 -1
- package/dist/features/epub.d.ts +1 -1
- package/dist/features/epub.js +1 -1
- package/dist/features/feedback.d.ts +1 -1
- package/dist/features/feedback.js +1 -1
- package/dist/features/index.d.ts +1 -1
- package/dist/features/index.js +1 -1
- package/dist/features/lint.d.ts +1 -1
- package/dist/features/llms.d.ts +3 -3
- package/dist/features/llms.js +1 -1
- package/dist/features/mcp.d.ts +3 -3
- package/dist/features/mcp.js +1 -1
- package/dist/features/og.d.ts +1 -1
- package/dist/features/og.js +1 -1
- package/dist/features/search.d.ts +2 -2
- package/dist/features/search.js +1 -1
- package/dist/features/utils.d.ts +1 -1
- package/dist/features/webmcp.d.ts +1 -1
- package/dist/features/webmcp.js +1 -1
- package/dist/{features-C1kf2s8j.js → features-CXFCgOWD.js} +3 -3
- package/dist/{features-C1kf2s8j.js.map → features-CXFCgOWD.js.map} +1 -1
- package/dist/{feedback-COmWtc5C.js → feedback-Brj092vC.js} +2 -2
- package/dist/{feedback-COmWtc5C.js.map → feedback-Brj092vC.js.map} +1 -1
- package/dist/{index-CR9T40ox.d.ts → index-Cs7hw2un.d.ts} +2 -2
- package/dist/{index-CR9T40ox.d.ts.map → index-Cs7hw2un.d.ts.map} +1 -1
- package/dist/{index-BCVGQxn9.d.ts → index-DI66DoV8.d.ts} +2 -2
- package/dist/{index-BCVGQxn9.d.ts.map → index-DI66DoV8.d.ts.map} +1 -1
- package/dist/index.js +43 -36
- package/dist/index.js.map +1 -1
- package/dist/{installer-D0Obb2Md.js → installer-CzhVfs7i.js} +67 -4
- package/dist/installer-CzhVfs7i.js.map +1 -0
- package/dist/{llms-CONd8Vnn.js → llms-Br0RJXXg.js} +2 -2
- package/dist/{llms-CONd8Vnn.js.map → llms-Br0RJXXg.js.map} +1 -1
- package/dist/{mcp-BT8BLZZ-.js → mcp-Ce_W93we.js} +3 -3
- package/dist/{mcp-BT8BLZZ-.js.map → mcp-Ce_W93we.js.map} +1 -1
- package/dist/{og-DRDOyQ_t.js → og-LFlX1Bl4.js} +3 -3
- package/dist/{og-DRDOyQ_t.js.map → og-LFlX1Bl4.js.map} +1 -1
- package/dist/project/index.d.ts +1 -1
- package/dist/registry/installer.d.ts +1 -1
- package/dist/registry/installer.d.ts.map +1 -1
- package/dist/registry/installer.js +1 -1
- package/dist/schema.json +1 -1
- package/dist/{search-iphnSVVY.js → search-WfSdiGx-.js} +2 -2
- package/dist/{search-iphnSVVY.js.map → search-WfSdiGx-.js.map} +1 -1
- package/dist/{utils-B1Xy4l_a.d.ts → utils-CxJ7kw39.d.ts} +3 -3
- package/dist/{utils-B1Xy4l_a.d.ts.map → utils-CxJ7kw39.d.ts.map} +1 -1
- package/dist/{webmcp-C2PM_9md.js → webmcp-DyTLrsXL.js} +2 -2
- package/dist/{webmcp-C2PM_9md.js.map → webmcp-DyTLrsXL.js.map} +1 -1
- package/package.json +9 -8
- package/dist/all-aUHxtoXL.js +0 -27
- package/dist/config-CT2jj39D.d.ts.map +0 -1
- package/dist/config-D6uv73fs.js.map +0 -1
- package/dist/installer-D0Obb2Md.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fumadocs/cli",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.2",
|
|
4
4
|
"description": "The CLI tool for Fumadocs",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Docs",
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
"dist"
|
|
21
21
|
],
|
|
22
22
|
"type": "module",
|
|
23
|
+
"sideEffects": false,
|
|
23
24
|
"exports": {
|
|
24
25
|
"./codemod": "./dist/codemod/index.js",
|
|
25
26
|
"./config": "./dist/config.js",
|
|
@@ -44,19 +45,19 @@
|
|
|
44
45
|
"access": "public"
|
|
45
46
|
},
|
|
46
47
|
"dependencies": {
|
|
47
|
-
"@clack/prompts": "^1.8.
|
|
48
|
+
"@clack/prompts": "^1.8.1",
|
|
48
49
|
"cac": "^7.0.0",
|
|
49
50
|
"fuma-cli": "^0.1.1",
|
|
50
|
-
"magic-string": "^1.
|
|
51
|
-
"oxc-parser": "^0.
|
|
51
|
+
"magic-string": "^1.4.1",
|
|
52
|
+
"oxc-parser": "^0.150.0",
|
|
52
53
|
"picocolors": "^1.1.1",
|
|
53
54
|
"tinyexec": "^1.3.1",
|
|
54
|
-
"zod": "^4.5
|
|
55
|
+
"zod": "^4.6.5"
|
|
55
56
|
},
|
|
56
57
|
"devDependencies": {
|
|
57
|
-
"@types/node": "26.
|
|
58
|
-
"
|
|
59
|
-
"
|
|
58
|
+
"@types/node": "26.6.1",
|
|
59
|
+
"tsconfig": "0.0.0",
|
|
60
|
+
"tsdown": "0.23.0"
|
|
60
61
|
},
|
|
61
62
|
"engines": {
|
|
62
63
|
"node": ">=20"
|
package/dist/all-aUHxtoXL.js
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { t as docs } from "./docs-DeIEl_Kt.js";
|
|
2
|
-
import { t as ai } from "./ai-BVuNjYXU.js";
|
|
3
|
-
import { r as llms } from "./llms-CONd8Vnn.js";
|
|
4
|
-
import { t as og } from "./og-DRDOyQ_t.js";
|
|
5
|
-
import { t as search } from "./search-iphnSVVY.js";
|
|
6
|
-
import { t as mcp } from "./mcp-BT8BLZZ-.js";
|
|
7
|
-
import { n as webmcp } from "./webmcp-C2PM_9md.js";
|
|
8
|
-
import { t as feedback } from "./feedback-COmWtc5C.js";
|
|
9
|
-
import { t as epub } from "./epub-CnQFJh09.js";
|
|
10
|
-
import { t as lint } from "./lint-zkXUULgO.js";
|
|
11
|
-
//#region src/features/all.ts
|
|
12
|
-
const features = [
|
|
13
|
-
docs,
|
|
14
|
-
ai,
|
|
15
|
-
llms,
|
|
16
|
-
mcp,
|
|
17
|
-
webmcp,
|
|
18
|
-
og,
|
|
19
|
-
search,
|
|
20
|
-
feedback,
|
|
21
|
-
epub,
|
|
22
|
-
lint
|
|
23
|
-
];
|
|
24
|
-
//#endregion
|
|
25
|
-
export { features as t };
|
|
26
|
-
|
|
27
|
-
//# sourceMappingURL=all-aUHxtoXL.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config-CT2jj39D.d.ts","names":[],"sources":["../src/config.ts"],"mappings":";;cAMM;KACM,oBAAoB;iBAwBV,mBAAmB,eAAmB,QAAA,EAAA;;;;;;;;;;;;;;;;;;GA6C3D,EAAA,KAAA;KAEI,eAAe,QAAQ,kBAAkB;KAElC,cAAc,EAAE,MAAM;KACtB,eAAe,EAAE,OAAO;iBAEd,mBAAmB,gBAAsB,QAAQ;;;;;;iBAejD,WAAW,gBAAsB,QAAQ;iBAezC,iBAAiB,eAAY"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config-D6uv73fs.js","names":[],"sources":["../src/config.ts"],"sourcesContent":["import fs from 'node:fs/promises';\nimport { z } from 'zod';\nimport { existsSync } from 'node:fs';\nimport path from 'node:path';\nimport { detectFramework } from 'fuma-cli/detect';\n\nconst frameworks = ['next', 'astro', 'waku', 'react-router', 'tanstack-start'] as const;\nexport type Framework = (typeof frameworks)[number];\n\nfunction isSupportedFramework(v: string): v is Framework {\n return frameworks.includes(v as Framework);\n}\n\n/** directories from shadcn's `components.json`, so components are installed at the same place */\nasync function readShadcnAliases(cwd: string): Promise<Record<string, string>> {\n const content = await fs.readFile(path.join(cwd, 'components.json'), 'utf-8').catch(() => null);\n if (!content) return {};\n const out: Record<string, string> = {};\n let aliases: Record<string, unknown> = {};\n try {\n aliases = JSON.parse(content).aliases ?? {};\n } catch {\n return out;\n }\n for (const [key, alias] of Object.entries(aliases)) {\n // e.g. `@/components/ui` -> `./components/ui`\n if (typeof alias === 'string') out[key] = `.${alias.slice(alias.indexOf('/'))}`;\n }\n return out;\n}\n\nexport async function createConfigSchema(cwd = process.cwd()) {\n const shadcn = await readShadcnAliases(cwd);\n const defaultAliases = {\n uiDir: shadcn.ui ?? './components/ui',\n componentsDir: shadcn.components ?? './components',\n layoutDir: './layouts',\n cssDir: './styles',\n libDir: shadcn.lib ?? './lib',\n };\n\n let framework = await detectFramework(cwd);\n if (!isSupportedFramework(framework)) framework = 'next';\n\n return z.object({\n $schema: z.string().default('node_modules/@fumadocs/cli/dist/schema.json').optional(),\n aliases: z\n .object({\n uiDir: z.string().default(defaultAliases.uiDir),\n componentsDir: z.string().default(defaultAliases.componentsDir),\n layoutDir: z.string().default(defaultAliases.layoutDir),\n cssDir: z.string().default(defaultAliases.cssDir),\n libDir: z.string().default(defaultAliases.libDir),\n })\n .default(defaultAliases),\n\n baseDir: z.string().default(() => {\n if (framework === 'react-router') return 'app';\n // the routes directory of the framework decides whether app code lives in `src`\n const routes = { next: 'app', waku: 'pages', 'tanstack-start': 'routes' }[framework] ?? '';\n if (existsSync(path.resolve(cwd, 'src', routes))) return 'src';\n if (routes && existsSync(path.resolve(cwd, routes))) return '';\n return existsSync(path.resolve(cwd, 'src')) ? 'src' : '';\n }),\n uiLibrary: z.enum(['radix-ui', 'base-ui']).default('base-ui'),\n framework: z.literal(frameworks).default(framework),\n\n commands: z\n .object({\n /**\n * command to format output code automatically\n */\n format: z.string().optional(),\n })\n .default({}),\n });\n}\n\ntype ConfigSchema = Awaited<ReturnType<typeof createConfigSchema>>;\n\nexport type ConfigInput = z.input<ConfigSchema>;\nexport type LoadedConfig = z.output<ConfigSchema>;\n\nexport async function createOrLoadConfig(file = './cli.json'): Promise<LoadedConfig> {\n const inited = await initConfig(file);\n if (inited) return inited;\n\n const content = await fs.readFile(file, 'utf-8');\n const configSchema = await createConfigSchema();\n\n return configSchema.parse(JSON.parse(content));\n}\n\n/**\n * Write new config, skip if a config already exists\n *\n * @returns the created config, `undefined` if not created\n */\nexport async function initConfig(file = './cli.json'): Promise<LoadedConfig | undefined> {\n if (\n await fs\n .stat(file)\n .then(() => true)\n .catch(() => false)\n ) {\n return;\n }\n\n const defaultConfig = await getDefaultConfig();\n await fs.writeFile(file, JSON.stringify(defaultConfig, null, 2));\n return defaultConfig;\n}\n\nexport async function getDefaultConfig(cwd?: string) {\n const schema = await createConfigSchema(cwd);\n return schema.parse({} satisfies ConfigInput);\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"installer-D0Obb2Md.js","names":["isCancel","isCancelSymbol","isCancel"],"sources":["../src/registry/plugins/preserve.ts","../src/utils/prompt.ts","../src/registry/installer.ts"],"sourcesContent":["import type { InstallerPlugin } from 'fuma-cli/registry/installer';\n\n/**\n * keep references to `fumadocs-ui/layouts/*` components as original, unless the user is installing them directly.\n */\nexport function pluginPreserveLayouts(): InstallerPlugin {\n const layoutNames = [\n 'layouts/home',\n 'layouts/flux',\n 'layouts/glass',\n 'layouts/notebook',\n 'layouts/docs',\n 'layouts/shared',\n ];\n // original specifier -> new specifier\n const layoutComps: Record<string, string> = {\n 'local:<dir>/home/index.tsx': 'layouts/home',\n 'local:<dir>/shared/index.tsx': 'layouts/shared',\n 'local:<dir>/shared/client.tsx': 'layouts/shared',\n 'local:<dir>/notebook/index.tsx': 'layouts/notebook',\n 'local:<dir>/notebook/client.tsx': 'layouts/notebook',\n 'local:<dir>/notebook/page/index.tsx': 'layouts/notebook/page',\n 'local:<dir>/notebook/page/client.tsx': 'layouts/notebook/page',\n 'local:<dir>/docs/index.tsx': 'layouts/docs',\n 'local:<dir>/docs/client.tsx': 'layouts/docs',\n 'local:<dir>/docs/page/index.tsx': 'layouts/docs/page',\n 'local:<dir>/docs/page/client.tsx': 'layouts/docs/page',\n 'local:<dir>/flux/index.tsx': 'layouts/flux',\n 'local:<dir>/flux/page/index.tsx': 'layouts/flux/page',\n 'local:<dir>/flux/page/client.tsx': 'layouts/flux/page',\n 'local:<dir>/glass/index.tsx': 'layouts/glass',\n 'local:<dir>/glass/page/index.tsx': 'layouts/glass/page',\n };\n const layoutNameSet = new Set(layoutNames);\n\n return {\n beforeInstall(comp, { stack }) {\n const isDirectInstall = layoutNameSet.has(stack[0].name);\n if (isDirectInstall) return;\n\n return {\n ...comp,\n $subComponents: comp.$subComponents.filter((child) => !layoutNameSet.has(child.name)),\n };\n },\n transformImport(specifier, { stack }) {\n const isDirectInstall = layoutNameSet.has(stack[0].name);\n // skip if direct install or unrelated to layout component\n if (isDirectInstall || !(specifier in layoutComps)) return specifier;\n\n return `fumadocs-ui/${layoutComps[specifier]}`;\n },\n };\n}\n","import { isCancel as isCancelSymbol } from '@clack/prompts';\n\n/**\n * `@clack/core` narrows to its own `unique symbol`, which can't exclude the wider `symbol` that\n * `@clack/prompts` returns, so a prompt result never narrows without this.\n */\nexport function isCancel<T>(value: T | symbol): value is symbol {\n return isCancelSymbol(value);\n}\n","import { ComponentInstaller, type IOInterface } from 'fuma-cli/registry/installer';\nimport { pluginPreserveLayouts } from './plugins/preserve';\nimport { RegistryConnector } from 'fuma-cli/registry/connector';\nimport type { LoadedConfig } from '@/config';\nimport { box, confirm, log, outro, spinner, SpinnerResult } from '@clack/prompts';\nimport { isCancel } from '@/utils/prompt';\nimport picocolors from 'picocolors';\nimport { detectPackageManager } from 'fuma-cli/detect';\n\nexport class FumadocsComponentInstaller extends ComponentInstaller {\n private interactive: {\n name: string;\n spin: SpinnerResult;\n } | null = null;\n\n constructor(\n connector: RegistryConnector,\n config: LoadedConfig,\n cwd?: string,\n io?: Partial<IOInterface>,\n ) {\n super(connector, {\n cwd,\n framework: config.framework === 'astro' ? 'none' : config.framework,\n outDir: {\n base: config.baseDir,\n components: config.aliases.componentsDir,\n css: config.aliases.cssDir,\n layout: config.aliases.layoutDir,\n lib: config.aliases.libDir,\n ui: config.aliases.uiDir,\n },\n io: {\n onWarn: (message) => {\n this.interactive?.spin.message(message);\n },\n confirmFileOverride: async (options) => {\n if (!this.interactive) return true;\n const { name, spin } = this.interactive;\n spin.clear();\n const value = await confirm({\n message: `Do you want to override ${options.path}?`,\n initialValue: false,\n });\n if (isCancel(value)) {\n outro('Installation terminated');\n process.exit(0);\n }\n spin.start(picocolors.bold(picocolors.cyanBright(`Installing ${name}`)));\n return value;\n },\n onFileDownloaded: (options) => {\n this.interactive?.spin.message(options.path);\n },\n ...io,\n },\n plugins: [pluginPreserveLayouts()],\n });\n }\n\n async installInteractive(name: string, subRegistry?: string): Promise<void> {\n if (this.interactive) {\n throw new Error(`cannot install while installing another component`);\n }\n\n const spin = spinner();\n spin.start(picocolors.bold(picocolors.cyanBright(`Installing ${name}`)));\n\n try {\n this.interactive = { name, spin };\n const deps = await super.install(name, subRegistry).then((res) => res.deps());\n spin.stop(picocolors.bold(picocolors.greenBright(`${name} installed`)));\n\n if (deps.hasRequired()) {\n log.message();\n box([...deps.dependencies, ...deps.devDependencies].join('\\n'), 'New Dependencies');\n const pm = (await detectPackageManager())?.name ?? 'npm';\n const value = await confirm({\n message: `Do you want to install with ${pm}?`,\n });\n\n if (isCancel(value)) {\n outro('Installation terminated');\n process.exit(0);\n }\n\n if (value) {\n const spin = spinner({\n errorMessage: 'Failed to install dependencies',\n });\n spin.start('Installing dependencies');\n await deps.installRequired(pm);\n spin.stop('Dependencies installed');\n } else {\n await deps.writeRequired();\n }\n }\n } catch (e) {\n spin.error(e instanceof Error ? e.message : String(e));\n process.exit(-1);\n } finally {\n this.interactive = null;\n }\n }\n}\n"],"mappings":"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"}
|