@flexsiteio/cli 1.0.3 → 1.0.5
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/dist/bin/flexsite.js +15 -17
- package/dist/bin/flexsite.js.map +1 -1
- package/dist/commands/auth.js +64 -70
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/composer.d.ts.map +1 -1
- package/dist/commands/composer.js +59 -64
- package/dist/commands/composer.js.map +1 -1
- package/dist/commands/config.js +17 -23
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/db.js +57 -63
- package/dist/commands/db.js.map +1 -1
- package/dist/commands/files.js +56 -62
- package/dist/commands/files.js.map +1 -1
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +111 -81
- package/dist/commands/sync.js.map +1 -1
- package/dist/index.js +4 -20
- package/dist/index.js.map +1 -1
- package/dist/lib/api.d.ts +3 -2
- package/dist/lib/api.d.ts.map +1 -1
- package/dist/lib/api.js +25 -34
- package/dist/lib/api.js.map +1 -1
- package/dist/lib/config.js +14 -31
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/detector.d.ts.map +1 -1
- package/dist/lib/detector.js +177 -82
- package/dist/lib/detector.js.map +1 -1
- package/dist/types.js +1 -2
- package/dist/types.js.map +1 -1
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/commands/files.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/commands/files.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +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,
|
|
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,SA6OpB,CAAC"}
|
package/dist/commands/sync.js
CHANGED
|
@@ -1,23 +1,17 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Sync command for FlexSite CLI.
|
|
4
3
|
* Combines database and files sync in one operation.
|
|
5
4
|
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const
|
|
16
|
-
const path_1 = __importDefault(require("path"));
|
|
17
|
-
const api_js_1 = require("../lib/api.js");
|
|
18
|
-
const config_js_1 = require("../lib/config.js");
|
|
19
|
-
const detector_js_1 = require("../lib/detector.js");
|
|
20
|
-
exports.syncCommand = new commander_1.Command('sync')
|
|
5
|
+
import { Command } from 'commander';
|
|
6
|
+
import chalk from 'chalk';
|
|
7
|
+
import inquirer from 'inquirer';
|
|
8
|
+
import ora from 'ora';
|
|
9
|
+
import fs from 'fs';
|
|
10
|
+
import path from 'path';
|
|
11
|
+
import { listProjects, listEnvironments, getLatestDatabaseBackup, getLatestFilesBackup, downloadFile } from '../lib/api.js';
|
|
12
|
+
import { getToken } from '../lib/config.js';
|
|
13
|
+
import { detectLocalEnvironment, importDatabase, importFiles } from '../lib/detector.js';
|
|
14
|
+
export const syncCommand = new Command('sync')
|
|
21
15
|
.description('Sync database and files from remote environment')
|
|
22
16
|
.option('-e, --env <envId>', 'Environment ID')
|
|
23
17
|
.option('-p, --project <projectId>', 'Project ID')
|
|
@@ -29,37 +23,37 @@ exports.syncCommand = new commander_1.Command('sync')
|
|
|
29
23
|
let environmentId = options.env;
|
|
30
24
|
let projectId = options.project;
|
|
31
25
|
// Show which organization we're using
|
|
32
|
-
const tokenConfig =
|
|
26
|
+
const tokenConfig = getToken();
|
|
33
27
|
if (tokenConfig) {
|
|
34
|
-
console.log(
|
|
28
|
+
console.log(chalk.dim(`Organization: ${tokenConfig.organizationName || tokenConfig.organizationId}`));
|
|
35
29
|
}
|
|
36
30
|
// Detect local environment first
|
|
37
|
-
const localEnv =
|
|
31
|
+
const localEnv = detectLocalEnvironment();
|
|
38
32
|
if (!localEnv) {
|
|
39
|
-
console.log(
|
|
33
|
+
console.log(chalk.yellow('No local environment detected (Lando/DDEV).'));
|
|
40
34
|
console.log('Please run this command from a project directory with Lando or DDEV configured.');
|
|
41
35
|
console.log('\nAlternatively, use:');
|
|
42
|
-
console.log(
|
|
43
|
-
console.log(
|
|
36
|
+
console.log(chalk.cyan(' flexsite db pull --no-import'));
|
|
37
|
+
console.log(chalk.cyan(' flexsite files pull --no-import'));
|
|
44
38
|
process.exit(1);
|
|
45
39
|
}
|
|
46
|
-
console.log(
|
|
40
|
+
console.log(chalk.cyan(`\nDetected ${localEnv.toUpperCase()} environment.\n`));
|
|
47
41
|
// If no environment specified, prompt for selection
|
|
48
42
|
if (!environmentId) {
|
|
49
43
|
// Always prompt for project selection (don't use cached values)
|
|
50
44
|
if (!projectId) {
|
|
51
|
-
const projects = await
|
|
45
|
+
const projects = await listProjects();
|
|
52
46
|
if (projects.length === 0) {
|
|
53
|
-
console.error(
|
|
47
|
+
console.error(chalk.red('No projects found.'));
|
|
54
48
|
process.exit(1);
|
|
55
49
|
}
|
|
56
50
|
if (projects.length === 1) {
|
|
57
51
|
// Only one project, use it automatically
|
|
58
52
|
projectId = projects[0].id;
|
|
59
|
-
console.log(
|
|
53
|
+
console.log(chalk.dim(`Project: ${projects[0].title}`));
|
|
60
54
|
}
|
|
61
55
|
else {
|
|
62
|
-
const { selectedProject } = await
|
|
56
|
+
const { selectedProject } = await inquirer.prompt([
|
|
63
57
|
{
|
|
64
58
|
type: 'list',
|
|
65
59
|
name: 'selectedProject',
|
|
@@ -74,18 +68,18 @@ exports.syncCommand = new commander_1.Command('sync')
|
|
|
74
68
|
}
|
|
75
69
|
}
|
|
76
70
|
// Get environment - always prompt
|
|
77
|
-
const environments = await
|
|
71
|
+
const environments = await listEnvironments(projectId);
|
|
78
72
|
if (environments.length === 0) {
|
|
79
|
-
console.error(
|
|
73
|
+
console.error(chalk.red('No environments found for this project.'));
|
|
80
74
|
process.exit(1);
|
|
81
75
|
}
|
|
82
76
|
if (environments.length === 1) {
|
|
83
77
|
// Only one environment, use it automatically
|
|
84
78
|
environmentId = environments[0].id;
|
|
85
|
-
console.log(
|
|
79
|
+
console.log(chalk.dim(`Environment: ${environments[0].title}`));
|
|
86
80
|
}
|
|
87
81
|
else {
|
|
88
|
-
const { selectedEnv } = await
|
|
82
|
+
const { selectedEnv } = await inquirer.prompt([
|
|
89
83
|
{
|
|
90
84
|
type: 'list',
|
|
91
85
|
name: 'selectedEnv',
|
|
@@ -103,98 +97,134 @@ exports.syncCommand = new commander_1.Command('sync')
|
|
|
103
97
|
const syncFiles = !options.dbOnly;
|
|
104
98
|
// Sync database
|
|
105
99
|
if (syncDb) {
|
|
106
|
-
console.log(
|
|
107
|
-
const dbSpinner = (
|
|
100
|
+
console.log(chalk.cyan('\n--- Database Sync ---'));
|
|
101
|
+
const dbSpinner = ora('Fetching latest database backup...').start();
|
|
102
|
+
let dbPath = null;
|
|
108
103
|
try {
|
|
109
|
-
const backup = await
|
|
104
|
+
const backup = await getLatestDatabaseBackup(environmentId);
|
|
110
105
|
if (!backup || !backup.url) {
|
|
111
106
|
dbSpinner.fail('No database backup found');
|
|
112
|
-
console.log(
|
|
113
|
-
console.log(
|
|
114
|
-
console.log(` https://flexsite.io/dashboard/project/${projectId}/environment/${environmentId}
|
|
107
|
+
console.log(chalk.yellow(' No database backups available for this environment.'));
|
|
108
|
+
console.log(chalk.cyan(' Create a backup in the FlexSite dashboard:'));
|
|
109
|
+
console.log(` https://flexsite.io/dashboard/${tokenConfig?.organizationId}/project/${projectId}/environment/${environmentId}`);
|
|
115
110
|
}
|
|
116
111
|
else {
|
|
117
112
|
dbSpinner.succeed(`Found backup: ${backup.fileName}`);
|
|
118
113
|
// Download
|
|
119
|
-
const downloadSpinner = (
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
114
|
+
const downloadSpinner = ora('Downloading database...').start();
|
|
115
|
+
dbPath = path.join(process.cwd(), backup.fileName);
|
|
116
|
+
try {
|
|
117
|
+
const data = await downloadFile(backup.url, (progress) => {
|
|
118
|
+
downloadSpinner.text = `Downloading database... ${progress}%`;
|
|
119
|
+
});
|
|
120
|
+
fs.writeFileSync(dbPath, data);
|
|
121
|
+
downloadSpinner.succeed(`Downloaded to: ${dbPath}`);
|
|
122
|
+
}
|
|
123
|
+
catch (downloadError) {
|
|
124
|
+
downloadSpinner.fail('Download failed');
|
|
125
|
+
console.error(chalk.red(` Error: ${downloadError.message}`));
|
|
126
|
+
dbPath = null;
|
|
127
|
+
}
|
|
128
|
+
// Import (only if download succeeded)
|
|
129
|
+
if (dbPath && options.import !== false) {
|
|
130
|
+
const importSpinner = ora('Importing database...').start();
|
|
131
|
+
try {
|
|
132
|
+
await importDatabase(dbPath, localEnv);
|
|
133
|
+
importSpinner.succeed('Database imported successfully!');
|
|
134
|
+
// Clean up downloaded file
|
|
135
|
+
fs.unlinkSync(dbPath);
|
|
136
|
+
}
|
|
137
|
+
catch (importError) {
|
|
138
|
+
importSpinner.fail('Database import failed');
|
|
139
|
+
console.error(chalk.red(` Error: ${importError.message}`));
|
|
140
|
+
// Clean up downloaded file even on failure
|
|
141
|
+
if (fs.existsSync(dbPath)) {
|
|
142
|
+
fs.unlinkSync(dbPath);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
133
145
|
}
|
|
134
146
|
}
|
|
135
147
|
}
|
|
136
148
|
catch (error) {
|
|
137
149
|
dbSpinner.fail('Database sync failed');
|
|
138
150
|
if (error.message?.includes('No backup') || error.message?.includes('not found')) {
|
|
139
|
-
console.log(
|
|
140
|
-
console.log(
|
|
141
|
-
console.log(` https://flexsite.io/dashboard/project/${projectId}/environment/${environmentId}
|
|
151
|
+
console.log(chalk.yellow(' No database backups available for this environment.'));
|
|
152
|
+
console.log(chalk.cyan(' Create a backup in the FlexSite dashboard:'));
|
|
153
|
+
console.log(` https://flexsite.io/dashboard/${tokenConfig?.organizationId}/project/${projectId}/environment/${environmentId}`);
|
|
142
154
|
}
|
|
143
155
|
else if (error instanceof Error) {
|
|
144
|
-
console.error(
|
|
156
|
+
console.error(chalk.red(` Error: ${error.message}`));
|
|
145
157
|
}
|
|
146
158
|
// Continue with files sync
|
|
147
159
|
}
|
|
148
160
|
}
|
|
149
161
|
// Sync files
|
|
150
162
|
if (syncFiles) {
|
|
151
|
-
console.log(
|
|
152
|
-
const filesSpinner = (
|
|
163
|
+
console.log(chalk.cyan('\n--- Files Sync ---'));
|
|
164
|
+
const filesSpinner = ora('Fetching latest files backup...').start();
|
|
165
|
+
let filesPath = null;
|
|
153
166
|
try {
|
|
154
|
-
const backup = await
|
|
167
|
+
const backup = await getLatestFilesBackup(environmentId);
|
|
155
168
|
if (!backup || !backup.url) {
|
|
156
169
|
filesSpinner.fail('No files backup found');
|
|
157
|
-
console.log(
|
|
158
|
-
console.log(
|
|
159
|
-
console.log(` https://flexsite.io/dashboard/project/${projectId}/environment/${environmentId}
|
|
170
|
+
console.log(chalk.yellow(' No files backups available for this environment.'));
|
|
171
|
+
console.log(chalk.cyan(' Create a backup in the FlexSite dashboard:'));
|
|
172
|
+
console.log(` https://flexsite.io/dashboard/${tokenConfig?.organizationId}/project/${projectId}/environment/${environmentId}`);
|
|
160
173
|
}
|
|
161
174
|
else {
|
|
162
175
|
filesSpinner.succeed(`Found backup: ${backup.fileName}`);
|
|
163
176
|
// Download
|
|
164
|
-
const downloadSpinner = (
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
177
|
+
const downloadSpinner = ora('Downloading files...').start();
|
|
178
|
+
filesPath = path.join(process.cwd(), backup.fileName);
|
|
179
|
+
try {
|
|
180
|
+
const data = await downloadFile(backup.url, (progress) => {
|
|
181
|
+
downloadSpinner.text = `Downloading files... ${progress}%`;
|
|
182
|
+
});
|
|
183
|
+
fs.writeFileSync(filesPath, data);
|
|
184
|
+
downloadSpinner.succeed(`Downloaded to: ${filesPath}`);
|
|
185
|
+
}
|
|
186
|
+
catch (downloadError) {
|
|
187
|
+
downloadSpinner.fail('Download failed');
|
|
188
|
+
console.error(chalk.red(` Error: ${downloadError.message}`));
|
|
189
|
+
filesPath = null;
|
|
190
|
+
}
|
|
191
|
+
// Import (only if download succeeded)
|
|
192
|
+
if (filesPath && options.import !== false) {
|
|
193
|
+
const importSpinner = ora('Extracting files...').start();
|
|
194
|
+
try {
|
|
195
|
+
await importFiles(filesPath, localEnv);
|
|
196
|
+
importSpinner.succeed('Files extracted successfully!');
|
|
197
|
+
// Clean up downloaded file
|
|
198
|
+
fs.unlinkSync(filesPath);
|
|
199
|
+
}
|
|
200
|
+
catch (importError) {
|
|
201
|
+
importSpinner.fail('Files extraction failed');
|
|
202
|
+
console.error(chalk.red(` Error: ${importError.message}`));
|
|
203
|
+
// Clean up downloaded file even on failure
|
|
204
|
+
if (fs.existsSync(filesPath)) {
|
|
205
|
+
fs.unlinkSync(filesPath);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
178
208
|
}
|
|
179
209
|
}
|
|
180
210
|
}
|
|
181
211
|
catch (error) {
|
|
182
212
|
filesSpinner.fail('Files sync failed');
|
|
183
213
|
if (error.message?.includes('No backup') || error.message?.includes('not found')) {
|
|
184
|
-
console.log(
|
|
185
|
-
console.log(
|
|
186
|
-
console.log(` https://flexsite.io/dashboard/project/${projectId}/environment/${environmentId}
|
|
214
|
+
console.log(chalk.yellow(' No files backups available for this environment.'));
|
|
215
|
+
console.log(chalk.cyan(' Create a backup in the FlexSite dashboard:'));
|
|
216
|
+
console.log(` https://flexsite.io/dashboard/${tokenConfig?.organizationId}/project/${projectId}/environment/${environmentId}`);
|
|
187
217
|
}
|
|
188
218
|
else if (error instanceof Error) {
|
|
189
|
-
console.error(
|
|
219
|
+
console.error(chalk.red(` Error: ${error.message}`));
|
|
190
220
|
}
|
|
191
221
|
}
|
|
192
222
|
}
|
|
193
|
-
console.log(
|
|
223
|
+
console.log(chalk.green('\n✓ Sync complete!'));
|
|
194
224
|
}
|
|
195
225
|
catch (error) {
|
|
196
226
|
if (error instanceof Error) {
|
|
197
|
-
console.error(
|
|
227
|
+
console.error(chalk.red(`\nError: ${error.message}`));
|
|
198
228
|
}
|
|
199
229
|
process.exit(1);
|
|
200
230
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACpB,YAAY,EACb,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEzF,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;KAC3C,WAAW,CAAC,iDAAiD,CAAC;KAC9D,MAAM,CAAC,mBAAmB,EAAE,gBAAgB,CAAC;KAC7C,MAAM,CAAC,2BAA2B,EAAE,YAAY,CAAC;KACjD,MAAM,CAAC,WAAW,EAAE,oBAAoB,CAAC;KACzC,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC;KACzC,MAAM,CAAC,aAAa,EAAE,8BAA8B,CAAC;KACrD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,IAAI,CAAC;QACH,IAAI,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC;QAChC,IAAI,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;QAEhC,sCAAsC;QACtC,MAAM,WAAW,GAAG,QAAQ,EAAE,CAAC;QAC/B,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,WAAW,CAAC,gBAAgB,IAAI,WAAW,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QACxG,CAAC;QAED,iCAAiC;QACjC,MAAM,QAAQ,GAAG,sBAAsB,EAAE,CAAC;QAE1C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,6CAA6C,CAAC,CAAC,CAAC;YACzE,OAAO,CAAC,GAAG,CAAC,iFAAiF,CAAC,CAAC;YAC/F,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;YAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC;QAE/E,oDAAoD;QACpD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,gEAAgE;YAChE,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;gBAEtC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC1B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC;oBAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC1B,yCAAyC;oBACzC,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC1D,CAAC;qBAAM,CAAC;oBACN,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;wBAChD;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,iBAAiB;4BACvB,OAAO,EAAE,iBAAiB;4BAC1B,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gCAC1B,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,SAAS,IAAI,SAAS,GAAG;gCAChD,KAAK,EAAE,CAAC,CAAC,EAAE;6BACZ,CAAC,CAAC;yBACJ;qBACF,CAAC,CAAC;oBAEH,SAAS,GAAG,eAAe,CAAC;gBAC9B,CAAC;YACH,CAAC;YAED,kCAAkC;YAClC,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAEvD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC,CAAC;gBACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,6CAA6C;gBAC7C,aAAa,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAClE,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;oBAC5C;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,aAAa;wBACnB,OAAO,EAAE,kCAAkC;wBAC3C,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;4BAC9B,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,MAAM,IAAI,MAAM,OAAO,CAAC,CAAC,MAAM,IAAI,SAAS,EAAE;4BACrE,KAAK,EAAE,CAAC,CAAC,EAAE;yBACZ,CAAC,CAAC;qBACJ;iBACF,CAAC,CAAC;gBAEH,aAAa,GAAG,WAAW,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC;QAClC,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;QAElC,gBAAgB;QAChB,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC;YAEnD,MAAM,SAAS,GAAG,GAAG,CAAC,oCAAoC,CAAC,CAAC,KAAK,EAAE,CAAC;YACpE,IAAI,MAAM,GAAkB,IAAI,CAAC;YAEjC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,aAAa,CAAC,CAAC;gBAC5D,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;oBAC3B,SAAS,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;oBAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,uDAAuD,CAAC,CAAC,CAAC;oBACnF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC,CAAC;oBACxE,OAAO,CAAC,GAAG,CAAC,qCAAqC,WAAW,EAAE,cAAc,YAAY,SAAS,gBAAgB,aAAa,EAAE,CAAC,CAAC;gBACpI,CAAC;qBAAM,CAAC;oBACN,SAAS,CAAC,OAAO,CAAC,iBAAiB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAEtD,WAAW;oBACX,MAAM,eAAe,GAAG,GAAG,CAAC,yBAAyB,CAAC,CAAC,KAAK,EAAE,CAAC;oBAC/D,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;oBAEnD,IAAI,CAAC;wBACH,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE;4BACvD,eAAe,CAAC,IAAI,GAAG,2BAA2B,QAAQ,GAAG,CAAC;wBAChE,CAAC,CAAC,CAAC;wBAEH,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;wBAC/B,eAAe,CAAC,OAAO,CAAC,kBAAkB,MAAM,EAAE,CAAC,CAAC;oBACtD,CAAC;oBAAC,OAAO,aAAkB,EAAE,CAAC;wBAC5B,eAAe,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;wBACxC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;wBAC9D,MAAM,GAAG,IAAI,CAAC;oBAChB,CAAC;oBAED,sCAAsC;oBACtC,IAAI,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;wBACvC,MAAM,aAAa,GAAG,GAAG,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,CAAC;wBAC3D,IAAI,CAAC;4BACH,MAAM,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;4BACvC,aAAa,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;4BAEzD,2BAA2B;4BAC3B,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;wBACxB,CAAC;wBAAC,OAAO,WAAgB,EAAE,CAAC;4BAC1B,aAAa,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;4BAC7C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;4BAC5D,2CAA2C;4BAC3C,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gCAC1B,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;4BACxB,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YAEH,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,SAAS,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;gBACvC,IAAI,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;oBACjF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,uDAAuD,CAAC,CAAC,CAAC;oBACnF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC,CAAC;oBACxE,OAAO,CAAC,GAAG,CAAC,qCAAqC,WAAW,EAAE,cAAc,YAAY,SAAS,gBAAgB,aAAa,EAAE,CAAC,CAAC;gBACpI,CAAC;qBAAM,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;oBAClC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBACxD,CAAC;gBACD,2BAA2B;YAC7B,CAAC;QACH,CAAC;QAED,aAAa;QACb,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAEhD,MAAM,YAAY,GAAG,GAAG,CAAC,iCAAiC,CAAC,CAAC,KAAK,EAAE,CAAC;YACpE,IAAI,SAAS,GAAkB,IAAI,CAAC;YAEpC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,aAAa,CAAC,CAAC;gBACzD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;oBAC3B,YAAY,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;oBAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,oDAAoD,CAAC,CAAC,CAAC;oBAChF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC,CAAC;oBACxE,OAAO,CAAC,GAAG,CAAC,qCAAqC,WAAW,EAAE,cAAc,YAAY,SAAS,gBAAgB,aAAa,EAAE,CAAC,CAAC;gBACpI,CAAC;qBAAM,CAAC;oBACN,YAAY,CAAC,OAAO,CAAC,iBAAiB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAEzD,WAAW;oBACX,MAAM,eAAe,GAAG,GAAG,CAAC,sBAAsB,CAAC,CAAC,KAAK,EAAE,CAAC;oBAC5D,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;oBAEtD,IAAI,CAAC;wBACH,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE;4BACvD,eAAe,CAAC,IAAI,GAAG,wBAAwB,QAAQ,GAAG,CAAC;wBAC7D,CAAC,CAAC,CAAC;wBAEH,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;wBAClC,eAAe,CAAC,OAAO,CAAC,kBAAkB,SAAS,EAAE,CAAC,CAAC;oBACzD,CAAC;oBAAC,OAAO,aAAkB,EAAE,CAAC;wBAC5B,eAAe,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;wBACxC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;wBAC9D,SAAS,GAAG,IAAI,CAAC;oBACnB,CAAC;oBAED,sCAAsC;oBACtC,IAAI,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;wBAC1C,MAAM,aAAa,GAAG,GAAG,CAAC,qBAAqB,CAAC,CAAC,KAAK,EAAE,CAAC;wBACzD,IAAI,CAAC;4BACH,MAAM,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;4BACvC,aAAa,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;4BAEvD,2BAA2B;4BAC3B,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;wBAC3B,CAAC;wBAAC,OAAO,WAAgB,EAAE,CAAC;4BAC1B,aAAa,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;4BAC9C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;4BAC5D,2CAA2C;4BAC3C,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gCAC7B,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;4BAC3B,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YAEH,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBACvC,IAAI,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;oBACjF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,oDAAoD,CAAC,CAAC,CAAC;oBAChF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC,CAAC;oBACxE,OAAO,CAAC,GAAG,CAAC,qCAAqC,WAAW,EAAE,cAAc,YAAY,SAAS,gBAAgB,aAAa,EAAE,CAAC,CAAC;gBACpI,CAAC;qBAAM,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;oBAClC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBACxD,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAEjD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,27 +1,11 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* FlexSite CLI
|
|
4
3
|
*
|
|
5
4
|
* Command-line tool for managing FlexSite projects.
|
|
6
5
|
* Supports database and files sync with Lando and DDEV local environments.
|
|
7
6
|
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
-
}
|
|
14
|
-
Object.defineProperty(o, k2, desc);
|
|
15
|
-
}) : (function(o, m, k, k2) {
|
|
16
|
-
if (k2 === undefined) k2 = k;
|
|
17
|
-
o[k2] = m[k];
|
|
18
|
-
}));
|
|
19
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
20
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
21
|
-
};
|
|
22
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
-
__exportStar(require("./types.js"), exports);
|
|
24
|
-
__exportStar(require("./lib/api.js"), exports);
|
|
25
|
-
__exportStar(require("./lib/config.js"), exports);
|
|
26
|
-
__exportStar(require("./lib/detector.js"), exports);
|
|
7
|
+
export * from './types.js';
|
|
8
|
+
export * from './lib/api.js';
|
|
9
|
+
export * from './lib/config.js';
|
|
10
|
+
export * from './lib/detector.js';
|
|
27
11
|
//# 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":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC"}
|
package/dist/lib/api.d.ts
CHANGED
|
@@ -25,11 +25,12 @@ export declare function listProjects(): Promise<Project[]>;
|
|
|
25
25
|
*/
|
|
26
26
|
export declare function listEnvironments(projectId: string): Promise<Environment[]>;
|
|
27
27
|
/**
|
|
28
|
-
* Get latest database backup download URL
|
|
28
|
+
* Get latest database backup download URL.
|
|
29
|
+
* The CLI API prefers DatabaseBackupsList (newest-first nested entries); falls back to legacy DatabaseBackup rows.
|
|
29
30
|
*/
|
|
30
31
|
export declare function getLatestDatabaseBackup(environmentId: string): Promise<BackupDownload>;
|
|
31
32
|
/**
|
|
32
|
-
* List database backups for an environment
|
|
33
|
+
* List database backups for an environment (newest first; matches aggregate order when migrated).
|
|
33
34
|
*/
|
|
34
35
|
export declare function listDatabaseBackups(environmentId: string): Promise<Backup[]>;
|
|
35
36
|
/**
|
package/dist/lib/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAc,EAAc,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAE9D,OAAO,KAAK,EACV,kBAAkB,EAClB,OAAO,EACP,WAAW,EACX,MAAM,EACN,cAAc,EACd,WAAW,EACZ,MAAM,aAAa,CAAC;AASrB;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,WAAW,GAAG,IAAI,CAExD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,aAAa,CAoB7D;AA6CD;;GAEG;AACH,wBAAsB,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAQ5E;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAQvD;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAUhF;AAED
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAc,EAAc,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAE9D,OAAO,KAAK,EACV,kBAAkB,EAClB,OAAO,EACP,WAAW,EACX,MAAM,EACN,cAAc,EACd,WAAW,EACZ,MAAM,aAAa,CAAC;AASrB;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,WAAW,GAAG,IAAI,CAExD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,aAAa,CAoB7D;AA6CD;;GAEG;AACH,wBAAsB,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAQ5E;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAQvD;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAUhF;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAQ5F;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAalF;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAQzF;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAQ/E;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,MAAM,EACX,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GACtC,OAAO,CAAC,MAAM,CAAC,CAiBjB"}
|
package/dist/lib/api.js
CHANGED
|
@@ -1,24 +1,9 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* API client for FlexSite CLI.
|
|
4
3
|
* Handles all HTTP requests to the FlexSite API.
|
|
5
4
|
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
};
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.getCurrentTokenInfo = getCurrentTokenInfo;
|
|
11
|
-
exports.createApiClient = createApiClient;
|
|
12
|
-
exports.verifyAuth = verifyAuth;
|
|
13
|
-
exports.listProjects = listProjects;
|
|
14
|
-
exports.listEnvironments = listEnvironments;
|
|
15
|
-
exports.getLatestDatabaseBackup = getLatestDatabaseBackup;
|
|
16
|
-
exports.listDatabaseBackups = listDatabaseBackups;
|
|
17
|
-
exports.getLatestFilesBackup = getLatestFilesBackup;
|
|
18
|
-
exports.listFilesBackups = listFilesBackups;
|
|
19
|
-
exports.downloadFile = downloadFile;
|
|
20
|
-
const axios_1 = __importDefault(require("axios"));
|
|
21
|
-
const config_js_1 = require("./config.js");
|
|
5
|
+
import axios from 'axios';
|
|
6
|
+
import { getToken } from './config.js';
|
|
22
7
|
// API base URL
|
|
23
8
|
// Note: The custom domain maps root to v1 stage, so no /v1 suffix needed
|
|
24
9
|
const API_BASE_URL = process.env.FLEXSITE_API_URL || 'https://cli-api.flexsite.io';
|
|
@@ -27,21 +12,21 @@ let currentTokenInfo = null;
|
|
|
27
12
|
/**
|
|
28
13
|
* Get current token info being used
|
|
29
14
|
*/
|
|
30
|
-
function getCurrentTokenInfo() {
|
|
15
|
+
export function getCurrentTokenInfo() {
|
|
31
16
|
return currentTokenInfo;
|
|
32
17
|
}
|
|
33
18
|
/**
|
|
34
19
|
* Create an authenticated API client
|
|
35
20
|
*/
|
|
36
|
-
function createApiClient(token) {
|
|
37
|
-
const tokenConfig = token ? null :
|
|
21
|
+
export function createApiClient(token) {
|
|
22
|
+
const tokenConfig = token ? null : getToken();
|
|
38
23
|
const authToken = token || tokenConfig?.token;
|
|
39
24
|
// Store for error messages
|
|
40
25
|
currentTokenInfo = tokenConfig;
|
|
41
26
|
if (!authToken) {
|
|
42
27
|
throw new Error('No authentication token found. Run "flexsite auth login" first.');
|
|
43
28
|
}
|
|
44
|
-
return
|
|
29
|
+
return axios.create({
|
|
45
30
|
baseURL: API_BASE_URL,
|
|
46
31
|
timeout: 30000,
|
|
47
32
|
headers: {
|
|
@@ -55,7 +40,7 @@ function createApiClient(token) {
|
|
|
55
40
|
* Handle API errors consistently
|
|
56
41
|
*/
|
|
57
42
|
function handleError(error) {
|
|
58
|
-
if (
|
|
43
|
+
if (axios.isAxiosError(error)) {
|
|
59
44
|
const axiosError = error;
|
|
60
45
|
if (axiosError.response) {
|
|
61
46
|
const status = axiosError.response.status;
|
|
@@ -89,7 +74,7 @@ function handleError(error) {
|
|
|
89
74
|
/**
|
|
90
75
|
* Verify authentication token
|
|
91
76
|
*/
|
|
92
|
-
async function verifyAuth(token) {
|
|
77
|
+
export async function verifyAuth(token) {
|
|
93
78
|
try {
|
|
94
79
|
const client = createApiClient(token);
|
|
95
80
|
const response = await client.get('/cli/auth/verify');
|
|
@@ -102,7 +87,7 @@ async function verifyAuth(token) {
|
|
|
102
87
|
/**
|
|
103
88
|
* List projects for the authenticated organization
|
|
104
89
|
*/
|
|
105
|
-
async function listProjects() {
|
|
90
|
+
export async function listProjects() {
|
|
106
91
|
try {
|
|
107
92
|
const client = createApiClient();
|
|
108
93
|
const response = await client.get('/cli/projects');
|
|
@@ -115,7 +100,7 @@ async function listProjects() {
|
|
|
115
100
|
/**
|
|
116
101
|
* List environments for a project
|
|
117
102
|
*/
|
|
118
|
-
async function listEnvironments(projectId) {
|
|
103
|
+
export async function listEnvironments(projectId) {
|
|
119
104
|
try {
|
|
120
105
|
const client = createApiClient();
|
|
121
106
|
const response = await client.get('/cli/environments', {
|
|
@@ -128,9 +113,10 @@ async function listEnvironments(projectId) {
|
|
|
128
113
|
}
|
|
129
114
|
}
|
|
130
115
|
/**
|
|
131
|
-
* Get latest database backup download URL
|
|
116
|
+
* Get latest database backup download URL.
|
|
117
|
+
* The CLI API prefers DatabaseBackupsList (newest-first nested entries); falls back to legacy DatabaseBackup rows.
|
|
132
118
|
*/
|
|
133
|
-
async function getLatestDatabaseBackup(environmentId) {
|
|
119
|
+
export async function getLatestDatabaseBackup(environmentId) {
|
|
134
120
|
try {
|
|
135
121
|
const client = createApiClient();
|
|
136
122
|
const response = await client.get(`/cli/environments/${environmentId}/database/latest`);
|
|
@@ -141,13 +127,18 @@ async function getLatestDatabaseBackup(environmentId) {
|
|
|
141
127
|
}
|
|
142
128
|
}
|
|
143
129
|
/**
|
|
144
|
-
* List database backups for an environment
|
|
130
|
+
* List database backups for an environment (newest first; matches aggregate order when migrated).
|
|
145
131
|
*/
|
|
146
|
-
async function listDatabaseBackups(environmentId) {
|
|
132
|
+
export async function listDatabaseBackups(environmentId) {
|
|
147
133
|
try {
|
|
148
134
|
const client = createApiClient();
|
|
149
135
|
const response = await client.get(`/cli/environments/${environmentId}/database`);
|
|
150
|
-
|
|
136
|
+
const items = response.data.backups || [];
|
|
137
|
+
return [...items].sort((a, b) => {
|
|
138
|
+
const ta = new Date(a.createdAt || 0).getTime();
|
|
139
|
+
const tb = new Date(b.createdAt || 0).getTime();
|
|
140
|
+
return tb - ta;
|
|
141
|
+
});
|
|
151
142
|
}
|
|
152
143
|
catch (error) {
|
|
153
144
|
handleError(error);
|
|
@@ -156,7 +147,7 @@ async function listDatabaseBackups(environmentId) {
|
|
|
156
147
|
/**
|
|
157
148
|
* Get latest files backup download URL
|
|
158
149
|
*/
|
|
159
|
-
async function getLatestFilesBackup(environmentId) {
|
|
150
|
+
export async function getLatestFilesBackup(environmentId) {
|
|
160
151
|
try {
|
|
161
152
|
const client = createApiClient();
|
|
162
153
|
const response = await client.get(`/cli/environments/${environmentId}/files/latest`);
|
|
@@ -169,7 +160,7 @@ async function getLatestFilesBackup(environmentId) {
|
|
|
169
160
|
/**
|
|
170
161
|
* List files backups for an environment
|
|
171
162
|
*/
|
|
172
|
-
async function listFilesBackups(environmentId) {
|
|
163
|
+
export async function listFilesBackups(environmentId) {
|
|
173
164
|
try {
|
|
174
165
|
const client = createApiClient();
|
|
175
166
|
const response = await client.get(`/cli/environments/${environmentId}/files`);
|
|
@@ -182,9 +173,9 @@ async function listFilesBackups(environmentId) {
|
|
|
182
173
|
/**
|
|
183
174
|
* Download a file from a presigned URL
|
|
184
175
|
*/
|
|
185
|
-
async function downloadFile(url, onProgress) {
|
|
176
|
+
export async function downloadFile(url, onProgress) {
|
|
186
177
|
try {
|
|
187
|
-
const response = await
|
|
178
|
+
const response = await axios.get(url, {
|
|
188
179
|
responseType: 'arraybuffer',
|
|
189
180
|
timeout: 300000, // 5 minutes for large files
|
|
190
181
|
onDownloadProgress: (progressEvent) => {
|