@beignet/cli 0.0.9 → 0.0.11

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 (76) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +70 -21
  3. package/dist/choices.d.ts +32 -3
  4. package/dist/choices.d.ts.map +1 -1
  5. package/dist/choices.js +54 -3
  6. package/dist/choices.js.map +1 -1
  7. package/dist/create-prompts.d.ts +5 -4
  8. package/dist/create-prompts.d.ts.map +1 -1
  9. package/dist/create-prompts.js +22 -4
  10. package/dist/create-prompts.js.map +1 -1
  11. package/dist/create.d.ts +7 -1
  12. package/dist/create.d.ts.map +1 -1
  13. package/dist/create.js +13 -3
  14. package/dist/create.js.map +1 -1
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +47 -6
  17. package/dist/index.js.map +1 -1
  18. package/dist/make.d.ts +21 -1
  19. package/dist/make.d.ts.map +1 -1
  20. package/dist/make.js +210 -37
  21. package/dist/make.js.map +1 -1
  22. package/dist/mcp.d.ts +19 -0
  23. package/dist/mcp.d.ts.map +1 -0
  24. package/dist/mcp.js +250 -0
  25. package/dist/mcp.js.map +1 -0
  26. package/dist/templates/agents.d.ts +14 -0
  27. package/dist/templates/agents.d.ts.map +1 -0
  28. package/dist/templates/agents.js +98 -0
  29. package/dist/templates/agents.js.map +1 -0
  30. package/dist/templates/base.d.ts.map +1 -1
  31. package/dist/templates/base.js +79 -9
  32. package/dist/templates/base.js.map +1 -1
  33. package/dist/templates/db/index.d.ts +21 -0
  34. package/dist/templates/db/index.d.ts.map +1 -0
  35. package/dist/templates/db/index.js +14 -0
  36. package/dist/templates/db/index.js.map +1 -0
  37. package/dist/templates/db/mysql.d.ts +4 -0
  38. package/dist/templates/db/mysql.d.ts.map +1 -0
  39. package/dist/templates/db/mysql.js +972 -0
  40. package/dist/templates/db/mysql.js.map +1 -0
  41. package/dist/templates/db/postgres.d.ts +4 -0
  42. package/dist/templates/db/postgres.d.ts.map +1 -0
  43. package/dist/templates/db/postgres.js +863 -0
  44. package/dist/templates/db/postgres.js.map +1 -0
  45. package/dist/templates/db/sqlite.d.ts +3 -0
  46. package/dist/templates/db/sqlite.d.ts.map +1 -0
  47. package/dist/templates/db/sqlite.js +878 -0
  48. package/dist/templates/db/sqlite.js.map +1 -0
  49. package/dist/templates/index.d.ts +5 -5
  50. package/dist/templates/index.d.ts.map +1 -1
  51. package/dist/templates/index.js +24 -20
  52. package/dist/templates/index.js.map +1 -1
  53. package/dist/templates/server.d.ts +3 -3
  54. package/dist/templates/server.d.ts.map +1 -1
  55. package/dist/templates/server.js +149 -97
  56. package/dist/templates/server.js.map +1 -1
  57. package/dist/templates/shared.d.ts +34 -1
  58. package/dist/templates/shared.d.ts.map +1 -1
  59. package/dist/templates/shared.js +45 -0
  60. package/dist/templates/shared.js.map +1 -1
  61. package/package.json +5 -3
  62. package/src/choices.ts +70 -3
  63. package/src/create-prompts.ts +25 -3
  64. package/src/create.ts +24 -2
  65. package/src/index.ts +58 -5
  66. package/src/make.ts +265 -34
  67. package/src/mcp.ts +367 -0
  68. package/src/templates/agents.ts +103 -0
  69. package/src/templates/base.ts +95 -9
  70. package/src/templates/db/index.ts +34 -0
  71. package/src/templates/db/mysql.ts +976 -0
  72. package/src/templates/db/postgres.ts +867 -0
  73. package/src/templates/{db.ts → db/sqlite.ts} +31 -152
  74. package/src/templates/index.ts +27 -19
  75. package/src/templates/server.ts +161 -97
  76. package/src/templates/shared.ts +90 -1
@@ -1,4 +1,8 @@
1
- import type { IntegrationName, PackageManager } from "../choices.js";
1
+ import type {
2
+ DatabaseName,
3
+ IntegrationName,
4
+ PackageManager,
5
+ } from "../choices.js";
2
6
 
3
7
  /**
4
8
  * One generated file emitted by the template generator.
@@ -20,6 +24,10 @@ export type TemplateContext = {
20
24
  */
21
25
  api: boolean;
22
26
  integrations: IntegrationName[];
27
+ /**
28
+ * Database backing the starter's Drizzle persistence layer.
29
+ */
30
+ database: DatabaseName;
23
31
  };
