diff --git a/frameworks/react-cra/add-ons/ai/info.json b/frameworks/react-cra/add-ons/ai/info.json index 44cf0bf6..dd1c0e9c 100644 --- a/frameworks/react-cra/add-ons/ai/info.json +++ b/frameworks/react-cra/add-ons/ai/info.json @@ -4,6 +4,8 @@ "phase": "add-on", "modes": ["file-router"], "type": "add-on", + "category": "tanstack", + "color": "#00D1B2", "priority": 60, "link": "", "routes": [ diff --git a/frameworks/react-cra/add-ons/apollo-client/info.json b/frameworks/react-cra/add-ons/apollo-client/info.json index 13f067e7..375c9609 100644 --- a/frameworks/react-cra/add-ons/apollo-client/info.json +++ b/frameworks/react-cra/add-ons/apollo-client/info.json @@ -4,6 +4,8 @@ "phase": "add-on", "modes": ["file-router"], "type": "add-on", + "category": "api", + "color": "#311C87", "priority": 15, "link": "https://github.com/apollographql/apollo-client-integrations/tree/main/packages/tanstack-start", "dependsOn": ["start"], diff --git a/frameworks/react-cra/add-ons/better-auth/info.json b/frameworks/react-cra/add-ons/better-auth/info.json index 4c3f8f67..9a90d16d 100644 --- a/frameworks/react-cra/add-ons/better-auth/info.json +++ b/frameworks/react-cra/add-ons/better-auth/info.json @@ -3,6 +3,9 @@ "description": "Add Better Auth authentication to your application.", "phase": "add-on", "type": "add-on", + "category": "auth", + "exclusive": ["auth"], + "color": "#000000", "priority": 26, "link": "https://www.better-auth.com", "modes": ["file-router"], diff --git a/frameworks/react-cra/add-ons/clerk/info.json b/frameworks/react-cra/add-ons/clerk/info.json index 72097ae6..ad1c2df4 100644 --- a/frameworks/react-cra/add-ons/clerk/info.json +++ b/frameworks/react-cra/add-ons/clerk/info.json @@ -4,6 +4,9 @@ "phase": "add-on", "modes": ["file-router"], "type": "add-on", + "category": "auth", + "exclusive": ["auth"], + "color": "#6C47FF", "priority": 150, "link": "https://clerk.com", "tailwind": true, diff --git a/frameworks/react-cra/add-ons/compiler/info.json b/frameworks/react-cra/add-ons/compiler/info.json index 58e63ed4..0d59fd53 100644 --- a/frameworks/react-cra/add-ons/compiler/info.json +++ b/frameworks/react-cra/add-ons/compiler/info.json @@ -5,6 +5,8 @@ "link": "https://react.dev/learn/react-compiler", "modes": ["code-router", "file-router"], "type": "add-on", + "category": "tooling", + "color": "#61DAFB", "priority": 50, "routes": [] } diff --git a/frameworks/react-cra/add-ons/convex/info.json b/frameworks/react-cra/add-ons/convex/info.json index 1e07758b..0d23964d 100644 --- a/frameworks/react-cra/add-ons/convex/info.json +++ b/frameworks/react-cra/add-ons/convex/info.json @@ -4,6 +4,9 @@ "link": "https://convex.dev", "phase": "add-on", "type": "add-on", + "category": "database", + "exclusive": ["database", "orm"], + "color": "#EE342F", "priority": 140, "modes": ["file-router"], "routes": [ diff --git a/frameworks/react-cra/add-ons/db/info.json b/frameworks/react-cra/add-ons/db/info.json index 63f22173..5002d350 100644 --- a/frameworks/react-cra/add-ons/db/info.json +++ b/frameworks/react-cra/add-ons/db/info.json @@ -3,6 +3,8 @@ "description": "TanStack DB", "phase": "add-on", "type": "add-on", + "category": "tanstack", + "color": "#00D1B2", "priority": 48, "modes": ["file-router"], "link": "https://tanstack.com/db/latest", diff --git a/frameworks/react-cra/add-ons/drizzle/info.json b/frameworks/react-cra/add-ons/drizzle/info.json index 771411bd..b97742f3 100644 --- a/frameworks/react-cra/add-ons/drizzle/info.json +++ b/frameworks/react-cra/add-ons/drizzle/info.json @@ -3,6 +3,9 @@ "description": "Add Drizzle ORM to your application.", "phase": "add-on", "type": "add-on", + "category": "orm", + "exclusive": ["orm"], + "color": "#C026D3", "priority": 46, "link": "https://orm.drizzle.team/", "modes": ["file-router"], diff --git a/frameworks/react-cra/add-ons/form/info.json b/frameworks/react-cra/add-ons/form/info.json index 5ae4a9ef..093f079f 100644 --- a/frameworks/react-cra/add-ons/form/info.json +++ b/frameworks/react-cra/add-ons/form/info.json @@ -3,6 +3,8 @@ "description": "TanStack Form", "phase": "add-on", "type": "add-on", + "category": "tanstack", + "color": "#FACC15", "priority": 44, "modes": ["file-router", "code-router"], "link": "https://tanstack.com/form/latest", diff --git a/frameworks/react-cra/add-ons/mcp/info.json b/frameworks/react-cra/add-ons/mcp/info.json index e665a19e..4f8e6790 100644 --- a/frameworks/react-cra/add-ons/mcp/info.json +++ b/frameworks/react-cra/add-ons/mcp/info.json @@ -5,6 +5,8 @@ "link": "https://mcp.dev", "modes": ["file-router"], "type": "add-on", + "category": "api", + "color": "#10B981", "priority": 42, "warning": "MCP is still in development and may change significantly or not be compatible with other add-ons.\nThe MCP implementation does not support authentication.", "routes": [ diff --git a/frameworks/react-cra/add-ons/module-federation/info.json b/frameworks/react-cra/add-ons/module-federation/info.json index c763ee73..2fcbf288 100644 --- a/frameworks/react-cra/add-ons/module-federation/info.json +++ b/frameworks/react-cra/add-ons/module-federation/info.json @@ -5,5 +5,7 @@ "modes": ["code-router"], "link": "https://module-federation.io/", "type": "add-on", + "category": "tooling", + "color": "#1B72BE", "priority": 38 } diff --git a/frameworks/react-cra/add-ons/neon/info.json b/frameworks/react-cra/add-ons/neon/info.json index 7ccd20c8..e82740c3 100644 --- a/frameworks/react-cra/add-ons/neon/info.json +++ b/frameworks/react-cra/add-ons/neon/info.json @@ -4,6 +4,9 @@ "link": "https://neon.com", "phase": "add-on", "type": "add-on", + "category": "database", + "exclusive": ["database"], + "color": "#00E599", "priority": 170, "modes": ["file-router"], "routes": [ diff --git a/frameworks/react-cra/add-ons/oRPC/info.json b/frameworks/react-cra/add-ons/oRPC/info.json index 47219344..737d6880 100644 --- a/frameworks/react-cra/add-ons/oRPC/info.json +++ b/frameworks/react-cra/add-ons/oRPC/info.json @@ -6,6 +6,8 @@ "link": "https://orpc.unnoq.com/", "dependsOn": ["tanstack-query", "start"], "type": "add-on", + "category": "api", + "color": "#FF6B6B", "priority": 34, "routes": [ { diff --git a/frameworks/react-cra/add-ons/paraglide/info.json b/frameworks/react-cra/add-ons/paraglide/info.json index 6bffd29a..afa6b2e9 100644 --- a/frameworks/react-cra/add-ons/paraglide/info.json +++ b/frameworks/react-cra/add-ons/paraglide/info.json @@ -4,6 +4,8 @@ "phase": "add-on", "modes": ["file-router"], "type": "add-on", + "category": "i18n", + "color": "#14B8A6", "priority": 30, "link": "https://github.com/paraglidejs/paraglide-js", "routes": [ diff --git a/frameworks/react-cra/add-ons/prisma/info.json b/frameworks/react-cra/add-ons/prisma/info.json index 3beca1c4..b0e87894 100644 --- a/frameworks/react-cra/add-ons/prisma/info.json +++ b/frameworks/react-cra/add-ons/prisma/info.json @@ -3,6 +3,9 @@ "description": "Add Prisma Postgres, or Prisma ORM with other DBs to your application.", "phase": "add-on", "type": "add-on", + "category": "orm", + "exclusive": ["orm"], + "color": "#2D3748", "priority": 120, "link": "https://www.prisma.io/", "modes": ["file-router"], diff --git a/frameworks/react-cra/add-ons/sentry/info.json b/frameworks/react-cra/add-ons/sentry/info.json index 35f0b851..5bde2454 100644 --- a/frameworks/react-cra/add-ons/sentry/info.json +++ b/frameworks/react-cra/add-ons/sentry/info.json @@ -5,6 +5,8 @@ "link": "https://sentry.com/", "modes": ["file-router"], "type": "add-on", + "category": "monitoring", + "color": "#362D59", "priority": 130, "routes": [ { diff --git a/frameworks/react-cra/add-ons/shadcn/info.json b/frameworks/react-cra/add-ons/shadcn/info.json index d53c446c..72e922ca 100644 --- a/frameworks/react-cra/add-ons/shadcn/info.json +++ b/frameworks/react-cra/add-ons/shadcn/info.json @@ -5,5 +5,7 @@ "modes": ["file-router", "code-router"], "link": "https://ui.shadcn.com/", "type": "add-on", + "category": "styling", + "color": "#000000", "priority": 30 } diff --git a/frameworks/react-cra/add-ons/start/info.json b/frameworks/react-cra/add-ons/start/info.json index 41049799..250638c0 100644 --- a/frameworks/react-cra/add-ons/start/info.json +++ b/frameworks/react-cra/add-ons/start/info.json @@ -5,6 +5,8 @@ "link": "https://tanstack.com/start/latest", "modes": ["file-router"], "type": "add-on", + "category": "tanstack", + "color": "#00D1B2", "tailwind": false, "priority": 26, "warning": "TanStack Start is not yet at 1.0 and may change significantly or not be compatible with other add-ons.\nMigrating to Start might require deleting node_modules and re-installing.", diff --git a/frameworks/react-cra/add-ons/store/info.json b/frameworks/react-cra/add-ons/store/info.json index dbc1538c..035764fc 100644 --- a/frameworks/react-cra/add-ons/store/info.json +++ b/frameworks/react-cra/add-ons/store/info.json @@ -4,6 +4,8 @@ "phase": "add-on", "link": "https://tanstack.com/store/latest", "type": "add-on", + "category": "tanstack", + "color": "#00D1B2", "priority": 22, "modes": ["file-router", "code-router"], "routes": [ diff --git a/frameworks/react-cra/add-ons/storybook/info.json b/frameworks/react-cra/add-ons/storybook/info.json index 96fab6cb..e21627c9 100644 --- a/frameworks/react-cra/add-ons/storybook/info.json +++ b/frameworks/react-cra/add-ons/storybook/info.json @@ -5,6 +5,8 @@ "modes": ["file-router"], "link": "https://storybook.js.org/", "type": "add-on", + "category": "tooling", + "color": "#FF4785", "priority": 18, "routes": [ { diff --git a/frameworks/react-cra/add-ons/strapi/info.json b/frameworks/react-cra/add-ons/strapi/info.json index 96c10f07..1761cd27 100644 --- a/frameworks/react-cra/add-ons/strapi/info.json +++ b/frameworks/react-cra/add-ons/strapi/info.json @@ -4,6 +4,8 @@ "link": "https://strapi.io/", "phase": "add-on", "type": "add-on", + "category": "cms", + "color": "#4945FF", "priority": 110, "modes": ["file-router"], "routes": [ diff --git a/frameworks/react-cra/add-ons/t3env/info.json b/frameworks/react-cra/add-ons/t3env/info.json index a8d970a3..83ce2290 100644 --- a/frameworks/react-cra/add-ons/t3env/info.json +++ b/frameworks/react-cra/add-ons/t3env/info.json @@ -3,6 +3,8 @@ "description": "Add type safety to your environment variables", "phase": "add-on", "type": "add-on", + "category": "tooling", + "color": "#6366F1", "priority": 29, "link": "https://github.com/t3-oss/t3-env", "modes": ["file-router", "code-router"] diff --git a/frameworks/react-cra/add-ons/tRPC/info.json b/frameworks/react-cra/add-ons/tRPC/info.json index c816edc3..16afe3ab 100644 --- a/frameworks/react-cra/add-ons/tRPC/info.json +++ b/frameworks/react-cra/add-ons/tRPC/info.json @@ -6,6 +6,8 @@ "link": "https://trpc.io/", "dependsOn": ["tanstack-query", "start"], "type": "add-on", + "category": "api", + "color": "#2596BE", "priority": 27, "routes": [ { diff --git a/frameworks/react-cra/add-ons/table/info.json b/frameworks/react-cra/add-ons/table/info.json index 15f47da2..8d81fcb8 100644 --- a/frameworks/react-cra/add-ons/table/info.json +++ b/frameworks/react-cra/add-ons/table/info.json @@ -5,6 +5,8 @@ "modes": ["file-router", "code-router"], "link": "https://tanstack.com/table/latest", "type": "add-on", + "category": "tanstack", + "color": "#00D1B2", "priority": 28, "routes": [ { diff --git a/frameworks/react-cra/add-ons/tanstack-query/info.json b/frameworks/react-cra/add-ons/tanstack-query/info.json index f5deb358..f104ba3f 100644 --- a/frameworks/react-cra/add-ons/tanstack-query/info.json +++ b/frameworks/react-cra/add-ons/tanstack-query/info.json @@ -4,6 +4,8 @@ "phase": "add-on", "modes": ["file-router", "code-router"], "type": "add-on", + "category": "tanstack", + "color": "#EF4444", "priority": 10, "link": "https://tanstack.com/query/latest", "routes": [ diff --git a/frameworks/react-cra/add-ons/workos/info.json b/frameworks/react-cra/add-ons/workos/info.json index 58a317a8..c49b9b6f 100644 --- a/frameworks/react-cra/add-ons/workos/info.json +++ b/frameworks/react-cra/add-ons/workos/info.json @@ -4,6 +4,9 @@ "phase": "add-on", "modes": ["file-router"], "type": "add-on", + "category": "auth", + "exclusive": ["auth"], + "color": "#6363F1", "priority": 160, "link": "https://workos.com", "tailwind": true, diff --git a/frameworks/react-cra/examples/events/info.json b/frameworks/react-cra/examples/events/info.json index d7c1c4ad..e904cea7 100644 --- a/frameworks/react-cra/examples/events/info.json +++ b/frameworks/react-cra/examples/events/info.json @@ -4,6 +4,8 @@ "phase": "example", "modes": ["file-router"], "type": "example", + "category": "other", + "color": "#F59E0B", "priority": 10, "link": "", "routes": [ diff --git a/frameworks/react-cra/examples/resume/info.json b/frameworks/react-cra/examples/resume/info.json index 28aab882..2a9609f1 100644 --- a/frameworks/react-cra/examples/resume/info.json +++ b/frameworks/react-cra/examples/resume/info.json @@ -4,6 +4,8 @@ "phase": "example", "modes": ["file-router"], "type": "example", + "category": "other", + "color": "#8B5CF6", "priority": 10, "link": "", "routes": [ diff --git a/frameworks/react-cra/hosts/cloudflare/info.json b/frameworks/react-cra/hosts/cloudflare/info.json index c7f7491e..b1353f95 100644 --- a/frameworks/react-cra/hosts/cloudflare/info.json +++ b/frameworks/react-cra/hosts/cloudflare/info.json @@ -5,6 +5,9 @@ "phase": "add-on", "modes": ["file-router", "code-router"], "type": "deployment", + "category": "deploy", + "exclusive": ["deploy"], + "color": "#F38020", "priority": 200, "tailwind": false, "integrations": [ diff --git a/frameworks/react-cra/hosts/netlify/info.json b/frameworks/react-cra/hosts/netlify/info.json index 4621e9df..adedb545 100644 --- a/frameworks/react-cra/hosts/netlify/info.json +++ b/frameworks/react-cra/hosts/netlify/info.json @@ -5,6 +5,9 @@ "phase": "add-on", "modes": ["file-router", "code-router"], "type": "deployment", + "category": "deploy", + "exclusive": ["deploy"], + "color": "#00C7B7", "priority": 180, "tailwind": false, "integrations": [ diff --git a/frameworks/react-cra/hosts/nitro/info.json b/frameworks/react-cra/hosts/nitro/info.json index 83983ecf..08323742 100644 --- a/frameworks/react-cra/hosts/nitro/info.json +++ b/frameworks/react-cra/hosts/nitro/info.json @@ -5,6 +5,9 @@ "phase": "add-on", "modes": ["file-router", "code-router"], "type": "deployment", + "category": "deploy", + "exclusive": ["deploy"], + "color": "#ECDC5A", "priority": 0, "tailwind": false, "integrations": [ diff --git a/frameworks/react-cra/hosts/railway/assets/nixpacks.toml b/frameworks/react-cra/hosts/railway/assets/nixpacks.toml new file mode 100644 index 00000000..70ae68d2 --- /dev/null +++ b/frameworks/react-cra/hosts/railway/assets/nixpacks.toml @@ -0,0 +1,8 @@ +[phases.setup] +nixPkgs = ["nodejs_22"] + +[phases.build] +cmds = ["npm install", "npm run build"] + +[start] +cmd = "npm run start" diff --git a/frameworks/react-cra/hosts/railway/info.json b/frameworks/react-cra/hosts/railway/info.json new file mode 100644 index 00000000..59ed3453 --- /dev/null +++ b/frameworks/react-cra/hosts/railway/info.json @@ -0,0 +1,20 @@ +{ + "name": "Railway", + "description": "Railway deployment setup", + "link": "https://railway.com/", + "phase": "add-on", + "modes": ["file-router", "code-router"], + "type": "deployment", + "category": "deploy", + "exclusive": ["deploy"], + "color": "#9B4DCA", + "priority": 160, + "tailwind": false, + "integrations": [ + { + "type": "vite-plugin", + "import": "import { nitro } from 'nitro/vite'", + "code": "nitro()" + } + ] +} diff --git a/frameworks/react-cra/hosts/railway/package.json b/frameworks/react-cra/hosts/railway/package.json new file mode 100644 index 00000000..5006a8bb --- /dev/null +++ b/frameworks/react-cra/hosts/railway/package.json @@ -0,0 +1,8 @@ +{ + "scripts": { + "start": "node .output/server/index.mjs" + }, + "dependencies": { + "nitro": "npm:nitro-nightly@latest" + } +} diff --git a/frameworks/react-cra/toolchains/biome/info.json b/frameworks/react-cra/toolchains/biome/info.json index 79e8efdb..cdcc9c56 100644 --- a/frameworks/react-cra/toolchains/biome/info.json +++ b/frameworks/react-cra/toolchains/biome/info.json @@ -3,6 +3,9 @@ "description": "Biome toolchain support.", "phase": "setup", "type": "toolchain", + "category": "tooling", + "exclusive": ["linter"], + "color": "#60A5FA", "priority": 2, "modes": ["code-router", "file-router"], "link": "https://biomejs.dev" diff --git a/frameworks/react-cra/toolchains/eslint/info.json b/frameworks/react-cra/toolchains/eslint/info.json index f3bf1bdc..64b0aa1f 100644 --- a/frameworks/react-cra/toolchains/eslint/info.json +++ b/frameworks/react-cra/toolchains/eslint/info.json @@ -3,6 +3,9 @@ "description": "ESLint + Prettier toolchain support.", "phase": "setup", "type": "toolchain", + "category": "tooling", + "exclusive": ["linter"], + "color": "#4B32C3", "priority": 0, "modes": ["code-router", "file-router"], "link": "https://eslint.org" diff --git a/frameworks/solid/add-ons/better-auth/info.json b/frameworks/solid/add-ons/better-auth/info.json index be41d737..02be9d7f 100644 --- a/frameworks/solid/add-ons/better-auth/info.json +++ b/frameworks/solid/add-ons/better-auth/info.json @@ -3,6 +3,9 @@ "description": "Add Better Auth authentication to your application.", "phase": "add-on", "type": "add-on", + "category": "auth", + "exclusive": ["auth"], + "color": "#000000", "link": "https://www.better-auth.com/", "modes": ["file-router"], "dependsOn": ["start"], diff --git a/frameworks/solid/add-ons/convex/info.json b/frameworks/solid/add-ons/convex/info.json index 75a3443c..50c3a089 100644 --- a/frameworks/solid/add-ons/convex/info.json +++ b/frameworks/solid/add-ons/convex/info.json @@ -4,6 +4,9 @@ "link": "https://convex.dev", "phase": "add-on", "type": "add-on", + "category": "database", + "exclusive": ["database", "orm"], + "color": "#EE342F", "modes": ["file-router"], "routes": [ { diff --git a/frameworks/solid/add-ons/form/info.json b/frameworks/solid/add-ons/form/info.json index 78b9389d..5060d2d7 100644 --- a/frameworks/solid/add-ons/form/info.json +++ b/frameworks/solid/add-ons/form/info.json @@ -5,6 +5,8 @@ "link": "https://tanstack.com/form/latest", "modes": ["file-router", "code-router"], "type": "add-on", + "category": "tanstack", + "color": "#FACC15", "routes": [ { "url": "/demo/form", diff --git a/frameworks/solid/add-ons/module-federation/info.json b/frameworks/solid/add-ons/module-federation/info.json index e825c455..8338105e 100644 --- a/frameworks/solid/add-ons/module-federation/info.json +++ b/frameworks/solid/add-ons/module-federation/info.json @@ -4,5 +4,7 @@ "phase": "add-on", "modes": ["code-router"], "link": "https://module-federation.io/", - "type": "add-on" + "type": "add-on", + "category": "tooling", + "color": "#1B72BE" } diff --git a/frameworks/solid/add-ons/sentry/info.json b/frameworks/solid/add-ons/sentry/info.json index 92cda812..dc4a68ba 100644 --- a/frameworks/solid/add-ons/sentry/info.json +++ b/frameworks/solid/add-ons/sentry/info.json @@ -5,6 +5,8 @@ "link": "https://sentry.com/", "modes": ["file-router"], "type": "add-on", + "category": "monitoring", + "color": "#362D59", "routes": [ { "url": "/demo/sentry/bad-event-handler", diff --git a/frameworks/solid/add-ons/solid-ui/info.json b/frameworks/solid/add-ons/solid-ui/info.json index 3d501253..6aa2d0c0 100644 --- a/frameworks/solid/add-ons/solid-ui/info.json +++ b/frameworks/solid/add-ons/solid-ui/info.json @@ -5,6 +5,8 @@ "link": "https://ui.shadcn.com/", "modes": ["file-router", "code-router"], "type": "add-on", + "category": "styling", + "color": "#000000", "command": { "command": "npx", "args": ["solidui-cli@latest", "add", "button", "input"] diff --git a/frameworks/solid/add-ons/start/info.json b/frameworks/solid/add-ons/start/info.json index 63fa14f9..588d8cb9 100644 --- a/frameworks/solid/add-ons/start/info.json +++ b/frameworks/solid/add-ons/start/info.json @@ -5,6 +5,8 @@ "link": "https://tanstack.com/start/latest", "modes": ["file-router"], "type": "add-on", + "category": "tanstack", + "color": "#00D1B2", "routes": [ { "url": "/demo/start/server-funcs", diff --git a/frameworks/solid/add-ons/store/info.json b/frameworks/solid/add-ons/store/info.json index faac463e..eda9d49f 100644 --- a/frameworks/solid/add-ons/store/info.json +++ b/frameworks/solid/add-ons/store/info.json @@ -4,6 +4,8 @@ "phase": "add-on", "modes": ["file-router", "code-router"], "type": "add-on", + "category": "tanstack", + "color": "#00D1B2", "link": "https://tanstack.com/store/latest", "routes": [ { diff --git a/frameworks/solid/add-ons/strapi/info.json b/frameworks/solid/add-ons/strapi/info.json index a9a3f0dd..86c85c2e 100644 --- a/frameworks/solid/add-ons/strapi/info.json +++ b/frameworks/solid/add-ons/strapi/info.json @@ -4,9 +4,9 @@ "link": "https://strapi.io/", "phase": "add-on", "type": "add-on", - "modes": [ - "file-router" - ], + "category": "cms", + "color": "#4945FF", + "modes": ["file-router"], "routes": [ { "url": "/demo/strapi", @@ -15,4 +15,4 @@ "jsName": "StrapiDemo" } ] -} \ No newline at end of file +} diff --git a/frameworks/solid/add-ons/t3env/info.json b/frameworks/solid/add-ons/t3env/info.json index d7f20837..e2b9a018 100644 --- a/frameworks/solid/add-ons/t3env/info.json +++ b/frameworks/solid/add-ons/t3env/info.json @@ -4,5 +4,7 @@ "phase": "add-on", "link": "https://github.com/t3-oss/t3-env", "type": "add-on", + "category": "tooling", + "color": "#6366F1", "modes": ["file-router", "code-router"] } diff --git a/frameworks/solid/add-ons/tanstack-query/info.json b/frameworks/solid/add-ons/tanstack-query/info.json index 23017a9e..b79ae201 100644 --- a/frameworks/solid/add-ons/tanstack-query/info.json +++ b/frameworks/solid/add-ons/tanstack-query/info.json @@ -4,6 +4,8 @@ "phase": "add-on", "modes": ["file-router"], "type": "add-on", + "category": "tanstack", + "color": "#EF4444", "link": "https://tanstack.com/query/latest", "routes": [ { diff --git a/frameworks/solid/examples/tanchat/info.json b/frameworks/solid/examples/tanchat/info.json index b1a626b3..fece6af2 100644 --- a/frameworks/solid/examples/tanchat/info.json +++ b/frameworks/solid/examples/tanchat/info.json @@ -3,6 +3,8 @@ "description": "A chat example that uses TanStack Start and TanStack Store. Features chat with Anthropic Sonnet, chat history and custom prompts.", "phase": "example", "type": "example", + "category": "other", + "color": "#00D1B2", "modes": ["file-router"], "link": "", "routes": [ diff --git a/frameworks/solid/hosts/cloudflare/info.json b/frameworks/solid/hosts/cloudflare/info.json index c7f7491e..b1353f95 100644 --- a/frameworks/solid/hosts/cloudflare/info.json +++ b/frameworks/solid/hosts/cloudflare/info.json @@ -5,6 +5,9 @@ "phase": "add-on", "modes": ["file-router", "code-router"], "type": "deployment", + "category": "deploy", + "exclusive": ["deploy"], + "color": "#F38020", "priority": 200, "tailwind": false, "integrations": [ diff --git a/frameworks/solid/hosts/netlify/info.json b/frameworks/solid/hosts/netlify/info.json index 4621e9df..adedb545 100644 --- a/frameworks/solid/hosts/netlify/info.json +++ b/frameworks/solid/hosts/netlify/info.json @@ -5,6 +5,9 @@ "phase": "add-on", "modes": ["file-router", "code-router"], "type": "deployment", + "category": "deploy", + "exclusive": ["deploy"], + "color": "#00C7B7", "priority": 180, "tailwind": false, "integrations": [ diff --git a/frameworks/solid/hosts/nitro/info.json b/frameworks/solid/hosts/nitro/info.json index a6e2c12a..74efd06f 100644 --- a/frameworks/solid/hosts/nitro/info.json +++ b/frameworks/solid/hosts/nitro/info.json @@ -5,6 +5,9 @@ "phase": "add-on", "modes": ["file-router", "code-router"], "type": "deployment", + "category": "deploy", + "exclusive": ["deploy"], + "color": "#ECDC5A", "tailwind": false, "integrations": [ { diff --git a/frameworks/solid/hosts/railway/assets/nixpacks.toml b/frameworks/solid/hosts/railway/assets/nixpacks.toml new file mode 100644 index 00000000..70ae68d2 --- /dev/null +++ b/frameworks/solid/hosts/railway/assets/nixpacks.toml @@ -0,0 +1,8 @@ +[phases.setup] +nixPkgs = ["nodejs_22"] + +[phases.build] +cmds = ["npm install", "npm run build"] + +[start] +cmd = "npm run start" diff --git a/frameworks/solid/hosts/railway/info.json b/frameworks/solid/hosts/railway/info.json new file mode 100644 index 00000000..59ed3453 --- /dev/null +++ b/frameworks/solid/hosts/railway/info.json @@ -0,0 +1,20 @@ +{ + "name": "Railway", + "description": "Railway deployment setup", + "link": "https://railway.com/", + "phase": "add-on", + "modes": ["file-router", "code-router"], + "type": "deployment", + "category": "deploy", + "exclusive": ["deploy"], + "color": "#9B4DCA", + "priority": 160, + "tailwind": false, + "integrations": [ + { + "type": "vite-plugin", + "import": "import { nitro } from 'nitro/vite'", + "code": "nitro()" + } + ] +} diff --git a/frameworks/solid/hosts/railway/package.json b/frameworks/solid/hosts/railway/package.json new file mode 100644 index 00000000..5006a8bb --- /dev/null +++ b/frameworks/solid/hosts/railway/package.json @@ -0,0 +1,8 @@ +{ + "scripts": { + "start": "node .output/server/index.mjs" + }, + "dependencies": { + "nitro": "npm:nitro-nightly@latest" + } +} diff --git a/frameworks/solid/toolchains/biome/info.json b/frameworks/solid/toolchains/biome/info.json index 399dccaf..fda33073 100644 --- a/frameworks/solid/toolchains/biome/info.json +++ b/frameworks/solid/toolchains/biome/info.json @@ -3,6 +3,9 @@ "description": "Biome toolchain support.", "phase": "setup", "type": "toolchain", + "category": "tooling", + "exclusive": ["linter"], + "color": "#60A5FA", "modes": ["code-router", "file-router"], "link": "https://biomejs.dev" } diff --git a/frameworks/solid/toolchains/eslint/info.json b/frameworks/solid/toolchains/eslint/info.json index e7288942..09b35944 100644 --- a/frameworks/solid/toolchains/eslint/info.json +++ b/frameworks/solid/toolchains/eslint/info.json @@ -3,6 +3,9 @@ "description": "ESLint + Prettier toolchain support.", "phase": "setup", "type": "toolchain", + "category": "tooling", + "exclusive": ["linter"], + "color": "#4B32C3", "modes": ["code-router", "file-router"], "link": "https://eslint.org" } diff --git a/packages/cta-engine/src/types.ts b/packages/cta-engine/src/types.ts index bc9f27e1..6bdad6d8 100644 --- a/packages/cta-engine/src/types.ts +++ b/packages/cta-engine/src/types.ts @@ -39,6 +39,26 @@ export const AddOnBaseSchema = z.object({ warning: z.string().optional(), tailwind: z.boolean().optional().default(true), type: z.enum(['add-on', 'example', 'starter', 'toolchain', 'deployment']), + category: z + .enum([ + 'tanstack', + 'database', + 'orm', + 'auth', + 'deploy', + 'styling', + 'monitoring', + 'cms', + 'api', + 'i18n', + 'tooling', + 'other', + ]) + .optional(), + exclusive: z + .array(z.enum(['orm', 'auth', 'deploy', 'database', 'linter'])) + .optional(), + color: z.string().optional(), priority: z.number().optional(), command: z .object({ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a94aab6b..919aedab 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -859,6 +859,9 @@ packages: '@codemirror/autocomplete@6.18.6': resolution: {integrity: sha512-PHHBXFomUs5DF+9tCOM/UoW6XQ4R44lLNNhRaW9PKPTU0D7lIjRg3ElxaJnTwsl/oHiR93WSXDBrekhoUGCPtg==} + '@codemirror/commands@6.10.1': + resolution: {integrity: sha512-uWDWFypNdQmz2y1LaNJzK7fL7TYKLeUAU0npEC685OKTF3KcQ2Vu3klIM78D7I6wGhktme0lh3CuQLv0ZCrD9Q==} + '@codemirror/commands@6.8.1': resolution: {integrity: sha512-KlGVYufHMQzxbdQONiLyGQDUW0itrLZwq3CcY7xpv9ZLRHqzkBSoteocBHtMCoY7/Ci4xhzSrToIeLg7FxHuaw==} @@ -1212,19 +1215,28 @@ packages: '@jridgewell/gen-mapping@0.3.12': resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==} + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} - '@jridgewell/source-map@0.3.6': - resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + '@jridgewell/source-map@0.3.11': + resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==} '@jridgewell/sourcemap-codec@1.5.0': resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + '@jridgewell/trace-mapping@0.3.29': resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==} + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + '@jsonjoy.com/base64@1.1.2': resolution: {integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==} engines: {node: '>=10.0'} @@ -1252,12 +1264,18 @@ packages: '@lezer/common@1.2.3': resolution: {integrity: sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA==} + '@lezer/common@1.5.0': + resolution: {integrity: sha512-PNGcolp9hr4PJdXR4ix7XtixDrClScvtSCYW3rQG106oVMOOI+jFb+0+J3mbeL/53g1Zd6s0kJzaw6Ri68GmAA==} + '@lezer/css@1.1.11': resolution: {integrity: sha512-FuAnusbLBl1SEAtfN8NdShxYJiESKw9LAFysfea1T96jD3ydBn12oYjaSG1a04BQRIUd93/0D8e5CV1cUMkmQg==} '@lezer/highlight@1.2.1': resolution: {integrity: sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA==} + '@lezer/highlight@1.2.3': + resolution: {integrity: sha512-qXdH7UqTvGfdVBINrgKhDsVTJTxactNNxLk7+UMwZhU13lMHaOBlJe9Vqp907ya56Y3+ed2tlqzys7jDkTmW0g==} + '@lezer/html@1.3.10': resolution: {integrity: sha512-dqpT8nISx/p9Do3AchvYGV3qYc4/rKr3IBZxlHmpIKam56P47RSHkSF5f13Vu9hebS1jM0HmtJIwLbWz1VIY6w==} @@ -4486,6 +4504,11 @@ packages: engines: {node: '>= 0.4'} hasBin: true + resolve@1.22.11: + resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} + engines: {node: '>= 0.4'} + hasBin: true + restore-cursor@3.1.0: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} @@ -4725,6 +4748,7 @@ packages: tar@7.4.3: resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==} engines: {node: '>=18'} + deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exhorbitant rates) by contacting i@izs.me temp-dir@3.0.0: resolution: {integrity: sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==} @@ -4926,8 +4950,8 @@ packages: undici-types@7.13.0: resolution: {integrity: sha512-Ov2Rr9Sx+fRgagJ5AX0qvItZG/JKKoBRAVITs1zk7IqZGTJUwgUr7qoYBpWwakpWilTZFM98rG/AFRocu10iIQ==} - unicorn-magic@0.3.0: - resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} + unicorn-magic@0.4.0: + resolution: {integrity: sha512-wH590V9VNgYH9g3lH9wWjTrUoKsjLF6sGLjhR4sH1LWpLmCOH0Zf7PukhDA8BiS7KHe4oPNkcTHqYkj7SOGUOw==} engines: {node: '>=18'} unique-string@3.0.0: @@ -5620,6 +5644,13 @@ snapshots: '@codemirror/view': 6.36.6 '@lezer/common': 1.2.3 + '@codemirror/commands@6.10.1': + dependencies: + '@codemirror/language': 6.11.0 + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.36.6 + '@lezer/common': 1.5.0 + '@codemirror/commands@6.8.1': dependencies: '@codemirror/language': 6.11.0 @@ -5700,7 +5731,7 @@ snapshots: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 '@codemirror/view': 6.36.6 - '@lezer/highlight': 1.2.1 + '@lezer/highlight': 1.2.3 '@codemirror/view@6.36.6': dependencies: @@ -5947,21 +5978,36 @@ snapshots: '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.29 + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + optional: true + '@jridgewell/resolve-uri@3.1.2': {} - '@jridgewell/source-map@0.3.6': + '@jridgewell/source-map@0.3.11': dependencies: - '@jridgewell/gen-mapping': 0.3.12 - '@jridgewell/trace-mapping': 0.3.29 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 optional: true '@jridgewell/sourcemap-codec@1.5.0': {} + '@jridgewell/sourcemap-codec@1.5.5': + optional: true + '@jridgewell/trace-mapping@0.3.29': dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + optional: true + '@jsonjoy.com/base64@1.1.2(tslib@2.8.1)': dependencies: tslib: 2.8.1 @@ -5988,6 +6034,8 @@ snapshots: '@lezer/common@1.2.3': {} + '@lezer/common@1.5.0': {} + '@lezer/css@1.1.11': dependencies: '@lezer/common': 1.2.3 @@ -5998,6 +6046,10 @@ snapshots: dependencies: '@lezer/common': 1.2.3 + '@lezer/highlight@1.2.3': + dependencies: + '@lezer/common': 1.5.0 + '@lezer/html@1.3.10': dependencies: '@lezer/common': 1.2.3 @@ -7628,7 +7680,7 @@ snapshots: codemirror@6.0.1: dependencies: '@codemirror/autocomplete': 6.18.6 - '@codemirror/commands': 6.8.1 + '@codemirror/commands': 6.10.1 '@codemirror/language': 6.11.0 '@codemirror/lint': 6.8.5 '@codemirror/search': 6.5.10 @@ -7927,7 +7979,7 @@ snapshots: dependencies: debug: 3.2.7 is-core-module: 2.16.1 - resolve: 1.22.10 + resolve: 1.22.11 transitivePeerDependencies: - supports-color optional: true @@ -8977,7 +9029,7 @@ snapshots: npm-run-path@6.0.0: dependencies: path-key: 4.0.0 - unicorn-magic: 0.3.0 + unicorn-magic: 0.4.0 nwsapi@2.2.20: {} @@ -9366,6 +9418,13 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + resolve@1.22.11: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + optional: true + restore-cursor@3.1.0: dependencies: onetime: 5.1.2 @@ -9668,7 +9727,7 @@ snapshots: terser@5.39.0: dependencies: - '@jridgewell/source-map': 0.3.6 + '@jridgewell/source-map': 0.3.11 acorn: 8.15.0 commander: 2.20.3 source-map-support: 0.5.21 @@ -9824,7 +9883,7 @@ snapshots: undici-types@7.13.0: {} - unicorn-magic@0.3.0: {} + unicorn-magic@0.4.0: {} unique-string@3.0.0: dependencies: