@mexty/cli 1.1.0 → 1.3.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/commands/create.d.ts +9 -0
- package/dist/commands/create.d.ts.map +1 -0
- package/dist/commands/create.js +118 -0
- package/dist/commands/create.js.map +1 -0
- package/dist/commands/delete.d.ts +2 -0
- package/dist/commands/delete.d.ts.map +1 -0
- package/dist/commands/delete.js +59 -0
- package/dist/commands/delete.js.map +1 -0
- package/dist/commands/fork.d.ts +2 -0
- package/dist/commands/fork.d.ts.map +1 -0
- package/dist/commands/fork.js +57 -0
- package/dist/commands/fork.js.map +1 -0
- package/dist/commands/login.d.ts +2 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +90 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/publish.d.ts +2 -0
- package/dist/commands/publish.d.ts.map +1 -0
- package/dist/commands/publish.js +144 -0
- package/dist/commands/publish.js.map +1 -0
- package/dist/commands/save.d.ts +2 -0
- package/dist/commands/save.d.ts.map +1 -0
- package/dist/commands/save.js +162 -0
- package/dist/commands/save.js.map +1 -0
- package/dist/commands/sync.d.ts +2 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +250 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +85 -0
- package/dist/index.js.map +1 -0
- package/dist/utils/api.d.ts +81 -0
- package/dist/utils/api.d.ts.map +1 -0
- package/dist/utils/api.js +161 -0
- package/dist/utils/api.js.map +1 -0
- package/dist/utils/auth.d.ts +4 -0
- package/dist/utils/auth.d.ts.map +1 -0
- package/dist/utils/auth.js +27 -0
- package/dist/utils/auth.js.map +1 -0
- package/dist/utils/git.d.ts +42 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/git.js +171 -0
- package/dist/utils/git.js.map +1 -0
- package/package.json +1 -1
- package/src/commands/sync.ts +145 -79
- package/src/utils/api.ts +65 -32
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAOA,UAAU,aAAa;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAwBD,wBAAsB,aAAa,CACjC,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CA6Hf"}
|
@@ -0,0 +1,118 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
exports.createCommand = createCommand;
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
8
|
+
const path_1 = __importDefault(require("path"));
|
9
|
+
const api_1 = require("../utils/api");
|
10
|
+
const git_1 = require("../utils/git");
|
11
|
+
const readline_1 = require("readline");
|
12
|
+
const auth_1 = require("../utils/auth");
|
13
|
+
// Simple prompt function to replace inquirer
|
14
|
+
async function prompt(question, defaultValue) {
|
15
|
+
return new Promise((resolve) => {
|
16
|
+
const rl = (0, readline_1.createInterface)({
|
17
|
+
input: process.stdin,
|
18
|
+
output: process.stdout,
|
19
|
+
});
|
20
|
+
const promptText = defaultValue
|
21
|
+
? `${question} (${defaultValue}): `
|
22
|
+
: `${question}: `;
|
23
|
+
rl.question(promptText, (answer) => {
|
24
|
+
rl.close();
|
25
|
+
resolve(answer.trim() || defaultValue || "");
|
26
|
+
});
|
27
|
+
});
|
28
|
+
}
|
29
|
+
async function createCommand(subcommand, options = {}) {
|
30
|
+
try {
|
31
|
+
// Check authentication first
|
32
|
+
(0, auth_1.requireAuthentication)();
|
33
|
+
const user = (0, auth_1.getAuthenticatedUser)();
|
34
|
+
// Handle both old and new syntax
|
35
|
+
let blockName;
|
36
|
+
let blockDescription;
|
37
|
+
let blockType;
|
38
|
+
if (subcommand === "block") {
|
39
|
+
// New syntax: mexty create block --name "..." --description "..." --category "..."
|
40
|
+
if (!options.name) {
|
41
|
+
console.error(chalk_1.default.red('❌ --name is required when using "mexty create block"'));
|
42
|
+
console.log(chalk_1.default.yellow(' Usage: mexty create block --name "Block Name" --description "Description" --category "category"'));
|
43
|
+
process.exit(1);
|
44
|
+
}
|
45
|
+
blockName = options.name;
|
46
|
+
blockDescription = options.description || `Custom block: ${blockName}`;
|
47
|
+
blockType = options.category || options.type || "custom";
|
48
|
+
}
|
49
|
+
else {
|
50
|
+
// Old syntax: mexty create "Block Name" --description "..." --type "..."
|
51
|
+
if (!subcommand) {
|
52
|
+
console.error(chalk_1.default.red("❌ Block name is required"));
|
53
|
+
console.log(chalk_1.default.yellow(' Usage: mexty create "Block Name" [options]'));
|
54
|
+
console.log(chalk_1.default.yellow(' Or: mexty create block --name "Block Name" [options]'));
|
55
|
+
process.exit(1);
|
56
|
+
}
|
57
|
+
blockName = subcommand;
|
58
|
+
blockDescription = options.description || `Custom block: ${blockName}`;
|
59
|
+
blockType = options.type || "custom";
|
60
|
+
}
|
61
|
+
console.log(chalk_1.default.blue(`🚀 Creating new block: ${blockName}`));
|
62
|
+
console.log(chalk_1.default.gray(` User: ${user?.fullName || user?.email || "Unknown"}`));
|
63
|
+
console.log(chalk_1.default.gray(` Category: ${blockType}`));
|
64
|
+
// Prepare block data
|
65
|
+
const blockData = {
|
66
|
+
blockType: blockType,
|
67
|
+
title: blockName,
|
68
|
+
description: blockDescription,
|
69
|
+
allowedBrickTypes: ["text", "image", "video", "code", "quiz"], // Default allowed types
|
70
|
+
scope: ["user-store"], // Default scope for CLI-created blocks
|
71
|
+
content: [],
|
72
|
+
};
|
73
|
+
console.log(chalk_1.default.yellow("📡 Creating block on server..."));
|
74
|
+
// Create the block
|
75
|
+
const block = await api_1.apiClient.createBlock(blockData);
|
76
|
+
console.log(chalk_1.default.green(`✅ Block created successfully!`));
|
77
|
+
console.log(chalk_1.default.gray(` Block ID: ${block._id}`));
|
78
|
+
console.log(chalk_1.default.gray(` Block Type: ${block.blockType}`));
|
79
|
+
if (block.gitUrl) {
|
80
|
+
console.log(chalk_1.default.gray(` GitHub URL: ${block.gitUrl}`));
|
81
|
+
// Clone the repository
|
82
|
+
const repoName = git_1.GitManager.extractRepoName(block.gitUrl);
|
83
|
+
const targetDir = path_1.default.join(process.cwd(), repoName);
|
84
|
+
console.log(chalk_1.default.yellow(`📦 Cloning repository to ./${repoName}...`));
|
85
|
+
try {
|
86
|
+
const gitManager = new git_1.GitManager();
|
87
|
+
await gitManager.cloneRepository(block.gitUrl, targetDir);
|
88
|
+
console.log(chalk_1.default.green(`🎉 Block created and repository cloned successfully!`));
|
89
|
+
console.log(chalk_1.default.blue(`\nNext steps:`));
|
90
|
+
console.log(chalk_1.default.gray(` 1. cd ${repoName}`));
|
91
|
+
console.log(chalk_1.default.gray(` 2. Make your changes`));
|
92
|
+
console.log(chalk_1.default.gray(` 3. mexty save`));
|
93
|
+
// Change to the cloned directory
|
94
|
+
try {
|
95
|
+
process.chdir(targetDir);
|
96
|
+
console.log(chalk_1.default.green(`📁 Changed to directory: ${repoName}`));
|
97
|
+
}
|
98
|
+
catch (chdirError) {
|
99
|
+
console.warn(chalk_1.default.yellow(`⚠️ Could not change to directory: ${chdirError.message}`));
|
100
|
+
console.log(chalk_1.default.gray(` Please manually run: cd ${repoName}`));
|
101
|
+
}
|
102
|
+
}
|
103
|
+
catch (cloneError) {
|
104
|
+
console.error(chalk_1.default.red(`❌ Failed to clone repository: ${cloneError.message}`));
|
105
|
+
console.log(chalk_1.default.yellow(`You can manually clone it later:`));
|
106
|
+
console.log(chalk_1.default.gray(` git clone ${block.gitUrl}`));
|
107
|
+
}
|
108
|
+
}
|
109
|
+
else {
|
110
|
+
console.log(chalk_1.default.yellow("⚠️ No GitHub repository was created (GitHub not configured)"));
|
111
|
+
}
|
112
|
+
}
|
113
|
+
catch (error) {
|
114
|
+
console.error(chalk_1.default.red(`❌ Failed to create block: ${error.message}`));
|
115
|
+
process.exit(1);
|
116
|
+
}
|
117
|
+
}
|
118
|
+
//# sourceMappingURL=create.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../src/commands/delete.ts"],"names":[],"mappings":"AAoBA,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0ClE"}
|
@@ -0,0 +1,59 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
exports.deleteCommand = deleteCommand;
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
8
|
+
const api_1 = require("../utils/api");
|
9
|
+
const readline_1 = require("readline");
|
10
|
+
const auth_1 = require("../utils/auth");
|
11
|
+
// Simple confirmation function
|
12
|
+
async function confirm(question) {
|
13
|
+
return new Promise((resolve) => {
|
14
|
+
const rl = (0, readline_1.createInterface)({
|
15
|
+
input: process.stdin,
|
16
|
+
output: process.stdout
|
17
|
+
});
|
18
|
+
rl.question(`${question} (y/N): `, (answer) => {
|
19
|
+
rl.close();
|
20
|
+
resolve(answer.toLowerCase().trim() === 'y' || answer.toLowerCase().trim() === 'yes');
|
21
|
+
});
|
22
|
+
});
|
23
|
+
}
|
24
|
+
async function deleteCommand(blockId) {
|
25
|
+
try {
|
26
|
+
// Check authentication first
|
27
|
+
(0, auth_1.requireAuthentication)();
|
28
|
+
const user = (0, auth_1.getAuthenticatedUser)();
|
29
|
+
console.log(chalk_1.default.blue(`🗑️ Deleting block: ${blockId}`));
|
30
|
+
console.log(chalk_1.default.gray(` User: ${user?.fullName || user?.email || 'Unknown'}`));
|
31
|
+
// Get block info first
|
32
|
+
console.log(chalk_1.default.yellow('📡 Fetching block information...'));
|
33
|
+
const block = await api_1.apiClient.getBlock(blockId);
|
34
|
+
console.log(chalk_1.default.gray(` Title: ${block.title}`));
|
35
|
+
console.log(chalk_1.default.gray(` Description: ${block.description}`));
|
36
|
+
if (block.gitUrl) {
|
37
|
+
console.log(chalk_1.default.gray(` GitHub URL: ${block.gitUrl}`));
|
38
|
+
}
|
39
|
+
// Confirm deletion
|
40
|
+
const confirmed = await confirm(chalk_1.default.red('Are you sure you want to delete this block? This action cannot be undone.'));
|
41
|
+
if (!confirmed) {
|
42
|
+
console.log(chalk_1.default.yellow('🚫 Deletion cancelled.'));
|
43
|
+
return;
|
44
|
+
}
|
45
|
+
// Delete the block
|
46
|
+
console.log(chalk_1.default.yellow('📡 Deleting block on server...'));
|
47
|
+
await api_1.apiClient.deleteBlock(blockId);
|
48
|
+
console.log(chalk_1.default.green(`✅ Block deleted successfully!`));
|
49
|
+
if (block.gitUrl) {
|
50
|
+
console.log(chalk_1.default.yellow('⚠️ Note: The GitHub repository still exists and needs to be deleted manually if desired.'));
|
51
|
+
console.log(chalk_1.default.gray(` Repository: ${block.gitUrl}`));
|
52
|
+
}
|
53
|
+
}
|
54
|
+
catch (error) {
|
55
|
+
console.error(chalk_1.default.red(`❌ Failed to delete block: ${error.message}`));
|
56
|
+
process.exit(1);
|
57
|
+
}
|
58
|
+
}
|
59
|
+
//# sourceMappingURL=delete.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../src/commands/delete.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"fork.d.ts","sourceRoot":"","sources":["../../src/commands/fork.ts"],"names":[],"mappings":"AAMA,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmDhE"}
|
@@ -0,0 +1,57 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
exports.forkCommand = forkCommand;
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
8
|
+
const path_1 = __importDefault(require("path"));
|
9
|
+
const api_1 = require("../utils/api");
|
10
|
+
const git_1 = require("../utils/git");
|
11
|
+
const auth_1 = require("../utils/auth");
|
12
|
+
async function forkCommand(blockId) {
|
13
|
+
try {
|
14
|
+
// Check authentication first
|
15
|
+
(0, auth_1.requireAuthentication)();
|
16
|
+
const user = (0, auth_1.getAuthenticatedUser)();
|
17
|
+
console.log(chalk_1.default.blue(`🍴 Forking block: ${blockId}`));
|
18
|
+
console.log(chalk_1.default.gray(` User: ${user?.fullName || user?.email || 'Unknown'}`));
|
19
|
+
// Fork the block
|
20
|
+
console.log(chalk_1.default.yellow('📡 Forking block on server...'));
|
21
|
+
const forkedBlock = await api_1.apiClient.forkBlock({ blockId });
|
22
|
+
console.log(chalk_1.default.green(`✅ Block forked successfully!`));
|
23
|
+
console.log(chalk_1.default.gray(` New Block ID: ${forkedBlock._id}`));
|
24
|
+
console.log(chalk_1.default.gray(` Title: ${forkedBlock.title}`));
|
25
|
+
console.log(chalk_1.default.gray(` Description: ${forkedBlock.description}`));
|
26
|
+
if (forkedBlock.gitUrl) {
|
27
|
+
console.log(chalk_1.default.gray(` GitHub URL: ${forkedBlock.gitUrl}`));
|
28
|
+
// Clone the forked repository
|
29
|
+
const repoName = git_1.GitManager.extractRepoName(forkedBlock.gitUrl);
|
30
|
+
const targetDir = path_1.default.join(process.cwd(), repoName);
|
31
|
+
console.log(chalk_1.default.yellow(`📦 Cloning forked repository to ./${repoName}...`));
|
32
|
+
try {
|
33
|
+
const gitManager = new git_1.GitManager();
|
34
|
+
await gitManager.cloneRepository(forkedBlock.gitUrl, targetDir);
|
35
|
+
console.log(chalk_1.default.green(`🎉 Block forked and repository cloned successfully!`));
|
36
|
+
console.log(chalk_1.default.blue(`\nNext steps:`));
|
37
|
+
console.log(chalk_1.default.gray(` 1. cd ${repoName}`));
|
38
|
+
console.log(chalk_1.default.gray(` 2. Make your changes`));
|
39
|
+
console.log(chalk_1.default.gray(` 3. git add . && git commit -m "Your changes"`));
|
40
|
+
console.log(chalk_1.default.gray(` 4. mexty publish`));
|
41
|
+
}
|
42
|
+
catch (cloneError) {
|
43
|
+
console.error(chalk_1.default.red(`❌ Failed to clone repository: ${cloneError.message}`));
|
44
|
+
console.log(chalk_1.default.yellow(`You can manually clone it later:`));
|
45
|
+
console.log(chalk_1.default.gray(` git clone ${forkedBlock.gitUrl}`));
|
46
|
+
}
|
47
|
+
}
|
48
|
+
else {
|
49
|
+
console.log(chalk_1.default.yellow('⚠️ No GitHub repository available for this block'));
|
50
|
+
}
|
51
|
+
}
|
52
|
+
catch (error) {
|
53
|
+
console.error(chalk_1.default.red(`❌ Failed to fork block: ${error.message}`));
|
54
|
+
process.exit(1);
|
55
|
+
}
|
56
|
+
}
|
57
|
+
//# sourceMappingURL=fork.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"fork.js","sourceRoot":"","sources":["../../src/commands/fork.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAwBA,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CA+ElD"}
|
@@ -0,0 +1,90 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
exports.loginCommand = loginCommand;
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
8
|
+
const readline_1 = require("readline");
|
9
|
+
const api_1 = require("../utils/api");
|
10
|
+
// Simple prompt function
|
11
|
+
async function prompt(question) {
|
12
|
+
return new Promise((resolve) => {
|
13
|
+
const rl = (0, readline_1.createInterface)({
|
14
|
+
input: process.stdin,
|
15
|
+
output: process.stdout
|
16
|
+
});
|
17
|
+
rl.question(question, (answer) => {
|
18
|
+
rl.close();
|
19
|
+
resolve(answer.trim());
|
20
|
+
});
|
21
|
+
});
|
22
|
+
}
|
23
|
+
// Wait function for countdown
|
24
|
+
async function wait(seconds) {
|
25
|
+
return new Promise(resolve => setTimeout(resolve, seconds * 1000));
|
26
|
+
}
|
27
|
+
async function loginCommand() {
|
28
|
+
try {
|
29
|
+
console.log(chalk_1.default.blue('🔐 Login to MEXT'));
|
30
|
+
// Check if already authenticated
|
31
|
+
if (api_1.apiClient.isAuthenticated()) {
|
32
|
+
const user = api_1.apiClient.getStoredUser();
|
33
|
+
console.log(chalk_1.default.green('✅ You are already logged in!'));
|
34
|
+
console.log(chalk_1.default.gray(` Email: ${user?.email || 'Unknown'}`));
|
35
|
+
console.log(chalk_1.default.gray(` Name: ${user?.fullName || 'Not set'}`));
|
36
|
+
const logout = await prompt('Do you want to logout and login as a different user? (y/N): ');
|
37
|
+
if (logout.toLowerCase() !== 'y' && logout.toLowerCase() !== 'yes') {
|
38
|
+
return;
|
39
|
+
}
|
40
|
+
await api_1.apiClient.logout();
|
41
|
+
console.log(chalk_1.default.yellow('📤 Logged out successfully'));
|
42
|
+
}
|
43
|
+
// Request email
|
44
|
+
const email = await prompt('Enter your email address: ');
|
45
|
+
if (!email || !email.includes('@')) {
|
46
|
+
console.error(chalk_1.default.red('❌ Please provide a valid email address'));
|
47
|
+
process.exit(1);
|
48
|
+
}
|
49
|
+
console.log(chalk_1.default.yellow('📧 Requesting verification code...'));
|
50
|
+
// Request OTP
|
51
|
+
try {
|
52
|
+
const otpResponse = await api_1.apiClient.requestOTP(email);
|
53
|
+
if (!otpResponse.success) {
|
54
|
+
console.error(chalk_1.default.red(`❌ ${otpResponse.message}`));
|
55
|
+
process.exit(1);
|
56
|
+
}
|
57
|
+
console.log(chalk_1.default.green('✅ Verification code sent to your email'));
|
58
|
+
console.log(chalk_1.default.gray(' Please check your inbox (and spam folder)'));
|
59
|
+
// Wait a moment for the user to check email
|
60
|
+
await wait(2);
|
61
|
+
// Request OTP code
|
62
|
+
const otp = await prompt('Enter the 6-digit verification code: ');
|
63
|
+
if (!otp || otp.length !== 6 || !/^\d{6}$/.test(otp)) {
|
64
|
+
console.error(chalk_1.default.red('❌ Please provide a valid 6-digit code'));
|
65
|
+
process.exit(1);
|
66
|
+
}
|
67
|
+
console.log(chalk_1.default.yellow('🔓 Verifying code...'));
|
68
|
+
// Verify OTP
|
69
|
+
const verifyResponse = await api_1.apiClient.verifyOTP(email, otp);
|
70
|
+
if (!verifyResponse.success) {
|
71
|
+
console.error(chalk_1.default.red(`❌ ${verifyResponse.message}`));
|
72
|
+
process.exit(1);
|
73
|
+
}
|
74
|
+
console.log(chalk_1.default.green('🎉 Login successful!'));
|
75
|
+
console.log(chalk_1.default.gray(` Welcome, ${verifyResponse.user?.fullName || verifyResponse.user?.email || 'User'}!`));
|
76
|
+
if (!verifyResponse.user?.isProfileComplete) {
|
77
|
+
console.log(chalk_1.default.yellow('⚠️ Your profile is incomplete. Please complete it in the web interface.'));
|
78
|
+
}
|
79
|
+
}
|
80
|
+
catch (error) {
|
81
|
+
console.error(chalk_1.default.red(`❌ Login failed: ${error.message}`));
|
82
|
+
process.exit(1);
|
83
|
+
}
|
84
|
+
}
|
85
|
+
catch (error) {
|
86
|
+
console.error(chalk_1.default.red(`❌ Login error: ${error.message}`));
|
87
|
+
process.exit(1);
|
88
|
+
}
|
89
|
+
}
|
90
|
+
//# sourceMappingURL=login.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"AAmEA,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA2FpD"}
|
@@ -0,0 +1,144 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
exports.publishCommand = publishCommand;
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
8
|
+
const fs_1 = __importDefault(require("fs"));
|
9
|
+
const path_1 = __importDefault(require("path"));
|
10
|
+
const api_1 = require("../utils/api");
|
11
|
+
const git_1 = require("../utils/git");
|
12
|
+
const readline_1 = require("readline");
|
13
|
+
const sync_1 = require("./sync");
|
14
|
+
const auth_1 = require("../utils/auth");
|
15
|
+
// Simple confirmation function
|
16
|
+
async function confirm(question) {
|
17
|
+
return new Promise((resolve) => {
|
18
|
+
const rl = (0, readline_1.createInterface)({
|
19
|
+
input: process.stdin,
|
20
|
+
output: process.stdout
|
21
|
+
});
|
22
|
+
rl.question(`${question} (y/N): `, (answer) => {
|
23
|
+
rl.close();
|
24
|
+
resolve(answer.toLowerCase().trim() === 'y' || answer.toLowerCase().trim() === 'yes');
|
25
|
+
});
|
26
|
+
});
|
27
|
+
}
|
28
|
+
// Extract block ID from package.json or git URL
|
29
|
+
async function findBlockId() {
|
30
|
+
const packageJsonPath = path_1.default.join(process.cwd(), 'package.json');
|
31
|
+
if (fs_1.default.existsSync(packageJsonPath)) {
|
32
|
+
try {
|
33
|
+
const packageJson = JSON.parse(fs_1.default.readFileSync(packageJsonPath, 'utf8'));
|
34
|
+
// Look for block ID in package.json name or description
|
35
|
+
if (packageJson.name && packageJson.name.startsWith('block-')) {
|
36
|
+
return packageJson.name.replace('block-', '');
|
37
|
+
}
|
38
|
+
// Look in description for block ID pattern
|
39
|
+
if (packageJson.description) {
|
40
|
+
const match = packageJson.description.match(/block[:\s]+([a-f0-9]{24})/i);
|
41
|
+
if (match) {
|
42
|
+
return match[1];
|
43
|
+
}
|
44
|
+
}
|
45
|
+
}
|
46
|
+
catch (error) {
|
47
|
+
console.warn(chalk_1.default.yellow('⚠️ Could not parse package.json'));
|
48
|
+
}
|
49
|
+
}
|
50
|
+
// Try to extract from git remote URL
|
51
|
+
try {
|
52
|
+
const gitManager = new git_1.GitManager();
|
53
|
+
const remoteUrl = await gitManager.getRemoteUrl();
|
54
|
+
if (remoteUrl) {
|
55
|
+
const match = remoteUrl.match(/block-([a-f0-9]{24})/);
|
56
|
+
if (match) {
|
57
|
+
return match[1];
|
58
|
+
}
|
59
|
+
}
|
60
|
+
}
|
61
|
+
catch (error) {
|
62
|
+
// Ignore git errors
|
63
|
+
}
|
64
|
+
return null;
|
65
|
+
}
|
66
|
+
async function publishCommand() {
|
67
|
+
try {
|
68
|
+
// Check authentication first
|
69
|
+
(0, auth_1.requireAuthentication)();
|
70
|
+
const user = (0, auth_1.getAuthenticatedUser)();
|
71
|
+
console.log(chalk_1.default.blue('🚀 Publishing block...'));
|
72
|
+
console.log(chalk_1.default.gray(` User: ${user?.fullName || user?.email || 'Unknown'}`));
|
73
|
+
// Check if we're in a git repository
|
74
|
+
const gitManager = new git_1.GitManager();
|
75
|
+
const isGitRepo = await gitManager.isGitRepository();
|
76
|
+
if (!isGitRepo) {
|
77
|
+
console.error(chalk_1.default.red('❌ Not a git repository. Please run this command from a block repository.'));
|
78
|
+
process.exit(1);
|
79
|
+
}
|
80
|
+
// Get repository information
|
81
|
+
const repoInfo = await gitManager.getRepositoryInfo();
|
82
|
+
console.log(chalk_1.default.gray(` Current branch: ${repoInfo.branch}`));
|
83
|
+
console.log(chalk_1.default.gray(` Remote URL: ${repoInfo.remoteUrl}`));
|
84
|
+
// Find block ID
|
85
|
+
const blockId = await findBlockId();
|
86
|
+
if (!blockId) {
|
87
|
+
console.error(chalk_1.default.red('❌ Could not determine block ID from repository.'));
|
88
|
+
console.error(chalk_1.default.yellow(' Make sure you are in a block repository created with mexty'));
|
89
|
+
process.exit(1);
|
90
|
+
}
|
91
|
+
console.log(chalk_1.default.gray(` Block ID: ${blockId}`));
|
92
|
+
// Check for uncommitted changes
|
93
|
+
if (repoInfo.hasChanges) {
|
94
|
+
console.log(chalk_1.default.yellow('⚠️ You have uncommitted changes.'));
|
95
|
+
console.log(chalk_1.default.gray(' Please commit your changes before publishing:'));
|
96
|
+
console.log(chalk_1.default.gray(' git add . && git commit -m "Your commit message"'));
|
97
|
+
const proceed = await confirm('Do you want to continue anyway?');
|
98
|
+
if (!proceed) {
|
99
|
+
console.log(chalk_1.default.yellow('🚫 Publishing cancelled.'));
|
100
|
+
return;
|
101
|
+
}
|
102
|
+
}
|
103
|
+
// Ask user to push changes
|
104
|
+
console.log(chalk_1.default.blue('\n📤 Push your changes to GitHub:'));
|
105
|
+
console.log(chalk_1.default.gray(` git push origin ${repoInfo.branch}`));
|
106
|
+
const pushed = await confirm('Have you pushed your changes to GitHub?');
|
107
|
+
if (!pushed) {
|
108
|
+
console.log(chalk_1.default.yellow('🚫 Please push your changes first and then run publish again.'));
|
109
|
+
return;
|
110
|
+
}
|
111
|
+
// Trigger save and bundle
|
112
|
+
console.log(chalk_1.default.yellow('📡 Triggering build and bundle process...'));
|
113
|
+
try {
|
114
|
+
const result = await api_1.apiClient.saveAndBundle({ blockId });
|
115
|
+
console.log(chalk_1.default.green('✅ Block published successfully!'));
|
116
|
+
console.log(chalk_1.default.gray(` Bundle Path: ${result.bundlePath}`));
|
117
|
+
console.log(chalk_1.default.gray(` Federation URL: ${result.federationUrl}`));
|
118
|
+
if (result.message) {
|
119
|
+
console.log(chalk_1.default.blue(` ${result.message}`));
|
120
|
+
}
|
121
|
+
// Automatically sync registry after successful publish
|
122
|
+
console.log(chalk_1.default.blue('\n🔄 Auto-syncing registry...'));
|
123
|
+
try {
|
124
|
+
await (0, sync_1.syncCommand)();
|
125
|
+
console.log(chalk_1.default.green('✅ Registry synced! Your block is now available as a named component.'));
|
126
|
+
}
|
127
|
+
catch (syncError) {
|
128
|
+
console.warn(chalk_1.default.yellow(`⚠️ Registry sync failed: ${syncError.message}`));
|
129
|
+
console.log(chalk_1.default.gray(' You can manually sync later with: mexty sync'));
|
130
|
+
// Don't fail the publish if sync fails - it's not critical
|
131
|
+
}
|
132
|
+
}
|
133
|
+
catch (buildError) {
|
134
|
+
console.error(chalk_1.default.red(`❌ Build failed: ${buildError.message}`));
|
135
|
+
console.log(chalk_1.default.yellow(' Check the server logs for more details.'));
|
136
|
+
process.exit(1);
|
137
|
+
}
|
138
|
+
}
|
139
|
+
catch (error) {
|
140
|
+
console.error(chalk_1.default.red(`❌ Failed to publish block: ${error.message}`));
|
141
|
+
process.exit(1);
|
142
|
+
}
|
143
|
+
}
|
144
|
+
//# sourceMappingURL=publish.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"save.d.ts","sourceRoot":"","sources":["../../src/commands/save.ts"],"names":[],"mappings":"AA2EA,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAyIjD"}
|