@deessejs/cli 0.6.17 → 0.6.19
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 +27 -5
- package/dist/commands/admin/create.js.map +1 -1
- package/dist/lib/admin/create.d.ts +5 -11
- package/dist/lib/admin/create.d.ts.map +1 -1
- package/dist/lib/admin/create.js +14 -25
- package/dist/lib/admin/create.js.map +1 -1
- package/dist/lib/config/loader.d.ts +22 -2
- package/dist/lib/config/loader.d.ts.map +1 -1
- package/dist/lib/config/loader.js +106 -18
- package/dist/lib/config/loader.js.map +1 -1
- package/package.json +52 -51
|
@@ -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,8 +5,9 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import * as p from '@clack/prompts';
|
|
7
7
|
import { z } from 'zod';
|
|
8
|
-
import {
|
|
8
|
+
import { loadMinimalConfig, ConfigLoaderError } from '../../lib/config/loader.js';
|
|
9
9
|
import { createAdminUser, AdminCreationError } from '../../lib/admin/create.js';
|
|
10
|
+
import { drizzle } from 'drizzle-orm/node-postgres';
|
|
10
11
|
// Load environment variables
|
|
11
12
|
import 'dotenv/config';
|
|
12
13
|
const AdminSchema = z.object({
|
|
@@ -111,10 +112,23 @@ function printSuccess(result) {
|
|
|
111
112
|
export async function adminCreate(options) {
|
|
112
113
|
try {
|
|
113
114
|
const cwd = options.cwd || process.cwd();
|
|
114
|
-
// Load
|
|
115
|
+
// Load minimal config (does not execute config, only extracts secret and auth.baseURL)
|
|
115
116
|
p.log.info('Loading config...');
|
|
116
|
-
const {
|
|
117
|
-
|
|
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
|
+
});
|
|
118
132
|
// Get admin input
|
|
119
133
|
let adminInput;
|
|
120
134
|
if (options.email && options.password) {
|
|
@@ -134,7 +148,15 @@ export async function adminCreate(options) {
|
|
|
134
148
|
' Admin accounts should use organizational email addresses.');
|
|
135
149
|
}
|
|
136
150
|
// Create admin user via backend logic
|
|
137
|
-
const result = await createAdminUser(
|
|
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
|
+
});
|
|
138
160
|
printSuccess(result);
|
|
139
161
|
}
|
|
140
162
|
catch (error) {
|
|
@@ -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,EAAE,
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/admin/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,19 +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
|
-
interface InternalConfig {
|
|
8
|
-
name?: string;
|
|
9
|
-
database?: unknown;
|
|
10
|
-
secret?: string;
|
|
11
|
-
auth?: {
|
|
12
|
-
baseURL?: string;
|
|
13
|
-
plugins?: unknown[];
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
7
|
export interface CreateAdminOptions {
|
|
17
8
|
email: string;
|
|
18
9
|
password: string;
|
|
19
10
|
name: string;
|
|
11
|
+
database: unknown;
|
|
12
|
+
secret: string;
|
|
13
|
+
baseURL?: string;
|
|
14
|
+
plugins?: unknown[];
|
|
20
15
|
}
|
|
21
16
|
export interface CreateAdminResult {
|
|
22
17
|
user: {
|
|
@@ -30,6 +25,5 @@ export declare class AdminCreationError extends Error {
|
|
|
30
25
|
readonly suggestion?: string | undefined;
|
|
31
26
|
constructor(message: string, code?: string | undefined, suggestion?: string | undefined);
|
|
32
27
|
}
|
|
33
|
-
export declare function createAdminUser(
|
|
34
|
-
export {};
|
|
28
|
+
export declare function createAdminUser(options: CreateAdminOptions): Promise<CreateAdminResult>;
|
|
35
29
|
//# sourceMappingURL=create.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/lib/admin/create.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
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,CAmC7F"}
|
package/dist/lib/admin/create.js
CHANGED
|
@@ -14,30 +14,19 @@ export class AdminCreationError extends Error {
|
|
|
14
14
|
this.name = 'AdminCreationError';
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
|
-
export async function createAdminUser(
|
|
18
|
-
const { email, password, name } = options;
|
|
19
|
-
//
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
// Require better-auth packages
|
|
25
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
26
|
-
const betterAuth = require('better-auth');
|
|
27
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
28
|
-
const betterAuthDrizzleAdapter = require('@better-auth/drizzle-adapter');
|
|
29
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
30
|
-
const pg = require('pg');
|
|
31
|
-
const Pool = pg.Pool;
|
|
32
|
-
// Create database client
|
|
33
|
-
const pool = new Pool({ connectionString: databaseUrl });
|
|
17
|
+
export async function createAdminUser(options) {
|
|
18
|
+
const { email, password, name, database, secret, baseURL, plugins } = options;
|
|
19
|
+
// Import better-auth packages
|
|
20
|
+
const betterAuth = await import('better-auth');
|
|
21
|
+
const betterAuthDrizzleAdapter = await import('@better-auth/drizzle-adapter');
|
|
22
|
+
const { admin } = betterAuth;
|
|
34
23
|
try {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
plugins:
|
|
24
|
+
const auth = betterAuth({
|
|
25
|
+
database: betterAuthDrizzleAdapter.drizzleAdapter(database),
|
|
26
|
+
baseURL,
|
|
27
|
+
secret,
|
|
28
|
+
emailAndPassword: { enabled: true },
|
|
29
|
+
plugins: [admin(), ...(plugins || [])],
|
|
41
30
|
});
|
|
42
31
|
// Create admin user via better-auth API
|
|
43
32
|
const result = await auth.api.createUser({
|
|
@@ -50,8 +39,8 @@ export async function createAdminUser(config, options) {
|
|
|
50
39
|
});
|
|
51
40
|
return result;
|
|
52
41
|
}
|
|
53
|
-
|
|
54
|
-
|
|
42
|
+
catch (error) {
|
|
43
|
+
throw new AdminCreationError(error instanceof Error ? error.message : 'Failed to create admin user', 'ADMIN_CREATION_FAILED', 'Check your database connection and credentials');
|
|
55
44
|
}
|
|
56
45
|
}
|
|
57
46
|
//# 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,8BAA8B;IAC9B,MAAM,UAAU,GAAQ,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IACpD,MAAM,wBAAwB,GAAQ,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC;IACnF,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC;IAE7B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,UAAU,CAAC;YACtB,QAAQ,EAAE,wBAAwB,CAAC,cAAc,CAAC,QAAQ,CAAC;YAC3D,OAAO;YACP,MAAM;YACN,gBAAgB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;YACnC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;SACvC,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;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,kBAAkB,CAC1B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,6BAA6B,EACtE,uBAAuB,EACvB,gDAAgD,CACjD,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Configuration loader for Deesse projects
|
|
3
3
|
*
|
|
4
4
|
* Handles loading and processing of deesse.config.ts files.
|
|
5
|
-
*
|
|
5
|
+
* Uses tsx to support TypeScript imports natively.
|
|
6
6
|
*/
|
|
7
7
|
interface Config {
|
|
8
8
|
name?: string;
|
|
@@ -25,13 +25,23 @@ export declare class ConfigLoaderError extends Error {
|
|
|
25
25
|
readonly code?: string | undefined;
|
|
26
26
|
constructor(message: string, code?: string | undefined);
|
|
27
27
|
}
|
|
28
|
+
export interface MinimalConfig {
|
|
29
|
+
secret: string;
|
|
30
|
+
auth?: {
|
|
31
|
+
baseURL?: string;
|
|
32
|
+
plugins?: unknown[];
|
|
33
|
+
};
|
|
34
|
+
}
|
|
28
35
|
export interface LoadConfigResult {
|
|
29
36
|
rawConfig: Config;
|
|
30
37
|
processedConfig: InternalConfig;
|
|
31
38
|
configPath: string;
|
|
32
39
|
}
|
|
33
40
|
/**
|
|
34
|
-
* Load the raw config from a deesse.config.ts file
|
|
41
|
+
* Load the raw config from a deesse.config.ts file using tsx
|
|
42
|
+
*
|
|
43
|
+
* Uses tsx to execute the config file directly and export the config object.
|
|
44
|
+
* This properly handles TypeScript imports and module context.
|
|
35
45
|
*/
|
|
36
46
|
export declare function loadRawConfig(cwd: string): Promise<{
|
|
37
47
|
config: Config;
|
|
@@ -45,6 +55,16 @@ export declare function processConfig(rawConfig: Config): InternalConfig;
|
|
|
45
55
|
* Load and process a deesse config
|
|
46
56
|
*/
|
|
47
57
|
export declare function loadConfig(cwd: string): Promise<LoadConfigResult>;
|
|
58
|
+
/**
|
|
59
|
+
* Load minimal config without executing the config file
|
|
60
|
+
*
|
|
61
|
+
* Extracts only secret and auth.baseURL via regex to avoid loading
|
|
62
|
+
* pages and other runtime-only config that would fail during CLI use.
|
|
63
|
+
*/
|
|
64
|
+
export declare function loadMinimalConfig(cwd: string): Promise<{
|
|
65
|
+
config: MinimalConfig;
|
|
66
|
+
configPath: string;
|
|
67
|
+
}>;
|
|
48
68
|
/**
|
|
49
69
|
* Check if the admin plugin is configured in the config
|
|
50
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,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,cAAc,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED
|
|
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"}
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
* Configuration loader for Deesse projects
|
|
3
3
|
*
|
|
4
4
|
* Handles loading and processing of deesse.config.ts files.
|
|
5
|
-
*
|
|
5
|
+
* Uses tsx to support TypeScript imports natively.
|
|
6
6
|
*/
|
|
7
7
|
import * as path from 'node:path';
|
|
8
|
-
import { pathToFileURL } from 'node:url';
|
|
9
8
|
import { createRequire } from 'node:module';
|
|
9
|
+
import { execSync } from 'node:child_process';
|
|
10
10
|
const CONFIG_PATHS = ['src/deesse.config.ts', 'deesse.config.ts', 'config/deesse.ts'];
|
|
11
11
|
export class ConfigLoaderError extends Error {
|
|
12
12
|
code;
|
|
@@ -17,35 +17,62 @@ export class ConfigLoaderError extends Error {
|
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
/**
|
|
20
|
-
* Load the raw config from a deesse.config.ts file
|
|
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.
|
|
21
24
|
*/
|
|
22
25
|
export async function loadRawConfig(cwd) {
|
|
23
|
-
let configModule = null;
|
|
24
26
|
let configPath = '';
|
|
25
27
|
for (const configFile of CONFIG_PATHS) {
|
|
26
28
|
configPath = path.resolve(cwd, configFile);
|
|
27
29
|
try {
|
|
28
|
-
//
|
|
29
|
-
const
|
|
30
|
-
|
|
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
|
|
31
34
|
break;
|
|
32
35
|
}
|
|
33
|
-
catch
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
throw error;
|
|
37
|
-
}
|
|
36
|
+
catch {
|
|
37
|
+
// Try next path
|
|
38
|
+
configPath = '';
|
|
38
39
|
}
|
|
39
40
|
}
|
|
40
|
-
if (!
|
|
41
|
+
if (!configPath) {
|
|
41
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.`);
|
|
42
43
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
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)}`);
|
|
47
75
|
}
|
|
48
|
-
return { config: rawConfig, configPath };
|
|
49
76
|
}
|
|
50
77
|
/**
|
|
51
78
|
* Process raw config via defineConfig to get InternalConfig
|
|
@@ -74,6 +101,67 @@ export async function loadConfig(cwd) {
|
|
|
74
101
|
const processedConfig = processConfig(rawConfig);
|
|
75
102
|
return { rawConfig, processedConfig, configPath };
|
|
76
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
|
+
}
|
|
77
165
|
/**
|
|
78
166
|
* Check if the admin plugin is configured in the config
|
|
79
167
|
*/
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/lib/config/loader.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,51 +1,52 @@
|
|
|
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
|
-
"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
|
-
"@better-auth/drizzle-adapter": "^1.0.0",
|
|
36
|
-
"@clack/prompts": "^0.8.2",
|
|
37
|
-
"auth": "^1.6.0",
|
|
38
|
-
"better-auth": "^1.0.0",
|
|
39
|
-
"dotenv": "^17.3.1",
|
|
40
|
-
"drizzle-orm": "^0.38.0",
|
|
41
|
-
"pg": "^8.13.0",
|
|
42
|
-
"
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
"
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@deessejs/cli",
|
|
3
|
+
"version": "0.6.19",
|
|
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
|
+
"@better-auth/drizzle-adapter": "^1.0.0",
|
|
36
|
+
"@clack/prompts": "^0.8.2",
|
|
37
|
+
"auth": "^1.6.0",
|
|
38
|
+
"better-auth": "^1.0.0",
|
|
39
|
+
"dotenv": "^17.3.1",
|
|
40
|
+
"drizzle-orm": "^0.38.0",
|
|
41
|
+
"pg": "^8.13.0",
|
|
42
|
+
"tsx": "^4.21.0",
|
|
43
|
+
"zod": "^3.23.0"
|
|
44
|
+
},
|
|
45
|
+
"devDependencies": {
|
|
46
|
+
"@types/node": "^22.10.6",
|
|
47
|
+
"typescript": "^5.7.2"
|
|
48
|
+
},
|
|
49
|
+
"engines": {
|
|
50
|
+
"node": ">=18.0.0"
|
|
51
|
+
}
|
|
52
|
+
}
|