24
32
 
25
33
  export const externalVersions = {
@@ -40,12 +48,93 @@ export const externalVersions = {
40
48
  drizzleOrm: "^0.45.2",
41
49
  inngest: "^3.0.0",
42
50
  libsqlClient: "^0.14.0",
51
+ mysql2: "^3.12.0",
52
+ pg: "^8.13.0",
53
+ pglite: "^0.5.2",
43
54
  pino: "^9.7.0",
44
55
  resend: "^4.0.1",
56
+ typesPg: "^8.11.0",
45
57
  upstashRateLimit: "^2.0.0",
46
58
  upstashRedis: "^1.0.0",
47
59
  };
48
60
 
61
+ /**
62
+ * Dialect-specific names used when rendering database-aware templates.
63
+ */
64
+ export type DatabaseDescriptor = {
65
+ name: DatabaseName;
66
+ /** `@beignet/provider-db-drizzle` subpath for this dialect. */
67
+ subpath: "sqlite" | "postgres" | "mysql";
68
+ /** Pascal-case dialect token in provider API names, e.g. `createDrizzle${apiToken}UnitOfWork`. */
69
+ apiToken: "Sqlite" | "Postgres" | "Mysql";
70
+ /** Drizzle database seam type exported from the provider subpath. */
71
+ databaseType:
72
+ | "DrizzleSqliteDatabase"
73
+ | "DrizzlePostgresDatabase"
74
+ | "DrizzleMysqlDatabase";
75
+ /** Provider factory exported from the provider subpath. */
76
+ providerFactory:
77
+ | "createDrizzleSqliteProvider"
78
+ | "createDrizzlePostgresProvider"
79
+ | "createDrizzleMysqlProvider";
80
+ /** Provider instance const wired in `server/providers.ts`. */
81
+ providerInstance:
82
+ | "drizzleSqliteProvider"
83
+ | "drizzlePostgresProvider"
84
+ | "drizzleMysqlProvider";
85
+ /** Runtime provider name used as the `providerConfig` key. */
86
+ providerName: "drizzle-sqlite" | "drizzle-postgres" | "drizzle-mysql";
87
+ /** Connection URL env var read by the provider and app env schema. */
88
+ urlEnvVar: "SQLITE_DB_URL" | "POSTGRES_DB_URL" | "MYSQL_DB_URL";
89
+ /** `drizzle.config.ts` dialect string. */
90
+ drizzleKitDialect: "sqlite" | "postgresql" | "mysql";
91
+ /** Better Auth drizzle adapter provider string. */
92
+ betterAuthProvider: "sqlite" | "pg" | "mysql";
93
+ };
94
+
95
+ const databaseDescriptors: Record<DatabaseName, DatabaseDescriptor> = {
96
+ sqlite: {
97
+ name: "sqlite",
98
+ subpath: "sqlite",
99
+ apiToken: "Sqlite",
100
+ databaseType: "DrizzleSqliteDatabase",
101
+ providerFactory: "createDrizzleSqliteProvider",
102
+ providerInstance: "drizzleSqliteProvider",
103
+ providerName: "drizzle-sqlite",
104
+ urlEnvVar: "SQLITE_DB_URL",
105
+ drizzleKitDialect: "sqlite",
106
+ betterAuthProvider: "sqlite",
107
+ },
108
+ postgres: {
109
+ name: "postgres",
110
+ subpath: "postgres",
111
+ apiToken: "Postgres",
112
+ databaseType: "DrizzlePostgresDatabase",
113
+ providerFactory: "createDrizzlePostgresProvider",
114
+ providerInstance: "drizzlePostgresProvider",
115
+ providerName: "drizzle-postgres",
116
+ urlEnvVar: "POSTGRES_DB_URL",
117
+ drizzleKitDialect: "postgresql",
118
+ betterAuthProvider: "pg",
119
+ },
120
+ mysql: {
121
+ name: "mysql",
122
+ subpath: "mysql",
123
+ apiToken: "Mysql",
124
+ databaseType: "DrizzleMysqlDatabase",
125
+ providerFactory: "createDrizzleMysqlProvider",
126
+ providerInstance: "drizzleMysqlProvider",
127
+ providerName: "drizzle-mysql",
128
+ urlEnvVar: "MYSQL_DB_URL",
129
+ drizzleKitDialect: "mysql",
130
+ betterAuthProvider: "mysql",
131
+ },
132
+ };
133
+
134
+ export function databaseDescriptor(ctx: TemplateContext): DatabaseDescriptor {
135
+ return databaseDescriptors[ctx.database];
136
+ }
137
+
49
138
  export function packageRunner(ctx: TemplateContext): string {
50
139
  switch (ctx.packageManager) {
51
140
  case "npm":