@mexty/cli 1.0.1 → 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.
Files changed (44) hide show
  1. package/README.md +5 -5
  2. package/package.json +4 -2
  3. package/src/commands/create.ts +109 -41
  4. package/src/commands/save.ts +213 -0
  5. package/src/commands/sync.ts +2 -2
  6. package/src/index.ts +98 -84
  7. package/src/utils/api.ts +241 -239
  8. package/src/utils/git.ts +28 -26
  9. package/dist/commands/create.d.ts +0 -7
  10. package/dist/commands/create.d.ts.map +0 -1
  11. package/dist/commands/create.js +0 -80
  12. package/dist/commands/create.js.map +0 -1
  13. package/dist/commands/delete.d.ts +0 -2
  14. package/dist/commands/delete.d.ts.map +0 -1
  15. package/dist/commands/delete.js +0 -54
  16. package/dist/commands/delete.js.map +0 -1
  17. package/dist/commands/fork.d.ts +0 -2
  18. package/dist/commands/fork.d.ts.map +0 -1
  19. package/dist/commands/fork.js +0 -52
  20. package/dist/commands/fork.js.map +0 -1
  21. package/dist/commands/login.d.ts +0 -2
  22. package/dist/commands/login.d.ts.map +0 -1
  23. package/dist/commands/login.js +0 -12
  24. package/dist/commands/login.js.map +0 -1
  25. package/dist/commands/publish.d.ts +0 -2
  26. package/dist/commands/publish.d.ts.map +0 -1
  27. package/dist/commands/publish.js +0 -139
  28. package/dist/commands/publish.js.map +0 -1
  29. package/dist/commands/sync.d.ts +0 -2
  30. package/dist/commands/sync.d.ts.map +0 -1
  31. package/dist/commands/sync.js +0 -140
  32. package/dist/commands/sync.js.map +0 -1
  33. package/dist/index.d.ts +0 -3
  34. package/dist/index.d.ts.map +0 -1
  35. package/dist/index.js +0 -60
  36. package/dist/index.js.map +0 -1
  37. package/dist/utils/api.d.ts +0 -55
  38. package/dist/utils/api.d.ts.map +0 -1
  39. package/dist/utils/api.js +0 -68
  40. package/dist/utils/api.js.map +0 -1
  41. package/dist/utils/git.d.ts +0 -41
  42. package/dist/utils/git.d.ts.map +0 -1
  43. package/dist/utils/git.js +0 -171
  44. package/dist/utils/git.js.map +0 -1
