@serverless-devs/s 2.0.100-beta.2 → 2.0.100-beta.6
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/{s.yaml → a.yaml} +0 -0
- package/bin/s-verify +2 -0
- package/lib/clean/index.js +12 -12
- package/lib/cli/index.js +28 -28
- package/lib/component/index.js +38 -38
- package/lib/config/add/index.js +22 -22
- package/lib/config/delete/index.js +22 -22
- package/lib/config/get/index.js +26 -26
- package/lib/config/index.js +15 -15
- package/lib/constant.js +2 -2
- package/lib/error/index.js +4 -3
- package/lib/help/index.js +33 -24
- package/lib/index.js +79 -79
- package/lib/init/index.js +70 -70
- package/lib/init/init-config.js +4 -4
- package/lib/set/analysis/index.js +23 -23
- package/lib/set/index.js +12 -12
- package/lib/set/locale/index.js +24 -24
- package/lib/set/registry/index.js +24 -24
- package/lib/set/workspace/index.js +24 -24
- package/lib/special-commad/index.js +3 -3
- package/lib/update-notifier/index.js +17 -17
- package/lib/utils/common.js +29 -19
- package/lib/verify/index.js +58 -0
- package/package.json +3 -2
- package/shell/postbuild.sh +17 -15
package/lib/constant.js
CHANGED
|
@@ -3,5 +3,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.COMMAND_LIST = exports.UPDATE_CHECK_INTERVAL = exports.DEFAULT_REGIRSTRY = void 0;
|
|
4
4
|
exports.DEFAULT_REGIRSTRY = 'http://registry.devsapp.cn/simple';
|
|
5
5
|
exports.UPDATE_CHECK_INTERVAL = 1000 * 60 * 60 * 12;
|
|
6
|
-
exports.COMMAND_LIST = ['clean', 'cli', 'component', 'config', 'init', 'set'];
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
exports.COMMAND_LIST = ['clean', 'cli', 'component', 'config', 'init', 'set', 'verify'];
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uc3RhbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxpQkFBaUIsR0FBRyxtQ0FBbUMsQ0FBQztBQUN4RCxRQUFBLHFCQUFxQixHQUFHLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztBQUM1QyxRQUFBLFlBQVksR0FBRyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDIn0=
|
package/lib/error/index.js
CHANGED
|
@@ -84,7 +84,7 @@ var HandleError = function (error) { return __awaiter(void 0, void 0, void 0, fu
|
|
|
84
84
|
messageStr = jsonMsg.message ? "Message: ".concat(jsonMsg.message, "\n") : '';
|
|
85
85
|
tipsStr = jsonMsg.tips ? "* ".concat(makeUnderLine(jsonMsg.tips.replace(/\n/, '\n* '))) : '';
|
|
86
86
|
utils_1.logger.log("\n".concat(colors.hex('#000').bgYellow('WARNING:'), "\n======================\n").concat(tipsStr, "\n"), 'yellow');
|
|
87
|
-
isDebugMode() ? console.log(error) : console.log(colors.grey(messageStr));
|
|
87
|
+
isDebugMode() ? console.log(error.stack) : console.log(colors.grey(messageStr));
|
|
88
88
|
configOption.catchableError = true;
|
|
89
89
|
tmpError = jsonMsg;
|
|
90
90
|
return [3 /*break*/, 5];
|
|
@@ -100,7 +100,8 @@ var HandleError = function (error) { return __awaiter(void 0, void 0, void 0, fu
|
|
|
100
100
|
return [3 /*break*/, 5];
|
|
101
101
|
case 3:
|
|
102
102
|
console.log((0, utils_1.red)("\u2716 ".concat(defaultPrefix, "\n")));
|
|
103
|
-
console.log("".concat((0, utils_1.bgRed)('ERROR:'), "\n")
|
|
103
|
+
console.log("".concat((0, utils_1.bgRed)('ERROR:'), "\n"));
|
|
104
|
+
console.log(isDebugMode() ? error.stack : "".concat(message, "\n"));
|
|
104
105
|
return [4 /*yield*/, (0, utils_1.aiRequest)(message)];
|
|
105
106
|
case 4:
|
|
106
107
|
_a.sent();
|
|
@@ -135,4 +136,4 @@ var HandleError = function (error) { return __awaiter(void 0, void 0, void 0, fu
|
|
|
135
136
|
});
|
|
136
137
|
}); };
|
|
137
138
|
exports.HandleError = HandleError;
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXJyb3IvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsY0FBYztBQUNkLGtDQUF3RjtBQUN4Rix1REFBaUM7QUFDekIsSUFBQSxNQUFNLEdBQXlDLGNBQUksT0FBN0MsRUFBRSxNQUFNLEdBQWlDLGNBQUksT0FBckMsRUFBRSxXQUFXLEdBQW9CLGNBQUksWUFBeEIsRUFBRSxhQUFhLEdBQUssY0FBSSxjQUFULENBQVU7QUFDNUQsaURBQStDO0FBQXRDLDZHQUFBLFlBQVksT0FBQTtBQUNyQiw2REFBMEQ7QUFBakQsd0hBQUEsaUJBQWlCLE9BQUE7QUFDMUIsK0NBQTZDO0FBQXBDLDJHQUFBLFdBQVcsT0FBQTtBQUNwQix1REFBb0Q7QUFBM0Msa0hBQUEsY0FBYyxPQUFBO0FBQ3ZCLDJDQUF5QztBQUFoQyx1R0FBQSxTQUFTLE9BQUE7QUFDbEIsdURBQXFEO0FBQTVDLG1IQUFBLGVBQWUsT0FBQTtBQUN4Qiw2Q0FBMkM7QUFBbEMseUdBQUEsVUFBVSxPQUFBO0FBQ25CLGlEQUErQztBQUF0Qyw2R0FBQSxZQUFZLE9BQUE7QUFFckIsU0FBUyxTQUFTLENBQUMsTUFBYyxFQUFFLElBQVk7SUFDN0MsT0FBTyxVQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUUsQ0FBQztBQUNoRSxDQUFDO0FBTU0sSUFBTSxXQUFXLEdBQUcsVUFBTyxLQUFZOzs7OztnQkFDdEMsYUFBYSxHQUFHLFVBQVUsQ0FBQztnQkFDM0IsWUFBWSxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLENBQUM7Z0JBQ3hELFFBQVEsR0FBYyxLQUFLLENBQUM7Z0JBRTFCLFFBQVEs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
|
package/lib/help/index.js
CHANGED
|
@@ -57,6 +57,7 @@ var descption = {
|
|
|
57
57
|
{ config: '👤 Configure venders account.' },
|
|
58
58
|
{ init: '💞 Initializing a serverless project.' },
|
|
59
59
|
{ cli: '🐚 Command line operation without yaml mode.' },
|
|
60
|
+
{ verify: '🔎 Verify the application.' },
|
|
60
61
|
{ set: '🔧 Settings for the tool.' },
|
|
61
62
|
{ clean: '💥 Clean up the environment.' },
|
|
62
63
|
{ component: '🔌 Installed component information.' },
|
|
@@ -65,47 +66,55 @@ var descption = {
|
|
|
65
66
|
};
|
|
66
67
|
function help(program) {
|
|
67
68
|
return __awaiter(this, void 0, void 0, function () {
|
|
68
|
-
var helperLength, template, customeDescription, spath, yamlData, serviceList, _i, serviceList_1, service, component, instance, publishPath, publishContent, commands, key, output;
|
|
69
|
-
var
|
|
70
|
-
return __generator(this, function (
|
|
71
|
-
switch (
|
|
69
|
+
var helperLength, _a, rawData, template, help, customeDescription, spath, yamlData, serviceList, _i, serviceList_1, service, component, instance, publishPath, publishContent, commands, key, error_1, output;
|
|
70
|
+
var _b, _c;
|
|
71
|
+
return __generator(this, function (_d) {
|
|
72
|
+
switch (_d.label) {
|
|
72
73
|
case 0:
|
|
73
74
|
helperLength = publishHelp.maxLen(descption.Options);
|
|
74
|
-
|
|
75
|
+
_a = getGlobalArgs(process.argv.slice(2)), rawData = _a._, template = _a.template, help = _a.help;
|
|
75
76
|
customeDescription = [];
|
|
76
|
-
return [
|
|
77
|
+
if (!(rawData.length === 0 && help)) return [3 /*break*/, 9];
|
|
78
|
+
_d.label = 1;
|
|
77
79
|
case 1:
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
return [4 /*yield*/, getYamlContent(spath)];
|
|
80
|
+
_d.trys.push([1, 8, , 9]);
|
|
81
|
+
return [4 /*yield*/, getTemplatePath(template)];
|
|
81
82
|
case 2:
|
|
82
|
-
|
|
83
|
+
spath = _d.sent();
|
|
84
|
+
if (!spath) return [3 /*break*/, 7];
|
|
85
|
+
return [4 /*yield*/, getYamlContent(spath)];
|
|
86
|
+
case 3:
|
|
87
|
+
yamlData = _d.sent();
|
|
83
88
|
serviceList = (0, lodash_1.keys)((0, lodash_1.get)(yamlData, 'services'));
|
|
84
|
-
if (!(serviceList.length > 1)) return [3 /*break*/,
|
|
89
|
+
if (!(serviceList.length > 1)) return [3 /*break*/, 4];
|
|
85
90
|
for (_i = 0, serviceList_1 = serviceList; _i < serviceList_1.length; _i++) {
|
|
86
91
|
service = serviceList_1[_i];
|
|
87
|
-
customeDescription.push((
|
|
88
|
-
|
|
89
|
-
|
|
92
|
+
customeDescription.push((_b = {},
|
|
93
|
+
_b["".concat(service, " [options]")] = "Please use [s ".concat(service, " -h] obtain the documentation."),
|
|
94
|
+
_b));
|
|
90
95
|
}
|
|
91
|
-
return [3 /*break*/,
|
|
92
|
-
case
|
|
96
|
+
return [3 /*break*/, 7];
|
|
97
|
+
case 4:
|
|
93
98
|
component = (0, lodash_1.get)(yamlData, ['services', serviceList[0], 'component']);
|
|
94
99
|
return [4 /*yield*/, loadComponent(component)];
|
|
95
|
-
case
|
|
96
|
-
instance =
|
|
100
|
+
case 5:
|
|
101
|
+
instance = _d.sent();
|
|
97
102
|
publishPath = path_1.default.join(instance.__path, 'publish.yaml');
|
|
98
103
|
return [4 /*yield*/, getYamlContent(publishPath)];
|
|
99
|
-
case
|
|
100
|
-
publishContent =
|
|
104
|
+
case 6:
|
|
105
|
+
publishContent = _d.sent();
|
|
101
106
|
commands = publishContent.Commands;
|
|
102
107
|
if (commands) {
|
|
103
108
|
for (key in commands) {
|
|
104
|
-
customeDescription.push((
|
|
109
|
+
customeDescription.push((_c = {}, _c[key] = commands[key], _c));
|
|
105
110
|
}
|
|
106
111
|
}
|
|
107
|
-
|
|
108
|
-
case
|
|
112
|
+
_d.label = 7;
|
|
113
|
+
case 7: return [3 /*break*/, 9];
|
|
114
|
+
case 8:
|
|
115
|
+
error_1 = _d.sent();
|
|
116
|
+
return [3 /*break*/, 9];
|
|
117
|
+
case 9:
|
|
109
118
|
output = [
|
|
110
119
|
"".concat((0, utils_1.emoji)('🚀'), " Welcome to the Serverless Devs.\n"),
|
|
111
120
|
publishHelp.helpInfo(descption.Options, 'Options', helperLength),
|
|
@@ -123,4 +132,4 @@ function help(program) {
|
|
|
123
132
|
});
|
|
124
133
|
}
|
|
125
134
|
exports.default = help;
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtDQUFpQztBQUNqQyxpQ0FBbUM7QUFDbkMsdURBQWlDO0FBQ2pDLDhDQUF3QjtBQUNoQixJQUFBLGFBQWEsR0FBaUYsY0FBSSxjQUFyRixFQUFFLFdBQVcsR0FBb0UsY0FBSSxZQUF4RSxFQUFFLGFBQWEsR0FBcUQsY0FBSSxjQUF6RCxFQUFFLGVBQWUsR0FBb0MsY0FBSSxnQkFBeEMsRUFBRSxjQUFjLEdBQW9CLGNBQUksZUFBeEIsRUFBRSxhQUFhLEdBQUssY0FBSSxjQUFULENBQVU7QUFFM0csSUFBTSxTQUFTLEdBQUc7SUFDaEIsT0FBTyxFQUFFO1FBQ1AsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUU7UUFDbEMsRUFBRSxnQkFBZ0IsRUFBRSwyQkFBMkIsRUFBRTtRQUNqRCxFQUFFLHVCQUF1QixFQUFFLDRCQUE0QixFQUFFO1FBQ3pELEVBQUUsMEJBQTBCLEVBQUUsZ0NBQWdDLEVBQUU7UUFDaEUsRUFBRSxlQUFlLEVBQUUsNEJBQTRCLEVBQUU7UUFDakQsRUFBRSxZQUFZLEVBQUUsMkJBQTJCLEVBQUU7S0FDOUM7SUFDRCxRQUFRLEVBQUU7UUFDUixFQUFFLE1BQU0sRUFBRSxnQ0FBZ0MsRUFBRTtRQUM1QyxFQUFFLElBQUksRUFBRSx3Q0FBd0MsRUFBRTtRQUNsRCxFQUFFLEdBQUcsRUFBRSwrQ0FBK0MsRUFBRTtRQUN4RCxFQUFFLE1BQU0sRUFBRSw2QkFBNkIsRUFBRTtRQUN6QyxFQUFFLEdBQUcsRUFBRSw0QkFBNEIsRUFBRTtRQUNyQyxFQUFFLEtBQUssRUFBRSwrQkFBK0IsRUFBRTtRQUMxQyxFQUFFLFNBQVMsRUFBRSxzQ0FBc0MsRUFBRTtLQUN0RDtJQUNELFFBQVEsRUFBRSxDQUFDLEVBQUUsSUFBSSxF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
|