@mindbricks/mbx 1.0.9 → 1.0.11

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,42 @@ 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 also specify a path
47
+ mbx pull ./path/to/service
48
+ ```
49
+
50
+ The `pull` command requires a `.mindbricks.json` file in the service directory with the following structure:
51
+
52
+ ```json
53
+ {
54
+ "projectShortname": "your-project",
55
+ "projectCodename": "your-codename",
56
+ "serviceName": "your-service"
57
+ }
58
+ ```
59
+
60
+ ### Logout
61
+ Log out and remove stored credentials:
62
+
63
+ ```bash
64
+ mbx logout
65
+ ```
66
+
40
67
  ## Commands
41
68
 
42
69
  | Command | Description |
43
70
  |---------|-------------|
44
71
  | `mbx login` | Authenticate with your Mindbricks account |
72
+ | `mbx logout` | Log out and remove stored credentials |
45
73
  | `mbx whoami` | Display current authenticated user information |
46
74
  | `mbx export <shortname>` | Export a project to local directory |
75
+ | `mbx pull` | Pull latest service update (run from within a service directory) |
47
76
 
48
77
  ## Options
49
78
 
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":"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"}
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;YAgFrC,iBAAiB;IAoB/B,OAAO,CAAC,kBAAkB;YAeZ,sBAAsB;YAiCtB,wBAAwB;YASxB,oBAAoB;YA0BpB,qBAAqB;YAoCrB,gBAAgB;YAMhB,iBAAiB;YA0BjB,UAAU;CAczB"}
package/dist/commands.js CHANGED
@@ -38,190 +38,333 @@ 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
+ const { confirm } = await (0, prompts_1.default)({
165
+ type: 'confirm',
166
+ name: 'confirm',
167
+ message: `This will overwrite all files in the ${serviceName} service. Continue?`,
168
+ initial: false
169
+ });
170
+ if (!confirm) {
171
+ console.log('Pull cancelled.');
172
+ return;
173
+ }
174
+ console.log(`\n⏳ Downloading latest service version...`);
175
+ const result = await this.apiClient.downloadProject(projectShortname, config_1.CONFIG.PULL_ENDPOINT);
176
+ const fileSizeMB = (result.size / (1024 * 1024)).toFixed(2);
177
+ console.log(` Downloaded: ${fileSizeMB} MB`);
178
+ const tempZipPath = path.join(servicePath, `.${serviceName}_temp.zip`);
179
+ const tempExtractPath = path.join(servicePath, `.${serviceName}_temp_extract`);
180
+ let backupPath = null;
181
+ let updateSucceeded = false;
98
182
  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()}`);
183
+ await fs.promises.writeFile(tempZipPath, result.data);
184
+ console.log('\n⏳ Extracting update...');
185
+ await (0, extract_zip_1.default)(tempZipPath, { dir: tempExtractPath });
186
+ const extractedServicePath = path.join(tempExtractPath, projectCodename, serviceName);
187
+ await this.validateExtractedService(extractedServicePath);
188
+ console.log(' Backing up current version...');
189
+ backupPath = await this.backupCurrentVersion(servicePath, serviceName);
190
+ console.log('\n⏳ Replacing with new version...');
191
+ await this.replaceWithNewVersion(servicePath, extractedServicePath, serviceName);
192
+ updateSucceeded = true;
193
+ console.log('\n✅ Service updated successfully!');
194
+ console.log(` Service: ${serviceName}`);
195
+ console.log(` Location: ${servicePath}`);
112
196
  }
113
197
  catch (error) {
114
- console.error('❌ Failed to retrieve user information');
115
- console.error(` ${error instanceof Error ? error.message : 'Unknown error'}`);
116
- process.exit(1);
198
+ if (backupPath && fs.existsSync(backupPath)) {
199
+ console.log('\n⚠️ Update failed, restoring from backup...');
200
+ try {
201
+ await this.restoreFromBackup(servicePath, backupPath, serviceName);
202
+ console.log('✅ Restored previous version from backup');
203
+ }
204
+ catch (restoreError) {
205
+ console.error('❌ Failed to restore from backup');
206
+ console.error(` Backup location: ${backupPath}`);
207
+ console.error(' Please manually restore your files from the backup directory');
208
+ }
209
+ }
210
+ throw error;
211
+ }
212
+ finally {
213
+ await this.cleanupTempFiles(tempZipPath, tempExtractPath);
214
+ if (updateSucceeded && backupPath) {
215
+ await this.safeRemove(backupPath);
216
+ }
117
217
  }
