@deessejs/cli 0.6.43 → 0.6.45

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 (50) hide show
  1. package/bin/deesse.js +3 -2
  2. package/dist/commands/db/index.d.ts +2 -0
  3. package/dist/commands/db/index.d.ts.map +1 -1
  4. package/dist/commands/db/index.js +8 -142
  5. package/dist/commands/db/index.js.map +1 -1
  6. package/dist/index.d.ts +3 -0
  7. package/dist/index.js +18 -164
  8. package/dist/index.js.map +1 -1
  9. package/dist/utils/config.d.ts +8 -0
  10. package/dist/utils/config.d.ts.map +1 -0
  11. package/dist/utils/config.js +10 -0
  12. package/dist/utils/config.js.map +1 -0
  13. package/package.json +54 -53
  14. package/dist/commands/admin/create.d.ts.map +0 -1
  15. package/dist/commands/admin/create.js +0 -166
  16. package/dist/commands/admin/create.js.map +0 -1
  17. package/dist/commands/admin.d.ts.map +0 -1
  18. package/dist/commands/admin.js +0 -22
  19. package/dist/commands/admin.js.map +0 -1
  20. package/dist/commands/db/generate.d.ts +0 -19
  21. package/dist/commands/db/generate.d.ts.map +0 -1
  22. package/dist/commands/db/generate.js +0 -59
  23. package/dist/commands/db/generate.js.map +0 -1
  24. package/dist/commands/db/migrate.d.ts.map +0 -1
  25. package/dist/commands/db/migrate.js +0 -75
  26. package/dist/commands/db/migrate.js.map +0 -1
  27. package/dist/commands/db/push.d.ts.map +0 -1
  28. package/dist/commands/db/push.js +0 -39
  29. package/dist/commands/db/push.js.map +0 -1
  30. package/dist/lib/admin/create.d.ts +0 -29
  31. package/dist/lib/admin/create.d.ts.map +0 -1
  32. package/dist/lib/admin/create.js +0 -54
  33. package/dist/lib/admin/create.js.map +0 -1
  34. package/dist/lib/config/loader.d.ts +0 -77
  35. package/dist/lib/config/loader.d.ts.map +0 -1
  36. package/dist/lib/config/loader.js +0 -199
  37. package/dist/lib/config/loader.js.map +0 -1
  38. package/dist/lib/db/auth-schema.d.ts +0 -28
  39. package/dist/lib/db/auth-schema.d.ts.map +0 -1
  40. package/dist/lib/db/auth-schema.js +0 -116
  41. package/dist/lib/db/auth-schema.js.map +0 -1
  42. package/dist/lib/db/schema.d.ts.map +0 -1
  43. package/dist/lib/db/schema.js +0 -144
  44. package/dist/lib/db/schema.js.map +0 -1
  45. package/dist/lib/index.d.ts.map +0 -1
  46. package/dist/lib/index.js +0 -6
  47. package/dist/lib/index.js.map +0 -1
  48. package/dist/utils/schema-loader.d.ts.map +0 -1
  49. package/dist/utils/schema-loader.js +0 -46
  50. package/dist/utils/schema-loader.js.map +0 -1
