create-kubojs 0.1.1 → 0.2.1
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 +25 -22
- package/dist/cli.mjs +27 -22
- package/dist/index.d.mts +33 -62
- package/dist/index.mjs +2 -2
- package/dist/{src-BAYXN3Za.mjs → src-CvkZZND8.mjs} +996 -1796
- package/package.json +5 -4
package/README.md
CHANGED
|
@@ -2,8 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
A modern CLI tool for scaffolding end-to-end type-safe TypeScript projects with best practices and customizable configurations
|
|
4
4
|
|
|
5
|
-

|
|
6
|
-
|
|
7
5
|
## Quick Start
|
|
8
6
|
|
|
9
7
|
Run without installing globally:
|
|
@@ -23,21 +21,22 @@ Follow the prompts to configure your project or use the `--yes` flag for default
|
|
|
23
21
|
|
|
24
22
|
## Features
|
|
25
23
|
|
|
26
|
-
| Category | Options
|
|
27
|
-
| ------------------------ |
|
|
28
|
-
| **TypeScript** | End-to-end type safety across all parts of your application
|
|
29
|
-
| **Frontend** | • React with TanStack Router<br>• React with React Router<br>• React with TanStack Start (SSR)<br>• Next.js<br>• SvelteKit<br>• Nuxt (Vue)<br>• SolidJS<br>• Astro<br>• React Native bare Expo<br>• React Native with NativeWind (via Expo)<br>• React Native with Unistyles (via Expo)<br>• None
|
|
30
|
-
| **Backend** | • Hono<br>• Express<br>• Elysia<br>• Fastify<br>• Self (fullstack inside the web app)<br>• Convex<br>• None
|
|
31
|
-
| **API Layer** | • tRPC (type-safe APIs)<br>• oRPC (OpenAPI-compatible type-safe APIs)<br>• None
|
|
32
|
-
| **Runtime** | • Bun<br>• Node.js<br>• Cloudflare Workers<br>• None
|
|
33
|
-
| **Database** | • SQLite<br>• PostgreSQL<br>• MySQL<br>• MongoDB<br>• None
|
|
34
|
-
| **ORM** | • Drizzle (TypeScript-first)<br>• Prisma (feature-rich)<br>• Mongoose (for MongoDB)<br>• None
|
|
35
|
-
| **Database Setup** | • Turso (SQLite)<br>• Cloudflare D1 (SQLite)<br>• Neon (PostgreSQL)<br>• Supabase (PostgreSQL)<br>• Prisma Postgres<br>• MongoDB Atlas<br>• None (manual setup)
|
|
36
|
-
| **Authentication** | • Better Auth<br>• Clerk
|
|
37
|
-
| **Styling** | Tailwind CSS with a shared shadcn/ui package for React web apps
|
|
38
|
-
| **Addons** | • PWA support<br>• Tauri (desktop applications)<br>• Electrobun (lightweight desktop shell)<br>•
|
|
39
|
-
| **
|
|
40
|
-
| **
|
|
24
|
+
| Category | Options |
|
|
25
|
+
| ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
26
|
+
| **TypeScript** | End-to-end type safety across all parts of your application |
|
|
27
|
+
| **Frontend** | • React with TanStack Router<br>• React with React Router<br>• React with TanStack Start (SSR)<br>• Next.js<br>• SvelteKit<br>• Nuxt (Vue)<br>• SolidJS<br>• Astro<br>• React Native bare Expo<br>• React Native with NativeWind (via Expo)<br>• React Native with Unistyles (via Expo)<br>• None |
|
|
28
|
+
| **Backend** | • Hono<br>• Express<br>• Elysia<br>• Fastify<br>• Self (fullstack inside the web app)<br>• Convex<br>• None |
|
|
29
|
+
| **API Layer** | • tRPC (type-safe APIs)<br>• oRPC (OpenAPI-compatible type-safe APIs)<br>• Orval (OpenAPI REST APIs with generated Hono handlers)<br>• None |
|
|
30
|
+
| **Runtime** | • Bun<br>• Node.js<br>• Cloudflare Workers<br>• None |
|
|
31
|
+
| **Database** | • SQLite<br>• PostgreSQL<br>• MySQL<br>• MongoDB<br>• None |
|
|
32
|
+
| **ORM** | • Drizzle (TypeScript-first)<br>• Prisma (feature-rich)<br>• Mongoose (for MongoDB)<br>• None |
|
|
33
|
+
| **Database Setup** | • Turso (SQLite)<br>• Cloudflare D1 (SQLite)<br>• Neon (PostgreSQL)<br>• Supabase (PostgreSQL)<br>• Prisma Postgres<br>• MongoDB Atlas<br>• None (manual setup) |
|
|
34
|
+
| **Authentication** | • Better Auth<br>• Clerk |
|
|
35
|
+
| **Styling** | Tailwind CSS with a shared shadcn/ui package for React web apps |
|
|
36
|
+
| **Addons** | • PWA support<br>• Tauri (desktop applications)<br>• Electrobun (lightweight desktop shell)<br>• Biome or Oxlint (linting and formatting)<br>• Lefthook, Husky (Git hooks)<br>• S3-compatible Storage (AWS S3, Cloudflare R2, MinIO, Backblaze)<br>• MCP, Skills (agent tooling)<br>• OpenTUI (terminal interfaces)<br>• Turborepo or Vite+ (monorepo orchestration) |
|
|
37
|
+
| **Testing** | • Vitest (unit tests)<br>• Playwright (end-to-end tests, requires a web frontend) |
|
|
38
|
+
| **Examples** | • Todo app<br>• AI Chat interface (using Vercel AI SDK) |
|
|
39
|
+
| **Developer Experience** | • Automatic Git initialization<br>• Package manager choice (npm, pnpm, bun)<br>• Automatic dependency installation |
|
|
41
40
|
|
|
42
41
|
## Usage
|
|
43
42
|
|
|
@@ -54,8 +53,9 @@ Options:
|
|
|
54
53
|
--auth <provider> Authentication (better-auth, clerk, none)
|
|
55
54
|
--payments <provider> Payments provider (none)
|
|
56
55
|
--frontend <types...> Frontend types (tanstack-router, react-router, tanstack-start, next, nuxt, svelte, solid, astro, native-bare, native-uniwind, native-unistyles, none)
|
|
57
|
-
--addons <types...> Additional addons (pwa, tauri, electrobun,
|
|
56
|
+
--addons <types...> Additional addons (pwa, tauri, electrobun, biome, lefthook, husky, mcp, turborepo, vite-plus, oxlint, opentui, skills, s3-storage, none)
|
|
58
57
|
--examples <types...> Examples to include (todo, ai, none)
|
|
58
|
+
--testing <types...> Testing tools (vitest, playwright, none)
|
|
59
59
|
--git Initialize git repository
|
|
60
60
|
--no-git Skip git initialization
|
|
61
61
|
--package-manager <pm> Package manager (npm, pnpm, bun)
|
|
@@ -66,7 +66,7 @@ Options:
|
|
|
66
66
|
--server-deploy <setup> Server deployment (cloudflare, docker, vercel, none)
|
|
67
67
|
--backend <framework> Backend framework (hono, express, fastify, elysia, convex, self, none)
|
|
68
68
|
--runtime <runtime> Runtime (bun, node, workers, none)
|
|
69
|
-
--api <type> API type (trpc, orpc, none)
|
|
69
|
+
--api <type> API type (trpc, orpc, orval, none)
|
|
70
70
|
--directory-conflict <strategy> Directory strategy (merge, overwrite, increment, error)
|
|
71
71
|
--manual-db Skip automatic database setup prompts
|
|
72
72
|
-h, --help Display help
|
|
@@ -184,7 +184,7 @@ npx kubojs --backend convex --frontend tanstack-router
|
|
|
184
184
|
Create a project with documentation site:
|
|
185
185
|
|
|
186
186
|
```bash
|
|
187
|
-
npx kubojs --addons
|
|
187
|
+
npx kubojs --addons s3-storage
|
|
188
188
|
```
|
|
189
189
|
|
|
190
190
|
Create a minimal TypeScript project with no backend:
|
|
@@ -234,15 +234,18 @@ npx kubojs --frontend none --backend hono --api trpc --database none --addons no
|
|
|
234
234
|
- **Convex backend**: Requires `database`, `orm`, `api`, `runtime`, and `server-deploy` to be `none`; auth can be `better-auth`, `clerk`, or `none` depending frontend compatibility
|
|
235
235
|
- **Backend 'none'**: If selected, this option will force related options like API, ORM, database, authentication, and runtime to 'none'. Examples will also be disabled (set to none/empty).
|
|
236
236
|
- **Frontend 'none'**: Creates a backend-only project. When selected, PWA, Tauri, Electrobun, and certain examples may be disabled.
|
|
237
|
-
- **API 'none'**: Disables tRPC/oRPC setup. Can be used with backend frameworks for REST APIs or custom API implementations.
|
|
237
|
+
- **API 'none'**: Disables tRPC/oRPC/Orval setup. Can be used with backend frameworks for REST APIs or custom API implementations.
|
|
238
|
+
- **API 'orval'**: Generates a local OpenAPI contract, Hono REST handlers, and a Fetch client. Orval currently requires `--backend hono`; run `bun run api:generate` after changing `apps/api/openapi.yaml`.
|
|
239
|
+
The generated `todo` example is not supported by Orval yet.
|
|
238
240
|
- **Database 'none'**: Disables database setup and requires ORM to be `none`.
|
|
239
241
|
- **ORM 'none'**: Can be used when you want to handle database operations manually or use a different ORM.
|
|
240
242
|
- **Runtime 'none'**: Only available with Convex backend, backend `none`, or backend `self`.
|
|
241
243
|
- **Cloudflare Workers runtime**: Only compatible with Hono backend. If a database is used, MongoDB is not supported.
|
|
242
244
|
- **Cloudflare D1 setup**: Requires `sqlite` and either `--runtime workers --server-deploy cloudflare` or `--backend self --web-deploy cloudflare`. For `backend self`, D1 is supported on `next`, `tanstack-start`, `nuxt`, `svelte`, and `astro`.
|
|
243
245
|
- **Addons 'none'**: Skips all addons.
|
|
246
|
+
- **Testing 'none'**: Skips all testing tools. Playwright requires a web frontend.
|
|
244
247
|
- **Examples 'none'**: Skips all example implementations (todo, AI chat).
|
|
245
|
-
- **Nuxt, Svelte, SolidJS, and Astro** frontends are
|
|
248
|
+
- **Nuxt, Svelte, SolidJS, and Astro** frontends are not compatible with tRPC; use oRPC, Orval with Hono, or no API layer.
|
|
246
249
|
- **PWA support** requires TanStack Router, React Router, Next.js, or SolidJS
|
|
247
250
|
- **Tauri desktop app** requires TanStack Router, React Router, TanStack Start, Next.js, Nuxt, SvelteKit, SolidJS, or Astro
|
|
248
251
|
- **Electrobun desktop app** requires TanStack Router, React Router, TanStack Start, Next.js, Nuxt, SvelteKit, SolidJS, or Astro. Desktop packaging uses static web assets, so SSR-first frontends need a static/export build before desktop builds will work.
|
package/dist/cli.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { _ as types_exports, i as SchemaNameSchema, l as create, m as getSchemaResult, s as add, u as createBtsCli
|
|
2
|
+
import { _ as getLatestCLIVersion, g as types_exports, i as SchemaNameSchema, l as create, m as getSchemaResult, s as add, u as createBtsCli } from "./src-CvkZZND8.mjs";
|
|
3
3
|
import z from "zod";
|
|
4
4
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
5
5
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
@@ -19,9 +19,12 @@ const McpCreateProjectInputSchema = types_exports.CreateInputSchema.safeExtend({
|
|
|
19
19
|
orm: types_exports.ORMSchema.describe("Explicit ORM choice"),
|
|
20
20
|
api: types_exports.APISchema.describe("Explicit API layer"),
|
|
21
21
|
auth: types_exports.AuthSchema.describe("Explicit authentication provider"),
|
|
22
|
-
payments: types_exports.PaymentsSchema.describe("Explicit
|
|
22
|
+
payments: types_exports.PaymentsSchema.describe("Explicit payment providers; use [] for none"),
|
|
23
|
+
observability: types_exports.ObservabilitySchema.describe("Explicit observability providers; use [] for none"),
|
|
24
|
+
communication: types_exports.CommunicationSchema.describe("Explicit communication provider"),
|
|
23
25
|
addons: z.array(types_exports.AddonsSchema).describe("Explicit addon list. Use [] when no addons are needed."),
|
|
24
26
|
examples: z.array(types_exports.ExamplesSchema).describe("Explicit example list. Use [] when no examples are needed."),
|
|
27
|
+
testing: z.array(types_exports.TestingSchema).describe("Explicit testing tools list. Use [] when no testing tools are needed."),
|
|
25
28
|
git: z.boolean().describe("Whether to initialize a git repository"),
|
|
26
29
|
packageManager: types_exports.PackageManagerSchema.describe("Explicit package manager"),
|
|
27
30
|
install: z.boolean().describe("Whether to install dependencies"),
|
|
@@ -31,7 +34,7 @@ const McpCreateProjectInputSchema = types_exports.CreateInputSchema.safeExtend({
|
|
|
31
34
|
addonOptions: types_exports.AddonOptionsSchema.optional(),
|
|
32
35
|
dbSetupOptions: types_exports.DbSetupOptionsSchema.optional(),
|
|
33
36
|
directoryConflict: types_exports.DirectoryConflictSchema.optional()
|
|
34
|
-
}).describe("Explicit
|
|
37
|
+
}).describe("Explicit kubojs project configuration for MCP use. Provide the full stack config instead of relying on inferred defaults.");
|
|
35
38
|
function formatToolSuccess(data) {
|
|
36
39
|
return {
|
|
37
40
|
content: [{
|
|
@@ -94,6 +97,7 @@ function getStackGuidance() {
|
|
|
94
97
|
"payments",
|
|
95
98
|
"addons",
|
|
96
99
|
"examples",
|
|
100
|
+
"testing",
|
|
97
101
|
"git",
|
|
98
102
|
"packageManager",
|
|
99
103
|
"install",
|
|
@@ -112,6 +116,7 @@ function getStackGuidance() {
|
|
|
112
116
|
frontend: "frontend is for app surfaces only. Choose explicit app targets such as next, react-router, tanstack-router, native-bare, native-uniwind, or native-unistyles.",
|
|
113
117
|
addons: "addons must be an explicit array. Use [] when no addons are requested.",
|
|
114
118
|
examples: "examples must be an explicit array. Use [] when no examples are requested.",
|
|
119
|
+
testing: "testing must be an explicit array. Use [] when no testing tools are requested.",
|
|
115
120
|
dbSetup: "dbSetup is always required. Use 'none' when no managed database provisioning is requested.",
|
|
116
121
|
webDeploy: "webDeploy is always required. Use 'none' when no web deployment target is requested.",
|
|
117
122
|
serverDeploy: "serverDeploy is always required. Use 'none' when no server deployment target is requested.",
|
|
@@ -133,11 +138,11 @@ function createBtsMcpServer() {
|
|
|
133
138
|
version: getLatestCLIVersion()
|
|
134
139
|
}, { capabilities: { logging: {} } });
|
|
135
140
|
server.registerTool("bts_get_stack_guidance", {
|
|
136
|
-
title: "Get
|
|
137
|
-
description: "Read MCP-specific guidance for choosing valid
|
|
141
|
+
title: "Get kubojs MCP Guidance",
|
|
142
|
+
description: "Read MCP-specific guidance for choosing valid kubojs configurations. Use this before planning when user intent is ambiguous. This explains the full explicit config required by MCP project creation, plus important field semantics and ambiguity rules.",
|
|
138
143
|
outputSchema: ToolResponseSchema,
|
|
139
144
|
annotations: {
|
|
140
|
-
title: "Get
|
|
145
|
+
title: "Get kubojs MCP Guidance",
|
|
141
146
|
readOnlyHint: true,
|
|
142
147
|
destructiveHint: false,
|
|
143
148
|
idempotentHint: true,
|
|
@@ -151,12 +156,12 @@ function createBtsMcpServer() {
|
|
|
151
156
|
}
|
|
152
157
|
});
|
|
153
158
|
server.registerTool("bts_get_schema", {
|
|
154
|
-
title: "Get
|
|
155
|
-
description: "Inspect
|
|
159
|
+
title: "Get kubojs Schemas",
|
|
160
|
+
description: "Inspect kubojs CLI and input schemas so agents can plan valid create/add requests. Use this together with bts_get_stack_guidance before creating a project if any part of the request is ambiguous.",
|
|
156
161
|
inputSchema: SchemaToolInputSchema,
|
|
157
162
|
outputSchema: ToolResponseSchema,
|
|
158
163
|
annotations: {
|
|
159
|
-
title: "Get
|
|
164
|
+
title: "Get kubojs Schemas",
|
|
160
165
|
readOnlyHint: true,
|
|
161
166
|
destructiveHint: false,
|
|
162
167
|
idempotentHint: true,
|
|
@@ -170,12 +175,12 @@ function createBtsMcpServer() {
|
|
|
170
175
|
}
|
|
171
176
|
});
|
|
172
177
|
server.registerTool("bts_plan_project", {
|
|
173
|
-
title: "Plan
|
|
174
|
-
description: "Validate and preview
|
|
178
|
+
title: "Plan kubojs Project",
|
|
179
|
+
description: "Validate and preview a kubojs project creation without writing files or provisioning resources. Always use this before bts_create_project. This tool requires an explicit full stack config rather than a partial payload with inferred defaults.",
|
|
175
180
|
inputSchema: McpCreateProjectInputSchema,
|
|
176
181
|
outputSchema: ToolResponseSchema,
|
|
177
182
|
annotations: {
|
|
178
|
-
title: "Plan
|
|
183
|
+
title: "Plan kubojs Project",
|
|
179
184
|
readOnlyHint: true,
|
|
180
185
|
destructiveHint: false,
|
|
181
186
|
idempotentHint: true,
|
|
@@ -202,12 +207,12 @@ function createBtsMcpServer() {
|
|
|
202
207
|
}
|
|
203
208
|
});
|
|
204
209
|
server.registerTool("bts_create_project", {
|
|
205
|
-
title: "Create
|
|
206
|
-
description: "Create
|
|
210
|
+
title: "Create kubojs Project",
|
|
211
|
+
description: "Create a kubojs project on disk using the same silent programmatic flow as the CLI JSON API. Call this only after bts_plan_project succeeds and the plan clearly matches the user's intent. This tool requires an explicit full stack config.",
|
|
207
212
|
inputSchema: McpCreateProjectInputSchema,
|
|
208
213
|
outputSchema: ToolResponseSchema,
|
|
209
214
|
annotations: {
|
|
210
|
-
title: "Create
|
|
215
|
+
title: "Create kubojs Project",
|
|
211
216
|
...getProjectToolAnnotations()
|
|
212
217
|
}
|
|
213
218
|
}, async (input) => {
|
|
@@ -224,12 +229,12 @@ function createBtsMcpServer() {
|
|
|
224
229
|
}
|
|
225
230
|
});
|
|
226
231
|
server.registerTool("bts_plan_addons", {
|
|
227
|
-
title: "Plan
|
|
228
|
-
description: "Validate and preview addon installation for an existing
|
|
232
|
+
title: "Plan kubojs Addons",
|
|
233
|
+
description: "Validate and preview addon installation for an existing kubojs project without writing files. Always use this before bts_add_addons when the addon set or nested options are uncertain.",
|
|
229
234
|
inputSchema: types_exports.AddInputSchema,
|
|
230
235
|
outputSchema: ToolResponseSchema,
|
|
231
236
|
annotations: {
|
|
232
|
-
title: "Plan
|
|
237
|
+
title: "Plan kubojs Addons",
|
|
233
238
|
readOnlyHint: true,
|
|
234
239
|
destructiveHint: false,
|
|
235
240
|
idempotentHint: true,
|
|
@@ -248,12 +253,12 @@ function createBtsMcpServer() {
|
|
|
248
253
|
}
|
|
249
254
|
});
|
|
250
255
|
server.registerTool("bts_add_addons", {
|
|
251
|
-
title: "Add
|
|
252
|
-
description: "Install addons into an existing
|
|
256
|
+
title: "Add kubojs Addons",
|
|
257
|
+
description: "Install addons into an existing kubojs project using the same silent flow as add-json. Call this only after bts_plan_addons succeeds and the planned changes match the user's intent.",
|
|
253
258
|
inputSchema: types_exports.AddInputSchema,
|
|
254
259
|
outputSchema: ToolResponseSchema,
|
|
255
260
|
annotations: {
|
|
256
|
-
title: "Add
|
|
261
|
+
title: "Add kubojs Addons",
|
|
257
262
|
destructiveHint: true,
|
|
258
263
|
idempotentHint: false,
|
|
259
264
|
openWorldHint: true
|
|
@@ -281,7 +286,7 @@ if (command === "mcp") {
|
|
|
281
286
|
if (args.includes("--help") || args.includes("-h")) {
|
|
282
287
|
console.log(`Usage: kubojs mcp
|
|
283
288
|
|
|
284
|
-
Start the
|
|
289
|
+
Start the kubojs MCP server over stdio.
|
|
285
290
|
|
|
286
291
|
This command is intended to be launched by an MCP client, for example:
|
|
287
292
|
kubojs mcp`);
|
package/dist/index.d.mts
CHANGED
|
@@ -137,12 +137,14 @@ declare const SchemaNameSchema: z.ZodDefault<z.ZodEnum<{
|
|
|
137
137
|
frontend: "frontend";
|
|
138
138
|
addons: "addons";
|
|
139
139
|
examples: "examples";
|
|
140
|
+
testing: "testing";
|
|
140
141
|
packageManager: "packageManager";
|
|
141
142
|
databaseSetup: "databaseSetup";
|
|
142
143
|
api: "api";
|
|
143
144
|
auth: "auth";
|
|
144
145
|
payments: "payments";
|
|
145
146
|
observability: "observability";
|
|
147
|
+
communication: "communication";
|
|
146
148
|
webDeploy: "webDeploy";
|
|
147
149
|
serverDeploy: "serverDeploy";
|
|
148
150
|
directoryConflict: "directoryConflict";
|
|
@@ -152,8 +154,8 @@ declare const SchemaNameSchema: z.ZodDefault<z.ZodEnum<{
|
|
|
152
154
|
createInput: "createInput";
|
|
153
155
|
addInput: "addInput";
|
|
154
156
|
projectConfig: "projectConfig";
|
|
155
|
-
|
|
156
|
-
|
|
157
|
+
kubojsConfig: "kubojsConfig";
|
|
158
|
+
kubojsConfigFile: "kubojsConfigFile";
|
|
157
159
|
initResult: "initResult";
|
|
158
160
|
}>>;
|
|
159
161
|
type SchemaName = z.infer<typeof SchemaNameSchema>;
|
|
@@ -174,18 +176,21 @@ declare const router: _$_trpc_server0.TRPCBuiltRouter<{
|
|
|
174
176
|
database?: "none" | "sqlite" | "postgres" | "mysql" | "mongodb" | undefined;
|
|
175
177
|
orm?: "none" | "drizzle" | "prisma" | "mongoose" | undefined;
|
|
176
178
|
auth?: "none" | "better-auth" | "clerk" | undefined;
|
|
177
|
-
payments?:
|
|
178
|
-
observability?:
|
|
179
|
+
payments?: unknown;
|
|
180
|
+
observability?: unknown;
|
|
181
|
+
disableObservability?: boolean | undefined;
|
|
182
|
+
communication?: "none" | "resend" | "notifique" | "arara" | undefined;
|
|
179
183
|
frontend?: ("none" | "tanstack-router" | "react-router" | "tanstack-start" | "next" | "nuxt" | "native-bare" | "native-uniwind" | "native-unistyles" | "svelte" | "solid" | "astro")[] | undefined;
|
|
180
|
-
addons?: ("none" | "pwa" | "tauri" | "electrobun" | "
|
|
184
|
+
addons?: ("none" | "pwa" | "tauri" | "electrobun" | "biome" | "lefthook" | "husky" | "mcp" | "turborepo" | "vite-plus" | "oxlint" | "opentui" | "skills" | "s3-storage")[] | undefined;
|
|
181
185
|
examples?: ("none" | "todo" | "ai")[] | undefined;
|
|
186
|
+
testing?: ("none" | "vitest" | "playwright")[] | undefined;
|
|
182
187
|
git?: boolean | undefined;
|
|
183
188
|
packageManager?: "bun" | "npm" | "pnpm" | undefined;
|
|
184
189
|
install?: boolean | undefined;
|
|
185
190
|
dbSetup?: "none" | "turso" | "neon" | "prisma-postgres" | "planetscale" | "mongodb-atlas" | "supabase" | "d1" | "docker" | undefined;
|
|
186
191
|
backend?: "none" | "hono" | "express" | "fastify" | "elysia" | "convex" | "self" | undefined;
|
|
187
192
|
runtime?: "none" | "bun" | "node" | "workers" | undefined;
|
|
188
|
-
api?: "none" | "trpc" | "orpc" | undefined;
|
|
193
|
+
api?: "none" | "trpc" | "orpc" | "orval" | undefined;
|
|
189
194
|
webDeploy?: "none" | "docker" | "cloudflare" | "vercel" | "guaracloud" | undefined;
|
|
190
195
|
serverDeploy?: "none" | "docker" | "cloudflare" | "vercel" | "guaracloud" | undefined;
|
|
191
196
|
directoryConflict?: "merge" | "overwrite" | "increment" | "error" | undefined;
|
|
@@ -221,23 +226,12 @@ declare const router: _$_trpc_server0.TRPCBuiltRouter<{
|
|
|
221
226
|
dryRun?: boolean | undefined;
|
|
222
227
|
verbose?: boolean | undefined;
|
|
223
228
|
addonOptions?: {
|
|
224
|
-
wxt?: {
|
|
225
|
-
template: "svelte" | "solid" | "vanilla" | "vue" | "react";
|
|
226
|
-
devPort?: number | undefined;
|
|
227
|
-
} | undefined;
|
|
228
|
-
fumadocs?: {
|
|
229
|
-
template: "react-router" | "tanstack-start" | "next-mdx" | "next-mdx-static" | "waku" | "react-router-spa" | "tanstack-start-spa";
|
|
230
|
-
devPort?: number | undefined;
|
|
231
|
-
search?: "orama" | "orama-cloud" | undefined;
|
|
232
|
-
ogImage?: "next-og" | "takumi" | undefined;
|
|
233
|
-
aiChat?: "openrouter" | "llmgateway" | "inkeep" | undefined;
|
|
234
|
-
} | undefined;
|
|
235
229
|
opentui?: {
|
|
236
|
-
template: "solid" | "
|
|
230
|
+
template: "solid" | "core" | "react";
|
|
237
231
|
} | undefined;
|
|
238
232
|
mcp?: {
|
|
239
233
|
scope?: "project" | "global" | undefined;
|
|
240
|
-
servers?: ("
|
|
234
|
+
servers?: ("better-auth" | "clerk" | "neon" | "planetscale" | "supabase" | "convex" | "kubojs" | "context7" | "nx" | "cloudflare-docs" | "shadcn" | "next-devtools" | "nuxt-docs" | "nuxt-ui-docs" | "svelte-docs" | "astro-docs" | "expo" | "polar")[] | undefined;
|
|
241
235
|
agents?: ("antigravity" | "cline" | "cline-cli" | "cursor" | "claude-code" | "codex" | "opencode" | "gemini-cli" | "github-copilot-cli" | "mcporter" | "vscode" | "zed" | "claude-desktop" | "goose")[] | undefined;
|
|
242
236
|
} | undefined;
|
|
243
237
|
skills?: {
|
|
@@ -248,12 +242,6 @@ declare const router: _$_trpc_server0.TRPCBuiltRouter<{
|
|
|
248
242
|
skills: string[];
|
|
249
243
|
}[] | undefined;
|
|
250
244
|
} | undefined;
|
|
251
|
-
ultracite?: {
|
|
252
|
-
linter?: "biome" | "oxlint" | undefined;
|
|
253
|
-
editors?: ("void" | "antigravity" | "cursor" | "vscode" | "zed" | "windsurf" | "trae" | "codebuddy" | "bob" | "kiro")[] | undefined;
|
|
254
|
-
agents?: ("vercel" | "cline" | "codex" | "opencode" | "goose" | "amp" | "pi" | "qoder" | "droid" | "zencoder" | "mcpjam" | "bob" | "universal" | "claude" | "jules" | "replit" | "devin" | "lovable" | "ona" | "openclaw" | "continue" | "snowflake-cortex" | "deepagents" | "kimi-cli" | "mux" | "adal" | "copilot" | "aider" | "firebase-studio" | "open-hands" | "gemini" | "junie" | "augmentcode" | "kilo-code" | "roo-code" | "warp" | "crush" | "qwen" | "amazon-q-cli" | "firebender" | "cursor-cli" | "mistral-vibe")[] | undefined;
|
|
255
|
-
hooks?: ("cursor" | "windsurf" | "codebuddy" | "claude" | "copilot")[] | undefined;
|
|
256
|
-
} | undefined;
|
|
257
245
|
} | undefined;
|
|
258
246
|
dbSetupOptions?: {
|
|
259
247
|
mode?: "manual" | "auto" | undefined;
|
|
@@ -274,18 +262,21 @@ declare const router: _$_trpc_server0.TRPCBuiltRouter<{
|
|
|
274
262
|
database?: "none" | "sqlite" | "postgres" | "mysql" | "mongodb" | undefined;
|
|
275
263
|
orm?: "none" | "drizzle" | "prisma" | "mongoose" | undefined;
|
|
276
264
|
auth?: "none" | "better-auth" | "clerk" | undefined;
|
|
277
|
-
payments?:
|
|
278
|
-
observability?:
|
|
265
|
+
payments?: unknown;
|
|
266
|
+
observability?: unknown;
|
|
267
|
+
disableObservability?: boolean | undefined;
|
|
268
|
+
communication?: "none" | "resend" | "notifique" | "arara" | undefined;
|
|
279
269
|
frontend?: ("none" | "tanstack-router" | "react-router" | "tanstack-start" | "next" | "nuxt" | "native-bare" | "native-uniwind" | "native-unistyles" | "svelte" | "solid" | "astro")[] | undefined;
|
|
280
|
-
addons?: ("none" | "pwa" | "tauri" | "electrobun" | "
|
|
270
|
+
addons?: ("none" | "pwa" | "tauri" | "electrobun" | "biome" | "lefthook" | "husky" | "mcp" | "turborepo" | "vite-plus" | "oxlint" | "opentui" | "skills" | "s3-storage")[] | undefined;
|
|
281
271
|
examples?: ("none" | "todo" | "ai")[] | undefined;
|
|
272
|
+
testing?: ("none" | "vitest" | "playwright")[] | undefined;
|
|
282
273
|
git?: boolean | undefined;
|
|
283
274
|
packageManager?: "bun" | "npm" | "pnpm" | undefined;
|
|
284
275
|
install?: boolean | undefined;
|
|
285
276
|
dbSetup?: "none" | "turso" | "neon" | "prisma-postgres" | "planetscale" | "mongodb-atlas" | "supabase" | "d1" | "docker" | undefined;
|
|
286
277
|
backend?: "none" | "hono" | "express" | "fastify" | "elysia" | "convex" | "self" | undefined;
|
|
287
278
|
runtime?: "none" | "bun" | "node" | "workers" | undefined;
|
|
288
|
-
api?: "none" | "trpc" | "orpc" | undefined;
|
|
279
|
+
api?: "none" | "trpc" | "orpc" | "orval" | undefined;
|
|
289
280
|
webDeploy?: "none" | "docker" | "cloudflare" | "vercel" | "guaracloud" | undefined;
|
|
290
281
|
serverDeploy?: "none" | "docker" | "cloudflare" | "vercel" | "guaracloud" | undefined;
|
|
291
282
|
directoryConflict?: "merge" | "overwrite" | "increment" | "error" | undefined;
|
|
@@ -298,16 +289,11 @@ declare const router: _$_trpc_server0.TRPCBuiltRouter<{
|
|
|
298
289
|
}>;
|
|
299
290
|
schema: _$_trpc_server0.TRPCQueryProcedure<{
|
|
300
291
|
input: {
|
|
301
|
-
name?: "all" | "cli" | "database" | "orm" | "backend" | "runtime" | "frontend" | "addons" | "examples" | "packageManager" | "databaseSetup" | "api" | "auth" | "payments" | "observability" | "webDeploy" | "serverDeploy" | "directoryConflict" | "template" | "addonOptions" | "dbSetupOptions" | "createInput" | "addInput" | "projectConfig" | "
|
|
292
|
+
name?: "all" | "cli" | "database" | "orm" | "backend" | "runtime" | "frontend" | "addons" | "examples" | "testing" | "packageManager" | "databaseSetup" | "api" | "auth" | "payments" | "observability" | "communication" | "webDeploy" | "serverDeploy" | "directoryConflict" | "template" | "addonOptions" | "dbSetupOptions" | "createInput" | "addInput" | "projectConfig" | "kubojsConfig" | "kubojsConfigFile" | "initResult" | undefined;
|
|
302
293
|
};
|
|
303
294
|
output: unknown;
|
|
304
295
|
meta: TrpcCliMeta;
|
|
305
296
|
}>;
|
|
306
|
-
sponsors: _$_trpc_server0.TRPCMutationProcedure<{
|
|
307
|
-
input: void;
|
|
308
|
-
output: void;
|
|
309
|
-
meta: TrpcCliMeta;
|
|
310
|
-
}>;
|
|
311
297
|
docs: _$_trpc_server0.TRPCMutationProcedure<{
|
|
312
298
|
input: void;
|
|
313
299
|
output: void;
|
|
@@ -320,7 +306,8 @@ declare const router: _$_trpc_server0.TRPCBuiltRouter<{
|
|
|
320
306
|
}>;
|
|
321
307
|
add: _$_trpc_server0.TRPCMutationProcedure<{
|
|
322
308
|
input: {
|
|
323
|
-
addons?: ("none" | "pwa" | "tauri" | "electrobun" | "
|
|
309
|
+
addons?: ("none" | "pwa" | "tauri" | "electrobun" | "biome" | "lefthook" | "husky" | "mcp" | "turborepo" | "vite-plus" | "oxlint" | "opentui" | "skills" | "s3-storage")[] | undefined;
|
|
310
|
+
testing?: ("none" | "vitest" | "playwright")[] | undefined;
|
|
324
311
|
install?: boolean | undefined;
|
|
325
312
|
packageManager?: "bun" | "npm" | "pnpm" | undefined;
|
|
326
313
|
projectDir?: string | undefined;
|
|
@@ -330,25 +317,15 @@ declare const router: _$_trpc_server0.TRPCBuiltRouter<{
|
|
|
330
317
|
}>;
|
|
331
318
|
addJson: _$_trpc_server0.TRPCMutationProcedure<{
|
|
332
319
|
input: {
|
|
333
|
-
addons?: ("none" | "pwa" | "tauri" | "electrobun" | "
|
|
320
|
+
addons?: ("none" | "pwa" | "tauri" | "electrobun" | "biome" | "lefthook" | "husky" | "mcp" | "turborepo" | "vite-plus" | "oxlint" | "opentui" | "skills" | "s3-storage")[] | undefined;
|
|
321
|
+
testing?: ("none" | "vitest" | "playwright")[] | undefined;
|
|
334
322
|
addonOptions?: {
|
|
335
|
-
wxt?: {
|
|
336
|
-
template: "svelte" | "solid" | "vanilla" | "vue" | "react";
|
|
337
|
-
devPort?: number | undefined;
|
|
338
|
-
} | undefined;
|
|
339
|
-
fumadocs?: {
|
|
340
|
-
template: "react-router" | "tanstack-start" | "next-mdx" | "next-mdx-static" | "waku" | "react-router-spa" | "tanstack-start-spa";
|
|
341
|
-
devPort?: number | undefined;
|
|
342
|
-
search?: "orama" | "orama-cloud" | undefined;
|
|
343
|
-
ogImage?: "next-og" | "takumi" | undefined;
|
|
344
|
-
aiChat?: "openrouter" | "llmgateway" | "inkeep" | undefined;
|
|
345
|
-
} | undefined;
|
|
346
323
|
opentui?: {
|
|
347
|
-
template: "solid" | "
|
|
324
|
+
template: "solid" | "core" | "react";
|
|
348
325
|
} | undefined;
|
|
349
326
|
mcp?: {
|
|
350
327
|
scope?: "project" | "global" | undefined;
|
|
351
|
-
servers?: ("
|
|
328
|
+
servers?: ("better-auth" | "clerk" | "neon" | "planetscale" | "supabase" | "convex" | "kubojs" | "context7" | "nx" | "cloudflare-docs" | "shadcn" | "next-devtools" | "nuxt-docs" | "nuxt-ui-docs" | "svelte-docs" | "astro-docs" | "expo" | "polar")[] | undefined;
|
|
352
329
|
agents?: ("antigravity" | "cline" | "cline-cli" | "cursor" | "claude-code" | "codex" | "opencode" | "gemini-cli" | "github-copilot-cli" | "mcporter" | "vscode" | "zed" | "claude-desktop" | "goose")[] | undefined;
|
|
353
330
|
} | undefined;
|
|
354
331
|
skills?: {
|
|
@@ -359,12 +336,6 @@ declare const router: _$_trpc_server0.TRPCBuiltRouter<{
|
|
|
359
336
|
skills: string[];
|
|
360
337
|
}[] | undefined;
|
|
361
338
|
} | undefined;
|
|
362
|
-
ultracite?: {
|
|
363
|
-
linter?: "biome" | "oxlint" | undefined;
|
|
364
|
-
editors?: ("void" | "antigravity" | "cursor" | "vscode" | "zed" | "windsurf" | "trae" | "codebuddy" | "bob" | "kiro")[] | undefined;
|
|
365
|
-
agents?: ("vercel" | "cline" | "codex" | "opencode" | "goose" | "amp" | "pi" | "qoder" | "droid" | "zencoder" | "mcpjam" | "bob" | "universal" | "claude" | "jules" | "replit" | "devin" | "lovable" | "ona" | "openclaw" | "continue" | "snowflake-cortex" | "deepagents" | "kimi-cli" | "mux" | "adal" | "copilot" | "aider" | "firebase-studio" | "open-hands" | "gemini" | "junie" | "augmentcode" | "kilo-code" | "roo-code" | "warp" | "crush" | "qwen" | "amazon-q-cli" | "firebender" | "cursor-cli" | "mistral-vibe")[] | undefined;
|
|
366
|
-
hooks?: ("cursor" | "windsurf" | "codebuddy" | "claude" | "copilot")[] | undefined;
|
|
367
|
-
} | undefined;
|
|
368
339
|
} | undefined;
|
|
369
340
|
webDeploy?: "none" | "docker" | "cloudflare" | "vercel" | "guaracloud" | undefined;
|
|
370
341
|
serverDeploy?: "none" | "docker" | "cloudflare" | "vercel" | "guaracloud" | undefined;
|
|
@@ -392,7 +363,7 @@ declare function createBtsCli(): ReturnType<typeof createCli>;
|
|
|
392
363
|
*/
|
|
393
364
|
type CreateError = UserCancelledError | CLIError | ProjectCreationError;
|
|
394
365
|
/**
|
|
395
|
-
* Programmatic API to create a new
|
|
366
|
+
* Programmatic API to create a new kubojs project.
|
|
396
367
|
* Returns a Result type - no console output, no interactive prompts.
|
|
397
368
|
*
|
|
398
369
|
* @example
|
|
@@ -417,7 +388,6 @@ type CreateError = UserCancelledError | CLIError | ProjectCreationError;
|
|
|
417
388
|
* ```
|
|
418
389
|
*/
|
|
419
390
|
declare function create(projectName?: string, options?: Partial<types_d_exports.CreateInput>): Promise<Result$1<types_d_exports.InitResult, CreateError>>;
|
|
420
|
-
declare function sponsors(): Promise<void>;
|
|
421
391
|
declare function docs(): Promise<void>;
|
|
422
392
|
declare function builder(): Promise<void>;
|
|
423
393
|
/**
|
|
@@ -443,9 +413,9 @@ declare function builder(): Promise<void>;
|
|
|
443
413
|
* });
|
|
444
414
|
* ```
|
|
445
415
|
*/
|
|
446
|
-
declare function createVirtual(options: Partial<Omit<types_d_exports.ProjectConfig, "projectDir" | "relativePath">>): Promise<Result$1<VirtualFileTree$1, GeneratorError$1>>;
|
|
416
|
+
declare function createVirtual(options: Partial<Omit<types_d_exports.ProjectConfig, "projectDir" | "relativePath">> & Pick<types_d_exports.CLIInput, "disableObservability">): Promise<Result$1<VirtualFileTree$1, GeneratorError$1>>;
|
|
447
417
|
/**
|
|
448
|
-
* Programmatic API to add addons to an existing
|
|
418
|
+
* Programmatic API to add addons to an existing kubojs project.
|
|
449
419
|
*
|
|
450
420
|
* @example
|
|
451
421
|
* ```typescript
|
|
@@ -474,7 +444,7 @@ type AddonOptions = import__kubojs_types.AddonOptions;
|
|
|
474
444
|
type Addons = import__kubojs_types.Addons;
|
|
475
445
|
type Auth = import__kubojs_types.Auth;
|
|
476
446
|
type Backend = import__kubojs_types.Backend;
|
|
477
|
-
type
|
|
447
|
+
type Communication = import__kubojs_types.Communication;
|
|
478
448
|
type CreateInput = import__kubojs_types.CreateInput;
|
|
479
449
|
type Database = import__kubojs_types.Database;
|
|
480
450
|
type DatabaseSetup = import__kubojs_types.DatabaseSetup;
|
|
@@ -483,6 +453,7 @@ type DirectoryConflict = import__kubojs_types.DirectoryConflict;
|
|
|
483
453
|
type Examples = import__kubojs_types.Examples;
|
|
484
454
|
type Frontend = import__kubojs_types.Frontend;
|
|
485
455
|
type InitResult = import__kubojs_types.InitResult;
|
|
456
|
+
type KubojsConfig = import__kubojs_types.KubojsConfig;
|
|
486
457
|
type ORM = import__kubojs_types.ORM;
|
|
487
458
|
type Observability = import__kubojs_types.Observability;
|
|
488
459
|
type PackageManager = import__kubojs_types.PackageManager;
|
|
@@ -491,4 +462,4 @@ type Runtime = import__kubojs_types.Runtime;
|
|
|
491
462
|
type ServerDeploy = import__kubojs_types.ServerDeploy;
|
|
492
463
|
type Template = import__kubojs_types.Template;
|
|
493
464
|
type WebDeploy = import__kubojs_types.WebDeploy;
|
|
494
|
-
export { type API, type AddResult, type AddonOptions, type Addons, type Auth, type Backend, type
|
|
465
|
+
export { type API, type AddResult, type AddonOptions, type Addons, type Auth, type Backend, CLIError, type Communication, CompatibilityError, CreateError, type CreateInput, type Database, type DatabaseSetup, DatabaseSetupError, type DbSetupOptions, type DirectoryConflict, DirectoryConflictError, EMBEDDED_TEMPLATES, type Examples, type Frontend, GeneratorError, type GeneratorOptions, type InitResult, type KubojsConfig, type ORM, type Observability, type PackageManager, type Payments, ProjectCreationError, Result, type Runtime, SchemaName, SchemaNameSchema, type ServerDeploy, TEMPLATE_COUNT, type Template, UserCancelledError, ValidationError, type VirtualDirectory, type VirtualFile, VirtualFileSystem, type VirtualFileTree, type VirtualNode, type WebDeploy, add, builder, create, createBtsCli, createVirtual, docs, generate, getSchemaResult, router };
|
package/dist/index.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { C as
|
|
3
|
-
export { CLIError, CompatibilityError, DatabaseSetupError, DirectoryConflictError, EMBEDDED_TEMPLATES, GeneratorError, ProjectCreationError, Result, SchemaNameSchema, TEMPLATE_COUNT, UserCancelledError, ValidationError, VirtualFileSystem, add, builder, create, createBtsCli, createVirtual, docs, generate, getSchemaResult, router
|
|
2
|
+
import { C as UserCancelledError, S as ProjectCreationError, a as TEMPLATE_COUNT, b as DatabaseSetupError, c as builder, d as createVirtual, f as docs, h as router, i as SchemaNameSchema, l as create, m as getSchemaResult, n as GeneratorError, o as VirtualFileSystem, p as generate, r as Result, s as add, t as EMBEDDED_TEMPLATES, u as createBtsCli, v as CLIError, w as ValidationError, x as DirectoryConflictError, y as CompatibilityError } from "./src-CvkZZND8.mjs";
|
|
3
|
+
export { CLIError, CompatibilityError, DatabaseSetupError, DirectoryConflictError, EMBEDDED_TEMPLATES, GeneratorError, ProjectCreationError, Result, SchemaNameSchema, TEMPLATE_COUNT, UserCancelledError, ValidationError, VirtualFileSystem, add, builder, create, createBtsCli, createVirtual, docs, generate, getSchemaResult, router };
|