@deessejs/cli 0.6.44 → 0.6.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/bin/deesse.js +3 -2
  2. package/dist/commands/db/index.d.ts +2 -0
  3. package/dist/commands/db/index.d.ts.map +1 -1
  4. package/dist/commands/db/index.js +8 -142
  5. package/dist/commands/db/index.js.map +1 -1
  6. package/dist/index.d.ts +3 -0
  7. package/dist/index.js +18 -164
  8. package/dist/index.js.map +1 -1
  9. package/dist/utils/config.d.ts +8 -0
  10. package/dist/utils/config.d.ts.map +1 -0
  11. package/dist/utils/config.js +10 -0
  12. package/dist/utils/config.js.map +1 -0
  13. package/package.json +54 -53
  14. package/dist/commands/admin/create.d.ts.map +0 -1
  15. package/dist/commands/admin/create.js +0 -166
  16. package/dist/commands/admin/create.js.map +0 -1
  17. package/dist/commands/admin.d.ts.map +0 -1
  18. package/dist/commands/admin.js +0 -22
  19. package/dist/commands/admin.js.map +0 -1
  20. package/dist/commands/db/generate.d.ts +0 -19
  21. package/dist/commands/db/generate.d.ts.map +0 -1
  22. package/dist/commands/db/generate.js +0 -59
  23. package/dist/commands/db/generate.js.map +0 -1
  24. package/dist/commands/db/migrate.d.ts +0 -23
  25. package/dist/commands/db/migrate.d.ts.map +0 -1
  26. package/dist/commands/db/migrate.js +0 -70
  27. package/dist/commands/db/migrate.js.map +0 -1
  28. package/dist/commands/db/push.d.ts.map +0 -1
  29. package/dist/commands/db/push.js +0 -39
  30. package/dist/commands/db/push.js.map +0 -1
  31. package/dist/lib/admin/create.d.ts +0 -29
  32. package/dist/lib/admin/create.d.ts.map +0 -1
  33. package/dist/lib/admin/create.js +0 -54
  34. package/dist/lib/admin/create.js.map +0 -1
  35. package/dist/lib/config/loader.d.ts +0 -77
  36. package/dist/lib/config/loader.d.ts.map +0 -1
  37. package/dist/lib/config/loader.js +0 -199
  38. package/dist/lib/config/loader.js.map +0 -1
  39. package/dist/lib/db/auth-schema.d.ts +0 -28
  40. package/dist/lib/db/auth-schema.d.ts.map +0 -1
  41. package/dist/lib/db/auth-schema.js +0 -116
  42. package/dist/lib/db/auth-schema.js.map +0 -1
  43. package/dist/lib/db/schema.d.ts.map +0 -1
  44. package/dist/lib/db/schema.js +0 -144
  45. package/dist/lib/db/schema.js.map +0 -1
  46. package/dist/lib/index.d.ts.map +0 -1
  47. package/dist/lib/index.js +0 -6
  48. package/dist/lib/index.js.map +0 -1
  49. package/dist/utils/schema-loader.d.ts.map +0 -1
  50. package/dist/utils/schema-loader.js +0 -46
  51. package/dist/utils/schema-loader.js.map +0 -1
