@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.
- package/.github/workflows/publish.yml +28 -0
- package/.nvmrc +1 -0
- package/README.md +166 -0
- package/db_727aa8c7-dev_xYhn06gTRFNmPbW3uOVKlQ.sql.gz +0 -0
- package/db_faef57dd-dev_3wnRGEk6KwkI_wgvygWf4g.sql.gz +0 -0
- package/dist/bin/flexsite.d.ts +7 -0
- package/dist/bin/flexsite.d.ts.map +1 -0
- package/dist/bin/flexsite.js +31 -0
- package/dist/bin/flexsite.js.map +1 -0
- package/dist/commands/auth.d.ts +6 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +325 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/config.d.ts +6 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +56 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/db.d.ts +6 -0
- package/dist/commands/db.d.ts.map +1 -0
- package/dist/commands/db.js +274 -0
- package/dist/commands/db.js.map +1 -0
- package/dist/commands/files.d.ts +6 -0
- package/dist/commands/files.d.ts.map +1 -0
- package/dist/commands/files.js +272 -0
- package/dist/commands/files.js.map +1 -0
- package/dist/commands/sync.d.ts +7 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +202 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +27 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/api.d.ts +47 -0
- package/dist/lib/api.d.ts.map +1 -0
- package/dist/lib/api.js +203 -0
- package/dist/lib/api.js.map +1 -0
- package/dist/lib/config.d.ts +54 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +150 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/detector.d.ts +26 -0
- package/dist/lib/detector.d.ts.map +1 -0
- package/dist/lib/detector.js +305 -0
- package/dist/lib/detector.js.map +1 -0
- package/dist/types.d.ts +58 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- 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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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"}
|