create-fumadocs-app 16.2.1 → 16.2.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/dist/bin.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
- import { i as templates, n as isCI } from "./constants-BwsoV0iu.js";
3
- import { n as getPackageManager, r as managers, t as create } from "./src-BzEHzUFz.js";
4
- import { t as feature } from "./feature-B4k5rz5x.js";
2
+ import { i as templates, n as isCI } from "./constants-C-St-pVh.js";
3
+ import { n as getPackageManager, r as managers, t as create } from "./src-CT7YI5BW.js";
4
+ import { t as feature } from "./feature-Dr_x74-w.js";
5
5
  import fs from "node:fs/promises";
6
6
  import path from "node:path";
7
7
  import { cancel, confirm, group, intro, isCancel, outro, select, spinner, text } from "@clack/prompts";
@@ -13,16 +13,16 @@ var __exportAll = (all, no_symbols) => {
13
13
  //#endregion
14
14
  //#region ../create-app-versions/package.json
15
15
  var dependencies$3 = {
16
- "@biomejs/biome": "^2.5.12",
17
- "@mixedbread/sdk": "^0.77.0",
16
+ "@biomejs/biome": "^2.5.14",
17
+ "@mixedbread/sdk": "^0.78.0",
18
18
  "@orama/core": "^1.2.19",
19
- "algoliasearch": "^5.57.0",
19
+ "algoliasearch": "^5.59.0",
20
20
  "fumadocs-core": "workspace:*",
21
21
  "fumadocs-mdx": "workspace:*",
22
22
  "fumadocs-ui": "workspace:*",
23
- "oxlint": "^1.82.0",
24
- "react": "^19.2.8",
25
- "takumi-js": "^2.13.7",
23
+ "oxlint": "^1.83.0",
24
+ "react": "^19.3.0",
25
+ "takumi-js": "^2.14.0",
26
26
  "typesense": "^3.0.6",
27
27
  "typesense-fumadocs-adapter": "^0.4.3"
28
28
  };
@@ -47,12 +47,12 @@ var package_exports$2 = /* @__PURE__ */ __exportAll({
47
47
  publishConfig: () => publishConfig$2,
48
48
  repository: () => repository$2,
49
49
  scripts: () => scripts$2,
50
- sideEffects: () => sideEffects,
50
+ sideEffects: () => sideEffects$2,
51
51
  type: () => type$2,
52
52
  version: () => version$2
53
53
  });
54
54
  var name$2 = "fumadocs-core";
55
- var version$2 = "16.15.10";
55
+ var version$2 = "16.15.12";
56
56
  var description$2 = "The React.js library for building a documentation website";
57
57
  var keywords$2 = ["Docs", "Fumadocs"];
58
58
  var homepage$2 = "https://fumadocs.dev";
@@ -62,7 +62,7 @@ var author$2 = "Fuma Nama";
62
62
  var repository$2 = "github:fuma-nama/fumadocs";
63
63
  var files$2 = ["dist"];
64
64
  var type$2 = "module";
65
- var sideEffects = false;
65
+ var sideEffects$2 = false;
66
66
  var exports$2 = {
67
67
  "./breadcrumb": "./dist/breadcrumb.js",
68
68
  "./content/github": "./dist/content/github.js",
@@ -174,38 +174,37 @@ var dependencies$2 = {
174
174
  "unified": "^11.0.5",
175
175
  "unist-util-visit": "^5.1.0",
176
176
  "vfile": "^6.0.3",
177
- "yaml": "^2.9.0",
177
+ "yaml": "^2.9.1",
178
178
  "zbsearch": "^4.0.0"
179
179
  };
180
180
  var devDependencies$2 = {
181
- "@formatjs/intl-localematcher": "^0.8.13",
181
+ "@formatjs/intl-localematcher": "^0.9.0",
182
182
  "@mdx-js/mdx": "^3.1.1",
183
- "@mixedbread/sdk": "0.77.0",
183
+ "@mixedbread/sdk": "0.78.0",
184
184
  "@modelcontextprotocol/server": "2.0.0",
185
185
  "@orama/core": "^1.2.19",
186
186
  "@oramacloud/client": "^2.1.4",
187
187
  "@shikijs/transformers": "^4.4.3",
188
- "@tanstack/react-router": "1.170.33",
188
+ "@tanstack/react-router": "1.170.38",
189
189
  "@types/estree-jsx": "^1.0.5",
190
190
  "@types/hast": "^3.0.5",
191
191
  "@types/mdast": "^4.0.4",
192
- "@types/node": "26.5.0",
193
- "@types/react": "^19.2.18",
194
- "@types/react-dom": "^19.2.7",
195
- "algoliasearch": "5.57.0",
192
+ "@types/node": "26.6.1",
193
+ "@types/react": "^19.3.0",
194
+ "@types/react-dom": "^19.3.0",
195
+ "algoliasearch": "5.59.0",
196
196
  "flexsearch": "^0.8.212",
197
- "lucide-react": "^1.43.0",
198
- "next": "16.3.4",
197
+ "lucide-react": "^1.47.0",
198
+ "next": "16.3.5",
199
199
  "path-to-regexp": "^8.4.2",
200
- "react-router": "^8.3.1",
200
+ "react-router": "^8.4.0",
201
201
  "remark-directive": "^4.0.0",
202
202
  "remark-mdx": "^3.1.1",
203
- "remove-markdown": "^0.7.0",
204
203
  "tsconfig": "workspace:*",
205
204
  "tsdown": "0.23.0",
206
205
  "typescript": "^7.0.2",
207
206
  "waku": "1.0.0-rc.0",
208
- "zod": "4.5.4"
207
+ "zod": "4.6.5"
209
208
  };
210
209
  var peerDependencies$2 = {
211
210
  "@mdx-js/mdx": "*",
@@ -251,10 +250,9 @@ var peerDependenciesMeta$2 = {
251
250
  };
252
251
  var inlinedDependencies$1 = {
253
252
  "@formatjs/fast-memoize": "3.1.7",
254
- "@formatjs/intl-localematcher": "0.8.13",
253
+ "@formatjs/intl-localematcher": "0.9.0",
255
254
  "@shikijs/transformers": "4.4.3",
256
- "path-to-regexp": "8.4.2",
257
- "remove-markdown": "0.7.0"
255
+ "path-to-regexp": "8.4.2"
258
256
  };
259
257
  var package_default$2 = {
260
258
  name: name$2,
@@ -268,7 +266,7 @@ var package_default$2 = {
268
266
  repository: repository$2,
269
267
  files: files$2,
270
268
  type: type$2,
271
- sideEffects,
269
+ sideEffects: sideEffects$2,
272
270
  exports: exports$2,
273
271
  publishConfig: publishConfig$2,
274
272
  scripts: scripts$2,
@@ -299,11 +297,12 @@ var package_exports$1 = /* @__PURE__ */ __exportAll({
299
297
  publishConfig: () => publishConfig$1,
300
298
  repository: () => repository$1,
301
299
  scripts: () => scripts$1,
300
+ sideEffects: () => sideEffects$1,
302
301
  type: () => type$1,
303
302
  version: () => version$1
304
303
  });
305
304
  var name$1 = "fumadocs-mdx";
306
- var version$1 = "15.4.0";
305
+ var version$1 = "15.4.2";
307
306
  var description$1 = "The built-in source for Fumadocs";
308
307
  var keywords$1 = ["Docs", "fumadocs"];
309
308
  var homepage$1 = "https://fumadocs.dev";
@@ -314,6 +313,7 @@ var repository$1 = "github:fuma-nama/fumadocs";
314
313
  var bin = { "fumadocs-mdx": "./bin.js" };
315
314
  var files$1 = ["dist", "bin.js"];
316
315
  var type$1 = "module";
316
+ var sideEffects$1 = false;
317
317
  var exports$1 = {
318
318
  ".": "./dist/index.js",
319
319
  "./bin": "./dist/bin.js",
@@ -354,7 +354,7 @@ var dependencies$1 = {
354
354
  "esbuild": "^0.28.2",
355
355
  "estree-util-value-to-estree": "^3.5.0",
356
356
  "github-slugger": "^2.0.0",
357
- "magic-string": "^1.2.3",
357
+ "magic-string": "^1.4.1",
358
358
  "mdast-util-mdx": "^3.0.0",
359
359
  "picocolors": "^1.1.1",
360
360
  "picomatch": "^4.0.7",
@@ -364,9 +364,9 @@ var dependencies$1 = {
364
364
  "unist-util-remove-position": "^5.0.0",
365
365
  "unist-util-visit": "^5.1.0",
366
366
  "vfile": "^6.0.3",
367
- "yaml": "^2.9.0",
368
- "yuku-analyzer": "^0.9.5",
369
- "zod": "^4.5.4"
367
+ "yaml": "^2.9.1",
368
+ "yuku-analyzer": "^0.10.2",
369
+ "zod": "^4.6.5"
370
370
  };
371
371
  var devDependencies$1 = {
372
372
  "@fumadocs/satteri": "workspace:*",
@@ -374,22 +374,22 @@ var devDependencies$1 = {
374
374
  "@types/bun": "^1.4.2",
375
375
  "@types/mdast": "^4.0.4",
376
376
  "@types/mdx": "^2.0.14",
377
- "@types/node": "^26.5.0",
377
+ "@types/node": "^26.6.1",
378
378
  "@types/picomatch": "^4.0.3",
379
- "@types/react": "^19.2.18",
379
+ "@types/react": "^19.3.0",
380
380
  "fumadocs-core": "workspace:*",
381
381
  "mdast-util-directive": "^3.1.0",
382
- "next": "^16.3.4",
383
- "react": "^19.2.8",
382
+ "next": "^16.3.5",
383
+ "react": "^19.3.0",
384
384
  "remark": "^15.0.1",
385
385
  "remark-directive": "^4.0.0",
386
386
  "remark-mdx": "^3.1.1",
387
- "rolldown": "^1.2.7",
387
+ "rolldown": "^1.2.9",
388
388
  "satteri": "^0.10.5",
389
389
  "tsconfig": "workspace:*",
390
390
  "tsdown": "0.23.0",
391
- "vite": "^8.2.2",
392
- "webpack": "^5.110.3"
391
+ "vite": "^8.3.0",
392
+ "webpack": "^5.111.0"
393
393
  };
394
394
  var peerDependencies$1 = {
395
395
  "@fumadocs/satteri": "0.x.x",
@@ -429,6 +429,7 @@ var package_default$1 = {
429
429
  bin,
430
430
  files: files$1,
431
431
  type: type$1,
432
+ sideEffects: sideEffects$1,
432
433
  exports: exports$1,
433
434
  publishConfig: publishConfig$1,
434
435
  scripts: scripts$1,
@@ -457,11 +458,12 @@ var package_exports = /* @__PURE__ */ __exportAll({
457
458
  publishConfig: () => publishConfig,
458
459
  repository: () => repository,
459
460
  scripts: () => scripts,
461
+ sideEffects: () => sideEffects,
460
462
  type: () => type,
461
463
  version: () => version
462
464
  });
463
465
  var name = "@fumadocs/base-ui";
464
- var version = "16.15.10";
466
+ var version = "16.15.12";
465
467
  var description = "The Base UI version of Fumadocs UI";
466
468
  var keywords = ["Docs", "Fumadocs"];
467
469
  var homepage = "https://fumadocs.dev";
@@ -470,6 +472,7 @@ var author = "Fuma Nama";
470
472
  var repository = "github:fuma-nama/fumadocs";
471
473
  var files = ["css", "dist"];
472
474
  var type = "module";
475
+ var sideEffects = ["./css/**/*.css", "./dist/**/*.css"];
473
476
  var exports = {
474
477
  "./components/accordion": "./dist/components/accordion.js",
475
478
  "./components/banner": "./dist/components/banner.js",
@@ -503,7 +506,6 @@ var exports = {
503
506
  "./components/ui/button": "./dist/components/ui/button.js",
504
507
  "./components/ui/collapsible": "./dist/components/ui/collapsible.js",
505
508
  "./components/ui/popover": "./dist/components/ui/popover.js",
506
- "./components/ui/scroll-area": "./dist/components/ui/scroll-area.js",
507
509
  "./components/ui/tabs": "./dist/components/ui/tabs.js",
508
510
  "./contexts/i18n": "./dist/contexts/i18n.js",
509
511
  "./contexts/search": "./dist/contexts/search.js",
@@ -587,9 +589,9 @@ var dependencies = {
587
589
  "@fuma-translate/react": "^1.0.2",
588
590
  "@fumadocs/tailwind": "workspace:*",
589
591
  "class-variance-authority": "^0.7.1",
590
- "cn": "^0.2.6",
591
- "lucide-react": "^1.43.0",
592
- "motion": "^13.2.0",
592
+ "cn": "^0.3.0",
593
+ "lucide-react": "^1.47.0",
594
+ "motion": "^13.4.0",
593
595
  "next-themes": "^0.4.6",
594
596
  "react-remove-scroll": "^2.7.2",
595
597
  "rehype-raw": "^7.0.0",
@@ -604,9 +606,9 @@ var devDependencies = {
604
606
  "@tsdown/css": "^0.23.0",
605
607
  "@types/hast": "^3.0.5",
606
608
  "@types/mdx": "^2.0.14",
607
- "@types/node": "^26.5.0",
608
- "@types/react": "^19.2.18",
609
- "@types/react-dom": "^19.2.7",
609
+ "@types/node": "^26.6.1",
610
+ "@types/react": "^19.3.0",
611
+ "@types/react-dom": "^19.3.0",
610
612
  "fuma-cli": "^0.1.1",
611
613
  "fumadocs-core": "workspace:*",
612
614
  "react-medium-image-zoom": "^5.4.9",
@@ -642,6 +644,7 @@ var package_default = {
642
644
  repository,
643
645
  files,
644
646
  type,
647
+ sideEffects,
645
648
  exports,
646
649
  publishConfig,
647
650
  scripts,
@@ -721,4 +724,4 @@ depVersions["fumadocs-ui"] = `npm:${name}@${version}`;
721
724
  //#endregion
722
725
  export { templates as i, isCI as n, sourceDir as r, depVersions as t };
723
726
 
724
- //# sourceMappingURL=constants-BwsoV0iu.js.map
727
+ //# sourceMappingURL=constants-C-St-pVh.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants-BwsoV0iu.js","names":["corePkg","mdxPkg","basePkg","versionPkg.dependencies","basePkg.name","basePkg.version"],"sources":["../../create-app-versions/package.json","../../core/package.json","../../mdx/package.json","../../base-ui/package.json","../src/constants.ts"],"sourcesContent":["","","","","import { fileURLToPath } from 'node:url';\nimport versionPkg from '../../create-app-versions/package.json';\nimport * as corePkg from '../../core/package.json';\nimport * as mdxPkg from '../../mdx/package.json';\nimport * as basePkg from '../../base-ui/package.json';\n\nexport const sourceDir = fileURLToPath(new URL(`../`, import.meta.url).href);\n\nexport const isCI = Boolean(process.env.CI);\n\nexport interface TemplateInfo {\n value:\n | '+next+fuma-docs-mdx'\n | 'astro'\n | 'waku'\n | 'react-router'\n | 'react-router-spa'\n | 'tanstack-start'\n | 'tanstack-start-spa'\n | '+next+fuma-docs-mdx+static';\n label: string;\n appDir: string;\n /**\n * path to root provider, relative to `appDir``\n */\n rootProviderPath: string;\n hint?: string;\n /**\n * rename files when copying from template\n */\n rename?: (name: string) => string;\n}\n\nexport const templates: TemplateInfo[] = [\n {\n value: '+next+fuma-docs-mdx',\n label: 'Next.js: Fumadocs MDX',\n hint: 'recommended: powerful and mature',\n appDir: '',\n rootProviderPath: 'app/layout.tsx',\n },\n {\n value: 'waku',\n label: 'Waku: Fumadocs MDX',\n hint: 'recommended: fast and simple',\n appDir: 'src',\n rootProviderPath: 'components/provider.tsx',\n },\n {\n value: '+next+fuma-docs-mdx+static',\n label: 'Next.js Static: Fumadocs MDX',\n appDir: '',\n rootProviderPath: 'components/provider.tsx',\n },\n {\n value: 'react-router',\n label: 'React Router: Fumadocs MDX (not RSC)',\n appDir: 'app',\n rootProviderPath: 'root.tsx',\n },\n {\n value: 'react-router-spa',\n label: 'React Router SPA: Fumadocs MDX (not RSC)',\n hint: 'SPA mode allows you to host the site statically, compatible with a CDN.',\n appDir: 'app',\n rootProviderPath: 'root.tsx',\n },\n {\n value: 'tanstack-start',\n label: 'Tanstack Start: Fumadocs MDX (not RSC)',\n appDir: 'src',\n rootProviderPath: 'routes/__root.tsx',\n },\n {\n value: 'tanstack-start-spa',\n label: 'Tanstack Start SPA: Fumadocs MDX (not RSC)',\n hint: 'SPA mode allows you to host the site statically, compatible with a CDN.',\n appDir: 'src',\n rootProviderPath: 'routes/__root.tsx',\n },\n {\n value: 'astro',\n label: 'Astro: React Islands',\n hint: 'partial support only, uses Astro Content Collections.',\n appDir: 'src',\n rootProviderPath: 'components/docs.tsx',\n },\n];\n\nconst workspaces = [corePkg, mdxPkg, basePkg];\n\nexport const depVersions = versionPkg.dependencies;\n\nfor (const workspace of workspaces) {\n depVersions[workspace.name as keyof typeof depVersions] = workspace.version;\n}\n\ndepVersions['fumadocs-ui'] = `npm:${basePkg.name}@${basePkg.version}`;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AIMA,MAAa,YAAY,cAAc,IAAI,IAAI,OAAO,YAAY,GAAG,CAAC,CAAC,IAAI;AAE3E,MAAa,OAAO,QAAQ,QAAQ,IAAI,EAAE;AAyB1C,MAAa,YAA4B;CACvC;EACE,OAAO;EACP,OAAO;EACP,MAAM;EACN,QAAQ;EACR,kBAAkB;CACpB;CACA;EACE,OAAO;EACP,OAAO;EACP,MAAM;EACN,QAAQ;EACR,kBAAkB;CACpB;CACA;EACE,OAAO;EACP,OAAO;EACP,QAAQ;EACR,kBAAkB;CACpB;CACA;EACE,OAAO;EACP,OAAO;EACP,QAAQ;EACR,kBAAkB;CACpB;CACA;EACE,OAAO;EACP,OAAO;EACP,MAAM;EACN,QAAQ;EACR,kBAAkB;CACpB;CACA;EACE,OAAO;EACP,OAAO;EACP,QAAQ;EACR,kBAAkB;CACpB;CACA;EACE,OAAO;EACP,OAAO;EACP,MAAM;EACN,QAAQ;EACR,kBAAkB;CACpB;CACA;EACE,OAAO;EACP,OAAO;EACP,MAAM;EACN,QAAQ;EACR,kBAAkB;CACpB;AACF;AAEA,MAAM,aAAa;CAACA;CAASC;CAAQC;AAAO;AAE5C,MAAa,cAAcC;AAE3B,KAAK,MAAM,aAAa,YACtB,YAAY,UAAU,QAAoC,UAAU;AAGtE,YAAY,iBAAiB,OAAOC,KAAa,GAAGC"}
1
+ {"version":3,"file":"constants-C-St-pVh.js","names":["corePkg","mdxPkg","basePkg","versionPkg.dependencies","basePkg.name","basePkg.version"],"sources":["../../create-app-versions/package.json","../../core/package.json","../../mdx/package.json","../../base-ui/package.json","../src/constants.ts"],"sourcesContent":["","","","","import { fileURLToPath } from 'node:url';\nimport versionPkg from '../../create-app-versions/package.json';\nimport * as corePkg from '../../core/package.json';\nimport * as mdxPkg from '../../mdx/package.json';\nimport * as basePkg from '../../base-ui/package.json';\n\nexport const sourceDir = fileURLToPath(new URL(`../`, import.meta.url).href);\n\nexport const isCI = Boolean(process.env.CI);\n\nexport interface TemplateInfo {\n value:\n | '+next+fuma-docs-mdx'\n | 'astro'\n | 'waku'\n | 'react-router'\n | 'react-router-spa'\n | 'tanstack-start'\n | 'tanstack-start-spa'\n | '+next+fuma-docs-mdx+static';\n label: string;\n appDir: string;\n /**\n * path to root provider, relative to `appDir``\n */\n rootProviderPath: string;\n hint?: string;\n /**\n * rename files when copying from template\n */\n rename?: (name: string) => string;\n}\n\nexport const templates: TemplateInfo[] = [\n {\n value: '+next+fuma-docs-mdx',\n label: 'Next.js: Fumadocs MDX',\n hint: 'recommended: powerful and mature',\n appDir: '',\n rootProviderPath: 'app/layout.tsx',\n },\n {\n value: 'waku',\n label: 'Waku: Fumadocs MDX',\n hint: 'recommended: fast and simple',\n appDir: 'src',\n rootProviderPath: 'components/provider.tsx',\n },\n {\n value: '+next+fuma-docs-mdx+static',\n label: 'Next.js Static: Fumadocs MDX',\n appDir: '',\n rootProviderPath: 'components/provider.tsx',\n },\n {\n value: 'react-router',\n label: 'React Router: Fumadocs MDX (not RSC)',\n appDir: 'app',\n rootProviderPath: 'root.tsx',\n },\n {\n value: 'react-router-spa',\n label: 'React Router SPA: Fumadocs MDX (not RSC)',\n hint: 'SPA mode allows you to host the site statically, compatible with a CDN.',\n appDir: 'app',\n rootProviderPath: 'root.tsx',\n },\n {\n value: 'tanstack-start',\n label: 'Tanstack Start: Fumadocs MDX (not RSC)',\n appDir: 'src',\n rootProviderPath: 'routes/__root.tsx',\n },\n {\n value: 'tanstack-start-spa',\n label: 'Tanstack Start SPA: Fumadocs MDX (not RSC)',\n hint: 'SPA mode allows you to host the site statically, compatible with a CDN.',\n appDir: 'src',\n rootProviderPath: 'routes/__root.tsx',\n },\n {\n value: 'astro',\n label: 'Astro: React Islands',\n hint: 'partial support only, uses Astro Content Collections.',\n appDir: 'src',\n rootProviderPath: 'components/docs.tsx',\n },\n];\n\nconst workspaces = [corePkg, mdxPkg, basePkg];\n\nexport const depVersions = versionPkg.dependencies;\n\nfor (const workspace of workspaces) {\n depVersions[workspace.name as keyof typeof depVersions] = workspace.version;\n}\n\ndepVersions['fumadocs-ui'] = `npm:${basePkg.name}@${basePkg.version}`;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AIMA,MAAa,YAAY,cAAc,IAAI,IAAI,OAAO,YAAY,GAAG,CAAC,CAAC,IAAI;AAE3E,MAAa,OAAO,QAAQ,QAAQ,IAAI,EAAE;AAyB1C,MAAa,YAA4B;CACvC;EACE,OAAO;EACP,OAAO;EACP,MAAM;EACN,QAAQ;EACR,kBAAkB;CACpB;CACA;EACE,OAAO;EACP,OAAO;EACP,MAAM;EACN,QAAQ;EACR,kBAAkB;CACpB;CACA;EACE,OAAO;EACP,OAAO;EACP,QAAQ;EACR,kBAAkB;CACpB;CACA;EACE,OAAO;EACP,OAAO;EACP,QAAQ;EACR,kBAAkB;CACpB;CACA;EACE,OAAO;EACP,OAAO;EACP,MAAM;EACN,QAAQ;EACR,kBAAkB;CACpB;CACA;EACE,OAAO;EACP,OAAO;EACP,QAAQ;EACR,kBAAkB;CACpB;CACA;EACE,OAAO;EACP,OAAO;EACP,MAAM;EACN,QAAQ;EACR,kBAAkB;CACpB;CACA;EACE,OAAO;EACP,OAAO;EACP,MAAM;EACN,QAAQ;EACR,kBAAkB;CACpB;AACF;AAEA,MAAM,aAAa;CAACA;CAASC;CAAQC;AAAO;AAE5C,MAAa,cAAcC;AAE3B,KAAK,MAAM,aAAa,YACtB,YAAY,UAAU,QAAoC,UAAU;AAGtE,YAAY,iBAAiB,OAAOC,KAAa,GAAGC"}
@@ -1,4 +1,4 @@
1
- import { t as depVersions } from "./constants-BwsoV0iu.js";
1
+ import { t as depVersions } from "./constants-C-St-pVh.js";
2
2
  import { HttpRegistryConnector } from "fuma-cli/registry/connector";
3
3
  import { getDefaultConfig } from "@fumadocs/cli/config";
4
4
  import { runFeature } from "@fumadocs/cli/features";
@@ -24,4 +24,4 @@ function feature(feature, options) {
24
24
  //#endregion
25
25
  export { feature as t };
26
26
 
27
- //# sourceMappingURL=feature-B4k5rz5x.js.map
27
+ //# sourceMappingURL=feature-Dr_x74-w.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"feature-B4k5rz5x.js","names":[],"sources":["../src/plugins/feature.ts"],"sourcesContent":["import type { TemplatePlugin } from '@/index';\nimport { HttpRegistryConnector } from 'fuma-cli/registry/connector';\nimport { getDefaultConfig } from '@fumadocs/cli/config';\nimport { type Feature, runFeature } from '@fumadocs/cli/features';\nimport { loadProject } from '@fumadocs/cli/project';\nimport { depVersions } from '@/constants';\n\n/** apply a Fumadocs CLI feature to the generated project */\nexport function feature<O extends object>(feature: Feature<O>, options: O): TemplatePlugin {\n return {\n async afterWrite() {\n const config = await getDefaultConfig(this.dest);\n const project = await loadProject(config, this.dest);\n\n await runFeature(feature, options, {\n project,\n connector: new HttpRegistryConnector('https://fumadocs.dev/registry'),\n versions: depVersions,\n io: { log: this.log, installDependencies: false, confirmOverwrite: async () => true },\n });\n },\n };\n}\n"],"mappings":";;;;;;;AAQA,SAAgB,QAA0B,SAAqB,SAA4B;CACzF,OAAO,EACL,MAAM,aAAa;EACjB,MAAM,SAAS,MAAM,iBAAiB,KAAK,IAAI;EAC/C,MAAM,UAAU,MAAM,YAAY,QAAQ,KAAK,IAAI;EAEnD,MAAM,WAAW,SAAS,SAAS;GACjC;GACA,WAAW,IAAI,sBAAsB,+BAA+B;GACpE,UAAU;GACV,IAAI;IAAE,KAAK,KAAK;IAAK,qBAAqB;IAAO,kBAAkB,YAAY;GAAK;EACtF,CAAC;CACH,EACF;AACF"}
1
+ {"version":3,"file":"feature-Dr_x74-w.js","names":[],"sources":["../src/plugins/feature.ts"],"sourcesContent":["import type { TemplatePlugin } from '@/index';\nimport { HttpRegistryConnector } from 'fuma-cli/registry/connector';\nimport { getDefaultConfig } from '@fumadocs/cli/config';\nimport { type Feature, runFeature } from '@fumadocs/cli/features';\nimport { loadProject } from '@fumadocs/cli/project';\nimport { depVersions } from '@/constants';\n\n/** apply a Fumadocs CLI feature to the generated project */\nexport function feature<O extends object>(feature: Feature<O>, options: O): TemplatePlugin {\n return {\n async afterWrite() {\n const config = await getDefaultConfig(this.dest);\n const project = await loadProject(config, this.dest);\n\n await runFeature(feature, options, {\n project,\n connector: new HttpRegistryConnector('https://fumadocs.dev/registry'),\n versions: depVersions,\n io: { log: this.log, installDependencies: false, confirmOverwrite: async () => true },\n });\n },\n };\n}\n"],"mappings":";;;;;;;AAQA,SAAgB,QAA0B,SAAqB,SAA4B;CACzF,OAAO,EACL,MAAM,aAAa;EACjB,MAAM,SAAS,MAAM,iBAAiB,KAAK,IAAI;EAC/C,MAAM,UAAU,MAAM,YAAY,QAAQ,KAAK,IAAI;EAEnD,MAAM,WAAW,SAAS,SAAS;GACjC;GACA,WAAW,IAAI,sBAAsB,+BAA+B;GACpE,UAAU;GACV,IAAI;IAAE,KAAK,KAAK;IAAK,qBAAqB;IAAO,kBAAkB,YAAY;GAAK;EACtF,CAAC;CACH,EACF;AACF"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import { t as create } from "./src-BzEHzUFz.js";
1
+ import { t as create } from "./src-CT7YI5BW.js";
2
2
  export { create };
@@ -1,2 +1,2 @@
1
- import { t as feature } from "../feature-B4k5rz5x.js";
1
+ import { t as feature } from "../feature-Dr_x74-w.js";
2
2
  export { feature };
@@ -1,4 +1,4 @@
1
- import { i as templates, r as sourceDir, t as depVersions } from "./constants-BwsoV0iu.js";
1
+ import { i as templates, r as sourceDir, t as depVersions } from "./constants-C-St-pVh.js";
2
2
  import fs from "node:fs/promises";
3
3
  import path, { join } from "node:path";
4
4
  import { x } from "tinyexec";
@@ -145,4 +145,4 @@ async function initPackageJson(projectName, packageJsonPath) {
145
145
  //#endregion
146
146
  export { getPackageManager as n, managers as r, create as t };
147
147
 
148
- //# sourceMappingURL=src-BzEHzUFz.js.map
148
+ //# sourceMappingURL=src-CT7YI5BW.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src-BzEHzUFz.js","names":[],"sources":["../src/auto-install.ts","../src/utils.ts","../src/index.ts"],"sourcesContent":["import { x } from 'tinyexec';\n\nexport type PackageManager = (typeof managers)[number];\n\nexport const managers = ['npm', 'yarn', 'bun', 'pnpm'] as const;\n\nexport function getPackageManager(): PackageManager {\n const userAgent = process.env.npm_config_user_agent ?? '';\n\n if (userAgent.startsWith('yarn')) {\n return 'yarn';\n }\n\n if (userAgent.startsWith('pnpm')) {\n return 'pnpm';\n }\n\n if (userAgent.startsWith('bun')) {\n return 'bun';\n }\n\n return 'npm';\n}\n\nexport async function autoInstall(manager: PackageManager, dest: string) {\n await x(manager, ['install'], {\n throwOnError: true,\n nodeOptions: {\n env: {\n ...process.env,\n NODE_ENV: 'development',\n DISABLE_OPENCOLLECTIVE: '1',\n },\n cwd: dest,\n },\n });\n}\n","import fs from 'node:fs/promises';\nimport path, { join } from 'node:path';\nimport { x } from 'tinyexec';\n\nexport async function copy(\n from: string,\n to: string,\n options: {\n rename?: (s: string) => string;\n filter?: (s: string) => boolean;\n filterDir?: (dir: string) => boolean;\n } = {},\n): Promise<void> {\n const { rename = (s) => s, filterDir = () => true, filter = () => true } = options;\n const stats = await fs.stat(from);\n\n if (stats.isDirectory() && filterDir(from)) {\n const files = await fs.readdir(from);\n\n await Promise.all(\n files.map((file) => copy(path.join(from, file), path.join(to, file), options)),\n );\n }\n\n if (stats.isFile() && filter(from)) {\n to = rename(to);\n await fs.mkdir(path.dirname(to), { recursive: true });\n await fs.copyFile(from, to);\n }\n}\n\nasync function isInGitRepository(cwd: string) {\n const { exitCode } = await x('git', ['rev-parse', '--is-inside-work-tree'], {\n nodeOptions: { cwd },\n });\n\n return exitCode === 0;\n}\n\nasync function isDefaultBranchSet(cwd: string) {\n const { exitCode } = await x('git', ['config', 'init.defaultBranch'], {\n nodeOptions: { cwd },\n });\n\n return exitCode === 0;\n}\n\n/*\nInitialize a Git repo on the project.\n\nBased on https://github.com/vercel/next.js/blob/canary/packages/create-next-app/helpers/git.ts\n*/\nexport async function tryGitInit(cwd: string): Promise<boolean> {\n const { exitCode } = await x('git', ['--version']);\n if (exitCode !== 0) return false;\n\n if (await isInGitRepository(cwd)) return false;\n\n try {\n await x('git', ['init'], {\n throwOnError: true,\n nodeOptions: { cwd },\n });\n\n if (!(await isDefaultBranchSet(cwd))) {\n await x('git', ['checkout', '-b', 'main'], {\n throwOnError: true,\n nodeOptions: {\n cwd,\n },\n });\n }\n\n await x('git', ['add', '-A'], {\n throwOnError: true,\n nodeOptions: {\n cwd,\n },\n });\n\n await x('git', ['commit', '-m', 'Initial commit from Create Fumadocs App'], {\n throwOnError: true,\n nodeOptions: {\n cwd,\n },\n });\n return true;\n } catch {\n await fs.rm(join(cwd, '.git'), { recursive: true, force: true });\n\n return false;\n }\n}\n","import path from 'node:path';\nimport fs from 'node:fs/promises';\nimport { copy, tryGitInit } from '@/utils';\nimport type { PackageManager } from './auto-install';\nimport { autoInstall } from './auto-install';\nimport { depVersions, sourceDir, type TemplateInfo, templates } from './constants';\n\nexport type Template = TemplateInfo['value'];\nexport interface Options {\n outputDir: string;\n template: Template;\n\n /**\n * the package manager to use\n *\n * @defaultValue 'npm'\n */\n packageManager?: PackageManager;\n\n installDeps?: boolean;\n initializeGit?: boolean;\n log?: (message: string) => void;\n plugins?: TemplatePlugin[];\n}\n\nexport interface TemplatePluginContext {\n template: TemplateInfo;\n log: (message: string) => void;\n /**\n * output directory\n */\n dest: string;\n\n /**\n * output directory for app code (e.g. under `/src`)\n */\n appDir: string;\n}\n\nexport type PackageJsonType = {\n name?: string;\n version?: string;\n private?: boolean;\n scripts?: Record<string, string>;\n dependencies?: Record<string, string>;\n devDependencies?: Record<string, string>;\n} & Record<string, unknown>;\n\ntype Awaitable<T> = T | Promise<T>;\n\nexport interface TemplatePlugin {\n template?: (\n this: Pick<TemplatePluginContext, 'dest'>,\n info: TemplateInfo,\n ) => Awaitable<void | TemplateInfo>;\n packageJson?: (\n this: TemplatePluginContext,\n packageJson: PackageJsonType,\n ) => Awaitable<void | PackageJsonType>;\n afterWrite?: (this: TemplatePluginContext) => Awaitable<void>;\n readme?: (this: TemplatePluginContext, content: string) => Awaitable<void | string>;\n}\n\nexport async function create(createOptions: Options): Promise<void> {\n const {\n outputDir,\n plugins = [],\n packageManager = 'npm',\n initializeGit = false,\n installDeps = false,\n log = console.log,\n } = createOptions;\n\n let template = templates.find((item) => item.value === createOptions.template)!;\n for (const plugin of plugins) {\n template = (await plugin.template?.call({ dest: outputDir }, template)) ?? template;\n }\n\n const appDir = path.join(outputDir, template.appDir);\n const projectName = path.basename(outputDir);\n const pluginContext: TemplatePluginContext = {\n template,\n dest: outputDir,\n log,\n appDir,\n };\n\n await copy(path.join(sourceDir, 'template', template.value), outputDir, {\n rename(file) {\n file = file.replace('example.gitignore', '.gitignore');\n\n return template.rename?.(file) ?? file;\n },\n });\n\n const packageJsonPath = path.join(outputDir, 'package.json');\n let packageJson = await initPackageJson(projectName, packageJsonPath);\n for (const plugin of plugins) {\n packageJson = (await plugin.packageJson?.call(pluginContext, packageJson)) ?? packageJson;\n }\n await fs.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2));\n\n const readmePath = path.join(outputDir, 'README.md');\n let readme = `# ${projectName}\\n\\n${await fs.readFile(readmePath)}`;\n for (const plugin of plugins) {\n readme = (await plugin.readme?.call(pluginContext, readme)) ?? readme;\n }\n await fs.writeFile(readmePath, readme);\n\n for (const plugin of plugins) {\n await plugin.afterWrite?.call(pluginContext);\n }\n\n if (installDeps) {\n try {\n await autoInstall(packageManager, outputDir);\n log('Installed dependencies');\n } catch (err) {\n log(`Failed to install dependencies: ${err}`);\n }\n }\n\n if (initializeGit && (await tryGitInit(outputDir))) {\n log('Initialized Git repository');\n }\n}\n\nasync function initPackageJson(\n projectName: string,\n packageJsonPath: string,\n): Promise<PackageJsonType> {\n function replaceWorkspaceDeps(deps: Record<string, string> = {}) {\n for (const k in deps) {\n if (deps[k].startsWith('workspace:') && k in depVersions) {\n deps[k] = depVersions[k as keyof typeof depVersions];\n }\n }\n\n return deps;\n }\n\n const packageJson: PackageJsonType = JSON.parse(await fs.readFile(packageJsonPath, 'utf-8'));\n const dependencies = replaceWorkspaceDeps(packageJson.dependencies);\n const devDependencies = replaceWorkspaceDeps(packageJson.devDependencies);\n const scripts = { ...packageJson.scripts };\n\n return {\n ...packageJson,\n name: projectName,\n scripts,\n dependencies,\n devDependencies,\n };\n}\n"],"mappings":";;;;;AAIA,MAAa,WAAW;CAAC;CAAO;CAAQ;CAAO;AAAM;AAErD,SAAgB,oBAAoC;CAClD,MAAM,YAAY,QAAQ,IAAI,yBAAyB;CAEvD,IAAI,UAAU,WAAW,MAAM,GAC7B,OAAO;CAGT,IAAI,UAAU,WAAW,MAAM,GAC7B,OAAO;CAGT,IAAI,UAAU,WAAW,KAAK,GAC5B,OAAO;CAGT,OAAO;AACT;AAEA,eAAsB,YAAY,SAAyB,MAAc;CACvE,MAAM,EAAE,SAAS,CAAC,SAAS,GAAG;EAC5B,cAAc;EACd,aAAa;GACX,KAAK;IACH,GAAG,QAAQ;IACX,UAAU;IACV,wBAAwB;GAC1B;GACA,KAAK;EACP;CACF,CAAC;AACH;;;AChCA,eAAsB,KACpB,MACA,IACA,UAII,CAAC,GACU;CACf,MAAM,EAAE,UAAU,MAAM,GAAG,kBAAkB,MAAM,eAAe,SAAS;CAC3E,MAAM,QAAQ,MAAM,GAAG,KAAK,IAAI;CAEhC,IAAI,MAAM,YAAY,KAAK,UAAU,IAAI,GAAG;EAC1C,MAAM,QAAQ,MAAM,GAAG,QAAQ,IAAI;EAEnC,MAAM,QAAQ,IACZ,MAAM,KAAK,SAAS,KAAK,KAAK,KAAK,MAAM,IAAI,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,OAAO,CAAC,CAC/E;CACF;CAEA,IAAI,MAAM,OAAO,KAAK,OAAO,IAAI,GAAG;EAClC,KAAK,OAAO,EAAE;EACd,MAAM,GAAG,MAAM,KAAK,QAAQ,EAAE,GAAG,EAAE,WAAW,KAAK,CAAC;EACpD,MAAM,GAAG,SAAS,MAAM,EAAE;CAC5B;AACF;AAEA,eAAe,kBAAkB,KAAa;CAC5C,MAAM,EAAE,aAAa,MAAM,EAAE,OAAO,CAAC,aAAa,uBAAuB,GAAG,EAC1E,aAAa,EAAE,IAAI,EACrB,CAAC;CAED,OAAO,aAAa;AACtB;AAEA,eAAe,mBAAmB,KAAa;CAC7C,MAAM,EAAE,aAAa,MAAM,EAAE,OAAO,CAAC,UAAU,oBAAoB,GAAG,EACpE,aAAa,EAAE,IAAI,EACrB,CAAC;CAED,OAAO,aAAa;AACtB;AAOA,eAAsB,WAAW,KAA+B;CAC9D,MAAM,EAAE,aAAa,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC;CACjD,IAAI,aAAa,GAAG,OAAO;CAE3B,IAAI,MAAM,kBAAkB,GAAG,GAAG,OAAO;CAEzC,IAAI;EACF,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG;GACvB,cAAc;GACd,aAAa,EAAE,IAAI;EACrB,CAAC;EAED,IAAI,CAAE,MAAM,mBAAmB,GAAG,GAChC,MAAM,EAAE,OAAO;GAAC;GAAY;GAAM;EAAM,GAAG;GACzC,cAAc;GACd,aAAa,EACX,IACF;EACF,CAAC;EAGH,MAAM,EAAE,OAAO,CAAC,OAAO,IAAI,GAAG;GAC5B,cAAc;GACd,aAAa,EACX,IACF;EACF,CAAC;EAED,MAAM,EAAE,OAAO;GAAC;GAAU;GAAM;EAAyC,GAAG;GAC1E,cAAc;GACd,aAAa,EACX,IACF;EACF,CAAC;EACD,OAAO;CACT,QAAQ;EACN,MAAM,GAAG,GAAG,KAAK,KAAK,MAAM,GAAG;GAAE,WAAW;GAAM,OAAO;EAAK,CAAC;EAE/D,OAAO;CACT;AACF;;;AC7BA,eAAsB,OAAO,eAAuC;CAClE,MAAM,EACJ,WACA,UAAU,CAAC,GACX,iBAAiB,OACjB,gBAAgB,OAChB,cAAc,OACd,MAAM,QAAQ,QACZ;CAEJ,IAAI,WAAW,UAAU,MAAM,SAAS,KAAK,UAAU,cAAc,QAAQ;CAC7E,KAAK,MAAM,UAAU,SACnB,WAAY,MAAM,OAAO,UAAU,KAAK,EAAE,MAAM,UAAU,GAAG,QAAQ,KAAM;CAG7E,MAAM,SAAS,KAAK,KAAK,WAAW,SAAS,MAAM;CACnD,MAAM,cAAc,KAAK,SAAS,SAAS;CAC3C,MAAM,gBAAuC;EAC3C;EACA,MAAM;EACN;EACA;CACF;CAEA,MAAM,KAAK,KAAK,KAAK,WAAW,YAAY,SAAS,KAAK,GAAG,WAAW,EACtE,OAAO,MAAM;EACX,OAAO,KAAK,QAAQ,qBAAqB,YAAY;EAErD,OAAO,SAAS,SAAS,IAAI,KAAK;CACpC,EACF,CAAC;CAED,MAAM,kBAAkB,KAAK,KAAK,WAAW,cAAc;CAC3D,IAAI,cAAc,MAAM,gBAAgB,aAAa,eAAe;CACpE,KAAK,MAAM,UAAU,SACnB,cAAe,MAAM,OAAO,aAAa,KAAK,eAAe,WAAW,KAAM;CAEhF,MAAM,GAAG,UAAU,iBAAiB,KAAK,UAAU,aAAa,MAAM,CAAC,CAAC;CAExE,MAAM,aAAa,KAAK,KAAK,WAAW,WAAW;CACnD,IAAI,SAAS,KAAK,YAAY,MAAM,MAAM,GAAG,SAAS,UAAU;CAChE,KAAK,MAAM,UAAU,SACnB,SAAU,MAAM,OAAO,QAAQ,KAAK,eAAe,MAAM,KAAM;CAEjE,MAAM,GAAG,UAAU,YAAY,MAAM;CAErC,KAAK,MAAM,UAAU,SACnB,MAAM,OAAO,YAAY,KAAK,aAAa;CAG7C,IAAI,aACF,IAAI;EACF,MAAM,YAAY,gBAAgB,SAAS;EAC3C,IAAI,wBAAwB;CAC9B,SAAS,KAAK;EACZ,IAAI,mCAAmC,KAAK;CAC9C;CAGF,IAAI,iBAAkB,MAAM,WAAW,SAAS,GAC9C,IAAI,4BAA4B;AAEpC;AAEA,eAAe,gBACb,aACA,iBAC0B;CAC1B,SAAS,qBAAqB,OAA+B,CAAC,GAAG;EAC/D,KAAK,MAAM,KAAK,MACd,IAAI,KAAK,EAAE,CAAC,WAAW,YAAY,KAAK,KAAK,aAC3C,KAAK,KAAK,YAAY;EAI1B,OAAO;CACT;CAEA,MAAM,cAA+B,KAAK,MAAM,MAAM,GAAG,SAAS,iBAAiB,OAAO,CAAC;CAC3F,MAAM,eAAe,qBAAqB,YAAY,YAAY;CAClE,MAAM,kBAAkB,qBAAqB,YAAY,eAAe;CACxE,MAAM,UAAU,EAAE,GAAG,YAAY,QAAQ;CAEzC,OAAO;EACL,GAAG;EACH,MAAM;EACN;EACA;EACA;CACF;AACF"}
1
+ {"version":3,"file":"src-CT7YI5BW.js","names":[],"sources":["../src/auto-install.ts","../src/utils.ts","../src/index.ts"],"sourcesContent":["import { x } from 'tinyexec';\n\nexport type PackageManager = (typeof managers)[number];\n\nexport const managers = ['npm', 'yarn', 'bun', 'pnpm'] as const;\n\nexport function getPackageManager(): PackageManager {\n const userAgent = process.env.npm_config_user_agent ?? '';\n\n if (userAgent.startsWith('yarn')) {\n return 'yarn';\n }\n\n if (userAgent.startsWith('pnpm')) {\n return 'pnpm';\n }\n\n if (userAgent.startsWith('bun')) {\n return 'bun';\n }\n\n return 'npm';\n}\n\nexport async function autoInstall(manager: PackageManager, dest: string) {\n await x(manager, ['install'], {\n throwOnError: true,\n nodeOptions: {\n env: {\n ...process.env,\n NODE_ENV: 'development',\n DISABLE_OPENCOLLECTIVE: '1',\n },\n cwd: dest,\n },\n });\n}\n","import fs from 'node:fs/promises';\nimport path, { join } from 'node:path';\nimport { x } from 'tinyexec';\n\nexport async function copy(\n from: string,\n to: string,\n options: {\n rename?: (s: string) => string;\n filter?: (s: string) => boolean;\n filterDir?: (dir: string) => boolean;\n } = {},\n): Promise<void> {\n const { rename = (s) => s, filterDir = () => true, filter = () => true } = options;\n const stats = await fs.stat(from);\n\n if (stats.isDirectory() && filterDir(from)) {\n const files = await fs.readdir(from);\n\n await Promise.all(\n files.map((file) => copy(path.join(from, file), path.join(to, file), options)),\n );\n }\n\n if (stats.isFile() && filter(from)) {\n to = rename(to);\n await fs.mkdir(path.dirname(to), { recursive: true });\n await fs.copyFile(from, to);\n }\n}\n\nasync function isInGitRepository(cwd: string) {\n const { exitCode } = await x('git', ['rev-parse', '--is-inside-work-tree'], {\n nodeOptions: { cwd },\n });\n\n return exitCode === 0;\n}\n\nasync function isDefaultBranchSet(cwd: string) {\n const { exitCode } = await x('git', ['config', 'init.defaultBranch'], {\n nodeOptions: { cwd },\n });\n\n return exitCode === 0;\n}\n\n/*\nInitialize a Git repo on the project.\n\nBased on https://github.com/vercel/next.js/blob/canary/packages/create-next-app/helpers/git.ts\n*/\nexport async function tryGitInit(cwd: string): Promise<boolean> {\n const { exitCode } = await x('git', ['--version']);\n if (exitCode !== 0) return false;\n\n if (await isInGitRepository(cwd)) return false;\n\n try {\n await x('git', ['init'], {\n throwOnError: true,\n nodeOptions: { cwd },\n });\n\n if (!(await isDefaultBranchSet(cwd))) {\n await x('git', ['checkout', '-b', 'main'], {\n throwOnError: true,\n nodeOptions: {\n cwd,\n },\n });\n }\n\n await x('git', ['add', '-A'], {\n throwOnError: true,\n nodeOptions: {\n cwd,\n },\n });\n\n await x('git', ['commit', '-m', 'Initial commit from Create Fumadocs App'], {\n throwOnError: true,\n nodeOptions: {\n cwd,\n },\n });\n return true;\n } catch {\n await fs.rm(join(cwd, '.git'), { recursive: true, force: true });\n\n return false;\n }\n}\n","import path from 'node:path';\nimport fs from 'node:fs/promises';\nimport { copy, tryGitInit } from '@/utils';\nimport type { PackageManager } from './auto-install';\nimport { autoInstall } from './auto-install';\nimport { depVersions, sourceDir, type TemplateInfo, templates } from './constants';\n\nexport type Template = TemplateInfo['value'];\nexport interface Options {\n outputDir: string;\n template: Template;\n\n /**\n * the package manager to use\n *\n * @defaultValue 'npm'\n */\n packageManager?: PackageManager;\n\n installDeps?: boolean;\n initializeGit?: boolean;\n log?: (message: string) => void;\n plugins?: TemplatePlugin[];\n}\n\nexport interface TemplatePluginContext {\n template: TemplateInfo;\n log: (message: string) => void;\n /**\n * output directory\n */\n dest: string;\n\n /**\n * output directory for app code (e.g. under `/src`)\n */\n appDir: string;\n}\n\nexport type PackageJsonType = {\n name?: string;\n version?: string;\n private?: boolean;\n scripts?: Record<string, string>;\n dependencies?: Record<string, string>;\n devDependencies?: Record<string, string>;\n} & Record<string, unknown>;\n\ntype Awaitable<T> = T | Promise<T>;\n\nexport interface TemplatePlugin {\n template?: (\n this: Pick<TemplatePluginContext, 'dest'>,\n info: TemplateInfo,\n ) => Awaitable<void | TemplateInfo>;\n packageJson?: (\n this: TemplatePluginContext,\n packageJson: PackageJsonType,\n ) => Awaitable<void | PackageJsonType>;\n afterWrite?: (this: TemplatePluginContext) => Awaitable<void>;\n readme?: (this: TemplatePluginContext, content: string) => Awaitable<void | string>;\n}\n\nexport async function create(createOptions: Options): Promise<void> {\n const {\n outputDir,\n plugins = [],\n packageManager = 'npm',\n initializeGit = false,\n installDeps = false,\n log = console.log,\n } = createOptions;\n\n let template = templates.find((item) => item.value === createOptions.template)!;\n for (const plugin of plugins) {\n template = (await plugin.template?.call({ dest: outputDir }, template)) ?? template;\n }\n\n const appDir = path.join(outputDir, template.appDir);\n const projectName = path.basename(outputDir);\n const pluginContext: TemplatePluginContext = {\n template,\n dest: outputDir,\n log,\n appDir,\n };\n\n await copy(path.join(sourceDir, 'template', template.value), outputDir, {\n rename(file) {\n file = file.replace('example.gitignore', '.gitignore');\n\n return template.rename?.(file) ?? file;\n },\n });\n\n const packageJsonPath = path.join(outputDir, 'package.json');\n let packageJson = await initPackageJson(projectName, packageJsonPath);\n for (const plugin of plugins) {\n packageJson = (await plugin.packageJson?.call(pluginContext, packageJson)) ?? packageJson;\n }\n await fs.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2));\n\n const readmePath = path.join(outputDir, 'README.md');\n let readme = `# ${projectName}\\n\\n${await fs.readFile(readmePath)}`;\n for (const plugin of plugins) {\n readme = (await plugin.readme?.call(pluginContext, readme)) ?? readme;\n }\n await fs.writeFile(readmePath, readme);\n\n for (const plugin of plugins) {\n await plugin.afterWrite?.call(pluginContext);\n }\n\n if (installDeps) {\n try {\n await autoInstall(packageManager, outputDir);\n log('Installed dependencies');\n } catch (err) {\n log(`Failed to install dependencies: ${err}`);\n }\n }\n\n if (initializeGit && (await tryGitInit(outputDir))) {\n log('Initialized Git repository');\n }\n}\n\nasync function initPackageJson(\n projectName: string,\n packageJsonPath: string,\n): Promise<PackageJsonType> {\n function replaceWorkspaceDeps(deps: Record<string, string> = {}) {\n for (const k in deps) {\n if (deps[k].startsWith('workspace:') && k in depVersions) {\n deps[k] = depVersions[k as keyof typeof depVersions];\n }\n }\n\n return deps;\n }\n\n const packageJson: PackageJsonType = JSON.parse(await fs.readFile(packageJsonPath, 'utf-8'));\n const dependencies = replaceWorkspaceDeps(packageJson.dependencies);\n const devDependencies = replaceWorkspaceDeps(packageJson.devDependencies);\n const scripts = { ...packageJson.scripts };\n\n return {\n ...packageJson,\n name: projectName,\n scripts,\n dependencies,\n devDependencies,\n };\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-fumadocs-app",
3
- "version": "16.2.1",
3
+ "version": "16.2.3",
4
4
  "description": "Create a new documentation site with Fumadocs",
5
5
  "keywords": [
6
6
  "Docs",
@@ -14,11 +14,15 @@
14
14
  "type": "git",
15
15
  "url": "github:fuma-nama/fumadocs"
16
16
  },
17
+ "bin": {
18
+ "create-fumadocs-app": "./dist/bin.js"
19
+ },
17
20
  "files": [
18
21
  "dist",
19
22
  "template"
20
23
  ],
21
24
  "type": "module",
25
+ "sideEffects": false,
22
26
  "module": "./dist/index.js",
23
27
  "types": "./dist/index.d.ts",
24
28
  "exports": {
@@ -35,20 +39,20 @@
35
39
  "access": "public"
36
40
  },
37
41
  "dependencies": {
38
- "@clack/prompts": "^1.8.0",
42
+ "@clack/prompts": "^1.8.1",
43
+ "@fumadocs/cli": "1.6.1",
39
44
  "cac": "^7.0.0",
40
45
  "fuma-cli": "^0.1.1",
41
46
  "picocolors": "^1.1.1",
42
- "tinyexec": "^1.3.1",
43
- "@fumadocs/cli": "1.6.0"
47
+ "tinyexec": "^1.3.1"
44
48
  },
45
49
  "devDependencies": {
46
50
  "@types/cross-spawn": "^6.0.6",
47
- "@types/node": "26.5.0",
51
+ "@types/node": "26.6.1",
48
52
  "tinyglobby": "^0.2.17",
53
+ "tsconfig": "0.0.0",
49
54
  "tsdown": "0.23.0",
50
- "typescript": "^7.0.2",
51
- "tsconfig": "0.0.0"
55
+ "typescript": "^7.0.2"
52
56
  },
53
57
  "engines": {
54
58
  "node": ">=20"
@@ -60,8 +64,5 @@
60
64
  "lint": "oxlint .",
61
65
  "types:check": "tsc --noEmit",
62
66
  "sync": "node ./scripts/sync.ts"
63
- },
64
- "bin": {
65
- "create-fumadocs-app": "./dist/bin.js"
66
67
  }
67
68
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "example-next",
3
- "version": "0.0.28",
3
+ "version": "0.0.30",
4
4
  "private": true,
5
5
  "scripts": {
6
6
  "build": "next build",
@@ -9,21 +9,21 @@
9
9
  "types:check": "next typegen && tsc --noEmit"
10
10
  },
11
11
  "dependencies": {
12
- "cn": "^0.2.6",
12
+ "cn": "^0.3.0",
13
13
  "fumadocs-core": "workspace:*",
14
14
  "fumadocs-mdx": "workspace:*",
15
15
  "fumadocs-ui": "workspace:@fumadocs/base-ui@*",
16
- "lucide-react": "^1.43.0",
17
- "next": "16.3.4",
18
- "react": "^19.2.8",
19
- "react-dom": "^19.2.8"
16
+ "lucide-react": "^1.47.0",
17
+ "next": "16.3.5",
18
+ "react": "^19.3.0",
19
+ "react-dom": "^19.3.0"
20
20
  },
21
21
  "devDependencies": {
22
22
  "@tailwindcss/postcss": "^4.3.3",
23
23
  "@types/mdx": "^2.0.14",
24
- "@types/node": "^26.5.0",
25
- "@types/react": "^19.2.18",
26
- "@types/react-dom": "^19.2.7",
24
+ "@types/node": "^26.6.1",
25
+ "@types/react": "^19.3.0",
26
+ "@types/react-dom": "^19.3.0",
27
27
  "postcss": "^8.5.28",
28
28
  "tailwindcss": "^4.3.3",
29
29
  "typescript": "^7.0.2"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "example-next-static",
3
- "version": "0.0.28",
3
+ "version": "0.0.30",
4
4
  "private": true,
5
5
  "scripts": {
6
6
  "build": "next build",
@@ -9,21 +9,21 @@
9
9
  "types:check": "next typegen && tsc --noEmit"
10
10
  },
11
11
  "dependencies": {
12
- "cn": "^0.2.6",
12
+ "cn": "^0.3.0",
13
13
  "fumadocs-core": "workspace:*",
14
14
  "fumadocs-mdx": "workspace:*",
15
15
  "fumadocs-ui": "workspace:@fumadocs/base-ui@*",
16
- "lucide-react": "^1.43.0",
17
- "next": "16.3.4",
18
- "react": "^19.2.8",
19
- "react-dom": "^19.2.8"
16
+ "lucide-react": "^1.47.0",
17
+ "next": "16.3.5",
18
+ "react": "^19.3.0",
19
+ "react-dom": "^19.3.0"
20
20
  },
21
21
  "devDependencies": {
22
22
  "@tailwindcss/postcss": "^4.3.3",
23
23
  "@types/mdx": "^2.0.14",
24
- "@types/node": "^26.5.0",
25
- "@types/react": "^19.2.18",
26
- "@types/react-dom": "^19.2.7",
24
+ "@types/node": "^26.6.1",
25
+ "@types/react": "^19.3.0",
26
+ "@types/react-dom": "^19.3.0",
27
27
  "postcss": "^8.5.28",
28
28
  "serve": "^14.2.6",
29
29
  "tailwindcss": "^4.3.3",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "example-astro",
3
- "version": "0.0.27",
3
+ "version": "0.0.29",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "scripts": {
@@ -11,21 +11,21 @@
11
11
  "astro": "astro"
12
12
  },
13
13
  "dependencies": {
14
- "@astrojs/markdown-remark": "^7.3.0",
15
- "@astrojs/mdx": "^8.0.0",
16
- "@astrojs/react": "^6.0.5",
17
- "astro": "^7.3.1",
14
+ "@astrojs/markdown-remark": "^7.3.1",
15
+ "@astrojs/mdx": "^8.0.1",
16
+ "@astrojs/react": "^6.0.6",
17
+ "astro": "^7.3.3",
18
18
  "fumadocs-core": "workspace:*",
19
19
  "fumadocs-ui": "workspace:@fumadocs/base-ui@*",
20
- "react": "^19.2.8",
21
- "react-dom": "^19.2.8",
20
+ "react": "^19.3.0",
21
+ "react-dom": "^19.3.0",
22
22
  "sharp": "^0.35.4",
23
- "takumi-js": "^2.13.7"
23
+ "takumi-js": "^2.14.0"
24
24
  },
25
25
  "devDependencies": {
26
26
  "@tailwindcss/vite": "^4.3.3",
27
- "@types/react": "^19.2.18",
28
- "@types/react-dom": "^19.2.7",
27
+ "@types/react": "^19.3.0",
28
+ "@types/react-dom": "^19.3.0",
29
29
  "tailwindcss": "^4.3.3"
30
30
  }
31
31
  }
@@ -9,29 +9,29 @@
9
9
  "types:check": "react-router typegen && tsc --noEmit"
10
10
  },
11
11
  "dependencies": {
12
- "@react-router/node": "^8.3.1",
13
- "@react-router/serve": "^8.3.1",
14
- "cn": "^0.2.6",
12
+ "@react-router/node": "^8.4.0",
13
+ "@react-router/serve": "^8.4.0",
14
+ "cn": "^0.3.0",
15
15
  "fumadocs-core": "workspace:*",
16
16
  "fumadocs-mdx": "workspace:*",
17
17
  "fumadocs-ui": "workspace:@fumadocs/base-ui@*",
18
18
  "isbot": "^5.2.2",
19
- "lucide-react": "^1.43.0",
20
- "react": "^19.2.8",
21
- "react-dom": "^19.2.8",
22
- "react-router": "^8.3.1",
23
- "takumi-js": "^2.13.7"
19
+ "lucide-react": "^1.47.0",
20
+ "react": "^19.3.0",
21
+ "react-dom": "^19.3.0",
22
+ "react-router": "^8.4.0",
23
+ "takumi-js": "^2.14.0"
24
24
  },
25
25
  "devDependencies": {
26
- "@react-router/dev": "^8.3.1",
26
+ "@react-router/dev": "^8.4.0",
27
27
  "@tailwindcss/vite": "^4.3.3",
28
28
  "@types/mdx": "^2.0.14",
29
- "@types/node": "^26.5.0",
30
- "@types/react": "^19.2.18",
31
- "@types/react-dom": "^19.2.7",
29
+ "@types/node": "^26.6.1",
30
+ "@types/react": "^19.3.0",
31
+ "@types/react-dom": "^19.3.0",
32
32
  "react-router-devtools": "^6.2.3",
33
33
  "tailwindcss": "^4.3.3",
34
34
  "typescript": "^7.0.2",
35
- "vite": "^8.2.2"
35
+ "vite": "^8.3.0"
36
36
  }
37
37
  }
@@ -9,28 +9,28 @@
9
9
  "types:check": "react-router typegen && tsc --noEmit"
10
10
  },
11
11
  "dependencies": {
12
- "@react-router/node": "^8.3.1",
13
- "cn": "^0.2.6",
12
+ "@react-router/node": "^8.4.0",
13
+ "cn": "^0.3.0",
14
14
  "fumadocs-core": "workspace:*",
15
15
  "fumadocs-mdx": "workspace:*",
16
16
  "fumadocs-ui": "workspace:@fumadocs/base-ui@*",
17
17
  "isbot": "^5.2.2",
18
- "lucide-react": "^1.43.0",
19
- "react": "^19.2.8",
20
- "react-dom": "^19.2.8",
21
- "react-router": "^8.3.1"
18
+ "lucide-react": "^1.47.0",
19
+ "react": "^19.3.0",
20
+ "react-dom": "^19.3.0",
21
+ "react-router": "^8.4.0"
22
22
  },
23
23
  "devDependencies": {
24
- "@react-router/dev": "^8.3.1",
24
+ "@react-router/dev": "^8.4.0",
25
25
  "@tailwindcss/vite": "^4.3.3",
26
26
  "@types/mdx": "^2.0.14",
27
- "@types/node": "^26.5.0",
28
- "@types/react": "^19.2.18",
29
- "@types/react-dom": "^19.2.7",
27
+ "@types/node": "^26.6.1",
28
+ "@types/react": "^19.3.0",
29
+ "@types/react-dom": "^19.3.0",
30
30
  "react-router-devtools": "^6.2.3",
31
31
  "serve": "^14.2.6",
32
32
  "tailwindcss": "^4.3.3",
33
33
  "typescript": "^7.0.2",
34
- "vite": "^8.2.2"
34
+ "vite": "^8.3.0"
35
35
  }
36
36
  }
@@ -11,27 +11,27 @@
11
11
  "types:check": "tsc --noEmit"
12
12
  },
13
13
  "dependencies": {
14
- "@tanstack/react-router": "1.170.33",
15
- "@tanstack/react-router-devtools": "1.167.1",
16
- "@tanstack/react-start": "1.168.50",
17
- "cn": "^0.2.6",
14
+ "@tanstack/react-router": "1.170.38",
15
+ "@tanstack/react-router-devtools": "1.167.2",
16
+ "@tanstack/react-start": "1.168.56",
17
+ "cn": "^0.3.0",
18
18
  "fumadocs-core": "workspace:*",
19
19
  "fumadocs-mdx": "workspace:*",
20
20
  "fumadocs-ui": "workspace:@fumadocs/base-ui@*",
21
- "lucide-react": "^1.43.0",
22
- "react": "^19.2.8",
23
- "react-dom": "^19.2.8"
21
+ "lucide-react": "^1.47.0",
22
+ "react": "^19.3.0",
23
+ "react-dom": "^19.3.0"
24
24
  },
25
25
  "devDependencies": {
26
26
  "@tailwindcss/vite": "^4.3.3",
27
27
  "@types/mdx": "^2.0.14",
28
- "@types/node": "^26.5.0",
29
- "@types/react": "^19.2.18",
30
- "@types/react-dom": "^19.2.7",
28
+ "@types/node": "^26.6.1",
29
+ "@types/react": "^19.3.0",
30
+ "@types/react-dom": "^19.3.0",
31
31
  "@vitejs/plugin-react": "^6.1.1",
32
32
  "nitro": "3.0.260903-beta",
33
33
  "tailwindcss": "^4.3.3",
34
34
  "typescript": "^7.0.2",
35
- "vite": "^8.2.2"
35
+ "vite": "^8.3.0"
36
36
  }
37
37
  }
@@ -11,30 +11,30 @@
11
11
  "types:check": "tsc --noEmit"
12
12
  },
13
13
  "dependencies": {
14
- "@tanstack/react-router": "1.170.33",
15
- "@tanstack/react-router-devtools": "1.167.1",
16
- "@tanstack/react-start": "1.168.50",
17
- "@tanstack/start-static-server-functions": "1.167.33",
18
- "cn": "^0.2.6",
14
+ "@tanstack/react-router": "1.170.38",
15
+ "@tanstack/react-router-devtools": "1.167.2",
16
+ "@tanstack/react-start": "1.168.56",
17
+ "@tanstack/start-static-server-functions": "1.167.37",
18
+ "cn": "^0.3.0",
19
19
  "fumadocs-core": "workspace:*",
20
20
  "fumadocs-mdx": "workspace:*",
21
21
  "fumadocs-ui": "workspace:@fumadocs/base-ui@*",
22
- "lucide-react": "^1.43.0",
23
- "react": "^19.2.8",
24
- "react-dom": "^19.2.8"
22
+ "lucide-react": "^1.47.0",
23
+ "react": "^19.3.0",
24
+ "react-dom": "^19.3.0"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@tailwindcss/vite": "^4.3.3",
28
28
  "@types/mdx": "^2.0.14",
29
- "@types/node": "^26.5.0",
30
- "@types/react": "^19.2.18",
31
- "@types/react-dom": "^19.2.7",
29
+ "@types/node": "^26.6.1",
30
+ "@types/react": "^19.3.0",
31
+ "@types/react-dom": "^19.3.0",
32
32
  "@vitejs/plugin-react": "^6.1.1",
33
33
  "nitro": "3.0.260903-beta",
34
34
  "serve": "^14.2.6",
35
- "srvx": "^1.0.4",
35
+ "srvx": "^1.0.5",
36
36
  "tailwindcss": "^4.3.3",
37
37
  "typescript": "^7.0.2",
38
- "vite": "^8.2.2"
38
+ "vite": "^8.3.0"
39
39
  }
40
40
  }
@@ -10,25 +10,25 @@
10
10
  "types:check": "tsc --noEmit"
11
11
  },
12
12
  "dependencies": {
13
- "cn": "^0.2.6",
13
+ "cn": "^0.3.0",
14
14
  "fumadocs-core": "workspace:*",
15
15
  "fumadocs-mdx": "workspace:*",
16
16
  "fumadocs-ui": "workspace:@fumadocs/base-ui@*",
17
- "lucide-react": "^1.43.0",
18
- "react": "^19.2.8",
19
- "react-dom": "^19.2.8",
20
- "react-server-dom-webpack": "^19.2.8",
21
- "takumi-js": "^2.13.7",
17
+ "lucide-react": "^1.47.0",
18
+ "react": "^19.3.0",
19
+ "react-dom": "^19.3.0",
20
+ "react-server-dom-webpack": "^19.3.0",
21
+ "takumi-js": "^2.14.0",
22
22
  "waku": "1.0.0-rc.0"
23
23
  },
24
24
  "devDependencies": {
25
25
  "@tailwindcss/vite": "^4.3.3",
26
26
  "@types/mdx": "^2.0.14",
27
- "@types/node": "^26.5.0",
28
- "@types/react": "^19.2.18",
29
- "@types/react-dom": "^19.2.7",
27
+ "@types/node": "^26.6.1",
28
+ "@types/react": "^19.3.0",
29
+ "@types/react-dom": "^19.3.0",
30
30
  "tailwindcss": "^4.3.3",
31
31
  "typescript": "^7.0.2",
32
- "vite": "^8.2.2"
32
+ "vite": "^8.3.0"
33
33
  }
34
34
  }