magicpath-ai 1.0.4 ā 1.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/dist/cli.js +51 -14
- package/dist/cli.js.map +1 -1
- package/dist/util/error.d.ts +1 -0
- package/dist/util/error.js +1 -0
- package/dist/util/error.js.map +1 -1
- package/dist/util/index.d.ts +3 -0
- package/dist/util/index.js +51 -1
- package/dist/util/index.js.map +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -4,8 +4,8 @@ import { program } from 'commander';
|
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
import ora from 'ora';
|
|
6
6
|
import { enableDebugLogger, logger } from './util/logger.js';
|
|
7
|
-
import { downloadProject, releaseProject, unpackProject, } from './util/index.js';
|
|
8
|
-
import { MagicPathError } from './util/error.js';
|
|
7
|
+
import { downloadProject, releaseProject, unpackProject, installDependencies, openInIDE, } from './util/index.js';
|
|
8
|
+
import { GenericError, MagicPathError } from './util/error.js';
|
|
9
9
|
program.name('magicpath').description('CLI for MagicPath AI').version('1.0.0');
|
|
10
10
|
const cloneOptionsSchema = z.object({
|
|
11
11
|
key: z.string(),
|
|
@@ -38,11 +38,12 @@ program
|
|
|
38
38
|
}
|
|
39
39
|
catch (err) {
|
|
40
40
|
downloadSpinner.fail('Download failed');
|
|
41
|
-
console.error('\nā Oops! Failed to download the project.');
|
|
42
41
|
if (err instanceof MagicPathError) {
|
|
43
|
-
|
|
42
|
+
throw err;
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
throw GenericError;
|
|
44
46
|
}
|
|
45
|
-
return;
|
|
46
47
|
}
|
|
47
48
|
// Step 2: Ask for project name
|
|
48
49
|
const response = await prompts({
|
|
@@ -52,24 +53,60 @@ program
|
|
|
52
53
|
initial: 'magicpath-project',
|
|
53
54
|
});
|
|
54
55
|
if (!response.projectName) {
|
|
55
|
-
console.log('Project creation cancelled.');
|
|
56
56
|
releaseProject(filename);
|
|
57
|
-
|
|
57
|
+
throw new MagicPathError('Project creation cancelled');
|
|
58
58
|
}
|
|
59
59
|
// Step 3: Unpack project
|
|
60
60
|
const unpackSpinner = ora('š¦ Unpacking project...').start();
|
|
61
|
+
let projectDir;
|
|
61
62
|
try {
|
|
62
|
-
unpackProject(filename, response.projectName);
|
|
63
|
+
projectDir = unpackProject(filename, response.projectName);
|
|
63
64
|
unpackSpinner.succeed(`Project unpacked to ${response.projectName}`);
|
|
64
65
|
}
|
|
65
|
-
catch (
|
|
66
|
+
catch (err) {
|
|
66
67
|
unpackSpinner.fail('Failed to unpack project');
|
|
67
|
-
console.error('\nā Oops! Failed to unpack the project.');
|
|
68
|
-
if (error instanceof MagicPathError) {
|
|
69
|
-
console.error(`Reason: ${error.message}`);
|
|
70
|
-
}
|
|
71
68
|
releaseProject(filename);
|
|
72
|
-
|
|
69
|
+
if (err instanceof MagicPathError) {
|
|
70
|
+
throw err;
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
throw GenericError;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
// Step 4: Install dependencies
|
|
77
|
+
try {
|
|
78
|
+
installDependencies(projectDir);
|
|
79
|
+
}
|
|
80
|
+
catch (err) {
|
|
81
|
+
if (err instanceof MagicPathError) {
|
|
82
|
+
throw err;
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
throw GenericError;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
// Step 5: Ask which IDE to open the project in
|
|
89
|
+
const ideResponse = await prompts({
|
|
90
|
+
type: 'select',
|
|
91
|
+
name: 'ide',
|
|
92
|
+
message: 'Which IDE would you like to open the project in?',
|
|
93
|
+
choices: [
|
|
94
|
+
{ title: 'Cursor', value: 'cursor' },
|
|
95
|
+
{ title: 'VS Code', value: 'vscode' },
|
|
96
|
+
{ title: 'WebStorm', value: 'webstorm' },
|
|
97
|
+
{ title: 'None (just finish)', value: 'none' },
|
|
98
|
+
],
|
|
99
|
+
initial: 0,
|
|
100
|
+
});
|
|
101
|
+
// Step 6: Open in IDE if selected
|
|
102
|
+
if (ideResponse.ide && ideResponse.ide !== 'none') {
|
|
103
|
+
try {
|
|
104
|
+
openInIDE(projectDir, ideResponse.ide);
|
|
105
|
+
}
|
|
106
|
+
catch (err) {
|
|
107
|
+
// Don't throw error if IDE opening fails, just continue
|
|
108
|
+
console.log('ā ļø IDE opening failed, but your project is ready!');
|
|
109
|
+
}
|
|
73
110
|
}
|
|
74
111
|
console.log('\nš Done! Your project is ready to go.');
|
|
75
112
|
});
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EACL,eAAe,EACf,cAAc,EACd,aAAa,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/util/error.d.ts
CHANGED
package/dist/util/error.js
CHANGED
package/dist/util/error.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/util/error.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,cAAe,SAAQ,KAAK;
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/util/error.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,cAAe,SAAQ,KAAK;IACvC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;CACF;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,cAAc,CAAC,uBAAuB,CAAC,CAAC"}
|
package/dist/util/index.d.ts
CHANGED
|
@@ -5,3 +5,6 @@ export declare function makeUrl(verison: APIVersion, endpoint: string): string;
|
|
|
5
5
|
export declare function downloadProject(key: string): Promise<string>;
|
|
6
6
|
export declare function releaseProject(filename: string): void;
|
|
7
7
|
export declare function unpackProject(filename: string, name: string): string;
|
|
8
|
+
export declare function installDependencies(projectDir: string): void;
|
|
9
|
+
export type WebIDE = 'vscode' | 'cursor' | 'webstorm';
|
|
10
|
+
export declare function openInIDE(projectDir: string, ide: WebIDE): void;
|
package/dist/util/index.js
CHANGED
|
@@ -4,6 +4,8 @@ import os from 'os';
|
|
|
4
4
|
import fs from 'fs-extra';
|
|
5
5
|
import AdmZip from 'adm-zip';
|
|
6
6
|
import { v4 as uuidv4 } from 'uuid';
|
|
7
|
+
import { execSync } from 'child_process';
|
|
8
|
+
import ora from 'ora';
|
|
7
9
|
import { MagicPathError } from './error.js';
|
|
8
10
|
const MAGICPATH_BASE_URL = 'https://api.magicpath.ai';
|
|
9
11
|
export var APIVersion;
|
|
@@ -39,7 +41,7 @@ export async function downloadProject(key) {
|
|
|
39
41
|
return filepath;
|
|
40
42
|
}
|
|
41
43
|
catch {
|
|
42
|
-
throw new MagicPathError(
|
|
44
|
+
throw new MagicPathError('Failed to download project. Make sure your key is valid.');
|
|
43
45
|
}
|
|
44
46
|
}
|
|
45
47
|
export function releaseProject(filename) {
|
|
@@ -68,4 +70,52 @@ export function unpackProject(filename, name) {
|
|
|
68
70
|
throw new MagicPathError('Failed to extract project. Please try again.');
|
|
69
71
|
}
|
|
70
72
|
}
|
|
73
|
+
export function installDependencies(projectDir) {
|
|
74
|
+
let hasYarn = false;
|
|
75
|
+
try {
|
|
76
|
+
execSync('yarn --version', { stdio: 'ignore' });
|
|
77
|
+
hasYarn = true;
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
hasYarn = false;
|
|
81
|
+
}
|
|
82
|
+
const packageManager = hasYarn ? 'yarn' : 'npm';
|
|
83
|
+
const installSpinner = ora(`š¦ Installing dependencies using ${packageManager}...`).start();
|
|
84
|
+
try {
|
|
85
|
+
const command = hasYarn ? 'yarn install' : 'npm install';
|
|
86
|
+
execSync(command, {
|
|
87
|
+
cwd: projectDir,
|
|
88
|
+
stdio: 'ignore', // Changed to ignore to avoid conflicts with spinner
|
|
89
|
+
});
|
|
90
|
+
installSpinner.succeed('Dependencies installed successfully!');
|
|
91
|
+
}
|
|
92
|
+
catch (err) {
|
|
93
|
+
installSpinner.fail('Failed to install dependencies');
|
|
94
|
+
throw new MagicPathError('Failed to install dependencies. Please check your internet connection and try again.');
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
export function openInIDE(projectDir, ide) {
|
|
98
|
+
const ideCommands = {
|
|
99
|
+
vscode: 'code .',
|
|
100
|
+
cursor: 'cursor .',
|
|
101
|
+
webstorm: 'webstorm .',
|
|
102
|
+
};
|
|
103
|
+
const ideNames = {
|
|
104
|
+
vscode: 'VS Code',
|
|
105
|
+
cursor: 'Cursor',
|
|
106
|
+
webstorm: 'WebStorm',
|
|
107
|
+
};
|
|
108
|
+
const openSpinner = ora(`š Opening project in ${ideNames[ide]}...`).start();
|
|
109
|
+
try {
|
|
110
|
+
execSync(ideCommands[ide], {
|
|
111
|
+
cwd: projectDir,
|
|
112
|
+
stdio: 'ignore',
|
|
113
|
+
});
|
|
114
|
+
openSpinner.succeed(`Project opened in ${ideNames[ide]}!`);
|
|
115
|
+
}
|
|
116
|
+
catch (err) {
|
|
117
|
+
openSpinner.fail(`Failed to open ${ideNames[ide]}`);
|
|
118
|
+
throw new MagicPathError(`Failed to open project in ${ideNames[ide]}. Make sure ${ideNames[ide]} is installed and available in your PATH.`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
71
121
|
//# sourceMappingURL=index.js.map
|
package/dist/util/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,MAAM,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,kBAAkB,GAAG,0BAA0B,CAAC;AAEtD,MAAM,CAAN,IAAY,UAEX;AAFD,WAAY,UAAU;IACpB,uBAAS,CAAA;AACX,CAAC,EAFW,UAAU,KAAV,UAAU,QAErB;AAED,MAAM,UAAU,OAAO,CAAC,OAAmB,EAAE,QAAgB;IAC3D,OAAO,GAAG,kBAAkB,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;AACxD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAW;IAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,uBAAuB,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,GAAG,MAAM,EAAE,MAAM,CAAC;IACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC;YAC3B,GAAG;YACH,MAAM,EAAE,EAAE,GAAG,EAAE;YACf,MAAM,EAAE,KAAK;YACb,YAAY,EAAE,QAAQ;SACvB,CAAC,CAAC;QACH,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3C,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,IAAI,CAAC;gBACH,QAAQ,CAAC,IAAI;qBACV,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;qBACpC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;qBACnB,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC5C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"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"}
|