@better-fullstack/template-generator 1.0.0-canary.c9b74dcc

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.
Files changed (37) hide show
  1. package/dist/core/template-reader.d.mts +11 -0
  2. package/dist/core/template-reader.d.mts.map +1 -0
  3. package/dist/core/template-reader.mjs +4 -0
  4. package/dist/fs-writer.d.mts +8 -0
  5. package/dist/fs-writer.d.mts.map +1 -0
  6. package/dist/fs-writer.mjs +51 -0
  7. package/dist/fs-writer.mjs.map +1 -0
  8. package/dist/index.d.mts +442 -0
  9. package/dist/index.d.mts.map +1 -0
  10. package/dist/index.mjs +46568 -0
  11. package/dist/index.mjs.map +1 -0
  12. package/dist/is-binary-path-BN88l03c.mjs +282 -0
  13. package/dist/is-binary-path-BN88l03c.mjs.map +1 -0
  14. package/dist/template-reader-DOXCnctl.mjs +2564 -0
  15. package/dist/template-reader-DOXCnctl.mjs.map +1 -0
  16. package/dist/types-4RpstO2l.d.mts +37 -0
  17. package/dist/types-4RpstO2l.d.mts.map +1 -0
  18. package/package.json +68 -0
  19. package/templates-binary/addons/pwa/apps/web/next/public/favicon/apple-touch-icon.png +0 -0
  20. package/templates-binary/addons/pwa/apps/web/next/public/favicon/favicon-96x96.png +0 -0
  21. package/templates-binary/addons/pwa/apps/web/next/public/favicon/web-app-manifest-192x192.png +0 -0
  22. package/templates-binary/addons/pwa/apps/web/next/public/favicon/web-app-manifest-512x512.png +0 -0
  23. package/templates-binary/addons/pwa/apps/web/vite/public/logo.png +0 -0
  24. package/templates-binary/frontend/native/base/assets/images/android-icon-background.png +0 -0
  25. package/templates-binary/frontend/native/base/assets/images/android-icon-foreground.png +0 -0
  26. package/templates-binary/frontend/native/base/assets/images/android-icon-monochrome.png +0 -0
  27. package/templates-binary/frontend/native/base/assets/images/favicon.png +0 -0
  28. package/templates-binary/frontend/native/base/assets/images/icon.png +0 -0
  29. package/templates-binary/frontend/native/base/assets/images/partial-react-logo.png +0 -0
  30. package/templates-binary/frontend/native/base/assets/images/react-logo.png +0 -0
  31. package/templates-binary/frontend/native/base/assets/images/react-logo@2x.png +0 -0
  32. package/templates-binary/frontend/native/base/assets/images/react-logo@3x.png +0 -0
  33. package/templates-binary/frontend/native/base/assets/images/splash-icon.png +0 -0
  34. package/templates-binary/frontend/nuxt/public/favicon.ico +0 -0
  35. package/templates-binary/frontend/react/next/src/app/favicon.ico +0 -0
  36. package/templates-binary/frontend/react/react-router/public/favicon.ico +0 -0
  37. package/templates-binary/frontend/svelte/static/favicon.png +0 -0
