@deessejs/cli 0.6.40 → 0.6.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/admin/create.d.ts.map +1 -1
- package/dist/commands/admin/create.js +24 -63
- package/dist/commands/admin/create.js.map +1 -1
- package/dist/commands/db/generate.d.ts +8 -0
- package/dist/commands/db/generate.d.ts.map +1 -1
- package/dist/commands/db/generate.js +34 -20
- package/dist/commands/db/generate.js.map +1 -1
- package/dist/commands/db/index.d.ts.map +1 -1
- package/dist/commands/db/index.js +43 -0
- package/dist/commands/db/index.js.map +1 -1
- package/dist/lib/admin/create.d.ts +2 -6
- package/dist/lib/admin/create.d.ts.map +1 -1
- package/dist/lib/admin/create.js +21 -13
- package/dist/lib/admin/create.js.map +1 -1
- package/dist/lib/config/loader.d.ts +0 -22
- package/dist/lib/config/loader.d.ts.map +1 -1
- package/dist/lib/config/loader.js +0 -58
- package/dist/lib/config/loader.js.map +1 -1
- package/dist/lib/db/auth-schema.d.ts +2 -13
- package/dist/lib/db/auth-schema.d.ts.map +1 -1
- package/dist/lib/db/auth-schema.js +5 -4
- package/dist/lib/db/auth-schema.js.map +1 -1
- package/package.json +53 -53
- package/bin/deesse.js +0 -2
- package/dist/commands/admin/create.d.ts +0 -14
- package/dist/commands/admin.d.ts +0 -29
- package/dist/commands/db/index.d.ts +0 -15
- package/dist/commands/db/migrate.d.ts +0 -16
- package/dist/commands/db/push.d.ts +0 -12
- package/dist/index.d.ts +0 -3
- package/dist/lib/db/schema.d.ts +0 -43
- package/dist/lib/index.d.ts +0 -5
- package/dist/utils/schema-loader.d.ts +0 -16
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/admin/create.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/admin/create.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,eAAe,CAAC;AAUvB,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAmHD,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4D5E"}
|
|
@@ -5,13 +5,9 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import * as p from '@clack/prompts';
|
|
7
7
|
import { z } from 'zod';
|
|
8
|
-
import * as path from 'node:path';
|
|
9
|
-
import { pathToFileURL } from 'node:url';
|
|
10
8
|
import { loadMinimalConfig, ConfigLoaderError } from '../../lib/config/loader.js';
|
|
11
9
|
import { createAdminUser, AdminCreationError } from '../../lib/admin/create.js';
|
|
12
10
|
import { drizzle } from 'drizzle-orm/node-postgres';
|
|
13
|
-
import { authSchemaExists } from '../../lib/db/auth-schema.js';
|
|
14
|
-
import { validateAdminEmailDomain } from 'deesse';
|
|
15
11
|
// Load environment variables
|
|
16
12
|
import 'dotenv/config';
|
|
17
13
|
const AdminSchema = z.object({
|
|
@@ -19,6 +15,20 @@ const AdminSchema = z.object({
|
|
|
19
15
|
password: z.string().min(8, 'Password must be at least 8 characters'),
|
|
20
16
|
name: z.string().min(1, 'Name is required').default('Admin'),
|
|
21
17
|
});
|
|
18
|
+
// Public email domains that should warn users
|
|
19
|
+
const PUBLIC_EMAIL_DOMAINS = [
|
|
20
|
+
'gmail.com',
|
|
21
|
+
'yahoo.com',
|
|
22
|
+
'hotmail.com',
|
|
23
|
+
'outlook.com',
|
|
24
|
+
'icloud.com',
|
|
25
|
+
'mail.com',
|
|
26
|
+
'aol.com',
|
|
27
|
+
];
|
|
28
|
+
function isPublicEmailDomain(email) {
|
|
29
|
+
const domain = email.split('@')[1]?.toLowerCase();
|
|
30
|
+
return PUBLIC_EMAIL_DOMAINS.includes(domain);
|
|
31
|
+
}
|
|
22
32
|
function validateEmail(value) {
|
|
23
33
|
if (!value)
|
|
24
34
|
return 'Email is required';
|
|
@@ -42,7 +52,10 @@ async function promptForAdminDetails() {
|
|
|
42
52
|
p.cancel('Operation cancelled.');
|
|
43
53
|
process.exit(0);
|
|
44
54
|
}
|
|
45
|
-
|
|
55
|
+
if (isPublicEmailDomain(emailResult)) {
|
|
56
|
+
p.log.warn(`Warning: ${emailResult} is a public email domain.\n` +
|
|
57
|
+
' Admin accounts should use organizational email addresses.');
|
|
58
|
+
}
|
|
46
59
|
const passwordResult = await p.password({
|
|
47
60
|
message: 'Admin password:',
|
|
48
61
|
mask: true,
|
|
@@ -61,7 +74,7 @@ async function promptForAdminDetails() {
|
|
|
61
74
|
process.exit(0);
|
|
62
75
|
}
|
|
63
76
|
return {
|
|
64
|
-
email:
|
|
77
|
+
email: emailResult,
|
|
65
78
|
password: passwordResult,
|
|
66
79
|
name: nameResult || 'Admin',
|
|
67
80
|
};
|
|
@@ -96,42 +109,6 @@ function printSuccess(result) {
|
|
|
96
109
|
p.log.info(`Name: ${result.user.name}`);
|
|
97
110
|
p.log.info(`ID: ${result.user.id.slice(0, 8)}...`);
|
|
98
111
|
}
|
|
99
|
-
/**
|
|
100
|
-
* Load auth schema from the project's src/db/auth-schema.ts
|
|
101
|
-
*
|
|
102
|
-
* Uses pathToFileURL with forward slashes to handle Windows paths correctly.
|
|
103
|
-
*/
|
|
104
|
-
async function loadAuthSchema(cwd) {
|
|
105
|
-
const schemaPath = path.resolve(cwd, 'src/db/auth-schema.ts');
|
|
106
|
-
// Check if schema file exists
|
|
107
|
-
if (!(await authSchemaExists(cwd))) {
|
|
108
|
-
return null;
|
|
109
|
-
}
|
|
110
|
-
try {
|
|
111
|
-
// Use pathToFileURL with forward slashes to avoid Windows escaping issues
|
|
112
|
-
const schemaUrl = pathToFileURL(schemaPath.replace(/\\/g, '/'));
|
|
113
|
-
const mod = await import(schemaUrl.href);
|
|
114
|
-
const schema = mod.schema || mod.default?.schema;
|
|
115
|
-
if (!schema) {
|
|
116
|
-
p.log.warn('No schema export found in auth-schema.ts');
|
|
117
|
-
return null;
|
|
118
|
-
}
|
|
119
|
-
// Verify the schema has required tables
|
|
120
|
-
const requiredTables = ['user', 'session', 'account', 'verification'];
|
|
121
|
-
for (const table of requiredTables) {
|
|
122
|
-
if (!schema[table]) {
|
|
123
|
-
p.log.warn(`Schema missing required table: ${table}`);
|
|
124
|
-
return null;
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
return { schema, schemaPath };
|
|
128
|
-
}
|
|
129
|
-
catch (error) {
|
|
130
|
-
const err = error;
|
|
131
|
-
p.log.warn(`Could not load auth schema: ${err.stderr || err.message || String(error)}`);
|
|
132
|
-
return null;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
112
|
export async function adminCreate(options) {
|
|
136
113
|
try {
|
|
137
114
|
const cwd = options.cwd || process.cwd();
|
|
@@ -143,15 +120,6 @@ export async function adminCreate(options) {
|
|
|
143
120
|
p.log.error('DATABASE_URL not found in environment. Check your .env file.');
|
|
144
121
|
process.exit(1);
|
|
145
122
|
}
|
|
146
|
-
// Load auth schema if it exists
|
|
147
|
-
p.log.info('Loading auth schema...');
|
|
148
|
-
const schemaResult = await loadAuthSchema(cwd);
|
|
149
|
-
if (schemaResult) {
|
|
150
|
-
p.log.info(`Using auth schema from ${schemaResult.schemaPath}`);
|
|
151
|
-
}
|
|
152
|
-
else {
|
|
153
|
-
p.log.warn('Auth schema not found. Run "deesse db generate" first.');
|
|
154
|
-
}
|
|
155
123
|
// Create database directly from env
|
|
156
124
|
// @ts-expect-error - pg module does not have TypeScript declarations
|
|
157
125
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -174,17 +142,10 @@ export async function adminCreate(options) {
|
|
|
174
142
|
else {
|
|
175
143
|
adminInput = await promptForAdminDetails();
|
|
176
144
|
}
|
|
177
|
-
// Warn about public email
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
throw new AdminCreationError(emailValidation.message, emailValidation.code, emailValidation.suggestion);
|
|
182
|
-
}
|
|
183
|
-
// PUBLIC_EMAIL_DOMAIN - just a warning
|
|
184
|
-
p.log.warn(emailValidation.message);
|
|
185
|
-
if (emailValidation.suggestion) {
|
|
186
|
-
p.log.info(emailValidation.suggestion);
|
|
187
|
-
}
|
|
145
|
+
// Warn about public email
|
|
146
|
+
if (isPublicEmailDomain(adminInput.email)) {
|
|
147
|
+
p.log.warn(`Warning: ${adminInput.email} is a public email domain.\n` +
|
|
148
|
+
' Admin accounts should use organizational email addresses.');
|
|
188
149
|
}
|
|
189
150
|
// Create admin user via backend logic
|
|
190
151
|
const result = await createAdminUser({
|
|
@@ -194,7 +155,7 @@ export async function adminCreate(options) {
|
|
|
194
155
|
database,
|
|
195
156
|
secret: config.secret,
|
|
196
157
|
baseURL: config.auth?.baseURL,
|
|
197
|
-
|
|
158
|
+
plugins: config.auth?.plugins || [],
|
|
198
159
|
});
|
|
199
160
|
printSuccess(result);
|
|
200
161
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/admin/create.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/admin/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,14 @@
|
|
|
6
6
|
*/
|
|
7
7
|
export interface DbGenerateOptions {
|
|
8
8
|
cwd?: string;
|
|
9
|
+
config?: string;
|
|
10
|
+
name?: string;
|
|
11
|
+
breakpoints?: boolean;
|
|
12
|
+
custom?: boolean;
|
|
13
|
+
prefix?: 'index' | 'timestamp';
|
|
14
|
+
casing?: 'camelCase' | 'snake_case';
|
|
15
|
+
dialect?: 'postgresql' | 'mysql' | 'sqlite' | 'singlestore' | 'turso';
|
|
16
|
+
verbose?: boolean;
|
|
9
17
|
}
|
|
10
18
|
export declare function dbGenerate(options?: DbGenerateOptions): Promise<void>;
|
|
11
19
|
//# sourceMappingURL=generate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/commands/db/generate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/commands/db/generate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,WAAW,iBAAiB;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;IAC/B,MAAM,CAAC,EAAE,WAAW,GAAG,YAAY,CAAC;IACpC,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,aAAa,GAAG,OAAO,CAAC;IACtE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,UAAU,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsE/E"}
|
|
@@ -7,35 +7,49 @@
|
|
|
7
7
|
import { execSync } from 'node:child_process';
|
|
8
8
|
import { createDrizzleConfig } from '../../lib/db/schema.js';
|
|
9
9
|
import { generateAuthSchema } from '../../lib/db/auth-schema.js';
|
|
10
|
-
import { loadMinimalConfigWithPlugins } from '../../lib/config/loader.js';
|
|
11
10
|
export async function dbGenerate(options = {}) {
|
|
12
|
-
const cwd =
|
|
13
|
-
//
|
|
14
|
-
|
|
15
|
-
//
|
|
16
|
-
let plugins = [];
|
|
17
|
-
try {
|
|
18
|
-
const { plugins: loadedPlugins } = await loadMinimalConfigWithPlugins(cwd);
|
|
19
|
-
plugins = loadedPlugins;
|
|
20
|
-
}
|
|
21
|
-
catch (error) {
|
|
22
|
-
// If we fail to load plugins, continue with empty plugins array
|
|
23
|
-
// The schema will still be generated but without plugin fields
|
|
24
|
-
console.warn(`Warning: Could not load plugins from config: ${error instanceof Error ? error.message : String(error)}`);
|
|
25
|
-
}
|
|
26
|
-
// Generate auth schema (mandatory in DeesseJS) with plugins for proper field generation
|
|
27
|
-
await generateAuthSchema(cwd, plugins);
|
|
28
|
-
// Always recreate drizzle config to ensure correct schema path
|
|
29
|
-
console.warn('Setting up drizzle.config.ts...');
|
|
11
|
+
const { cwd = process.cwd(), config, name, breakpoints = true, custom = false, prefix, casing, dialect, verbose = false, } = options;
|
|
12
|
+
// Step 1: Generate auth schema
|
|
13
|
+
await generateAuthSchema(cwd);
|
|
14
|
+
// Step 2: Ensure drizzle.config.ts exists
|
|
30
15
|
await createDrizzleConfig(cwd);
|
|
16
|
+
// Step 3: Build drizzle-kit generate command
|
|
17
|
+
const args = ['npx drizzle-kit', 'generate'];
|
|
18
|
+
if (config) {
|
|
19
|
+
args.push('--config', config);
|
|
20
|
+
}
|
|
21
|
+
if (name) {
|
|
22
|
+
args.push('--name', name);
|
|
23
|
+
}
|
|
24
|
+
if (!breakpoints) {
|
|
25
|
+
args.push('--no-breakpoints');
|
|
26
|
+
}
|
|
27
|
+
if (custom) {
|
|
28
|
+
args.push('--custom');
|
|
29
|
+
}
|
|
30
|
+
if (prefix) {
|
|
31
|
+
args.push('--prefix', prefix);
|
|
32
|
+
}
|
|
33
|
+
if (casing) {
|
|
34
|
+
args.push('--casing', casing);
|
|
35
|
+
}
|
|
36
|
+
if (dialect) {
|
|
37
|
+
args.push('--dialect', dialect);
|
|
38
|
+
}
|
|
39
|
+
if (verbose) {
|
|
40
|
+
args.push('--verbose');
|
|
41
|
+
}
|
|
31
42
|
console.warn('Generating migrations with drizzle-kit...');
|
|
32
43
|
try {
|
|
33
|
-
execSync('
|
|
44
|
+
execSync(args.join(' '), {
|
|
34
45
|
cwd,
|
|
35
46
|
stdio: 'inherit',
|
|
36
47
|
});
|
|
37
48
|
}
|
|
38
49
|
catch (error) {
|
|
50
|
+
// Detect "no schema changes" — drizzle-kit exits with code 0 but prints this message
|
|
51
|
+
// We can't easily detect this from execSync output since stdio: 'inherit'
|
|
52
|
+
// So just forward the error
|
|
39
53
|
if (error.code === 'ENOENT') {
|
|
40
54
|
throw new Error('drizzle-kit not found. Please install it: npm install drizzle-kit');
|
|
41
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/commands/db/generate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/commands/db/generate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAcjE,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,UAA6B,EAAE;IAC9D,MAAM,EACJ,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EACnB,MAAM,EACN,IAAI,EACJ,WAAW,GAAG,IAAI,EAClB,MAAM,GAAG,KAAK,EACd,MAAM,EACN,MAAM,EACN,OAAO,EACP,OAAO,GAAG,KAAK,GAChB,GAAG,OAAO,CAAC;IAEZ,+BAA+B;IAC/B,MAAM,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAE9B,0CAA0C;IAC1C,MAAM,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAE/B,6CAA6C;IAC7C,MAAM,IAAI,GAAG,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;IAE7C,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxB,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IAE1D,IAAI,CAAC;QACH,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACvB,GAAG;YACH,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,qFAAqF;QACrF,0EAA0E;QAC1E,4BAA4B;QAC5B,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;QACvF,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/db/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4B3E;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/db/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4B3E;AA6ED,wBAAgB,UAAU,IAAI,IAAI,CAyCjC"}
|
|
@@ -38,6 +38,39 @@ function parseDbGenerateArgs(args) {
|
|
|
38
38
|
if (args[i] === '--cwd' && i + 1 < args.length) {
|
|
39
39
|
opts.cwd = args[++i];
|
|
40
40
|
}
|
|
41
|
+
else if (args[i] === '--config' && i + 1 < args.length) {
|
|
42
|
+
opts.config = args[++i];
|
|
43
|
+
}
|
|
44
|
+
else if (args[i] === '--name' && i + 1 < args.length) {
|
|
45
|
+
opts.name = args[++i];
|
|
46
|
+
}
|
|
47
|
+
else if (args[i] === '--no-breakpoints') {
|
|
48
|
+
opts.breakpoints = false;
|
|
49
|
+
}
|
|
50
|
+
else if (args[i] === '--custom') {
|
|
51
|
+
opts.custom = true;
|
|
52
|
+
}
|
|
53
|
+
else if (args[i] === '--prefix' && i + 1 < args.length) {
|
|
54
|
+
const val = args[++i];
|
|
55
|
+
if (val === 'index' || val === 'timestamp') {
|
|
56
|
+
opts.prefix = val;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
else if (args[i] === '--casing' && i + 1 < args.length) {
|
|
60
|
+
const val = args[++i];
|
|
61
|
+
if (val === 'camelCase' || val === 'snake_case') {
|
|
62
|
+
opts.casing = val;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
else if (args[i] === '--dialect' && i + 1 < args.length) {
|
|
66
|
+
const val = args[++i];
|
|
67
|
+
if (['postgresql', 'mysql', 'sqlite', 'singlestore', 'turso'].includes(val)) {
|
|
68
|
+
opts.dialect = val;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
else if (args[i] === '--verbose') {
|
|
72
|
+
opts.verbose = true;
|
|
73
|
+
}
|
|
41
74
|
}
|
|
42
75
|
return opts;
|
|
43
76
|
}
|
|
@@ -80,6 +113,14 @@ Options:
|
|
|
80
113
|
|
|
81
114
|
db:generate
|
|
82
115
|
--cwd <path> Set working directory
|
|
116
|
+
--config <path> Path to drizzle config file
|
|
117
|
+
--name <name> Name for the migration
|
|
118
|
+
--no-breakpoints Disable breakpoints in migration
|
|
119
|
+
--custom Use custom SQL for migrations
|
|
120
|
+
--prefix <index|timestamp> Prefix for migration filename
|
|
121
|
+
--casing <camelCase|snake_case> Column casing convention
|
|
122
|
+
--dialect <dialect> Database dialect (postgresql, mysql, sqlite, singlestore, turso)
|
|
123
|
+
--verbose Enable verbose output
|
|
83
124
|
|
|
84
125
|
db:push
|
|
85
126
|
--cwd <path> Set working directory
|
|
@@ -91,6 +132,8 @@ Options:
|
|
|
91
132
|
|
|
92
133
|
Examples:
|
|
93
134
|
npx deesse db:generate
|
|
135
|
+
npx deesse db:generate --name add_users_table
|
|
136
|
+
npx deesse db:generate --dialect postgresql --verbose
|
|
94
137
|
npx deesse db:push
|
|
95
138
|
npx deesse db:push --force
|
|
96
139
|
npx deesse db:migrate
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/db/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAOzC,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAyB;IAC1D,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAErC,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;YACvC,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;YACvB,MAAM;QACR,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;YACnC,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YACnB,MAAM;QACR,CAAC;QAED,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;YACtB,MAAM;QACR,CAAC;QAED;YACE,MAAM,IAAI,KAAK,CACb,uBAAuB,UAAU,IAAI;gBACrC,yCAAyC,CAC1C,CAAC;IACN,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAc;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/db/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,18 +4,14 @@
|
|
|
4
4
|
* This module contains the pure business logic for creating an admin user
|
|
5
5
|
* via better-auth. It has no CLI dependencies (@clack/prompts, etc.).
|
|
6
6
|
*/
|
|
7
|
-
import type { BetterAuthPlugin } from "better-auth";
|
|
8
|
-
import type { PostgresJsDatabase } from "drizzle-orm/postgres-js";
|
|
9
|
-
export type AuthSchema = Record<string, any>;
|
|
10
7
|
export interface CreateAdminOptions {
|
|
11
8
|
email: string;
|
|
12
9
|
password: string;
|
|
13
10
|
name: string;
|
|
14
|
-
database:
|
|
11
|
+
database: unknown;
|
|
15
12
|
secret: string;
|
|
16
13
|
baseURL?: string;
|
|
17
|
-
plugins?:
|
|
18
|
-
schema?: AuthSchema;
|
|
14
|
+
plugins?: unknown[];
|
|
19
15
|
}
|
|
20
16
|
export interface CreateAdminResult {
|
|
21
17
|
user: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/lib/admin/create.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/lib/admin/create.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED,qBAAa,kBAAmB,SAAQ,KAAK;aAGzB,IAAI,CAAC,EAAE,MAAM;aACb,UAAU,CAAC,EAAE,MAAM;gBAFnC,OAAO,EAAE,MAAM,EACC,IAAI,CAAC,EAAE,MAAM,YAAA,EACb,UAAU,CAAC,EAAE,MAAM,YAAA;CAKtC;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAyC7F"}
|
package/dist/lib/admin/create.js
CHANGED
|
@@ -4,9 +4,6 @@
|
|
|
4
4
|
* This module contains the pure business logic for creating an admin user
|
|
5
5
|
* via better-auth. It has no CLI dependencies (@clack/prompts, etc.).
|
|
6
6
|
*/
|
|
7
|
-
import { betterAuth } from "better-auth";
|
|
8
|
-
import { admin } from "better-auth/plugins";
|
|
9
|
-
import { drizzleAdapter } from "@better-auth/drizzle-adapter";
|
|
10
7
|
export class AdminCreationError extends Error {
|
|
11
8
|
code;
|
|
12
9
|
suggestion;
|
|
@@ -18,18 +15,29 @@ export class AdminCreationError extends Error {
|
|
|
18
15
|
}
|
|
19
16
|
}
|
|
20
17
|
export async function createAdminUser(options) {
|
|
21
|
-
const { email, password, name, database, secret, baseURL, plugins
|
|
18
|
+
const { email, password, name, database, secret, baseURL, plugins } = options;
|
|
19
|
+
// Require better-auth packages
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-explicit-any
|
|
21
|
+
const betterAuth = require('better-auth');
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-explicit-any
|
|
23
|
+
const betterAuthDrizzleAdapter = require('@better-auth/drizzle-adapter');
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-explicit-any
|
|
25
|
+
const pg = require('pg');
|
|
26
|
+
const Pool = pg.Pool;
|
|
27
|
+
// Create database client
|
|
28
|
+
const pool = new Pool({
|
|
29
|
+
connectionString: process.env['DATABASE_URL'],
|
|
30
|
+
});
|
|
22
31
|
try {
|
|
23
|
-
|
|
24
|
-
|
|
32
|
+
// Create better-auth instance with the config's database and auth settings
|
|
33
|
+
const auth = betterAuth.betterAuth({
|
|
34
|
+
database: betterAuthDrizzleAdapter.drizzleAdapter(database),
|
|
25
35
|
baseURL,
|
|
26
36
|
secret,
|
|
27
|
-
|
|
28
|
-
plugins: [admin(), ...(plugins || [])],
|
|
37
|
+
plugins: plugins || [],
|
|
29
38
|
});
|
|
30
|
-
// Create admin user via better-auth API
|
|
31
|
-
const
|
|
32
|
-
const result = await api.createUser({
|
|
39
|
+
// Create admin user via better-auth API
|
|
40
|
+
const result = await auth.api.createUser({
|
|
33
41
|
body: {
|
|
34
42
|
email,
|
|
35
43
|
password,
|
|
@@ -39,8 +47,8 @@ export async function createAdminUser(options) {
|
|
|
39
47
|
});
|
|
40
48
|
return result;
|
|
41
49
|
}
|
|
42
|
-
|
|
43
|
-
|
|
50
|
+
finally {
|
|
51
|
+
await pool.end();
|
|
44
52
|
}
|
|
45
53
|
}
|
|
46
54
|
//# sourceMappingURL=create.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/lib/admin/create.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/lib/admin/create.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoBH,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAGzB;IACA;IAHlB,YACE,OAAe,EACC,IAAa,EACb,UAAmB;QAEnC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,SAAI,GAAJ,IAAI,CAAS;QACb,eAAU,GAAV,UAAU,CAAS;QAGnC,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAA2B;IAC/D,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAE9E,+BAA+B;IAC/B,qGAAqG;IACrG,MAAM,UAAU,GAAQ,OAAO,CAAC,aAAa,CAAC,CAAC;IAC/C,qGAAqG;IACrG,MAAM,wBAAwB,GAAQ,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC9E,qGAAqG;IACrG,MAAM,EAAE,GAAQ,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9B,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;IAErB,yBAAyB;IACzB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC;QACpB,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;KAC9C,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,2EAA2E;QAC3E,MAAM,IAAI,GAAG,UAAU,CAAC,UAAU,CAAC;YACjC,QAAQ,EAAE,wBAAwB,CAAC,cAAc,CAAC,QAAQ,CAAC;YAC3D,OAAO;YACP,MAAM;YACN,OAAO,EAAE,OAAO,IAAI,EAAE;SACvB,CAAC,CAAC;QAEH,wCAAwC;QACxC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;YACvC,IAAI,EAAE;gBACJ,KAAK;gBACL,QAAQ;gBACR,IAAI;gBACJ,IAAI,EAAE,OAAO;aACd;SACF,CAAC,CAAC;QAEH,OAAO,MAA2B,CAAC;IACrC,CAAC;YAAS,CAAC;QACT,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;IACnB,CAAC;AACH,CAAC"}
|
|
@@ -65,28 +65,6 @@ export declare function loadMinimalConfig(cwd: string): Promise<{
|
|
|
65
65
|
config: MinimalConfig;
|
|
66
66
|
configPath: string;
|
|
67
67
|
}>;
|
|
68
|
-
/**
|
|
69
|
-
* BetterAuthPlugin type for schema generation
|
|
70
|
-
*/
|
|
71
|
-
interface BetterAuthPlugin {
|
|
72
|
-
name: string;
|
|
73
|
-
schema?: Record<string, {
|
|
74
|
-
fields: Record<string, unknown>;
|
|
75
|
-
}>;
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Load minimal config with plugins using tsx to execute the config file
|
|
79
|
-
*
|
|
80
|
-
* This properly extracts the plugins array from the config by executing
|
|
81
|
-
* it with tsx (like better-auth CLI does with jiti). This is needed for
|
|
82
|
-
* schema generation to include plugin-injected fields (e.g., admin plugin
|
|
83
|
-
* adds role, banned, banReason, banExpires to user table).
|
|
84
|
-
*/
|
|
85
|
-
export declare function loadMinimalConfigWithPlugins(cwd: string): Promise<{
|
|
86
|
-
config: MinimalConfig;
|
|
87
|
-
plugins: BetterAuthPlugin[];
|
|
88
|
-
configPath: string;
|
|
89
|
-
}>;
|
|
90
68
|
/**
|
|
91
69
|
* Check if the admin plugin is configured in the config
|
|
92
70
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/lib/config/loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,UAAU,MAAM;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE;QACL,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;KACrB,CAAC;CACH;AAED,UAAU,cAAe,SAAQ,MAAM;IACrC,IAAI,CAAC,EAAE;QACL,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,OAAO,EAAE,CAAC;KACpB,CAAC;CACH;AAED,qBAAa,iBAAkB,SAAQ,KAAK;aACG,IAAI,CAAC,EAAE,MAAM;gBAA9C,OAAO,EAAE,MAAM,EAAkB,IAAI,CAAC,EAAE,MAAM,YAAA;CAI3D;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE;QACL,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,cAAc,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CA4DhG;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CAiB/D;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAIvE;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CA8C3G;
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/lib/config/loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,UAAU,MAAM;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE;QACL,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;KACrB,CAAC;CACH;AAED,UAAU,cAAe,SAAQ,MAAM;IACrC,IAAI,CAAC,EAAE;QACL,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,OAAO,EAAE,CAAC;KACpB,CAAC;CACH;AAED,qBAAa,iBAAkB,SAAQ,KAAK;aACG,IAAI,CAAC,EAAE,MAAM;gBAA9C,OAAO,EAAE,MAAM,EAAkB,IAAI,CAAC,EAAE,MAAM,YAAA;CAI3D;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE;QACL,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,cAAc,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CA4DhG;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CAiB/D;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAIvE;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CA8C3G;AAsBD;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAe9D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAc9D"}
|
|
@@ -145,64 +145,6 @@ export async function loadMinimalConfig(cwd) {
|
|
|
145
145
|
}
|
|
146
146
|
return { config, configPath };
|
|
147
147
|
}
|
|
148
|
-
/**
|
|
149
|
-
* Load minimal config with plugins using tsx to execute the config file
|
|
150
|
-
*
|
|
151
|
-
* This properly extracts the plugins array from the config by executing
|
|
152
|
-
* it with tsx (like better-auth CLI does with jiti). This is needed for
|
|
153
|
-
* schema generation to include plugin-injected fields (e.g., admin plugin
|
|
154
|
-
* adds role, banned, banReason, banExpires to user table).
|
|
155
|
-
*/
|
|
156
|
-
export async function loadMinimalConfigWithPlugins(cwd) {
|
|
157
|
-
const { config: minimalConfig, configPath } = await loadMinimalConfig(cwd);
|
|
158
|
-
// Write script to temp file to avoid escaping issues
|
|
159
|
-
const { writeFile, unlink } = await import('node:fs/promises');
|
|
160
|
-
const os = await import('node:os');
|
|
161
|
-
const crypto = await import('node:crypto');
|
|
162
|
-
const path = await import('node:path');
|
|
163
|
-
const scriptContent = `import { pathToFileURL } from 'node:url';
|
|
164
|
-
const configPath = pathToFileURL("${configPath.replace(/\\/g, '/')}").href;
|
|
165
|
-
const mod = await import(configPath);
|
|
166
|
-
const config = mod.config || mod.default;
|
|
167
|
-
if (!config || !config.auth || !config.auth.plugins) {
|
|
168
|
-
console.log(JSON.stringify({ plugins: [] }));
|
|
169
|
-
} else {
|
|
170
|
-
const plugins = config.auth.plugins.map((p) => ({
|
|
171
|
-
name: typeof p === 'object' && p !== null ? (p.name || String(p)) : String(p),
|
|
172
|
-
schema: typeof p === 'object' && p !== null && 'schema' in p ? p.schema : undefined,
|
|
173
|
-
}));
|
|
174
|
-
console.log(JSON.stringify({ plugins }));
|
|
175
|
-
}`;
|
|
176
|
-
const tmpDir = os.tmpdir();
|
|
177
|
-
const scriptPath = path.join(tmpDir, `deesse-plugin-${crypto.randomBytes(8).toString('hex')}.mjs`);
|
|
178
|
-
try {
|
|
179
|
-
await writeFile(scriptPath, scriptContent, 'utf-8');
|
|
180
|
-
// Use tsx to execute the script directly (tsx handles TypeScript imports)
|
|
181
|
-
const require = createRequire(import.meta.url);
|
|
182
|
-
const tsxPath = require.resolve('tsx');
|
|
183
|
-
const result = execSync(`"${tsxPath}" "${scriptPath}"`, {
|
|
184
|
-
cwd,
|
|
185
|
-
encoding: 'utf-8',
|
|
186
|
-
stdio: ['pipe', 'pipe', 'pipe'],
|
|
187
|
-
env: { ...process.env },
|
|
188
|
-
});
|
|
189
|
-
const parsed = JSON.parse(result.trim());
|
|
190
|
-
const plugins = parsed.plugins || [];
|
|
191
|
-
return { config: minimalConfig, plugins, configPath };
|
|
192
|
-
}
|
|
193
|
-
catch (error) {
|
|
194
|
-
const err = error;
|
|
195
|
-
throw new ConfigLoaderError(`Failed to load plugins from config: ${err.stderr || err.message || String(error)}`);
|
|
196
|
-
}
|
|
197
|
-
finally {
|
|
198
|
-
try {
|
|
199
|
-
await unlink(scriptPath);
|
|
200
|
-
}
|
|
201
|
-
catch {
|
|
202
|
-
// Ignore cleanup errors
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
148
|
/**
|
|
207
149
|
* Find the config file path without loading content
|
|
208
150
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/lib/config/loader.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/lib/config/loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,15 +7,6 @@
|
|
|
7
7
|
* Uses the programmatic API (generateDrizzleSchema from auth/api)
|
|
8
8
|
* instead of spawning npx auth@latest generate.
|
|
9
9
|
*/
|
|
10
|
-
/**
|
|
11
|
-
* BetterAuthPlugin type for schema generation
|
|
12
|
-
*/
|
|
13
|
-
interface BetterAuthPlugin {
|
|
14
|
-
name: string;
|
|
15
|
-
schema?: Record<string, {
|
|
16
|
-
fields: Record<string, unknown>;
|
|
17
|
-
}>;
|
|
18
|
-
}
|
|
19
10
|
/**
|
|
20
11
|
* Generate the better-auth schema using the programmatic API
|
|
21
12
|
*
|
|
@@ -23,10 +14,9 @@ interface BetterAuthPlugin {
|
|
|
23
14
|
* (user, session, account, verification) without needing a config file.
|
|
24
15
|
*
|
|
25
16
|
* @param cwd - Working directory
|
|
26
|
-
* @param plugins - Array of
|
|
27
|
-
* Pass undefined to use an empty array (no plugin fields).
|
|
17
|
+
* @param plugins - Array of better-auth plugins to include in schema generation
|
|
28
18
|
*/
|
|
29
|
-
export declare function generateAuthSchema(cwd?: string, plugins?:
|
|
19
|
+
export declare function generateAuthSchema(cwd?: string, plugins?: any[]): Promise<void>;
|
|
30
20
|
/**
|
|
31
21
|
* Check if auth schema file exists
|
|
32
22
|
*/
|
|
@@ -35,5 +25,4 @@ export declare function authSchemaExists(cwd?: string): Promise<boolean>;
|
|
|
35
25
|
* Get the path to the auth schema file
|
|
36
26
|
*/
|
|
37
27
|
export declare function getAuthSchemaPath(cwd?: string): string;
|
|
38
|
-
export {};
|
|
39
28
|
//# sourceMappingURL=auth-schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-schema.d.ts","sourceRoot":"","sources":["../../../src/lib/db/auth-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
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"}
|
|
@@ -49,10 +49,11 @@ async function ensureDir(dirPath) {
|
|
|
49
49
|
* (user, session, account, verification) without needing a config file.
|
|
50
50
|
*
|
|
51
51
|
* @param cwd - Working directory
|
|
52
|
-
* @param plugins - Array of
|
|
53
|
-
* Pass undefined to use an empty array (no plugin fields).
|
|
52
|
+
* @param plugins - Array of better-auth plugins to include in schema generation
|
|
54
53
|
*/
|
|
55
|
-
export async function generateAuthSchema(cwd = process.cwd(),
|
|
54
|
+
export async function generateAuthSchema(cwd = process.cwd(),
|
|
55
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
56
|
+
plugins = []) {
|
|
56
57
|
const outputPath = path.resolve(cwd, AUTH_SCHEMA_OUTPUT);
|
|
57
58
|
console.warn('Generating better-auth schema...');
|
|
58
59
|
try {
|
|
@@ -65,7 +66,7 @@ export async function generateAuthSchema(cwd = process.cwd(), plugins) {
|
|
|
65
66
|
adapter,
|
|
66
67
|
options: {
|
|
67
68
|
database: {},
|
|
68
|
-
plugins
|
|
69
|
+
plugins,
|
|
69
70
|
},
|
|
70
71
|
});
|
|
71
72
|
if (!schema.code) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-schema.js","sourceRoot":"","sources":["../../../src/lib/db/auth-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,MAAM,kBAAkB,GAAG,yBAAyB,CAAC;AAmBrD,KAAK,UAAU,6BAA6B;AAC1C,8DAA8D;AAC9D,IAAS;IAET,sCAAsC;IACtC,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;IAE3D,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,OAAe;IACxC,mCAAmC;IACnC,MAAM,QAAQ,GAAG,OAAO,KAAK,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;IAE3D,OAAO;QACL,EAAE,EAAE,SAAS;QACb,OAAO,EAAE;YACP,aAAa,EAAE;gBACb,SAAS,EAAE,SAAS;aACrB;YACD,QAAQ;SACT;KACF,CAAC;AACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"auth-schema.js","sourceRoot":"","sources":["../../../src/lib/db/auth-schema.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@deessejs/cli",
|
|
3
|
-
"version": "0.6.
|
|
4
|
-
"description": "DeesseJS CLI for managing DeesseJS projects",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"bin": {
|
|
7
|
-
"deesse": "./bin/deesse.js"
|
|
8
|
-
},
|
|
9
|
-
"exports": {
|
|
10
|
-
".": {
|
|
11
|
-
"import": "./dist/index.js",
|
|
12
|
-
"types": "./dist/index.d.ts"
|
|
13
|
-
}
|
|
14
|
-
},
|
|
15
|
-
"files": [
|
|
16
|
-
"bin",
|
|
17
|
-
"dist"
|
|
18
|
-
],
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
"
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
"
|
|
52
|
-
}
|
|
53
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@deessejs/cli",
|
|
3
|
+
"version": "0.6.42",
|
|
4
|
+
"description": "DeesseJS CLI for managing DeesseJS projects",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"deesse": "./bin/deesse.js"
|
|
8
|
+
},
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"import": "./dist/index.js",
|
|
12
|
+
"types": "./dist/index.d.ts"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"bin",
|
|
17
|
+
"dist"
|
|
18
|
+
],
|
|
19
|
+
"keywords": [
|
|
20
|
+
"cli",
|
|
21
|
+
"deessejs",
|
|
22
|
+
"deesse"
|
|
23
|
+
],
|
|
24
|
+
"author": "DeesseJS",
|
|
25
|
+
"license": "MIT",
|
|
26
|
+
"dependencies": {
|
|
27
|
+
"@better-auth/drizzle-adapter": "^1.0.0",
|
|
28
|
+
"@clack/prompts": "^0.8.2",
|
|
29
|
+
"auth": "^1.6.0",
|
|
30
|
+
"better-auth": "^1.0.0",
|
|
31
|
+
"deesse": "^0.2.11",
|
|
32
|
+
"dotenv": "^17.3.1",
|
|
33
|
+
"drizzle-orm": "^0.38.0",
|
|
34
|
+
"pg": "^8.13.0",
|
|
35
|
+
"tsx": "^4.21.0",
|
|
36
|
+
"zod": "^3.23.0"
|
|
37
|
+
},
|
|
38
|
+
"devDependencies": {
|
|
39
|
+
"@types/node": "^22.10.6",
|
|
40
|
+
"typescript": "^5.7.2"
|
|
41
|
+
},
|
|
42
|
+
"engines": {
|
|
43
|
+
"node": ">=18.0.0"
|
|
44
|
+
},
|
|
45
|
+
"scripts": {
|
|
46
|
+
"dev": "tsc --watch",
|
|
47
|
+
"build": "tsc",
|
|
48
|
+
"type-check": "tsc --noEmit",
|
|
49
|
+
"lint": "eslint src",
|
|
50
|
+
"lint:fix": "eslint src --fix",
|
|
51
|
+
"clean": "rm -rf dist"
|
|
52
|
+
}
|
|
53
|
+
}
|
package/bin/deesse.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Admin create command - CLI interface
|
|
3
|
-
*
|
|
4
|
-
* Handles user interaction and delegates to backend logic.
|
|
5
|
-
*/
|
|
6
|
-
import 'dotenv/config';
|
|
7
|
-
export interface AdminCreateOptions {
|
|
8
|
-
email?: string;
|
|
9
|
-
password?: string;
|
|
10
|
-
name?: string;
|
|
11
|
-
cwd?: string;
|
|
12
|
-
}
|
|
13
|
-
export declare function adminCreate(options: AdminCreateOptions): Promise<void>;
|
|
14
|
-
//# sourceMappingURL=create.d.ts.map
|
package/dist/commands/admin.d.ts
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Admin command for managing admin users
|
|
3
|
-
*
|
|
4
|
-
* Usage: deesse admin create [options]
|
|
5
|
-
*/
|
|
6
|
-
export interface AdminCreateOptions {
|
|
7
|
-
email?: string;
|
|
8
|
-
password?: string;
|
|
9
|
-
name?: string;
|
|
10
|
-
cwd?: string;
|
|
11
|
-
}
|
|
12
|
-
export declare const adminCommand: {
|
|
13
|
-
name: "admin";
|
|
14
|
-
description: string;
|
|
15
|
-
subcommands: {
|
|
16
|
-
name: "create";
|
|
17
|
-
description: string;
|
|
18
|
-
options: ({
|
|
19
|
-
name: string;
|
|
20
|
-
description: string;
|
|
21
|
-
default?: undefined;
|
|
22
|
-
} | {
|
|
23
|
-
name: string;
|
|
24
|
-
description: string;
|
|
25
|
-
default: string;
|
|
26
|
-
})[];
|
|
27
|
-
}[];
|
|
28
|
-
};
|
|
29
|
-
//# sourceMappingURL=admin.d.ts.map
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* db command dispatcher
|
|
3
|
-
*
|
|
4
|
-
* Handles all db:* subcommands:
|
|
5
|
-
* - db:generate Generate migrations from schema changes
|
|
6
|
-
* - db:push Push schema changes directly (dev only)
|
|
7
|
-
* - db:migrate Apply pending migrations to database
|
|
8
|
-
*/
|
|
9
|
-
export interface DbCommandOptions {
|
|
10
|
-
subcommand: string;
|
|
11
|
-
args: string[];
|
|
12
|
-
}
|
|
13
|
-
export declare function runDbCommand(options: DbCommandOptions): Promise<void>;
|
|
14
|
-
export declare function showDbHelp(): void;
|
|
15
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* db:migrate command
|
|
3
|
-
*
|
|
4
|
-
* Verifies schema and config exist, then delegates to drizzle-kit CLI.
|
|
5
|
-
*
|
|
6
|
-
* Requirements:
|
|
7
|
-
* - src/db/schema.ts: Your Drizzle tables
|
|
8
|
-
* - drizzle.config.ts: Standard drizzle-kit config with schema and dbCredentials
|
|
9
|
-
* - .env: Should contain DATABASE_URL
|
|
10
|
-
*/
|
|
11
|
-
export interface DbMigrateOptions {
|
|
12
|
-
cwd?: string;
|
|
13
|
-
dryRun?: boolean;
|
|
14
|
-
}
|
|
15
|
-
export declare function dbMigrate(options?: DbMigrateOptions): Promise<void>;
|
|
16
|
-
//# sourceMappingURL=migrate.d.ts.map
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* db:push command
|
|
3
|
-
*
|
|
4
|
-
* Generates auth schema and pushes to database with drizzle-kit.
|
|
5
|
-
* Always recreates drizzle config to ensure correct schema path.
|
|
6
|
-
*/
|
|
7
|
-
export interface DbPushOptions {
|
|
8
|
-
force?: boolean;
|
|
9
|
-
cwd?: string;
|
|
10
|
-
}
|
|
11
|
-
export declare function dbPush(options?: DbPushOptions): Promise<void>;
|
|
12
|
-
//# sourceMappingURL=push.d.ts.map
|
package/dist/index.d.ts
DELETED
package/dist/lib/db/schema.d.ts
DELETED
|
@@ -1,43 +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
|
-
declare const DEFAULT_SCHEMA_PATH = "./src/db/schema.ts";
|
|
9
|
-
declare const DEFAULT_DRIZZLE_CONFIG_PATH = "./drizzle.config.ts";
|
|
10
|
-
export { DEFAULT_SCHEMA_PATH, DEFAULT_DRIZZLE_CONFIG_PATH };
|
|
11
|
-
export interface SchemaLoaderResult {
|
|
12
|
-
schema: Record<string, unknown>;
|
|
13
|
-
schemaPath: string;
|
|
14
|
-
}
|
|
15
|
-
export declare class SchemaLoaderError extends Error {
|
|
16
|
-
readonly code?: string | undefined;
|
|
17
|
-
constructor(message: string, code?: string | undefined);
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Load Drizzle schema objects from the user's schema file
|
|
21
|
-
*/
|
|
22
|
-
export declare function loadSchema(cwd?: string): Promise<SchemaLoaderResult>;
|
|
23
|
-
/**
|
|
24
|
-
* Verify the schema file exists
|
|
25
|
-
*/
|
|
26
|
-
export declare function verifySchemaPath(cwd?: string): Promise<string>;
|
|
27
|
-
/**
|
|
28
|
-
* Check if schema file exists
|
|
29
|
-
*/
|
|
30
|
-
export declare function schemaExists(cwd?: string): Promise<boolean>;
|
|
31
|
-
/**
|
|
32
|
-
* Check if drizzle config exists
|
|
33
|
-
*/
|
|
34
|
-
export declare function drizzleConfigExists(cwd?: string): Promise<boolean>;
|
|
35
|
-
/**
|
|
36
|
-
* Create the default schema file with auth schema import
|
|
37
|
-
*/
|
|
38
|
-
export declare function createDefaultSchema(cwd?: string): Promise<void>;
|
|
39
|
-
/**
|
|
40
|
-
* Create the default drizzle config file
|
|
41
|
-
*/
|
|
42
|
-
export declare function createDrizzleConfig(cwd?: string): Promise<void>;
|
|
43
|
-
//# sourceMappingURL=schema.d.ts.map
|
package/dist/lib/index.d.ts
DELETED
|
@@ -1,16 +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
|
-
declare const SCHEMA_PATH = "./src/db/schema.ts";
|
|
9
|
-
export { SCHEMA_PATH };
|
|
10
|
-
export interface SchemaLoaderResult {
|
|
11
|
-
schema: Record<string, unknown>;
|
|
12
|
-
schemaPath: string;
|
|
13
|
-
}
|
|
14
|
-
export declare function loadSchema(): Promise<SchemaLoaderResult>;
|
|
15
|
-
export declare function verifySchemaPath(): Promise<string>;
|
|
16
|
-
//# sourceMappingURL=schema-loader.d.ts.map
|