@flexsiteio/cli 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/.github/workflows/publish.yml +28 -0
  2. package/.nvmrc +1 -0
  3. package/README.md +166 -0
  4. package/db_727aa8c7-dev_xYhn06gTRFNmPbW3uOVKlQ.sql.gz +0 -0
  5. package/db_faef57dd-dev_3wnRGEk6KwkI_wgvygWf4g.sql.gz +0 -0
  6. package/dist/bin/flexsite.d.ts +7 -0
  7. package/dist/bin/flexsite.d.ts.map +1 -0
  8. package/dist/bin/flexsite.js +31 -0
  9. package/dist/bin/flexsite.js.map +1 -0
  10. package/dist/commands/auth.d.ts +6 -0
  11. package/dist/commands/auth.d.ts.map +1 -0
  12. package/dist/commands/auth.js +325 -0
  13. package/dist/commands/auth.js.map +1 -0
  14. package/dist/commands/config.d.ts +6 -0
  15. package/dist/commands/config.d.ts.map +1 -0
  16. package/dist/commands/config.js +56 -0
  17. package/dist/commands/config.js.map +1 -0
  18. package/dist/commands/db.d.ts +6 -0
  19. package/dist/commands/db.d.ts.map +1 -0
  20. package/dist/commands/db.js +274 -0
  21. package/dist/commands/db.js.map +1 -0
  22. package/dist/commands/files.d.ts +6 -0
  23. package/dist/commands/files.d.ts.map +1 -0
  24. package/dist/commands/files.js +272 -0
  25. package/dist/commands/files.js.map +1 -0
  26. package/dist/commands/sync.d.ts +7 -0
  27. package/dist/commands/sync.d.ts.map +1 -0
  28. package/dist/commands/sync.js +202 -0
  29. package/dist/commands/sync.js.map +1 -0
  30. package/dist/index.d.ts +11 -0
  31. package/dist/index.d.ts.map +1 -0
  32. package/dist/index.js +27 -0
  33. package/dist/index.js.map +1 -0
  34. package/dist/lib/api.d.ts +47 -0
  35. package/dist/lib/api.d.ts.map +1 -0
  36. package/dist/lib/api.js +203 -0
  37. package/dist/lib/api.js.map +1 -0
  38. package/dist/lib/config.d.ts +54 -0
  39. package/dist/lib/config.d.ts.map +1 -0
  40. package/dist/lib/config.js +150 -0
  41. package/dist/lib/config.js.map +1 -0
  42. package/dist/lib/detector.d.ts +26 -0
  43. package/dist/lib/detector.d.ts.map +1 -0
  44. package/dist/lib/detector.js +305 -0
  45. package/dist/lib/detector.js.map +1 -0
  46. package/dist/types.d.ts +58 -0
  47. package/dist/types.d.ts.map +1 -0
  48. package/dist/types.js +6 -0
  49. package/dist/types.js.map +1 -0
  50. package/package.json +50 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;AAEH,yCAAoC;AACpC,kDAA0B;AAC1B,gDAK0B;AAEb,QAAA,aAAa,GAAG,IAAI,mBAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,0BAA0B,CAAC,CAAC;AAE3C;;GAEG;AACH,qBAAa;KACV,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,+BAA+B,CAAC;KAC5C,MAAM,CAAC,GAAG,EAAE;IACX,MAAM,MAAM,GAAG,IAAA,qBAAS,GAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,IAAA,uBAAW,GAAE,CAAC;IAE/B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAA,yBAAa,GAAE,IAAI,CAAC,CAAC;IAEjD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kBAAkB,UAAU,EAAE,CAAC,CAAC,CAAC;IAExD,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5D,MAAM,SAAS,GAAG,QAAQ,CAAC,cAAc,KAAK,KAAK,CAAC,cAAc,CAAC;QACnE,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,eAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,cAAc,GAAG,YAAY,EAAE,CAAC,CAAC;IAC/F,CAAC;IAED,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,gEAAgE,CAAC,CAAC,CAAC;IAC9F,CAAC;AACH,CAAC,CAAC,CAAC;AAEL;;GAEG;AACH,qBAAa;KACV,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,4CAA4C,CAAC;KACzD,MAAM,CAAC,GAAG,EAAE;IACX,IAAA,uBAAW,GAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;AACrD,CAAC,CAAC,CAAC;AAEL;;GAEG;AACH,qBAAa;KACV,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,kCAAkC,CAAC;KAC/C,MAAM,CAAC,GAAG,EAAE;IACX,OAAO,CAAC,GAAG,CAAC,IAAA,yBAAa,GAAE,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Database commands for FlexSite CLI.
