create-lumen 1.2.0 → 2.0.0-alpha.0
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/README.md +56 -9
- package/bin/cli.js +18 -4
- package/package.json +14 -4
- package/schema/fixtures/index.js +62 -0
- package/schema/fixtures/v2/invalid/invalid-manifest-version.json +33 -0
- package/schema/fixtures/v2/invalid/malformed-paths.json +33 -0
- package/schema/fixtures/v2/invalid/missing-required-fields.json +17 -0
- package/schema/fixtures/v2/invalid/next-type-based.json +33 -0
- package/schema/fixtures/v2/invalid/next-vite.json +33 -0
- package/schema/fixtures/v2/invalid/react-bundler.json +34 -0
- package/schema/fixtures/v2/invalid/react-hybrid.json +33 -0
- package/schema/fixtures/v2/invalid/react-variant-mismatch.json +33 -0
- package/schema/fixtures/v2/invalid/shadcn-without-tailwind.json +33 -0
- package/schema/fixtures/v2/invalid/v1-flat-config.json +11 -0
- package/schema/fixtures/v2/valid/full-kitchen-sink.json +35 -0
- package/schema/fixtures/v2/valid/next-app-router-feature-based.json +35 -0
- package/schema/fixtures/v2/valid/next-app-router-hybrid.json +35 -0
- package/schema/fixtures/v2/valid/next-app-router-none.json +33 -0
- package/schema/fixtures/v2/valid/next-pages-router-feature-based.json +35 -0
- package/schema/fixtures/v2/valid/next-pages-router-hybrid.json +35 -0
- package/schema/fixtures/v2/valid/next-pages-router-none.json +33 -0
- package/schema/fixtures/v2/valid/react-vite-feature-based.json +33 -0
- package/schema/fixtures/v2/valid/react-vite-none.json +33 -0
- package/schema/fixtures/v2/valid/react-vite-type-based.json +33 -0
- package/schema/lumen.config.v2.json +216 -0
- package/src/cli-args.js +294 -0
- package/src/css.js +20 -9
- package/src/dependencies.js +12 -6
- package/src/engine/capabilities.js +218 -0
- package/src/engine/index.js +2 -0
- package/src/engine/providers/base-provider.js +219 -0
- package/src/injector.js +26 -13
- package/src/main.js +52 -10
- package/src/manifest/emit.js +120 -0
- package/src/manifest/index.js +11 -0
- package/src/manifest/paths.js +128 -0
- package/src/manifest/schema.js +212 -0
- package/src/prompts.js +26 -6
- package/templates/conditional/linting/eslint/next/eslint.config.mjs +16 -0
- package/templates/css/tailwind/postcss.config.mjs +5 -0
- /package/templates/architectures/{component-based → type-based}/main.jsx +0 -0
- /package/templates/architectures/{component-based → type-based}/main.tsx +0 -0
- /package/templates/architectures/{component-based → type-based}/src/App.jsx +0 -0
- /package/templates/architectures/{component-based → type-based}/src/App.tsx +0 -0
- /package/templates/architectures/{component-based → type-based}/src/components/common/Button.jsx +0 -0
- /package/templates/architectures/{component-based → type-based}/src/components/common/Button.tsx +0 -0
- /package/templates/architectures/{component-based → type-based}/src/components/common/index.js +0 -0
- /package/templates/architectures/{component-based → type-based}/src/components/common/index.ts +0 -0
- /package/templates/architectures/{component-based → type-based}/src/components/form/.gitkeep +0 -0
- /package/templates/architectures/{component-based → type-based}/src/config/.gitkeep +0 -0
- /package/templates/architectures/{component-based → type-based}/src/hooks/useApp.js +0 -0
- /package/templates/architectures/{component-based → type-based}/src/hooks/useApp.ts +0 -0
- /package/templates/architectures/{component-based → type-based}/src/hooks/useLocalStorage.jsx +0 -0
- /package/templates/architectures/{component-based → type-based}/src/hooks/useLocalStorage.ts +0 -0
- /package/templates/architectures/{component-based → type-based}/src/layouts/MainLayout.jsx +0 -0
- /package/templates/architectures/{component-based → type-based}/src/layouts/MainLayout.tsx +0 -0
- /package/templates/architectures/{component-based → type-based}/src/pages/Home/Home.jsx +0 -0
- /package/templates/architectures/{component-based → type-based}/src/pages/Home/Home.tsx +0 -0
- /package/templates/architectures/{component-based → type-based}/src/pages/Home/index.js +0 -0
- /package/templates/architectures/{component-based → type-based}/src/pages/Home/index.ts +0 -0
- /package/templates/architectures/{component-based → type-based}/src/providers/.gitkeep +0 -0
- /package/templates/architectures/{component-based → type-based}/src/providers/AppProvider.jsx +0 -0
- /package/templates/architectures/{component-based → type-based}/src/providers/AppProvider.tsx +0 -0
- /package/templates/architectures/{component-based → type-based}/src/providers/appcontext.js +0 -0
- /package/templates/architectures/{component-based → type-based}/src/providers/appcontext.ts +0 -0
- /package/templates/architectures/{component-based → type-based}/src/services/.gitkeep +0 -0
- /package/templates/architectures/{component-based → type-based}/src/store/.gitkeep +0 -0
- /package/templates/architectures/{component-based → type-based}/src/styles/.gitkeep +0 -0
- /package/templates/architectures/{component-based → type-based}/src/types/index.js +0 -0
- /package/templates/architectures/{component-based → type-based}/src/types/index.ts +0 -0
- /package/templates/architectures/{component-based → type-based}/src/utils/cn.jsx +0 -0
- /package/templates/architectures/{component-based → type-based}/src/utils/cn.ts +0 -0
- /package/templates/conditional/axios/{component-based → type-based}/src/config/axios.config.js +0 -0
- /package/templates/conditional/axios/{component-based → type-based}/src/config/axios.config.ts +0 -0
- /package/templates/conditional/axios/{component-based → type-based}/src/services/axios.client.js +0 -0
- /package/templates/conditional/axios/{component-based → type-based}/src/services/axios.client.ts +0 -0
- /package/templates/conditional/axios/{component-based → type-based}/src/services/user.service.js +0 -0
- /package/templates/conditional/axios/{component-based → type-based}/src/services/user.service.ts +0 -0
- /package/templates/conditional/fetch/{component-based → type-based}/src/config/api.config.js +0 -0
- /package/templates/conditional/fetch/{component-based → type-based}/src/config/api.config.ts +0 -0
- /package/templates/conditional/fetch/{component-based → type-based}/src/services/api.client.js +0 -0
- /package/templates/conditional/fetch/{component-based → type-based}/src/services/api.client.ts +0 -0
- /package/templates/conditional/fetch/{component-based → type-based}/src/services/user.service.js +0 -0
- /package/templates/conditional/fetch/{component-based → type-based}/src/services/user.service.ts +0 -0
- /package/templates/conditional/icons/huge/{component-based → type-based}/bootstrap/src/pages/Home/Home.jsx +0 -0
- /package/templates/conditional/icons/huge/{component-based → type-based}/bootstrap/src/pages/Home/Home.tsx +0 -0
- /package/templates/conditional/icons/huge/{component-based → type-based}/src/pages/Home/Home.jsx +0 -0
- /package/templates/conditional/icons/huge/{component-based → type-based}/src/pages/Home/Home.tsx +0 -0
- /package/templates/conditional/icons/huge/{component-based → type-based}/tailwind/src/pages/Home/Home.jsx +0 -0
- /package/templates/conditional/icons/huge/{component-based → type-based}/tailwind/src/pages/Home/Home.tsx +0 -0
- /package/templates/conditional/icons/lucide/{component-based → type-based}/bootstrap/src/pages/Home/Home.jsx +0 -0
- /package/templates/conditional/icons/lucide/{component-based → type-based}/bootstrap/src/pages/Home/Home.tsx +0 -0
- /package/templates/conditional/icons/lucide/{component-based → type-based}/src/pages/Home/Home.jsx +0 -0
- /package/templates/conditional/icons/lucide/{component-based → type-based}/src/pages/Home/Home.tsx +0 -0
- /package/templates/conditional/icons/lucide/{component-based → type-based}/tailwind/src/pages/Home/Home.jsx +0 -0
- /package/templates/conditional/icons/lucide/{component-based → type-based}/tailwind/src/pages/Home/Home.tsx +0 -0
- /package/templates/conditional/router/{component-based → type-based}/bootstrap/src/layouts/MainLayout.jsx +0 -0
- /package/templates/conditional/router/{component-based → type-based}/bootstrap/src/layouts/MainLayout.tsx +0 -0
- /package/templates/conditional/router/{component-based → type-based}/src/App.jsx +0 -0
- /package/templates/conditional/router/{component-based → type-based}/src/App.tsx +0 -0
- /package/templates/conditional/router/{component-based → type-based}/src/layouts/MainLayout.jsx +0 -0
- /package/templates/conditional/router/{component-based → type-based}/src/layouts/MainLayout.tsx +0 -0
- /package/templates/conditional/router/{component-based → type-based}/src/router/guards/AuthGuard.jsx +0 -0
- /package/templates/conditional/router/{component-based → type-based}/src/router/guards/AuthGuard.tsx +0 -0
- /package/templates/conditional/router/{component-based → type-based}/src/router/guards/GuestGuard.jsx +0 -0
- /package/templates/conditional/router/{component-based → type-based}/src/router/guards/GuestGuard.tsx +0 -0
- /package/templates/conditional/router/{component-based → type-based}/src/router/index.jsx +0 -0
- /package/templates/conditional/router/{component-based → type-based}/src/router/index.tsx +0 -0
- /package/templates/conditional/router/{component-based → type-based}/tailwind/src/layouts/MainLayout.jsx +0 -0
- /package/templates/conditional/router/{component-based → type-based}/tailwind/src/layouts/MainLayout.tsx +0 -0
- /package/templates/conditional/state/redux/{component-based → type-based}/src/pages/Home/counterSlice.jsx +0 -0
- /package/templates/conditional/state/redux/{component-based → type-based}/src/pages/Home/counterSlice.ts +0 -0
- /package/templates/conditional/state/redux/{component-based → type-based}/src/providers/StoreProvider.jsx +0 -0
- /package/templates/conditional/state/redux/{component-based → type-based}/src/providers/StoreProvider.tsx +0 -0
- /package/templates/conditional/state/redux/{component-based → type-based}/src/store/hooks.js +0 -0
- /package/templates/conditional/state/redux/{component-based → type-based}/src/store/hooks.ts +0 -0
- /package/templates/conditional/state/redux/{component-based → type-based}/src/store/index.js +0 -0
- /package/templates/conditional/state/redux/{component-based → type-based}/src/store/index.ts +0 -0
- /package/templates/conditional/state/zustand/{component-based → type-based}/src/store/useCounterStore.jsx +0 -0
- /package/templates/conditional/state/zustand/{component-based → type-based}/src/store/useCounterStore.ts +0 -0
- /package/templates/conditional/testing/jest/{component-based → type-based}/src/__tests__/App.test.jsx +0 -0
- /package/templates/conditional/testing/jest/{component-based → type-based}/src/__tests__/App.test.tsx +0 -0
- /package/templates/conditional/testing/vitest/{component-based → type-based}/src/__tests__/App.test.jsx +0 -0
- /package/templates/conditional/testing/vitest/{component-based → type-based}/src/__tests__/App.test.tsx +0 -0
- /package/templates/css/component-styles/bootstrap/{component-based → type-based}/src/components/common/Button.jsx +0 -0
- /package/templates/css/component-styles/bootstrap/{component-based → type-based}/src/components/common/Button.tsx +0 -0
- /package/templates/css/component-styles/bootstrap/{component-based → type-based}/src/layouts/MainLayout.jsx +0 -0
- /package/templates/css/component-styles/bootstrap/{component-based → type-based}/src/layouts/MainLayout.tsx +0 -0
- /package/templates/css/component-styles/bootstrap/{component-based → type-based}/src/pages/Home/Home.jsx +0 -0
- /package/templates/css/component-styles/bootstrap/{component-based → type-based}/src/pages/Home/Home.tsx +0 -0
- /package/templates/css/component-styles/tailwind/{component-based → type-based}/src/components/common/Button.jsx +0 -0
- /package/templates/css/component-styles/tailwind/{component-based → type-based}/src/components/common/Button.tsx +0 -0
- /package/templates/css/component-styles/tailwind/{component-based → type-based}/src/layouts/MainLayout.jsx +0 -0
- /package/templates/css/component-styles/tailwind/{component-based → type-based}/src/layouts/MainLayout.tsx +0 -0
- /package/templates/css/component-styles/tailwind/{component-based → type-based}/src/pages/Home/Home.jsx +0 -0
- /package/templates/css/component-styles/tailwind/{component-based → type-based}/src/pages/Home/Home.tsx +0 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://lumen-sh.github.io/create-lumen/schema/lumen.config.v2.json",
|
|
3
|
+
"manifestVersion": 2,
|
|
4
|
+
"framework": {
|
|
5
|
+
"name": "next",
|
|
6
|
+
"variant": "app-router"
|
|
7
|
+
},
|
|
8
|
+
"styling": {
|
|
9
|
+
"engine": "tailwind"
|
|
10
|
+
},
|
|
11
|
+
"architecture": {
|
|
12
|
+
"type": "none"
|
|
13
|
+
},
|
|
14
|
+
"ui": {
|
|
15
|
+
"kit": "none"
|
|
16
|
+
},
|
|
17
|
+
"docs": {
|
|
18
|
+
"language": "en"
|
|
19
|
+
},
|
|
20
|
+
"paths": {
|
|
21
|
+
"features": "src",
|
|
22
|
+
"components": "src/components",
|
|
23
|
+
"services": "src/services",
|
|
24
|
+
"hooks": "src/hooks",
|
|
25
|
+
"pages": "app",
|
|
26
|
+
"ui": "src/components/ui"
|
|
27
|
+
},
|
|
28
|
+
"tooling": {
|
|
29
|
+
"language": "ts",
|
|
30
|
+
"linter": "eslint",
|
|
31
|
+
"formatter": "prettier"
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://lumen-sh.github.io/create-lumen/schema/lumen.config.v2.json",
|
|
3
|
+
"manifestVersion": 2,
|
|
4
|
+
"framework": {
|
|
5
|
+
"name": "next",
|
|
6
|
+
"variant": "pages-router",
|
|
7
|
+
"bundler": "webpack",
|
|
8
|
+
"adapter": "cloudflare"
|
|
9
|
+
},
|
|
10
|
+
"styling": {
|
|
11
|
+
"engine": "tailwind"
|
|
12
|
+
},
|
|
13
|
+
"architecture": {
|
|
14
|
+
"type": "feature-based"
|
|
15
|
+
},
|
|
16
|
+
"ui": {
|
|
17
|
+
"kit": "none"
|
|
18
|
+
},
|
|
19
|
+
"docs": {
|
|
20
|
+
"language": "en"
|
|
21
|
+
},
|
|
22
|
+
"paths": {
|
|
23
|
+
"features": "src/features",
|
|
24
|
+
"components": "src/shared/components",
|
|
25
|
+
"services": "src/shared/services",
|
|
26
|
+
"hooks": "src/shared/hooks",
|
|
27
|
+
"pages": "pages",
|
|
28
|
+
"ui": "src/shared/components/ui"
|
|
29
|
+
},
|
|
30
|
+
"tooling": {
|
|
31
|
+
"language": "ts",
|
|
32
|
+
"linter": "eslint",
|
|
33
|
+
"formatter": "prettier"
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://lumen-sh.github.io/create-lumen/schema/lumen.config.v2.json",
|
|
3
|
+
"manifestVersion": 2,
|
|
4
|
+
"framework": {
|
|
5
|
+
"name": "next",
|
|
6
|
+
"variant": "pages-router",
|
|
7
|
+
"bundler": "turbopack",
|
|
8
|
+
"adapter": "static"
|
|
9
|
+
},
|
|
10
|
+
"styling": {
|
|
11
|
+
"engine": "tailwind"
|
|
12
|
+
},
|
|
13
|
+
"architecture": {
|
|
14
|
+
"type": "hybrid"
|
|
15
|
+
},
|
|
16
|
+
"ui": {
|
|
17
|
+
"kit": "none"
|
|
18
|
+
},
|
|
19
|
+
"docs": {
|
|
20
|
+
"language": "es"
|
|
21
|
+
},
|
|
22
|
+
"paths": {
|
|
23
|
+
"features": "src/features",
|
|
24
|
+
"components": "src/shared/components",
|
|
25
|
+
"services": "src/shared/services",
|
|
26
|
+
"hooks": "src/shared/hooks",
|
|
27
|
+
"pages": "pages",
|
|
28
|
+
"ui": "src/shared/components/ui"
|
|
29
|
+
},
|
|
30
|
+
"tooling": {
|
|
31
|
+
"language": "js",
|
|
32
|
+
"linter": "eslint",
|
|
33
|
+
"formatter": "prettier"
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://lumen-sh.github.io/create-lumen/schema/lumen.config.v2.json",
|
|
3
|
+
"manifestVersion": 2,
|
|
4
|
+
"framework": {
|
|
5
|
+
"name": "next",
|
|
6
|
+
"variant": "pages-router"
|
|
7
|
+
},
|
|
8
|
+
"styling": {
|
|
9
|
+
"engine": "none"
|
|
10
|
+
},
|
|
11
|
+
"architecture": {
|
|
12
|
+
"type": "none"
|
|
13
|
+
},
|
|
14
|
+
"ui": {
|
|
15
|
+
"kit": "none"
|
|
16
|
+
},
|
|
17
|
+
"docs": {
|
|
18
|
+
"language": "en"
|
|
19
|
+
},
|
|
20
|
+
"paths": {
|
|
21
|
+
"features": "src",
|
|
22
|
+
"components": "src/components",
|
|
23
|
+
"services": "src/services",
|
|
24
|
+
"hooks": "src/hooks",
|
|
25
|
+
"pages": "pages",
|
|
26
|
+
"ui": "src/components/ui"
|
|
27
|
+
},
|
|
28
|
+
"tooling": {
|
|
29
|
+
"language": "ts",
|
|
30
|
+
"linter": "none",
|
|
31
|
+
"formatter": "none"
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://lumen-sh.github.io/create-lumen/schema/lumen.config.v2.json",
|
|
3
|
+
"manifestVersion": 2,
|
|
4
|
+
"framework": {
|
|
5
|
+
"name": "react",
|
|
6
|
+
"variant": "vite"
|
|
7
|
+
},
|
|
8
|
+
"styling": {
|
|
9
|
+
"engine": "tailwind"
|
|
10
|
+
},
|
|
11
|
+
"architecture": {
|
|
12
|
+
"type": "feature-based"
|
|
13
|
+
},
|
|
14
|
+
"ui": {
|
|
15
|
+
"kit": "none"
|
|
16
|
+
},
|
|
17
|
+
"docs": {
|
|
18
|
+
"language": "en"
|
|
19
|
+
},
|
|
20
|
+
"paths": {
|
|
21
|
+
"features": "src/features",
|
|
22
|
+
"components": "src/shared/components",
|
|
23
|
+
"services": "src/shared/services",
|
|
24
|
+
"hooks": "src/shared/hooks",
|
|
25
|
+
"pages": "src/app/router",
|
|
26
|
+
"ui": "src/shared/components/ui"
|
|
27
|
+
},
|
|
28
|
+
"tooling": {
|
|
29
|
+
"language": "ts",
|
|
30
|
+
"linter": "eslint",
|
|
31
|
+
"formatter": "prettier"
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://lumen-sh.github.io/create-lumen/schema/lumen.config.v2.json",
|
|
3
|
+
"manifestVersion": 2,
|
|
4
|
+
"framework": {
|
|
5
|
+
"name": "react",
|
|
6
|
+
"variant": "vite"
|
|
7
|
+
},
|
|
8
|
+
"styling": {
|
|
9
|
+
"engine": "none"
|
|
10
|
+
},
|
|
11
|
+
"architecture": {
|
|
12
|
+
"type": "none"
|
|
13
|
+
},
|
|
14
|
+
"ui": {
|
|
15
|
+
"kit": "none"
|
|
16
|
+
},
|
|
17
|
+
"docs": {
|
|
18
|
+
"language": "en"
|
|
19
|
+
},
|
|
20
|
+
"paths": {
|
|
21
|
+
"features": "src",
|
|
22
|
+
"components": "src/components",
|
|
23
|
+
"services": "src/services",
|
|
24
|
+
"hooks": "src/hooks",
|
|
25
|
+
"pages": "src/pages",
|
|
26
|
+
"ui": "src/components/ui"
|
|
27
|
+
},
|
|
28
|
+
"tooling": {
|
|
29
|
+
"language": "ts",
|
|
30
|
+
"linter": "none",
|
|
31
|
+
"formatter": "none"
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://lumen-sh.github.io/create-lumen/schema/lumen.config.v2.json",
|
|
3
|
+
"manifestVersion": 2,
|
|
4
|
+
"framework": {
|
|
5
|
+
"name": "react",
|
|
6
|
+
"variant": "vite"
|
|
7
|
+
},
|
|
8
|
+
"styling": {
|
|
9
|
+
"engine": "bootstrap"
|
|
10
|
+
},
|
|
11
|
+
"architecture": {
|
|
12
|
+
"type": "type-based"
|
|
13
|
+
},
|
|
14
|
+
"ui": {
|
|
15
|
+
"kit": "none"
|
|
16
|
+
},
|
|
17
|
+
"docs": {
|
|
18
|
+
"language": "es"
|
|
19
|
+
},
|
|
20
|
+
"paths": {
|
|
21
|
+
"features": "src/features",
|
|
22
|
+
"components": "src/components",
|
|
23
|
+
"services": "src/services",
|
|
24
|
+
"hooks": "src/hooks",
|
|
25
|
+
"pages": "src/pages",
|
|
26
|
+
"ui": "src/ui"
|
|
27
|
+
},
|
|
28
|
+
"tooling": {
|
|
29
|
+
"language": "js",
|
|
30
|
+
"linter": "oxlint",
|
|
31
|
+
"formatter": "oxfmt"
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://lumen-sh.github.io/create-lumen/schema/lumen.config.v2.json",
|
|
4
|
+
"title": "Lumen manifest v2",
|
|
5
|
+
"description": "Schema for lumen.config.json v2 - emitted by create-lumen, consumed by lumen-cli. See docs/manifest-v2.md",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"$schema": {
|
|
9
|
+
"default": "https://lumen-sh.github.io/create-lumen/schema/lumen.config.v2.json",
|
|
10
|
+
"type": "string",
|
|
11
|
+
"format": "uri"
|
|
12
|
+
},
|
|
13
|
+
"manifestVersion": {
|
|
14
|
+
"type": "number",
|
|
15
|
+
"const": 2
|
|
16
|
+
},
|
|
17
|
+
"framework": {
|
|
18
|
+
"type": "object",
|
|
19
|
+
"properties": {
|
|
20
|
+
"name": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"enum": [
|
|
23
|
+
"react",
|
|
24
|
+
"next"
|
|
25
|
+
]
|
|
26
|
+
},
|
|
27
|
+
"variant": {
|
|
28
|
+
"type": "string",
|
|
29
|
+
"enum": [
|
|
30
|
+
"vite",
|
|
31
|
+
"app-router",
|
|
32
|
+
"pages-router"
|
|
33
|
+
]
|
|
34
|
+
},
|
|
35
|
+
"bundler": {
|
|
36
|
+
"type": "string",
|
|
37
|
+
"enum": [
|
|
38
|
+
"turbopack",
|
|
39
|
+
"webpack"
|
|
40
|
+
]
|
|
41
|
+
},
|
|
42
|
+
"adapter": {
|
|
43
|
+
"type": "string",
|
|
44
|
+
"enum": [
|
|
45
|
+
"node",
|
|
46
|
+
"vercel",
|
|
47
|
+
"cloudflare",
|
|
48
|
+
"static"
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"required": [
|
|
53
|
+
"name",
|
|
54
|
+
"variant"
|
|
55
|
+
],
|
|
56
|
+
"additionalProperties": false
|
|
57
|
+
},
|
|
58
|
+
"styling": {
|
|
59
|
+
"type": "object",
|
|
60
|
+
"properties": {
|
|
61
|
+
"engine": {
|
|
62
|
+
"type": "string",
|
|
63
|
+
"enum": [
|
|
64
|
+
"tailwind",
|
|
65
|
+
"bootstrap",
|
|
66
|
+
"none"
|
|
67
|
+
]
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"required": [
|
|
71
|
+
"engine"
|
|
72
|
+
],
|
|
73
|
+
"additionalProperties": false
|
|
74
|
+
},
|
|
75
|
+
"architecture": {
|
|
76
|
+
"type": "object",
|
|
77
|
+
"properties": {
|
|
78
|
+
"type": {
|
|
79
|
+
"type": "string",
|
|
80
|
+
"enum": [
|
|
81
|
+
"feature-based",
|
|
82
|
+
"type-based",
|
|
83
|
+
"hybrid",
|
|
84
|
+
"none"
|
|
85
|
+
]
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
"required": [
|
|
89
|
+
"type"
|
|
90
|
+
],
|
|
91
|
+
"additionalProperties": false
|
|
92
|
+
},
|
|
93
|
+
"ui": {
|
|
94
|
+
"type": "object",
|
|
95
|
+
"properties": {
|
|
96
|
+
"kit": {
|
|
97
|
+
"type": "string",
|
|
98
|
+
"enum": [
|
|
99
|
+
"shadcn",
|
|
100
|
+
"none"
|
|
101
|
+
]
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
"required": [
|
|
105
|
+
"kit"
|
|
106
|
+
],
|
|
107
|
+
"additionalProperties": false
|
|
108
|
+
},
|
|
109
|
+
"docs": {
|
|
110
|
+
"type": "object",
|
|
111
|
+
"properties": {
|
|
112
|
+
"language": {
|
|
113
|
+
"type": "string",
|
|
114
|
+
"enum": [
|
|
115
|
+
"en",
|
|
116
|
+
"es"
|
|
117
|
+
]
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
"required": [
|
|
121
|
+
"language"
|
|
122
|
+
],
|
|
123
|
+
"additionalProperties": false
|
|
124
|
+
},
|
|
125
|
+
"paths": {
|
|
126
|
+
"type": "object",
|
|
127
|
+
"properties": {
|
|
128
|
+
"features": {
|
|
129
|
+
"type": "string",
|
|
130
|
+
"minLength": 1
|
|
131
|
+
},
|
|
132
|
+
"components": {
|
|
133
|
+
"type": "string",
|
|
134
|
+
"minLength": 1
|
|
135
|
+
},
|
|
136
|
+
"services": {
|
|
137
|
+
"type": "string",
|
|
138
|
+
"minLength": 1
|
|
139
|
+
},
|
|
140
|
+
"hooks": {
|
|
141
|
+
"type": "string",
|
|
142
|
+
"minLength": 1
|
|
143
|
+
},
|
|
144
|
+
"pages": {
|
|
145
|
+
"type": "string",
|
|
146
|
+
"minLength": 1
|
|
147
|
+
},
|
|
148
|
+
"ui": {
|
|
149
|
+
"type": "string",
|
|
150
|
+
"minLength": 1
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
"required": [
|
|
154
|
+
"features",
|
|
155
|
+
"components",
|
|
156
|
+
"services",
|
|
157
|
+
"hooks",
|
|
158
|
+
"pages",
|
|
159
|
+
"ui"
|
|
160
|
+
],
|
|
161
|
+
"additionalProperties": false
|
|
162
|
+
},
|
|
163
|
+
"tooling": {
|
|
164
|
+
"type": "object",
|
|
165
|
+
"properties": {
|
|
166
|
+
"language": {
|
|
167
|
+
"type": "string",
|
|
168
|
+
"enum": [
|
|
169
|
+
"ts",
|
|
170
|
+
"js"
|
|
171
|
+
]
|
|
172
|
+
},
|
|
173
|
+
"linter": {
|
|
174
|
+
"type": "string",
|
|
175
|
+
"enum": [
|
|
176
|
+
"eslint",
|
|
177
|
+
"oxlint",
|
|
178
|
+
"biome",
|
|
179
|
+
"none"
|
|
180
|
+
]
|
|
181
|
+
},
|
|
182
|
+
"formatter": {
|
|
183
|
+
"type": "string",
|
|
184
|
+
"enum": [
|
|
185
|
+
"prettier",
|
|
186
|
+
"oxfmt",
|
|
187
|
+
"none"
|
|
188
|
+
]
|
|
189
|
+
}
|
|
190
|
+
},
|
|
191
|
+
"required": [
|
|
192
|
+
"language",
|
|
193
|
+
"linter",
|
|
194
|
+
"formatter"
|
|
195
|
+
],
|
|
196
|
+
"additionalProperties": false
|
|
197
|
+
},
|
|
198
|
+
"reactCompiler": {
|
|
199
|
+
"type": "boolean"
|
|
200
|
+
},
|
|
201
|
+
"agentDocs": {
|
|
202
|
+
"type": "boolean"
|
|
203
|
+
}
|
|
204
|
+
},
|
|
205
|
+
"required": [
|
|
206
|
+
"manifestVersion",
|
|
207
|
+
"framework",
|
|
208
|
+
"styling",
|
|
209
|
+
"architecture",
|
|
210
|
+
"ui",
|
|
211
|
+
"docs",
|
|
212
|
+
"paths",
|
|
213
|
+
"tooling"
|
|
214
|
+
],
|
|
215
|
+
"additionalProperties": false
|
|
216
|
+
}
|