@@ -1,199 +0,0 @@
1
- /**
2
- * Configuration loader for Deesse projects
3
- *
4
- * Handles loading and processing of deesse.config.ts files.
5
- * Uses tsx to support TypeScript imports natively.
6
- */
7
- import * as path from 'node:path';
8
- import { createRequire } from 'node:module';
9
- import { execSync } from 'node:child_process';
10
- const CONFIG_PATHS = ['src/deesse.config.ts', 'deesse.config.ts', 'config/deesse.ts'];
11
- export class ConfigLoaderError extends Error {
12
- code;
13
- constructor(message, code) {
14
- super(message);
15
- this.code = code;
16
- this.name = 'ConfigLoaderError';
17
- }
18
- }
19
- /**
20
- * Load the raw config from a deesse.config.ts file using tsx
21
- *
22
- * Uses tsx to execute the config file directly and export the config object.
23
- * This properly handles TypeScript imports and module context.
24
- */
25
- export async function loadRawConfig(cwd) {
26
- let configPath = '';
27
- for (const configFile of CONFIG_PATHS) {
28
- configPath = path.resolve(cwd, configFile);
29
- try {
30
- // Try to access the file
31
- const { access } = await import('node:fs/promises');
32
- await access(configPath);
33
- // File exists, break out of loop
34
- break;
35
- }
36
- catch {
37
- // Try next path
38
- configPath = '';
39
- }
40
- }
41
- if (!configPath) {
42
- throw new ConfigLoaderError(`Config file not found. Searched paths:\n${CONFIG_PATHS.map((p) => ` - ${p}`).join('\n')}\nRun 'deesse init' to create a new project.`);
43
- }
44
- // Use tsx to load and execute the TypeScript config file directly
45
- // The config file is run as a module, and we export the config to stdout
46
- const loaderScript = `
47
- import { pathToFileURL } from 'node:url';
48
- const configPath = pathToFileURL(${JSON.stringify(configPath)}).href;
49
- const mod = await import(configPath);
50
- const config = mod.config || mod.default;
51
- if (!config) {
52
- console.error('No config export found');
53
- process.exit(1);
54
- }
55
- // Serialize to JSON (handles plain data, not functions)
56
- console.log(JSON.stringify(config));
57
- `;
58
- try {
59
- // Execute with tsx, preserving the current environment
60
- const result = execSync(`node --import tsx -e ${JSON.stringify(loaderScript)}`, {
61
- cwd,
62
- encoding: 'utf-8',
63
- stdio: ['pipe', 'pipe', 'pipe'],
64
- env: { ...process.env },
65
- });
66
- const rawConfig = JSON.parse(result.trim());
67
- if (!rawConfig) {
68
- throw new ConfigLoaderError(`No config found in ${configPath}`);
69
- }
70
- return { config: rawConfig, configPath };
71
- }
72
- catch (error) {
73
- const err = error;
74
- throw new ConfigLoaderError(`Failed to load config from ${configPath}: ${err.stderr || err.message || String(error)}`);
75
- }
76
- }
77
- /**
78
- * Process raw config via defineConfig to get InternalConfig
79
- */
80
- export function processConfig(rawConfig) {
81
- const require = createRequire(import.meta.url);
82
- try {
83
- const deesse = require('deesse');
84
- if (typeof deesse.defineConfig !== 'function') {
85
- throw new ConfigLoaderError('deesse package does not export defineConfig');
86
- }
87
- return deesse.defineConfig(rawConfig);
88
- }
89
- catch (error) {
90
- if (error instanceof ConfigLoaderError) {
91
- throw error;
92
- }
93
- throw new ConfigLoaderError(`Failed to process config: ${error instanceof Error ? error.message : String(error)}`);
94
- }
95
- }
96
- /**
97
- * Load and process a deesse config
98
- */
99
- export async function loadConfig(cwd) {
100
- const { config: rawConfig, configPath } = await loadRawConfig(cwd);
101
- const processedConfig = processConfig(rawConfig);
102
- return { rawConfig, processedConfig, configPath };
103
- }
104
- /**
105
- * Load minimal config without executing the config file
106
- *
107
- * Extracts only secret and auth.baseURL via regex to avoid loading
108
- * pages and other runtime-only config that would fail during CLI use.
109
- */
110
- export async function loadMinimalConfig(cwd) {
111
- const { configPath } = await findConfigPath(cwd);
112
- // Read file content directly
113
- const { readFile } = await import('node:fs/promises');
114
- const content = await readFile(configPath, 'utf-8');
115
- const config = { secret: '' };
116
- // Extract secret: matches `secret: process.env.DEESSE_SECRET!` or similar patterns
117
- const secretMatch = content.match(/secret\s*:\s*process\.env\.(\w+)!/);
118
- if (secretMatch) {
119
- const envVar = secretMatch[1];
120
- const value = process.env[envVar];
121
- if (!value) {
122
- throw new ConfigLoaderError(`Environment variable ${envVar} is not set. Make sure your .env file contains ${envVar}`);
123
- }
124
- config.secret = value;
125
- }
126
- else {
127
- // Try matching `secret: 'value'` or `secret: "value"`
128
- const secretLiteralMatch = content.match(/secret\s*:\s*['"]([^'"]+)['"]/);
129
- if (secretLiteralMatch) {
130
- config.secret = secretLiteralMatch[1];
131
- }
132
- }
133
- if (!config.secret) {
134
- throw new ConfigLoaderError(`Could not extract 'secret' from ${configPath}. ` +
135
- 'Make sure your config has: secret: process.env.DEESSE_SECRET!');
136
- }
137
- // Extract auth.baseURL: matches `baseURL: process.env.VAR || 'default'` or `baseURL: 'https://...'`
138
- const baseURLMatch = content.match(/baseURL\s*:\s*(?:process\.env\.(\w+)\s*\|\|\s*)?['"]([^'"]+)['"]/);
139
- if (baseURLMatch) {
140
- const envVar = baseURLMatch[1];
141
- const defaultValue = baseURLMatch[2];
142
- config.auth = {
143
- baseURL: envVar && process.env[envVar] ? process.env[envVar] : defaultValue,
144
- };
145
- }
146
- return { config, configPath };
147
- }
148
- /**
149
- * Find the config file path without loading content
150
- */
151
- async function findConfigPath(cwd) {
152
- for (const configFile of CONFIG_PATHS) {
153
- const configPath = path.resolve(cwd, configFile);
154
- try {
155
- const { access } = await import('node:fs/promises');
156
- await access(configPath);
157
- return { configPath };
158
- }
159
- catch {
160
- // Try next path
161
- }
162
- }
163
- throw new ConfigLoaderError(`Config file not found. Searched paths:\n${CONFIG_PATHS.map((p) => ` - ${p}`).join('\n')}\nRun 'deesse init' to create a new project.`);
164
- }
165
- /**
166
- * Check if the admin plugin is configured in the config
167
- */
168
- export function hasAdminPlugin(config) {
169
- if (!config.auth?.plugins) {
170
- return false;
171
- }
172
- return config.auth.plugins.some((plugin) => {
173
- // Check if plugin has a name property indicating it's the admin plugin
174
- if (plugin && typeof plugin === 'object' && 'name' in plugin) {
175
- const name = plugin.name;
176
- return name === 'admin' || String(name).includes('admin');
177
- }
178
- // Fallback to string representation check
179
- const pluginStr = String(plugin);
180
- return pluginStr.includes('admin') || pluginStr.includes('Admin');
181
- });
182
- }
183
- /**
184
- * Verify admin plugin is configured, throw if not
185
- */
186
- export function verifyAdminPlugin(config) {
187
- if (!hasAdminPlugin(config)) {
188
- throw new ConfigLoaderError('Admin plugin not configured. The admin plugin is automatically included by defineConfig,\n' +
189
- 'but your config must have an auth section configured.\n\n' +
190
- 'Example deesse.config.ts:\n' +
191
- ' export const config = defineConfig({\n' +
192
- ' auth: {\n' +
193
- ' baseURL: process.env.NEXT_PUBLIC_BASE_URL,\n' +
194
- ' },\n' +
195
- ' // ... other config\n' +
196
- ' });');
197
- }
198
- }
199
- //# sourceMappingURL=loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/lib/config/loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,MAAM,YAAY,GAAG,CAAC,sBAAsB,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;AAsBtF,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACG;IAA7C,YAAY,OAAe,EAAkB,IAAa;QACxD,KAAK,CAAC,OAAO,CAAC,CAAC;QAD4B,SAAI,GAAJ,IAAI,CAAS;QAExD,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAgBD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAW;IAC7C,IAAI,UAAU,GAAG,EAAE,CAAC;IAEpB,KAAK,MAAM,UAAU,IAAI,YAAY,EAAE,CAAC;QACtC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAC3C,IAAI,CAAC;YACH,yBAAyB;YACzB,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;YACpD,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;YACzB,iCAAiC;YACjC,MAAM;QACR,CAAC;QAAC,MAAM,CAAC;YACP,gBAAgB;YAChB,UAAU,GAAG,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;IAED,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,iBAAiB,CACzB,2CAA2C,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,8CAA8C,CACxI,CAAC;IACJ,CAAC;IAED,kEAAkE;IAClE,yEAAyE;IACzE,MAAM,YAAY,GAAG;;mCAEY,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;;;;;;;;;CAS5D,CAAC;IAEA,IAAI,CAAC;QACH,uDAAuD;QACvD,MAAM,MAAM,GAAG,QAAQ,CAAC,wBAAwB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,EAAE;YAC9E,GAAG;YACH,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/B,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;SACxB,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAE5C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,iBAAiB,CAAC,sBAAsB,UAAU,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,SAAmB,EAAE,UAAU,EAAE,CAAC;IACrD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,GAAG,GAAG,KAA8C,CAAC;QAC3D,MAAM,IAAI,iBAAiB,CACzB,8BAA8B,UAAU,KAAK,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAC1F,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,SAAiB;IAC7C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE/C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,OAAO,MAAM,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;YAC9C,MAAM,IAAI,iBAAiB,CAAC,6CAA6C,CAAC,CAAC;QAC7E,CAAC;QACD,OAAO,MAAM,CAAC,YAAY,CAAC,SAAS,CAAmB,CAAC;IAC1D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;YACvC,MAAM,KAAK,CAAC;QACd,CAAC;QACD,MAAM,IAAI,iBAAiB,CACzB,6BAA6B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACtF,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAW;IAC1C,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;IACnE,MAAM,eAAe,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IACjD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC;AACpD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,GAAW;IACjD,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;IAEjD,6BAA6B;IAC7B,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAEpD,MAAM,MAAM,GAAkB,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAE7C,mFAAmF;IACnF,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvE,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,iBAAiB,CACzB,wBAAwB,MAAM,kDAAkD,MAAM,EAAE,CACzF,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;IACxB,CAAC;SAAM,CAAC;QACN,sDAAsD;QACtD,MAAM,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAC1E,IAAI,kBAAkB,EAAE,CAAC;YACvB,MAAM,CAAC,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,IAAI,iBAAiB,CACzB,mCAAmC,UAAU,IAAI;YAC/C,+DAA+D,CAClE,CAAC;IACJ,CAAC;IAED,oGAAoG;IACpG,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACvG,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,IAAI,GAAG;YACZ,OAAO,EAAE,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY;SAC5E,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,cAAc,CAAC,GAAW;IACvC,KAAK,MAAM,UAAU,IAAI,YAAY,EAAE,CAAC;QACtC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QACjD,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;YACpD,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;YACzB,OAAO,EAAE,UAAU,EAAE,CAAC;QACxB,CAAC;QAAC,MAAM,CAAC;YACP,gBAAgB;QAClB,CAAC;IACH,CAAC;IAED,MAAM,IAAI,iBAAiB,CACzB,2CAA2C,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,8CAA8C,CACxI,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,MAAsB;IACnD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAe,EAAE,EAAE;QAClD,uEAAuE;QACvE,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;YAC7D,MAAM,IAAI,GAAI,MAA4B,CAAC,IAAI,CAAC;YAChD,OAAO,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC5D,CAAC;QACD,0CAA0C;QAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QACjC,OAAO,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAsB;IACtD,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,iBAAiB,CACzB,4FAA4F;YAC1F,2DAA2D;YAC3D,6BAA6B;YAC7B,0CAA0C;YAC1C,eAAe;YACf,oDAAoD;YACpD,UAAU;YACV,2BAA2B;YAC3B,OAAO,CACV,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -1,28 +0,0 @@
1
- /**
2
- * Better-Auth schema generation for db commands
3
- *
4
- * Since auth is mandatory in DeesseJS, db:generate and db:push
5
- * must also generate the auth schema tables.
6
- *
7
- * Uses the programmatic API (generateDrizzleSchema from auth/api)
8
- * instead of spawning npx auth@latest generate.
9
- */
10
- /**
11
- * Generate the better-auth schema using the programmatic API
12
- *
13
- * This calls generateDrizzleSchema() directly to generate the auth tables
14
- * (user, session, account, verification) without needing a config file.
15
- *
16
- * @param cwd - Working directory
17
- * @param plugins - Array of better-auth plugins to include in schema generation
18
- */
19
- export declare function generateAuthSchema(cwd?: string, plugins?: any[]): Promise<void>;
20
- /**
21
- * Check if auth schema file exists
22
- */
23
- export declare function authSchemaExists(cwd?: string): Promise<boolean>;
24
- /**
25
- * Get the path to the auth schema file
26
- */
27
- export declare function getAuthSchemaPath(cwd?: string): string;
28
- //# sourceMappingURL=auth-schema.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth-schema.d.ts","sourceRoot":"","sources":["../../../src/lib/db/auth-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA8DH;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,GAAE,MAAsB,EAE3B,OAAO,GAAE,GAAG,EAAO,GAClB,OAAO,CAAC,IAAI,CAAC,CAiDf;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,OAAO,CAAC,CAQpF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,GAAE,MAAsB,GAAG,MAAM,CAErE"}
@@ -1,116 +0,0 @@
1
- /**
2
- * Better-Auth schema generation for db commands
3
- *
4
- * Since auth is mandatory in DeesseJS, db:generate and db:push
5
- * must also generate the auth schema tables.
6
- *
7
- * Uses the programmatic API (generateDrizzleSchema from auth/api)
8
- * instead of spawning npx auth@latest generate.
9
- */
10
- import { writeFile, access, mkdir } from 'node:fs/promises';
11
- import { existsSync } from 'node:fs';
12
- import * as path from 'node:path';
13
- const AUTH_SCHEMA_OUTPUT = './src/db/auth-schema.ts';
14
- async function generateDrizzleSchemaInternal(
15
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
16
- opts) {
17
- // Dynamic import to get the generator
18
- const { generateDrizzleSchema } = await import('auth/api');
19
- return generateDrizzleSchema(opts);
20
- }
21
- /**
22
- * Create a mock adapter for schema generation
23
- */
24
- function createMockAdapter(dialect) {
25
- // Map postgresql to pg for drizzle
26
- const provider = dialect === 'postgresql' ? 'pg' : dialect;
27
- return {
28
- id: 'drizzle',
29
- options: {
30
- adapterConfig: {
31
- adapterId: 'drizzle',
32
- },
33
- provider,
34
- },
35
- };
36
- }
37
- /**
38
- * Ensure a directory exists
39
- */
40
- async function ensureDir(dirPath) {
41
- if (!existsSync(dirPath)) {
42
- await mkdir(dirPath, { recursive: true });
43
- }
44
- }
45
- /**
46
- * Generate the better-auth schema using the programmatic API
47
- *
48
- * This calls generateDrizzleSchema() directly to generate the auth tables
49
- * (user, session, account, verification) without needing a config file.
50
- *
51
- * @param cwd - Working directory
52
- * @param plugins - Array of better-auth plugins to include in schema generation
53
- */
54
- export async function generateAuthSchema(cwd = process.cwd(),
55
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
56
- plugins = []) {
57
- const outputPath = path.resolve(cwd, AUTH_SCHEMA_OUTPUT);
58
- console.warn('Generating better-auth schema...');
59
- try {
60
- // Create mock adapter for drizzle with postgresql dialect
61
- const adapter = createMockAdapter('postgresql');
62
- // Generate the schema using the programmatic API
63
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
64
- const schema = await generateDrizzleSchemaInternal({
65
- file: outputPath,
66
- adapter,
67
- options: {
68
- database: {},
69
- plugins,
70
- },
71
- });
72
- if (!schema.code) {
73
- console.warn('Auth schema is already up to date.');
74
- return;
75
- }
76
- // Ensure parent directory exists
77
- const parentDir = path.dirname(outputPath);
78
- await ensureDir(parentDir);
79
- // Write the generated schema to file
80
- await writeFile(outputPath, schema.code, 'utf-8');
81
- // Append schema export (combined object of all auth tables)
82
- // This is needed because generateDrizzleSchema exports named tables,
83
- // but drizzle expects a schema object with all tables
84
- // Named 'schema' to match drizzle-kit's expectation
85
- const schemaExport = `\nexport const schema = { user, session, account, verification };\n`;
86
- await writeFile(outputPath, schemaExport, { flag: 'a' });
87
- console.warn(`Auth schema generated: ${outputPath}`);
88
- }
89
- catch (error) {
90
- if (error.code === 'ENOENT') {
91
- throw new Error('better-auth schema generation failed. Please ensure better-auth is installed:\n' +
92
- ' npm install better-auth');
93
- }
94
- throw error;
95
- }
96
- }
97
- /**
98
- * Check if auth schema file exists
99
- */
100
- export async function authSchemaExists(cwd = process.cwd()) {
101
- const outputPath = path.resolve(cwd, AUTH_SCHEMA_OUTPUT);
102
- try {
103
- await access(outputPath);
104
- return true;
105
- }
106
- catch {
107
- return false;
108
- }
109
- }
110
- /**
111
- * Get the path to the auth schema file
112
- */
113
- export function getAuthSchemaPath(cwd = process.cwd()) {
114
- return path.resolve(cwd, AUTH_SCHEMA_OUTPUT);
115
- }
116
- //# sourceMappingURL=auth-schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth-schema.js","sourceRoot":"","sources":["../../../src/lib/db/auth-schema.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/lib/db/schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,QAAA,MAAM,mBAAmB,uBAAuB,CAAC;AACjD,QAAA,MAAM,2BAA2B,wBAAwB,CAAC;AAG1D,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,CAAC;AAE5D,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,iBAAkB,SAAQ,KAAK;aACG,IAAI,CAAC,EAAE,MAAM;gBAA9C,OAAO,EAAE,MAAM,EAAkB,IAAI,CAAC,EAAE,MAAM,YAAA;CAI3D;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAwCzF;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAanF;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,OAAO,CAAC,CAQhF;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,OAAO,CAAC,CAQvF;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBpF;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBpF"}
@@ -1,144 +0,0 @@
1
- /**
2
- * Drizzle schema loader
3
- *
4
- * Dynamically imports the user's schema from ./src/db/schema.ts
5
- * This is required because drizzle-kit's programmatic API takes schema objects,
6
- * not file paths.
7
- */
8
- import * as path from 'node:path';
9
- import { createRequire } from 'node:module';
10
- import { writeFile, access, mkdir } from 'node:fs/promises';
11
- import { existsSync } from 'node:fs';
12
- const DEFAULT_SCHEMA_PATH = './src/db/schema.ts';
13
- const DEFAULT_DRIZZLE_CONFIG_PATH = './drizzle.config.ts';
14
- const DEFAULT_SCHEMA_DIR = './src/db';
15
- export { DEFAULT_SCHEMA_PATH, DEFAULT_DRIZZLE_CONFIG_PATH };
16
- export class SchemaLoaderError extends Error {
17
- code;
18
- constructor(message, code) {
19
- super(message);
20
- this.code = code;
21
- this.name = 'SchemaLoaderError';
22
- }
23
- }
24
- /**
25
- * Load Drizzle schema objects from the user's schema file
26
- */
27
- export async function loadSchema(cwd = process.cwd()) {
28
- const schemaPath = path.resolve(cwd, DEFAULT_SCHEMA_PATH);
29
- const require = createRequire(import.meta.url);
30
- try {
31
- const schemaModule = require(schemaPath);
32
- // Extract all exports that are schema objects (tables, etc.)
33
- const schema = {};
34
- for (const [key, value] of Object.entries(schemaModule)) {
35
- // Skip non-schema exports (like imports, types, etc.)
36
- if (key === '__esModule' || key === 'default')
37
- continue;
38
- if (typeof value !== 'object' && typeof value !== 'function')
39
- continue;
40
- schema[key] = value;
41
- }
42
- if (Object.keys(schema).length === 0) {
43
- throw new SchemaLoaderError(`No schema objects found in ${DEFAULT_SCHEMA_PATH}.\n` +
44
- `Please export your Drizzle tables from this file.`);
45
- }
46
- return { schema, schemaPath };
47
- }
48
- catch (error) {
49
- if (error instanceof SchemaLoaderError) {
50
- throw error;
51
- }
52
- const err = error;
53
- if (err.code === 'ENOENT') {
54
- throw new SchemaLoaderError(`Schema file not found: ${DEFAULT_SCHEMA_PATH}\n` +
55
- `Please create this file and export your Drizzle tables.`);
56
- }
57
- throw error;
58
- }
59
- }
60
- /**
61
- * Verify the schema file exists
62
- */
63
- export async function verifySchemaPath(cwd = process.cwd()) {
64
- const { stat } = await import('node:fs/promises');
65
- const schemaPath = path.resolve(cwd, DEFAULT_SCHEMA_PATH);
66
- try {
67
- await stat(schemaPath);
68
- return schemaPath;
69
- }
70
- catch {
71
- throw new SchemaLoaderError(`Schema file not found: ${DEFAULT_SCHEMA_PATH}\n` +
72
- `Please create this file and export your Drizzle tables.`);
73
- }
74
- }
75
- /**
76
- * Check if schema file exists
77
- */
78
- export async function schemaExists(cwd = process.cwd()) {
79
- const schemaPath = path.resolve(cwd, DEFAULT_SCHEMA_PATH);
80
- try {
81
- await access(schemaPath);
82
- return true;
83
- }
84
- catch {
85
- return false;
86
- }
87
- }
88
- /**
89
- * Check if drizzle config exists
90
- */
91
- export async function drizzleConfigExists(cwd = process.cwd()) {
92
- const configPath = path.resolve(cwd, DEFAULT_DRIZZLE_CONFIG_PATH);
93
- try {
94
- await access(configPath);
95
- return true;
96
- }
97
- catch {
98
- return false;
99
- }
100
- }
101
- /**
102
- * Create the default schema file with auth schema import
103
- */
104
- export async function createDefaultSchema(cwd = process.cwd()) {
105
- const schemaDir = path.resolve(cwd, DEFAULT_SCHEMA_DIR);
106
- const schemaPath = path.resolve(cwd, DEFAULT_SCHEMA_PATH);
107
- // Ensure src/db directory exists
108
- if (!existsSync(schemaDir)) {
109
- await mkdir(schemaDir, { recursive: true });
110
- }
111
- // Auth schema is in src/db/ next to schema.ts, so same directory import
112
- const schemaContent = `import { authSchema } from './auth-schema';
113
-
114
- export const schema = {
115
- ...authSchema,
116
- // your tables here
117
- };
118
- `;
119
- await writeFile(schemaPath, schemaContent, 'utf-8');
120
- console.warn(`Created default schema: ${schemaPath}`);
121
- }
122
- /**
123
- * Create the default drizzle config file
124
- */
125
- export async function createDrizzleConfig(cwd = process.cwd()) {
126
- const configPath = path.resolve(cwd, DEFAULT_DRIZZLE_CONFIG_PATH);
127
- // Point directly to auth-schema.ts which now exports 'schema'
128
- const configContent = `import 'dotenv/config';
129
- import { defineConfig } from 'drizzle-kit';
130
-
131
- export default defineConfig({
132
- out: './drizzle',
133
- schema: './src/db/auth-schema.ts',
134
- dialect: 'postgresql',
135
- dbCredentials: {
136
- url: process.env.DATABASE_URL!,
137
- },
138
- });
139
- `;
140
- // Always overwrite - drizzle-kit requires the correct schema path
141
- await writeFile(configPath, configContent, 'utf-8');
142
- console.warn(`Created/Updated drizzle config: ${configPath}`);
143
- }
144
- //# sourceMappingURL=schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/lib/db/schema.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AACA,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC"}
package/dist/lib/index.js DELETED
@@ -1,6 +0,0 @@
1
- // Backend library exports
2
- export * from './admin/create.js';
3
- export * from './config/loader.js';
4
- export * from './db/schema.js';
5
- export * from './db/auth-schema.js';
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema-loader.d.ts","sourceRoot":"","sources":["../../src/utils/schema-loader.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,QAAA,MAAM,WAAW,uBAAuB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,CAAC;AAEvB,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,kBAAkB,CAAC,CA2B9D;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,CAaxD"}
@@ -1,46 +0,0 @@
1
- /**
2
- * Schema loader utility
3
- *
4
- * Dynamically imports the user's schema from ./src/db/schema.ts
5
- * This is required because drizzle-kit's programmatic API takes schema objects,
6
- * not file paths.
7
- */
8
- import * as path from 'node:path';
9
- import { createRequire } from 'node:module';
10
- const SCHEMA_PATH = './src/db/schema.ts';
11
- export { SCHEMA_PATH };
12
- export async function loadSchema() {
13
- const schemaPath = path.resolve(process.cwd(), SCHEMA_PATH);
14
- // Use createRequire to load the schema file
15
- // This handles both ESM and CJS modules correctly
16
- const require = createRequire(import.meta.url);
17
- const schemaModule = require(schemaPath);
18
- // Extract all exports that are schema objects (tables, etc.)
19
- const schema = {};
20
- for (const [key, value] of Object.entries(schemaModule)) {
21
- // Skip non-schema exports (like imports, types, etc.)
22
- if (key === '__esModule' || key === 'default')
23
- continue;
24
- if (typeof value !== 'object' && typeof value !== 'function')
25
- continue;
26
- schema[key] = value;
27
- }
28
- if (Object.keys(schema).length === 0) {
29
- throw new Error(`No schema objects found in ${SCHEMA_PATH}.\n` +
30
- `Please export your Drizzle tables from this file.`);
31
- }
32
- return { schema, schemaPath };
33
- }
34
- export async function verifySchemaPath() {
35
- const { stat } = await import('node:fs/promises');
36
- const schemaPath = path.resolve(process.cwd(), SCHEMA_PATH);
37
- try {
38
- await stat(schemaPath);
39
- return schemaPath;
40
- }
41
- catch {
42
- throw new Error(`Schema file not found: ${SCHEMA_PATH}\n` +
43
- `Please create this file and export your Drizzle tables.`);
44
- }
45
- }
46
- //# sourceMappingURL=schema-loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema-loader.js","sourceRoot":"","sources":["../../src/utils/schema-loader.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,GAAG,oBAAoB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,CAAC;AAOvB,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;IAE5D,4CAA4C;IAC5C,kDAAkD;IAClD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAEzC,6DAA6D;IAC7D,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QACxD,sDAAsD;QACtD,IAAI,GAAG,KAAK,YAAY,IAAI,GAAG,KAAK,SAAS;YAAE,SAAS;QACxD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU;YAAE,SAAS;QAEvE,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,8BAA8B,WAAW,KAAK;YAC9C,mDAAmD,CACpD,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;IAE5D,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC;QACvB,OAAO,UAAU,CAAC;IACpB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,0BAA0B,WAAW,IAAI;YACzC,yDAAyD,CAC1D,CAAC;IACJ,CAAC;AACH,CAAC"}