@@ -1,80 +0,0 @@
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
- // Simple prompt function to replace inquirer
13
- async function prompt(question, defaultValue) {
14
- return new Promise((resolve) => {
15
- const rl = (0, readline_1.createInterface)({
16
- input: process.stdin,
17
- output: process.stdout
18
- });
19
- const promptText = defaultValue ? `${question} (${defaultValue}): ` : `${question}: `;
20
- rl.question(promptText, (answer) => {
21
- rl.close();
22
- resolve(answer.trim() || defaultValue || '');
23
- });
24
- });
25
- }
26
- async function createCommand(name, options) {
27
- try {
28
- console.log(chalk_1.default.blue(`🚀 Creating new block: ${name}`));
29
- // Get description if not provided
30
- let description = options.description;
31
- if (!description) {
32
- description = await prompt('Enter a description for the block', `Custom block: ${name}`);
33
- }
34
- // Prepare block data
35
- const blockData = {
36
- blockType: options.type || 'custom',
37
- title: name,
38
- description: description,
39
- allowedBrickTypes: ['text', 'image', 'video', 'code', 'quiz'], // Default allowed types
40
- scope: ['user-store'], // Default scope for CLI-created blocks
41
- content: []
42
- };
43
- console.log(chalk_1.default.yellow('📡 Creating block on server...'));
44
- // Create the block
45
- const block = await api_1.apiClient.createBlock(blockData);
46
- console.log(chalk_1.default.green(`✅ Block created successfully!`));
47
- console.log(chalk_1.default.gray(` Block ID: ${block._id}`));
48
- console.log(chalk_1.default.gray(` Block Type: ${block.blockType}`));
49
- if (block.gitUrl) {
50
- console.log(chalk_1.default.gray(` GitHub URL: ${block.gitUrl}`));
51
- // Clone the repository
52
- const repoName = git_1.GitManager.extractRepoName(block.gitUrl);
53
- const targetDir = path_1.default.join(process.cwd(), repoName);
54
- console.log(chalk_1.default.yellow(`📦 Cloning repository to ./${repoName}...`));
55
- try {
56
- const gitManager = new git_1.GitManager();
57
- await gitManager.cloneRepository(block.gitUrl, targetDir);
58
- console.log(chalk_1.default.green(`🎉 Block created and repository cloned successfully!`));
59
- console.log(chalk_1.default.blue(`\nNext steps:`));
60
- console.log(chalk_1.default.gray(` 1. cd ${repoName}`));
61
- console.log(chalk_1.default.gray(` 2. Make your changes`));
62
- console.log(chalk_1.default.gray(` 3. git add . && git commit -m "Your changes"`));
63
- console.log(chalk_1.default.gray(` 4. mext-cli publish`));
64
- }
65
- catch (cloneError) {
66
- console.error(chalk_1.default.red(`❌ Failed to clone repository: ${cloneError.message}`));
67
- console.log(chalk_1.default.yellow(`You can manually clone it later:`));
68
- console.log(chalk_1.default.gray(` git clone ${block.gitUrl}`));
69
- }
70
- }
71
- else {
72
- console.log(chalk_1.default.yellow('⚠️ No GitHub repository was created (GitHub not configured)'));
73
- }
74
- }
75
- catch (error) {
76
- console.error(chalk_1.default.red(`❌ Failed to create block: ${error.message}`));
77
- process.exit(1);
78
- }
79
- }
80
- //# sourceMappingURL=create.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare function deleteCommand(blockId: string): Promise<void>;
2
- //# sourceMappingURL=delete.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../src/commands/delete.ts"],"names":[],"mappings":"AAmBA,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqClE"}
@@ -1,54 +0,0 @@
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
- // Simple confirmation function
11
- async function confirm(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} (y/N): `, (answer) => {
18
- rl.close();
19
- resolve(answer.toLowerCase().trim() === 'y' || answer.toLowerCase().trim() === 'yes');
20
- });
21
- });
22
- }
23
- async function deleteCommand(blockId) {
24
- try {
25
- console.log(chalk_1.default.blue(`🗑️ Deleting block: ${blockId}`));
26
- // Get block info first
27
- console.log(chalk_1.default.yellow('📡 Fetching block information...'));
28
- const block = await api_1.apiClient.getBlock(blockId);
29
- console.log(chalk_1.default.gray(` Title: ${block.title}`));
30
- console.log(chalk_1.default.gray(` Description: ${block.description}`));
31
- if (block.gitUrl) {
32
- console.log(chalk_1.default.gray(` GitHub URL: ${block.gitUrl}`));
33
- }
34
- // Confirm deletion
35
- const confirmed = await confirm(chalk_1.default.red('Are you sure you want to delete this block? This action cannot be undone.'));
36
- if (!confirmed) {
37
- console.log(chalk_1.default.yellow('🚫 Deletion cancelled.'));
38
- return;
39
- }
40
- // Delete the block
41
- console.log(chalk_1.default.yellow('📡 Deleting block on server...'));
42
- await api_1.apiClient.deleteBlock(blockId);
43
- console.log(chalk_1.default.green(`✅ Block deleted successfully!`));
44
- if (block.gitUrl) {
45
- console.log(chalk_1.default.yellow('⚠️ Note: The GitHub repository still exists and needs to be deleted manually if desired.'));
46
- console.log(chalk_1.default.gray(` Repository: ${block.gitUrl}`));
47
- }
48
- }
49
- catch (error) {
50
- console.error(chalk_1.default.red(`❌ Failed to delete block: ${error.message}`));
51
- process.exit(1);
52
- }
53
- }
54
- //# sourceMappingURL=delete.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../src/commands/delete.ts"],"names":[],"mappings":";;;;;AAmBA,sCAqCC;AAxDD,kDAA0B;AAC1B,sCAAyC;AACzC,uCAA2C;AAE3C,+BAA+B;AAC/B,KAAK,UAAU,OAAO,CAAC,QAAgB;IACrC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,EAAE,GAAG,IAAA,0BAAe,EAAC;YACzB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QAEH,EAAE,CAAC,QAAQ,CAAC,GAAG,QAAQ,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;YAC5C,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,CAAC,CAAC;QACxF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,aAAa,CAAC,OAAe;IACjD,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC,CAAC;QAE3D,uBAAuB;QACvB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAG,MAAM,eAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAEhD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,mBAAmB,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAChE,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kBAAkB,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,mBAAmB;QACnB,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,eAAK,CAAC,GAAG,CAAC,2EAA2E,CAAC,CAAC,CAAC;QAExH,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC;YACpD,OAAO;QACT,CAAC;QAED,mBAAmB;QACnB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC,CAAC;QAC5D,MAAM,eAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAErC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;QAE1D,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,2FAA2F,CAAC,CAAC,CAAC;YACvH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kBAAkB,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC5D,CAAC;IAEH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,6BAA6B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare function forkCommand(blockId: string): Promise<void>;
2
- //# sourceMappingURL=fork.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fork.d.ts","sourceRoot":"","sources":["../../src/commands/fork.ts"],"names":[],"mappings":"AAKA,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA8ChE"}
@@ -1,52 +0,0 @@
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
- async function forkCommand(blockId) {
12
- try {
13
- console.log(chalk_1.default.blue(`🍴 Forking block: ${blockId}`));
14
- // Fork the block
15
- console.log(chalk_1.default.yellow('📡 Forking block on server...'));
16
- const forkedBlock = await api_1.apiClient.forkBlock({ blockId });
17
- console.log(chalk_1.default.green(`✅ Block forked successfully!`));
18
- console.log(chalk_1.default.gray(` New Block ID: ${forkedBlock._id}`));
19
- console.log(chalk_1.default.gray(` Title: ${forkedBlock.title}`));
20
- console.log(chalk_1.default.gray(` Description: ${forkedBlock.description}`));
21
- if (forkedBlock.gitUrl) {
22
- console.log(chalk_1.default.gray(` GitHub URL: ${forkedBlock.gitUrl}`));
23
- // Clone the forked repository
24
- const repoName = git_1.GitManager.extractRepoName(forkedBlock.gitUrl);
25
- const targetDir = path_1.default.join(process.cwd(), repoName);
26
- console.log(chalk_1.default.yellow(`📦 Cloning forked repository to ./${repoName}...`));
27
- try {
28
- const gitManager = new git_1.GitManager();
29
- await gitManager.cloneRepository(forkedBlock.gitUrl, targetDir);
30
- console.log(chalk_1.default.green(`🎉 Block forked and repository cloned successfully!`));
31
- console.log(chalk_1.default.blue(`\nNext steps:`));
32
- console.log(chalk_1.default.gray(` 1. cd ${repoName}`));
33
- console.log(chalk_1.default.gray(` 2. Make your changes`));
34
- console.log(chalk_1.default.gray(` 3. git add . && git commit -m "Your changes"`));
35
- console.log(chalk_1.default.gray(` 4. mext-cli publish`));
36
- }
37
- catch (cloneError) {
38
- console.error(chalk_1.default.red(`❌ Failed to clone repository: ${cloneError.message}`));
39
- console.log(chalk_1.default.yellow(`You can manually clone it later:`));
40
- console.log(chalk_1.default.gray(` git clone ${forkedBlock.gitUrl}`));
41
- }
42
- }
43
- else {
44
- console.log(chalk_1.default.yellow('⚠️ No GitHub repository available for this block'));
45
- }
46
- }
47
- catch (error) {
48
- console.error(chalk_1.default.red(`❌ Failed to fork block: ${error.message}`));
49
- process.exit(1);
50
- }
51
- }
52
- //# sourceMappingURL=fork.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fork.js","sourceRoot":"","sources":["../../src/commands/fork.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare function loginCommand(): Promise<void>;
2
- //# sourceMappingURL=login.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAEA,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAGlD"}
@@ -1,12 +0,0 @@
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
- async function loginCommand() {
9
- console.log(chalk_1.default.blue('🔐 Login functionality coming soon...'));
10
- console.log(chalk_1.default.gray('For now, the CLI works without authentication.'));
11
- }
12
- //# sourceMappingURL=login.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":";;;;;AAEA,oCAGC;AALD,kDAA0B;AAEnB,KAAK,UAAU,YAAY;IAChC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC,CAAC;AAC5E,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare function publishCommand(): Promise<void>;
2
- //# sourceMappingURL=publish.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"AAkEA,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAsFpD"}
@@ -1,139 +0,0 @@
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
- // Simple confirmation function
15
- async function confirm(question) {
16
- return new Promise((resolve) => {
17
- const rl = (0, readline_1.createInterface)({
18
- input: process.stdin,
19
- output: process.stdout
20
- });
21
- rl.question(`${question} (y/N): `, (answer) => {
22
- rl.close();
23
- resolve(answer.toLowerCase().trim() === 'y' || answer.toLowerCase().trim() === 'yes');
24
- });
25
- });
26
- }
27
- // Extract block ID from package.json or git URL
28
- async function findBlockId() {
29
- const packageJsonPath = path_1.default.join(process.cwd(), 'package.json');
30
- if (fs_1.default.existsSync(packageJsonPath)) {
31
- try {
32
- const packageJson = JSON.parse(fs_1.default.readFileSync(packageJsonPath, 'utf8'));
33
- // Look for block ID in package.json name or description
34
- if (packageJson.name && packageJson.name.startsWith('block-')) {
35
- return packageJson.name.replace('block-', '');
36
- }
37
- // Look in description for block ID pattern
38
- if (packageJson.description) {
39
- const match = packageJson.description.match(/block[:\s]+([a-f0-9]{24})/i);
40
- if (match) {
41
- return match[1];
42
- }
43
- }
44
- }
45
- catch (error) {
46
- console.warn(chalk_1.default.yellow('⚠️ Could not parse package.json'));
47
- }
48
- }
49
- // Try to extract from git remote URL
50
- try {
51
- const gitManager = new git_1.GitManager();
52
- const remoteUrl = await gitManager.getRemoteUrl();
53
- if (remoteUrl) {
54
- const match = remoteUrl.match(/block-([a-f0-9]{24})/);
55
- if (match) {
56
- return match[1];
57
- }
58
- }
59
- }
60
- catch (error) {
61
- // Ignore git errors
62
- }
63
- return null;
64
- }
65
- async function publishCommand() {
66
- try {
67
- console.log(chalk_1.default.blue('🚀 Publishing block...'));
68
- // Check if we're in a git repository
69
- const gitManager = new git_1.GitManager();
70
- const isGitRepo = await gitManager.isGitRepository();
71
- if (!isGitRepo) {
72
- console.error(chalk_1.default.red('❌ Not a git repository. Please run this command from a block repository.'));
73
- process.exit(1);
74
- }
75
- // Get repository information
76
- const repoInfo = await gitManager.getRepositoryInfo();
77
- console.log(chalk_1.default.gray(` Current branch: ${repoInfo.branch}`));
78
- console.log(chalk_1.default.gray(` Remote URL: ${repoInfo.remoteUrl}`));
79
- // Find block ID
80
- const blockId = await findBlockId();
81
- if (!blockId) {
82
- console.error(chalk_1.default.red('❌ Could not determine block ID from repository.'));
83
- console.error(chalk_1.default.yellow(' Make sure you are in a block repository created with mext-cli'));
84
- process.exit(1);
85
- }
86
- console.log(chalk_1.default.gray(` Block ID: ${blockId}`));
87
- // Check for uncommitted changes
88
- if (repoInfo.hasChanges) {
89
- console.log(chalk_1.default.yellow('⚠️ You have uncommitted changes.'));
90
- console.log(chalk_1.default.gray(' Please commit your changes before publishing:'));
91
- console.log(chalk_1.default.gray(' git add . && git commit -m "Your commit message"'));
92
- const proceed = await confirm('Do you want to continue anyway?');
93
- if (!proceed) {
94
- console.log(chalk_1.default.yellow('🚫 Publishing cancelled.'));
95
- return;
96
- }
97
- }
98
- // Ask user to push changes
99
- console.log(chalk_1.default.blue('\n📤 Push your changes to GitHub:'));
100
- console.log(chalk_1.default.gray(` git push origin ${repoInfo.branch}`));
101
- const pushed = await confirm('Have you pushed your changes to GitHub?');
102
- if (!pushed) {
103
- console.log(chalk_1.default.yellow('🚫 Please push your changes first and then run publish again.'));
104
- return;
105
- }
106
- // Trigger save and bundle
107
- console.log(chalk_1.default.yellow('📡 Triggering build and bundle process...'));
108
- try {
109
- const result = await api_1.apiClient.saveAndBundle({ blockId });
110
- console.log(chalk_1.default.green('✅ Block published successfully!'));
111
- console.log(chalk_1.default.gray(` Bundle Path: ${result.bundlePath}`));
112
- console.log(chalk_1.default.gray(` Federation URL: ${result.federationUrl}`));
113
- if (result.message) {
114
- console.log(chalk_1.default.blue(` ${result.message}`));
115
- }
116
- // Automatically sync registry after successful publish
117
- console.log(chalk_1.default.blue('\n🔄 Auto-syncing registry...'));
118
- try {
119
- await (0, sync_1.syncCommand)();
120
- console.log(chalk_1.default.green('✅ Registry synced! Your block is now available as a named component.'));
121
- }
122
- catch (syncError) {
123
- console.warn(chalk_1.default.yellow(`⚠️ Registry sync failed: ${syncError.message}`));
124
- console.log(chalk_1.default.gray(' You can manually sync later with: mext-cli sync'));
125
- // Don't fail the publish if sync fails - it's not critical
126
- }
127
- }
128
- catch (buildError) {
129
- console.error(chalk_1.default.red(`❌ Build failed: ${buildError.message}`));
130
- console.log(chalk_1.default.yellow(' Check the server logs for more details.'));
131
- process.exit(1);
132
- }
133
- }
134
- catch (error) {
135
- console.error(chalk_1.default.red(`❌ Failed to publish block: ${error.message}`));
136
- process.exit(1);
137
- }
138
- }
139
- //# sourceMappingURL=publish.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare function syncCommand(): Promise<void>;
2
- //# sourceMappingURL=sync.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAmBA,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAuDjD"}
@@ -1,140 +0,0 @@
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.syncCommand = syncCommand;
7
- const chalk_1 = __importDefault(require("chalk"));
8
- const fs_1 = __importDefault(require("fs"));
9
- const path_1 = __importDefault(require("path"));
10
- async function syncCommand() {
11
- try {
12
- console.log(chalk_1.default.blue('🔄 Syncing block registry...'));
13
- // Fetch registry from server
14
- console.log(chalk_1.default.yellow('📡 Fetching registry from server...'));
15
- const response = await fetch('http://localhost:3001/api/blocks/registry');
16
- if (!response.ok) {
17
- throw new Error(`Server responded with ${response.status}: ${response.statusText}`);
18
- }
19
- const data = await response.json();
20
- const registry = data.registry;
21
- const meta = data.meta;
22
- console.log(chalk_1.default.green(`✅ Registry fetched successfully!`));
23
- console.log(chalk_1.default.gray(` Total blocks: ${meta.totalBlocks}`));
24
- console.log(chalk_1.default.gray(` Total components: ${meta.totalComponents}`));
25
- console.log(chalk_1.default.gray(` Last updated: ${meta.lastUpdated}`));
26
- if (Object.keys(registry).length === 0) {
27
- console.log(chalk_1.default.yellow('⚠️ No components found in registry.'));
28
- console.log(chalk_1.default.gray(' Make sure you have built some blocks first using "mext-cli publish"'));
29
- return;
30
- }
31
- // Display available components
32
- console.log(chalk_1.default.blue('\n📋 Available components:'));
33
- for (const [componentName, entry] of Object.entries(registry)) {
34
- console.log(chalk_1.default.green(` ${componentName}`));
35
- console.log(chalk_1.default.gray(` Block ID: ${entry.blockId}`));
36
- console.log(chalk_1.default.gray(` Title: ${entry.title}`));
37
- console.log(chalk_1.default.gray(` Description: ${entry.description.substring(0, 60)}${entry.description.length > 60 ? '...' : ''}`));
38
- console.log(chalk_1.default.gray(` Tags: ${entry.tags?.join(', ') || 'none'}`));
39
- console.log('');
40
- }
41
- // Generate named exports file
42
- const mextBlockPath = findMextBlockPath();
43
- if (mextBlockPath) {
44
- console.log(chalk_1.default.blue('🔧 Updating mext-block named exports...'));
45
- await generateNamedExports(mextBlockPath, registry);
46
- console.log(chalk_1.default.green(`✅ Named exports updated in ${mextBlockPath}`));
47
- }
48
- else {
49
- console.log(chalk_1.default.yellow('⚠️ mext-block package not found locally.'));
50
- console.log(chalk_1.default.gray(' Named exports file not generated.'));
51
- }
52
- console.log(chalk_1.default.green('\n🎉 Registry sync completed!'));
53
- }
54
- catch (error) {
55
- console.error(chalk_1.default.red(`❌ Failed to sync registry: ${error.message}`));
56
- process.exit(1);
57
- }
58
- }
59
- /**
60
- * Find the mext-block package path
61
- */
62
- function findMextBlockPath() {
63
- // Look for mext-block in common locations
64
- const possiblePaths = [
65
- path_1.default.join(process.cwd(), '..', 'mext-block'),
66
- path_1.default.join(process.cwd(), 'mext-block'),
67
- path_1.default.join(process.cwd(), '..', '..', 'mext-block'),
68
- ];
69
- for (const possiblePath of possiblePaths) {
70
- if (fs_1.default.existsSync(path_1.default.join(possiblePath, 'package.json'))) {
71
- try {
72
- const packageJson = JSON.parse(fs_1.default.readFileSync(path_1.default.join(possiblePath, 'package.json'), 'utf8'));
73
- if (packageJson.name === 'mextblock') {
74
- return possiblePath;
75
- }
76
- }
77
- catch (error) {
78
- // Ignore invalid package.json files
79
- }
80
- }
81
- }
82
- return null;
83
- }
84
- /**
85
- * Generate named exports file for the mext-block package
86
- */
87
- async function generateNamedExports(mextBlockPath, registry) {
88
- const namedExportsPath = path_1.default.join(mextBlockPath, 'src', 'namedExports.ts');
89
- // Generate the file content
90
- const content = `// Auto-generated file - DO NOT EDIT MANUALLY
91
- // Generated on: ${new Date().toISOString()}
92
- // Total components: ${Object.keys(registry).length}
93
-
94
- import { createNamedBlock } from './components/NamedBlock';
95
-
96
- ${Object.entries(registry).map(([componentName, entry]) => `// ${entry.title}
97
- // Block ID: ${entry.blockId}
98
- // Description: ${entry.description}
99
- // Tags: ${entry.tags?.join(', ') || 'none'}
100
- export const ${componentName} = createNamedBlock('${componentName}');`).join('\n\n')}
101
-
102
- // Export all components as an object for convenience
103
- export const NamedComponents = {
104
- ${Object.keys(registry).map(componentName => ` ${componentName},`).join('\n')}
105
- };
106
-
107
- // Registry metadata
108
- export const registryMetadata = {
109
- totalComponents: ${Object.keys(registry).length},
110
- lastGenerated: '${new Date().toISOString()}',
111
- components: {
112
- ${Object.entries(registry).map(([componentName, entry]) => ` ${componentName}: {
113
- blockId: '${entry.blockId}',
114
- title: '${entry.title}',
115
- description: '${entry.description.replace(/'/g, "\\'")}',
116
- tags: [${entry.tags?.map(tag => `'${tag}'`).join(', ') || ''}],
117
- lastUpdated: '${entry.lastUpdated}'
118
- },`).join('\n')}
119
- }
120
- };
121
- `;
122
- // Ensure directory exists
123
- const srcDir = path_1.default.dirname(namedExportsPath);
124
- if (!fs_1.default.existsSync(srcDir)) {
125
- fs_1.default.mkdirSync(srcDir, { recursive: true });
126
- }
127
- // Write the file
128
- fs_1.default.writeFileSync(namedExportsPath, content, 'utf8');
129
- // Update the main index.ts to include these exports
130
- const indexPath = path_1.default.join(mextBlockPath, 'src', 'index.ts');
131
- if (fs_1.default.existsSync(indexPath)) {
132
- let indexContent = fs_1.default.readFileSync(indexPath, 'utf8');
133
- // Add export for named exports if not already present
134
- if (!indexContent.includes('export * from \'./namedExports\'')) {
135
- indexContent += '\n// Auto-generated named exports\nexport * from \'./namedExports\';\n';
136
- fs_1.default.writeFileSync(indexPath, indexContent, 'utf8');
137
- }
138
- }
139
- }
140
- //# sourceMappingURL=sync.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts DELETED
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js DELETED
@@ -1,60 +0,0 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod };
5
- };
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- const commander_1 = require("commander");
8
- const chalk_1 = __importDefault(require("chalk"));
9
- const login_1 = require("./commands/login");
10
- const create_1 = require("./commands/create");
11
- const fork_1 = require("./commands/fork");
12
- const delete_1 = require("./commands/delete");
13
- const publish_1 = require("./commands/publish");
14
- const sync_1 = require("./commands/sync");
15
- const program = new commander_1.Command();
16
- // CLI Configuration
17
- program
18
- .name('mext-cli')
19
- .description('MEXT CLI for managing blocks and repositories')
20
- .version('1.0.0');
21
- // Add commands
22
- program
23
- .command('login')
24
- .description('Authenticate with MEXT (placeholder)')
25
- .action(login_1.loginCommand);
26
- program
27
- .command('create <name>')
28
- .description('Create a new block and clone its repository')
29
- .option('-d, --description <description>', 'Block description')
30
- .option('-t, --type <type>', 'Block type', 'custom')
31
- .action(create_1.createCommand);
32
- program
33
- .command('fork <blockId>')
34
- .description('Fork an existing block and pull its content')
35
- .action(fork_1.forkCommand);
36
- program
37
- .command('delete <blockId>')
38
- .description('Delete a block')
39
- .action(delete_1.deleteCommand);
40
- program
41
- .command('publish')
42
- .description('Publish current block (push repo and trigger build)')
43
- .action(publish_1.publishCommand);
44
- program
45
- .command('sync')
46
- .description('Sync block registry and update named exports')
47
- .action(sync_1.syncCommand);
48
- // Error handling
49
- program.on('command:*', () => {
50
- console.error(chalk_1.default.red(`Invalid command: ${program.args.join(' ')}`));
51
- console.log(chalk_1.default.yellow('See --help for a list of available commands.'));
52
- process.exit(1);
53
- });
54
- // Parse arguments
55
- program.parse(process.argv);
56
- // Show help if no command provided
57
- if (!process.argv.slice(2).length) {
58
- program.outputHelp();
59
- }
60
- //# sourceMappingURL=index.js.map