@strapi/cloud-cli 5.12.0 → 5.12.2
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.d.ts.map +1 -0
- package/dist/bin.js +5 -18
- package/dist/bin.js.map +1 -1
- package/dist/bin.mjs +3 -16
- package/dist/bin.mjs.map +1 -1
- package/dist/cloud/command.d.ts.map +1 -0
- package/dist/cloud/command.js +14 -0
- package/dist/cloud/command.js.map +1 -0
- package/dist/cloud/command.mjs +12 -0
- package/dist/cloud/command.mjs.map +1 -0
- package/dist/config/api.d.ts.map +1 -0
- package/dist/config/api.js +11 -0
- package/dist/config/api.js.map +1 -0
- package/dist/config/api.mjs +9 -0
- package/dist/config/api.mjs.map +1 -0
- package/dist/config/local.d.ts.map +1 -0
- package/dist/config/local.js +60 -0
- package/dist/config/local.js.map +1 -0
- package/dist/config/local.mjs +55 -0
- package/dist/config/local.mjs.map +1 -0
- package/dist/create-project/action.d.ts.map +1 -0
- package/dist/create-project/action.js +95 -0
- package/dist/create-project/action.js.map +1 -0
- package/dist/create-project/action.mjs +93 -0
- package/dist/create-project/action.mjs.map +1 -0
- package/dist/create-project/command.d.ts.map +1 -0
- package/dist/create-project/command.js +14 -0
- package/dist/create-project/command.js.map +1 -0
- package/dist/create-project/command.mjs +12 -0
- package/dist/create-project/command.mjs.map +1 -0
- package/dist/create-project/index.d.ts.map +1 -0
- package/dist/create-project/index.js +18 -0
- package/dist/create-project/index.js.map +1 -0
- package/dist/create-project/index.mjs +12 -0
- package/dist/create-project/index.mjs.map +1 -0
- package/dist/create-project/utils/get-project-name-from-pkg.d.ts.map +1 -0
- package/dist/create-project/utils/get-project-name-from-pkg.js +15 -0
- package/dist/create-project/utils/get-project-name-from-pkg.js.map +1 -0
- package/dist/create-project/utils/get-project-name-from-pkg.mjs +13 -0
- package/dist/create-project/utils/get-project-name-from-pkg.mjs.map +1 -0
- package/dist/create-project/utils/project-questions.utils.d.ts.map +1 -0
- package/dist/create-project/utils/project-questions.utils.js +63 -0
- package/dist/create-project/utils/project-questions.utils.js.map +1 -0
- package/dist/create-project/utils/project-questions.utils.mjs +59 -0
- package/dist/create-project/utils/project-questions.utils.mjs.map +1 -0
- package/dist/deploy-project/action.d.ts.map +1 -0
- package/dist/deploy-project/action.js +287 -0
- package/dist/deploy-project/action.js.map +1 -0
- package/dist/deploy-project/action.mjs +266 -0
- package/dist/deploy-project/action.mjs.map +1 -0
- package/dist/deploy-project/command.d.ts.map +1 -0
- package/dist/deploy-project/command.js +14 -0
- package/dist/deploy-project/command.js.map +1 -0
- package/dist/deploy-project/command.mjs +12 -0
- package/dist/deploy-project/command.mjs.map +1 -0
- package/dist/deploy-project/index.d.ts.map +1 -0
- package/dist/deploy-project/index.js +18 -0
- package/dist/deploy-project/index.js.map +1 -0
- package/dist/deploy-project/index.mjs +12 -0
- package/dist/deploy-project/index.mjs.map +1 -0
- package/dist/environment/command.d.ts.map +1 -0
- package/dist/environment/command.js +15 -0
- package/dist/environment/command.js.map +1 -0
- package/dist/environment/command.mjs +13 -0
- package/dist/environment/command.mjs.map +1 -0
- package/dist/environment/link/action.d.ts.map +1 -0
- package/dist/environment/link/action.js +117 -0
- package/dist/environment/link/action.js.map +1 -0
- package/dist/environment/link/action.mjs +115 -0
- package/dist/environment/link/action.mjs.map +1 -0
- package/dist/environment/link/command.d.ts.map +1 -0
- package/dist/environment/link/command.js +13 -0
- package/dist/environment/link/command.js.map +1 -0
- package/dist/environment/link/command.mjs +11 -0
- package/dist/environment/link/command.mjs.map +1 -0
- package/dist/environment/link/index.d.ts.map +1 -0
- package/dist/environment/link/index.js +18 -0
- package/dist/environment/link/index.js.map +1 -0
- package/dist/environment/link/index.mjs +12 -0
- package/dist/environment/link/index.mjs.map +1 -0
- package/dist/environment/list/action.d.ts.map +1 -0
- package/dist/environment/list/action.js +57 -0
- package/dist/environment/list/action.js.map +1 -0
- package/dist/environment/list/action.mjs +55 -0
- package/dist/environment/list/action.mjs.map +1 -0
- package/dist/environment/list/command.d.ts.map +1 -0
- package/dist/environment/list/command.js +13 -0
- package/dist/environment/list/command.js.map +1 -0
- package/dist/environment/list/command.mjs +11 -0
- package/dist/environment/list/command.mjs.map +1 -0
- package/dist/environment/list/index.d.ts.map +1 -0
- package/dist/environment/list/index.js +18 -0
- package/dist/environment/list/index.js.map +1 -0
- package/dist/environment/list/index.mjs +12 -0
- package/dist/environment/list/index.mjs.map +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +59 -29
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +60 -25
- package/dist/index.mjs.map +1 -1
- package/dist/link/action.d.ts.map +1 -0
- package/dist/link/action.js +146 -0
- package/dist/link/action.js.map +1 -0
- package/dist/link/action.mjs +144 -0
- package/dist/link/action.mjs.map +1 -0
- package/dist/link/command.d.ts.map +1 -0
- package/dist/link/command.js +13 -0
- package/dist/link/command.js.map +1 -0
- package/dist/link/command.mjs +11 -0
- package/dist/link/command.mjs.map +1 -0
- package/dist/link/index.d.ts.map +1 -0
- package/dist/link/index.js +18 -0
- package/dist/link/index.js.map +1 -0
- package/dist/link/index.mjs +12 -0
- package/dist/link/index.mjs.map +1 -0
- package/dist/list-projects/action.d.ts.map +1 -0
- package/dist/list-projects/action.js +34 -0
- package/dist/list-projects/action.js.map +1 -0
- package/dist/list-projects/action.mjs +32 -0
- package/dist/list-projects/action.mjs.map +1 -0
- package/dist/list-projects/command.d.ts.map +1 -0
- package/dist/list-projects/command.js +13 -0
- package/dist/list-projects/command.js.map +1 -0
- package/dist/list-projects/command.mjs +11 -0
- package/dist/list-projects/command.mjs.map +1 -0
- package/dist/list-projects/index.d.ts.map +1 -0
- package/dist/list-projects/index.js +18 -0
- package/dist/list-projects/index.js.map +1 -0
- package/dist/list-projects/index.mjs +12 -0
- package/dist/list-projects/index.mjs.map +1 -0
- package/dist/login/action.d.ts.map +1 -0
- package/dist/login/action.js +177 -0
- package/dist/login/action.js.map +1 -0
- package/dist/login/action.mjs +172 -0
- package/dist/login/action.mjs.map +1 -0
- package/dist/login/command.d.ts.map +1 -0
- package/dist/login/command.js +14 -0
- package/dist/login/command.js.map +1 -0
- package/dist/login/command.mjs +12 -0
- package/dist/login/command.mjs.map +1 -0
- package/dist/login/index.d.ts.map +1 -0
- package/dist/login/index.js +18 -0
- package/dist/login/index.js.map +1 -0
- package/dist/login/index.mjs +12 -0
- package/dist/login/index.mjs.map +1 -0
- package/dist/logout/action.d.ts.map +1 -0
- package/dist/logout/action.js +46 -0
- package/dist/logout/action.js.map +1 -0
- package/dist/logout/action.mjs +44 -0
- package/dist/logout/action.mjs.map +1 -0
- package/dist/logout/command.d.ts.map +1 -0
- package/dist/logout/command.js +14 -0
- package/dist/logout/command.js.map +1 -0
- package/dist/logout/command.mjs +12 -0
- package/dist/logout/command.mjs.map +1 -0
- package/dist/logout/index.d.ts.map +1 -0
- package/dist/logout/index.js +18 -0
- package/dist/logout/index.js.map +1 -0
- package/dist/logout/index.mjs +12 -0
- package/dist/logout/index.mjs.map +1 -0
- package/dist/package.json.js +129 -0
- package/dist/package.json.js.map +1 -0
- package/dist/package.json.mjs +105 -0
- package/dist/package.json.mjs.map +1 -0
- package/dist/services/build-logs.d.ts.map +1 -0
- package/dist/services/build-logs.js +67 -0
- package/dist/services/build-logs.js.map +1 -0
- package/dist/services/build-logs.mjs +65 -0
- package/dist/services/build-logs.mjs.map +1 -0
- package/dist/services/cli-api.d.ts.map +1 -0
- package/dist/services/cli-api.js +146 -0
- package/dist/services/cli-api.js.map +1 -0
- package/dist/services/cli-api.mjs +143 -0
- package/dist/services/cli-api.mjs.map +1 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +14 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/index.mjs +6 -0
- package/dist/services/index.mjs.map +1 -0
- package/dist/services/logger.d.ts.map +1 -0
- package/dist/services/logger.js +128 -0
- package/dist/services/logger.js.map +1 -0
- package/dist/services/logger.mjs +107 -0
- package/dist/services/logger.mjs.map +1 -0
- package/dist/services/notification.d.ts.map +1 -0
- package/dist/services/notification.js +37 -0
- package/dist/services/notification.js.map +1 -0
- package/dist/services/notification.mjs +35 -0
- package/dist/services/notification.mjs.map +1 -0
- package/dist/services/strapi-info-save.d.ts.map +1 -0
- package/dist/services/strapi-info-save.js +53 -0
- package/dist/services/strapi-info-save.js.map +1 -0
- package/dist/services/strapi-info-save.mjs +47 -0
- package/dist/services/strapi-info-save.mjs.map +1 -0
- package/dist/services/token.d.ts.map +1 -0
- package/dist/services/token.js +126 -0
- package/dist/services/token.js.map +1 -0
- package/dist/services/token.mjs +124 -0
- package/dist/services/token.mjs.map +1 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/utils/analytics.d.ts.map +1 -0
- package/dist/utils/analytics.js +12 -0
- package/dist/utils/analytics.js.map +1 -0
- package/dist/utils/analytics.mjs +10 -0
- package/dist/utils/analytics.mjs.map +1 -0
- package/dist/utils/compress-files.d.ts.map +1 -0
- package/dist/utils/compress-files.js +102 -0
- package/dist/utils/compress-files.js.map +1 -0
- package/dist/utils/compress-files.mjs +78 -0
- package/dist/utils/compress-files.mjs.map +1 -0
- package/dist/utils/get-local-config.d.ts.map +1 -0
- package/dist/utils/get-local-config.js +37 -0
- package/dist/utils/get-local-config.js.map +1 -0
- package/dist/utils/get-local-config.mjs +34 -0
- package/dist/utils/get-local-config.mjs.map +1 -0
- package/dist/utils/helpers.d.ts.map +1 -0
- package/dist/utils/helpers.js +33 -0
- package/dist/utils/helpers.js.map +1 -0
- package/dist/utils/helpers.mjs +31 -0
- package/dist/utils/helpers.mjs.map +1 -0
- package/dist/utils/pkg.d.ts.map +1 -0
- package/dist/utils/pkg.js +65 -0
- package/dist/utils/pkg.js.map +1 -0
- package/dist/utils/pkg.mjs +43 -0
- package/dist/utils/pkg.mjs.map +1 -0
- package/dist/utils/tests/compress-files.test.d.ts.map +1 -0
- package/package.json +5 -5
- package/dist/chunks/index-BZ0dpHa6.js +0 -1896
- package/dist/chunks/index-BZ0dpHa6.js.map +0 -1
- package/dist/chunks/index-DGQHGTQ5.mjs +0 -1869
- package/dist/chunks/index-DGQHGTQ5.mjs.map +0 -1
- package/dist/src/bin.d.ts.map +0 -1
- package/dist/src/cloud/command.d.ts.map +0 -1
- package/dist/src/config/api.d.ts.map +0 -1
- package/dist/src/config/local.d.ts.map +0 -1
- package/dist/src/create-project/action.d.ts.map +0 -1
- package/dist/src/create-project/command.d.ts.map +0 -1
- package/dist/src/create-project/index.d.ts.map +0 -1
- package/dist/src/create-project/utils/get-project-name-from-pkg.d.ts.map +0 -1
- package/dist/src/create-project/utils/project-questions.utils.d.ts.map +0 -1
- package/dist/src/deploy-project/action.d.ts.map +0 -1
- package/dist/src/deploy-project/command.d.ts.map +0 -1
- package/dist/src/deploy-project/index.d.ts.map +0 -1
- package/dist/src/environment/command.d.ts.map +0 -1
- package/dist/src/environment/link/action.d.ts.map +0 -1
- package/dist/src/environment/link/command.d.ts.map +0 -1
- package/dist/src/environment/link/index.d.ts.map +0 -1
- package/dist/src/environment/list/action.d.ts.map +0 -1
- package/dist/src/environment/list/command.d.ts.map +0 -1
- package/dist/src/environment/list/index.d.ts.map +0 -1
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/link/action.d.ts.map +0 -1
- package/dist/src/link/command.d.ts.map +0 -1
- package/dist/src/link/index.d.ts.map +0 -1
- package/dist/src/list-projects/action.d.ts.map +0 -1
- package/dist/src/list-projects/command.d.ts.map +0 -1
- package/dist/src/list-projects/index.d.ts.map +0 -1
- package/dist/src/login/action.d.ts.map +0 -1
- package/dist/src/login/command.d.ts.map +0 -1
- package/dist/src/login/index.d.ts.map +0 -1
- package/dist/src/logout/action.d.ts.map +0 -1
- package/dist/src/logout/command.d.ts.map +0 -1
- package/dist/src/logout/index.d.ts.map +0 -1
- package/dist/src/services/build-logs.d.ts.map +0 -1
- package/dist/src/services/cli-api.d.ts.map +0 -1
- package/dist/src/services/index.d.ts.map +0 -1
- package/dist/src/services/logger.d.ts.map +0 -1
- package/dist/src/services/notification.d.ts.map +0 -1
- package/dist/src/services/strapi-info-save.d.ts.map +0 -1
- package/dist/src/services/token.d.ts.map +0 -1
- package/dist/src/types.d.ts.map +0 -1
- package/dist/src/utils/analytics.d.ts.map +0 -1
- package/dist/src/utils/compress-files.d.ts.map +0 -1
- package/dist/src/utils/get-local-config.d.ts.map +0 -1
- package/dist/src/utils/helpers.d.ts.map +0 -1
- package/dist/src/utils/pkg.d.ts.map +0 -1
- package/dist/src/utils/tests/compress-files.test.d.ts.map +0 -1
- /package/dist/{src/bin.d.ts → bin.d.ts} +0 -0
- /package/dist/{src/cloud → cloud}/command.d.ts +0 -0
- /package/dist/{src/config → config}/api.d.ts +0 -0
- /package/dist/{src/config → config}/local.d.ts +0 -0
- /package/dist/{src/create-project → create-project}/action.d.ts +0 -0
- /package/dist/{src/create-project → create-project}/command.d.ts +0 -0
- /package/dist/{src/create-project → create-project}/index.d.ts +0 -0
- /package/dist/{src/create-project → create-project}/utils/get-project-name-from-pkg.d.ts +0 -0
- /package/dist/{src/create-project → create-project}/utils/project-questions.utils.d.ts +0 -0
- /package/dist/{src/deploy-project → deploy-project}/action.d.ts +0 -0
- /package/dist/{src/deploy-project → deploy-project}/command.d.ts +0 -0
- /package/dist/{src/deploy-project → deploy-project}/index.d.ts +0 -0
- /package/dist/{src/environment → environment}/command.d.ts +0 -0
- /package/dist/{src/environment → environment}/link/action.d.ts +0 -0
- /package/dist/{src/environment → environment}/link/command.d.ts +0 -0
- /package/dist/{src/environment → environment}/link/index.d.ts +0 -0
- /package/dist/{src/environment → environment}/list/action.d.ts +0 -0
- /package/dist/{src/environment → environment}/list/command.d.ts +0 -0
- /package/dist/{src/environment → environment}/list/index.d.ts +0 -0
- /package/dist/{src/index.d.ts → index.d.ts} +0 -0
- /package/dist/{src/link → link}/action.d.ts +0 -0
- /package/dist/{src/link → link}/command.d.ts +0 -0
- /package/dist/{src/link → link}/index.d.ts +0 -0
- /package/dist/{src/list-projects → list-projects}/action.d.ts +0 -0
- /package/dist/{src/list-projects → list-projects}/command.d.ts +0 -0
- /package/dist/{src/list-projects → list-projects}/index.d.ts +0 -0
- /package/dist/{src/login → login}/action.d.ts +0 -0
- /package/dist/{src/login → login}/command.d.ts +0 -0
- /package/dist/{src/login → login}/index.d.ts +0 -0
- /package/dist/{src/logout → logout}/action.d.ts +0 -0
- /package/dist/{src/logout → logout}/command.d.ts +0 -0
- /package/dist/{src/logout → logout}/index.d.ts +0 -0
- /package/dist/{src/services → services}/build-logs.d.ts +0 -0
- /package/dist/{src/services → services}/cli-api.d.ts +0 -0
- /package/dist/{src/services → services}/index.d.ts +0 -0
- /package/dist/{src/services → services}/logger.d.ts +0 -0
- /package/dist/{src/services → services}/notification.d.ts +0 -0
- /package/dist/{src/services → services}/strapi-info-save.d.ts +0 -0
- /package/dist/{src/services → services}/token.d.ts +0 -0
- /package/dist/{src/types.d.ts → types.d.ts} +0 -0
- /package/dist/{src/utils → utils}/analytics.d.ts +0 -0
- /package/dist/{src/utils → utils}/compress-files.d.ts +0 -0
- /package/dist/{src/utils → utils}/get-local-config.d.ts +0 -0
- /package/dist/{src/utils → utils}/helpers.d.ts +0 -0
- /package/dist/{src/utils → utils}/pkg.d.ts +0 -0
- /package/dist/{src/utils → utils}/tests/compress-files.test.d.ts +0 -0
package/dist/index.mjs
CHANGED
|
@@ -1,26 +1,61 @@
|
|
|
1
|
-
import 'crypto';
|
|
2
|
-
|
|
3
|
-
import '
|
|
4
|
-
import '
|
|
5
|
-
import '
|
|
6
|
-
import '
|
|
7
|
-
import '
|
|
8
|
-
import '
|
|
9
|
-
import '
|
|
10
|
-
import '
|
|
11
|
-
import '
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
1
|
+
import crypto from 'crypto';
|
|
2
|
+
import deployProject from './deploy-project/index.mjs';
|
|
3
|
+
import link from './link/index.mjs';
|
|
4
|
+
import login from './login/index.mjs';
|
|
5
|
+
import logout from './logout/index.mjs';
|
|
6
|
+
import createProject from './create-project/index.mjs';
|
|
7
|
+
import listProjects from './list-projects/index.mjs';
|
|
8
|
+
import listEnvironments from './environment/list/index.mjs';
|
|
9
|
+
import linkEnvironment from './environment/link/index.mjs';
|
|
10
|
+
import { getLocalConfig, saveLocalConfig } from './config/local.mjs';
|
|
11
|
+
import * as index from './services/index.mjs';
|
|
12
|
+
export { index as services };
|
|
13
|
+
|
|
14
|
+
const cli = {
|
|
15
|
+
deployProject,
|
|
16
|
+
link,
|
|
17
|
+
login,
|
|
18
|
+
logout,
|
|
19
|
+
createProject,
|
|
20
|
+
linkEnvironment,
|
|
21
|
+
listProjects,
|
|
22
|
+
listEnvironments
|
|
23
|
+
};
|
|
24
|
+
const cloudCommands = [
|
|
25
|
+
deployProject,
|
|
26
|
+
link,
|
|
27
|
+
login,
|
|
28
|
+
logout,
|
|
29
|
+
linkEnvironment,
|
|
30
|
+
listProjects,
|
|
31
|
+
listEnvironments
|
|
32
|
+
];
|
|
33
|
+
async function initCloudCLIConfig() {
|
|
34
|
+
const localConfig = await getLocalConfig();
|
|
35
|
+
if (!localConfig.deviceId) {
|
|
36
|
+
localConfig.deviceId = crypto.randomUUID();
|
|
37
|
+
}
|
|
38
|
+
await saveLocalConfig(localConfig);
|
|
39
|
+
}
|
|
40
|
+
async function buildStrapiCloudCommands({ command, ctx, argv }) {
|
|
41
|
+
await initCloudCLIConfig();
|
|
42
|
+
// Load all commands
|
|
43
|
+
for (const cloudCommand of cloudCommands){
|
|
44
|
+
try {
|
|
45
|
+
// Add this command to the Commander command object
|
|
46
|
+
const subCommand = await cloudCommand.command({
|
|
47
|
+
command,
|
|
48
|
+
ctx,
|
|
49
|
+
argv
|
|
50
|
+
});
|
|
51
|
+
if (subCommand) {
|
|
52
|
+
command.addCommand(subCommand);
|
|
53
|
+
}
|
|
54
|
+
} catch (e) {
|
|
55
|
+
console.error(`Failed to load command ${cloudCommand.name}`, e);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export { buildStrapiCloudCommands, cli };
|
|
26
61
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":["import { Command } from 'commander';\nimport crypto from 'crypto';\nimport deployProject from './deploy-project';\nimport link from './link';\nimport login from './login';\nimport logout from './logout';\nimport createProject from './create-project';\nimport listProjects from './list-projects';\nimport listEnvironments from './environment/list';\nimport linkEnvironment from './environment/link';\nimport { CLIContext } from './types';\nimport { getLocalConfig, saveLocalConfig } from './config/local';\n\nexport const cli = {\n deployProject,\n link,\n login,\n logout,\n createProject,\n linkEnvironment,\n listProjects,\n listEnvironments,\n};\n\nconst cloudCommands = [\n deployProject,\n link,\n login,\n logout,\n linkEnvironment,\n listProjects,\n listEnvironments,\n];\n\nasync function initCloudCLIConfig() {\n const localConfig = await getLocalConfig();\n\n if (!localConfig.deviceId) {\n localConfig.deviceId = crypto.randomUUID();\n }\n\n await saveLocalConfig(localConfig);\n}\n\nexport async function buildStrapiCloudCommands({\n command,\n ctx,\n argv,\n}: {\n command: Command;\n ctx: CLIContext;\n argv: string[];\n}) {\n await initCloudCLIConfig();\n // Load all commands\n for (const cloudCommand of cloudCommands) {\n try {\n // Add this command to the Commander command object\n const subCommand = await cloudCommand.command({ command, ctx, argv });\n\n if (subCommand) {\n command.addCommand(subCommand);\n }\n } catch (e) {\n console.error(`Failed to load command ${cloudCommand.name}`, e);\n }\n }\n}\n\nexport * as services from './services';\n\nexport * from './types';\n"],"names":["cli","deployProject","link","login","logout","createProject","linkEnvironment","listProjects","listEnvironments","cloudCommands","initCloudCLIConfig","localConfig","getLocalConfig","deviceId","crypto","randomUUID","saveLocalConfig","buildStrapiCloudCommands","command","ctx","argv","cloudCommand","subCommand","addCommand","e","console","error","name"],"mappings":";;;;;;;;;;;;;MAaaA,GAAM,GAAA;AACjBC,IAAAA,aAAAA;AACAC,IAAAA,IAAAA;AACAC,IAAAA,KAAAA;AACAC,IAAAA,MAAAA;AACAC,IAAAA,aAAAA;AACAC,IAAAA,eAAAA;AACAC,IAAAA,YAAAA;AACAC,IAAAA;AACF;AAEA,MAAMC,aAAgB,GAAA;AACpBR,IAAAA,aAAAA;AACAC,IAAAA,IAAAA;AACAC,IAAAA,KAAAA;AACAC,IAAAA,MAAAA;AACAE,IAAAA,eAAAA;AACAC,IAAAA,YAAAA;AACAC,IAAAA;AACD,CAAA;AAED,eAAeE,kBAAAA,GAAAA;AACb,IAAA,MAAMC,cAAc,MAAMC,cAAAA,EAAAA;IAE1B,IAAI,CAACD,WAAYE,CAAAA,QAAQ,EAAE;QACzBF,WAAYE,CAAAA,QAAQ,GAAGC,MAAAA,CAAOC,UAAU,EAAA;AAC1C;AAEA,IAAA,MAAMC,eAAgBL,CAAAA,WAAAA,CAAAA;AACxB;AAEO,eAAeM,yBAAyB,EAC7CC,OAAO,EACPC,GAAG,EACHC,IAAI,EAKL,EAAA;IACC,MAAMV,kBAAAA,EAAAA;;IAEN,KAAK,MAAMW,gBAAgBZ,aAAe,CAAA;QACxC,IAAI;;AAEF,YAAA,MAAMa,UAAa,GAAA,MAAMD,YAAaH,CAAAA,OAAO,CAAC;AAAEA,gBAAAA,OAAAA;AAASC,gBAAAA,GAAAA;AAAKC,gBAAAA;AAAK,aAAA,CAAA;AAEnE,YAAA,IAAIE,UAAY,EAAA;AACdJ,gBAAAA,OAAAA,CAAQK,UAAU,CAACD,UAAAA,CAAAA;AACrB;AACF,SAAA,CAAE,OAAOE,CAAG,EAAA;YACVC,OAAQC,CAAAA,KAAK,CAAC,CAAC,uBAAuB,EAAEL,YAAaM,CAAAA,IAAI,CAAC,CAAC,EAAEH,CAAAA,CAAAA;AAC/D;AACF;AACF;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../src/link/action.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;8BAuIhB,UAAU;AAArC,wBAoEE"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var inquirer = require('inquirer');
|
|
4
|
+
var chalk = require('chalk');
|
|
5
|
+
var cliApi = require('../services/cli-api.js');
|
|
6
|
+
var strapiInfoSave = require('../services/strapi-info-save.js');
|
|
7
|
+
var token = require('../services/token.js');
|
|
8
|
+
require('fast-safe-stringify');
|
|
9
|
+
require('ora');
|
|
10
|
+
require('cli-progress');
|
|
11
|
+
var action$1 = require('../login/action.js');
|
|
12
|
+
var analytics = require('../utils/analytics.js');
|
|
13
|
+
var getLocalConfig = require('../utils/get-local-config.js');
|
|
14
|
+
|
|
15
|
+
const QUIT_OPTION = 'Quit';
|
|
16
|
+
async function promptForRelink(ctx, cloudApiService, existingConfig) {
|
|
17
|
+
if (existingConfig && existingConfig.project) {
|
|
18
|
+
const { shouldRelink } = await inquirer.prompt([
|
|
19
|
+
{
|
|
20
|
+
type: 'confirm',
|
|
21
|
+
name: 'shouldRelink',
|
|
22
|
+
message: `A project named ${chalk.cyan(existingConfig.project.displayName ? existingConfig.project.displayName : existingConfig.project.name)} is already linked to this local folder. Do you want to update the link?`,
|
|
23
|
+
default: false
|
|
24
|
+
}
|
|
25
|
+
]);
|
|
26
|
+
if (!shouldRelink) {
|
|
27
|
+
await analytics.trackEvent(ctx, cloudApiService, 'didNotLinkProject', {
|
|
28
|
+
currentProjectName: existingConfig.project?.name
|
|
29
|
+
});
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
async function getProjectsList(ctx, cloudApiService, existingConfig) {
|
|
36
|
+
const spinner = ctx.logger.spinner('Fetching your projects...\n').start();
|
|
37
|
+
try {
|
|
38
|
+
const { data: { data: projectList } } = await cloudApiService.listLinkProjects();
|
|
39
|
+
spinner.succeed();
|
|
40
|
+
if (!Array.isArray(projectList)) {
|
|
41
|
+
ctx.logger.log("We couldn't find any projects available for linking in Strapi Cloud.");
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
const projects = projectList.filter((project)=>!(project.isMaintainer || project.name === existingConfig?.project?.name)).map((project)=>{
|
|
45
|
+
return {
|
|
46
|
+
name: project.displayName,
|
|
47
|
+
value: {
|
|
48
|
+
name: project.name,
|
|
49
|
+
displayName: project.displayName
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
});
|
|
53
|
+
if (projects.length === 0) {
|
|
54
|
+
ctx.logger.log("We couldn't find any projects available for linking in Strapi Cloud.");
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
return projects;
|
|
58
|
+
} catch (e) {
|
|
59
|
+
spinner.fail('An error occurred while fetching your projects from Strapi Cloud.');
|
|
60
|
+
ctx.logger.debug('Failed to list projects', e);
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
async function getUserSelection(ctx, projects) {
|
|
65
|
+
const { logger } = ctx;
|
|
66
|
+
try {
|
|
67
|
+
const answer = await inquirer.prompt([
|
|
68
|
+
{
|
|
69
|
+
type: 'list',
|
|
70
|
+
name: 'linkProject',
|
|
71
|
+
message: 'Which project do you want to link?',
|
|
72
|
+
choices: [
|
|
73
|
+
...projects,
|
|
74
|
+
{
|
|
75
|
+
name: chalk.grey(`(${QUIT_OPTION})`),
|
|
76
|
+
value: null
|
|
77
|
+
}
|
|
78
|
+
]
|
|
79
|
+
}
|
|
80
|
+
]);
|
|
81
|
+
if (!answer.linkProject) {
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
return answer;
|
|
85
|
+
} catch (e) {
|
|
86
|
+
logger.debug('Failed to get user input', e);
|
|
87
|
+
logger.error('An error occurred while trying to get your input.');
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
var action = (async (ctx)=>{
|
|
92
|
+
const { getValidToken } = await token.tokenServiceFactory(ctx);
|
|
93
|
+
const token$1 = await getValidToken(ctx, action$1.promptLogin);
|
|
94
|
+
const { logger } = ctx;
|
|
95
|
+
if (!token$1) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
const cloudApiService = await cliApi.cloudApiFactory(ctx, token$1);
|
|
99
|
+
const existingConfig = await getLocalConfig.getLocalConfig(ctx);
|
|
100
|
+
const shouldRelink = await promptForRelink(ctx, cloudApiService, existingConfig);
|
|
101
|
+
if (!shouldRelink) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
await analytics.trackEvent(ctx, cloudApiService, 'willLinkProject', {});
|
|
105
|
+
const projects = await getProjectsList(ctx, cloudApiService, existingConfig);
|
|
106
|
+
if (!projects) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
const answer = await getUserSelection(ctx, projects);
|
|
110
|
+
if (!answer) {
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
try {
|
|
114
|
+
const { confirmAction } = await inquirer.prompt([
|
|
115
|
+
{
|
|
116
|
+
type: 'confirm',
|
|
117
|
+
name: 'confirmAction',
|
|
118
|
+
message: 'Warning: Once linked, deploying from CLI will replace the existing project and its data. Confirm to proceed:',
|
|
119
|
+
default: false
|
|
120
|
+
}
|
|
121
|
+
]);
|
|
122
|
+
if (!confirmAction) {
|
|
123
|
+
await analytics.trackEvent(ctx, cloudApiService, 'didNotLinkProject', {
|
|
124
|
+
cancelledProjectName: answer.linkProject.name,
|
|
125
|
+
currentProjectName: existingConfig ? existingConfig.project?.name : null
|
|
126
|
+
});
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
await strapiInfoSave.save({
|
|
130
|
+
project: answer.linkProject
|
|
131
|
+
});
|
|
132
|
+
logger.log(` You have successfully linked your project to ${chalk.cyan(answer.linkProject.displayName)}. You are now able to deploy your project.`);
|
|
133
|
+
await analytics.trackEvent(ctx, cloudApiService, 'didLinkProject', {
|
|
134
|
+
projectInternalName: answer.linkProject
|
|
135
|
+
});
|
|
136
|
+
} catch (e) {
|
|
137
|
+
logger.debug('Failed to link project', e);
|
|
138
|
+
logger.error('An error occurred while linking the project.');
|
|
139
|
+
await analytics.trackEvent(ctx, cloudApiService, 'didNotLinkProject', {
|
|
140
|
+
projectInternalName: answer.linkProject
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
module.exports = action;
|
|
146
|
+
//# sourceMappingURL=action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action.js","sources":["../../src/link/action.ts"],"sourcesContent":["import inquirer from 'inquirer';\nimport chalk from 'chalk';\n\nimport type { Answers } from 'inquirer';\nimport type { CLIContext } from '../types';\nimport type { CloudApiService } from '../services/cli-api';\n\nimport { LocalSave } from '../services/strapi-info-save';\nimport { cloudApiFactory, tokenServiceFactory, local } from '../services';\nimport { promptLogin } from '../login/action';\nimport { trackEvent } from '../utils/analytics';\nimport { getLocalConfig } from '../utils/get-local-config';\n\nconst QUIT_OPTION = 'Quit';\n\ninterface LinkProjectValue {\n name: string;\n displayName: string;\n}\n\ninterface LinkProjectAnswer extends Answers {\n linkProject: LinkProjectValue;\n}\n\ninterface LinkProjectInput extends Answers {\n linkProject: LinkProjectValue | string;\n}\n\ntype ProjectsList = {\n name: string;\n value: {\n name: string;\n displayName: string;\n };\n}[];\n\ntype Project = {\n name: string;\n displayName: string;\n isMaintainer: boolean;\n};\n\nasync function promptForRelink(\n ctx: CLIContext,\n cloudApiService: CloudApiService,\n existingConfig: LocalSave | null\n) {\n if (existingConfig && existingConfig.project) {\n const { shouldRelink } = await inquirer.prompt([\n {\n type: 'confirm',\n name: 'shouldRelink',\n message: `A project named ${chalk.cyan(\n existingConfig.project.displayName\n ? existingConfig.project.displayName\n : existingConfig.project.name\n )} is already linked to this local folder. Do you want to update the link?`,\n default: false,\n },\n ]);\n\n if (!shouldRelink) {\n await trackEvent(ctx, cloudApiService, 'didNotLinkProject', {\n currentProjectName: existingConfig.project?.name,\n });\n return false;\n }\n }\n\n return true;\n}\n\nasync function getProjectsList(\n ctx: CLIContext,\n cloudApiService: CloudApiService,\n existingConfig: LocalSave | null\n) {\n const spinner = ctx.logger.spinner('Fetching your projects...\\n').start();\n\n try {\n const {\n data: { data: projectList },\n } = await cloudApiService.listLinkProjects();\n spinner.succeed();\n\n if (!Array.isArray(projectList)) {\n ctx.logger.log(\"We couldn't find any projects available for linking in Strapi Cloud.\");\n return null;\n }\n const projects: ProjectsList = (projectList as unknown as Project[])\n .filter(\n (project: Project) =>\n !(project.isMaintainer || project.name === existingConfig?.project?.name)\n )\n .map((project: Project) => {\n return {\n name: project.displayName,\n value: { name: project.name, displayName: project.displayName },\n };\n });\n if (projects.length === 0) {\n ctx.logger.log(\"We couldn't find any projects available for linking in Strapi Cloud.\");\n return null;\n }\n return projects;\n } catch (e) {\n spinner.fail('An error occurred while fetching your projects from Strapi Cloud.');\n ctx.logger.debug('Failed to list projects', e);\n return null;\n }\n}\n\nasync function getUserSelection(\n ctx: CLIContext,\n projects: ProjectsList\n): Promise<LinkProjectAnswer | null> {\n const { logger } = ctx;\n try {\n const answer: LinkProjectInput = await inquirer.prompt([\n {\n type: 'list',\n name: 'linkProject',\n message: 'Which project do you want to link?',\n choices: [...projects, { name: chalk.grey(`(${QUIT_OPTION})`), value: null }],\n },\n ]);\n\n if (!answer.linkProject) {\n return null;\n }\n\n return answer as LinkProjectAnswer;\n } catch (e) {\n logger.debug('Failed to get user input', e);\n logger.error('An error occurred while trying to get your input.');\n return null;\n }\n}\n\nexport default async (ctx: CLIContext) => {\n const { getValidToken } = await tokenServiceFactory(ctx);\n const token = await getValidToken(ctx, promptLogin);\n const { logger } = ctx;\n\n if (!token) {\n return;\n }\n\n const cloudApiService = await cloudApiFactory(ctx, token);\n\n const existingConfig: LocalSave | null = await getLocalConfig(ctx);\n const shouldRelink = await promptForRelink(ctx, cloudApiService, existingConfig);\n\n if (!shouldRelink) {\n return;\n }\n await trackEvent(ctx, cloudApiService, 'willLinkProject', {});\n\n const projects: ProjectsList | null | undefined = await getProjectsList(\n ctx,\n cloudApiService,\n existingConfig\n );\n\n if (!projects) {\n return;\n }\n\n const answer: LinkProjectAnswer | null = await getUserSelection(ctx, projects);\n\n if (!answer) {\n return;\n }\n\n try {\n const { confirmAction } = await inquirer.prompt([\n {\n type: 'confirm',\n name: 'confirmAction',\n message:\n 'Warning: Once linked, deploying from CLI will replace the existing project and its data. Confirm to proceed:',\n default: false,\n },\n ]);\n\n if (!confirmAction) {\n await trackEvent(ctx, cloudApiService, 'didNotLinkProject', {\n cancelledProjectName: answer.linkProject.name,\n currentProjectName: existingConfig ? existingConfig.project?.name : null,\n });\n return;\n }\n\n await local.save({ project: answer.linkProject });\n logger.log(\n ` You have successfully linked your project to ${chalk.cyan(answer.linkProject.displayName)}. You are now able to deploy your project.`\n );\n await trackEvent(ctx, cloudApiService, 'didLinkProject', {\n projectInternalName: answer.linkProject,\n });\n } catch (e) {\n logger.debug('Failed to link project', e);\n logger.error('An error occurred while linking the project.');\n await trackEvent(ctx, cloudApiService, 'didNotLinkProject', {\n projectInternalName: answer.linkProject,\n });\n }\n};\n"],"names":["QUIT_OPTION","promptForRelink","ctx","cloudApiService","existingConfig","project","shouldRelink","inquirer","prompt","type","name","message","chalk","cyan","displayName","default","trackEvent","currentProjectName","getProjectsList","spinner","logger","start","data","projectList","listLinkProjects","succeed","Array","isArray","log","projects","filter","isMaintainer","map","value","length","e","fail","debug","getUserSelection","answer","choices","grey","linkProject","error","getValidToken","tokenServiceFactory","token","promptLogin","cloudApiFactory","getLocalConfig","confirmAction","cancelledProjectName","local","projectInternalName"],"mappings":"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"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import inquirer from 'inquirer';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { cloudApiFactory } from '../services/cli-api.mjs';
|
|
4
|
+
import { save } from '../services/strapi-info-save.mjs';
|
|
5
|
+
import { tokenServiceFactory } from '../services/token.mjs';
|
|
6
|
+
import 'fast-safe-stringify';
|
|
7
|
+
import 'ora';
|
|
8
|
+
import 'cli-progress';
|
|
9
|
+
import { promptLogin } from '../login/action.mjs';
|
|
10
|
+
import { trackEvent } from '../utils/analytics.mjs';
|
|
11
|
+
import { getLocalConfig } from '../utils/get-local-config.mjs';
|
|
12
|
+
|
|
13
|
+
const QUIT_OPTION = 'Quit';
|
|
14
|
+
async function promptForRelink(ctx, cloudApiService, existingConfig) {
|
|
15
|
+
if (existingConfig && existingConfig.project) {
|
|
16
|
+
const { shouldRelink } = await inquirer.prompt([
|
|
17
|
+
{
|
|
18
|
+
type: 'confirm',
|
|
19
|
+
name: 'shouldRelink',
|
|
20
|
+
message: `A project named ${chalk.cyan(existingConfig.project.displayName ? existingConfig.project.displayName : existingConfig.project.name)} is already linked to this local folder. Do you want to update the link?`,
|
|
21
|
+
default: false
|
|
22
|
+
}
|
|
23
|
+
]);
|
|
24
|
+
if (!shouldRelink) {
|
|
25
|
+
await trackEvent(ctx, cloudApiService, 'didNotLinkProject', {
|
|
26
|
+
currentProjectName: existingConfig.project?.name
|
|
27
|
+
});
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
async function getProjectsList(ctx, cloudApiService, existingConfig) {
|
|
34
|
+
const spinner = ctx.logger.spinner('Fetching your projects...\n').start();
|
|
35
|
+
try {
|
|
36
|
+
const { data: { data: projectList } } = await cloudApiService.listLinkProjects();
|
|
37
|
+
spinner.succeed();
|
|
38
|
+
if (!Array.isArray(projectList)) {
|
|
39
|
+
ctx.logger.log("We couldn't find any projects available for linking in Strapi Cloud.");
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
const projects = projectList.filter((project)=>!(project.isMaintainer || project.name === existingConfig?.project?.name)).map((project)=>{
|
|
43
|
+
return {
|
|
44
|
+
name: project.displayName,
|
|
45
|
+
value: {
|
|
46
|
+
name: project.name,
|
|
47
|
+
displayName: project.displayName
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
});
|
|
51
|
+
if (projects.length === 0) {
|
|
52
|
+
ctx.logger.log("We couldn't find any projects available for linking in Strapi Cloud.");
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
return projects;
|
|
56
|
+
} catch (e) {
|
|
57
|
+
spinner.fail('An error occurred while fetching your projects from Strapi Cloud.');
|
|
58
|
+
ctx.logger.debug('Failed to list projects', e);
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
async function getUserSelection(ctx, projects) {
|
|
63
|
+
const { logger } = ctx;
|
|
64
|
+
try {
|
|
65
|
+
const answer = await inquirer.prompt([
|
|
66
|
+
{
|
|
67
|
+
type: 'list',
|
|
68
|
+
name: 'linkProject',
|
|
69
|
+
message: 'Which project do you want to link?',
|
|
70
|
+
choices: [
|
|
71
|
+
...projects,
|
|
72
|
+
{
|
|
73
|
+
name: chalk.grey(`(${QUIT_OPTION})`),
|
|
74
|
+
value: null
|
|
75
|
+
}
|
|
76
|
+
]
|
|
77
|
+
}
|
|
78
|
+
]);
|
|
79
|
+
if (!answer.linkProject) {
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
return answer;
|
|
83
|
+
} catch (e) {
|
|
84
|
+
logger.debug('Failed to get user input', e);
|
|
85
|
+
logger.error('An error occurred while trying to get your input.');
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
var action = (async (ctx)=>{
|
|
90
|
+
const { getValidToken } = await tokenServiceFactory(ctx);
|
|
91
|
+
const token = await getValidToken(ctx, promptLogin);
|
|
92
|
+
const { logger } = ctx;
|
|
93
|
+
if (!token) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
const cloudApiService = await cloudApiFactory(ctx, token);
|
|
97
|
+
const existingConfig = await getLocalConfig(ctx);
|
|
98
|
+
const shouldRelink = await promptForRelink(ctx, cloudApiService, existingConfig);
|
|
99
|
+
if (!shouldRelink) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
await trackEvent(ctx, cloudApiService, 'willLinkProject', {});
|
|
103
|
+
const projects = await getProjectsList(ctx, cloudApiService, existingConfig);
|
|
104
|
+
if (!projects) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
const answer = await getUserSelection(ctx, projects);
|
|
108
|
+
if (!answer) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
try {
|
|
112
|
+
const { confirmAction } = await inquirer.prompt([
|
|
113
|
+
{
|
|
114
|
+
type: 'confirm',
|
|
115
|
+
name: 'confirmAction',
|
|
116
|
+
message: 'Warning: Once linked, deploying from CLI will replace the existing project and its data. Confirm to proceed:',
|
|
117
|
+
default: false
|
|
118
|
+
}
|
|
119
|
+
]);
|
|
120
|
+
if (!confirmAction) {
|
|
121
|
+
await trackEvent(ctx, cloudApiService, 'didNotLinkProject', {
|
|
122
|
+
cancelledProjectName: answer.linkProject.name,
|
|
123
|
+
currentProjectName: existingConfig ? existingConfig.project?.name : null
|
|
124
|
+
});
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
await save({
|
|
128
|
+
project: answer.linkProject
|
|
129
|
+
});
|
|
130
|
+
logger.log(` You have successfully linked your project to ${chalk.cyan(answer.linkProject.displayName)}. You are now able to deploy your project.`);
|
|
131
|
+
await trackEvent(ctx, cloudApiService, 'didLinkProject', {
|
|
132
|
+
projectInternalName: answer.linkProject
|
|
133
|
+
});
|
|
134
|
+
} catch (e) {
|
|
135
|
+
logger.debug('Failed to link project', e);
|
|
136
|
+
logger.error('An error occurred while linking the project.');
|
|
137
|
+
await trackEvent(ctx, cloudApiService, 'didNotLinkProject', {
|
|
138
|
+
projectInternalName: answer.linkProject
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
export { action as default };
|
|
144
|
+
//# sourceMappingURL=action.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action.mjs","sources":["../../src/link/action.ts"],"sourcesContent":["import inquirer from 'inquirer';\nimport chalk from 'chalk';\n\nimport type { Answers } from 'inquirer';\nimport type { CLIContext } from '../types';\nimport type { CloudApiService } from '../services/cli-api';\n\nimport { LocalSave } from '../services/strapi-info-save';\nimport { cloudApiFactory, tokenServiceFactory, local } from '../services';\nimport { promptLogin } from '../login/action';\nimport { trackEvent } from '../utils/analytics';\nimport { getLocalConfig } from '../utils/get-local-config';\n\nconst QUIT_OPTION = 'Quit';\n\ninterface LinkProjectValue {\n name: string;\n displayName: string;\n}\n\ninterface LinkProjectAnswer extends Answers {\n linkProject: LinkProjectValue;\n}\n\ninterface LinkProjectInput extends Answers {\n linkProject: LinkProjectValue | string;\n}\n\ntype ProjectsList = {\n name: string;\n value: {\n name: string;\n displayName: string;\n };\n}[];\n\ntype Project = {\n name: string;\n displayName: string;\n isMaintainer: boolean;\n};\n\nasync function promptForRelink(\n ctx: CLIContext,\n cloudApiService: CloudApiService,\n existingConfig: LocalSave | null\n) {\n if (existingConfig && existingConfig.project) {\n const { shouldRelink } = await inquirer.prompt([\n {\n type: 'confirm',\n name: 'shouldRelink',\n message: `A project named ${chalk.cyan(\n existingConfig.project.displayName\n ? existingConfig.project.displayName\n : existingConfig.project.name\n )} is already linked to this local folder. Do you want to update the link?`,\n default: false,\n },\n ]);\n\n if (!shouldRelink) {\n await trackEvent(ctx, cloudApiService, 'didNotLinkProject', {\n currentProjectName: existingConfig.project?.name,\n });\n return false;\n }\n }\n\n return true;\n}\n\nasync function getProjectsList(\n ctx: CLIContext,\n cloudApiService: CloudApiService,\n existingConfig: LocalSave | null\n) {\n const spinner = ctx.logger.spinner('Fetching your projects...\\n').start();\n\n try {\n const {\n data: { data: projectList },\n } = await cloudApiService.listLinkProjects();\n spinner.succeed();\n\n if (!Array.isArray(projectList)) {\n ctx.logger.log(\"We couldn't find any projects available for linking in Strapi Cloud.\");\n return null;\n }\n const projects: ProjectsList = (projectList as unknown as Project[])\n .filter(\n (project: Project) =>\n !(project.isMaintainer || project.name === existingConfig?.project?.name)\n )\n .map((project: Project) => {\n return {\n name: project.displayName,\n value: { name: project.name, displayName: project.displayName },\n };\n });\n if (projects.length === 0) {\n ctx.logger.log(\"We couldn't find any projects available for linking in Strapi Cloud.\");\n return null;\n }\n return projects;\n } catch (e) {\n spinner.fail('An error occurred while fetching your projects from Strapi Cloud.');\n ctx.logger.debug('Failed to list projects', e);\n return null;\n }\n}\n\nasync function getUserSelection(\n ctx: CLIContext,\n projects: ProjectsList\n): Promise<LinkProjectAnswer | null> {\n const { logger } = ctx;\n try {\n const answer: LinkProjectInput = await inquirer.prompt([\n {\n type: 'list',\n name: 'linkProject',\n message: 'Which project do you want to link?',\n choices: [...projects, { name: chalk.grey(`(${QUIT_OPTION})`), value: null }],\n },\n ]);\n\n if (!answer.linkProject) {\n return null;\n }\n\n return answer as LinkProjectAnswer;\n } catch (e) {\n logger.debug('Failed to get user input', e);\n logger.error('An error occurred while trying to get your input.');\n return null;\n }\n}\n\nexport default async (ctx: CLIContext) => {\n const { getValidToken } = await tokenServiceFactory(ctx);\n const token = await getValidToken(ctx, promptLogin);\n const { logger } = ctx;\n\n if (!token) {\n return;\n }\n\n const cloudApiService = await cloudApiFactory(ctx, token);\n\n const existingConfig: LocalSave | null = await getLocalConfig(ctx);\n const shouldRelink = await promptForRelink(ctx, cloudApiService, existingConfig);\n\n if (!shouldRelink) {\n return;\n }\n await trackEvent(ctx, cloudApiService, 'willLinkProject', {});\n\n const projects: ProjectsList | null | undefined = await getProjectsList(\n ctx,\n cloudApiService,\n existingConfig\n );\n\n if (!projects) {\n return;\n }\n\n const answer: LinkProjectAnswer | null = await getUserSelection(ctx, projects);\n\n if (!answer) {\n return;\n }\n\n try {\n const { confirmAction } = await inquirer.prompt([\n {\n type: 'confirm',\n name: 'confirmAction',\n message:\n 'Warning: Once linked, deploying from CLI will replace the existing project and its data. Confirm to proceed:',\n default: false,\n },\n ]);\n\n if (!confirmAction) {\n await trackEvent(ctx, cloudApiService, 'didNotLinkProject', {\n cancelledProjectName: answer.linkProject.name,\n currentProjectName: existingConfig ? existingConfig.project?.name : null,\n });\n return;\n }\n\n await local.save({ project: answer.linkProject });\n logger.log(\n ` You have successfully linked your project to ${chalk.cyan(answer.linkProject.displayName)}. You are now able to deploy your project.`\n );\n await trackEvent(ctx, cloudApiService, 'didLinkProject', {\n projectInternalName: answer.linkProject,\n });\n } catch (e) {\n logger.debug('Failed to link project', e);\n logger.error('An error occurred while linking the project.');\n await trackEvent(ctx, cloudApiService, 'didNotLinkProject', {\n projectInternalName: answer.linkProject,\n });\n }\n};\n"],"names":["QUIT_OPTION","promptForRelink","ctx","cloudApiService","existingConfig","project","shouldRelink","inquirer","prompt","type","name","message","chalk","cyan","displayName","default","trackEvent","currentProjectName","getProjectsList","spinner","logger","start","data","projectList","listLinkProjects","succeed","Array","isArray","log","projects","filter","isMaintainer","map","value","length","e","fail","debug","getUserSelection","answer","choices","grey","linkProject","error","getValidToken","tokenServiceFactory","token","promptLogin","cloudApiFactory","getLocalConfig","confirmAction","cancelledProjectName","local","projectInternalName"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/link/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAInD;;GAEG;AACH,QAAA,MAAM,OAAO,EAAE,kBAQd,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var helpers = require('../utils/helpers.js');
|
|
4
|
+
var action = require('./action.js');
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* `$ link local directory to project of the cloud`
|
|
8
|
+
*/ const command = ({ command, ctx })=>{
|
|
9
|
+
command.command('cloud:link').alias('link').description('Link a local directory to a Strapi Cloud project').option('-d, --debug', 'Enable debugging mode with verbose logs').option('-s, --silent', "Don't log anything").action(()=>helpers.runAction('link', action)(ctx));
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
module.exports = command;
|
|
13
|
+
//# sourceMappingURL=command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.js","sources":["../../src/link/command.ts"],"sourcesContent":["import { type StrapiCloudCommand } from '../types';\nimport { runAction } from '../utils/helpers';\nimport action from './action';\n\n/**\n * `$ link local directory to project of the cloud`\n */\nconst command: StrapiCloudCommand = ({ command, ctx }) => {\n command\n .command('cloud:link')\n .alias('link')\n .description('Link a local directory to a Strapi Cloud project')\n .option('-d, --debug', 'Enable debugging mode with verbose logs')\n .option('-s, --silent', \"Don't log anything\")\n .action(() => runAction('link', action)(ctx));\n};\n\nexport default command;\n"],"names":["command","ctx","alias","description","option","action","runAction"],"mappings":";;;;;AAIA;;AAEC,UACKA,OAA8B,GAAA,CAAC,EAAEA,OAAO,EAAEC,GAAG,EAAE,GAAA;IACnDD,OACGA,CAAAA,OAAO,CAAC,YACRE,CAAAA,CAAAA,KAAK,CAAC,MACNC,CAAAA,CAAAA,WAAW,CAAC,kDAAA,CAAA,CACZC,MAAM,CAAC,eAAe,yCACtBA,CAAAA,CAAAA,MAAM,CAAC,cAAgB,EAAA,oBAAA,CAAA,CACvBC,MAAM,CAAC,IAAMC,iBAAU,CAAA,MAAA,EAAQD,MAAQJ,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA;AAC5C;;;;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { runAction } from '../utils/helpers.mjs';
|
|
2
|
+
import action from './action.mjs';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* `$ link local directory to project of the cloud`
|
|
6
|
+
*/ const command = ({ command, ctx })=>{
|
|
7
|
+
command.command('cloud:link').alias('link').description('Link a local directory to a Strapi Cloud project').option('-d, --debug', 'Enable debugging mode with verbose logs').option('-s, --silent', "Don't log anything").action(()=>runAction('link', action)(ctx));
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export { command as default };
|
|
11
|
+
//# sourceMappingURL=command.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.mjs","sources":["../../src/link/command.ts"],"sourcesContent":["import { type StrapiCloudCommand } from '../types';\nimport { runAction } from '../utils/helpers';\nimport action from './action';\n\n/**\n * `$ link local directory to project of the cloud`\n */\nconst command: StrapiCloudCommand = ({ command, ctx }) => {\n command\n .command('cloud:link')\n .alias('link')\n .description('Link a local directory to a Strapi Cloud project')\n .option('-d, --debug', 'Enable debugging mode with verbose logs')\n .option('-s, --silent', \"Don't log anything\")\n .action(() => runAction('link', action)(ctx));\n};\n\nexport default command;\n"],"names":["command","ctx","alias","description","option","action","runAction"],"mappings":";;;AAIA;;AAEC,UACKA,OAA8B,GAAA,CAAC,EAAEA,OAAO,EAAEC,GAAG,EAAE,GAAA;IACnDD,OACGA,CAAAA,OAAO,CAAC,YACRE,CAAAA,CAAAA,KAAK,CAAC,MACNC,CAAAA,CAAAA,WAAW,CAAC,kDAAA,CAAA,CACZC,MAAM,CAAC,eAAe,yCACtBA,CAAAA,CAAAA,MAAM,CAAC,cAAgB,EAAA,oBAAA,CAAA,CACvBC,MAAM,CAAC,IAAMC,SAAU,CAAA,MAAA,EAAQD,MAAQJ,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA;AAC5C;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/link/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAEvD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;;AAE3B,wBAK4B"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var action = require('./action.js');
|
|
6
|
+
var command = require('./command.js');
|
|
7
|
+
|
|
8
|
+
var link = {
|
|
9
|
+
name: 'link-project',
|
|
10
|
+
description: 'Link a local directory to a Strapi Cloud project',
|
|
11
|
+
action,
|
|
12
|
+
command
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
exports.action = action;
|
|
16
|
+
exports.command = command;
|
|
17
|
+
exports.default = link;
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/link/index.ts"],"sourcesContent":["import action from './action';\nimport command from './command';\nimport type { StrapiCloudCommandInfo } from '../types';\n\nexport { action, command };\n\nexport default {\n name: 'link-project',\n description: 'Link a local directory to a Strapi Cloud project',\n action,\n command,\n} as StrapiCloudCommandInfo;\n"],"names":["name","description","action","command"],"mappings":";;;;;;;AAMA,WAAe;IACbA,IAAM,EAAA,cAAA;IACNC,WAAa,EAAA,kDAAA;AACbC,IAAAA,MAAAA;AACAC,IAAAA;AACF,CAA4B;;;;;;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import action from './action.mjs';
|
|
2
|
+
import command from './command.mjs';
|
|
3
|
+
|
|
4
|
+
var link = {
|
|
5
|
+
name: 'link-project',
|
|
6
|
+
description: 'Link a local directory to a Strapi Cloud project',
|
|
7
|
+
action,
|
|
8
|
+
command
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export { action, command, link as default };
|
|
12
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/link/index.ts"],"sourcesContent":["import action from './action';\nimport command from './command';\nimport type { StrapiCloudCommandInfo } from '../types';\n\nexport { action, command };\n\nexport default {\n name: 'link-project',\n description: 'Link a local directory to a Strapi Cloud project',\n action,\n command,\n} as StrapiCloudCommandInfo;\n"],"names":["name","description","action","command"],"mappings":";;;AAMA,WAAe;IACbA,IAAM,EAAA,cAAA;IACNC,WAAa,EAAA,kDAAA;AACbC,IAAAA,MAAAA;AACAC,IAAAA;AACF,CAA4B;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../src/list-projects/action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;8BAIhB,UAAU;AAArC,wBAsBE"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var cliApi = require('../services/cli-api.js');
|
|
4
|
+
require('fs-extra');
|
|
5
|
+
require('path');
|
|
6
|
+
require('lodash');
|
|
7
|
+
var token = require('../services/token.js');
|
|
8
|
+
require('chalk');
|
|
9
|
+
require('fast-safe-stringify');
|
|
10
|
+
require('ora');
|
|
11
|
+
require('cli-progress');
|
|
12
|
+
var action$1 = require('../login/action.js');
|
|
13
|
+
|
|
14
|
+
var action = (async (ctx)=>{
|
|
15
|
+
const { getValidToken } = await token.tokenServiceFactory(ctx);
|
|
16
|
+
const token$1 = await getValidToken(ctx, action$1.promptLogin);
|
|
17
|
+
const { logger } = ctx;
|
|
18
|
+
if (!token$1) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const cloudApiService = await cliApi.cloudApiFactory(ctx, token$1);
|
|
22
|
+
const spinner = logger.spinner('Fetching your projects...').start();
|
|
23
|
+
try {
|
|
24
|
+
const { data: { data: projectList } } = await cloudApiService.listProjects();
|
|
25
|
+
spinner.succeed();
|
|
26
|
+
logger.log(projectList);
|
|
27
|
+
} catch (e) {
|
|
28
|
+
ctx.logger.debug('Failed to list projects', e);
|
|
29
|
+
spinner.fail('An error occurred while fetching your projects from Strapi Cloud.');
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
module.exports = action;
|
|
34
|
+
//# sourceMappingURL=action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action.js","sources":["../../src/list-projects/action.ts"],"sourcesContent":["import type { CLIContext } from '../types';\nimport { cloudApiFactory, tokenServiceFactory } from '../services';\nimport { promptLogin } from '../login/action';\n\nexport default async (ctx: CLIContext) => {\n const { getValidToken } = await tokenServiceFactory(ctx);\n const token = await getValidToken(ctx, promptLogin);\n const { logger } = ctx;\n\n if (!token) {\n return;\n }\n\n const cloudApiService = await cloudApiFactory(ctx, token);\n const spinner = logger.spinner('Fetching your projects...').start();\n\n try {\n const {\n data: { data: projectList },\n } = await cloudApiService.listProjects();\n spinner.succeed();\n logger.log(projectList);\n } catch (e) {\n ctx.logger.debug('Failed to list projects', e);\n spinner.fail('An error occurred while fetching your projects from Strapi Cloud.');\n }\n};\n"],"names":["ctx","getValidToken","tokenServiceFactory","token","promptLogin","logger","cloudApiService","cloudApiFactory","spinner","start","data","projectList","listProjects","succeed","log","e","debug","fail"],"mappings":";;;;;;;;;;;;;AAIA,aAAe,CAAA,OAAOA,GAAAA,GAAAA;AACpB,IAAA,MAAM,EAAEC,aAAa,EAAE,GAAG,MAAMC,yBAAoBF,CAAAA,GAAAA,CAAAA;IACpD,MAAMG,OAAAA,GAAQ,MAAMF,aAAAA,CAAcD,GAAKI,EAAAA,oBAAAA,CAAAA;IACvC,MAAM,EAAEC,MAAM,EAAE,GAAGL,GAAAA;AAEnB,IAAA,IAAI,CAACG,OAAO,EAAA;AACV,QAAA;AACF;IAEA,MAAMG,eAAAA,GAAkB,MAAMC,sBAAAA,CAAgBP,GAAKG,EAAAA,OAAAA,CAAAA;AACnD,IAAA,MAAMK,OAAUH,GAAAA,MAAAA,CAAOG,OAAO,CAAC,6BAA6BC,KAAK,EAAA;IAEjE,IAAI;QACF,MAAM,EACJC,IAAM,EAAA,EAAEA,IAAMC,EAAAA,WAAW,EAAE,EAC5B,GAAG,MAAML,eAAAA,CAAgBM,YAAY,EAAA;AACtCJ,QAAAA,OAAAA,CAAQK,OAAO,EAAA;AACfR,QAAAA,MAAAA,CAAOS,GAAG,CAACH,WAAAA,CAAAA;AACb,KAAA,CAAE,OAAOI,CAAG,EAAA;AACVf,QAAAA,GAAAA,CAAIK,MAAM,CAACW,KAAK,CAAC,yBAA2BD,EAAAA,CAAAA,CAAAA;AAC5CP,QAAAA,OAAAA,CAAQS,IAAI,CAAC,mEAAA,CAAA;AACf;AACF,CAAA;;;;"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { cloudApiFactory } from '../services/cli-api.mjs';
|
|
2
|
+
import 'fs-extra';
|
|
3
|
+
import 'path';
|
|
4
|
+
import 'lodash';
|
|
5
|
+
import { tokenServiceFactory } from '../services/token.mjs';
|
|
6
|
+
import 'chalk';
|
|
7
|
+
import 'fast-safe-stringify';
|
|
8
|
+
import 'ora';
|
|
9
|
+
import 'cli-progress';
|
|
10
|
+
import { promptLogin } from '../login/action.mjs';
|
|
11
|
+
|
|
12
|
+
var action = (async (ctx)=>{
|
|
13
|
+
const { getValidToken } = await tokenServiceFactory(ctx);
|
|
14
|
+
const token = await getValidToken(ctx, promptLogin);
|
|
15
|
+
const { logger } = ctx;
|
|
16
|
+
if (!token) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
const cloudApiService = await cloudApiFactory(ctx, token);
|
|
20
|
+
const spinner = logger.spinner('Fetching your projects...').start();
|
|
21
|
+
try {
|
|
22
|
+
const { data: { data: projectList } } = await cloudApiService.listProjects();
|
|
23
|
+
spinner.succeed();
|
|
24
|
+
logger.log(projectList);
|
|
25
|
+
} catch (e) {
|
|
26
|
+
ctx.logger.debug('Failed to list projects', e);
|
|
27
|
+
spinner.fail('An error occurred while fetching your projects from Strapi Cloud.');
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
export { action as default };
|
|
32
|
+
//# sourceMappingURL=action.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action.mjs","sources":["../../src/list-projects/action.ts"],"sourcesContent":["import type { CLIContext } from '../types';\nimport { cloudApiFactory, tokenServiceFactory } from '../services';\nimport { promptLogin } from '../login/action';\n\nexport default async (ctx: CLIContext) => {\n const { getValidToken } = await tokenServiceFactory(ctx);\n const token = await getValidToken(ctx, promptLogin);\n const { logger } = ctx;\n\n if (!token) {\n return;\n }\n\n const cloudApiService = await cloudApiFactory(ctx, token);\n const spinner = logger.spinner('Fetching your projects...').start();\n\n try {\n const {\n data: { data: projectList },\n } = await cloudApiService.listProjects();\n spinner.succeed();\n logger.log(projectList);\n } catch (e) {\n ctx.logger.debug('Failed to list projects', e);\n spinner.fail('An error occurred while fetching your projects from Strapi Cloud.');\n }\n};\n"],"names":["ctx","getValidToken","tokenServiceFactory","token","promptLogin","logger","cloudApiService","cloudApiFactory","spinner","start","data","projectList","listProjects","succeed","log","e","debug","fail"],"mappings":";;;;;;;;;;;AAIA,aAAe,CAAA,OAAOA,GAAAA,GAAAA;AACpB,IAAA,MAAM,EAAEC,aAAa,EAAE,GAAG,MAAMC,mBAAoBF,CAAAA,GAAAA,CAAAA;IACpD,MAAMG,KAAAA,GAAQ,MAAMF,aAAAA,CAAcD,GAAKI,EAAAA,WAAAA,CAAAA;IACvC,MAAM,EAAEC,MAAM,EAAE,GAAGL,GAAAA;AAEnB,IAAA,IAAI,CAACG,KAAO,EAAA;AACV,QAAA;AACF;IAEA,MAAMG,eAAAA,GAAkB,MAAMC,eAAAA,CAAgBP,GAAKG,EAAAA,KAAAA,CAAAA;AACnD,IAAA,MAAMK,OAAUH,GAAAA,MAAAA,CAAOG,OAAO,CAAC,6BAA6BC,KAAK,EAAA;IAEjE,IAAI;QACF,MAAM,EACJC,IAAM,EAAA,EAAEA,IAAMC,EAAAA,WAAW,EAAE,EAC5B,GAAG,MAAML,eAAAA,CAAgBM,YAAY,EAAA;AACtCJ,QAAAA,OAAAA,CAAQK,OAAO,EAAA;AACfR,QAAAA,MAAAA,CAAOS,GAAG,CAACH,WAAAA,CAAAA;AACb,KAAA,CAAE,OAAOI,CAAG,EAAA;AACVf,QAAAA,GAAAA,CAAIK,MAAM,CAACW,KAAK,CAAC,yBAA2BD,EAAAA,CAAAA,CAAAA;AAC5CP,QAAAA,OAAAA,CAAQS,IAAI,CAAC,mEAAA,CAAA;AACf;AACF,CAAA;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/list-projects/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAInD;;GAEG;AACH,QAAA,MAAM,OAAO,EAAE,kBAQd,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var helpers = require('../utils/helpers.js');
|
|
4
|
+
var action = require('./action.js');
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* `$ list project from the cloud`
|
|
8
|
+
*/ const command = ({ command, ctx })=>{
|
|
9
|
+
command.command('cloud:projects').alias('projects').description('List Strapi Cloud projects').option('-d, --debug', 'Enable debugging mode with verbose logs').option('-s, --silent', "Don't log anything").action(()=>helpers.runAction('projects', action)(ctx));
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
module.exports = command;
|
|
13
|
+
//# sourceMappingURL=command.js.map
|