@@ -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"}
@@ -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,19 +0,0 @@
1
- /**
2
- * db:generate command
3
- *
4
- * Generates auth schema and user migrations with drizzle-kit.
5
- * Always recreates drizzle config to ensure correct schema path.
6
- */
7
- export interface DbGenerateOptions {
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;
17
- }
18
- export declare function dbGenerate(options?: DbGenerateOptions): Promise<void>;
19
- //# sourceMappingURL=generate.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1,59 +0,0 @@
1
- /**
2
- * db:generate command
3
- *
4
- * Generates auth schema and user migrations with drizzle-kit.
5
- * Always recreates drizzle config to ensure correct schema path.
6
- */
7
- import { execSync } from 'node:child_process';
8
- import { createDrizzleConfig } from '../../lib/db/schema.js';
9
- import { generateAuthSchema } from '../../lib/db/auth-schema.js';
10
- export async function dbGenerate(options = {}) {
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
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
- }
42
- console.warn('Generating migrations with drizzle-kit...');
43
- try {
44
- execSync(args.join(' '), {
45
- cwd,
46
- stdio: 'inherit',
47
- });
48
- }
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
53
- if (error.code === 'ENOENT') {
54
- throw new Error('drizzle-kit not found. Please install it: npm install drizzle-kit');
55
- }
56
- throw error;
57
- }
58
- }
59
- //# sourceMappingURL=generate.js.map
@@ -1 +0,0 @@
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,23 +0,0 @@
1
- /**
2
- * db:migrate command
3
- *
4
- * Verifies prerequisites exist, then delegates to drizzle-kit CLI.
5
- *
6
- * Requirements:
7
- * - drizzle.config.ts: Drizzle config (created by db:generate)
8
- * - src/db/auth-schema.ts: Auth schema (created by db:generate)
9
- * - drizzle/: Migration files directory (created by db:generate)
10
- * - .env: Should contain DATABASE_URL
11
- *
12
- * Limitation: Custom migrations table/schema from drizzle.config.ts
13
- * (e.g., migrations: { table: 'custom_name', schema: 'custom_schema' })
14
- * are NOT explicitly handled by this command. drizzle-kit passes these
15
- * through automatically, but the error messages may reference the
16
- * default __drizzle_migrations table name rather than the custom one.
17
- */
18
- export interface DbMigrateOptions {
19
- cwd?: string;
20
- dryRun?: boolean;
21
- }
22
- export declare function dbMigrate(options?: DbMigrateOptions): Promise<void>;
23
- //# sourceMappingURL=migrate.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../../src/commands/db/migrate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AASH,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,SAAS,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0D7E"}
@@ -1,70 +0,0 @@
1
- /**
2
- * db:migrate command
3
- *
4
- * Verifies prerequisites exist, then delegates to drizzle-kit CLI.
5
- *
6
- * Requirements:
7
- * - drizzle.config.ts: Drizzle config (created by db:generate)
8
- * - src/db/auth-schema.ts: Auth schema (created by db:generate)
9
- * - drizzle/: Migration files directory (created by db:generate)
10
- * - .env: Should contain DATABASE_URL
11
- *
12
- * Limitation: Custom migrations table/schema from drizzle.config.ts
13
- * (e.g., migrations: { table: 'custom_name', schema: 'custom_schema' })
14
- * are NOT explicitly handled by this command. drizzle-kit passes these
15
- * through automatically, but the error messages may reference the
16
- * default __drizzle_migrations table name rather than the custom one.
17
- */
18
- import { spawn } from 'node:child_process';
19
- import { drizzleConfigExists } from '../../lib/db/schema.js';
20
- import { authSchemaExists } from '../../lib/db/auth-schema.js';
21
- import * as fs from 'node:fs/promises';
22
- import * as path from 'node:path';
23
- import * as dotenv from 'dotenv';
24
- export async function dbMigrate(options = {}) {
25
- const { cwd = process.cwd(), dryRun = false } = options;
26
- // Verify drizzle.config.ts exists
27
- if (!(await drizzleConfigExists(cwd))) {
28
- throw new Error(`drizzle.config.ts not found. Run "deesse db:generate" first.`);
29
- }
30
- // Verify auth schema exists (it is generated by db:generate)
31
- if (!(await authSchemaExists(cwd))) {
32
- throw new Error(`Auth schema not found. Run "deesse db:generate" first.`);
33
- }
34
- // Verify migrations directory exists
35
- const migrationsDir = path.resolve(cwd, 'drizzle');
36
- try {
37
- await fs.access(migrationsDir);
38
- }
39
- catch {
40
- throw new Error(`No migrations directory found. Run "deesse db:generate" first.`);
41
- }
42
- console.warn('Applying migrations with drizzle-kit...');
43
- // Load .env file
44
- dotenv.config();
45
- // Build command
46
- const cmd = dryRun ? 'npx drizzle-kit migrate --dry' : 'npx drizzle-kit migrate';
47
- // Use spawn with shell:true so .env is inherited
48
- return new Promise((resolve, reject) => {
49
- const child = spawn(cmd, {
50
- cwd,
51
- stdio: 'inherit',
52
- shell: true,
53
- });
54
- child.on('close', (code) => {
55
- if (code === 0) {
56
- resolve();
57
- }
58
- else {
59
- reject(new Error(`Command failed: npx drizzle-kit migrate${dryRun ? ' --dry' : ''} (exit code: ${code})`));
60
- }
61
- });
62
- child.on('error', (error) => {
63
- if (error.code === 'ENOENT') {
64
- reject(new Error('drizzle-kit not found. Please install it: npm install drizzle-kit'));
65
- }
66
- reject(error);
67
- });
68
- });
69
- }
70
- //# sourceMappingURL=migrate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../../src/commands/db/migrate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAOjC,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,UAA4B,EAAE;IAC5D,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IAExD,kCAAkC;IAClC,IAAI,CAAC,CAAC,MAAM,mBAAmB,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CACb,8DAA8D,CAC/D,CAAC;IACJ,CAAC;IAED,6DAA6D;IAC7D,IAAI,CAAC,CAAC,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CACb,wDAAwD,CACzD,CAAC;IACJ,CAAC;IAED,qCAAqC;IACrC,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACnD,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IAExD,iBAAiB;IACjB,MAAM,CAAC,MAAM,EAAE,CAAC;IAEhB,gBAAgB;IAChB,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,yBAAyB,CAAC;IAEjF,iDAAiD;IACjD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE;YACvB,GAAG;YACH,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,OAAO,EAAE,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,KAAK,CAAC,0CAA0C,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,gBAAgB,IAAI,GAAG,CAAC,CAAC,CAAC;YAC7G,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1B,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACvD,MAAM,CAAC,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC,CAAC;YACzF,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../../src/commands/db/push.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgCvE"}
@@ -1,39 +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
- import { execSync } from 'node:child_process';
8
- import { createDrizzleConfig } from '../../lib/db/schema.js';
9
- import { generateAuthSchema } from '../../lib/db/auth-schema.js';
10
- import * as dotenv from 'dotenv';
11
- export async function dbPush(options = {}) {
12
- const { force = false, cwd = process.cwd() } = options;
13
- // Generate auth schema (mandatory in DeesseJS)
14
- await generateAuthSchema(cwd);
15
- // Always recreate drizzle config to ensure correct schema path
16
- console.warn('Setting up drizzle.config.ts...');
17
- await createDrizzleConfig(cwd);
18
- console.warn('Pushing schema to database with drizzle-kit...');
19
- // Load .env file if it exists
20
- dotenv.config();
21
- const args = ['npx drizzle-kit', 'push'];
22
- if (force) {
23
- args.push('--force');
24
- }
25
- try {
26
- execSync(args.join(' '), {
27
- cwd,
28
- stdio: 'inherit',
29
- env: process.env,
30
- });
31
- }
32
- catch (error) {
33
- if (error.code === 'ENOENT') {
34
- throw new Error('drizzle-kit not found. Please install it: npm install drizzle-kit');
35
- }
36
- throw error;
37
- }
38
- }
39
- //# sourceMappingURL=push.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"push.js","sourceRoot":"","sources":["../../../src/commands/db/push.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,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAOjC,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,UAAyB,EAAE;IACtD,MAAM,EAAE,KAAK,GAAG,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;IAEvD,+CAA+C;IAC/C,MAAM,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAE9B,+DAA+D;IAC/D,OAAO,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAChD,MAAM,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAE/B,OAAO,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;IAE/D,8BAA8B;IAC9B,MAAM,CAAC,MAAM,EAAE,CAAC;IAEhB,MAAM,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IACzC,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IAED,IAAI,CAAC;QACH,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACvB,GAAG;YACH,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,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,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"}
@@ -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"}
@@ -1,77 +0,0 @@
1
- /**
2
- * Configuration loader for Deesse projects
3
- *
4
- * Handles loading and processing of deesse.config.ts files.
5
- * Uses tsx to support TypeScript imports natively.
6
- */
7
- interface Config {
8
- name?: string;
9
- database?: unknown;
10
- plugins?: unknown[];
11
- pages?: unknown[];
12
- secret?: string;
13
- auth?: {
14
- baseURL?: string;
15
- plugins?: unknown[];
16
- };
17
- }
18
- interface InternalConfig extends Config {
19
- auth?: {
20
- baseURL: string;
21
- plugins: unknown[];
22
- };
23
- }
24
- export declare class ConfigLoaderError extends Error {
25
- readonly code?: string | undefined;
26
- constructor(message: string, code?: string | undefined);
27
- }
28
- export interface MinimalConfig {
29
- secret: string;
30
- auth?: {
31
- baseURL?: string;
32
- plugins?: unknown[];
33
- };
34
- }
35
- export interface LoadConfigResult {
36
- rawConfig: Config;
37
- processedConfig: InternalConfig;
38
- configPath: string;
39
- }
40
- /**
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.
45
- */
46
- export declare function loadRawConfig(cwd: string): Promise<{
47
- config: Config;
48
- configPath: string;
49
- }>;
50
- /**
51
- * Process raw config via defineConfig to get InternalConfig
52
- */
53
- export declare function processConfig(rawConfig: Config): InternalConfig;
54
- /**
55
- * Load and process a deesse config
56
- */
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
- }>;
68
- /**
69
- * Check if the admin plugin is configured in the config
70
- */
71
- export declare function hasAdminPlugin(config: InternalConfig): boolean;
72
- /**
73
- * Verify admin plugin is configured, throw if not
74
- */
75
- export declare function verifyAdminPlugin(config: InternalConfig): void;
76
- export {};
77
- //# sourceMappingURL=loader.d.ts.map
@@ -1 +0,0 @@
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"}