@deessejs/cli 0.0.18 → 0.1.0
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 +2 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +78 -6
- package/dist/index.js.map +1 -0
- package/package.json +27 -22
- package/dist/index.mjs +0 -7
package/bin/deesse.js
ADDED
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,79 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
import * as p from '@clack/prompts';
|
|
3
|
+
import { readFileSync } from 'node:fs';
|
|
4
|
+
import { execSync } from 'node:child_process';
|
|
5
|
+
const getVersion = () => {
|
|
6
|
+
try {
|
|
7
|
+
const packageJson = JSON.parse(readFileSync(new URL('../package.json', import.meta.url), 'utf-8'));
|
|
8
|
+
return packageJson.version;
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
return '0.0.1';
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
const showHelp = () => {
|
|
15
|
+
console.log(`
|
|
16
|
+
DeesseJS CLI v${getVersion()}
|
|
17
|
+
|
|
18
|
+
Usage: npx deesse <command>
|
|
19
|
+
|
|
20
|
+
Commands:
|
|
21
|
+
help Show this help message
|
|
22
|
+
init Initialize a new DeesseJS project in current directory
|
|
23
|
+
|
|
24
|
+
Examples:
|
|
25
|
+
npx deesse help
|
|
26
|
+
npx deesse init
|
|
27
|
+
|
|
28
|
+
More commands coming soon!
|
|
29
|
+
|
|
30
|
+
For more information, visit: https://github.com/nesalia-inc/deessejs
|
|
31
|
+
`);
|
|
32
|
+
};
|
|
33
|
+
const runInit = async () => {
|
|
34
|
+
try {
|
|
35
|
+
p.intro(`DeesseJS CLI v${getVersion()}`);
|
|
36
|
+
const confirm = await p.confirm({
|
|
37
|
+
message: 'Initialize a new DeesseJS project in the current directory?',
|
|
38
|
+
});
|
|
39
|
+
if (p.isCancel(confirm) || !confirm) {
|
|
40
|
+
p.cancel('Initialization cancelled.');
|
|
41
|
+
process.exit(0);
|
|
42
|
+
}
|
|
43
|
+
// Use create-deesse-app with current directory
|
|
44
|
+
p.log.info('Running create-deesse-app in current directory...');
|
|
45
|
+
execSync('npx create-deesse-app@latest .', { stdio: 'inherit' });
|
|
46
|
+
p.outro('Project initialized successfully!');
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
p.cancel('Failed to initialize project');
|
|
50
|
+
if (error instanceof Error) {
|
|
51
|
+
console.error(error.message);
|
|
52
|
+
}
|
|
53
|
+
process.exit(1);
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
async function main() {
|
|
57
|
+
const args = process.argv.slice(2);
|
|
58
|
+
const command = args[0] || 'help';
|
|
59
|
+
switch (command) {
|
|
60
|
+
case 'help':
|
|
61
|
+
case '--help':
|
|
62
|
+
case '-h':
|
|
63
|
+
showHelp();
|
|
64
|
+
break;
|
|
65
|
+
case 'init':
|
|
66
|
+
await runInit();
|
|
67
|
+
break;
|
|
68
|
+
default:
|
|
69
|
+
console.log(`Unknown command: ${command}`);
|
|
70
|
+
console.log('Run "npx deesse help" for usage information.');
|
|
71
|
+
process.exit(1);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
main().catch((error) => {
|
|
75
|
+
console.error('An error occurred:');
|
|
76
|
+
console.error(error);
|
|
77
|
+
process.exit(1);
|
|
78
|
+
});
|
|
79
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,MAAM,UAAU,GAAG,GAAG,EAAE;IACtB,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,YAAY,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CACnE,CAAC;QACF,OAAO,WAAW,CAAC,OAAO,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,GAAG,EAAE;IACpB,OAAO,CAAC,GAAG,CAAC;gBACE,UAAU,EAAE;;;;;;;;;;;;;;;GAezB,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;IACzB,IAAI,CAAC;QACH,CAAC,CAAC,KAAK,CAAC,iBAAiB,UAAU,EAAE,EAAE,CAAC,CAAC;QAEzC,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC;YAC9B,OAAO,EAAE,6DAA6D;SACvE,CAAC,CAAC;QAEH,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACpC,CAAC,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,+CAA+C;QAC/C,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;QAChE,QAAQ,CAAC,gCAAgC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAEjE,CAAC,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,CAAC,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC;QACzC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC;AAEF,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;IAElC,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ,CAAC;QACd,KAAK,IAAI;YACP,QAAQ,EAAE,CAAC;YACX,MAAM;QAER,KAAK,MAAM;YACT,MAAM,OAAO,EAAE,CAAC;YAChB,MAAM;QAER;YACE,OAAO,CAAC,GAAG,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;YAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACpC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,33 +1,38 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deessejs/cli",
|
|
3
|
-
"version": "0.0
|
|
4
|
-
"description": "DeesseJS CLI",
|
|
5
|
-
"
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "DeesseJS CLI for managing DeesseJS projects",
|
|
5
|
+
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
|
-
"deesse": "./
|
|
7
|
+
"deesse": "./bin/deesse.js"
|
|
8
8
|
},
|
|
9
9
|
"files": [
|
|
10
|
+
"bin",
|
|
10
11
|
"dist"
|
|
11
12
|
],
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
},
|
|
13
|
+
"keywords": [
|
|
14
|
+
"cli",
|
|
15
|
+
"deessejs",
|
|
16
|
+
"deesse"
|
|
17
|
+
],
|
|
18
|
+
"author": "DeesseJS",
|
|
19
|
+
"license": "MIT",
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"
|
|
22
|
-
"dotenv": "^17.2.3",
|
|
23
|
-
"drizzle-kit": "^0.31.8",
|
|
24
|
-
"drizzle-orm": "^0.45.1",
|
|
25
|
-
"execa": "^9.6.1",
|
|
26
|
-
"picocolors": "^1.1.1"
|
|
21
|
+
"@clack/prompts": "^0.8.2"
|
|
27
22
|
},
|
|
28
23
|
"devDependencies": {
|
|
29
|
-
"@types/node": "^
|
|
30
|
-
"
|
|
31
|
-
|
|
24
|
+
"@types/node": "^22.10.6",
|
|
25
|
+
"typescript": "^5.7.2"
|
|
26
|
+
},
|
|
27
|
+
"engines": {
|
|
28
|
+
"node": ">=18.0.0"
|
|
29
|
+
},
|
|
30
|
+
"scripts": {
|
|
31
|
+
"dev": "tsc --watch",
|
|
32
|
+
"build": "tsc",
|
|
33
|
+
"type-check": "tsc --noEmit",
|
|
34
|
+
"lint": "eslint src",
|
|
35
|
+
"lint:fix": "eslint src --fix",
|
|
36
|
+
"clean": "rm -rf dist"
|
|
32
37
|
}
|
|
33
|
-
}
|
|
38
|
+
}
|
package/dist/index.mjs
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import{Command as h}from"commander";import{execa as d}from"execa";import t from"picocolors";import*as m from"dotenv";import{readFileSync as u,existsSync as f}from"fs";import{resolve as y}from"path";m.config();var i=new h;i.name("deesse").description("CLI for the DeesseJS framework").version("1.0.0");function p(){let e=(process.env.npm_config_user_agent||"").includes("pnpm");return{name:e?"pnpm":"npm",isPnpm:e}}async function g(){let n=p(),e=y(process.cwd(),"package.json");f(e)||(console.error(t.red("\u274C No package.json found. Please run this command in your project root.")),process.exit(1));let s=JSON.parse(u(e,"utf-8")),r={...s.dependencies,...s.devDependencies},a=["drizzle-orm","drizzle-kit","@better-auth/cli"].filter(c=>!r[c]);if(a.length>0){console.log(t.yellow(`\u{1F4E6} Missing required dependencies: ${a.join(", ")}`)),console.log(t.blue(`Installing with ${n.name}...`));let c=n.name==="pnpm"?"add":"install";try{await d(n.name,[c,"-D",...a],{stdio:"inherit"}),console.log(t.green(`\u2705 Dependencies installed successfully.
|
|
3
|
-
`))}catch{console.error(t.red(`\u274C Failed to install dependencies with ${n.name}.`)),process.exit(1)}}}async function l(n,e){let{isPnpm:s}=p(),r,o;n==="better-auth"?s?(r="pnpm",o=["dlx","@better-auth/cli",...e]):(r="npx",o=["@better-auth/cli",...e]):s?(r="pnpm",o=["exec","drizzle-kit",...e]):(r="npx",o=["drizzle-kit",...e]),await d(r,o,{stdio:"inherit"})}i.command("generate").description("Generate the Better Auth schema").action(async()=>{await g(),console.log(t.blue("\u2728 Generating Better Auth schema..."));try{await l("better-auth",["generate","--output","./.deesse/schema.ts","--config","./src/deesse.config.ts","--yes"]),console.log(t.green("\u2705 Better Auth schema generated in ./.deesse/schema.ts"))}catch{console.error(t.red("\u274C Failed to generate Better Auth schema")),process.exit(1)}});i.command("migrate").description("Sync schema and push to database (Better Auth + Drizzle)").option("--dialect <dialect>","Database dialect (postgresql, mysql, sqlite)","postgresql").action(async n=>{await g(),console.log(t.cyan(`
|
|
4
|
-
Step 1: Synchronizing framework schema...`));try{await l("better-auth",["generate","--output","./.deesse/schema.ts","--config","./src/deesse.config.ts","--yes"])}catch{process.exit(1)}console.log(t.cyan(`
|
|
5
|
-
Step 2: Pushing schema to database via Drizzle...`));let e=process.env.DATABASE_URL;e||(console.error(t.red("\u274C Error: DATABASE_URL is missing in your .env file.")),process.exit(1));try{await l("drizzle",["push",`--dialect=${n.dialect}`,"--schema=./.deesse/schema.ts",`--url=${e}`]),console.log(t.green(`
|
|
6
|
-
\u2705 Database synchronization completed!`))}catch{console.error(t.red(`
|
|
7
|
-
\u274C Failed to push schema via Drizzle.`)),process.exit(1)}});i.parse();
|