@@ -0,0 +1,11 @@
1
+ import isBinaryPath from "is-binary-path";
2
+
3
+ //#region src/core/template-reader.d.ts
4
+ declare function getTemplatesRoot(): string;
5
+ declare function getBinaryTemplatesRoot(): string;
6
+ declare function loadTemplates(prefix?: string): Promise<Map<string, string>>;
7
+ declare function loadTemplate(relativePath: string): string | undefined;
8
+ declare function listTemplates(prefix?: string): Promise<string[]>;
9
+ //#endregion
10
+ export { getTemplatesRoot as TEMPLATES_ROOT, getTemplatesRoot, getBinaryTemplatesRoot, isBinaryPath, listTemplates, loadTemplate, loadTemplates };
11
+ //# sourceMappingURL=template-reader.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-reader.d.mts","names":[],"sources":["../../src/core/template-reader.ts"],"sourcesContent":[],"mappings":";;;iBASgB,gBAAA,CAAA;iBAcA,sBAAA,CAAA;AAdA,iBA4BM,aAAA,CA5BU,MAAA,CAAA,EAAA,MAAA,CAAA,EA4BsB,OA5BtB,CA4B8B,GA5B9B,CAAA,MAAA,EAAA,MAAA,CAAA,CAAA;AAchB,iBAyCA,YAAA,CAzCsB,YAAA,EAAA,MAAA,CAAA,EAAA,MAAA,GAAA,SAAA;AAchB,iBAkCA,aAAA,CAlCgC,MAAO,CAAA,EAAA,MAAA,CAAA,EAkCP,OAlCO,CAAA,MAAA,EAAA,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { a as loadTemplates, i as loadTemplate, n as getTemplatesRoot, r as listTemplates, t as getBinaryTemplatesRoot } from "../template-reader-DOXCnctl.mjs";
2
+ import { t as isBinaryPath } from "../is-binary-path-BN88l03c.mjs";
3
+
4
+ export { getTemplatesRoot as TEMPLATES_ROOT, getTemplatesRoot, getBinaryTemplatesRoot, isBinaryPath, listTemplates, loadTemplate, loadTemplates };
@@ -0,0 +1,8 @@
1
+ import { a as VirtualFileTree } from "./types-4RpstO2l.mjs";
2
+
3
+ //#region src/fs-writer.d.ts
4
+ declare function writeTreeToFilesystem(tree: VirtualFileTree, destDir: string): Promise<void>;
5
+ declare function writeSelectedFiles(tree: VirtualFileTree, destDir: string, filter: (filePath: string) => boolean): Promise<string[]>;
6
+ //#endregion
7
+ export { writeSelectedFiles, writeTreeToFilesystem };
8
+ //# sourceMappingURL=fs-writer.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs-writer.d.mts","names":[],"sources":["../src/fs-writer.ts"],"sourcesContent":[],"mappings":";;;iBASsB,qBAAA,OAA4B,mCAAmC;iBA2B/D,kBAAA,OACd,0EAGL"}
@@ -0,0 +1,51 @@
1
+ import { t as getBinaryTemplatesRoot } from "./template-reader-DOXCnctl.mjs";
2
+ import { dirname, join } from "pathe";
3
+ import * as fs from "node:fs/promises";
4
+
5
+ //#region src/fs-writer.ts
6
+ const BINARY_FILE_MARKER = "[Binary file]";
7
+ async function writeTreeToFilesystem(tree, destDir) {
8
+ for (const child of tree.root.children) await writeNode(child, destDir, "");
9
+ }
10
+ async function writeNode(node, baseDir, relativePath) {
11
+ const fullPath = join(baseDir, relativePath, node.name);
12
+ const nodePath = relativePath ? join(relativePath, node.name) : node.name;
13
+ if (node.type === "file") {
14
+ const fileNode = node;
15
+ await fs.mkdir(dirname(fullPath), { recursive: true });
16
+ if (fileNode.content === BINARY_FILE_MARKER && fileNode.sourcePath) await copyBinaryFile(fileNode.sourcePath, fullPath);
17
+ else if (fileNode.content !== BINARY_FILE_MARKER) await fs.writeFile(fullPath, fileNode.content, "utf-8");
18
+ } else {
19
+ await fs.mkdir(fullPath, { recursive: true });
20
+ for (const child of node.children) await writeNode(child, baseDir, nodePath);
21
+ }
22
+ }
23
+ async function writeSelectedFiles(tree, destDir, filter) {
24
+ const writtenFiles = [];
25
+ await writeSelectedNode(tree.root, destDir, "", filter, writtenFiles);
26
+ return writtenFiles;
27
+ }
28
+ async function writeSelectedNode(node, baseDir, relativePath, filter, writtenFiles) {
29
+ const nodePath = relativePath ? `${relativePath}/${node.name}` : node.name;
30
+ if (node.type === "file") {
31
+ if (filter(nodePath)) {
32
+ const fileNode = node;
33
+ await fs.mkdir(dirname(join(baseDir, nodePath)), { recursive: true });
34
+ if (fileNode.content === BINARY_FILE_MARKER && fileNode.sourcePath) await copyBinaryFile(fileNode.sourcePath, join(baseDir, nodePath));
35
+ else if (fileNode.content !== BINARY_FILE_MARKER) await fs.writeFile(join(baseDir, nodePath), fileNode.content, "utf-8");
36
+ writtenFiles.push(nodePath);
37
+ }
38
+ } else for (const child of node.children) await writeSelectedNode(child, baseDir, nodePath, filter, writtenFiles);
39
+ }
40
+ async function copyBinaryFile(templatePath, destPath) {
41
+ const sourcePath = join(getBinaryTemplatesRoot(), templatePath);
42
+ try {
43
+ await fs.copyFile(sourcePath, destPath);
44
+ } catch (error) {
45
+ console.warn(`Failed to copy binary file: ${templatePath}`, error);
46
+ }
47
+ }
48
+
49
+ //#endregion
50
+ export { writeSelectedFiles, writeTreeToFilesystem };
51
+ //# sourceMappingURL=fs-writer.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs-writer.mjs","names":["writtenFiles: string[]"],"sources":["../src/fs-writer.ts"],"sourcesContent":["import * as fs from \"node:fs/promises\";\nimport { join, dirname } from \"pathe\";\n\nimport type { VirtualFileTree, VirtualNode, VirtualFile, VirtualDirectory } from \"./types\";\n\nimport { getBinaryTemplatesRoot } from \"./core/template-reader\";\n\nconst BINARY_FILE_MARKER = \"[Binary file]\";\n\nexport async function writeTreeToFilesystem(tree: VirtualFileTree, destDir: string): Promise<void> {\n for (const child of tree.root.children) {\n await writeNode(child, destDir, \"\");\n }\n}\n\nasync function writeNode(node: VirtualNode, baseDir: string, relativePath: string): Promise<void> {\n const fullPath = join(baseDir, relativePath, node.name);\n const nodePath = relativePath ? join(relativePath, node.name) : node.name;\n\n if (node.type === \"file\") {\n const fileNode = node as VirtualFile;\n await fs.mkdir(dirname(fullPath), { recursive: true });\n\n if (fileNode.content === BINARY_FILE_MARKER && fileNode.sourcePath) {\n await copyBinaryFile(fileNode.sourcePath, fullPath);\n } else if (fileNode.content !== BINARY_FILE_MARKER) {\n await fs.writeFile(fullPath, fileNode.content, \"utf-8\");\n }\n } else {\n await fs.mkdir(fullPath, { recursive: true });\n for (const child of (node as VirtualDirectory).children) {\n await writeNode(child, baseDir, nodePath);\n }\n }\n}\n\nexport async function writeSelectedFiles(\n tree: VirtualFileTree,\n destDir: string,\n filter: (filePath: string) => boolean,\n): Promise<string[]> {\n const writtenFiles: string[] = [];\n await writeSelectedNode(tree.root, destDir, \"\", filter, writtenFiles);\n return writtenFiles;\n}\n\nasync function writeSelectedNode(\n node: VirtualNode,\n baseDir: string,\n relativePath: string,\n filter: (filePath: string) => boolean,\n writtenFiles: string[],\n): Promise<void> {\n const nodePath = relativePath ? `${relativePath}/${node.name}` : node.name;\n\n if (node.type === \"file\") {\n if (filter(nodePath)) {\n const fileNode = node as VirtualFile;\n await fs.mkdir(dirname(join(baseDir, nodePath)), { recursive: true });\n\n if (fileNode.content === BINARY_FILE_MARKER && fileNode.sourcePath) {\n await copyBinaryFile(fileNode.sourcePath, join(baseDir, nodePath));\n } else if (fileNode.content !== BINARY_FILE_MARKER) {\n await fs.writeFile(join(baseDir, nodePath), fileNode.content, \"utf-8\");\n }\n writtenFiles.push(nodePath);\n }\n } else {\n for (const child of (node as VirtualDirectory).children) {\n await writeSelectedNode(child, baseDir, nodePath, filter, writtenFiles);\n }\n }\n}\n\nasync function copyBinaryFile(templatePath: string, destPath: string): Promise<void> {\n const templatesRoot = getBinaryTemplatesRoot();\n const sourcePath = join(templatesRoot, templatePath);\n\n try {\n await fs.copyFile(sourcePath, destPath);\n } catch (error) {\n console.warn(`Failed to copy binary file: ${templatePath}`, error);\n }\n}\n"],"mappings":";;;;;AAOA,MAAM,qBAAqB;AAE3B,eAAsB,sBAAsB,MAAuB,SAAgC;AACjG,MAAK,MAAM,SAAS,KAAK,KAAK,SAC5B,OAAM,UAAU,OAAO,SAAS,GAAG;;AAIvC,eAAe,UAAU,MAAmB,SAAiB,cAAqC;CAChG,MAAM,WAAW,KAAK,SAAS,cAAc,KAAK,KAAK;CACvD,MAAM,WAAW,eAAe,KAAK,cAAc,KAAK,KAAK,GAAG,KAAK;AAErE,KAAI,KAAK,SAAS,QAAQ;EACxB,MAAM,WAAW;AACjB,QAAM,GAAG,MAAM,QAAQ,SAAS,EAAE,EAAE,WAAW,MAAM,CAAC;AAEtD,MAAI,SAAS,YAAY,sBAAsB,SAAS,WACtD,OAAM,eAAe,SAAS,YAAY,SAAS;WAC1C,SAAS,YAAY,mBAC9B,OAAM,GAAG,UAAU,UAAU,SAAS,SAAS,QAAQ;QAEpD;AACL,QAAM,GAAG,MAAM,UAAU,EAAE,WAAW,MAAM,CAAC;AAC7C,OAAK,MAAM,SAAU,KAA0B,SAC7C,OAAM,UAAU,OAAO,SAAS,SAAS;;;AAK/C,eAAsB,mBACpB,MACA,SACA,QACmB;CACnB,MAAMA,eAAyB,EAAE;AACjC,OAAM,kBAAkB,KAAK,MAAM,SAAS,IAAI,QAAQ,aAAa;AACrE,QAAO;;AAGT,eAAe,kBACb,MACA,SACA,cACA,QACA,cACe;CACf,MAAM,WAAW,eAAe,GAAG,aAAa,GAAG,KAAK,SAAS,KAAK;AAEtE,KAAI,KAAK,SAAS,QAChB;MAAI,OAAO,SAAS,EAAE;GACpB,MAAM,WAAW;AACjB,SAAM,GAAG,MAAM,QAAQ,KAAK,SAAS,SAAS,CAAC,EAAE,EAAE,WAAW,MAAM,CAAC;AAErE,OAAI,SAAS,YAAY,sBAAsB,SAAS,WACtD,OAAM,eAAe,SAAS,YAAY,KAAK,SAAS,SAAS,CAAC;YACzD,SAAS,YAAY,mBAC9B,OAAM,GAAG,UAAU,KAAK,SAAS,SAAS,EAAE,SAAS,SAAS,QAAQ;AAExE,gBAAa,KAAK,SAAS;;OAG7B,MAAK,MAAM,SAAU,KAA0B,SAC7C,OAAM,kBAAkB,OAAO,SAAS,UAAU,QAAQ,aAAa;;AAK7E,eAAe,eAAe,cAAsB,UAAiC;CAEnF,MAAM,aAAa,KADG,wBAAwB,EACP,aAAa;AAEpD,KAAI;AACF,QAAM,GAAG,SAAS,YAAY,SAAS;UAChC,OAAO;AACd,UAAQ,KAAK,+BAA+B,gBAAgB,MAAM"}
@@ -0,0 +1,442 @@
1
+ import { a as VirtualFileTree, i as VirtualFile, n as GeneratorResult, o as VirtualNode, r as VirtualDirectory, t as GeneratorOptions } from "./types-4RpstO2l.mjs";
2
+ import * as memfs0 from "memfs";
3
+ import Handlebars from "handlebars";
4
+ import { ProjectConfig } from "@better-fullstack/types";
5
+
6
+ //#region src/core/virtual-fs.d.ts
7
+ declare class VirtualFileSystem {
8
+ private _fs;
9
+ private _vol;
10
+ private _sourcePathMap;
11
+ constructor();
12
+ writeFile(filePath: string, content: string, sourcePath?: string): void;
13
+ readFile(filePath: string): string | undefined;
14
+ exists(path: string): boolean;
15
+ fileExists(filePath: string): boolean;
16
+ directoryExists(dirPath: string): boolean;
17
+ mkdir(dirPath: string): void;
18
+ deleteFile(filePath: string): boolean;
19
+ listDir(dirPath: string): string[];
20
+ readJson<T = unknown>(filePath: string): T | undefined;
21
+ writeJson(filePath: string, data: unknown, spaces?: number): void;
22
+ getAllFiles(): string[];
23
+ getAllDirectories(): string[];
24
+ getFileCount(): number;
25
+ getDirectoryCount(): number;
26
+ toTree(rootName?: string): VirtualDirectory;
27
+ clear(): void;
28
+ getVolume(): memfs0.Volume;
29
+ getFs(): memfs0.IFs;
30
+ private walkDir;
31
+ private buildTree;
32
+ private sortChildren;
33
+ private normalizePath;
34
+ }
35
+ //#endregion
36
+ //#region src/core/template-processor.d.ts
37
+ declare function processTemplateString(content: string, context: ProjectConfig): string;
38
+ declare function isBinaryFile(filePath: string): boolean;
39
+ declare function transformFilename(filename: string): string;
40
+ declare function processFileContent(filePath: string, content: string, context: ProjectConfig): string;
41
+ //#endregion
42
+ //#region src/template-handlers/utils.d.ts
43
+ type TemplateData = Map<string, string>;
44
+ //#endregion
45
+ //#region src/generator.d.ts
46
+ declare function generateVirtualProject(options: GeneratorOptions): Promise<GeneratorResult>;
47
+ //#endregion
48
+ //#region src/templates.generated.d.ts
49
+ declare const EMBEDDED_TEMPLATES: Map<string, string>;
50
+ declare const TEMPLATE_COUNT = 703;
51
+ //#endregion
52
+ //#region src/utils/add-deps.d.ts
53
+ declare const dependencyVersionMap: {
54
+ readonly typescript: "^5";
55
+ readonly "better-auth": "^1.4.9";
56
+ readonly "@better-auth/expo": "^1.4.9";
57
+ readonly "@clerk/nextjs": "^6.31.5";
58
+ readonly "@clerk/clerk-react": "^5.45.0";
59
+ readonly "@clerk/tanstack-react-start": "^0.26.3";
60
+ readonly "@clerk/clerk-expo": "^2.14.25";
61
+ readonly "next-auth": "^5.0.0-beta.28";
62
+ readonly "@auth/core": "^0.39.1";
63
+ readonly "@auth/drizzle-adapter": "^1.8.1";
64
+ readonly "@auth/prisma-adapter": "^2.9.1";
65
+ readonly "drizzle-orm": "^0.45.1";
66
+ readonly "drizzle-kit": "^0.31.8";
67
+ readonly "@planetscale/database": "^1.19.0";
68
+ readonly "@libsql/client": "0.15.15";
69
+ readonly libsql: "0.5.22";
70
+ readonly "@neondatabase/serverless": "^1.0.2";
71
+ readonly pg: "^8.16.3";
72
+ readonly "@types/pg": "^8.15.6";
73
+ readonly "@types/ws": "^8.18.1";
74
+ readonly ws: "^8.18.3";
75
+ readonly mysql2: "^3.14.0";
76
+ readonly "@prisma/client": "^7.1.0";
77
+ readonly prisma: "^7.1.0";
78
+ readonly "@prisma/adapter-d1": "^7.1.0";
79
+ readonly "@prisma/adapter-neon": "^7.1.0";
80
+ readonly "@prisma/adapter-mariadb": "^7.1.0";
81
+ readonly "@prisma/adapter-libsql": "^7.1.0";
82
+ readonly "@prisma/adapter-better-sqlite3": "^7.1.0";
83
+ readonly "@prisma/adapter-pg": "^7.1.0";
84
+ readonly "@prisma/adapter-planetscale": "^7.1.0";
85
+ readonly mongoose: "^8.14.0";
86
+ readonly typeorm: "^0.3.23";
87
+ readonly "better-sqlite3": "^11.9.1";
88
+ readonly "@types/better-sqlite3": "^7.6.13";
89
+ readonly kysely: "^0.28.3";
90
+ readonly "@mikro-orm/core": "^6.5.3";
91
+ readonly "@mikro-orm/sqlite": "^6.5.3";
92
+ readonly "@mikro-orm/postgresql": "^6.5.3";
93
+ readonly "@mikro-orm/mysql": "^6.5.3";
94
+ readonly "@mikro-orm/better-sqlite": "^6.5.3";
95
+ readonly sequelize: "^6.37.5";
96
+ readonly "sequelize-typescript": "^2.1.6";
97
+ readonly sqlite3: "^5.1.7";
98
+ readonly "vite-plugin-pwa": "^1.0.1";
99
+ readonly "@vite-pwa/assets-generator": "^1.0.0";
100
+ readonly "@tauri-apps/cli": "^2.4.0";
101
+ readonly "@biomejs/biome": "^2.2.0";
102
+ readonly oxlint: "^1.34.0";
103
+ readonly oxfmt: "^0.19.0";
104
+ readonly husky: "^9.1.7";
105
+ readonly lefthook: "^2.0.13";
106
+ readonly "lint-staged": "^16.1.2";
107
+ readonly tsx: "^4.19.2";
108
+ readonly "@types/node": "^22.13.14";
109
+ readonly "@types/bun": "^1.3.4";
110
+ readonly "@elysiajs/node": "^1.3.1";
111
+ readonly "@elysiajs/cors": "^1.4.1";
112
+ readonly "@elysiajs/trpc": "^1.1.0";
113
+ readonly elysia: "^1.4.21";
114
+ readonly "@hono/node-server": "^1.14.4";
115
+ readonly "@hono/trpc-server": "^0.4.0";
116
+ readonly hono: "^4.8.2";
117
+ readonly cors: "^2.8.5";
118
+ readonly express: "^5.1.0";
119
+ readonly "@types/express": "^5.0.1";
120
+ readonly "@types/cors": "^2.8.17";
121
+ readonly fastify: "^5.3.3";
122
+ readonly "@fastify/cors": "^11.0.1";
123
+ readonly "@nestjs/core": "^11.0.20";
124
+ readonly "@nestjs/common": "^11.0.20";
125
+ readonly "@nestjs/platform-express": "^11.0.20";
126
+ readonly "reflect-metadata": "^0.2.2";
127
+ readonly rxjs: "^7.8.1";
128
+ readonly "encore.dev": "^1.50.0";
129
+ readonly "@adonisjs/core": "^6.19.0";
130
+ readonly "@adonisjs/cors": "^2.2.1";
131
+ readonly "@adonisjs/tsconfig": "^1.4.0";
132
+ readonly nitropack: "^2.11.12";
133
+ readonly h3: "^1.15.3";
134
+ readonly fets: "^0.8.5";
135
+ readonly turbo: "^2.6.3";
136
+ readonly ai: "^6.0.3";
137
+ readonly "@ai-sdk/google": "^3.0.1";
138
+ readonly "@ai-sdk/vue": "^3.0.3";
139
+ readonly "@ai-sdk/svelte": "^4.0.3";
140
+ readonly "@ai-sdk/react": "^3.0.3";
141
+ readonly "@ai-sdk/devtools": "^0.0.2";
142
+ readonly streamdown: "^1.6.10";
143
+ readonly shiki: "^3.20.0";
144
+ readonly mastra: "^0.24.9";
145
+ readonly "@mastra/core": "^0.24.9";
146
+ readonly "@voltagent/core": "^2.0.10";
147
+ readonly "@voltagent/server-hono": "^2.0.3";
148
+ readonly "@voltagent/libsql": "^2.0.3";
149
+ readonly "@voltagent/logger": "^2.0.2";
150
+ readonly "@langchain/langgraph": "^1.0.15";
151
+ readonly "@langchain/core": "^1.1.12";
152
+ readonly "@langchain/google-genai": "^2.1.8";
153
+ readonly "@openai/agents": "^0.0.17";
154
+ readonly "@google/adk": "^0.2.0";
155
+ readonly modelfusion: "^0.137.0";
156
+ readonly "@orpc/server": "^1.12.2";
157
+ readonly "@orpc/client": "^1.12.2";
158
+ readonly "@orpc/openapi": "^1.12.2";
159
+ readonly "@orpc/zod": "^1.12.2";
160
+ readonly "@orpc/tanstack-query": "^1.12.2";
161
+ readonly "@ts-rest/core": "^3.55.0";
162
+ readonly "@ts-rest/react-query": "^3.55.0";
163
+ readonly "@ts-rest/serverless": "^3.55.0";
164
+ readonly "@ts-rest/next": "^3.55.0";
165
+ readonly garph: "^0.6.8";
166
+ readonly "graphql-yoga": "^5.10.11";
167
+ readonly graphql: "^16.11.0";
168
+ readonly "@garph/gqty": "^1.3.5";
169
+ readonly gqty: "^3.5.0";
170
+ readonly "@trpc/tanstack-react-query": "^11.7.2";
171
+ readonly "@trpc/server": "^11.7.2";
172
+ readonly "@trpc/client": "^11.7.2";
173
+ readonly next: "^16.1.1";
174
+ readonly convex: "^1.31.2";
175
+ readonly "@convex-dev/react-query": "^0.1.0";
176
+ readonly "@convex-dev/agent": "^0.3.2";
177
+ readonly "convex-svelte": "^0.0.12";
178
+ readonly "convex-nuxt": "0.1.5";
179
+ readonly "convex-vue": "^0.1.5";
180
+ readonly "@convex-dev/better-auth": "^0.10.9";
181
+ readonly "@tanstack/svelte-query": "^5.85.3";
182
+ readonly "@tanstack/svelte-query-devtools": "^5.85.3";
183
+ readonly "@tanstack/vue-query-devtools": "^5.90.2";
184
+ readonly "@tanstack/vue-query": "^5.90.2";
185
+ readonly "@tanstack/react-query-devtools": "^5.91.1";
186
+ readonly "@tanstack/react-query": "^5.90.12";
187
+ readonly "@tanstack/react-router-ssr-query": "^1.142.7";
188
+ readonly "@tanstack/solid-query": "^5.87.4";
189
+ readonly "@tanstack/solid-query-devtools": "^5.87.4";
190
+ readonly "@tanstack/solid-router-devtools": "^1.131.44";
191
+ readonly wrangler: "^4.54.0";
192
+ readonly "@cloudflare/vite-plugin": "^1.17.1";
193
+ readonly "@opennextjs/cloudflare": "^1.14.6";
194
+ readonly "nitro-cloudflare-dev": "^0.2.2";
195
+ readonly "@sveltejs/adapter-cloudflare": "^7.2.4";
196
+ readonly "@cloudflare/workers-types": "^4.20251213.0";
197
+ readonly alchemy: "^0.82.1";
198
+ readonly dotenv: "^17.2.2";
199
+ readonly tsdown: "^0.16.5";
200
+ readonly zod: "^4.1.13";
201
+ readonly "@t3-oss/env-core": "^0.13.1";
202
+ readonly "@t3-oss/env-nextjs": "^0.13.1";
203
+ readonly "@t3-oss/env-nuxt": "^0.13.1";
204
+ readonly srvx: "0.8.15";
205
+ readonly "@polar-sh/better-auth": "^1.1.3";
206
+ readonly "@polar-sh/sdk": "^0.34.16";
207
+ readonly resend: "^4.5.1";
208
+ readonly "@react-email/components": "^0.0.36";
209
+ readonly "react-email": "^3.0.6";
210
+ readonly nodemailer: "^6.10.1";
211
+ readonly "@types/nodemailer": "^6.4.17";
212
+ readonly postmark: "^4.0.5";
213
+ readonly "@sendgrid/mail": "^8.1.4";
214
+ readonly "@aws-sdk/client-ses": "^3.970.0";
215
+ readonly "mailgun.js": "^10.2.3";
216
+ readonly "form-data": "^4.0.1";
217
+ readonly "@plunk/node": "^3.0.2";
218
+ readonly effect: "^3.16.1";
219
+ readonly "@effect/schema": "^0.75.8";
220
+ readonly "@effect/platform": "^0.78.1";
221
+ readonly "@effect/platform-node": "^0.74.1";
222
+ readonly "@effect/platform-bun": "^0.58.1";
223
+ readonly "@effect/platform-browser": "^0.57.1";
224
+ readonly "@effect/sql": "^0.35.1";
225
+ readonly "@effect/sql-sqlite-node": "^0.29.1";
226
+ readonly "@effect/sql-sqlite-bun": "^0.29.1";
227
+ readonly "@effect/sql-pg": "^0.29.1";
228
+ readonly "@effect/sql-mysql2": "^0.29.1";
229
+ readonly "@effect/sql-libsql": "^0.29.1";
230
+ readonly "@effect/sql-drizzle": "^0.26.1";
231
+ readonly "@effect/cli": "^0.56.1";
232
+ readonly "@effect/vitest": "^0.17.1";
233
+ readonly "@effect/opentelemetry": "^0.43.1";
234
+ readonly "@effect/rpc": "^0.51.1";
235
+ readonly "@effect/rpc-http": "^0.51.1";
236
+ readonly "@effect/cluster": "^0.26.1";
237
+ readonly "@effect/workflow": "^0.26.1";
238
+ readonly "@effect/ai": "^0.5.1";
239
+ readonly "@effect/ai-openai": "^0.5.1";
240
+ readonly "@effect/ai-anthropic": "^0.5.1";
241
+ readonly sass: "^1.86.0";
242
+ readonly less: "^4.3.0";
243
+ readonly "@radix-ui/react-dialog": "^1.1.14";
244
+ readonly "@radix-ui/react-dropdown-menu": "^2.1.15";
245
+ readonly "@radix-ui/react-slot": "^1.2.3";
246
+ readonly "@radix-ui/react-label": "^2.1.4";
247
+ readonly "@radix-ui/react-checkbox": "^1.3.2";
248
+ readonly "@radix-ui/react-select": "^2.2.5";
249
+ readonly "@radix-ui/react-toast": "^1.2.14";
250
+ readonly "@radix-ui/react-popover": "^1.1.14";
251
+ readonly "@radix-ui/react-switch": "^1.1.7";
252
+ readonly "@radix-ui/react-tabs": "^1.1.7";
253
+ readonly "@headlessui/react": "^2.3.1";
254
+ readonly "@headlessui/vue": "^1.8.1";
255
+ readonly "@park-ui/panda-preset": "^0.47.0";
256
+ readonly "@park-ui/ark": "^0.47.0";
257
+ readonly "@chakra-ui/react": "^3.21.3";
258
+ readonly "@emotion/react": "^11.14.0";
259
+ readonly "@heroui/react": "^2.8.3";
260
+ readonly "framer-motion": "^12.17.0";
261
+ readonly "@mantine/core": "^8.3.12";
262
+ readonly "@mantine/hooks": "^8.3.12";
263
+ readonly "@base-ui-components/react": "^1.0.0-rc.0";
264
+ readonly "@ark-ui/react": "^5.30.0";
265
+ readonly "@ark-ui/vue": "^5.26.2";
266
+ readonly "@ark-ui/solid": "^5.30.0";
267
+ readonly "@ark-ui/svelte": "^5.15.0";
268
+ readonly "react-aria-components": "^1.14.0";
269
+ readonly daisyui: "^4.12.28";
270
+ readonly "@builder.io/qwik": "^1.14.1";
271
+ readonly "@builder.io/qwik-city": "^1.14.1";
272
+ readonly "@builder.io/qwik-react": "^0.7.0";
273
+ readonly "@angular/core": "^19.2.0";
274
+ readonly "@angular/common": "^19.2.0";
275
+ readonly "@angular/compiler": "^19.2.0";
276
+ readonly "@angular/platform-browser": "^19.2.0";
277
+ readonly "@angular/platform-browser-dynamic": "^19.2.0";
278
+ readonly "@angular/router": "^19.2.0";
279
+ readonly "@angular/forms": "^19.2.0";
280
+ readonly "@angular/animations": "^19.2.0";
281
+ readonly "@angular-devkit/build-angular": "^19.2.0";
282
+ readonly "@angular/cli": "^19.2.0";
283
+ readonly "@angular/compiler-cli": "^19.2.0";
284
+ readonly zustand: "^5.0.5";
285
+ readonly jotai: "^2.12.5";
286
+ readonly nanostores: "^0.11.3";
287
+ readonly "@nanostores/react": "^0.8.4";
288
+ readonly "@reduxjs/toolkit": "^2.8.2";
289
+ readonly "react-redux": "^9.2.0";
290
+ readonly mobx: "^6.13.5";
291
+ readonly "mobx-react-lite": "^4.1.0";
292
+ readonly xstate: "^5.19.4";
293
+ readonly "@xstate/react": "^5.0.4";
294
+ readonly valtio: "^2.1.2";
295
+ readonly "@tanstack/store": "^0.8.0";
296
+ readonly "@tanstack/react-store": "^0.8.0";
297
+ readonly "@legendapp/state": "^3.0.0";
298
+ readonly "@legendapp/state-react": "^4.0.0";
299
+ readonly valibot: "^1.1.0";
300
+ readonly arktype: "^2.1.29";
301
+ readonly "@sinclair/typebox": "^0.34.31";
302
+ readonly typia: "^9.7.1";
303
+ readonly runtypes: "^7.0.4";
304
+ readonly formik: "^2.4.6";
305
+ readonly yup: "^1.6.1";
306
+ readonly "final-form": "^4.20.10";
307
+ readonly "react-final-form": "^6.5.9";
308
+ readonly "@conform-to/react": "^1.8.2";
309
+ readonly "@conform-to/zod": "^1.8.2";
310
+ readonly "@modular-forms/solid": "^0.25.1";
311
+ readonly "@modular-forms/qwik": "^0.29.1";
312
+ readonly "socket.io": "^4.8.1";
313
+ readonly "socket.io-client": "^4.8.1";
314
+ readonly partykit: "^0.0.111";
315
+ readonly partysocket: "^1.0.2";
316
+ readonly ably: "^2.6.3";
317
+ readonly pusher: "^5.2.0";
318
+ readonly "pusher-js": "^8.4.0-rc2";
319
+ readonly "@liveblocks/client": "^3.11.0";
320
+ readonly "@liveblocks/react": "^3.13.2";
321
+ readonly "@liveblocks/node": "^3.11.0";
322
+ readonly yjs: "^13.6.27";
323
+ readonly "y-websocket": "^2.1.0";
324
+ readonly "y-protocols": "^1.0.6";
325
+ readonly "@y-sweet/sdk": "^0.6.3";
326
+ readonly "@y-sweet/react": "^0.6.3";
327
+ readonly bullmq: "^5.34.8";
328
+ readonly ioredis: "^5.4.2";
329
+ readonly "@trigger.dev/sdk": "^4.1.1";
330
+ readonly inngest: "^3.33.0";
331
+ readonly "@temporalio/client": "^1.11.7";
332
+ readonly "@temporalio/worker": "^1.11.7";
333
+ readonly "@temporalio/workflow": "^1.11.7";
334
+ readonly "@temporalio/activity": "^1.11.7";
335
+ readonly jest: "^29.7.0";
336
+ readonly "@types/jest": "^29.5.14";
337
+ readonly "ts-jest": "^29.2.5";
338
+ readonly "@jest/globals": "^29.7.0";
339
+ readonly "jest-environment-jsdom": "^29.7.0";
340
+ readonly cypress: "^14.3.3";
341
+ readonly vitest: "^3.1.1";
342
+ readonly "@vitest/ui": "^3.1.1";
343
+ readonly "@vitest/coverage-v8": "^3.1.1";
344
+ readonly jsdom: "^26.0.0";
345
+ readonly "happy-dom": "^18.0.1";
346
+ readonly "@playwright/test": "^1.52.0";
347
+ readonly playwright: "^1.52.0";
348
+ readonly "@testing-library/dom": "^10.4.0";
349
+ readonly "@testing-library/react": "^16.2.0";
350
+ readonly "@testing-library/vue": "^8.1.0";
351
+ readonly "@testing-library/svelte": "^5.2.7";
352
+ readonly "@testing-library/jest-dom": "^6.6.3";
353
+ readonly "@testing-library/user-event": "^14.6.1";
354
+ readonly msw: "^2.7.0";
355
+ readonly storybook: "^9.0.15";
356
+ readonly "@storybook/react-vite": "^9.0.15";
357
+ readonly "@storybook/vue3-vite": "^9.0.15";
358
+ readonly "@storybook/svelte-vite": "^9.0.15";
359
+ readonly "@storybook/nextjs": "^9.0.15";
360
+ readonly "@storybook/addon-essentials": "^9.0.15";
361
+ readonly "@storybook/addon-interactions": "^9.0.15";
362
+ readonly "@storybook/test": "^9.0.15";
363
+ readonly motion: "^12.17.0";
364
+ readonly gsap: "^3.12.7";
365
+ readonly "@react-spring/web": "^9.7.5";
366
+ readonly "@react-spring/native": "^9.7.5";
367
+ readonly "@formkit/auto-animate": "^0.8.2";
368
+ readonly "lottie-react": "^2.4.1";
369
+ readonly "lottie-react-native": "^7.1.0";
370
+ readonly stripe: "^17.5.0";
371
+ readonly "@stripe/stripe-js": "^5.5.0";
372
+ readonly "@stripe/react-stripe-js": "^3.1.1";
373
+ readonly "@lemonsqueezy/lemonsqueezy.js": "^4.0.0";
374
+ readonly "@paddle/paddle-node-sdk": "^1.8.0";
375
+ readonly "@paddle/paddle-js": "^1.3.0";
376
+ readonly dodopayments: "^0.23.0";
377
+ readonly "dodopayments-checkout": "^0.2.1";
378
+ readonly uploadthing: "^7.8.0";
379
+ readonly "@uploadthing/react": "^7.3.0";
380
+ readonly "@uploadthing/svelte": "^7.3.0";
381
+ readonly "@uploadthing/vue": "^7.3.0";
382
+ readonly "@uploadthing/solid": "^7.3.0";
383
+ readonly "@uploadthing/nuxt": "^7.3.0";
384
+ readonly "@uploadthing/expo": "^7.3.0";
385
+ readonly filepond: "^4.32.10";
386
+ readonly "react-filepond": "^7.1.2";
387
+ readonly "svelte-filepond": "^1.0.2";
388
+ readonly "vue-filepond": "^7.0.4";
389
+ readonly "filepond-plugin-image-preview": "^4.6.12";
390
+ readonly "filepond-plugin-file-validate-type": "^1.2.9";
391
+ readonly "filepond-plugin-file-validate-size": "^2.2.8";
392
+ readonly "@uppy/core": "^4.4.0";
393
+ readonly "@uppy/dashboard": "^4.3.2";
394
+ readonly "@uppy/drag-drop": "^4.1.1";
395
+ readonly "@uppy/progress-bar": "^4.2.0";
396
+ readonly "@uppy/xhr-upload": "^4.3.0";
397
+ readonly "@uppy/tus": "^4.2.0";
398
+ readonly "@uppy/react": "^4.1.0";
399
+ readonly "@uppy/svelte": "^4.1.0";
400
+ readonly "@uppy/vue": "^4.1.0";
401
+ readonly "@uppy/angular": "^0.8.0";
402
+ readonly "@redwoodjs/core": "^8.8.0";
403
+ readonly "@redwoodjs/web": "^8.6.1";
404
+ readonly "@redwoodjs/api": "^8.6.1";
405
+ readonly "@redwoodjs/router": "^8.6.1";
406
+ readonly "@redwoodjs/forms": "^8.6.1";
407
+ readonly "@redwoodjs/graphql-server": "^8.6.1";
408
+ readonly "@redwoodjs/vite": "^8.6.1";
409
+ readonly "@redwoodjs/project-config": "^8.6.1";
410
+ readonly preact: "^10.25.4";
411
+ readonly "preact-render-to-string": "^6.5.12";
412
+ readonly pino: "^9.6.0";
413
+ readonly "pino-pretty": "^13.0.0";
414
+ readonly "pino-http": "^10.4.0";
415
+ readonly winston: "^3.19.0";
416
+ readonly "@opentelemetry/api": "^1.9.0";
417
+ readonly "@opentelemetry/sdk-node": "^0.57.2";
418
+ readonly "@opentelemetry/auto-instrumentations-node": "^0.56.1";
419
+ readonly "@opentelemetry/exporter-trace-otlp-http": "^0.57.2";
420
+ readonly "@opentelemetry/exporter-metrics-otlp-http": "^0.57.2";
421
+ readonly "@opentelemetry/resources": "^1.30.1";
422
+ readonly "@opentelemetry/semantic-conventions": "^1.30.0";
423
+ readonly payload: "^3.14.1";
424
+ readonly "@payloadcms/next": "^3.14.1";
425
+ readonly "@payloadcms/richtext-lexical": "^3.14.1";
426
+ readonly "@payloadcms/db-postgres": "^3.14.1";
427
+ readonly "@payloadcms/db-mongodb": "^3.14.1";
428
+ readonly "@payloadcms/db-sqlite": "^3.14.1";
429
+ readonly "@payloadcms/plugin-seo": "^3.14.1";
430
+ readonly "@payloadcms/storage-s3": "^3.14.1";
431
+ readonly sanity: "^3.82.0";
432
+ readonly "next-sanity": "^9.11.2";
433
+ readonly "@sanity/image-url": "^1.1.0";
434
+ readonly "@sanity/vision": "^3.82.0";
435
+ readonly "@strapi/client": "^1.2.1";
436
+ readonly qs: "^6.14.0";
437
+ readonly "@upstash/redis": "^1.34.3";
438
+ };
439
+ type AvailableDependencies = keyof typeof dependencyVersionMap;
440
+ //#endregion
441
+ export { type AvailableDependencies, EMBEDDED_TEMPLATES, GeneratorOptions, GeneratorResult, Handlebars, TEMPLATE_COUNT, type TemplateData, VirtualDirectory, VirtualFile, VirtualFileSystem, VirtualFileTree, VirtualNode, dependencyVersionMap, generateVirtualProject, isBinaryFile, processFileContent, processTemplateString, transformFilename };
442
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/core/virtual-fs.ts","../src/core/template-processor.ts","../src/template-handlers/utils.ts","../src/generator.ts","../src/templates.generated.ts","../src/utils/add-deps.ts"],"sourcesContent":[],"mappings":";;;;;;cAOa,iBAAA;;;;;EAAA,SAAA,CAAA,QAAA,EAAiB,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,MAAA,CAAA,EAAA,IAAA;EA6Ea,QAAA,CAAA,QAAA,EAAA,MAAA,CAAA,EAAA,MAAA,GAAA,SAAA;EAkCX,MAAA,CAAA,IAAA,EAAA,MAAA,CAAA,EAAA,OAAA;EAAgB,UAcrC,CAAA,QAAA,EAAA,MAAA,CAAA,EAAA,OAAA;EAAA,eAGJ,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,OAAA;EAAA,KAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,IAAA;;;2CAnDoC;ECxE3B,SAAA,CAAA,QAAA,EAAA,MAAqB,EAAA,IAAA,EAAA,OAA2B,EAAA,MAAa,CAAA,EAAA,MAAA,CAAA,EAAA,IAAA;EAI7D,WAAA,CAAA,CAAA,EAAY,MAAA,EAAA;EAIZ,iBAAA,CAAA,CAAA,EAAiB,MAAA,EAAA;EAUjB,YAAA,CAAA,CAAA,EAAA,MAAkB;;6BDwFF;;EEhHpB,SAAA,CAAA,CAAA,EFgHoC,MAAA,CAcrC,ME9HmB;WF8HnB,MAAA,CAGJ;;;EGlGe,QAAA,YAAA;EAAgC,QAAA,aAAA;;;;iBFzBtC,qBAAA,2BAAgD;iBAIhD,YAAA;iBAIA,iBAAA;iBAUA,kBAAA,6CAGL;;;KC3BC,YAAA,GAAe;;;iBC+BL,sBAAA,UAAgC,mBAAmB,QAAQ;;;cClCpE,oBAAoB;cA09vCpB,cAAA;;;cCh9vCA;;ELNA,SAAA,aAAiB,EAAA,QAAA;EA6Ea,SAAA,mBAAA,EAAA,QAAA;EAkCX,SAAA,eAAA,EAAA,SAAA;EAAgB,SAcrC,oBAAA,EAAA,SAAA;EAAA,SAGJ,6BAAA,EAAA,SAAA;EAAA,SAAA,mBAAA,EAAA,UAAA;;;;EC3HS,SAAA,sBAAqB,EAAA,QAA2B;EAIhD,SAAA,aAAY,EAAA,SAAA;EAIZ,SAAA,aAAiB,EAAA,SAAA;EAUjB,SAAA,uBAAkB,EAGvB,SAAA;;;;EC3BC,SAAA,EAAA,EAAA,SAAY;;;;EC+BF,SAAA,MAAA,EAAA,SAAsB;EAAU,SAAA,gBAAA,EAAA,QAAA;EAA2B,SAAA,MAAA,EAAA,QAAA;EAAR,SAAA,oBAAA,EAAA,QAAA;EAAO,SAAA,sBAAA,EAAA,QAAA;;;;EClCnE,SAAA,oBAw9vCX,EAAA,QAx9vCkC;EA09vCvB,SAAA,6BAAc,EAAA,QAAA;;;;ECh9vCd,SAAA,uBAwhBH,EAAA,SAAA;EAEE,SAAA,MAAA,EAAA,SAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAArB,qBAAA,gBAAqC"}