118
218
  }
119
- async handleLogout() {
219
+ async extractAndCleanup(zipPath, outputDir, projectShortname) {
220
+ console.log('\n⏳ Extracting archive...');
221
+ const extractPath = path.join(outputDir, projectShortname);
120
222
  try {
121
- const token = this.storage.getToken();
122
- if (!token) {
123
- console.log('ℹ️ You are not currently logged in.');
124
- return;
223
+ await (0, extract_zip_1.default)(zipPath, { dir: extractPath });
224
+ console.log('\n✓ Extraction completed successfully!');
225
+ console.log(` Extracted: ${extractPath}`);
226
+ await fs.promises.unlink(zipPath);
227
+ console.log(` Cleaned up: ${path.basename(zipPath)}`);
228
+ }
229
+ catch (extractError) {
230
+ console.error('\n⚠️ Extraction failed, but zip file is still available');
231
+ console.error(` ${extractError instanceof Error ? extractError.message : 'Unknown error'}`);
232
+ console.log(` Zip file: ${zipPath}`);
233
+ }
234
+ }
235
+ findMindbricksFile(startPath) {
236
+ let currentPath = path.resolve(startPath);
237
+ const root = path.parse(currentPath).root;
238
+ while (currentPath !== root) {
239
+ const metadataPath = path.join(currentPath, '.mindbricks.json');
240
+ if (fs.existsSync(metadataPath)) {
241
+ return metadataPath;
125
242
  }
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()}`);
243
+ currentPath = path.dirname(currentPath);
244
+ }
245
+ return null;
246
+ }
247
+ async readMindbricksMetadata(targetPath) {
248
+ const metadataPath = this.findMindbricksFile(targetPath);
249
+ if (!metadataPath) {
250
+ throw new types_1.CliError(`No .mindbricks.json found.\n` +
251
+ ` This command must be run from within a service directory.\n` +
252
+ ` Searched from: ${targetPath}`);
253
+ }
254
+ const servicePath = path.dirname(metadataPath);
255
+ const metadataContent = await fs.promises.readFile(metadataPath, 'utf-8');
256
+ const metadata = JSON.parse(metadataContent);
257
+ if (!metadata.projectShortname || !metadata.serviceName) {
258
+ throw new types_1.CliError(`Invalid metadata file.\n` +
259
+ ` The .mindbricks.json file must contain "projectShortname" and "serviceName"`);
260
+ }
261
+ if (!metadata.projectCodename) {
262
+ throw new types_1.CliError(`Invalid metadata file.\n` +
263
+ ` The .mindbricks.json file must contain "projectCodename"`);
264
+ }
265
+ return { metadata: metadata, servicePath };
266
+ }
267
+ async validateExtractedService(extractedServicePath) {
268
+ if (!fs.existsSync(extractedServicePath)) {
269
+ throw new types_1.CliError(`Service not found in downloaded project.\n` +
270
+ ` Expected: ${extractedServicePath}`);
271
+ }
272
+ }
273
+ async backupCurrentVersion(targetPath, serviceName) {
274
+ const backupPath = path.join(targetPath, `.backup_${Date.now()}`);
275
+ await fs.promises.mkdir(backupPath, { recursive: true });
276
+ const items = await fs.promises.readdir(targetPath);
277
+ const excludePatterns = ['.mindbricks.json', '.backup_', `.${serviceName}_temp`];
278
+ for (const item of items) {
279
+ if (excludePatterns.some(pattern => item === pattern || item.startsWith(pattern))) {
280
+ continue;
281
+ }
282
+ const sourcePath = path.join(targetPath, item);
283
+ const destPath = path.join(backupPath, item);
284
+ const stat = await fs.promises.lstat(sourcePath);
285
+ if (stat.isDirectory()) {
286
+ await fs.promises.cp(sourcePath, destPath, { recursive: true });
130
287
  }
131
288
  else {
132
- console.log('⚠️ No credentials found to remove');
289
+ await fs.promises.copyFile(sourcePath, destPath);
133
290
  }
134
291
  }
135
- catch (error) {
136
- console.error('❌ Failed to logout');
137
- console.error(` ${error instanceof Error ? error.message : 'Unknown error'}`);
138
- process.exit(1);
292
+ return backupPath;
293
+ }
294
+ async replaceWithNewVersion(targetPath, extractedServicePath, serviceName) {
295
+ const items = await fs.promises.readdir(targetPath);
296
+ const excludePatterns = ['.mindbricks.json', '.backup_', `.${serviceName}_temp`];
297
+ for (const item of items) {
298
+ if (excludePatterns.some(pattern => item === pattern || item.startsWith(pattern))) {
299
+ continue;
300
+ }
301
+ const itemPath = path.join(targetPath, item);
302
+ const stat = await fs.promises.lstat(itemPath);
303
+ if (stat.isDirectory()) {
304
+ await fs.promises.rm(itemPath, { recursive: true, force: true });
305
+ }
306
+ else {
307
+ await fs.promises.unlink(itemPath);
308
+ }
309
+ }
310
+ const newItems = await fs.promises.readdir(extractedServicePath);
311
+ for (const item of newItems) {
312
+ if (item === '.mindbricks.json') {
313
+ continue;
314
+ }
315
+ const sourcePath = path.join(extractedServicePath, item);
316
+ const destPath = path.join(targetPath, item);
317
+ const stat = await fs.promises.lstat(sourcePath);
318
+ if (stat.isDirectory()) {
319
+ await fs.promises.cp(sourcePath, destPath, { recursive: true });
320
+ }
321
+ else {
322
+ await fs.promises.copyFile(sourcePath, destPath);
323
+ }
139
324
  }
140
325
  }
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
- }
326
+ async cleanupTempFiles(...paths) {
327
+ for (const tempPath of paths) {
328
+ await this.safeRemove(tempPath);
329
+ }
330
+ }
331
+ async restoreFromBackup(targetPath, backupPath, serviceName) {
332
+ const items = await fs.promises.readdir(targetPath);
333
+ const excludePatterns = ['.mindbricks.json', '.backup_', `.${serviceName}_temp`];
334
+ for (const item of items) {
335
+ if (excludePatterns.some(pattern => item === pattern || item.startsWith(pattern))) {
336
+ continue;
172
337
  }
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
- }
338
+ const itemPath = path.join(targetPath, item);
339
+ await this.safeRemove(itemPath);
340
+ }
341
+ const backupItems = await fs.promises.readdir(backupPath);
342
+ for (const item of backupItems) {
343
+ const sourcePath = path.join(backupPath, item);
344
+ const destPath = path.join(targetPath, item);
345
+ const stat = await fs.promises.lstat(sourcePath);
346
+ if (stat.isDirectory()) {
347
+ await fs.promises.cp(sourcePath, destPath, { recursive: true });
348
+ }
349
+ else {
350
+ await fs.promises.copyFile(sourcePath, destPath);
200
351
  }
201
352
  }
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.');
353
+ }
354
+ async safeRemove(filePath) {
355
+ try {
356
+ if (fs.existsSync(filePath)) {
357
+ const stat = await fs.promises.lstat(filePath);
358
+ if (stat.isDirectory()) {
359
+ await fs.promises.rm(filePath, { recursive: true, force: true });
216
360
  }
217
361
  else {
218
- console.error(` ${error.response?.data?.message || error.message}`);
362
+ await fs.promises.unlink(filePath);
219
363
  }
220
364
  }
221
- else {
222
- console.error(` ${error instanceof Error ? error.message : 'Unknown error'}`);
223
- }
224
- process.exit(1);
365
+ }
366
+ catch (error) {
367
+ console.warn(`⚠️ Warning: Failed to cleanup ${filePath}`);
225
368
  }
226
369
  }
227
370
  }
@@ -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.11",
4
4
  "description": "Mindbricks CLI Command line tools for Mindbricks platform",
5
5
  "main": "dist/index.js",
6
6
  "bin": {