@mindbricks/mbx 1.0.9 → 1.0.10

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/README.md CHANGED
@@ -37,13 +37,33 @@ mbx export myproject --zip # Downloads as ZIP file (no extraction)
37
37
  mbx export myproject -o ./downloads -z # Downloads as ZIP to specified directory
38
38
  ```
39
39
 
40
+ ### Pull Service Update
41
+ Update a service with the latest version from Mindbricks:
42
+
43
+ ```bash
44
+ mbx pull
45
+
46
+ # Can be run from any subdirectory within a service
47
+ cd my-service/..
48
+ mbx pull # Automatically finds .mindbricks.json in parent directories
49
+ ```
50
+
51
+ ### Logout
52
+ Log out and remove stored credentials:
53
+
54
+ ```bash
55
+ mbx logout
56
+ ```
57
+
40
58
  ## Commands
41
59
 
42
60
  | Command | Description |
43
61
  |---------|-------------|
44
62
  | `mbx login` | Authenticate with your Mindbricks account |
63
+ | `mbx logout` | Log out and remove stored credentials |
45
64
  | `mbx whoami` | Display current authenticated user information |
46
65
  | `mbx export <shortname>` | Export a project to local directory |
66
+ | `mbx pull` | Pull latest service update (run from within a service directory) |
47
67
 
48
68
  ## Options
49
69
 
package/dist/api.d.ts ADDED
@@ -0,0 +1,15 @@
1
+ import { StoredToken } from './types';
2
+ import { TokenStorage } from './storage';
3
+ export interface DownloadResult {
4
+ data: Buffer;
5
+ filename: string;
6
+ size: number;
7
+ }
8
+ export declare class ApiClient {
9
+ private storage;
10
+ constructor(storage: TokenStorage);
11
+ getAuthenticatedToken(): StoredToken;
12
+ downloadProject(projectShortname: string, endpoint?: string): Promise<DownloadResult>;
13
+ private handleAxiosError;
14
+ }
15
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAY,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGzC,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAe;gBAElB,OAAO,EAAE,YAAY;IAIjC,qBAAqB,IAAI,WAAW;IAS9B,eAAe,CAAC,gBAAgB,EAAE,MAAM,EAAE,QAAQ,GAAE,MAA+B,GAAG,OAAO,CAAC,cAAc,CAAC;IAgCnH,OAAO,CAAC,gBAAgB;CAgBzB"}
package/dist/api.js ADDED
@@ -0,0 +1,73 @@
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.ApiClient = void 0;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const types_1 = require("./types");
9
+ const config_1 = require("./config");
10
+ class ApiClient {
11
+ constructor(storage) {
12
+ this.storage = storage;
13
+ }
14
+ getAuthenticatedToken() {
15
+ const validationError = this.storage.validateToken();
16
+ if (validationError) {
17
+ const message = config_1.MESSAGES[validationError] || config_1.MESSAGES.TOKEN_ERROR;
18
+ throw new types_1.CliError(message);
19
+ }
20
+ return this.storage.getToken();
21
+ }
22
+ async downloadProject(projectShortname, endpoint = config_1.CONFIG.EXPORT_ENDPOINT) {
23
+ const token = this.getAuthenticatedToken();
24
+ const downloadUrl = `${config_1.CONFIG.API_BASE_URL}${endpoint}/${projectShortname}/download`;
25
+ try {
26
+ const response = await axios_1.default.get(downloadUrl, {
27
+ headers: {
28
+ 'Authorization': `Bearer ${token.accessToken}`,
29
+ },
30
+ responseType: 'arraybuffer',
31
+ timeout: 300000,
32
+ });
33
+ let filename = `${projectShortname}.zip`;
34
+ const contentDisposition = response.headers['content-disposition'];
35
+ if (contentDisposition) {
36
+ const filenameMatch = contentDisposition.match(/filename="?([^"]+)"?/);
37
+ if (filenameMatch) {
38
+ filename = filenameMatch[1];
39
+ }
40
+ }
41
+ return {
42
+ data: response.data,
43
+ filename,
44
+ size: response.data.length,
45
+ };
46
+ }
47
+ catch (error) {
48
+ throw this.handleAxiosError(error, projectShortname);
49
+ }
50
+ }
51
+ handleAxiosError(error, context) {
52
+ if (axios_1.default.isAxiosError(error)) {
53
+ if (error.response?.status === 401) {
54
+ return new types_1.CliError(config_1.MESSAGES.TOKEN_INVALID);
55
+ }
56
+ else if (error.response?.status === 403) {
57
+ return new types_1.CliError(`You do not have permission to access project: ${context}`);
58
+ }
59
+ else if (error.response?.status === 404) {
60
+ return new types_1.CliError(`Project not found: ${context}. Please check the project shortname.`);
61
+ }
62
+ else if (error.code === 'ECONNABORTED') {
63
+ return new types_1.CliError('Download timeout. The project may be too large or connection is slow.');
64
+ }
65
+ else {
66
+ return new types_1.CliError(error.response?.data?.message || error.message);
67
+ }
68
+ }
69
+ return new types_1.CliError(error instanceof Error ? error.message : 'Unknown error');
70
+ }
71
+ }
72
+ exports.ApiClient = ApiClient;
73
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,mCAAgD;AAEhD,qCAA4C;AAQ5C,MAAa,SAAS;IAGpB,YAAY,OAAqB;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,qBAAqB;QACnB,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QACrD,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,OAAO,GAAG,iBAAQ,CAAC,eAAwC,CAAC,IAAI,iBAAQ,CAAC,WAAW,CAAC;YAC3F,MAAM,IAAI,gBAAQ,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAG,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,gBAAwB,EAAE,WAAmB,eAAM,CAAC,eAAe;QACvF,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC3C,MAAM,WAAW,GAAG,GAAG,eAAM,CAAC,YAAY,GAAG,QAAQ,IAAI,gBAAgB,WAAW,CAAC;QAErF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,WAAW,EAAE;gBAC5C,OAAO,EAAE;oBACP,eAAe,EAAE,UAAU,KAAK,CAAC,WAAW,EAAE;iBAC/C;gBACD,YAAY,EAAE,aAAa;gBAC3B,OAAO,EAAE,MAAM;aAChB,CAAC,CAAC;YAEH,IAAI,QAAQ,GAAG,GAAG,gBAAgB,MAAM,CAAC;YACzC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;YACnE,IAAI,kBAAkB,EAAE,CAAC;gBACvB,MAAM,aAAa,GAAG,kBAAkB,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;gBACvE,IAAI,aAAa,EAAE,CAAC;oBAClB,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;YAED,OAAO;gBACL,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,QAAQ;gBACR,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM;aAC3B,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,KAAc,EAAE,OAAe;QACtD,IAAI,eAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;gBACnC,OAAO,IAAI,gBAAQ,CAAC,iBAAQ,CAAC,aAAa,CAAC,CAAC;YAC9C,CAAC;iBAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC1C,OAAO,IAAI,gBAAQ,CAAC,iDAAiD,OAAO,EAAE,CAAC,CAAC;YAClF,CAAC;iBAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC1C,OAAO,IAAI,gBAAQ,CAAC,sBAAsB,OAAO,uCAAuC,CAAC,CAAC;YAC5F,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBACzC,OAAO,IAAI,gBAAQ,CAAC,uEAAuE,CAAC,CAAC;YAC/F,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,gBAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QACD,OAAO,IAAI,gBAAQ,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;IAChF,CAAC;CACF;AAhED,8BAgEC"}
package/dist/cli.js CHANGED
@@ -3,11 +3,27 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  const commander_1 = require("commander");
5
5
  const commands_1 = require("./commands");
6
+ const types_1 = require("./types");
6
7
  const fs_1 = require("fs");
7
8
  const path_1 = require("path");
8
9
  const packageJson = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(__dirname, '../package.json'), 'utf-8'));
9
10
  const program = new commander_1.Command();
10
11
  const handler = new commands_1.CommandHandler();
12
+ async function runCommand(fn) {
13
+ try {
14
+ await fn();
15
+ }
16
+ catch (error) {
17
+ if (error instanceof types_1.CliError) {
18
+ console.error(`\n❌ ${error.message || 'An error occurred'}`);
19
+ process.exit(error.exitCode);
20
+ }
21
+ else {
22
+ console.error(`\n❌ ${error instanceof Error ? error.message : 'Unknown error'}`);
23
+ process.exit(1);
24
+ }
25
+ }
26
+ }
11
27
  program
12
28
  .name('mbx')
13
29
  .description('Mindbricks CLI - Command line tools for Mindbricks platform')
@@ -16,19 +32,19 @@ program
16
32
  .command('login')
17
33
  .description('Authenticate with your account')
18
34
  .action(async () => {
19
- await handler.handleLogin();
35
+ await runCommand(() => handler.handleLogin());
20
36
  });
21
37
  program
22
38
  .command('whoami')
23
39
  .description('Display current authenticated user information')
24
40
  .action(async () => {
25
- await handler.handleWhoami();
41
+ await runCommand(() => handler.handleWhoami());
26
42
  });
27
43
  program
28
44
  .command('logout')
29
45
  .description('Logout and remove stored credentials')
30
46
  .action(async () => {
31
- await handler.handleLogout();
47
+ await runCommand(() => handler.handleLogout());
32
48
  });
33
49
  program
34
50
  .command('export <projectId>')
@@ -36,7 +52,13 @@ program
36
52
  .option('-o, --output <path>', 'Output directory path', '.')
37
53
  .option('-z, --zip', 'Keep as zip file (default: auto-extract to folder)')
38
54
  .action(async (projectId, options) => {
39
- await handler.handleExport(projectId, options.output, options.zip || false);
55
+ await runCommand(() => handler.handleExport(projectId, options.output, options.zip || false));
56
+ });
57
+ program
58
+ .command('pull [servicePath]')
59
+ .description('Pull latest updates for a service (reads .mindbricks.json for project/service info)')
60
+ .action(async (servicePath) => {
61
+ await runCommand(() => handler.handlePull(servicePath));
40
62
  });
41
63
  program.parse(process.argv);
42
64
  if (!process.argv.slice(2).length) {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,yCAA4C;AAC5C,2BAAkC;AAClC,+BAA4B;AAE5B,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,IAAA,iBAAY,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAC1D,CAAC;AAEF,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAC9B,MAAM,OAAO,GAAG,IAAI,yBAAc,EAAE,CAAC;AAErC,OAAO;KACJ,IAAI,CAAC,KAAK,CAAC;KACX,WAAW,CAAC,6DAA6D,CAAC;KAC1E,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAEhC,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,gCAAgC,CAAC;KAC7C,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;AAC9B,CAAC,CAAC,CAAC;AAGL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,gDAAgD,CAAC;KAC7D,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,sCAAsC,CAAC;KACnD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,oBAAoB,CAAC;KAC7B,WAAW,CAAC,qEAAqE,CAAC;KAClF,MAAM,CAAC,qBAAqB,EAAE,uBAAuB,EAAE,GAAG,CAAC;KAC3D,MAAM,CAAC,WAAW,EAAE,oDAAoD,CAAC;KACzE,MAAM,CAAC,KAAK,EAAE,SAAiB,EAAE,OAA0C,EAAE,EAAE;IAC9E,MAAM,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC;AAC9E,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAClC,OAAO,CAAC,UAAU,EAAE,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,21 @@
1
1
  export declare class CommandHandler {
2
2
  private authService;
3
3
  private storage;
4
+ private apiClient;
4
5
  constructor();
5
6
  handleLogin(): Promise<void>;
6
7
  handleWhoami(): Promise<void>;
7
8
  handleLogout(): Promise<void>;
8
9
  handleExport(projectShortname: string, outputPath: string, keepZip?: boolean): Promise<void>;
10
+ handlePull(inputPath?: string): Promise<void>;
11
+ private extractAndCleanup;
12
+ private findMindbricksFile;
13
+ private readMindbricksMetadata;
14
+ private validateExtractedService;
15
+ private backupCurrentVersion;
16
+ private replaceWithNewVersion;
17
+ private cleanupTempFiles;
18
+ private restoreFromBackup;
19
+ private safeRemove;
9
20
  }
10
21
  //# sourceMappingURL=commands.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAUA,qBAAa,cAAc;IACzB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,OAAO,CAAe;;IAQxB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAmD5B,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB7B,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB7B,YAAY,CAAC,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC;CA+F1G"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAqBA,qBAAa,cAAc;IACzB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,SAAS,CAAY;;IAQvB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IA2C5B,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB7B,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B7B,YAAY,CAAC,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BnG,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAwFrC,iBAAiB;IAoB/B,OAAO,CAAC,kBAAkB;YAeZ,sBAAsB;YAkCtB,wBAAwB;YASxB,oBAAoB;YA0BpB,qBAAqB;YAoCrB,gBAAgB;YAMhB,iBAAiB;YA0BjB,UAAU;CAczB"}
package/dist/commands.js CHANGED
@@ -38,190 +38,339 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.CommandHandler = void 0;
40
40
  const prompts_1 = __importDefault(require("prompts"));
41
- const axios_1 = __importDefault(require("axios"));
42
41
  const fs = __importStar(require("fs"));
43
42
  const path = __importStar(require("path"));
44
43
  const extract_zip_1 = __importDefault(require("extract-zip"));
45
44
  const auth_1 = require("./auth");
46
45
  const storage_1 = require("./storage");
46
+ const api_1 = require("./api");
47
+ const types_1 = require("./types");
47
48
  const config_1 = require("./config");
48
49
  class CommandHandler {
49
50
  constructor() {
50
51
  this.authService = new auth_1.AuthService();
51
52
  this.storage = new storage_1.TokenStorage();
53
+ this.apiClient = new api_1.ApiClient(this.storage);
52
54
  }
53
55
  async handleLogin() {
54
- try {
55
- console.log('🔐 Authentication\n');
56
- const credentials = await (0, prompts_1.default)([
57
- {
58
- type: 'text',
59
- name: 'username',
60
- message: 'Email:',
61
- validate: (value) => {
62
- if (!value || value.trim().length === 0) {
63
- return 'Email is required';
64
- }
65
- const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
66
- if (!emailRegex.test(value)) {
67
- return 'Please enter a valid email address';
68
- }
69
- return true;
56
+ console.log('🔐 Authentication\n');
57
+ const credentials = await (0, prompts_1.default)([
58
+ {
59
+ type: 'text',
60
+ name: 'username',
61
+ message: 'Email:',
62
+ validate: (value) => {
63
+ if (!value || value.trim().length === 0) {
64
+ return 'Email is required';
65
+ }
66
+ const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
67
+ if (!emailRegex.test(value)) {
68
+ return 'Please enter a valid email address';
70
69
  }
71
- },
72
- {
73
- type: 'password',
74
- name: 'password',
75
- message: 'Password:',
76
- validate: (value) => value && value.length > 0 ? true : 'Password is required'
70
+ return true;
77
71
  }
78
- ]);
79
- if (!credentials.username || !credentials.password) {
80
- console.log('\n❌ Login cancelled');
81
- process.exit(0);
82
- }
83
- console.log('\n⏳ Authenticating...');
84
- const response = await this.authService.login(credentials);
85
- const tokenData = this.authService.prepareTokenForStorage(response);
86
- this.storage.saveToken(tokenData);
87
- console.log(`\n${config_1.MESSAGES.LOGIN_SUCCESS}`);
88
- console.log(`👤 Logged in as: ${tokenData.fullname} (${tokenData.email})`);
89
- console.log(`📁 Token saved to: ${this.storage.getTokenPath()}`);
90
- }
91
- catch (error) {
92
- console.error(`\n${config_1.MESSAGES.LOGIN_FAILED}`);
93
- console.error(` ${error instanceof Error ? error.message : 'Unknown error'}`);
94
- process.exit(1);
72
+ },
73
+ {
74
+ type: 'password',
75
+ name: 'password',
76
+ message: 'Password:',
77
+ validate: (value) => value && value.length > 0 ? true : 'Password is required'
78
+ }
79
+ ]);
80
+ if (!credentials.username || !credentials.password) {
81
+ throw new types_1.CliError('Login cancelled', 0);
95
82
  }
83
+ console.log('\n⏳ Authenticating...');
84
+ const response = await this.authService.login(credentials);
85
+ const tokenData = this.authService.prepareTokenForStorage(response);
86
+ this.storage.saveToken(tokenData);
87
+ console.log(`\n${config_1.MESSAGES.LOGIN_SUCCESS}`);
88
+ console.log(`👤 Logged in as: ${tokenData.fullname} (${tokenData.email})`);
89
+ console.log(`📁 Token saved to: ${this.storage.getTokenPath()}`);
96
90
  }
97
91
  async handleWhoami() {
92
+ const token = this.storage.getToken();
93
+ if (!token) {
94
+ console.log(`ℹ️ ${config_1.MESSAGES.NO_TOKEN}`);
95
+ return;
96
+ }
97
+ console.log('\n📋 Current Authentication Status\n');
98
+ console.log(` Name: ${token.fullname}`);
99
+ console.log(` Email: ${token.email}`);
100
+ console.log(` User ID: ${token.userId}`);
101
+ console.log(` Role: ${token.roleId}`);
102
+ console.log(` Session ID: ${token.sessionId}`);
103
+ console.log(` Logged in: ${new Date(token.loginAt).toLocaleString()}`);
104
+ console.log(`\n Token file: ${this.storage.getTokenPath()}`);
105
+ }
106
+ async handleLogout() {
107
+ const token = this.storage.getToken();
108
+ if (!token) {
109
+ console.log('ℹ️ You are not currently logged in.');
110
+ return;
111
+ }
112
+ const { confirm } = await (0, prompts_1.default)({
113
+ type: 'confirm',
114
+ name: 'confirm',
115
+ message: 'Are you sure you want to logout?',
116
+ initial: true
117
+ });
118
+ if (!confirm) {
119
+ console.log('Logout cancelled.');
120
+ return;
121
+ }
122
+ const deleted = this.storage.deleteToken();
123
+ if (deleted) {
124
+ console.log('\n✅ Logged out successfully');
125
+ console.log(` Credentials removed from: ${this.storage.getTokenPath()}`);
126
+ }
127
+ else {
128
+ console.log('⚠️ No credentials found to remove');
129
+ }
130
+ }
131
+ async handleExport(projectShortname, outputPath, keepZip = false) {
132
+ console.log('📦 Exporting project...\n');
133
+ const token = this.apiClient.getAuthenticatedToken();
134
+ console.log(` Project: ${projectShortname}`);
135
+ console.log(` User: ${token.fullname}`);
136
+ console.log(`\n⏳ Downloading project archive...`);
137
+ const result = await this.apiClient.downloadProject(projectShortname, config_1.CONFIG.EXPORT_ENDPOINT);
138
+ const outputDir = path.resolve(outputPath);
139
+ await fs.promises.mkdir(outputDir, { recursive: true });
140
+ const filePath = path.join(outputDir, result.filename);
141
+ await fs.promises.writeFile(filePath, result.data);
142
+ const fileSizeMB = (result.size / (1024 * 1024)).toFixed(2);
143
+ console.log('\n✓ Download completed successfully!');
144
+ console.log(` File: ${result.filename}`);
145
+ console.log(` Size: ${fileSizeMB} MB`);
146
+ console.log(` Location: ${filePath}`);
147
+ if (!keepZip) {
148
+ await this.extractAndCleanup(filePath, outputDir, projectShortname);
149
+ }
150
+ }
151
+ async handlePull(inputPath) {
152
+ console.log('🔄 Pulling latest service update...\n');
153
+ let startPath;
154
+ try {
155
+ startPath = inputPath ? path.resolve(inputPath) : process.cwd();
156
+ }
157
+ catch {
158
+ throw new types_1.CliError(`Cannot determine current directory.\n` +
159
+ ` The directory may have been deleted by a previous pull.\n` +
160
+ ` Please run: cd .. && cd <service-directory> && mbx pull`);
161
+ }
162
+ const { metadata, servicePath } = await this.readMindbricksMetadata(startPath);
163
+ const { projectShortname, projectCodename, serviceName } = metadata;
164
+ console.log(` Project: ${projectShortname}`);
165
+ console.log(` Service: ${serviceName}`);
166
+ const token = this.apiClient.getAuthenticatedToken();
167
+ console.log(` User: ${token.fullname}`);
168
+ const { confirm } = await (0, prompts_1.default)({
169
+ type: 'confirm',
170
+ name: 'confirm',
171
+ message: 'This will overwrite all files in the service directory. Continue?',
172
+ initial: false
173
+ });
174
+ if (!confirm) {
175
+ console.log('Pull cancelled.');
176
+ return;
177
+ }
178
+ console.log(`\n⏳ Downloading latest service version...`);
179
+ const result = await this.apiClient.downloadProject(projectShortname, config_1.CONFIG.PULL_ENDPOINT);
180
+ const fileSizeMB = (result.size / (1024 * 1024)).toFixed(2);
181
+ console.log(` Downloaded: ${fileSizeMB} MB`);
182
+ const tempZipPath = path.join(servicePath, `.${serviceName}_temp.zip`);
183
+ const tempExtractPath = path.join(servicePath, `.${serviceName}_temp_extract`);
184
+ let backupPath = null;
185
+ let updateSucceeded = false;
98
186
  try {
99
- const token = this.storage.getToken();
100
- if (!token) {
101
- console.log(`ℹ️ ${config_1.MESSAGES.NO_TOKEN}`);
102
- return;
103
- }
104
- console.log('\n📋 Current Authentication Status\n');
105
- console.log(` Name: ${token.fullname}`);
106
- console.log(` Email: ${token.email}`);
107
- console.log(` User ID: ${token.userId}`);
108
- console.log(` Role: ${token.roleId}`);
109
- console.log(` Session ID: ${token.sessionId}`);
110
- console.log(` Logged in: ${new Date(token.loginAt).toLocaleString()}`);
111
- console.log(`\n Token file: ${this.storage.getTokenPath()}`);
187
+ await fs.promises.writeFile(tempZipPath, result.data);
188
+ console.log('\n⏳ Extracting update...');
189
+ await (0, extract_zip_1.default)(tempZipPath, { dir: tempExtractPath });
190
+ const extractedServicePath = path.join(tempExtractPath, projectCodename, serviceName);
191
+ await this.validateExtractedService(extractedServicePath);
192
+ console.log(' Backing up current version...');
193
+ backupPath = await this.backupCurrentVersion(servicePath, serviceName);
194
+ console.log(` Backup: ${backupPath}`);
195
+ console.log('\n⏳ Replacing with new version...');
196
+ await this.replaceWithNewVersion(servicePath, extractedServicePath, serviceName);
197
+ updateSucceeded = true;
198
+ console.log('\n✅ Service updated successfully!');
199
+ console.log(` Service: ${serviceName}`);
200
+ console.log(` Location: ${servicePath}`);
112
201
  }
113
202
  catch (error) {
114
- console.error('❌ Failed to retrieve user information');
115
- console.error(` ${error instanceof Error ? error.message : 'Unknown error'}`);
116
- process.exit(1);
203
+ if (backupPath && fs.existsSync(backupPath)) {
204
+ console.log('\n⚠️ Update failed, restoring from backup...');
205
+ try {
206
+ await this.restoreFromBackup(servicePath, backupPath, serviceName);
207
+ console.log('✅ Restored previous version from backup');
208
+ }
209
+ catch (restoreError) {
210
+ console.error('❌ Failed to restore from backup');
211
+ console.error(` Backup location: ${backupPath}`);
212
+ console.error(' Please manually restore your files from the backup directory');
213
+ }
214
+ }
215
+ throw error;
216
+ }
217
+ finally {
218
+ await this.cleanupTempFiles(tempZipPath, tempExtractPath);
219
+ if (updateSucceeded && backupPath) {
220
+ await this.safeRemove(backupPath);
221
+ }
117
222
  }
118
223
  }
119
- async handleLogout() {
224
+ async extractAndCleanup(zipPath, outputDir, projectShortname) {
225
+ console.log('\n⏳ Extracting archive...');
226
+ const extractPath = path.join(outputDir, projectShortname);
120
227
  try {
121
- const token = this.storage.getToken();
122
- if (!token) {
123
- console.log('ℹ️ You are not currently logged in.');
124
- return;
228
+ await (0, extract_zip_1.default)(zipPath, { dir: extractPath });
229
+ console.log('\n✓ Extraction completed successfully!');
230
+ console.log(` Extracted: ${extractPath}`);
231
+ await fs.promises.unlink(zipPath);
232
+ console.log(` Cleaned up: ${path.basename(zipPath)}`);
233
+ }
234
+ catch (extractError) {
235
+ console.error('\n⚠️ Extraction failed, but zip file is still available');
236
+ console.error(` ${extractError instanceof Error ? extractError.message : 'Unknown error'}`);
237
+ console.log(` Zip file: ${zipPath}`);
238
+ }
239
+ }
240
+ findMindbricksFile(startPath) {
241
+ let currentPath = path.resolve(startPath);
242
+ const root = path.parse(currentPath).root;
243
+ while (currentPath !== root) {
244
+ const metadataPath = path.join(currentPath, '.mindbricks.json');
245
+ if (fs.existsSync(metadataPath)) {
246
+ return metadataPath;
125
247
  }
126
- const deleted = this.storage.deleteToken();
127
- if (deleted) {
128
- console.log('\n✅ Logged out successfully');
129
- console.log(` Credentials removed from: ${this.storage.getTokenPath()}`);
248
+ currentPath = path.dirname(currentPath);
249
+ }
250
+ return null;
251
+ }
252
+ async readMindbricksMetadata(targetPath) {
253
+ const metadataPath = this.findMindbricksFile(targetPath);
254
+ if (!metadataPath) {
255
+ throw new types_1.CliError(`No .mindbricks.json found.\n` +
256
+ ` This command must be run from within a service directory.\n` +
257
+ ` Searched from: ${targetPath}`);
258
+ }
259
+ const servicePath = path.dirname(metadataPath);
260
+ console.log(` Reading: ${metadataPath}`);
261
+ const metadataContent = await fs.promises.readFile(metadataPath, 'utf-8');
262
+ const metadata = JSON.parse(metadataContent);
263
+ if (!metadata.projectShortname || !metadata.serviceName) {
264
+ throw new types_1.CliError(`Invalid metadata file.\n` +
265
+ ` The .mindbricks.json file must contain "projectShortname" and "serviceName"`);
266
+ }
267
+ if (!metadata.projectCodename) {
268
+ throw new types_1.CliError(`Invalid metadata file.\n` +
269
+ ` The .mindbricks.json file must contain "projectCodename"`);
270
+ }
271
+ return { metadata: metadata, servicePath };
272
+ }
273
+ async validateExtractedService(extractedServicePath) {
274
+ if (!fs.existsSync(extractedServicePath)) {
275
+ throw new types_1.CliError(`Service not found in downloaded project.\n` +
276
+ ` Expected: ${extractedServicePath}`);
277
+ }
278
+ }
279
+ async backupCurrentVersion(targetPath, serviceName) {
280
+ const backupPath = path.join(targetPath, `.backup_${Date.now()}`);
281
+ await fs.promises.mkdir(backupPath, { recursive: true });
282
+ const items = await fs.promises.readdir(targetPath);
283
+ const excludePatterns = ['.mindbricks.json', '.backup_', `.${serviceName}_temp`];
284
+ for (const item of items) {
285
+ if (excludePatterns.some(pattern => item === pattern || item.startsWith(pattern))) {
286
+ continue;
287
+ }
288
+ const sourcePath = path.join(targetPath, item);
289
+ const destPath = path.join(backupPath, item);
290
+ const stat = await fs.promises.lstat(sourcePath);
291
+ if (stat.isDirectory()) {
292
+ await fs.promises.cp(sourcePath, destPath, { recursive: true });
130
293
  }
131
294
  else {
132
- console.log('⚠️ No credentials found to remove');
295
+ await fs.promises.copyFile(sourcePath, destPath);
133
296
  }
134
297
  }
135
- catch (error) {
136
- console.error('❌ Failed to logout');
137
- console.error(` ${error instanceof Error ? error.message : 'Unknown error'}`);
138
- process.exit(1);
298
+ return backupPath;
299
+ }
300
+ async replaceWithNewVersion(targetPath, extractedServicePath, serviceName) {
301
+ const items = await fs.promises.readdir(targetPath);
302
+ const excludePatterns = ['.mindbricks.json', '.backup_', `.${serviceName}_temp`];
303
+ for (const item of items) {
304
+ if (excludePatterns.some(pattern => item === pattern || item.startsWith(pattern))) {
305
+ continue;
306
+ }
307
+ const itemPath = path.join(targetPath, item);
308
+ const stat = await fs.promises.lstat(itemPath);
309
+ if (stat.isDirectory()) {
310
+ await fs.promises.rm(itemPath, { recursive: true, force: true });
311
+ }
312
+ else {
313
+ await fs.promises.unlink(itemPath);
314
+ }
315
+ }
316
+ const newItems = await fs.promises.readdir(extractedServicePath);
317
+ for (const item of newItems) {
318
+ if (item === '.mindbricks.json') {
319
+ continue;
320
+ }
321
+ const sourcePath = path.join(extractedServicePath, item);
322
+ const destPath = path.join(targetPath, item);
323
+ const stat = await fs.promises.lstat(sourcePath);
324
+ if (stat.isDirectory()) {
325
+ await fs.promises.cp(sourcePath, destPath, { recursive: true });
326
+ }
327
+ else {
328
+ await fs.promises.copyFile(sourcePath, destPath);
329
+ }
139
330
  }
140
331
  }
141
- async handleExport(projectShortname, outputPath, keepZip = false) {
142
- try {
143
- console.log('📦 Exporting project...\n');
144
- let token;
145
- try {
146
- token = this.storage.getValidToken();
147
- }
148
- catch (error) {
149
- const errorMsg = error instanceof Error ? error.message : 'TOKEN_ERROR';
150
- const message = config_1.MESSAGES[errorMsg];
151
- console.error(`\n${message}`);
152
- process.exit(1);
153
- }
154
- console.log(` Project: ${projectShortname}`);
155
- console.log(` User: ${token.fullname}`);
156
- console.log(`\n⏳ Downloading project archive...`);
157
- const downloadUrl = `${config_1.CONFIG.API_BASE_URL}${config_1.CONFIG.EXPORT_ENDPOINT}/${projectShortname}/download`;
158
- const response = await axios_1.default.get(downloadUrl, {
159
- headers: {
160
- 'Authorization': `Bearer ${token.accessToken}`,
161
- },
162
- responseType: 'arraybuffer',
163
- timeout: 300000,
164
- });
165
- let filename = `${projectShortname}.zip`;
166
- const contentDisposition = response.headers['content-disposition'];
167
- if (contentDisposition) {
168
- const filenameMatch = contentDisposition.match(/filename="?([^"]+)"?/);
169
- if (filenameMatch) {
170
- filename = filenameMatch[1];
171
- }
332
+ async cleanupTempFiles(...paths) {
333
+ for (const tempPath of paths) {
334
+ await this.safeRemove(tempPath);
335
+ }
336
+ }
337
+ async restoreFromBackup(targetPath, backupPath, serviceName) {
338
+ const items = await fs.promises.readdir(targetPath);
339
+ const excludePatterns = ['.mindbricks.json', '.backup_', `.${serviceName}_temp`];
340
+ for (const item of items) {
341
+ if (excludePatterns.some(pattern => item === pattern || item.startsWith(pattern))) {
342
+ continue;
172
343
  }
173
- const outputDir = path.resolve(outputPath);
174
- if (!fs.existsSync(outputDir)) {
175
- fs.mkdirSync(outputDir, { recursive: true });
176
- }
177
- const filePath = path.join(outputDir, filename);
178
- fs.writeFileSync(filePath, response.data);
179
- const stats = fs.statSync(filePath);
180
- const fileSizeMB = (stats.size / (1024 * 1024)).toFixed(2);
181
- console.log('\n✓ Download completed successfully!');
182
- console.log(` File: ${filename}`);
183
- console.log(` Size: ${fileSizeMB} MB`);
184
- console.log(` Location: ${filePath}`);
185
- if (!keepZip) {
186
- console.log('\n⏳ Extracting archive...');
187
- const extractPath = path.join(outputDir, projectShortname);
188
- try {
189
- await (0, extract_zip_1.default)(filePath, { dir: extractPath });
190
- console.log('\n✓ Extraction completed successfully!');
191
- console.log(` Extracted: ${extractPath}`);
192
- fs.unlinkSync(filePath);
193
- console.log(` Cleaned up: ${filename}`);
194
- }
195
- catch (extractError) {
196
- console.error('\n⚠️ Extraction failed, but zip file is still available');
197
- console.error(` ${extractError instanceof Error ? extractError.message : 'Unknown error'}`);
198
- console.log(` Zip file: ${filePath}`);
199
- }
344
+ const itemPath = path.join(targetPath, item);
345
+ await this.safeRemove(itemPath);
346
+ }
347
+ const backupItems = await fs.promises.readdir(backupPath);
348
+ for (const item of backupItems) {
349
+ const sourcePath = path.join(backupPath, item);
350
+ const destPath = path.join(targetPath, item);
351
+ const stat = await fs.promises.lstat(sourcePath);
352
+ if (stat.isDirectory()) {
353
+ await fs.promises.cp(sourcePath, destPath, { recursive: true });
354
+ }
355
+ else {
356
+ await fs.promises.copyFile(sourcePath, destPath);
200
357
  }
201
358
  }
202
- catch (error) {
203
- console.error('\n❌ Export failed');
204
- if (axios_1.default.isAxiosError(error)) {
205
- if (error.response?.status === 401) {
206
- console.error(` ${config_1.MESSAGES.TOKEN_INVALID}`);
207
- }
208
- else if (error.response?.status === 403) {
209
- console.error(' You do not have permission to export this project');
210
- }
211
- else if (error.response?.status === 404) {
212
- console.error(' Project not found. Please check the project shortname.');
213
- }
214
- else if (error.code === 'ECONNABORTED') {
215
- console.error(' Download timeout. The project may be too large or connection is slow.');
359
+ }
360
+ async safeRemove(filePath) {
361
+ try {
362
+ if (fs.existsSync(filePath)) {
363
+ const stat = await fs.promises.lstat(filePath);
364
+ if (stat.isDirectory()) {
365
+ await fs.promises.rm(filePath, { recursive: true, force: true });
216
366
  }
217
367
  else {
218
- console.error(` ${error.response?.data?.message || error.message}`);
368
+ await fs.promises.unlink(filePath);
219
369
  }
220
370
  }
221
- else {
222
- console.error(` ${error instanceof Error ? error.message : 'Unknown error'}`);
223
- }
224
- process.exit(1);
371
+ }
372
+ catch (error) {
373
+ console.warn(`⚠️ Warning: Failed to cleanup ${filePath}`);
225
374
  }
226
375
  }
227
376
  }
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -1,8 +1,9 @@
1
1
  export declare const CONFIG: {
2
- readonly API_BASE_URL: "https://app.mindbricks.com";
3
- readonly LOGIN_ENDPOINT: "/api/mindbrix-auth/login";
4
- readonly EXPORT_ENDPOINT: "/api/repository/takeout/projects";
5
- readonly TOKEN_FILE_NAME: ".mbx-token.json";
2
+ API_BASE_URL: string;
3
+ LOGIN_ENDPOINT: string;
4
+ EXPORT_ENDPOINT: string;
5
+ PULL_ENDPOINT: string;
6
+ TOKEN_FILE_NAME: string;
6
7
  };
7
8
  export declare const MESSAGES: {
8
9
  readonly LOGIN_SUCCESS: "✓ Successfully logged in!";
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM;;;;;CAKT,CAAC;AAEX,eAAO,MAAM,QAAQ;;;;;;;;;;CAUX,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM;;;;;;CAMlB,CAAC;AAEF,eAAO,MAAM,QAAQ;;;;;;;;;;CAUX,CAAC"}
package/dist/config.js CHANGED
@@ -2,9 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MESSAGES = exports.CONFIG = void 0;
4
4
  exports.CONFIG = {
5
- API_BASE_URL: 'https://app.mindbricks.com',
5
+ API_BASE_URL: process.env.MBX_API_URL || 'https://app.mindbricks.com',
6
6
  LOGIN_ENDPOINT: '/api/mindbrix-auth/login',
7
7
  EXPORT_ENDPOINT: '/api/repository/takeout/projects',
8
+ PULL_ENDPOINT: '/api/repository/takeout/projects',
8
9
  TOKEN_FILE_NAME: '.mbx-token.json',
9
10
  };
10
11
  exports.MESSAGES = {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;AAEa,QAAA,MAAM,GAAG;IACpB,YAAY,EAAE,4BAA4B;IAC1C,cAAc,EAAE,0BAA0B;IAC1C,eAAe,EAAE,kCAAkC;IACnD,eAAe,EAAE,iBAAiB;CAC1B,CAAC;AAEE,QAAA,QAAQ,GAAG;IACtB,aAAa,EAAE,2BAA2B;IAC1C,YAAY,EAAE,gBAAgB;IAC9B,cAAc,EAAE,2BAA2B;IAC3C,QAAQ,EAAE,0CAA0C;IACpD,WAAW,EAAE,4BAA4B;IACzC,mBAAmB,EAAE,6BAA6B;IAClD,aAAa,EAAE,2DAA2D;IAC1E,aAAa,EAAE,uEAAuE;IACtF,WAAW,EAAE,sEAAsE;CAC3E,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;AAAa,QAAA,MAAM,GAAG;IACpB,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,4BAA4B;IACrE,cAAc,EAAE,0BAA0B;IAC1C,eAAe,EAAE,kCAAkC;IACnD,aAAa,EAAE,kCAAkC;IACjD,eAAe,EAAE,iBAAiB;CACnC,CAAC;AAEW,QAAA,QAAQ,GAAG;IACtB,aAAa,EAAE,2BAA2B;IAC1C,YAAY,EAAE,gBAAgB;IAC9B,cAAc,EAAE,2BAA2B;IAC3C,QAAQ,EAAE,0CAA0C;IACpD,WAAW,EAAE,4BAA4B;IACzC,mBAAmB,EAAE,6BAA6B;IAClD,aAAa,EAAE,2DAA2D;IAC1E,aAAa,EAAE,uEAAuE;IACtF,WAAW,EAAE,sEAAsE;CAC3E,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export { AuthService } from './auth';
2
2
  export { TokenStorage } from './storage';
3
+ export { ApiClient } from './api';
3
4
  export { CommandHandler } from './commands';
4
5
  export * from './types';
5
- export { CONFIG } from './config';
6
+ export { CONFIG, MESSAGES } from './config';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC"}
package/dist/index.js CHANGED
@@ -14,14 +14,17 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.CONFIG = exports.CommandHandler = exports.TokenStorage = exports.AuthService = void 0;
17
+ exports.MESSAGES = exports.CONFIG = exports.CommandHandler = exports.ApiClient = exports.TokenStorage = exports.AuthService = void 0;
18
18
  var auth_1 = require("./auth");
19
19
  Object.defineProperty(exports, "AuthService", { enumerable: true, get: function () { return auth_1.AuthService; } });
20
20
  var storage_1 = require("./storage");
21
21
  Object.defineProperty(exports, "TokenStorage", { enumerable: true, get: function () { return storage_1.TokenStorage; } });
22
+ var api_1 = require("./api");
23
+ Object.defineProperty(exports, "ApiClient", { enumerable: true, get: function () { return api_1.ApiClient; } });
22
24
  var commands_1 = require("./commands");
23
25
  Object.defineProperty(exports, "CommandHandler", { enumerable: true, get: function () { return commands_1.CommandHandler; } });
24
26
  __exportStar(require("./types"), exports);
25
27
  var config_1 = require("./config");
26
28
  Object.defineProperty(exports, "CONFIG", { enumerable: true, get: function () { return config_1.CONFIG; } });
29
+ Object.defineProperty(exports, "MESSAGES", { enumerable: true, get: function () { return config_1.MESSAGES; } });
27
30
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,+BAAqC;AAA5B,mGAAA,WAAW,OAAA;AACpB,qCAAyC;AAAhC,uGAAA,YAAY,OAAA;AACrB,uCAA4C;AAAnC,0GAAA,cAAc,OAAA;AACvB,0CAAwB;AACxB,mCAAkC;AAAzB,gGAAA,MAAM,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,+BAAqC;AAA5B,mGAAA,WAAW,OAAA;AACpB,qCAAyC;AAAhC,uGAAA,YAAY,OAAA;AACrB,6BAAkC;AAAzB,gGAAA,SAAS,OAAA;AAClB,uCAA4C;AAAnC,0GAAA,cAAc,OAAA;AACvB,0CAAwB;AACxB,mCAA4C;AAAnC,gGAAA,MAAM,OAAA;AAAE,kGAAA,QAAQ,OAAA"}
package/dist/storage.d.ts CHANGED
@@ -3,8 +3,11 @@ export declare class TokenStorage {
3
3
  private tokenPath;
4
4
  constructor();
5
5
  saveToken(token: StoredToken): void;
6
+ saveTokenAsync(token: StoredToken): Promise<void>;
6
7
  getToken(): StoredToken | null;
8
+ getTokenAsync(): Promise<StoredToken | null>;
7
9
  deleteToken(): boolean;
10
+ deleteTokenAsync(): Promise<boolean>;
8
11
  hasToken(): boolean;
9
12
  getTokenPath(): string;
10
13
  validateToken(): string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAKtC,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAS;;IAO1B,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAUnC,QAAQ,IAAI,WAAW,GAAG,IAAI;IAa9B,WAAW,IAAI,OAAO;IAatB,QAAQ,IAAI,OAAO;IAKnB,YAAY,IAAI,MAAM;IAItB,aAAa,IAAI,MAAM,GAAG,IAAI;IAyB9B,aAAa,IAAI,WAAW;CAO7B"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAKtC,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAS;;IAO1B,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAS7B,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IASvD,QAAQ,IAAI,WAAW,GAAG,IAAI;IAYxB,aAAa,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IASlD,WAAW,IAAI,OAAO;IAYhB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IAS1C,QAAQ,IAAI,OAAO;IAKnB,YAAY,IAAI,MAAM;IAItB,aAAa,IAAI,MAAM,GAAG,IAAI;IAyB9B,aAAa,IAAI,WAAW;CAO7B"}
package/dist/storage.js CHANGED
@@ -45,7 +45,16 @@ class TokenStorage {
45
45
  saveToken(token) {
46
46
  try {
47
47
  const tokenData = JSON.stringify(token, null, 2);
48
- fs.writeFileSync(this.tokenPath, tokenData, 'utf-8');
48
+ fs.writeFileSync(this.tokenPath, tokenData, { encoding: 'utf-8', mode: 0o600 });
49
+ }
50
+ catch (error) {
51
+ throw new Error(`Failed to save token: ${error instanceof Error ? error.message : 'Unknown error'}`);
52
+ }
53
+ }
54
+ async saveTokenAsync(token) {
55
+ try {
56
+ const tokenData = JSON.stringify(token, null, 2);
57
+ await fs.promises.writeFile(this.tokenPath, tokenData, { encoding: 'utf-8', mode: 0o600 });
49
58
  }
50
59
  catch (error) {
51
60
  throw new Error(`Failed to save token: ${error instanceof Error ? error.message : 'Unknown error'}`);
@@ -63,6 +72,15 @@ class TokenStorage {
63
72
  return null;
64
73
  }
65
74
  }
75
+ async getTokenAsync() {
76
+ try {
77
+ const tokenData = await fs.promises.readFile(this.tokenPath, 'utf-8');
78
+ return JSON.parse(tokenData);
79
+ }
80
+ catch (error) {
81
+ return null;
82
+ }
83
+ }
66
84
  deleteToken() {
67
85
  try {
68
86
  if (fs.existsSync(this.tokenPath)) {
@@ -75,6 +93,15 @@ class TokenStorage {
75
93
  return false;
76
94
  }
77
95
  }
96
+ async deleteTokenAsync() {
97
+ try {
98
+ await fs.promises.unlink(this.tokenPath);
99
+ return true;
100
+ }
101
+ catch (error) {
102
+ return false;
103
+ }
104
+ }
78
105
  hasToken() {
79
106
  return fs.existsSync(this.tokenPath);
80
107
  }
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -64,4 +64,8 @@ export interface ApiError {
64
64
  statusCode?: number;
65
65
  error?: string;
66
66
  }
67
+ export declare class CliError extends Error {
68
+ readonly exitCode: number;
69
+ constructor(message: string, exitCode?: number);
70
+ }
67
71
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,QAAQ,EAAE;QACR,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE;QACL,UAAU,EAAE,MAAM,CAAC;QACnB,EAAE,EAAE,MAAM,CAAC;QACX,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,QAAQ,EAAE;QACR,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE;QACL,UAAU,EAAE,MAAM,CAAC;QACnB,EAAE,EAAE,MAAM,CAAC;QACX,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,QAAS,SAAQ,KAAK;aAGf,QAAQ,EAAE,MAAM;gBADhC,OAAO,EAAE,MAAM,EACC,QAAQ,GAAE,MAAU;CAKvC"}
package/dist/types.js CHANGED
@@ -1,3 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CliError = void 0;
4
+ class CliError extends Error {
5
+ constructor(message, exitCode = 1) {
6
+ super(message);
7
+ this.exitCode = exitCode;
8
+ this.name = 'CliError';
9
+ }
10
+ }
11
+ exports.CliError = CliError;
3
12
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAuEA,MAAa,QAAS,SAAQ,KAAK;IACjC,YACE,OAAe,EACC,WAAmB,CAAC;QAEpC,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,aAAQ,GAAR,QAAQ,CAAY;QAGpC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF;AARD,4BAQC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mindbricks/mbx",
3
- "version": "1.0.9",
3
+ "version": "1.0.10",
4
4
  "description": "Mindbricks CLI Command line tools for Mindbricks platform",
5
5
  "main": "dist/index.js",
6
6
  "bin": {