create-better-fullstack 1.0.0-canary.1d67537e
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 +110 -0
- package/dist/chunk-DPg_XC7m.mjs +24 -0
- package/dist/cli.d.mts +1 -0
- package/dist/cli.mjs +8 -0
- package/dist/index.d.mts +539 -0
- package/dist/index.mjs +4 -0
- package/dist/src-CwAb8MVO.mjs +5362 -0
- package/dist/virtual.d.mts +4 -0
- package/dist/virtual.mjs +4 -0
- package/package.json +102 -0
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,539 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import * as _orpc_server0 from "@orpc/server";
|
|
3
|
+
import * as trpc_cli0 from "trpc-cli";
|
|
4
|
+
import z from "zod";
|
|
5
|
+
import { EMBEDDED_TEMPLATES, GeneratorOptions, GeneratorResult, TEMPLATE_COUNT, VirtualDirectory, VirtualFile, VirtualFileSystem, VirtualFileTree, VirtualFileTree as VirtualFileTree$1, VirtualNode, generateVirtualProject } from "@better-fullstack/template-generator";
|
|
6
|
+
|
|
7
|
+
//#region src/types.d.ts
|
|
8
|
+
|
|
9
|
+
import * as import__better_fullstack_types from "@better-fullstack/types";
|
|
10
|
+
//#endregion
|
|
11
|
+
//#region src/index.d.ts
|
|
12
|
+
declare const router: {
|
|
13
|
+
create: _orpc_server0.Procedure<_orpc_server0.MergedInitialContext<Record<never, never>, Record<never, never>, Record<never, never>>, Record<never, never>, z.ZodTuple<[z.ZodOptional<z.ZodString>, z.ZodObject<{
|
|
14
|
+
template: z.ZodOptional<z.ZodEnum<{
|
|
15
|
+
none: "none";
|
|
16
|
+
mern: "mern";
|
|
17
|
+
pern: "pern";
|
|
18
|
+
t3: "t3";
|
|
19
|
+
uniwind: "uniwind";
|
|
20
|
+
}>>;
|
|
21
|
+
yes: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
22
|
+
yolo: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
23
|
+
verbose: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
24
|
+
ecosystem: z.ZodOptional<z.ZodEnum<{
|
|
25
|
+
typescript: "typescript";
|
|
26
|
+
rust: "rust";
|
|
27
|
+
}>>;
|
|
28
|
+
database: z.ZodOptional<z.ZodEnum<{
|
|
29
|
+
none: "none";
|
|
30
|
+
sqlite: "sqlite";
|
|
31
|
+
postgres: "postgres";
|
|
32
|
+
mysql: "mysql";
|
|
33
|
+
mongodb: "mongodb";
|
|
34
|
+
}>>;
|
|
35
|
+
orm: z.ZodOptional<z.ZodEnum<{
|
|
36
|
+
none: "none";
|
|
37
|
+
drizzle: "drizzle";
|
|
38
|
+
prisma: "prisma";
|
|
39
|
+
mongoose: "mongoose";
|
|
40
|
+
typeorm: "typeorm";
|
|
41
|
+
kysely: "kysely";
|
|
42
|
+
mikroorm: "mikroorm";
|
|
43
|
+
sequelize: "sequelize";
|
|
44
|
+
}>>;
|
|
45
|
+
auth: z.ZodOptional<z.ZodEnum<{
|
|
46
|
+
none: "none";
|
|
47
|
+
"better-auth": "better-auth";
|
|
48
|
+
clerk: "clerk";
|
|
49
|
+
nextauth: "nextauth";
|
|
50
|
+
}>>;
|
|
51
|
+
payments: z.ZodOptional<z.ZodEnum<{
|
|
52
|
+
none: "none";
|
|
53
|
+
polar: "polar";
|
|
54
|
+
stripe: "stripe";
|
|
55
|
+
"lemon-squeezy": "lemon-squeezy";
|
|
56
|
+
paddle: "paddle";
|
|
57
|
+
dodo: "dodo";
|
|
58
|
+
}>>;
|
|
59
|
+
email: z.ZodOptional<z.ZodEnum<{
|
|
60
|
+
none: "none";
|
|
61
|
+
"react-email": "react-email";
|
|
62
|
+
resend: "resend";
|
|
63
|
+
nodemailer: "nodemailer";
|
|
64
|
+
postmark: "postmark";
|
|
65
|
+
sendgrid: "sendgrid";
|
|
66
|
+
"aws-ses": "aws-ses";
|
|
67
|
+
mailgun: "mailgun";
|
|
68
|
+
plunk: "plunk";
|
|
69
|
+
}>>;
|
|
70
|
+
fileUpload: z.ZodOptional<z.ZodEnum<{
|
|
71
|
+
none: "none";
|
|
72
|
+
uploadthing: "uploadthing";
|
|
73
|
+
filepond: "filepond";
|
|
74
|
+
uppy: "uppy";
|
|
75
|
+
}>>;
|
|
76
|
+
effect: z.ZodOptional<z.ZodEnum<{
|
|
77
|
+
none: "none";
|
|
78
|
+
effect: "effect";
|
|
79
|
+
"effect-full": "effect-full";
|
|
80
|
+
}>>;
|
|
81
|
+
stateManagement: z.ZodOptional<z.ZodEnum<{
|
|
82
|
+
none: "none";
|
|
83
|
+
zustand: "zustand";
|
|
84
|
+
jotai: "jotai";
|
|
85
|
+
nanostores: "nanostores";
|
|
86
|
+
"redux-toolkit": "redux-toolkit";
|
|
87
|
+
mobx: "mobx";
|
|
88
|
+
xstate: "xstate";
|
|
89
|
+
valtio: "valtio";
|
|
90
|
+
"tanstack-store": "tanstack-store";
|
|
91
|
+
"legend-state": "legend-state";
|
|
92
|
+
}>>;
|
|
93
|
+
validation: z.ZodOptional<z.ZodEnum<{
|
|
94
|
+
none: "none";
|
|
95
|
+
zod: "zod";
|
|
96
|
+
valibot: "valibot";
|
|
97
|
+
arktype: "arktype";
|
|
98
|
+
typebox: "typebox";
|
|
99
|
+
typia: "typia";
|
|
100
|
+
runtypes: "runtypes";
|
|
101
|
+
"effect-schema": "effect-schema";
|
|
102
|
+
}>>;
|
|
103
|
+
forms: z.ZodOptional<z.ZodEnum<{
|
|
104
|
+
none: "none";
|
|
105
|
+
"tanstack-form": "tanstack-form";
|
|
106
|
+
"react-hook-form": "react-hook-form";
|
|
107
|
+
formik: "formik";
|
|
108
|
+
"final-form": "final-form";
|
|
109
|
+
conform: "conform";
|
|
110
|
+
"modular-forms": "modular-forms";
|
|
111
|
+
}>>;
|
|
112
|
+
testing: z.ZodOptional<z.ZodEnum<{
|
|
113
|
+
none: "none";
|
|
114
|
+
vitest: "vitest";
|
|
115
|
+
playwright: "playwright";
|
|
116
|
+
"vitest-playwright": "vitest-playwright";
|
|
117
|
+
jest: "jest";
|
|
118
|
+
cypress: "cypress";
|
|
119
|
+
}>>;
|
|
120
|
+
ai: z.ZodOptional<z.ZodEnum<{
|
|
121
|
+
none: "none";
|
|
122
|
+
"vercel-ai": "vercel-ai";
|
|
123
|
+
mastra: "mastra";
|
|
124
|
+
voltagent: "voltagent";
|
|
125
|
+
langgraph: "langgraph";
|
|
126
|
+
"openai-agents": "openai-agents";
|
|
127
|
+
"google-adk": "google-adk";
|
|
128
|
+
modelfusion: "modelfusion";
|
|
129
|
+
langchain: "langchain";
|
|
130
|
+
llamaindex: "llamaindex";
|
|
131
|
+
}>>;
|
|
132
|
+
realtime: z.ZodOptional<z.ZodEnum<{
|
|
133
|
+
none: "none";
|
|
134
|
+
"socket-io": "socket-io";
|
|
135
|
+
partykit: "partykit";
|
|
136
|
+
ably: "ably";
|
|
137
|
+
pusher: "pusher";
|
|
138
|
+
liveblocks: "liveblocks";
|
|
139
|
+
yjs: "yjs";
|
|
140
|
+
}>>;
|
|
141
|
+
jobQueue: z.ZodOptional<z.ZodEnum<{
|
|
142
|
+
none: "none";
|
|
143
|
+
bullmq: "bullmq";
|
|
144
|
+
"trigger-dev": "trigger-dev";
|
|
145
|
+
inngest: "inngest";
|
|
146
|
+
temporal: "temporal";
|
|
147
|
+
}>>;
|
|
148
|
+
animation: z.ZodOptional<z.ZodEnum<{
|
|
149
|
+
none: "none";
|
|
150
|
+
"framer-motion": "framer-motion";
|
|
151
|
+
gsap: "gsap";
|
|
152
|
+
"react-spring": "react-spring";
|
|
153
|
+
"auto-animate": "auto-animate";
|
|
154
|
+
lottie: "lottie";
|
|
155
|
+
}>>;
|
|
156
|
+
logging: z.ZodOptional<z.ZodEnum<{
|
|
157
|
+
none: "none";
|
|
158
|
+
pino: "pino";
|
|
159
|
+
winston: "winston";
|
|
160
|
+
}>>;
|
|
161
|
+
observability: z.ZodOptional<z.ZodEnum<{
|
|
162
|
+
none: "none";
|
|
163
|
+
opentelemetry: "opentelemetry";
|
|
164
|
+
}>>;
|
|
165
|
+
frontend: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
166
|
+
none: "none";
|
|
167
|
+
"tanstack-router": "tanstack-router";
|
|
168
|
+
"react-router": "react-router";
|
|
169
|
+
"tanstack-start": "tanstack-start";
|
|
170
|
+
next: "next";
|
|
171
|
+
nuxt: "nuxt";
|
|
172
|
+
"native-bare": "native-bare";
|
|
173
|
+
"native-uniwind": "native-uniwind";
|
|
174
|
+
"native-unistyles": "native-unistyles";
|
|
175
|
+
svelte: "svelte";
|
|
176
|
+
solid: "solid";
|
|
177
|
+
astro: "astro";
|
|
178
|
+
qwik: "qwik";
|
|
179
|
+
angular: "angular";
|
|
180
|
+
redwood: "redwood";
|
|
181
|
+
fresh: "fresh";
|
|
182
|
+
}>>>;
|
|
183
|
+
addons: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
184
|
+
none: "none";
|
|
185
|
+
pwa: "pwa";
|
|
186
|
+
tauri: "tauri";
|
|
187
|
+
starlight: "starlight";
|
|
188
|
+
biome: "biome";
|
|
189
|
+
lefthook: "lefthook";
|
|
190
|
+
husky: "husky";
|
|
191
|
+
ruler: "ruler";
|
|
192
|
+
turborepo: "turborepo";
|
|
193
|
+
fumadocs: "fumadocs";
|
|
194
|
+
ultracite: "ultracite";
|
|
195
|
+
oxlint: "oxlint";
|
|
196
|
+
opentui: "opentui";
|
|
197
|
+
wxt: "wxt";
|
|
198
|
+
msw: "msw";
|
|
199
|
+
storybook: "storybook";
|
|
200
|
+
}>>>;
|
|
201
|
+
examples: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
202
|
+
none: "none";
|
|
203
|
+
todo: "todo";
|
|
204
|
+
ai: "ai";
|
|
205
|
+
}>>>;
|
|
206
|
+
git: z.ZodOptional<z.ZodBoolean>;
|
|
207
|
+
packageManager: z.ZodOptional<z.ZodEnum<{
|
|
208
|
+
bun: "bun";
|
|
209
|
+
npm: "npm";
|
|
210
|
+
pnpm: "pnpm";
|
|
211
|
+
}>>;
|
|
212
|
+
install: z.ZodOptional<z.ZodBoolean>;
|
|
213
|
+
dbSetup: z.ZodOptional<z.ZodEnum<{
|
|
214
|
+
none: "none";
|
|
215
|
+
turso: "turso";
|
|
216
|
+
neon: "neon";
|
|
217
|
+
"prisma-postgres": "prisma-postgres";
|
|
218
|
+
planetscale: "planetscale";
|
|
219
|
+
"mongodb-atlas": "mongodb-atlas";
|
|
220
|
+
supabase: "supabase";
|
|
221
|
+
d1: "d1";
|
|
222
|
+
docker: "docker";
|
|
223
|
+
}>>;
|
|
224
|
+
backend: z.ZodOptional<z.ZodEnum<{
|
|
225
|
+
none: "none";
|
|
226
|
+
hono: "hono";
|
|
227
|
+
express: "express";
|
|
228
|
+
fastify: "fastify";
|
|
229
|
+
elysia: "elysia";
|
|
230
|
+
fets: "fets";
|
|
231
|
+
nestjs: "nestjs";
|
|
232
|
+
adonisjs: "adonisjs";
|
|
233
|
+
nitro: "nitro";
|
|
234
|
+
encore: "encore";
|
|
235
|
+
convex: "convex";
|
|
236
|
+
self: "self";
|
|
237
|
+
}>>;
|
|
238
|
+
runtime: z.ZodOptional<z.ZodEnum<{
|
|
239
|
+
none: "none";
|
|
240
|
+
bun: "bun";
|
|
241
|
+
node: "node";
|
|
242
|
+
workers: "workers";
|
|
243
|
+
}>>;
|
|
244
|
+
api: z.ZodOptional<z.ZodEnum<{
|
|
245
|
+
none: "none";
|
|
246
|
+
trpc: "trpc";
|
|
247
|
+
orpc: "orpc";
|
|
248
|
+
"ts-rest": "ts-rest";
|
|
249
|
+
garph: "garph";
|
|
250
|
+
}>>;
|
|
251
|
+
cssFramework: z.ZodOptional<z.ZodEnum<{
|
|
252
|
+
none: "none";
|
|
253
|
+
tailwind: "tailwind";
|
|
254
|
+
scss: "scss";
|
|
255
|
+
less: "less";
|
|
256
|
+
"postcss-only": "postcss-only";
|
|
257
|
+
}>>;
|
|
258
|
+
uiLibrary: z.ZodOptional<z.ZodEnum<{
|
|
259
|
+
none: "none";
|
|
260
|
+
"shadcn-ui": "shadcn-ui";
|
|
261
|
+
daisyui: "daisyui";
|
|
262
|
+
"radix-ui": "radix-ui";
|
|
263
|
+
"headless-ui": "headless-ui";
|
|
264
|
+
"park-ui": "park-ui";
|
|
265
|
+
"chakra-ui": "chakra-ui";
|
|
266
|
+
nextui: "nextui";
|
|
267
|
+
mantine: "mantine";
|
|
268
|
+
"base-ui": "base-ui";
|
|
269
|
+
"ark-ui": "ark-ui";
|
|
270
|
+
"react-aria": "react-aria";
|
|
271
|
+
}>>;
|
|
272
|
+
webDeploy: z.ZodOptional<z.ZodEnum<{
|
|
273
|
+
none: "none";
|
|
274
|
+
cloudflare: "cloudflare";
|
|
275
|
+
}>>;
|
|
276
|
+
serverDeploy: z.ZodOptional<z.ZodEnum<{
|
|
277
|
+
none: "none";
|
|
278
|
+
cloudflare: "cloudflare";
|
|
279
|
+
}>>;
|
|
280
|
+
directoryConflict: z.ZodOptional<z.ZodEnum<{
|
|
281
|
+
merge: "merge";
|
|
282
|
+
overwrite: "overwrite";
|
|
283
|
+
increment: "increment";
|
|
284
|
+
error: "error";
|
|
285
|
+
}>>;
|
|
286
|
+
renderTitle: z.ZodOptional<z.ZodBoolean>;
|
|
287
|
+
disableAnalytics: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
288
|
+
manualDb: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
289
|
+
rustWebFramework: z.ZodOptional<z.ZodEnum<{
|
|
290
|
+
none: "none";
|
|
291
|
+
axum: "axum";
|
|
292
|
+
"actix-web": "actix-web";
|
|
293
|
+
}>>;
|
|
294
|
+
rustFrontend: z.ZodOptional<z.ZodEnum<{
|
|
295
|
+
none: "none";
|
|
296
|
+
leptos: "leptos";
|
|
297
|
+
dioxus: "dioxus";
|
|
298
|
+
}>>;
|
|
299
|
+
rustOrm: z.ZodOptional<z.ZodEnum<{
|
|
300
|
+
none: "none";
|
|
301
|
+
"sea-orm": "sea-orm";
|
|
302
|
+
sqlx: "sqlx";
|
|
303
|
+
}>>;
|
|
304
|
+
rustApi: z.ZodOptional<z.ZodEnum<{
|
|
305
|
+
none: "none";
|
|
306
|
+
tonic: "tonic";
|
|
307
|
+
"async-graphql": "async-graphql";
|
|
308
|
+
}>>;
|
|
309
|
+
rustCli: z.ZodOptional<z.ZodEnum<{
|
|
310
|
+
none: "none";
|
|
311
|
+
clap: "clap";
|
|
312
|
+
ratatui: "ratatui";
|
|
313
|
+
}>>;
|
|
314
|
+
rustLibraries: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
315
|
+
none: "none";
|
|
316
|
+
serde: "serde";
|
|
317
|
+
validator: "validator";
|
|
318
|
+
jsonwebtoken: "jsonwebtoken";
|
|
319
|
+
argon2: "argon2";
|
|
320
|
+
"tokio-test": "tokio-test";
|
|
321
|
+
mockall: "mockall";
|
|
322
|
+
}>>>;
|
|
323
|
+
}, z.core.$strip>], null>, _orpc_server0.Schema<{
|
|
324
|
+
success: boolean;
|
|
325
|
+
projectConfig: {
|
|
326
|
+
projectName: string;
|
|
327
|
+
projectDir: string;
|
|
328
|
+
relativePath: string;
|
|
329
|
+
ecosystem: "typescript" | "rust";
|
|
330
|
+
database: "none" | "sqlite" | "postgres" | "mysql" | "mongodb";
|
|
331
|
+
orm: "none" | "drizzle" | "prisma" | "mongoose" | "typeorm" | "kysely" | "mikroorm" | "sequelize";
|
|
332
|
+
backend: "none" | "hono" | "express" | "fastify" | "elysia" | "fets" | "nestjs" | "adonisjs" | "nitro" | "encore" | "convex" | "self";
|
|
333
|
+
runtime: "none" | "bun" | "node" | "workers";
|
|
334
|
+
frontend: ("none" | "tanstack-router" | "react-router" | "tanstack-start" | "next" | "nuxt" | "native-bare" | "native-uniwind" | "native-unistyles" | "svelte" | "solid" | "astro" | "qwik" | "angular" | "redwood" | "fresh")[];
|
|
335
|
+
addons: ("none" | "pwa" | "tauri" | "starlight" | "biome" | "lefthook" | "husky" | "ruler" | "turborepo" | "fumadocs" | "ultracite" | "oxlint" | "opentui" | "wxt" | "msw" | "storybook")[];
|
|
336
|
+
examples: ("ai" | "none" | "todo")[];
|
|
337
|
+
auth: "none" | "better-auth" | "clerk" | "nextauth";
|
|
338
|
+
payments: "none" | "polar" | "stripe" | "lemon-squeezy" | "paddle" | "dodo";
|
|
339
|
+
git: boolean;
|
|
340
|
+
packageManager: "bun" | "npm" | "pnpm";
|
|
341
|
+
install: boolean;
|
|
342
|
+
dbSetup: "none" | "turso" | "neon" | "prisma-postgres" | "planetscale" | "mongodb-atlas" | "supabase" | "d1" | "docker";
|
|
343
|
+
api: "none" | "trpc" | "orpc" | "ts-rest" | "garph";
|
|
344
|
+
webDeploy: "none" | "cloudflare";
|
|
345
|
+
serverDeploy: "none" | "cloudflare";
|
|
346
|
+
ai: "none" | "vercel-ai" | "mastra" | "voltagent" | "langgraph" | "openai-agents" | "google-adk" | "modelfusion" | "langchain" | "llamaindex";
|
|
347
|
+
effect: "effect" | "none" | "effect-full";
|
|
348
|
+
stateManagement: "none" | "zustand" | "jotai" | "nanostores" | "redux-toolkit" | "mobx" | "xstate" | "valtio" | "tanstack-store" | "legend-state";
|
|
349
|
+
forms: "none" | "tanstack-form" | "react-hook-form" | "formik" | "final-form" | "conform" | "modular-forms";
|
|
350
|
+
testing: "none" | "vitest" | "playwright" | "vitest-playwright" | "jest" | "cypress";
|
|
351
|
+
email: "none" | "react-email" | "resend" | "nodemailer" | "postmark" | "sendgrid" | "aws-ses" | "mailgun" | "plunk";
|
|
352
|
+
cssFramework: "none" | "tailwind" | "scss" | "less" | "postcss-only";
|
|
353
|
+
uiLibrary: "none" | "shadcn-ui" | "daisyui" | "radix-ui" | "headless-ui" | "park-ui" | "chakra-ui" | "nextui" | "mantine" | "base-ui" | "ark-ui" | "react-aria";
|
|
354
|
+
validation: "none" | "zod" | "valibot" | "arktype" | "typebox" | "typia" | "runtypes" | "effect-schema";
|
|
355
|
+
realtime: "none" | "socket-io" | "partykit" | "ably" | "pusher" | "liveblocks" | "yjs";
|
|
356
|
+
jobQueue: "none" | "bullmq" | "trigger-dev" | "inngest" | "temporal";
|
|
357
|
+
animation: "none" | "framer-motion" | "gsap" | "react-spring" | "auto-animate" | "lottie";
|
|
358
|
+
fileUpload: "none" | "uploadthing" | "filepond" | "uppy";
|
|
359
|
+
logging: "none" | "pino" | "winston";
|
|
360
|
+
observability: "none" | "opentelemetry";
|
|
361
|
+
cms: "none" | "payload" | "sanity" | "strapi";
|
|
362
|
+
caching: "none" | "upstash-redis";
|
|
363
|
+
rustWebFramework: "none" | "axum" | "actix-web";
|
|
364
|
+
rustFrontend: "none" | "leptos" | "dioxus";
|
|
365
|
+
rustOrm: "none" | "sea-orm" | "sqlx";
|
|
366
|
+
rustApi: "none" | "tonic" | "async-graphql";
|
|
367
|
+
rustCli: "none" | "clap" | "ratatui";
|
|
368
|
+
rustLibraries: ("none" | "serde" | "validator" | "jsonwebtoken" | "argon2" | "tokio-test" | "mockall")[];
|
|
369
|
+
astroIntegration?: "none" | "svelte" | "solid" | "react" | "vue" | undefined;
|
|
370
|
+
};
|
|
371
|
+
reproducibleCommand: string;
|
|
372
|
+
timeScaffolded: string;
|
|
373
|
+
elapsedTimeMs: number;
|
|
374
|
+
projectDirectory: string;
|
|
375
|
+
relativePath: string;
|
|
376
|
+
error?: undefined;
|
|
377
|
+
} | {
|
|
378
|
+
success: boolean;
|
|
379
|
+
error: string;
|
|
380
|
+
projectConfig: types_d_exports.ProjectConfig;
|
|
381
|
+
reproducibleCommand: string;
|
|
382
|
+
timeScaffolded: string;
|
|
383
|
+
elapsedTimeMs: number;
|
|
384
|
+
projectDirectory: string;
|
|
385
|
+
relativePath: string;
|
|
386
|
+
} | undefined, {
|
|
387
|
+
success: boolean;
|
|
388
|
+
projectConfig: {
|
|
389
|
+
projectName: string;
|
|
390
|
+
projectDir: string;
|
|
391
|
+
relativePath: string;
|
|
392
|
+
ecosystem: "typescript" | "rust";
|
|
393
|
+
database: "none" | "sqlite" | "postgres" | "mysql" | "mongodb";
|
|
394
|
+
orm: "none" | "drizzle" | "prisma" | "mongoose" | "typeorm" | "kysely" | "mikroorm" | "sequelize";
|
|
395
|
+
backend: "none" | "hono" | "express" | "fastify" | "elysia" | "fets" | "nestjs" | "adonisjs" | "nitro" | "encore" | "convex" | "self";
|
|
396
|
+
runtime: "none" | "bun" | "node" | "workers";
|
|
397
|
+
frontend: ("none" | "tanstack-router" | "react-router" | "tanstack-start" | "next" | "nuxt" | "native-bare" | "native-uniwind" | "native-unistyles" | "svelte" | "solid" | "astro" | "qwik" | "angular" | "redwood" | "fresh")[];
|
|
398
|
+
addons: ("none" | "pwa" | "tauri" | "starlight" | "biome" | "lefthook" | "husky" | "ruler" | "turborepo" | "fumadocs" | "ultracite" | "oxlint" | "opentui" | "wxt" | "msw" | "storybook")[];
|
|
399
|
+
examples: ("ai" | "none" | "todo")[];
|
|
400
|
+
auth: "none" | "better-auth" | "clerk" | "nextauth";
|
|
401
|
+
payments: "none" | "polar" | "stripe" | "lemon-squeezy" | "paddle" | "dodo";
|
|
402
|
+
git: boolean;
|
|
403
|
+
packageManager: "bun" | "npm" | "pnpm";
|
|
404
|
+
install: boolean;
|
|
405
|
+
dbSetup: "none" | "turso" | "neon" | "prisma-postgres" | "planetscale" | "mongodb-atlas" | "supabase" | "d1" | "docker";
|
|
406
|
+
api: "none" | "trpc" | "orpc" | "ts-rest" | "garph";
|
|
407
|
+
webDeploy: "none" | "cloudflare";
|
|
408
|
+
serverDeploy: "none" | "cloudflare";
|
|
409
|
+
ai: "none" | "vercel-ai" | "mastra" | "voltagent" | "langgraph" | "openai-agents" | "google-adk" | "modelfusion" | "langchain" | "llamaindex";
|
|
410
|
+
effect: "effect" | "none" | "effect-full";
|
|
411
|
+
stateManagement: "none" | "zustand" | "jotai" | "nanostores" | "redux-toolkit" | "mobx" | "xstate" | "valtio" | "tanstack-store" | "legend-state";
|
|
412
|
+
forms: "none" | "tanstack-form" | "react-hook-form" | "formik" | "final-form" | "conform" | "modular-forms";
|
|
413
|
+
testing: "none" | "vitest" | "playwright" | "vitest-playwright" | "jest" | "cypress";
|
|
414
|
+
email: "none" | "react-email" | "resend" | "nodemailer" | "postmark" | "sendgrid" | "aws-ses" | "mailgun" | "plunk";
|
|
415
|
+
cssFramework: "none" | "tailwind" | "scss" | "less" | "postcss-only";
|
|
416
|
+
uiLibrary: "none" | "shadcn-ui" | "daisyui" | "radix-ui" | "headless-ui" | "park-ui" | "chakra-ui" | "nextui" | "mantine" | "base-ui" | "ark-ui" | "react-aria";
|
|
417
|
+
validation: "none" | "zod" | "valibot" | "arktype" | "typebox" | "typia" | "runtypes" | "effect-schema";
|
|
418
|
+
realtime: "none" | "socket-io" | "partykit" | "ably" | "pusher" | "liveblocks" | "yjs";
|
|
419
|
+
jobQueue: "none" | "bullmq" | "trigger-dev" | "inngest" | "temporal";
|
|
420
|
+
animation: "none" | "framer-motion" | "gsap" | "react-spring" | "auto-animate" | "lottie";
|
|
421
|
+
fileUpload: "none" | "uploadthing" | "filepond" | "uppy";
|
|
422
|
+
logging: "none" | "pino" | "winston";
|
|
423
|
+
observability: "none" | "opentelemetry";
|
|
424
|
+
cms: "none" | "payload" | "sanity" | "strapi";
|
|
425
|
+
caching: "none" | "upstash-redis";
|
|
426
|
+
rustWebFramework: "none" | "axum" | "actix-web";
|
|
427
|
+
rustFrontend: "none" | "leptos" | "dioxus";
|
|
428
|
+
rustOrm: "none" | "sea-orm" | "sqlx";
|
|
429
|
+
rustApi: "none" | "tonic" | "async-graphql";
|
|
430
|
+
rustCli: "none" | "clap" | "ratatui";
|
|
431
|
+
rustLibraries: ("none" | "serde" | "validator" | "jsonwebtoken" | "argon2" | "tokio-test" | "mockall")[];
|
|
432
|
+
astroIntegration?: "none" | "svelte" | "solid" | "react" | "vue" | undefined;
|
|
433
|
+
};
|
|
434
|
+
reproducibleCommand: string;
|
|
435
|
+
timeScaffolded: string;
|
|
436
|
+
elapsedTimeMs: number;
|
|
437
|
+
projectDirectory: string;
|
|
438
|
+
relativePath: string;
|
|
439
|
+
error?: undefined;
|
|
440
|
+
} | {
|
|
441
|
+
success: boolean;
|
|
442
|
+
error: string;
|
|
443
|
+
projectConfig: types_d_exports.ProjectConfig;
|
|
444
|
+
reproducibleCommand: string;
|
|
445
|
+
timeScaffolded: string;
|
|
446
|
+
elapsedTimeMs: number;
|
|
447
|
+
projectDirectory: string;
|
|
448
|
+
relativePath: string;
|
|
449
|
+
} | undefined>, _orpc_server0.MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
450
|
+
sponsors: _orpc_server0.Procedure<_orpc_server0.MergedInitialContext<Record<never, never>, Record<never, never>, Record<never, never>>, Record<never, never>, _orpc_server0.Schema<unknown, unknown>, _orpc_server0.Schema<void, void>, _orpc_server0.MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
451
|
+
docs: _orpc_server0.Procedure<_orpc_server0.MergedInitialContext<Record<never, never>, Record<never, never>, Record<never, never>>, Record<never, never>, _orpc_server0.Schema<unknown, unknown>, _orpc_server0.Schema<void, void>, _orpc_server0.MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
452
|
+
builder: _orpc_server0.Procedure<_orpc_server0.MergedInitialContext<Record<never, never>, Record<never, never>, Record<never, never>>, Record<never, never>, _orpc_server0.Schema<unknown, unknown>, _orpc_server0.Schema<void, void>, _orpc_server0.MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
453
|
+
};
|
|
454
|
+
declare function createBtsCli(): trpc_cli0.TrpcCli;
|
|
455
|
+
/**
|
|
456
|
+
* Programmatic API to create a new Better Fullstack project.
|
|
457
|
+
* Returns pure JSON - no console output, no interactive prompts.
|
|
458
|
+
*
|
|
459
|
+
* @example
|
|
460
|
+
* ```typescript
|
|
461
|
+
* import { create } from "create-better-t-stack";
|
|
462
|
+
*
|
|
463
|
+
* const result = await create("my-app", {
|
|
464
|
+
* frontend: ["tanstack-router"],
|
|
465
|
+
* backend: "hono",
|
|
466
|
+
* runtime: "bun",
|
|
467
|
+
* database: "sqlite",
|
|
468
|
+
* orm: "drizzle",
|
|
469
|
+
* });
|
|
470
|
+
*
|
|
471
|
+
* if (result.success) {
|
|
472
|
+
* console.log(`Project created at: ${result.projectDirectory}`);
|
|
473
|
+
* }
|
|
474
|
+
* ```
|
|
475
|
+
*/
|
|
476
|
+
declare function create(projectName?: string, options?: Partial<types_d_exports.CreateInput>): Promise<types_d_exports.InitResult>;
|
|
477
|
+
declare function sponsors(): Promise<void>;
|
|
478
|
+
declare function docs(): Promise<void>;
|
|
479
|
+
declare function builder(): Promise<void>;
|
|
480
|
+
/**
|
|
481
|
+
* Programmatic API to generate a project in-memory (virtual filesystem).
|
|
482
|
+
* Returns a VirtualFileTree without writing to disk.
|
|
483
|
+
* Useful for web previews and testing.
|
|
484
|
+
*
|
|
485
|
+
* @example
|
|
486
|
+
* ```typescript
|
|
487
|
+
* import { createVirtual, EMBEDDED_TEMPLATES } from "create-better-t-stack";
|
|
488
|
+
*
|
|
489
|
+
* const result = await createVirtual({
|
|
490
|
+
* frontend: ["tanstack-router"],
|
|
491
|
+
* backend: "hono",
|
|
492
|
+
* runtime: "bun",
|
|
493
|
+
* database: "sqlite",
|
|
494
|
+
* orm: "drizzle",
|
|
495
|
+
* });
|
|
496
|
+
*
|
|
497
|
+
* if (result.success) {
|
|
498
|
+
* console.log(`Generated ${result.tree.fileCount} files`);
|
|
499
|
+
* }
|
|
500
|
+
* ```
|
|
501
|
+
*/
|
|
502
|
+
declare function createVirtual(options: Partial<Omit<types_d_exports.ProjectConfig, "projectDir" | "relativePath">>): Promise<{
|
|
503
|
+
success: boolean;
|
|
504
|
+
tree?: VirtualFileTree$1;
|
|
505
|
+
error?: string;
|
|
506
|
+
}>;
|
|
507
|
+
type API = import__better_fullstack_types.API;
|
|
508
|
+
type Addons = import__better_fullstack_types.Addons;
|
|
509
|
+
type Animation = import__better_fullstack_types.Animation;
|
|
510
|
+
type Auth = import__better_fullstack_types.Auth;
|
|
511
|
+
type Backend = import__better_fullstack_types.Backend;
|
|
512
|
+
type BetterTStackConfig = import__better_fullstack_types.BetterTStackConfig;
|
|
513
|
+
type CSSFramework = import__better_fullstack_types.CSSFramework;
|
|
514
|
+
type CreateInput = import__better_fullstack_types.CreateInput;
|
|
515
|
+
type Database = import__better_fullstack_types.Database;
|
|
516
|
+
type DatabaseSetup = import__better_fullstack_types.DatabaseSetup;
|
|
517
|
+
type DirectoryConflict = import__better_fullstack_types.DirectoryConflict;
|
|
518
|
+
type Ecosystem = import__better_fullstack_types.Ecosystem;
|
|
519
|
+
type Effect = import__better_fullstack_types.Effect;
|
|
520
|
+
type Examples = import__better_fullstack_types.Examples;
|
|
521
|
+
type Frontend = import__better_fullstack_types.Frontend;
|
|
522
|
+
type InitResult = import__better_fullstack_types.InitResult;
|
|
523
|
+
type Logging = import__better_fullstack_types.Logging;
|
|
524
|
+
type ORM = import__better_fullstack_types.ORM;
|
|
525
|
+
type PackageManager = import__better_fullstack_types.PackageManager;
|
|
526
|
+
type Payments = import__better_fullstack_types.Payments;
|
|
527
|
+
type Realtime = import__better_fullstack_types.Realtime;
|
|
528
|
+
type Runtime = import__better_fullstack_types.Runtime;
|
|
529
|
+
type RustApi = import__better_fullstack_types.RustApi;
|
|
530
|
+
type RustCli = import__better_fullstack_types.RustCli;
|
|
531
|
+
type RustFrontend = import__better_fullstack_types.RustFrontend;
|
|
532
|
+
type RustLibraries = import__better_fullstack_types.RustLibraries;
|
|
533
|
+
type RustOrm = import__better_fullstack_types.RustOrm;
|
|
534
|
+
type RustWebFramework = import__better_fullstack_types.RustWebFramework;
|
|
535
|
+
type ServerDeploy = import__better_fullstack_types.ServerDeploy;
|
|
536
|
+
type Template = import__better_fullstack_types.Template;
|
|
537
|
+
type UILibrary = import__better_fullstack_types.UILibrary;
|
|
538
|
+
type WebDeploy = import__better_fullstack_types.WebDeploy;
|
|
539
|
+
export { type API, type Addons, type Animation, type Auth, type Backend, type BetterTStackConfig, type CSSFramework, type CreateInput, type Database, type DatabaseSetup, type DirectoryConflict, EMBEDDED_TEMPLATES, type Ecosystem, type Effect, type Examples, type Frontend, type GeneratorOptions, type GeneratorResult, type InitResult, type Logging, type ORM, type PackageManager, type Payments, type Realtime, type Runtime, type RustApi, type RustCli, type RustFrontend, type RustLibraries, type RustOrm, type RustWebFramework, type ServerDeploy, TEMPLATE_COUNT, type Template, type UILibrary, type VirtualDirectory, type VirtualFile, VirtualFileSystem, type VirtualFileTree, type VirtualNode, type WebDeploy, builder, create, createBtsCli, createVirtual, docs, generateVirtualProject, router, sponsors };
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { a as create, c as docs, d as sponsors, i as builder, l as generateVirtualProject, n as TEMPLATE_COUNT, o as createBtsCli, r as VirtualFileSystem, s as createVirtual, t as EMBEDDED_TEMPLATES, u as router } from "./src-CwAb8MVO.mjs";
|
|
3
|
+
|
|
4
|
+
export { EMBEDDED_TEMPLATES, TEMPLATE_COUNT, VirtualFileSystem, builder, create, createBtsCli, createVirtual, docs, generateVirtualProject, router, sponsors };
|