create-fumadocs-app 16.2.2 → 16.2.4

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-BSJ24umS.js";
3
- import { n as getPackageManager, r as managers, t as create } from "./src-DCZZ7mtD.js";
4
- import { t as feature } from "./feature-l9dSQDJj.js";
2
+ import { i as templates, n as isCI } from "./constants-B_gisQLU.js";
3
+ import { n as getPackageManager, r as managers, t as create } from "./src-qmTw02Un.js";
4
+ import { t as feature } from "./feature-C5LUHJ8u.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
  };
@@ -52,7 +52,7 @@ var package_exports$2 = /* @__PURE__ */ __exportAll({
52
52
  version: () => version$2
53
53
  });
54
54
  var name$2 = "fumadocs-core";
55
- var version$2 = "16.15.11";
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";
@@ -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
- "waku": "1.0.0-rc.0",
208
- "zod": "4.5.4"
206
+ "waku": "1.0.0-rc.1",
207
+ "zod": "4.6.5"
209
208
  };
210
209
  var peerDependencies$2 = {
211
210
  "@mdx-js/mdx": "*",
@@ -253,8 +252,7 @@ var inlinedDependencies$1 = {
253
252
  "@formatjs/fast-memoize": "3.1.7",
254
253
  "@formatjs/intl-localematcher": "0.8.13",
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,
@@ -304,7 +302,7 @@ var package_exports$1 = /* @__PURE__ */ __exportAll({
304
302
  version: () => version$1
305
303
  });
306
304
  var name$1 = "fumadocs-mdx";
307
- var version$1 = "15.4.1";
305
+ var version$1 = "15.4.2";
308
306
  var description$1 = "The built-in source for Fumadocs";
309
307
  var keywords$1 = ["Docs", "fumadocs"];
310
308
  var homepage$1 = "https://fumadocs.dev";
@@ -356,7 +354,7 @@ var dependencies$1 = {
356
354
  "esbuild": "^0.28.2",
357
355
  "estree-util-value-to-estree": "^3.5.0",
358
356
  "github-slugger": "^2.0.0",
359
- "magic-string": "^1.2.3",
357
+ "magic-string": "^1.4.1",
360
358
  "mdast-util-mdx": "^3.0.0",
361
359
  "picocolors": "^1.1.1",
362
360
  "picomatch": "^4.0.7",
@@ -366,9 +364,9 @@ var dependencies$1 = {
366
364
  "unist-util-remove-position": "^5.0.0",
367
365
  "unist-util-visit": "^5.1.0",
368
366
  "vfile": "^6.0.3",
369
- "yaml": "^2.9.0",
370
- "yuku-analyzer": "^0.9.5",
371
- "zod": "^4.5.4"
367
+ "yaml": "^2.9.1",
368
+ "yuku-analyzer": "^0.10.2",
369
+ "zod": "^4.6.5"
372
370
  };
373
371
  var devDependencies$1 = {
374
372
  "@fumadocs/satteri": "workspace:*",
@@ -376,22 +374,22 @@ var devDependencies$1 = {
376
374
  "@types/bun": "^1.4.2",
377
375
  "@types/mdast": "^4.0.4",
378
376
  "@types/mdx": "^2.0.14",
379
- "@types/node": "^26.5.0",
377
+ "@types/node": "^26.6.1",
380
378
  "@types/picomatch": "^4.0.3",
381
- "@types/react": "^19.2.18",
379
+ "@types/react": "^19.3.0",
382
380
  "fumadocs-core": "workspace:*",
383
381
  "mdast-util-directive": "^3.1.0",
384
- "next": "^16.3.4",
385
- "react": "^19.2.8",
382
+ "next": "^16.3.5",
383
+ "react": "^19.3.0",
386
384
  "remark": "^15.0.1",
387
385
  "remark-directive": "^4.0.0",
388
386
  "remark-mdx": "^3.1.1",
389
- "rolldown": "^1.2.7",
387
+ "rolldown": "^1.2.9",
390
388
  "satteri": "^0.10.5",
391
389
  "tsconfig": "workspace:*",
392
390
  "tsdown": "0.23.0",
393
- "vite": "^8.2.2",
394
- "webpack": "^5.110.3"
391
+ "vite": "^8.3.0",
392
+ "webpack": "^5.111.1"
395
393
  };
396
394
  var peerDependencies$1 = {
397
395
  "@fumadocs/satteri": "0.x.x",
@@ -465,7 +463,7 @@ var package_exports = /* @__PURE__ */ __exportAll({
465
463
  version: () => version
466
464
  });
467
465
  var name = "@fumadocs/base-ui";
468
- var version = "16.15.11";
466
+ var version = "16.15.12";
469
467
  var description = "The Base UI version of Fumadocs UI";
470
468
  var keywords = ["Docs", "Fumadocs"];
471
469
  var homepage = "https://fumadocs.dev";
@@ -591,9 +589,9 @@ var dependencies = {
591
589
  "@fuma-translate/react": "^1.0.2",
592
590
  "@fumadocs/tailwind": "workspace:*",
593
591
  "class-variance-authority": "^0.7.1",
594
- "cn": "^0.2.6",
595
- "lucide-react": "^1.43.0",
596
- "motion": "^13.2.0",
592
+ "cn": "^0.3.0",
593
+ "lucide-react": "^1.47.0",
594
+ "motion": "^13.4.0",
597
595
  "next-themes": "^0.4.6",
598
596
  "react-remove-scroll": "^2.7.2",
599
597
  "rehype-raw": "^7.0.0",
@@ -608,9 +606,9 @@ var devDependencies = {
608
606
  "@tsdown/css": "^0.23.0",
609
607
  "@types/hast": "^3.0.5",
610
608
  "@types/mdx": "^2.0.14",
611
- "@types/node": "^26.5.0",
612
- "@types/react": "^19.2.18",
613
- "@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",
614
612
  "fuma-cli": "^0.1.1",
615
613
  "fumadocs-core": "workspace:*",
616
614
  "react-medium-image-zoom": "^5.4.9",
@@ -726,4 +724,4 @@ depVersions["fumadocs-ui"] = `npm:${name}@${version}`;
726
724
  //#endregion
727
725
  export { templates as i, isCI as n, sourceDir as r, depVersions as t };
728
726
 
729
- //# sourceMappingURL=constants-BSJ24umS.js.map
727
+ //# sourceMappingURL=constants-B_gisQLU.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants-BSJ24umS.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-B_gisQLU.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-BSJ24umS.js";
1
+ import { t as depVersions } from "./constants-B_gisQLU.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-l9dSQDJj.js.map
27
+ //# sourceMappingURL=feature-C5LUHJ8u.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"feature-l9dSQDJj.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-C5LUHJ8u.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-DCZZ7mtD.js";
1
+ import { t as create } from "./src-qmTw02Un.js";
2
2
  export { create };
@@ -1,2 +1,2 @@
1
- import { t as feature } from "../feature-l9dSQDJj.js";
1
+ import { t as feature } from "../feature-C5LUHJ8u.js";
2
2
  export { feature };
@@ -1,4 +1,4 @@
1
- import { i as templates, r as sourceDir, t as depVersions } from "./constants-BSJ24umS.js";
1
+ import { i as templates, r as sourceDir, t as depVersions } from "./constants-B_gisQLU.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-DCZZ7mtD.js.map
148
+ //# sourceMappingURL=src-qmTw02Un.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src-DCZZ7mtD.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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"}
1
+ {"version":3,"file":"src-qmTw02Un.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.2",
3
+ "version": "16.2.4",
4
4
  "description": "Create a new documentation site with Fumadocs",
5
5
  "keywords": [
6
6
  "Docs",
@@ -14,6 +14,9 @@
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"
@@ -36,20 +39,20 @@
36
39
  "access": "public"
37
40
  },
38
41
  "dependencies": {
39
- "@clack/prompts": "^1.8.0",
42
+ "@clack/prompts": "^1.8.1",
43
+ "@fumadocs/cli": "1.6.2",
40
44
  "cac": "^7.0.0",
41
45
  "fuma-cli": "^0.1.1",
42
46
  "picocolors": "^1.1.1",
43
- "tinyexec": "^1.3.1",
44
- "@fumadocs/cli": "1.6.1"
47
+ "tinyexec": "^1.3.1"
45
48
  },
46
49
  "devDependencies": {
47
50
  "@types/cross-spawn": "^6.0.6",
48
- "@types/node": "26.5.0",
51
+ "@types/node": "26.6.1",
49
52
  "tinyglobby": "^0.2.17",
53
+ "tsconfig": "0.0.0",
50
54
  "tsdown": "0.23.0",
51
- "typescript": "^7.0.2",
52
- "tsconfig": "0.0.0"
55
+ "typescript": "^7.0.2"
53
56
  },
54
57
  "engines": {
55
58
  "node": ">=20"
@@ -61,8 +64,5 @@
61
64
  "lint": "oxlint .",
62
65
  "types:check": "tsc --noEmit",
63
66
  "sync": "node ./scripts/sync.ts"
64
- },
65
- "bin": {
66
- "create-fumadocs-app": "./dist/bin.js"
67
67
  }
68
68
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "example-next",
3
- "version": "0.0.29",
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.29",
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.28",
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",
22
- "waku": "1.0.0-rc.0"
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
+ "waku": "1.0.0-rc.1"
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
  }