@deessejs/cli 0.6.44 → 0.6.46
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/bin/deesse.js +3 -2
- package/dist/commands/db/generate.d.ts +5 -18
- package/dist/commands/db/generate.d.ts.map +1 -1
- package/dist/commands/db/generate.js +9 -58
- package/dist/commands/db/generate.js.map +1 -1
- package/dist/commands/db/index.d.ts +6 -0
- package/dist/commands/db/index.d.ts.map +1 -1
- package/dist/commands/db/index.js +9 -142
- package/dist/commands/db/index.js.map +1 -1
- package/dist/commands/db/migrate.d.ts +5 -22
- package/dist/commands/db/migrate.d.ts.map +1 -1
- package/dist/commands/db/migrate.js +9 -69
- package/dist/commands/db/migrate.js.map +1 -1
- package/dist/commands/db/push.d.ts +10 -0
- package/dist/commands/db/push.d.ts.map +1 -1
- package/dist/commands/db/push.js +21 -38
- package/dist/commands/db/push.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.js +18 -164
- package/dist/index.js.map +1 -1
- package/dist/utils/config.d.ts +8 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +10 -0
- package/dist/utils/config.js.map +1 -0
- package/package.json +54 -53
- package/dist/commands/admin/create.d.ts.map +0 -1
- package/dist/commands/admin/create.js +0 -166
- package/dist/commands/admin/create.js.map +0 -1
- package/dist/commands/admin.d.ts.map +0 -1
- package/dist/commands/admin.js +0 -22
- package/dist/commands/admin.js.map +0 -1
- package/dist/lib/admin/create.d.ts +0 -29
- package/dist/lib/admin/create.d.ts.map +0 -1
- package/dist/lib/admin/create.js +0 -54
- package/dist/lib/admin/create.js.map +0 -1
- package/dist/lib/config/loader.d.ts +0 -77
- package/dist/lib/config/loader.d.ts.map +0 -1
- package/dist/lib/config/loader.js +0 -199
- package/dist/lib/config/loader.js.map +0 -1
- package/dist/lib/db/auth-schema.d.ts +0 -28
- package/dist/lib/db/auth-schema.d.ts.map +0 -1
- package/dist/lib/db/auth-schema.js +0 -116
- package/dist/lib/db/auth-schema.js.map +0 -1
- package/dist/lib/db/schema.d.ts.map +0 -1
- package/dist/lib/db/schema.js +0 -144
- package/dist/lib/db/schema.js.map +0 -1
- package/dist/lib/index.d.ts.map +0 -1
- package/dist/lib/index.js +0 -6
- package/dist/lib/index.js.map +0 -1
- package/dist/utils/schema-loader.d.ts.map +0 -1
- package/dist/utils/schema-loader.js +0 -46
- package/dist/utils/schema-loader.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,167 +1,21 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
Usage: npx deesse <command>
|
|
21
|
-
|
|
22
|
-
Commands:
|
|
23
|
-
help Show this help message
|
|
24
|
-
init Initialize a new DeesseJS project in current directory
|
|
25
|
-
db Database management commands (db:generate, db:push, etc.)
|
|
26
|
-
admin Admin user management (admin create)
|
|
27
|
-
|
|
28
|
-
Examples:
|
|
29
|
-
npx deesse help
|
|
30
|
-
npx deesse init
|
|
31
|
-
npx deesse db:generate
|
|
32
|
-
npx deesse db:push --force
|
|
33
|
-
npx deesse admin create
|
|
34
|
-
|
|
35
|
-
For more information, visit: https://github.com/nesalia-inc/deessejs
|
|
36
|
-
`);
|
|
37
|
-
};
|
|
38
|
-
const runInit = async () => {
|
|
39
|
-
try {
|
|
40
|
-
p.intro(`DeesseJS CLI v${getVersion()}`);
|
|
41
|
-
const confirm = await p.confirm({
|
|
42
|
-
message: 'Initialize a new DeesseJS project in the current directory?',
|
|
43
|
-
});
|
|
44
|
-
if (p.isCancel(confirm) || !confirm) {
|
|
45
|
-
p.cancel('Initialization cancelled.');
|
|
46
|
-
process.exit(0);
|
|
47
|
-
}
|
|
48
|
-
// Use create-deesse-app with current directory
|
|
49
|
-
p.log.info('Running create-deesse-app in current directory...');
|
|
50
|
-
execSync('npx create-deesse-app@latest .', { stdio: 'inherit' });
|
|
51
|
-
p.outro('Project initialized successfully!');
|
|
52
|
-
}
|
|
53
|
-
catch (error) {
|
|
54
|
-
p.cancel('Failed to initialize project');
|
|
55
|
-
if (error instanceof Error) {
|
|
56
|
-
console.error(error.message);
|
|
57
|
-
}
|
|
58
|
-
process.exit(1);
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
function parseAdminCreateArgs(args) {
|
|
62
|
-
const opts = {};
|
|
63
|
-
for (let i = 0; i < args.length; i++) {
|
|
64
|
-
if (args[i] === '--email' && i + 1 < args.length) {
|
|
65
|
-
opts.email = args[++i];
|
|
66
|
-
}
|
|
67
|
-
else if (args[i] === '--password' && i + 1 < args.length) {
|
|
68
|
-
opts.password = args[++i];
|
|
69
|
-
}
|
|
70
|
-
else if (args[i] === '--name' && i + 1 < args.length) {
|
|
71
|
-
opts.name = args[++i];
|
|
72
|
-
}
|
|
73
|
-
else if (args[i] === '--cwd' && i + 1 < args.length) {
|
|
74
|
-
opts.cwd = args[++i];
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
return opts;
|
|
78
|
-
}
|
|
79
|
-
async function main() {
|
|
80
|
-
const args = process.argv.slice(2);
|
|
81
|
-
const command = args[0] || 'help';
|
|
82
|
-
// Handle db:* commands
|
|
83
|
-
if (command.startsWith('db:')) {
|
|
84
|
-
const subcommand = command.slice(3); // Remove 'db:' prefix
|
|
85
|
-
if (!subcommand) {
|
|
86
|
-
showDbHelp();
|
|
87
|
-
return;
|
|
88
|
-
}
|
|
89
|
-
// Special case: 'db help' or 'db --help'
|
|
90
|
-
if (subcommand === 'help' || subcommand === '--help' || subcommand === '-h') {
|
|
91
|
-
showDbHelp();
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
try {
|
|
95
|
-
await runDbCommand({
|
|
96
|
-
subcommand,
|
|
97
|
-
args: args.slice(1), // Pass all args including the subcommand
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
catch (error) {
|
|
101
|
-
console.error(`Error: ${error.message}`);
|
|
102
|
-
process.exit(1);
|
|
103
|
-
}
|
|
104
|
-
return;
|
|
105
|
-
}
|
|
106
|
-
// Handle admin commands
|
|
107
|
-
if (command === 'admin') {
|
|
108
|
-
const subcommand = args[1];
|
|
109
|
-
const subArgs = args.slice(2);
|
|
110
|
-
if (!subcommand || subcommand === 'help' || subcommand === '--help' || subcommand === '-h') {
|
|
111
|
-
console.warn(`
|
|
112
|
-
DeesseJS Admin Commands
|
|
113
|
-
|
|
114
|
-
Usage: npx deesse admin <command>
|
|
115
|
-
|
|
116
|
-
Commands:
|
|
117
|
-
admin create Create an admin user
|
|
118
|
-
|
|
119
|
-
Options:
|
|
120
|
-
--email <email> Admin email address
|
|
121
|
-
--password <password> Admin password (min 8 characters)
|
|
122
|
-
--name <name> Admin display name (default: Admin)
|
|
123
|
-
--cwd <path> Working directory
|
|
124
|
-
|
|
125
|
-
Examples:
|
|
126
|
-
npx deesse admin create
|
|
127
|
-
npx deesse admin create --email admin@example.com --password Secur3P@ss!
|
|
128
|
-
`);
|
|
129
|
-
return;
|
|
130
|
-
}
|
|
131
|
-
if (subcommand === 'create') {
|
|
132
|
-
const opts = parseAdminCreateArgs(subArgs);
|
|
133
|
-
try {
|
|
134
|
-
await adminCreate(opts);
|
|
135
|
-
}
|
|
136
|
-
catch (error) {
|
|
137
|
-
console.error(`Error: ${error.message}`);
|
|
138
|
-
process.exit(1);
|
|
139
|
-
}
|
|
140
|
-
return;
|
|
141
|
-
}
|
|
142
|
-
console.error(`Unknown admin command: ${subcommand}`);
|
|
143
|
-
console.error('Run "npx deesse admin help" for usage information.');
|
|
144
|
-
process.exit(1);
|
|
145
|
-
return;
|
|
146
|
-
}
|
|
147
|
-
switch (command) {
|
|
148
|
-
case 'help':
|
|
149
|
-
case '--help':
|
|
150
|
-
case '-h':
|
|
151
|
-
showHelp();
|
|
152
|
-
break;
|
|
153
|
-
case 'init':
|
|
154
|
-
await runInit();
|
|
155
|
-
break;
|
|
156
|
-
default:
|
|
157
|
-
console.error(`Unknown command: ${command}`);
|
|
158
|
-
console.error('Run "npx deesse help" for usage information.');
|
|
159
|
-
process.exit(1);
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
main().catch((error) => {
|
|
163
|
-
console.error('An error occurred:');
|
|
164
|
-
console.error(error);
|
|
165
|
-
process.exit(1);
|
|
2
|
+
import { run } from '@drizzle-team/brocli';
|
|
3
|
+
import { dbCommand } from './commands/db/index.js';
|
|
4
|
+
const version = '0.6.45';
|
|
5
|
+
run([dbCommand], {
|
|
6
|
+
name: 'deesse',
|
|
7
|
+
version,
|
|
8
|
+
help: () => {
|
|
9
|
+
console.log(`
|
|
10
|
+
@deessejs/cli v${version}
|
|
11
|
+
|
|
12
|
+
Usage: deesse <command>
|
|
13
|
+
|
|
14
|
+
Available commands:
|
|
15
|
+
db Database commands (generate, migrate, push)
|
|
16
|
+
|
|
17
|
+
Run 'deesse <command> --help' for more information on a command.
|
|
18
|
+
`.trim());
|
|
19
|
+
},
|
|
166
20
|
});
|
|
167
21
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,MAAM,OAAO,GAAG,QAAQ,CAAC;AAEzB,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE;IACf,IAAI,EAAE,QAAQ;IACd,OAAO;IACP,IAAI,EAAE,GAAG,EAAE;QACT,OAAO,CAAC,GAAG,CAAC;iBACC,OAAO;;;;;;;;KAQnB,CAAC,IAAI,EAAE,CAAC,CAAC;IACZ,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stub for loading project configuration (e.g., drizzle.config.ts).
|
|
3
|
+
*
|
|
4
|
+
* Currently not implemented. Will be implemented when db commands
|
|
5
|
+
* (generate, migrate, push) are added.
|
|
6
|
+
*/
|
|
7
|
+
export declare function loadConfig(): Promise<unknown>;
|
|
8
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,CAEnD"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stub for loading project configuration (e.g., drizzle.config.ts).
|
|
3
|
+
*
|
|
4
|
+
* Currently not implemented. Will be implemented when db commands
|
|
5
|
+
* (generate, migrate, push) are added.
|
|
6
|
+
*/
|
|
7
|
+
export async function loadConfig() {
|
|
8
|
+
throw new Error('Config loader not implemented yet');
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;AACvD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,53 +1,54 @@
|
|
|
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.46",
|
|
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
|
+
"scripts": {
|
|
20
|
+
"dev": "tsc --watch",
|
|
21
|
+
"build": "tsc",
|
|
22
|
+
"type-check": "tsc --noEmit",
|
|
23
|
+
"lint": "eslint src",
|
|
24
|
+
"lint:fix": "eslint src --fix",
|
|
25
|
+
"clean": "rm -rf dist"
|
|
26
|
+
},
|
|
27
|
+
"keywords": [
|
|
28
|
+
"cli",
|
|
29
|
+
"deessejs",
|
|
30
|
+
"deesse"
|
|
31
|
+
],
|
|
32
|
+
"author": "DeesseJS",
|
|
33
|
+
"license": "MIT",
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"@drizzle-team/brocli": "^0.12.0",
|
|
36
|
+
"@better-auth/drizzle-adapter": "^1.0.0",
|
|
37
|
+
"@clack/prompts": "^0.8.2",
|
|
38
|
+
"auth": "^1.6.0",
|
|
39
|
+
"better-auth": "^1.0.0",
|
|
40
|
+
"deesse": "^0.2.11",
|
|
41
|
+
"dotenv": "^17.3.1",
|
|
42
|
+
"drizzle-orm": "^0.38.0",
|
|
43
|
+
"pg": "^8.13.0",
|
|
44
|
+
"tsx": "^4.21.0",
|
|
45
|
+
"zod": "^3.23.0"
|
|
46
|
+
},
|
|
47
|
+
"devDependencies": {
|
|
48
|
+
"@types/node": "^22.10.6",
|
|
49
|
+
"typescript": "^5.7.2"
|
|
50
|
+
},
|
|
51
|
+
"engines": {
|
|
52
|
+
"node": ">=18.0.0"
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Admin create command - CLI interface
|
|
3
|
-
*
|
|
4
|
-
* Handles user interaction and delegates to backend logic.
|
|
5
|
-
*/
|
|
6
|
-
import * as p from '@clack/prompts';
|
|
7
|
-
import { z } from 'zod';
|
|
8
|
-
import { loadMinimalConfig, ConfigLoaderError } from '../../lib/config/loader.js';
|
|
9
|
-
import { createAdminUser, AdminCreationError } from '../../lib/admin/create.js';
|
|
10
|
-
import { drizzle } from 'drizzle-orm/node-postgres';
|
|
11
|
-
// Load environment variables
|
|
12
|
-
import 'dotenv/config';
|
|
13
|
-
const AdminSchema = z.object({
|
|
14
|
-
email: z.string().email('Invalid email format'),
|
|
15
|
-
password: z.string().min(8, 'Password must be at least 8 characters'),
|
|
16
|
-
name: z.string().min(1, 'Name is required').default('Admin'),
|
|
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
|
-
}
|
|
32
|
-
function validateEmail(value) {
|
|
33
|
-
if (!value)
|
|
34
|
-
return 'Email is required';
|
|
35
|
-
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
36
|
-
if (!emailRegex.test(value))
|
|
37
|
-
return 'Invalid email format';
|
|
38
|
-
return undefined;
|
|
39
|
-
}
|
|
40
|
-
function validatePassword(value) {
|
|
41
|
-
if (value.length < 8)
|
|
42
|
-
return 'Password must be at least 8 characters';
|
|
43
|
-
return undefined;
|
|
44
|
-
}
|
|
45
|
-
async function promptForAdminDetails() {
|
|
46
|
-
p.intro('Creating admin user');
|
|
47
|
-
const emailResult = await p.text({
|
|
48
|
-
message: 'Admin email:',
|
|
49
|
-
validate: validateEmail,
|
|
50
|
-
});
|
|
51
|
-
if (p.isCancel(emailResult)) {
|
|
52
|
-
p.cancel('Operation cancelled.');
|
|
53
|
-
process.exit(0);
|
|
54
|
-
}
|
|
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
|
-
}
|
|
59
|
-
const passwordResult = await p.password({
|
|
60
|
-
message: 'Admin password:',
|
|
61
|
-
mask: true,
|
|
62
|
-
validate: validatePassword,
|
|
63
|
-
});
|
|
64
|
-
if (p.isCancel(passwordResult)) {
|
|
65
|
-
p.cancel('Operation cancelled.');
|
|
66
|
-
process.exit(0);
|
|
67
|
-
}
|
|
68
|
-
const nameResult = await p.text({
|
|
69
|
-
message: 'Admin display name:',
|
|
70
|
-
defaultValue: 'Admin',
|
|
71
|
-
});
|
|
72
|
-
if (p.isCancel(nameResult)) {
|
|
73
|
-
p.cancel('Operation cancelled.');
|
|
74
|
-
process.exit(0);
|
|
75
|
-
}
|
|
76
|
-
return {
|
|
77
|
-
email: emailResult,
|
|
78
|
-
password: passwordResult,
|
|
79
|
-
name: nameResult || 'Admin',
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
function validateInput(options) {
|
|
83
|
-
const result = AdminSchema.safeParse(options);
|
|
84
|
-
if (!result.success) {
|
|
85
|
-
const error = result.error.errors[0];
|
|
86
|
-
throw new Error(`${error.path.join('.')}: ${error.message}`);
|
|
87
|
-
}
|
|
88
|
-
return result.data;
|
|
89
|
-
}
|
|
90
|
-
function handleError(error) {
|
|
91
|
-
if (error instanceof AdminCreationError) {
|
|
92
|
-
p.log.error(error.message);
|
|
93
|
-
if (error.suggestion) {
|
|
94
|
-
p.log.info(error.suggestion);
|
|
95
|
-
}
|
|
96
|
-
process.exit(1);
|
|
97
|
-
}
|
|
98
|
-
if (error instanceof ConfigLoaderError) {
|
|
99
|
-
p.log.error(error.message);
|
|
100
|
-
process.exit(1);
|
|
101
|
-
}
|
|
102
|
-
// Fallback for unknown errors
|
|
103
|
-
p.log.error('Unexpected error: ' + (error instanceof Error ? error.message : String(error)));
|
|
104
|
-
process.exit(1);
|
|
105
|
-
}
|
|
106
|
-
function printSuccess(result) {
|
|
107
|
-
p.log.success('Admin user created successfully!');
|
|
108
|
-
p.log.info(`Email: ${result.user.email}`);
|
|
109
|
-
p.log.info(`Name: ${result.user.name}`);
|
|
110
|
-
p.log.info(`ID: ${result.user.id.slice(0, 8)}...`);
|
|
111
|
-
}
|
|
112
|
-
export async function adminCreate(options) {
|
|
113
|
-
try {
|
|
114
|
-
const cwd = options.cwd || process.cwd();
|
|
115
|
-
// Load minimal config (does not execute config, only extracts secret and auth.baseURL)
|
|
116
|
-
p.log.info('Loading config...');
|
|
117
|
-
const { config } = await loadMinimalConfig(cwd);
|
|
118
|
-
// Validate DATABASE_URL
|
|
119
|
-
if (!process.env['DATABASE_URL']) {
|
|
120
|
-
p.log.error('DATABASE_URL not found in environment. Check your .env file.');
|
|
121
|
-
process.exit(1);
|
|
122
|
-
}
|
|
123
|
-
// Create database directly from env
|
|
124
|
-
// @ts-expect-error - pg module does not have TypeScript declarations
|
|
125
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
126
|
-
const pg = await import('pg');
|
|
127
|
-
const database = drizzle({
|
|
128
|
-
client: new pg.Pool({
|
|
129
|
-
connectionString: process.env['DATABASE_URL'],
|
|
130
|
-
}),
|
|
131
|
-
});
|
|
132
|
-
// Get admin input
|
|
133
|
-
let adminInput;
|
|
134
|
-
if (options.email && options.password) {
|
|
135
|
-
p.log.info('Creating admin user with provided credentials...');
|
|
136
|
-
adminInput = validateInput({
|
|
137
|
-
email: options.email,
|
|
138
|
-
password: options.password,
|
|
139
|
-
name: options.name || 'Admin',
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
else {
|
|
143
|
-
adminInput = await promptForAdminDetails();
|
|
144
|
-
}
|
|
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.');
|
|
149
|
-
}
|
|
150
|
-
// Create admin user via backend logic
|
|
151
|
-
const result = await createAdminUser({
|
|
152
|
-
email: adminInput.email,
|
|
153
|
-
password: adminInput.password,
|
|
154
|
-
name: adminInput.name,
|
|
155
|
-
database,
|
|
156
|
-
secret: config.secret,
|
|
157
|
-
baseURL: config.auth?.baseURL,
|
|
158
|
-
plugins: config.auth?.plugins || [],
|
|
159
|
-
});
|
|
160
|
-
printSuccess(result);
|
|
161
|
-
}
|
|
162
|
-
catch (error) {
|
|
163
|
-
handleError(error);
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
//# sourceMappingURL=create.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/admin/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/commands/admin.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,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;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;CAexB,CAAC"}
|
package/dist/commands/admin.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Admin command for managing admin users
|
|
3
|
-
*
|
|
4
|
-
* Usage: deesse admin create [options]
|
|
5
|
-
*/
|
|
6
|
-
export const adminCommand = {
|
|
7
|
-
name: 'admin',
|
|
8
|
-
description: 'Manage admin users',
|
|
9
|
-
subcommands: [
|
|
10
|
-
{
|
|
11
|
-
name: 'create',
|
|
12
|
-
description: 'Create an admin user',
|
|
13
|
-
options: [
|
|
14
|
-
{ name: '--email <email>', description: 'Admin email address' },
|
|
15
|
-
{ name: '--password <password>', description: 'Admin password (min 8 characters)' },
|
|
16
|
-
{ name: '--name <name>', description: 'Admin display name', default: 'Admin' },
|
|
17
|
-
{ name: '--cwd <path>', description: 'Working directory', default: process.cwd() },
|
|
18
|
-
],
|
|
19
|
-
},
|
|
20
|
-
],
|
|
21
|
-
};
|
|
22
|
-
//# sourceMappingURL=admin.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/commands/admin.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,OAAgB;IACtB,WAAW,EAAE,oBAAoB;IACjC,WAAW,EAAE;QACX;YACE,IAAI,EAAE,QAAiB;YACvB,WAAW,EAAE,sBAAsB;YACnC,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,qBAAqB,EAAE;gBAC/D,EAAE,IAAI,EAAE,uBAAuB,EAAE,WAAW,EAAE,mCAAmC,EAAE;gBACnF,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,oBAAoB,EAAE,OAAO,EAAE,OAAO,EAAE;gBAC9E,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE;aACnF;SACF;KACF;CACF,CAAC"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Backend logic for creating admin users
|
|
3
|
-
*
|
|
4
|
-
* This module contains the pure business logic for creating an admin user
|
|
5
|
-
* via better-auth. It has no CLI dependencies (@clack/prompts, etc.).
|
|
6
|
-
*/
|
|
7
|
-
export interface CreateAdminOptions {
|
|
8
|
-
email: string;
|
|
9
|
-
password: string;
|
|
10
|
-
name: string;
|
|
11
|
-
database: unknown;
|
|
12
|
-
secret: string;
|
|
13
|
-
baseURL?: string;
|
|
14
|
-
plugins?: unknown[];
|
|
15
|
-
}
|
|
16
|
-
export interface CreateAdminResult {
|
|
17
|
-
user: {
|
|
18
|
-
id: string;
|
|
19
|
-
email: string;
|
|
20
|
-
name: string;
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
export declare class AdminCreationError extends Error {
|
|
24
|
-
readonly code?: string | undefined;
|
|
25
|
-
readonly suggestion?: string | undefined;
|
|
26
|
-
constructor(message: string, code?: string | undefined, suggestion?: string | undefined);
|
|
27
|
-
}
|
|
28
|
-
export declare function createAdminUser(options: CreateAdminOptions): Promise<CreateAdminResult>;
|
|
29
|
-
//# sourceMappingURL=create.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Backend logic for creating admin users
|
|
3
|
-
*
|
|
4
|
-
* This module contains the pure business logic for creating an admin user
|
|
5
|
-
* via better-auth. It has no CLI dependencies (@clack/prompts, etc.).
|
|
6
|
-
*/
|
|
7
|
-
export class AdminCreationError extends Error {
|
|
8
|
-
code;
|
|
9
|
-
suggestion;
|
|
10
|
-
constructor(message, code, suggestion) {
|
|
11
|
-
super(message);
|
|
12
|
-
this.code = code;
|
|
13
|
-
this.suggestion = suggestion;
|
|
14
|
-
this.name = 'AdminCreationError';
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
export async function createAdminUser(options) {
|
|
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
|
-
});
|
|
31
|
-
try {
|
|
32
|
-
// Create better-auth instance with the config's database and auth settings
|
|
33
|
-
const auth = betterAuth.betterAuth({
|
|
34
|
-
database: betterAuthDrizzleAdapter.drizzleAdapter(database),
|
|
35
|
-
baseURL,
|
|
36
|
-
secret,
|
|
37
|
-
plugins: plugins || [],
|
|
38
|
-
});
|
|
39
|
-
// Create admin user via better-auth API
|
|
40
|
-
const result = await auth.api.createUser({
|
|
41
|
-
body: {
|
|
42
|
-
email,
|
|
43
|
-
password,
|
|
44
|
-
name,
|
|
45
|
-
role: 'admin',
|
|
46
|
-
},
|
|
47
|
-
});
|
|
48
|
-
return result;
|
|
49
|
-
}
|
|
50
|
-
finally {
|
|
51
|
-
await pool.end();
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
//# sourceMappingURL=create.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|