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.
@@ -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 };