3
+ */
4
+ import { Command } from 'commander';
5
+ export declare const dbCommand: Command;
6
+ //# sourceMappingURL=db.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/commands/db.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC,eAAO,MAAM,SAAS,SACsB,CAAC"}
@@ -0,0 +1,274 @@
1
+ "use strict";
2
+ /**
3
+ * Database commands for FlexSite CLI.
4
+ */
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.dbCommand = void 0;
10
+ const commander_1 = require("commander");
11
+ const chalk_1 = __importDefault(require("chalk"));
12
+ const inquirer_1 = __importDefault(require("inquirer"));
13
+ const ora_1 = __importDefault(require("ora"));
14
+ const fs_1 = __importDefault(require("fs"));
15
+ const path_1 = __importDefault(require("path"));
16
+ const api_js_1 = require("../lib/api.js");
17
+ const config_js_1 = require("../lib/config.js");
18
+ const detector_js_1 = require("../lib/detector.js");
19
+ exports.dbCommand = new commander_1.Command('db')
20
+ .description('Database backup operations');
21
+ /**
22
+ * Pull database from remote environment
23
+ */
24
+ exports.dbCommand
25
+ .command('pull')
26
+ .description('Download and import the latest database backup')
27
+ .option('-e, --env <envId>', 'Environment ID')
28
+ .option('-p, --project <projectId>', 'Project ID')
29
+ .option('--no-import', 'Download only, do not import')
30
+ .option('-o, --output <path>', 'Output file path')
31
+ .action(async (options) => {
32
+ try {
33
+ let environmentId = options.env;
34
+ let projectId = options.project;
35
+ // Show which organization we're using
36
+ const tokenConfig = (0, config_js_1.getToken)();
37
+ if (tokenConfig) {
38
+ console.log(chalk_1.default.dim(`Organization: ${tokenConfig.organizationName || tokenConfig.organizationId}`));
39
+ }
40
+ // If no environment specified, prompt for selection
41
+ if (!environmentId) {
42
+ // Always prompt for project selection (don't use cached values)
43
+ if (!projectId) {
44
+ const projects = await (0, api_js_1.listProjects)();
45
+ if (projects.length === 0) {
46
+ console.error(chalk_1.default.red('No projects found.'));
47
+ process.exit(1);
48
+ }
49
+ if (projects.length === 1) {
50
+ // Only one project, use it automatically
51
+ projectId = projects[0].id;
52
+ console.log(chalk_1.default.dim(`Project: ${projects[0].title}`));
53
+ }
54
+ else {
55
+ const { selectedProject } = await inquirer_1.default.prompt([
56
+ {
57
+ type: 'list',
58
+ name: 'selectedProject',
59
+ message: 'Select project:',
60
+ choices: projects.map(p => ({
61
+ name: `${p.title} (${p.container || 'unknown'})`,
62
+ value: p.id
63
+ }))
64
+ }
65
+ ]);
66
+ projectId = selectedProject;
67
+ }
68
+ }
69
+ // Get environment - always prompt
70
+ const environments = await (0, api_js_1.listEnvironments)(projectId);
71
+ if (environments.length === 0) {
72
+ console.error(chalk_1.default.red('No environments found for this project.'));
73
+ process.exit(1);
74
+ }
75
+ if (environments.length === 1) {
76
+ // Only one environment, use it automatically
77
+ environmentId = environments[0].id;
78
+ console.log(chalk_1.default.dim(`Environment: ${environments[0].title}`));
79
+ }
80
+ else {
81
+ const { selectedEnv } = await inquirer_1.default.prompt([
82
+ {
83
+ type: 'list',
84
+ name: 'selectedEnv',
85
+ message: 'Select environment:',
86
+ choices: environments.map(e => ({
87
+ name: `${e.title} (${e.branch || 'main'}) - ${e.status || 'unknown'}`,
88
+ value: e.id
89
+ }))
90
+ }
91
+ ]);
92
+ environmentId = selectedEnv;
93
+ }
94
+ }
95
+ // Get latest backup info
96
+ const spinner = (0, ora_1.default)('Fetching latest backup...').start();
97
+ let backup;
98
+ try {
99
+ backup = await (0, api_js_1.getLatestDatabaseBackup)(environmentId);
100
+ if (!backup || !backup.url) {
101
+ spinner.fail('No database backup found');
102
+ console.log();
103
+ console.log(chalk_1.default.yellow('No database backups available for this environment.'));
104
+ console.log(chalk_1.default.cyan('Create a backup in the FlexSite dashboard:'));
105
+ console.log(` https://flexsite.io/dashboard/project/${projectId}/environment/${environmentId}/backups`);
106
+ process.exit(1);
107
+ }
108
+ spinner.succeed(`Found backup: ${backup.fileName}`);
109
+ }
110
+ catch (error) {
111
+ spinner.fail('Failed to get backup');
112
+ // Check if it's a "not found" error
113
+ if (error.message?.includes('No backup') || error.message?.includes('not found')) {
114
+ console.log();
115
+ console.log(chalk_1.default.yellow('No database backups available for this environment.'));
116
+ console.log(chalk_1.default.cyan('Create a backup in the FlexSite dashboard:'));
117
+ console.log(` https://flexsite.io/dashboard/project/${projectId}/environment/${environmentId}/backups`);
118
+ process.exit(1);
119
+ }
120
+ throw error;
121
+ }
122
+ // Download the backup
123
+ const downloadSpinner = (0, ora_1.default)('Downloading backup...').start();
124
+ let filePath = options.output;
125
+ if (!filePath) {
126
+ filePath = path_1.default.join(process.cwd(), backup.fileName);
127
+ }
128
+ try {
129
+ const data = await (0, api_js_1.downloadFile)(backup.url, (progress) => {
130
+ downloadSpinner.text = `Downloading backup... ${progress}%`;
131
+ });
132
+ fs_1.default.writeFileSync(filePath, data);
133
+ downloadSpinner.succeed(`Downloaded to: ${filePath}`);
134
+ }
135
+ catch (error) {
136
+ downloadSpinner.fail('Download failed');
137
+ throw error;
138
+ }
139
+ // Import if not disabled
140
+ if (options.import !== false) {
141
+ const localEnv = (0, detector_js_1.detectLocalEnvironment)();
142
+ if (!localEnv) {
143
+ console.log(chalk_1.default.yellow('\nNo local environment detected (Lando/DDEV).'));
144
+ console.log('Run the following command manually to import:');
145
+ console.log(chalk_1.default.cyan(` lando db-import ${filePath}`));
146
+ console.log('or');
147
+ console.log(chalk_1.default.cyan(` ddev import-db --file=${filePath}`));
148
+ return;
149
+ }
150
+ console.log(chalk_1.default.cyan(`\nDetected ${localEnv.toUpperCase()} environment.`));
151
+ const importSpinner = (0, ora_1.default)('Importing database...').start();
152
+ try {
153
+ await (0, detector_js_1.importDatabase)(filePath, localEnv);
154
+ importSpinner.succeed('Database imported successfully!');
155
+ }
156
+ catch (error) {
157
+ importSpinner.fail('Import failed');
158
+ throw error;
159
+ }
160
+ }
161
+ console.log(chalk_1.default.green('\n✓ Database sync complete!'));
162
+ }
163
+ catch (error) {
164
+ if (error instanceof Error) {
165
+ console.error(chalk_1.default.red(`\nError: ${error.message}`));
166
+ }
167
+ process.exit(1);
168
+ }
169
+ });
170
+ /**
171
+ * List available database backups
172
+ */
173
+ exports.dbCommand
174
+ .command('list')
175
+ .description('List available database backups')
176
+ .option('-e, --env <envId>', 'Environment ID')
177
+ .option('-p, --project <projectId>', 'Project ID')
178
+ .action(async (options) => {
179
+ try {
180
+ let environmentId = options.env;
181
+ let projectId = options.project;
182
+ // Show which organization we're using
183
+ const tokenConfig = (0, config_js_1.getToken)();
184
+ if (tokenConfig) {
185
+ console.log(chalk_1.default.dim(`Organization: ${tokenConfig.organizationName || tokenConfig.organizationId}`));
186
+ }
187
+ // If no environment specified, prompt for selection
188
+ if (!environmentId) {
189
+ // Always prompt for project selection
190
+ if (!projectId) {
191
+ const projects = await (0, api_js_1.listProjects)();
192
+ if (projects.length === 0) {
193
+ console.error(chalk_1.default.red('No projects found.'));
194
+ process.exit(1);
195
+ }
196
+ if (projects.length === 1) {
197
+ projectId = projects[0].id;
198
+ console.log(chalk_1.default.dim(`Project: ${projects[0].title}`));
199
+ }
200
+ else {
201
+ const { selectedProject } = await inquirer_1.default.prompt([
202
+ {
203
+ type: 'list',
204
+ name: 'selectedProject',
205
+ message: 'Select project:',
206
+ choices: projects.map(p => ({
207
+ name: `${p.title} (${p.container || 'unknown'})`,
208
+ value: p.id
209
+ }))
210
+ }
211
+ ]);
212
+ projectId = selectedProject;
213
+ }
214
+ }
215
+ const environments = await (0, api_js_1.listEnvironments)(projectId);
216
+ if (environments.length === 0) {
217
+ console.error(chalk_1.default.red('No environments found.'));
218
+ process.exit(1);
219
+ }
220
+ if (environments.length === 1) {
221
+ environmentId = environments[0].id;
222
+ console.log(chalk_1.default.dim(`Environment: ${environments[0].title}`));
223
+ }
224
+ else {
225
+ const { selectedEnv } = await inquirer_1.default.prompt([
226
+ {
227
+ type: 'list',
228
+ name: 'selectedEnv',
229
+ message: 'Select environment:',
230
+ choices: environments.map(e => ({
231
+ name: `${e.title} (${e.branch || 'main'})`,
232
+ value: e.id
233
+ }))
234
+ }
235
+ ]);
236
+ environmentId = selectedEnv;
237
+ }
238
+ }
239
+ const spinner = (0, ora_1.default)('Fetching backups...').start();
240
+ try {
241
+ const backups = await (0, api_js_1.listDatabaseBackups)(environmentId);
242
+ spinner.stop();
243
+ if (backups.length === 0) {
244
+ console.log(chalk_1.default.yellow('No backups found.'));
245
+ return;
246
+ }
247
+ console.log(chalk_1.default.cyan('\nDatabase backups:\n'));
248
+ for (const backup of backups) {
249
+ const date = backup.createdAt
250
+ ? new Date(backup.createdAt).toLocaleString()
251
+ : 'Unknown';
252
+ const size = backup.sizeBytes
253
+ ? `${(backup.sizeBytes / 1024 / 1024).toFixed(2)} MB`
254
+ : 'Unknown size';
255
+ console.log(` ${chalk_1.default.green('•')} ${backup.fileName || backup.id}`);
256
+ console.log(` Created: ${date}`);
257
+ console.log(` Size: ${size}`);
258
+ console.log(` Type: ${backup.type || 'automatic'}`);
259
+ console.log();
260
+ }
261
+ }
262
+ catch (error) {
263
+ spinner.fail('Failed to fetch backups');
264
+ throw error;
265
+ }
266
+ }
267
+ catch (error) {
268
+ if (error instanceof Error) {
269
+ console.error(chalk_1.default.red(`\nError: ${error.message}`));
270
+ }
271
+ process.exit(1);
272
+ }
273
+ });
274
+ //# sourceMappingURL=db.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/commands/db.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Files backup commands for FlexSite CLI.
3
+ */
4
+ import { Command } from 'commander';
5
+ export declare const filesCommand: Command;
6
+ //# sourceMappingURL=files.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/commands/files.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC,eAAO,MAAM,YAAY,SACgB,CAAC"}
@@ -0,0 +1,272 @@
1
+ "use strict";
2
+ /**
3
+ * Files backup commands for FlexSite CLI.
4
+ */
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.filesCommand = void 0;
10
+ const commander_1 = require("commander");
11
+ const chalk_1 = __importDefault(require("chalk"));
12
+ const inquirer_1 = __importDefault(require("inquirer"));
13
+ const ora_1 = __importDefault(require("ora"));
14
+ const fs_1 = __importDefault(require("fs"));
15
+ const path_1 = __importDefault(require("path"));
16
+ const api_js_1 = require("../lib/api.js");
17
+ const config_js_1 = require("../lib/config.js");
18
+ const detector_js_1 = require("../lib/detector.js");
19
+ exports.filesCommand = new commander_1.Command('files')
20
+ .description('Files backup operations');
21
+ /**
22
+ * Pull files from remote environment
23
+ */
24
+ exports.filesCommand
25
+ .command('pull')
26
+ .description('Download and extract the latest files backup')
27
+ .option('-e, --env <envId>', 'Environment ID')
28
+ .option('-p, --project <projectId>', 'Project ID')
29
+ .option('--no-import', 'Download only, do not extract')
30
+ .option('-o, --output <path>', 'Output file path')
31
+ .action(async (options) => {
32
+ try {
33
+ let environmentId = options.env;
34
+ let projectId = options.project;
35
+ // Show which organization we're using
36
+ const tokenConfig = (0, config_js_1.getToken)();
37
+ if (tokenConfig) {
38
+ console.log(chalk_1.default.dim(`Organization: ${tokenConfig.organizationName || tokenConfig.organizationId}`));
39
+ }
40
+ // If no environment specified, prompt for selection
41
+ if (!environmentId) {
42
+ // Always prompt for project selection (don't use cached values)
43
+ if (!projectId) {
44
+ const projects = await (0, api_js_1.listProjects)();
45
+ if (projects.length === 0) {
46
+ console.error(chalk_1.default.red('No projects found.'));
47
+ process.exit(1);
48
+ }
49
+ if (projects.length === 1) {
50
+ // Only one project, use it automatically
51
+ projectId = projects[0].id;
52
+ console.log(chalk_1.default.dim(`Project: ${projects[0].title}`));
53
+ }
54
+ else {
55
+ const { selectedProject } = await inquirer_1.default.prompt([
56
+ {
57
+ type: 'list',
58
+ name: 'selectedProject',
59
+ message: 'Select project:',
60
+ choices: projects.map(p => ({
61
+ name: `${p.title} (${p.container || 'unknown'})`,
62
+ value: p.id
63
+ }))
64
+ }
65
+ ]);
66
+ projectId = selectedProject;
67
+ }
68
+ }
69
+ // Get environment - always prompt
70
+ const environments = await (0, api_js_1.listEnvironments)(projectId);
71
+ if (environments.length === 0) {
72
+ console.error(chalk_1.default.red('No environments found for this project.'));
73
+ process.exit(1);
74
+ }
75
+ if (environments.length === 1) {
76
+ // Only one environment, use it automatically
77
+ environmentId = environments[0].id;
78
+ console.log(chalk_1.default.dim(`Environment: ${environments[0].title}`));
79
+ }
80
+ else {
81
+ const { selectedEnv } = await inquirer_1.default.prompt([
82
+ {
83
+ type: 'list',
84
+ name: 'selectedEnv',
85
+ message: 'Select environment:',
86
+ choices: environments.map(e => ({
87
+ name: `${e.title} (${e.branch || 'main'}) - ${e.status || 'unknown'}`,
88
+ value: e.id
89
+ }))
90
+ }
91
+ ]);
92
+ environmentId = selectedEnv;
93
+ }
94
+ }
95
+ // Get latest backup info
96
+ const spinner = (0, ora_1.default)('Fetching latest files backup...').start();
97
+ let backup;
98
+ try {
99
+ backup = await (0, api_js_1.getLatestFilesBackup)(environmentId);
100
+ if (!backup || !backup.url) {
101
+ spinner.fail('No files backup found');
102
+ console.log();
103
+ console.log(chalk_1.default.yellow('No files backups available for this environment.'));
104
+ console.log(chalk_1.default.cyan('Create a backup in the FlexSite dashboard:'));
105
+ console.log(` https://flexsite.io/dashboard/project/${projectId}/environment/${environmentId}/backups`);
106
+ process.exit(1);
107
+ }
108
+ spinner.succeed(`Found backup: ${backup.fileName}`);
109
+ }
110
+ catch (error) {
111
+ spinner.fail('Failed to get backup');
112
+ // Check if it's a "not found" error
113
+ if (error.message?.includes('No backup') || error.message?.includes('not found')) {
114
+ console.log();
115
+ console.log(chalk_1.default.yellow('No files backups available for this environment.'));
116
+ console.log(chalk_1.default.cyan('Create a backup in the FlexSite dashboard:'));
117
+ console.log(` https://flexsite.io/dashboard/project/${projectId}/environment/${environmentId}/backups`);
118
+ process.exit(1);
119
+ }
120
+ throw error;
121
+ }
122
+ // Download the backup
123
+ const downloadSpinner = (0, ora_1.default)('Downloading files backup...').start();
124
+ let filePath = options.output;
125
+ if (!filePath) {
126
+ filePath = path_1.default.join(process.cwd(), backup.fileName);
127
+ }
128
+ try {
129
+ const data = await (0, api_js_1.downloadFile)(backup.url, (progress) => {
130
+ downloadSpinner.text = `Downloading files backup... ${progress}%`;
131
+ });
132
+ fs_1.default.writeFileSync(filePath, data);
133
+ downloadSpinner.succeed(`Downloaded to: ${filePath}`);
134
+ }
135
+ catch (error) {
136
+ downloadSpinner.fail('Download failed');
137
+ throw error;
138
+ }
139
+ // Import if not disabled
140
+ if (options.import !== false) {
141
+ const localEnv = (0, detector_js_1.detectLocalEnvironment)();
142
+ if (!localEnv) {
143
+ console.log(chalk_1.default.yellow('\nNo local environment detected (Lando/DDEV).'));
144
+ console.log('Run the following command manually to extract:');
145
+ console.log(chalk_1.default.cyan(` tar -xzf ${filePath} -C web/sites/default/files`));
146
+ return;
147
+ }
148
+ console.log(chalk_1.default.cyan(`\nDetected ${localEnv.toUpperCase()} environment.`));
149
+ const importSpinner = (0, ora_1.default)('Extracting files...').start();
150
+ try {
151
+ await (0, detector_js_1.importFiles)(filePath, localEnv);
152
+ importSpinner.succeed('Files extracted successfully!');
153
+ }
154
+ catch (error) {
155
+ importSpinner.fail('Extraction failed');
156
+ throw error;
157
+ }
158
+ }
159
+ console.log(chalk_1.default.green('\n✓ Files sync complete!'));
160
+ }
161
+ catch (error) {
162
+ if (error instanceof Error) {
163
+ console.error(chalk_1.default.red(`\nError: ${error.message}`));
164
+ }
165
+ process.exit(1);
166
+ }
167
+ });
168
+ /**
169
+ * List available files backups
170
+ */
171
+ exports.filesCommand
172
+ .command('list')
173
+ .description('List available files backups')
174
+ .option('-e, --env <envId>', 'Environment ID')
175
+ .option('-p, --project <projectId>', 'Project ID')
176
+ .action(async (options) => {
177
+ try {
178
+ let environmentId = options.env;
179
+ let projectId = options.project;
180
+ // Show which organization we're using
181
+ const tokenConfig = (0, config_js_1.getToken)();
182
+ if (tokenConfig) {
183
+ console.log(chalk_1.default.dim(`Organization: ${tokenConfig.organizationName || tokenConfig.organizationId}`));
184
+ }
185
+ // If no environment specified, prompt for selection
186
+ if (!environmentId) {
187
+ // Always prompt for project selection
188
+ if (!projectId) {
189
+ const projects = await (0, api_js_1.listProjects)();
190
+ if (projects.length === 0) {
191
+ console.error(chalk_1.default.red('No projects found.'));
192
+ process.exit(1);
193
+ }
194
+ if (projects.length === 1) {
195
+ projectId = projects[0].id;
196
+ console.log(chalk_1.default.dim(`Project: ${projects[0].title}`));
197
+ }
198
+ else {
199
+ const { selectedProject } = await inquirer_1.default.prompt([
200
+ {
201
+ type: 'list',
202
+ name: 'selectedProject',
203
+ message: 'Select project:',
204
+ choices: projects.map(p => ({
205
+ name: `${p.title} (${p.container || 'unknown'})`,
206
+ value: p.id
207
+ }))
208
+ }
209
+ ]);
210
+ projectId = selectedProject;
211
+ }
212
+ }
213
+ const environments = await (0, api_js_1.listEnvironments)(projectId);
214
+ if (environments.length === 0) {
215
+ console.error(chalk_1.default.red('No environments found.'));
216
+ process.exit(1);
217
+ }
218
+ if (environments.length === 1) {
219
+ environmentId = environments[0].id;
220
+ console.log(chalk_1.default.dim(`Environment: ${environments[0].title}`));
221
+ }
222
+ else {
223
+ const { selectedEnv } = await inquirer_1.default.prompt([
224
+ {
225
+ type: 'list',
226
+ name: 'selectedEnv',
227
+ message: 'Select environment:',
228
+ choices: environments.map(e => ({
229
+ name: `${e.title} (${e.branch || 'main'})`,
230
+ value: e.id
231
+ }))
232
+ }
233
+ ]);
234
+ environmentId = selectedEnv;
235
+ }
236
+ }
237
+ const spinner = (0, ora_1.default)('Fetching backups...').start();
238
+ try {
239
+ const backups = await (0, api_js_1.listFilesBackups)(environmentId);
240
+ spinner.stop();
241
+ if (backups.length === 0) {
242
+ console.log(chalk_1.default.yellow('No files backups found.'));
243
+ return;
244
+ }
245
+ console.log(chalk_1.default.cyan('\nFiles backups:\n'));
246
+ for (const backup of backups) {
247
+ const date = backup.createdAt
248
+ ? new Date(backup.createdAt).toLocaleString()
249
+ : 'Unknown';
250
+ const size = backup.sizeBytes
251
+ ? `${(backup.sizeBytes / 1024 / 1024).toFixed(2)} MB`
252
+ : 'Unknown size';
253
+ console.log(` ${chalk_1.default.green('•')} ${backup.fileName || backup.id}`);
254
+ console.log(` Created: ${date}`);
255
+ console.log(` Size: ${size}`);
256
+ console.log(` Type: ${backup.type || 'automatic'}`);
257
+ console.log();
258
+ }
259
+ }
260
+ catch (error) {
261
+ spinner.fail('Failed to fetch backups');
262
+ throw error;
263
+ }
264
+ }
265
+ catch (error) {
266
+ if (error instanceof Error) {
267
+ console.error(chalk_1.default.red(`\nError: ${error.message}`));
268
+ }
269
+ process.exit(1);
270
+ }
271
+ });
272
+ //# sourceMappingURL=files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/commands/files.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Sync command for FlexSite CLI.
3
+ * Combines database and files sync in one operation.
4
+ */
5
+ import { Command } from 'commander';
6
+ export declare const syncCommand: Command;
7
+ //# sourceMappingURL=sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC,eAAO,MAAM,WAAW,SA6MpB,CAAC"}