@serverless-devs/s 2.2.2 → 3.0.0-85afd68d
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/lib/daemon/lib.js +327 -0
- package/lib/daemon/report.js +50 -0
- package/lib/daemon/update-cli.js +20 -0
- package/lib/daemon/update-component.js +21 -0
- package/lib/daemon/update-templates.js +19 -0
- package/lib/index.js +1677 -246
- package/package.json +62 -48
- package/readme.md +2 -2
- package/lib/check-node-version/index.js +0 -15
- package/lib/clean/index.js +0 -166
- package/lib/cli/index.js +0 -223
- package/lib/component/index.js +0 -286
- package/lib/config/add/index.js +0 -190
- package/lib/config/common/common.js +0 -194
- package/lib/config/delete/index.js +0 -121
- package/lib/config/get/index.js +0 -130
- package/lib/config/index.js +0 -39
- package/lib/config/rename/index.js +0 -132
- package/lib/constant.js +0 -8
- package/lib/daemon/template.js +0 -20
- package/lib/daemon/update.js +0 -9
- package/lib/edit/index.js +0 -104
- package/lib/error/command-error.js +0 -29
- package/lib/error/config-delete-error.js +0 -29
- package/lib/error/config-error.js +0 -29
- package/lib/error/config-get-error.js +0 -29
- package/lib/error/human-error.js +0 -76
- package/lib/error/human-warning.js +0 -20
- package/lib/error/index.js +0 -147
- package/lib/error/init-error.js +0 -29
- package/lib/error/serverless-error.js +0 -19
- package/lib/execDaemon.js +0 -35
- package/lib/global-agent/index.js +0 -22
- package/lib/help/index.js +0 -158
- package/lib/init/index.js +0 -106
- package/lib/init/init-config.js +0 -606
- package/lib/init/init-manager.js +0 -223
- package/lib/onboarding/index.js +0 -111
- package/lib/set/analysis/index.js +0 -118
- package/lib/set/index.js +0 -40
- package/lib/set/locale/index.js +0 -118
- package/lib/set/log/index.js +0 -118
- package/lib/set/proxy/index.js +0 -123
- package/lib/set/registry/index.js +0 -146
- package/lib/set/workspace/index.js +0 -119
- package/lib/special-commad/index.js +0 -156
- package/lib/update-notifier/index.js +0 -137
- package/lib/utils/common.js +0 -347
- package/lib/utils/core.js +0 -49
- package/lib/utils/handler-set-config.js +0 -130
- package/lib/utils/i18n/en.js +0 -46
- package/lib/utils/i18n/index.js +0 -16
- package/lib/utils/i18n/zh.js +0 -46
- package/lib/utils/index.js +0 -39
- package/lib/utils/logger.js +0 -12
- package/lib/verify/index.js +0 -224
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@serverless-devs/s",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0-85afd68d",
|
|
4
4
|
"description": "Serverless devs tool, serverless developer tool, supports Alibaba cloud, AWS, azure, baidu cloud, Huawei cloud, Google cloud and Tencent cloud.",
|
|
5
5
|
"homepage": "https://www.serverless-devs.com",
|
|
6
6
|
"keywords": [
|
|
@@ -29,62 +29,76 @@
|
|
|
29
29
|
},
|
|
30
30
|
"scripts": {
|
|
31
31
|
"start": "npm run watch",
|
|
32
|
-
"
|
|
33
|
-
"watch": "
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"fix": "f2elint fix",
|
|
41
|
-
"typecheck": "npx tsc -p tsconfig.json --noEmit",
|
|
42
|
-
"update": "rm -rf yarn.lock && rm -rf package-lock.json && rm -rf node_modules && yarn",
|
|
32
|
+
"test": "jest --testTimeout 10000",
|
|
33
|
+
"test:watch": "jest --testTimeout 10000 --watchAll",
|
|
34
|
+
"format": "prettier --write src/ __tests__/**/*.test.ts",
|
|
35
|
+
"watch": "npm run build -- --watch",
|
|
36
|
+
"prebuild": "rm -rf node_modules && npm install --production false",
|
|
37
|
+
"build": "node ./scripts/build.js",
|
|
38
|
+
"pkg": "pkg . --out-path releases",
|
|
39
|
+
"prepublishOnly": "npm run build",
|
|
43
40
|
"beta": "npm publish --tag=beta",
|
|
44
|
-
"
|
|
41
|
+
"pub": "npm publish"
|
|
42
|
+
},
|
|
43
|
+
"pkg": {
|
|
44
|
+
"scripts": [
|
|
45
|
+
"./lib/daemon/**/*.js"
|
|
46
|
+
]
|
|
45
47
|
},
|
|
46
48
|
"main": "./lib/index.js",
|
|
47
49
|
"bin": {
|
|
48
50
|
"s": "bin/s"
|
|
49
51
|
},
|
|
52
|
+
"engines": {
|
|
53
|
+
"node": ">=14.14.0"
|
|
54
|
+
},
|
|
50
55
|
"devDependencies": {
|
|
51
|
-
"@serverless-devs/
|
|
52
|
-
"@serverless-devs/
|
|
53
|
-
"@
|
|
54
|
-
"@
|
|
55
|
-
"@
|
|
56
|
-
"@
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
"
|
|
56
|
+
"@serverless-devs/core": "^0.1.66",
|
|
57
|
+
"@serverless-devs/credential": "^0.0.3",
|
|
58
|
+
"@serverless-devs/engine": "^0.0.25",
|
|
59
|
+
"@serverless-devs/load-application": "^0.0.10",
|
|
60
|
+
"@serverless-devs/load-component": "^0.0.6",
|
|
61
|
+
"@serverless-devs/logger": "^0.0.4",
|
|
62
|
+
"@serverless-devs/parse-spec": "^0.0.21",
|
|
63
|
+
"@serverless-devs/registry": "^0.0.4",
|
|
64
|
+
"@serverless-devs/utils": "^0.0.14",
|
|
65
|
+
"@types/fs-extra": "^11.0.4",
|
|
66
|
+
"@types/inquirer": "^9.0.7",
|
|
67
|
+
"@types/jest": "^29.5.8",
|
|
68
|
+
"@types/js-yaml": "^4.0.9",
|
|
69
|
+
"@types/lodash": "^4.14.201",
|
|
70
|
+
"@types/node": "^20.9.1",
|
|
71
|
+
"@types/semver": "^7.5.5",
|
|
72
|
+
"ajv": "^8.12.0",
|
|
73
|
+
"axios": "^1.6.2",
|
|
74
|
+
"boxen": "^7.1.1",
|
|
75
|
+
"chalk": "^5.3.0",
|
|
76
|
+
"commander": "^11.1.0",
|
|
77
|
+
"dotenv": "^16.3.1",
|
|
78
|
+
"dotenv-expand": "^10.0.0",
|
|
79
|
+
"esbuild": "^0.19.5",
|
|
80
|
+
"fs-extra": "^11.1.1",
|
|
66
81
|
"global-agent": "^3.0.0",
|
|
67
|
-
"
|
|
68
|
-
"inquirer": "
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"latest-version": "^
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
"
|
|
78
|
-
"semver
|
|
79
|
-
"
|
|
80
|
-
"
|
|
81
|
-
"
|
|
82
|
+
"inquirer": "^9.2.12",
|
|
83
|
+
"inquirer-autocomplete-prompt": "^3.0.1",
|
|
84
|
+
"jest": "^29.7.0",
|
|
85
|
+
"js-yaml": "^4.1.0",
|
|
86
|
+
"latest-version": "^7.0.0",
|
|
87
|
+
"leven": "^4.0.0",
|
|
88
|
+
"lodash": "^4.17.21",
|
|
89
|
+
"pkg": "^5.8.1",
|
|
90
|
+
"prettier": "^3.1.0",
|
|
91
|
+
"prettyjson": "^1.2.5",
|
|
92
|
+
"rimraf": "^5.0.5",
|
|
93
|
+
"semver": "^7.5.4",
|
|
94
|
+
"semver-diff": "^4.0.0",
|
|
95
|
+
"table-layout": "^3.0.2",
|
|
96
|
+
"ts-jest": "^29.1.1",
|
|
97
|
+
"ts-node": "^10.9.1",
|
|
98
|
+
"typescript": "^5.2.2",
|
|
99
|
+
"strip-ansi": "^7.1.0"
|
|
82
100
|
},
|
|
83
101
|
"lint-staged": {
|
|
84
102
|
"**/*.{js,jsx,ts}": "f2elint exec eslint"
|
|
85
|
-
},
|
|
86
|
-
"dependencies": {
|
|
87
|
-
"@serverless-devs/core": "^0.1.65",
|
|
88
|
-
"@serverless-devs/ui": "latest"
|
|
89
103
|
}
|
|
90
|
-
}
|
|
104
|
+
}
|
package/readme.md
CHANGED
|
@@ -46,11 +46,11 @@ $ npm install @serverless-devs/s -g
|
|
|
46
46
|
```
|
|
47
47
|
❸ 在命令行中执行命令`s`,并按回车,开启你的 Serverless 之旅;
|
|
48
48
|
|
|
49
|
-
> 更多详细信息可以参考[Serverless Devs 安装文档](./docs/zh/
|
|
49
|
+
> 更多详细信息可以参考[Serverless Devs 安装文档](./docs/zh/quick_start.md)和[快速入门指南](./docs/zh/quick_start.md)
|
|
50
50
|
|
|
51
51
|
# 帮助文档
|
|
52
52
|
|
|
53
|
-
- [安装文档](./docs/zh/
|
|
53
|
+
- [安装文档](./docs/zh/quick_start.md)
|
|
54
54
|
- [命令行操作](./docs/zh/command/readme.md)
|
|
55
55
|
- [Yaml规范](./docs/zh/yaml.md)
|
|
56
56
|
- [配置继承/多环境](./docs/zh/extend.md)
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
var error_1 = require("../error");
|
|
4
|
-
function checkNodeVersion() {
|
|
5
|
-
var nodeVersion = Number(process.version.split('.')[0].slice(1));
|
|
6
|
-
if (nodeVersion < 12) {
|
|
7
|
-
new error_1.HumanError({
|
|
8
|
-
errorMessage: 'Node.js version must be greater than or equal to 12.0.0',
|
|
9
|
-
tips: "Your current Node.js version is ".concat(process.version, ", please upgrade your Node.js version at https://nodejs.org/en/."),
|
|
10
|
-
});
|
|
11
|
-
process.exit(1);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
exports.default = checkNodeVersion;
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2hlY2stbm9kZS12ZXJzaW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsa0NBQXNDO0FBRXRDLFNBQVMsZ0JBQWdCO0lBQ3ZCLElBQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRSxJQUFJLFdBQVcsR0FBRyxFQUFFLEVBQUU7UUFDcEIsSUFBSSxrQkFBVSxDQUFDO1lBQ2IsWUFBWSxFQUFFLHlEQUF5RDtZQUN2RSxJQUFJLEVBQUUsMENBQW1DLE9BQU8sQ0FBQyxPQUFPLHFFQUFrRTtTQUMzSCxDQUFDLENBQUM7UUFDSCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ2pCO0FBQ0gsQ0FBQztBQUVELGtCQUFlLGdCQUFnQixDQUFDIn0=
|
package/lib/clean/index.js
DELETED
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
-
};
|
|
41
|
-
var core_1 = __importDefault(require("../utils/core"));
|
|
42
|
-
var i18n_1 = __importDefault(require("../utils/i18n"));
|
|
43
|
-
var path_1 = __importDefault(require("path"));
|
|
44
|
-
var logger_1 = __importDefault(require("../utils/logger"));
|
|
45
|
-
var handler_set_config_1 = require("../utils/handler-set-config");
|
|
46
|
-
var common_1 = require("../utils/common");
|
|
47
|
-
var error_1 = require("../error");
|
|
48
|
-
var rimraf = core_1.default.rimraf, fs = core_1.default.fse, colors = core_1.default.colors, getRootHome = core_1.default.getRootHome;
|
|
49
|
-
var description = "Clean up the cache related functions of serverless devs. You can clean up the environment, unused dependent packages and related cache contents through this command.\n \n Example:\n $ s clean --component fc-api\n $ s clean --all\n\n Tips:\n Get all installed component: s component\n\n".concat((0, common_1.emoji)('📖'), " Document: ").concat(colors.underline('https://github.com/Serverless-Devs/Serverless-Devs/tree/master/docs/zh/command/clean.md'));
|
|
50
|
-
function run(program) {
|
|
51
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
52
|
-
var command, doAction;
|
|
53
|
-
var _this = this;
|
|
54
|
-
return __generator(this, function (_a) {
|
|
55
|
-
command = program
|
|
56
|
-
.command('clean')
|
|
57
|
-
.usage('[options]')
|
|
58
|
-
.option('--all', (0, i18n_1.default)('clean_up_the_environment'))
|
|
59
|
-
.option('--cache [dirName]', (0, i18n_1.default)('delete_the_file_under_the_cache'))
|
|
60
|
-
.option('--component [componentName]', (0, i18n_1.default)('remove_components'))
|
|
61
|
-
.helpOption('-h, --help', (0, i18n_1.default)('display_help_for_command'))
|
|
62
|
-
.description(description)
|
|
63
|
-
.addHelpCommand(false)
|
|
64
|
-
.action(function (options) { return __awaiter(_this, void 0, void 0, function () {
|
|
65
|
-
var error_2;
|
|
66
|
-
return __generator(this, function (_a) {
|
|
67
|
-
switch (_a.label) {
|
|
68
|
-
case 0:
|
|
69
|
-
_a.trys.push([0, 2, , 4]);
|
|
70
|
-
return [4 /*yield*/, doAction(options)];
|
|
71
|
-
case 1:
|
|
72
|
-
_a.sent();
|
|
73
|
-
return [3 /*break*/, 4];
|
|
74
|
-
case 2:
|
|
75
|
-
error_2 = _a.sent();
|
|
76
|
-
return [4 /*yield*/, (0, error_1.HandleError)(error_2)];
|
|
77
|
-
case 3:
|
|
78
|
-
_a.sent();
|
|
79
|
-
return [3 /*break*/, 4];
|
|
80
|
-
case 4: return [2 /*return*/];
|
|
81
|
-
}
|
|
82
|
-
});
|
|
83
|
-
}); });
|
|
84
|
-
doAction = function (args) { return __awaiter(_this, void 0, void 0, function () {
|
|
85
|
-
var sPath, cachePath, componentsPath, githubPath, devsappPath, files, spath, sdir, error_3, registry, filePath, filePath;
|
|
86
|
-
return __generator(this, function (_a) {
|
|
87
|
-
switch (_a.label) {
|
|
88
|
-
case 0:
|
|
89
|
-
sPath = getRootHome();
|
|
90
|
-
cachePath = path_1.default.join(sPath, 'cache');
|
|
91
|
-
componentsPath = path_1.default.join(sPath, 'components');
|
|
92
|
-
githubPath = path_1.default.join(componentsPath, 'github.com');
|
|
93
|
-
devsappPath = path_1.default.join(componentsPath, 'devsapp.cn');
|
|
94
|
-
if (!args.all) return [3 /*break*/, 5];
|
|
95
|
-
files = ['cache', 'components'];
|
|
96
|
-
files.forEach(function (file) {
|
|
97
|
-
rimraf.sync(path_1.default.join(sPath, file));
|
|
98
|
-
});
|
|
99
|
-
_a.label = 1;
|
|
100
|
-
case 1:
|
|
101
|
-
_a.trys.push([1, 3, , 4]);
|
|
102
|
-
return [4 /*yield*/, core_1.default.getTemplatePath()];
|
|
103
|
-
case 2:
|
|
104
|
-
spath = _a.sent();
|
|
105
|
-
sdir = path_1.default.join(path_1.default.dirname(spath), '.s');
|
|
106
|
-
rimraf.sync(sdir);
|
|
107
|
-
return [3 /*break*/, 4];
|
|
108
|
-
case 3:
|
|
109
|
-
error_3 = _a.sent();
|
|
110
|
-
return [3 /*break*/, 4];
|
|
111
|
-
case 4:
|
|
112
|
-
logger_1.default.log('The environment of Serverless Devs has been cleaned up successfully.', 'green');
|
|
113
|
-
return [2 /*return*/];
|
|
114
|
-
case 5:
|
|
115
|
-
if (args.cache) {
|
|
116
|
-
// cache 无参数
|
|
117
|
-
if (typeof args.cache === 'boolean') {
|
|
118
|
-
rimraf.sync(path_1.default.join(cachePath));
|
|
119
|
-
logger_1.default.log('Cache has been cleaned up successfully.', 'green');
|
|
120
|
-
}
|
|
121
|
-
// cache 有参数
|
|
122
|
-
if (typeof args.cache === 'string') {
|
|
123
|
-
rimraf.sync(path_1.default.join(cachePath, args.cache));
|
|
124
|
-
logger_1.default.log("Cache [".concat(args.cache, "] has been cleaned up successfully."), 'green');
|
|
125
|
-
}
|
|
126
|
-
return [2 /*return*/];
|
|
127
|
-
}
|
|
128
|
-
if (args.component) {
|
|
129
|
-
// component 无参数
|
|
130
|
-
if (typeof args.component === 'boolean') {
|
|
131
|
-
rimraf.sync(componentsPath);
|
|
132
|
-
logger_1.default.log('Component has been cleaned up successfully.', 'green');
|
|
133
|
-
}
|
|
134
|
-
// component 有参数
|
|
135
|
-
if (typeof args.component === 'string') {
|
|
136
|
-
registry = (0, handler_set_config_1.getConfig)('registry');
|
|
137
|
-
// s 源
|
|
138
|
-
if (registry === 'http://registry.devsapp.cn/simple') {
|
|
139
|
-
filePath = path_1.default.join(devsappPath, args.component);
|
|
140
|
-
if (fs.existsSync(filePath)) {
|
|
141
|
-
rimraf.sync(filePath);
|
|
142
|
-
logger_1.default.log("Component [".concat(args.component, "] has been cleaned up successfully."), 'green');
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
// git 源
|
|
146
|
-
if (registry === 'https://api.github.com/repos') {
|
|
147
|
-
filePath = path_1.default.join(githubPath, args.component);
|
|
148
|
-
if (fs.existsSync(filePath)) {
|
|
149
|
-
rimraf.sync(filePath);
|
|
150
|
-
logger_1.default.log("Component [".concat(args.component, "] has been cleaned up successfully."), 'green');
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
return [2 /*return*/];
|
|
155
|
-
}
|
|
156
|
-
command.help();
|
|
157
|
-
return [2 /*return*/];
|
|
158
|
-
}
|
|
159
|
-
});
|
|
160
|
-
}); };
|
|
161
|
-
return [2 /*return*/];
|
|
162
|
-
});
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
module.exports = run;
|
|
166
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xlYW4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVEQUFpQztBQUNqQyx1REFBaUM7QUFDakMsOENBQXdCO0FBQ3hCLDJEQUFxQztBQUNyQyxrRUFBd0Q7QUFDeEQsMENBQXdDO0FBQ3hDLGtDQUF1QztBQUUvQixJQUFBLE1BQU0sR0FBbUMsY0FBSSxPQUF2QyxFQUFPLEVBQUUsR0FBMEIsY0FBSSxJQUE5QixFQUFFLE1BQU0sR0FBa0IsY0FBSSxPQUF0QixFQUFFLFdBQVcsR0FBSyxjQUFJLFlBQVQsQ0FBVTtBQUV0RCxJQUFNLFdBQVcsR0FBRyxxVUFTbEIsSUFBQSxjQUFLLEVBQUMsSUFBSSxDQUFDLHdCQUFjLE1BQU0sQ0FBQyxTQUFTLENBQ3pDLHlGQUF5RixDQUMxRixDQUFFLENBQUM7QUFFSixTQUFlLEdBQUcsQ0FBQyxPQUFPOzs7OztZQUNsQixPQUFPLEdBQUcsT0FBTztpQkFDcEIsT0FBTyxDQUFDLE9BQU8sQ0FBQztpQkFDaEIsS0FBSyxDQUFDLFdBQVcsQ0FBQztpQkFDbEIsTUFBTSxDQUFDLE9BQU8sRUFBRSxJQUFBLGNBQUksRUFBQywwQkFBMEIsQ0FBQyxDQUFDO2lCQUNqRCxNQUFNLENBQUMsbUJBQW1CLEVBQUUsSUFBQSxjQUFJLEVBQUMsaUNBQWlDLENBQUMsQ0FBQztpQkFDcEUsTUFBTSxDQUFDLDZCQUE2QixFQUFFLElBQUEsY0FBSSxFQUFDLG1CQUFtQixDQUFDLENBQUM7aUJBQ2hFLFVBQVUsQ0FBQyxZQUFZLEVBQUUsSUFBQSxjQUFJLEVBQUMsMEJBQTBCLENBQUMsQ0FBQztpQkFDMUQsV0FBVyxDQUFDLFdBQVcsQ0FBQztpQkFDeEIsY0FBYyxDQUFDLEtBQUssQ0FBQztpQkFDckIsTUFBTSxDQUFDLFVBQU0sT0FBTzs7Ozs7OzRCQUVqQixxQkFB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
|
package/lib/cli/index.js
DELETED
|
@@ -1,223 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
-
};
|
|
41
|
-
var core_1 = __importDefault(require("../utils/core"));
|
|
42
|
-
var path_1 = __importDefault(require("path"));
|
|
43
|
-
var error_1 = require("../error");
|
|
44
|
-
var utils_1 = require("../utils");
|
|
45
|
-
var chalk = core_1.default.chalk, loadComponent = core_1.default.loadComponent, lodash = core_1.default.lodash;
|
|
46
|
-
var underline = chalk.underline;
|
|
47
|
-
var isEmpty = lodash.isEmpty, isString = lodash.isString, includes = lodash.includes;
|
|
48
|
-
var description = "Directly use serverless devs to use components, develop and manage applications without yaml configuration.\n \n Example:\n $ s cli fc-api listServices\n $ s cli fc-api listFunctions --service-name my-service\n $ s cli fc-api deploy -p \"{/\"function/\": /\"function-name/\"}\"\n\n".concat((0, utils_1.emoji)('📖'), " Document: ").concat(underline('https://github.com/Serverless-Devs/Serverless-Devs/tree/master/docs/zh/command/cli.md'));
|
|
49
|
-
var throwError = function (error) {
|
|
50
|
-
var jsonMsg;
|
|
51
|
-
try {
|
|
52
|
-
jsonMsg = JSON.parse(error.message);
|
|
53
|
-
}
|
|
54
|
-
catch (error) { }
|
|
55
|
-
if (jsonMsg && jsonMsg.tips) {
|
|
56
|
-
throw new Error(JSON.stringify({
|
|
57
|
-
code: 101,
|
|
58
|
-
message: jsonMsg.message,
|
|
59
|
-
tips: jsonMsg.tips,
|
|
60
|
-
}));
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
throw new Error(JSON.stringify({
|
|
64
|
-
code: 101,
|
|
65
|
-
message: error.message,
|
|
66
|
-
stack: error.stack,
|
|
67
|
-
}));
|
|
68
|
-
}
|
|
69
|
-
};
|
|
70
|
-
function run(program) {
|
|
71
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
72
|
-
var command, doAction;
|
|
73
|
-
var _this = this;
|
|
74
|
-
return __generator(this, function (_a) {
|
|
75
|
-
command = program
|
|
76
|
-
.command('cli')
|
|
77
|
-
.usage('[component] [method] [options]')
|
|
78
|
-
.option('-a, --access <aliasName>', 'Specify the access alias name.')
|
|
79
|
-
.option('-p, --props <jsonString>', 'The json string of props')
|
|
80
|
-
.helpOption('-h, --help', 'Display help for command')
|
|
81
|
-
.allowUnknownOption()
|
|
82
|
-
.description(description)
|
|
83
|
-
.addHelpCommand(false)
|
|
84
|
-
.action(function (options) { return __awaiter(_this, void 0, void 0, function () {
|
|
85
|
-
var error_2;
|
|
86
|
-
return __generator(this, function (_a) {
|
|
87
|
-
switch (_a.label) {
|
|
88
|
-
case 0:
|
|
89
|
-
_a.trys.push([0, 2, , 4]);
|
|
90
|
-
return [4 /*yield*/, doAction(options)];
|
|
91
|
-
case 1:
|
|
92
|
-
_a.sent();
|
|
93
|
-
return [3 /*break*/, 4];
|
|
94
|
-
case 2:
|
|
95
|
-
error_2 = _a.sent();
|
|
96
|
-
return [4 /*yield*/, (0, error_1.HandleError)(error_2)];
|
|
97
|
-
case 3:
|
|
98
|
-
_a.sent();
|
|
99
|
-
return [3 /*break*/, 4];
|
|
100
|
-
case 4: return [2 /*return*/];
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
}); });
|
|
104
|
-
doAction = function (options) { return __awaiter(_this, void 0, void 0, function () {
|
|
105
|
-
function getCurentCredential(access) {
|
|
106
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
107
|
-
return __generator(this, function (_a) {
|
|
108
|
-
switch (_a.label) {
|
|
109
|
-
case 0:
|
|
110
|
-
if (!(access === core_1.default.ALIYUN_CLI)) return [3 /*break*/, 2];
|
|
111
|
-
return [4 /*yield*/, core_1.default.getCredential(access)];
|
|
112
|
-
case 1: return [2 /*return*/, _a.sent()];
|
|
113
|
-
case 2: return [4 /*yield*/, (0, utils_1.getCredentialWithExisted)(access)];
|
|
114
|
-
case 3: return [2 /*return*/, _a.sent()];
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
function execComponent(_method) {
|
|
120
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
121
|
-
var credentials, tempProp, p, argsObj, inputs, res, error_3;
|
|
122
|
-
return __generator(this, function (_a) {
|
|
123
|
-
switch (_a.label) {
|
|
124
|
-
case 0: return [4 /*yield*/, getCurentCredential(access)];
|
|
125
|
-
case 1:
|
|
126
|
-
credentials = _a.sent();
|
|
127
|
-
tempProp = {};
|
|
128
|
-
try {
|
|
129
|
-
p = argvData.props || argvData.p;
|
|
130
|
-
tempProp = p ? JSON.parse(p) : {};
|
|
131
|
-
}
|
|
132
|
-
catch (e) {
|
|
133
|
-
throw new Error('-p/--props parameter format error');
|
|
134
|
-
}
|
|
135
|
-
argsObj = rawData
|
|
136
|
-
.slice(3)
|
|
137
|
-
.filter(function (o) { return !includes(argvData._argsObj, o); })
|
|
138
|
-
.concat(argvData._argsObj);
|
|
139
|
-
inputs = {
|
|
140
|
-
props: tempProp,
|
|
141
|
-
credentials: credentials || {},
|
|
142
|
-
appName: 'default',
|
|
143
|
-
project: {
|
|
144
|
-
component: componentName,
|
|
145
|
-
access: access,
|
|
146
|
-
projectName: 'default',
|
|
147
|
-
provider: undefined,
|
|
148
|
-
},
|
|
149
|
-
command: _method,
|
|
150
|
-
args: argsObj.join(' '),
|
|
151
|
-
argsObj: argsObj,
|
|
152
|
-
path: {
|
|
153
|
-
configPath: process.cwd(),
|
|
154
|
-
},
|
|
155
|
-
};
|
|
156
|
-
_a.label = 2;
|
|
157
|
-
case 2:
|
|
158
|
-
_a.trys.push([2, 4, , 5]);
|
|
159
|
-
return [4 /*yield*/, instance[_method](inputs)];
|
|
160
|
-
case 3:
|
|
161
|
-
res = _a.sent();
|
|
162
|
-
if (isEmpty(res)) {
|
|
163
|
-
return [2 /*return*/, utils_1.logger.success("End of method: ".concat(_method))];
|
|
164
|
-
}
|
|
165
|
-
isString(res) ? utils_1.logger.success(res) : utils_1.logger.output(res);
|
|
166
|
-
return [3 /*break*/, 5];
|
|
167
|
-
case 4:
|
|
168
|
-
error_3 = _a.sent();
|
|
169
|
-
throwError(error_3);
|
|
170
|
-
return [3 /*break*/, 5];
|
|
171
|
-
case 5: return [2 /*return*/];
|
|
172
|
-
}
|
|
173
|
-
});
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
var argvData, rawData, _a, access, help, _b, componentName, method, instance, docResult, publishPath;
|
|
177
|
-
return __generator(this, function (_c) {
|
|
178
|
-
switch (_c.label) {
|
|
179
|
-
case 0:
|
|
180
|
-
argvData = core_1.default.getGlobalArgs(process.argv.slice(2));
|
|
181
|
-
rawData = argvData._, _a = argvData.access, access = _a === void 0 ? 'default' : _a, help = argvData.help;
|
|
182
|
-
// s cli
|
|
183
|
-
if (rawData.length === 1 || (rawData.length === 1 && help)) {
|
|
184
|
-
command.help();
|
|
185
|
-
}
|
|
186
|
-
_b = rawData.slice(1), componentName = _b[0], method = _b[1];
|
|
187
|
-
return [4 /*yield*/, loadComponent(componentName)];
|
|
188
|
-
case 1:
|
|
189
|
-
instance = _c.sent();
|
|
190
|
-
if (!(rawData.length === 2)) return [3 /*break*/, 5];
|
|
191
|
-
if (!instance['index']) return [3 /*break*/, 3];
|
|
192
|
-
return [4 /*yield*/, execComponent('index')];
|
|
193
|
-
case 2: return [2 /*return*/, _c.sent()];
|
|
194
|
-
case 3:
|
|
195
|
-
if (instance.__doc && instance.__doc().length > 1685) {
|
|
196
|
-
docResult = instance.__doc();
|
|
197
|
-
return [2 /*return*/, utils_1.logger.log(docResult)];
|
|
198
|
-
}
|
|
199
|
-
publishPath = path_1.default.join(instance.__path, 'publish.yml');
|
|
200
|
-
return [4 /*yield*/, (0, utils_1.specifyServiceHelp)(publishPath)];
|
|
201
|
-
case 4:
|
|
202
|
-
_c.sent();
|
|
203
|
-
return [2 /*return*/];
|
|
204
|
-
case 5:
|
|
205
|
-
if (!(rawData.length >= 3)) return [3 /*break*/, 8];
|
|
206
|
-
if (!instance[method]) return [3 /*break*/, 7];
|
|
207
|
-
return [4 /*yield*/, execComponent(method)];
|
|
208
|
-
case 6: return [2 /*return*/, _c.sent()];
|
|
209
|
-
case 7: throw new Error(JSON.stringify({
|
|
210
|
-
code: 100,
|
|
211
|
-
message: 'The specified command cannot be found.',
|
|
212
|
-
tips: 'Please refer to the help document of [-h/--help] command.',
|
|
213
|
-
}));
|
|
214
|
-
case 8: return [2 /*return*/];
|
|
215
|
-
}
|
|
216
|
-
});
|
|
217
|
-
}); };
|
|
218
|
-
return [2 /*return*/];
|
|
219
|
-
});
|
|
220
|
-
});
|
|
221
|
-
}
|
|
222
|
-
module.exports = run;
|
|
223
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1REFBaUM7QUFDakMsOENBQXdCO0FBQ3hCLGtDQUF1QztBQUN2QyxrQ0FBdUY7QUFDL0UsSUFBQSxLQUFLLEdBQTRCLGNBQUksTUFBaEMsRUFBRSxhQUFhLEdBQWEsY0FBSSxjQUFqQixFQUFFLE1BQU0sR0FBSyxjQUFJLE9BQVQsQ0FBVTtBQUN0QyxJQUFBLFNBQVMsR0FBSyxLQUFLLFVBQVYsQ0FBVztBQUNwQixJQUFBLE9BQU8sR0FBeUIsTUFBTSxRQUEvQixFQUFFLFFBQVEsR0FBZSxNQUFNLFNBQXJCLEVBQUUsUUFBUSxHQUFLLE1BQU0sU0FBWCxDQUFZO0FBRS9DLElBQU0sV0FBVyxHQUFHLDhUQU9sQixJQUFBLGFBQUssRUFBQyxJQUFJLENBQUMsd0JBQWMsU0FBUyxDQUNsQyx1RkFBdUYsQ0FDeEYsQ0FBRSxDQUFDO0FBRUosSUFBTSxVQUFVLEdBQUcsVUFBQSxLQUFLO0lBQ3RCLElBQUksT0FBTyxDQUFDO0lBQ1osSUFBSTtRQUNGLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUNyQztJQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUc7SUFDbkIsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLElBQUksRUFBRTtRQUMzQixNQUFNLElBQUksS0FBSyxDQUNiLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDYixJQUFJLEVBQUUsR0FBRztZQUNULE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztZQUN4QixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7U0FDbkIsQ0FBQyxDQUNILENBQUM7S0FDSDtTQUFNO1FBQ0wsTUFBTSxJQUFJLEtBQUssQ0FDYixJQUFJLENBQUMsU0FBUyxDQUFD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
|