@deessejs/cli 0.6.9 → 0.6.11
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/db/generate.d.ts +1 -3
- package/dist/commands/db/generate.d.ts.map +1 -1
- package/dist/commands/db/generate.js +10 -36
- package/dist/commands/db/generate.js.map +1 -1
- package/dist/commands/db/push.d.ts +1 -4
- package/dist/commands/db/push.d.ts.map +1 -1
- package/dist/commands/db/push.js +10 -39
- package/dist/commands/db/push.js.map +1 -1
- package/dist/lib/db/auth-schema.d.ts +6 -3
- package/dist/lib/db/auth-schema.d.ts.map +1 -1
- package/dist/lib/db/auth-schema.js +62 -10
- package/dist/lib/db/auth-schema.js.map +1 -1
- package/dist/lib/db/schema.d.ts +18 -1
- package/dist/lib/db/schema.d.ts.map +1 -1
- package/dist/lib/db/schema.js +67 -1
- package/dist/lib/db/schema.js.map +1 -1
- package/package.json +2 -1
|
@@ -2,9 +2,7 @@
|
|
|
2
2
|
* db:generate command
|
|
3
3
|
*
|
|
4
4
|
* Generates auth schema and user migrations with drizzle-kit.
|
|
5
|
-
*
|
|
6
|
-
* Requirements:
|
|
7
|
-
* - drizzle.config.ts: Standard drizzle-kit config with schema and out settings
|
|
5
|
+
* Automatically creates default schema and drizzle config if they don't exist.
|
|
8
6
|
*/
|
|
9
7
|
export interface DbGenerateOptions {
|
|
10
8
|
cwd?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/commands/db/generate.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/commands/db/generate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,MAAM,WAAW,iBAAiB;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,UAAU,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+B/E"}
|
|
@@ -2,50 +2,24 @@
|
|
|
2
2
|
* db:generate command
|
|
3
3
|
*
|
|
4
4
|
* Generates auth schema and user migrations with drizzle-kit.
|
|
5
|
-
*
|
|
6
|
-
* Requirements:
|
|
7
|
-
* - drizzle.config.ts: Standard drizzle-kit config with schema and out settings
|
|
5
|
+
* Automatically creates default schema and drizzle config if they don't exist.
|
|
8
6
|
*/
|
|
9
7
|
import { execSync } from 'node:child_process';
|
|
10
|
-
import {
|
|
8
|
+
import { schemaExists, drizzleConfigExists, createDefaultSchema, createDrizzleConfig, } from '../../lib/db/schema.js';
|
|
11
9
|
import { generateAuthSchema } from '../../lib/db/auth-schema.js';
|
|
12
|
-
import * as fs from 'node:fs/promises';
|
|
13
|
-
import * as path from 'node:path';
|
|
14
|
-
const SCHEMA_PATH = DEFAULT_SCHEMA_PATH;
|
|
15
|
-
const DRIZZLE_CONFIG_PATH = './drizzle.config.ts';
|
|
16
10
|
export async function dbGenerate(options = {}) {
|
|
17
11
|
const cwd = options.cwd ?? process.cwd();
|
|
18
12
|
// Generate auth schema (mandatory in DeesseJS)
|
|
19
13
|
await generateAuthSchema(cwd);
|
|
20
|
-
//
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
catch {
|
|
25
|
-
throw new Error(`db:generate requires ${SCHEMA_PATH} to exist.\n` +
|
|
26
|
-
`This file should export your Drizzle tables and import the auth schema.\n\n` +
|
|
27
|
-
`Example:\n` +
|
|
28
|
-
` import { authSchema } from './auth-schema';\n\n` +
|
|
29
|
-
` export const schema = {\n` +
|
|
30
|
-
` ...authSchema,\n` +
|
|
31
|
-
` // your tables here\n` +
|
|
32
|
-
` };`);
|
|
33
|
-
}
|
|
34
|
-
// Verify drizzle.config.ts exists
|
|
35
|
-
const drizzleConfigPath = path.join(cwd, DRIZZLE_CONFIG_PATH);
|
|
36
|
-
try {
|
|
37
|
-
await fs.access(drizzleConfigPath);
|
|
14
|
+
// Auto-create schema file if it doesn't exist
|
|
15
|
+
if (!(await schemaExists(cwd))) {
|
|
16
|
+
console.warn('Creating default src/db/schema.ts...');
|
|
17
|
+
await createDefaultSchema(cwd);
|
|
38
18
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
`import { defineConfig } from 'drizzle-kit';\n` +
|
|
44
|
-
`export default defineConfig({\n` +
|
|
45
|
-
` schema: './src/db/schema.ts',\n` +
|
|
46
|
-
` out: './src/db/migrations',\n` +
|
|
47
|
-
` dialect: 'postgresql',\n` +
|
|
48
|
-
`});`);
|
|
19
|
+
// Auto-create drizzle config if it doesn't exist
|
|
20
|
+
if (!(await drizzleConfigExists(cwd))) {
|
|
21
|
+
console.warn('Creating default drizzle.config.ts...');
|
|
22
|
+
await createDrizzleConfig(cwd);
|
|
49
23
|
}
|
|
50
24
|
console.warn('Generating migrations with drizzle-kit...');
|
|
51
25
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/commands/db/generate.ts"],"names":[],"mappings":"AAAA
|
|
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,EACL,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAMjE,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,UAA6B,EAAE;IAC9D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEzC,+CAA+C;IAC/C,MAAM,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAE9B,8CAA8C;IAC9C,IAAI,CAAC,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACrD,MAAM,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,iDAAiD;IACjD,IAAI,CAAC,CAAC,MAAM,mBAAmB,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QACtD,MAAM,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IAE1D,IAAI,CAAC;QACH,QAAQ,CAAC,0BAA0B,EAAE;YACnC,GAAG;YACH,KAAK,EAAE,SAAS;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"}
|
|
@@ -2,10 +2,7 @@
|
|
|
2
2
|
* db:push command
|
|
3
3
|
*
|
|
4
4
|
* Generates auth schema and pushes to database with drizzle-kit.
|
|
5
|
-
*
|
|
6
|
-
* Requirements:
|
|
7
|
-
* - drizzle.config.ts: Standard drizzle-kit config with schema and dbCredentials
|
|
8
|
-
* - .env: Should contain DATABASE_URL (loaded automatically)
|
|
5
|
+
* Automatically creates default schema and drizzle config if they don't exist.
|
|
9
6
|
*/
|
|
10
7
|
export interface DbPushOptions {
|
|
11
8
|
force?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../../src/commands/db/push.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../../src/commands/db/push.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH,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,CAwCvE"}
|
package/dist/commands/db/push.js
CHANGED
|
@@ -2,54 +2,25 @@
|
|
|
2
2
|
* db:push command
|
|
3
3
|
*
|
|
4
4
|
* Generates auth schema and pushes to database with drizzle-kit.
|
|
5
|
-
*
|
|
6
|
-
* Requirements:
|
|
7
|
-
* - drizzle.config.ts: Standard drizzle-kit config with schema and dbCredentials
|
|
8
|
-
* - .env: Should contain DATABASE_URL (loaded automatically)
|
|
5
|
+
* Automatically creates default schema and drizzle config if they don't exist.
|
|
9
6
|
*/
|
|
10
7
|
import { execSync } from 'node:child_process';
|
|
11
|
-
import {
|
|
8
|
+
import { schemaExists, drizzleConfigExists, createDefaultSchema, createDrizzleConfig, } from '../../lib/db/schema.js';
|
|
12
9
|
import { generateAuthSchema } from '../../lib/db/auth-schema.js';
|
|
13
|
-
import * as fs from 'node:fs/promises';
|
|
14
|
-
import * as path from 'node:path';
|
|
15
10
|
import * as dotenv from 'dotenv';
|
|
16
|
-
const DRIZZLE_CONFIG_PATH = './drizzle.config.ts';
|
|
17
|
-
const SCHEMA_PATH = DEFAULT_SCHEMA_PATH;
|
|
18
11
|
export async function dbPush(options = {}) {
|
|
19
12
|
const { force = false, cwd = process.cwd() } = options;
|
|
20
13
|
// Generate auth schema (mandatory in DeesseJS)
|
|
21
14
|
await generateAuthSchema(cwd);
|
|
22
|
-
//
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
catch {
|
|
27
|
-
throw new Error(`db:push requires ${SCHEMA_PATH} to exist.\n` +
|
|
28
|
-
`This file should export your Drizzle tables and import the auth schema.\n\n` +
|
|
29
|
-
`Example:\n` +
|
|
30
|
-
` import { authSchema } from './auth-schema';\n\n` +
|
|
31
|
-
` export const schema = {\n` +
|
|
32
|
-
` ...authSchema,\n` +
|
|
33
|
-
` // your tables here\n` +
|
|
34
|
-
` };`);
|
|
35
|
-
}
|
|
36
|
-
// Verify drizzle.config.ts exists
|
|
37
|
-
const drizzleConfigPath = path.join(cwd, DRIZZLE_CONFIG_PATH);
|
|
38
|
-
try {
|
|
39
|
-
await fs.access(drizzleConfigPath);
|
|
15
|
+
// Auto-create schema file if it doesn't exist
|
|
16
|
+
if (!(await schemaExists(cwd))) {
|
|
17
|
+
console.warn('Creating default src/db/schema.ts...');
|
|
18
|
+
await createDefaultSchema(cwd);
|
|
40
19
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
`import { defineConfig } from 'drizzle-kit';\n` +
|
|
46
|
-
`export default defineConfig({\n` +
|
|
47
|
-
` schema: './src/db/schema.ts',\n` +
|
|
48
|
-
` dialect: 'postgresql',\n` +
|
|
49
|
-
` dbCredentials: {\n` +
|
|
50
|
-
` url: process.env.DATABASE_URL,\n` +
|
|
51
|
-
` },\n` +
|
|
52
|
-
`});`);
|
|
20
|
+
// Auto-create drizzle config if it doesn't exist
|
|
21
|
+
if (!(await drizzleConfigExists(cwd))) {
|
|
22
|
+
console.warn('Creating default drizzle.config.ts...');
|
|
23
|
+
await createDrizzleConfig(cwd);
|
|
53
24
|
}
|
|
54
25
|
console.warn('Pushing schema to database with drizzle-kit...');
|
|
55
26
|
// Load .env file if it exists
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../../src/commands/db/push.ts"],"names":[],"mappings":"AAAA
|
|
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,EACL,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAChC,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,8CAA8C;IAC9C,IAAI,CAAC,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACrD,MAAM,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,iDAAiD;IACjD,IAAI,CAAC,CAAC,MAAM,mBAAmB,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QACtD,MAAM,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,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"}
|
|
@@ -3,12 +3,15 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Since auth is mandatory in DeesseJS, db:generate and db:push
|
|
5
5
|
* must also generate the auth schema tables.
|
|
6
|
+
*
|
|
7
|
+
* Uses the programmatic API (generateDrizzleSchema from auth/api)
|
|
8
|
+
* instead of spawning npx auth@latest generate.
|
|
6
9
|
*/
|
|
7
10
|
/**
|
|
8
|
-
* Generate the better-auth schema using the
|
|
11
|
+
* Generate the better-auth schema using the programmatic API
|
|
9
12
|
*
|
|
10
|
-
* This
|
|
11
|
-
*
|
|
13
|
+
* This calls generateDrizzleSchema() directly to generate the auth tables
|
|
14
|
+
* (user, session, account, verification) without needing a config file.
|
|
12
15
|
*/
|
|
13
16
|
export declare function generateAuthSchema(cwd?: string): Promise<void>;
|
|
14
17
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-schema.d.ts","sourceRoot":"","sources":["../../../src/lib/db/auth-schema.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"auth-schema.d.ts","sourceRoot":"","sources":["../../../src/lib/db/auth-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA8DH;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0CnF;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"}
|
|
@@ -3,29 +3,81 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Since auth is mandatory in DeesseJS, db:generate and db:push
|
|
5
5
|
* must also generate the auth schema tables.
|
|
6
|
+
*
|
|
7
|
+
* Uses the programmatic API (generateDrizzleSchema from auth/api)
|
|
8
|
+
* instead of spawning npx auth@latest generate.
|
|
6
9
|
*/
|
|
7
|
-
import {
|
|
8
|
-
import
|
|
10
|
+
import { writeFile, access, mkdir } from 'node:fs/promises';
|
|
11
|
+
import { existsSync } from 'node:fs';
|
|
9
12
|
import * as path from 'node:path';
|
|
10
13
|
const AUTH_SCHEMA_OUTPUT = './auth-schema.ts';
|
|
14
|
+
async function generateDrizzleSchemaInternal(
|
|
15
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
16
|
+
opts) {
|
|
17
|
+
// Dynamic import to get the generator
|
|
18
|
+
const { generateDrizzleSchema } = await import('auth/api');
|
|
19
|
+
return generateDrizzleSchema(opts);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Create a mock adapter for schema generation
|
|
23
|
+
*/
|
|
24
|
+
function createMockAdapter(dialect) {
|
|
25
|
+
// Map postgresql to pg for drizzle
|
|
26
|
+
const provider = dialect === 'postgresql' ? 'pg' : dialect;
|
|
27
|
+
return {
|
|
28
|
+
id: 'drizzle',
|
|
29
|
+
options: {
|
|
30
|
+
adapterConfig: {
|
|
31
|
+
adapterId: 'drizzle',
|
|
32
|
+
},
|
|
33
|
+
provider,
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
}
|
|
11
37
|
/**
|
|
12
|
-
*
|
|
38
|
+
* Ensure a directory exists
|
|
39
|
+
*/
|
|
40
|
+
async function ensureDir(dirPath) {
|
|
41
|
+
if (!existsSync(dirPath)) {
|
|
42
|
+
await mkdir(dirPath, { recursive: true });
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Generate the better-auth schema using the programmatic API
|
|
13
47
|
*
|
|
14
|
-
* This
|
|
15
|
-
*
|
|
48
|
+
* This calls generateDrizzleSchema() directly to generate the auth tables
|
|
49
|
+
* (user, session, account, verification) without needing a config file.
|
|
16
50
|
*/
|
|
17
51
|
export async function generateAuthSchema(cwd = process.cwd()) {
|
|
18
52
|
const outputPath = path.resolve(cwd, AUTH_SCHEMA_OUTPUT);
|
|
19
53
|
console.warn('Generating better-auth schema...');
|
|
20
54
|
try {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
55
|
+
// Create mock adapter for drizzle with postgresql dialect
|
|
56
|
+
const adapter = createMockAdapter('postgresql');
|
|
57
|
+
// Generate the schema using the programmatic API
|
|
58
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
59
|
+
const schema = await generateDrizzleSchemaInternal({
|
|
60
|
+
file: outputPath,
|
|
61
|
+
adapter,
|
|
62
|
+
options: {
|
|
63
|
+
database: {},
|
|
64
|
+
plugins: [],
|
|
65
|
+
},
|
|
24
66
|
});
|
|
67
|
+
if (!schema.code) {
|
|
68
|
+
console.warn('Auth schema is already up to date.');
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
// Ensure parent directory exists
|
|
72
|
+
const parentDir = path.dirname(outputPath);
|
|
73
|
+
await ensureDir(parentDir);
|
|
74
|
+
// Write the generated schema to file
|
|
75
|
+
await writeFile(outputPath, schema.code, 'utf-8');
|
|
76
|
+
console.warn(`Auth schema generated: ${outputPath}`);
|
|
25
77
|
}
|
|
26
78
|
catch (error) {
|
|
27
79
|
if (error.code === 'ENOENT') {
|
|
28
|
-
throw new Error('better-auth
|
|
80
|
+
throw new Error('better-auth schema generation failed. Please ensure better-auth is installed:\n' +
|
|
29
81
|
' npm install better-auth');
|
|
30
82
|
}
|
|
31
83
|
throw error;
|
|
@@ -37,7 +89,7 @@ export async function generateAuthSchema(cwd = process.cwd()) {
|
|
|
37
89
|
export async function authSchemaExists(cwd = process.cwd()) {
|
|
38
90
|
const outputPath = path.resolve(cwd, AUTH_SCHEMA_OUTPUT);
|
|
39
91
|
try {
|
|
40
|
-
await
|
|
92
|
+
await access(outputPath);
|
|
41
93
|
return true;
|
|
42
94
|
}
|
|
43
95
|
catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-schema.js","sourceRoot":"","sources":["../../../src/lib/db/auth-schema.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"auth-schema.js","sourceRoot":"","sources":["../../../src/lib/db/auth-schema.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/db/schema.d.ts
CHANGED
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
* not file paths.
|
|
7
7
|
*/
|
|
8
8
|
declare const DEFAULT_SCHEMA_PATH = "./src/db/schema.ts";
|
|
9
|
-
|
|
9
|
+
declare const DEFAULT_DRIZZLE_CONFIG_PATH = "./drizzle.config.ts";
|
|
10
|
+
export { DEFAULT_SCHEMA_PATH, DEFAULT_DRIZZLE_CONFIG_PATH };
|
|
10
11
|
export interface SchemaLoaderResult {
|
|
11
12
|
schema: Record<string, unknown>;
|
|
12
13
|
schemaPath: string;
|
|
@@ -23,4 +24,20 @@ export declare function loadSchema(cwd?: string): Promise<SchemaLoaderResult>;
|
|
|
23
24
|
* Verify the schema file exists
|
|
24
25
|
*/
|
|
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>;
|
|
26
43
|
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/lib/db/schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/lib/db/schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,QAAA,MAAM,mBAAmB,uBAAuB,CAAC;AACjD,QAAA,MAAM,2BAA2B,wBAAwB,CAAC;AAG1D,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,CAAC;AAE5D,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,iBAAkB,SAAQ,KAAK;aACG,IAAI,CAAC,EAAE,MAAM;gBAA9C,OAAO,EAAE,MAAM,EAAkB,IAAI,CAAC,EAAE,MAAM,YAAA;CAI3D;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAwCzF;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAanF;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,OAAO,CAAC,CAQhF;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,OAAO,CAAC,CAQvF;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBpF;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAcpF"}
|
package/dist/lib/db/schema.js
CHANGED
|
@@ -7,8 +7,12 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import * as path from 'node:path';
|
|
9
9
|
import { createRequire } from 'node:module';
|
|
10
|
+
import { writeFile, access, mkdir } from 'node:fs/promises';
|
|
11
|
+
import { existsSync } from 'node:fs';
|
|
10
12
|
const DEFAULT_SCHEMA_PATH = './src/db/schema.ts';
|
|
11
|
-
|
|
13
|
+
const DEFAULT_DRIZZLE_CONFIG_PATH = './drizzle.config.ts';
|
|
14
|
+
const DEFAULT_SCHEMA_DIR = './src/db';
|
|
15
|
+
export { DEFAULT_SCHEMA_PATH, DEFAULT_DRIZZLE_CONFIG_PATH };
|
|
12
16
|
export class SchemaLoaderError extends Error {
|
|
13
17
|
code;
|
|
14
18
|
constructor(message, code) {
|
|
@@ -68,4 +72,66 @@ export async function verifySchemaPath(cwd = process.cwd()) {
|
|
|
68
72
|
`Please create this file and export your Drizzle tables.`);
|
|
69
73
|
}
|
|
70
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* Check if schema file exists
|
|
77
|
+
*/
|
|
78
|
+
export async function schemaExists(cwd = process.cwd()) {
|
|
79
|
+
const schemaPath = path.resolve(cwd, DEFAULT_SCHEMA_PATH);
|
|
80
|
+
try {
|
|
81
|
+
await access(schemaPath);
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Check if drizzle config exists
|
|
90
|
+
*/
|
|
91
|
+
export async function drizzleConfigExists(cwd = process.cwd()) {
|
|
92
|
+
const configPath = path.resolve(cwd, DEFAULT_DRIZZLE_CONFIG_PATH);
|
|
93
|
+
try {
|
|
94
|
+
await access(configPath);
|
|
95
|
+
return true;
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Create the default schema file with auth schema import
|
|
103
|
+
*/
|
|
104
|
+
export async function createDefaultSchema(cwd = process.cwd()) {
|
|
105
|
+
const schemaDir = path.resolve(cwd, DEFAULT_SCHEMA_DIR);
|
|
106
|
+
const schemaPath = path.resolve(cwd, DEFAULT_SCHEMA_PATH);
|
|
107
|
+
// Ensure src/db directory exists
|
|
108
|
+
if (!existsSync(schemaDir)) {
|
|
109
|
+
await mkdir(schemaDir, { recursive: true });
|
|
110
|
+
}
|
|
111
|
+
const schemaContent = `import { authSchema } from '../auth-schema';
|
|
112
|
+
|
|
113
|
+
export const schema = {
|
|
114
|
+
...authSchema,
|
|
115
|
+
// your tables here
|
|
116
|
+
};
|
|
117
|
+
`;
|
|
118
|
+
await writeFile(schemaPath, schemaContent, 'utf-8');
|
|
119
|
+
console.warn(`Created default schema: ${schemaPath}`);
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Create the default drizzle config file
|
|
123
|
+
*/
|
|
124
|
+
export async function createDrizzleConfig(cwd = process.cwd()) {
|
|
125
|
+
const configPath = path.resolve(cwd, DEFAULT_DRIZZLE_CONFIG_PATH);
|
|
126
|
+
const configContent = `import { defineConfig } from 'drizzle-kit';
|
|
127
|
+
|
|
128
|
+
export default defineConfig({
|
|
129
|
+
schema: './src/db/schema.ts',
|
|
130
|
+
out: './src/db/migrations',
|
|
131
|
+
dialect: 'postgresql',
|
|
132
|
+
});
|
|
133
|
+
`;
|
|
134
|
+
await writeFile(configPath, configContent, 'utf-8');
|
|
135
|
+
console.warn(`Created drizzle config: ${configPath}`);
|
|
136
|
+
}
|
|
71
137
|
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/lib/db/schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/lib/db/schema.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deessejs/cli",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.11",
|
|
4
4
|
"description": "DeesseJS CLI for managing DeesseJS projects",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -34,6 +34,7 @@
|
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@better-auth/drizzle-adapter": "^1.0.0",
|
|
36
36
|
"@clack/prompts": "^0.8.2",
|
|
37
|
+
"auth": "^1.6.0",
|
|
37
38
|
"better-auth": "^1.0.0",
|
|
38
39
|
"dotenv": "^17.3.1",
|
|
39
40
|
"drizzle-orm": "^0.38.0",
|