@serverless-devs/s 2.0.98 → 2.0.100-beta.10
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/a.yaml +38 -0
- package/bin/s-verify +2 -0
- package/lib/clean/index.js +26 -42
- package/lib/cli/index.js +49 -62
- package/lib/component/index.js +44 -40
- package/lib/config/add/index.js +43 -39
- package/lib/config/delete/index.js +45 -53
- package/lib/config/get/index.js +51 -47
- package/lib/config/index.js +26 -42
- package/lib/constant.js +7 -0
- package/lib/error/index.js +60 -24
- package/lib/help/index.js +135 -0
- package/lib/index.js +89 -98
- package/lib/init/index.js +81 -90
- package/lib/init/init-config.js +4 -4
- package/lib/init/init-manager.js +26 -186
- package/lib/onboarding/index.js +16 -8
- package/lib/set/analysis/index.js +46 -42
- package/lib/set/index.js +27 -43
- package/lib/set/locale/index.js +47 -55
- package/lib/set/registry/index.js +46 -54
- package/lib/set/workspace/index.js +47 -43
- package/lib/special-commad/index.js +124 -0
- package/lib/update-notifier/index.js +19 -19
- package/lib/utils/common.js +97 -186
- package/lib/utils/core.js +23 -4
- package/lib/utils/handler-set-config.js +2 -8
- package/lib/utils/index.js +27 -24
- package/lib/utils/logger.js +4 -32
- package/lib/verify/index.js +78 -0
- package/package.json +7 -18
- package/shell/postbuild.sh +2 -0
- package/lib/cli/cli-manager.js +0 -215
- package/lib/constants/index.js +0 -1
- package/lib/constants/static-variable.js +0 -8
- package/lib/core/command/command-manager.js +0 -184
- package/lib/core/component/hook.js +0 -182
- package/lib/core/component/index.js +0 -354
- package/lib/core/index.js +0 -7
- package/lib/core/plugin/index.js +0 -102
- package/lib/entiry/cli.js +0 -11
- package/lib/entiry/index.js +0 -7
- package/lib/specification/analysis.js +0 -45
- package/lib/specification/index.js +0 -14
- package/lib/specification/parse.js +0 -252
- package/lib/specification/version.js +0 -151
- package/lib/utils/command-util.js +0 -331
- package/lib/utils/storage.js +0 -31
- package/lib/utils/url-parser.js +0 -50
package/lib/init/init-config.js
CHANGED
|
@@ -99,8 +99,8 @@ var ali_template = [
|
|
|
99
99
|
];
|
|
100
100
|
var quick_start_template = [
|
|
101
101
|
{
|
|
102
|
-
name: '[HTTP] Node.js
|
|
103
|
-
value: 'devsapp/start-fc-http-
|
|
102
|
+
name: '[HTTP] Node.js 14',
|
|
103
|
+
value: 'devsapp/start-fc-http-nodejs14',
|
|
104
104
|
isDeploy: true,
|
|
105
105
|
},
|
|
106
106
|
{
|
|
@@ -123,8 +123,8 @@ var quick_start_template = [
|
|
|
123
123
|
isDeploy: true,
|
|
124
124
|
},
|
|
125
125
|
{
|
|
126
|
-
name: '[Event] Node.js
|
|
127
|
-
value: 'devsapp/start-fc-event-
|
|
126
|
+
name: '[Event] Node.js 14',
|
|
127
|
+
value: 'devsapp/start-fc-event-nodejs14',
|
|
128
128
|
isDeploy: true,
|
|
129
129
|
},
|
|
130
130
|
{
|
package/lib/init/init-manager.js
CHANGED
|
@@ -47,145 +47,25 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
47
47
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
48
48
|
}
|
|
49
49
|
};
|
|
50
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
51
|
-
var t = {};
|
|
52
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
53
|
-
t[p] = s[p];
|
|
54
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
55
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
56
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
57
|
-
t[p[i]] = s[p[i]];
|
|
58
|
-
}
|
|
59
|
-
return t;
|
|
60
|
-
};
|
|
61
50
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
62
51
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
63
52
|
};
|
|
64
53
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
65
54
|
exports.InitManager = void 0;
|
|
66
55
|
var path_1 = __importDefault(require("path"));
|
|
67
|
-
var lodash_1 =
|
|
56
|
+
var lodash_1 = require("lodash");
|
|
68
57
|
var child_process_1 = require("child_process");
|
|
69
58
|
var utils_1 = require("../utils");
|
|
70
|
-
var
|
|
59
|
+
var constant_1 = require("../constant");
|
|
71
60
|
var init_config_1 = require("./init-config");
|
|
72
61
|
var common_1 = require("../utils/common");
|
|
73
62
|
var core_1 = __importDefault(require("../utils/core"));
|
|
74
|
-
var loadApplication = core_1.default.loadApplication,
|
|
63
|
+
var loadApplication = core_1.default.loadApplication, colors = core_1.default.colors, report = core_1.default.report, inquirer = core_1.default.inquirer;
|
|
75
64
|
inquirer.registerPrompt('autocomplete', require('inquirer-autocomplete-prompt'));
|
|
76
|
-
var replaceTemplate = utils_1.common.replaceTemplate, getTemplatekey = utils_1.common.getTemplatekey, replaceFun = utils_1.common.replaceFun;
|
|
77
|
-
var getCredentialAliasList = function () {
|
|
78
|
-
var ACCESS_PATH = (0, utils_1.getYamlPath)(getRootHome(), 'access');
|
|
79
|
-
if (!ACCESS_PATH) {
|
|
80
|
-
return [];
|
|
81
|
-
}
|
|
82
|
-
try {
|
|
83
|
-
var result = yaml.load(fs.readFileSync(ACCESS_PATH, 'utf8'));
|
|
84
|
-
return Object.keys(result);
|
|
85
|
-
}
|
|
86
|
-
catch (error) {
|
|
87
|
-
return [];
|
|
88
|
-
}
|
|
89
|
-
};
|
|
90
65
|
var InitManager = /** @class */ (function () {
|
|
91
66
|
function InitManager() {
|
|
92
67
|
this.promps = {};
|
|
93
68
|
}
|
|
94
|
-
InitManager.prototype.initSconfig = function (appPath) {
|
|
95
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
96
|
-
var sPath, sContent, templateKeys, _a, prompsAccess, prompsRest, prompsOption, result, credential;
|
|
97
|
-
var _this = this;
|
|
98
|
-
return __generator(this, function (_b) {
|
|
99
|
-
switch (_b.label) {
|
|
100
|
-
case 0:
|
|
101
|
-
sPath = (0, utils_1.getYamlPath)(appPath, 's');
|
|
102
|
-
if (!sPath) return [3 /*break*/, 5];
|
|
103
|
-
sContent = fs.readFileSync(sPath, 'utf-8');
|
|
104
|
-
templateKeys = getTemplatekey(sContent);
|
|
105
|
-
templateKeys.forEach(function (item) {
|
|
106
|
-
var name = item.name, desc = item.desc;
|
|
107
|
-
if (name === 'access') {
|
|
108
|
-
var credentialAliasList = getCredentialAliasList();
|
|
109
|
-
if (Array.isArray(credentialAliasList) && credentialAliasList.length > 0) {
|
|
110
|
-
_this.promps['access'] = {
|
|
111
|
-
type: 'list',
|
|
112
|
-
name: 'access',
|
|
113
|
-
message: 'please select credential alias',
|
|
114
|
-
choices: credentialAliasList,
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
else {
|
|
118
|
-
_this.promps['access'] = {
|
|
119
|
-
type: 'confirm',
|
|
120
|
-
name: 'access',
|
|
121
|
-
message: 'create credential?',
|
|
122
|
-
default: true,
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
else {
|
|
127
|
-
_this.promps[name] = {
|
|
128
|
-
type: 'input',
|
|
129
|
-
message: "please input ".concat(desc || name, ":"),
|
|
130
|
-
name: name,
|
|
131
|
-
};
|
|
132
|
-
}
|
|
133
|
-
});
|
|
134
|
-
_a = this.promps, prompsAccess = _a.access, prompsRest = __rest(_a, ["access"]);
|
|
135
|
-
prompsOption = lodash_1.default.concat(lodash_1.default.values(prompsRest), prompsAccess);
|
|
136
|
-
return [4 /*yield*/, inquirer.prompt(lodash_1.default.filter(prompsOption, function (item) { return item; }))];
|
|
137
|
-
case 1:
|
|
138
|
-
result = _b.sent();
|
|
139
|
-
if (!(result.access === true)) return [3 /*break*/, 3];
|
|
140
|
-
return [4 /*yield*/, setCredential()];
|
|
141
|
-
case 2:
|
|
142
|
-
credential = _b.sent();
|
|
143
|
-
result.access = credential.Alias;
|
|
144
|
-
return [3 /*break*/, 4];
|
|
145
|
-
case 3:
|
|
146
|
-
result.access = typeof result.access === 'string' ? result.access : 'default';
|
|
147
|
-
_b.label = 4;
|
|
148
|
-
case 4:
|
|
149
|
-
sContent = replaceFun(sContent, result);
|
|
150
|
-
fs.writeFileSync(sPath, sContent, 'utf-8');
|
|
151
|
-
_b.label = 5;
|
|
152
|
-
case 5: return [2 /*return*/, sPath];
|
|
153
|
-
}
|
|
154
|
-
});
|
|
155
|
-
});
|
|
156
|
-
};
|
|
157
|
-
InitManager.prototype.initEnvConfig = function (appPath) {
|
|
158
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
159
|
-
var envExampleFilePath, envConfig, templateKeys, promptOption, result, newEnvConfig;
|
|
160
|
-
return __generator(this, function (_a) {
|
|
161
|
-
switch (_a.label) {
|
|
162
|
-
case 0:
|
|
163
|
-
envExampleFilePath = path_1.default.resolve(appPath, '.env.example');
|
|
164
|
-
if (!fs.existsSync(envExampleFilePath))
|
|
165
|
-
return [2 /*return*/];
|
|
166
|
-
envConfig = fs.readFileSync(envExampleFilePath, 'utf-8');
|
|
167
|
-
templateKeys = getTemplatekey(envConfig);
|
|
168
|
-
if (templateKeys.length === 0)
|
|
169
|
-
return [2 /*return*/];
|
|
170
|
-
promptOption = templateKeys.map(function (item) {
|
|
171
|
-
var name = item.name, desc = item.desc;
|
|
172
|
-
return {
|
|
173
|
-
type: 'input',
|
|
174
|
-
message: "please input ".concat(desc || name, ":"),
|
|
175
|
-
name: name,
|
|
176
|
-
};
|
|
177
|
-
});
|
|
178
|
-
return [4 /*yield*/, inquirer.prompt(promptOption)];
|
|
179
|
-
case 1:
|
|
180
|
-
result = _a.sent();
|
|
181
|
-
newEnvConfig = replaceFun(envConfig, result);
|
|
182
|
-
fs.unlink(envExampleFilePath);
|
|
183
|
-
fs.writeFileSync(path_1.default.resolve(appPath, '.env'), newEnvConfig, 'utf-8');
|
|
184
|
-
return [2 /*return*/];
|
|
185
|
-
}
|
|
186
|
-
});
|
|
187
|
-
});
|
|
188
|
-
};
|
|
189
69
|
InitManager.prototype.assemblySpecialApp = function (appName, _a) {
|
|
190
70
|
var projectName = _a.projectName, appPath = _a.appPath;
|
|
191
71
|
return __awaiter(this, void 0, void 0, function () {
|
|
@@ -194,7 +74,7 @@ var InitManager = /** @class */ (function () {
|
|
|
194
74
|
if (appName === 'start-component' || appName === 'devsapp/start-component') {
|
|
195
75
|
packageJsonPath = path_1.default.join(appPath, 'package.json');
|
|
196
76
|
publishYamlPath = path_1.default.join(appPath, 'publish.yaml');
|
|
197
|
-
replaceTemplate([packageJsonPath, publishYamlPath], { projectName: projectName });
|
|
77
|
+
(0, utils_1.replaceTemplate)([packageJsonPath, publishYamlPath], { projectName: projectName });
|
|
198
78
|
}
|
|
199
79
|
return [2 /*return*/];
|
|
200
80
|
});
|
|
@@ -202,99 +82,59 @@ var InitManager = /** @class */ (function () {
|
|
|
202
82
|
};
|
|
203
83
|
InitManager.prototype.executeInit = function (name, dir, downloadurl) {
|
|
204
84
|
return __awaiter(this, void 0, void 0, function () {
|
|
205
|
-
var projectName, answers, registry, appPath
|
|
85
|
+
var projectName, answers, registry, appPath;
|
|
206
86
|
return __generator(this, function (_a) {
|
|
207
87
|
switch (_a.label) {
|
|
208
88
|
case 0:
|
|
209
89
|
projectName = dir;
|
|
210
90
|
if (!!projectName) return [3 /*break*/, 2];
|
|
211
|
-
return [4 /*yield*/, inquirer.prompt([__assign(__assign({}, init_config_1.PROJECT_NAME_INPUT), { default: lodash_1.
|
|
91
|
+
return [4 /*yield*/, inquirer.prompt([__assign(__assign({}, init_config_1.PROJECT_NAME_INPUT), { default: (0, lodash_1.last)((0, lodash_1.split)(name, '/')) })])];
|
|
212
92
|
case 1:
|
|
213
93
|
answers = _a.sent();
|
|
214
94
|
projectName = answers.projectName;
|
|
215
95
|
_a.label = 2;
|
|
216
96
|
case 2:
|
|
217
|
-
registry = downloadurl ? downloadurl : utils_1.
|
|
97
|
+
registry = downloadurl ? downloadurl : (0, utils_1.getConfig)('registry') || constant_1.DEFAULT_REGIRSTRY;
|
|
218
98
|
return [4 /*yield*/, loadApplication({ registry: registry, target: './', source: name, name: projectName })];
|
|
219
99
|
case 3:
|
|
220
100
|
appPath = _a.sent();
|
|
221
|
-
if (!appPath) return [3 /*break*/,
|
|
222
|
-
return [4 /*yield*/, this.initSconfig(appPath)];
|
|
223
|
-
case 4:
|
|
224
|
-
_a.sent();
|
|
225
|
-
return [4 /*yield*/, this.initEnvConfig(appPath)];
|
|
226
|
-
case 5:
|
|
227
|
-
_a.sent();
|
|
101
|
+
if (!appPath) return [3 /*break*/, 5];
|
|
228
102
|
return [4 /*yield*/, this.assemblySpecialApp(name, { projectName: projectName, appPath: appPath })];
|
|
229
|
-
case
|
|
103
|
+
case 4:
|
|
230
104
|
_a.sent(); // Set some app template content
|
|
231
|
-
_a.label = 7;
|
|
232
|
-
case 7:
|
|
233
|
-
_a.trys.push([7, 11, , 12]);
|
|
234
|
-
if (!process.env["".concat(appPath, "-post-init")]) return [3 /*break*/, 10];
|
|
235
|
-
tempObj = JSON.parse(process.env["".concat(appPath, "-post-init")]);
|
|
236
|
-
return [4 /*yield*/, require(path_1.default.join(tempObj['tempPath'], 'hook'))];
|
|
237
|
-
case 8:
|
|
238
|
-
baseChildComponent = _a.sent();
|
|
239
|
-
return [4 /*yield*/, baseChildComponent.postInit(tempObj)];
|
|
240
|
-
case 9:
|
|
241
|
-
_a.sent();
|
|
242
|
-
_a.label = 10;
|
|
243
|
-
case 10: return [3 /*break*/, 12];
|
|
244
|
-
case 11:
|
|
245
|
-
e_1 = _a.sent();
|
|
246
|
-
return [3 /*break*/, 12];
|
|
247
|
-
case 12:
|
|
248
105
|
utils_1.logger.success("\n".concat((0, common_1.emoji)('🏄'), " Thanks for using Serverless-Devs"));
|
|
249
106
|
console.log("".concat((0, common_1.emoji)('👉'), " You could [cd ").concat(appPath, "] and enjoy your serverless journey!"));
|
|
250
107
|
console.log("".concat((0, common_1.emoji)('🧭️'), " If you need help for this example, you can use [s -h] after you enter folder."));
|
|
251
108
|
console.log("".concat((0, common_1.emoji)('💞'), " Document \u2764 Star:") +
|
|
252
109
|
colors.cyan.underline('https://github.com/Serverless-Devs/Serverless-Devs' + '\n'));
|
|
253
|
-
_a.label =
|
|
254
|
-
case
|
|
110
|
+
_a.label = 5;
|
|
111
|
+
case 5: return [2 /*return*/, { appPath: appPath }];
|
|
255
112
|
}
|
|
256
113
|
});
|
|
257
114
|
});
|
|
258
115
|
};
|
|
259
116
|
InitManager.prototype.executeInitWithForceCreation = function (name, dir) {
|
|
260
117
|
return __awaiter(this, void 0, void 0, function () {
|
|
261
|
-
var projectName, registry, appPath
|
|
118
|
+
var projectName, registry, appPath;
|
|
262
119
|
return __generator(this, function (_a) {
|
|
263
120
|
switch (_a.label) {
|
|
264
121
|
case 0:
|
|
265
122
|
projectName = dir;
|
|
266
123
|
if (!projectName) {
|
|
267
|
-
projectName = lodash_1.
|
|
124
|
+
projectName = (0, lodash_1.last)((0, lodash_1.split)(name, '/'));
|
|
268
125
|
}
|
|
269
|
-
registry = utils_1.
|
|
126
|
+
registry = (0, utils_1.getConfig)('registry') || constant_1.DEFAULT_REGIRSTRY;
|
|
270
127
|
return [4 /*yield*/, loadApplication({ registry: registry, target: './', source: name, name: projectName })];
|
|
271
128
|
case 1:
|
|
272
129
|
appPath = _a.sent();
|
|
273
|
-
if (
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
baseChildComponent = _a.sent();
|
|
282
|
-
return [4 /*yield*/, baseChildComponent.postInit(tempObj)];
|
|
283
|
-
case 4:
|
|
284
|
-
_a.sent();
|
|
285
|
-
_a.label = 5;
|
|
286
|
-
case 5: return [3 /*break*/, 7];
|
|
287
|
-
case 6:
|
|
288
|
-
e_2 = _a.sent();
|
|
289
|
-
return [3 /*break*/, 7];
|
|
290
|
-
case 7:
|
|
291
|
-
utils_1.logger.success("\n".concat((0, common_1.emoji)('🏄'), " Thanks for using Serverless-Devs"));
|
|
292
|
-
console.log("".concat((0, common_1.emoji)('👉'), " You could [cd ").concat(appPath, "] and enjoy your serverless journey!"));
|
|
293
|
-
console.log("".concat((0, common_1.emoji)('🧭️'), " If you need help for this example, you can use [s -h] after you enter folder."));
|
|
294
|
-
console.log("".concat((0, common_1.emoji)('💞'), " Document \u2764 Star:") +
|
|
295
|
-
colors.cyan.underline('https://github.com/Serverless-Devs/Serverless-Devs' + '\n'));
|
|
296
|
-
_a.label = 8;
|
|
297
|
-
case 8: return [2 /*return*/, { appPath: appPath }];
|
|
130
|
+
if (appPath) {
|
|
131
|
+
utils_1.logger.success("\n".concat((0, common_1.emoji)('🏄'), " Thanks for using Serverless-Devs"));
|
|
132
|
+
console.log("".concat((0, common_1.emoji)('👉'), " You could [cd ").concat(appPath, "] and enjoy your serverless journey!"));
|
|
133
|
+
console.log("".concat((0, common_1.emoji)('🧭️'), " If you need help for this example, you can use [s -h] after you enter folder."));
|
|
134
|
+
console.log("".concat((0, common_1.emoji)('💞'), " Document \u2764 Star:") +
|
|
135
|
+
colors.cyan.underline('https://github.com/Serverless-Devs/Serverless-Devs' + '\n'));
|
|
136
|
+
}
|
|
137
|
+
return [2 /*return*/, { appPath: appPath }];
|
|
298
138
|
}
|
|
299
139
|
});
|
|
300
140
|
});
|
|
@@ -355,7 +195,7 @@ var InitManager = /** @class */ (function () {
|
|
|
355
195
|
case 2:
|
|
356
196
|
appPath = (_a.sent()).appPath;
|
|
357
197
|
report({ type: 'initTemplate', content: answerValue_1 });
|
|
358
|
-
findObj = lodash_1.
|
|
198
|
+
findObj = (0, lodash_1.find)(init_config_1.ALL_TEMPLATE, function (item) { return item.value === answerValue_1; });
|
|
359
199
|
if (!(findObj && findObj.isDeploy)) return [3 /*break*/, 4];
|
|
360
200
|
return [4 /*yield*/, this.deploy(appPath)];
|
|
361
201
|
case 3:
|
|
@@ -369,13 +209,13 @@ var InitManager = /** @class */ (function () {
|
|
|
369
209
|
_a.sent();
|
|
370
210
|
return [3 /*break*/, 12];
|
|
371
211
|
case 7:
|
|
372
|
-
if (!lodash_1.
|
|
212
|
+
if (!(0, lodash_1.find)(process.argv, function (v) { return v === '--force-creation'; })) return [3 /*break*/, 9];
|
|
373
213
|
return [4 /*yield*/, this.executeInitWithForceCreation(name, dir)];
|
|
374
214
|
case 8: return [2 /*return*/, _a.sent()];
|
|
375
215
|
case 9: return [4 /*yield*/, this.executeInit(name, dir)];
|
|
376
216
|
case 10:
|
|
377
217
|
appPath = (_a.sent()).appPath;
|
|
378
|
-
findObj = lodash_1.
|
|
218
|
+
findObj = (0, lodash_1.find)(init_config_1.ALL_TEMPLATE, function (item) { return (0, lodash_1.includes)(item.value, name); });
|
|
379
219
|
if (!(findObj && findObj.isDeploy)) return [3 /*break*/, 12];
|
|
380
220
|
return [4 /*yield*/, this.deploy(appPath)];
|
|
381
221
|
case 11:
|
|
@@ -389,4 +229,4 @@ var InitManager = /** @class */ (function () {
|
|
|
389
229
|
return InitManager;
|
|
390
230
|
}());
|
|
391
231
|
exports.InitManager = InitManager;
|
|
392
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC1tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luaXQvaW5pdC1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxjQUFjOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWQsOENBQXdCO0FBQ3hCLGtEQUF1QjtBQUN2QiwrQ0FBaUQ7QUFDakQsa0NBQXdFO0FBQ3hFLGdFQUFpRTtBQUNqRSw2Q0FBdUY7QUFDdkYsMENBQXdDO0FBQ3hDLHVEQUFpQztBQUN6QixJQUFBLGVBQWUsR0FBa0YsY0FBSSxnQkFBdEYsRUFBRSxhQUFhLEdBQW1FLGNBQUksY0FBdkUsRUFBRSxNQUFNLEdBQTJELGNBQUksT0FBL0QsRUFBRSxNQUFNLEdBQW1ELGNBQUksT0FBdkQsRUFBTyxFQUFFLEdBQTBDLGNBQUksSUFBOUMsRUFBVSxJQUFJLEdBQTRCLGNBQUksT0FBaEMsRUFBRSxRQUFRLEdBQWtCLGNBQUksU0FBdEIsRUFBRSxXQUFXLEdBQUssY0FBSSxZQUFULENBQVU7QUFFOUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLDhCQUE4QixDQUFDLENBQUMsQ0FBQztBQUN6RSxJQUFBLGVBQWUsR0FBaUMsY0FBTSxnQkFBdkMsRUFBRSxjQUFjLEdBQWlCLGNBQU0sZUFBdkIsRUFBRSxVQUFVLEdBQUssY0FBTSxXQUFYLENBQVk7QUFDL0QsSUFBTSxzQkFBc0IsR0FBRztJQUM3QixJQUFNLFdBQVcsR0FBRyxJQUFBLG1CQUFXLEVBQUMsV0FBVyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDekQsSUFBSSxDQUFDLFdBQVcsRUFBRTtRQUNoQixPQUFPLEVBQUUsQ0FBQztLQUNYO0lBRUQsSUFBSTtRQUNGLElBQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxXQUFX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
|
|
232
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC1tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luaXQvaW5pdC1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxjQUFjOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVkLDhDQUF3QjtBQUN4QixpQ0FBcUQ7QUFDckQsK0NBQWlEO0FBQ2pELGtDQUFvRTtBQUNwRSx3Q0FBZ0Q7QUFDaEQsNkNBQXVGO0FBQ3ZGLDBDQUF3QztBQUN4Qyx1REFBaUM7QUFDekIsSUFBQSxlQUFlLEdBQStCLGNBQUksZ0JBQW5DLEVBQUUsTUFBTSxHQUF1QixjQUFJLE9BQTNCLEVBQUUsTUFBTSxHQUFlLGNBQUksT0FBbkIsRUFBRSxRQUFRLEdBQUssY0FBSSxTQUFULENBQVU7QUFFM0QsUUFBUSxDQUFDLGNBQWMsQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLDhCQUE4QixDQUFDLENBQUMsQ0FBQztBQUNqRjtJQUVFO1FBRFUsV0FBTSxHQUFRLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFDVix3Q0FBa0IsR0FBeEIsVUFBeUIsT0FBTyxFQUFFLEVBQXdCO1lBQXRCLFdBQVcsaUJBQUEsRUFBRSxPQUFPLGFBQUE7Ozs7Z0JBQ3RELElBQUksT0FBTyxLQUFLLGlCQUFpQixJQUFJLE9BQU8sS0FBSyx5QkFBeUIsRUFBRTtvQkFDcEUsZUFBZSxHQUFHLGNBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDO29CQUNyRCxlQUFlLEdBQUcsY0FBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUM7b0JBQzNELElBQUEsdUJBQWUsRUFBQyxDQUFDLGVBQWUsRUFBRSxlQUFlLENBQUMsRUFBRSxFQUFFLFdBQVcsYUFBQSxFQUFFLENBQUMsQ0FBQztpQkFDdEU7Ozs7S0FDRjtJQUNLLGlDQUFXLEdBQWpCLFVBQWtCLElBQVksRUFBRSxHQUFZLEVBQUUsV0FBcUI7Ozs7Ozt3QkFDN0QsV0FBVyxHQUFHLEdBQUcsQ0FBQzs2QkFDbEIsQ0FBQyxXQUFXLEVBQVosd0JBQVk7d0JBQ0UscUJBQU0sUUFBUSxDQUFDLE1BQU0sQ0FBQyx1QkFBTSxnQ0FBa0IsS0FBRSxPQUFPLEVBQUUsSUFBQSxhQUFJLEVBQUMsSUFBQSxjQUFLLEVBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUcsQ0FBQyxFQUFBOzt3QkFBN0YsT0FBTyxHQUFHLFNBQW1GO3dCQUNuRyxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQzs7O3dCQUU5QixRQUFRLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUEsaUJBQVMsRUFBQyxVQUFVLENBQUMsSUFBSSw0QkFBaUIsQ0FBQzt3QkFFeEUscUJBQU0sZUFBZSxDQUFDLEVBQUUsUUFBUSxVQUFBLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFBOzt3QkFBNUYsT0FBTyxHQUFHLFNBQWtGOzZCQUM5RixPQUFPLEVBQVAsd0JBQU87d0JBQ1QscUJBQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxFQUFFLFdBQVcsYUFBQSxFQUFFLE9BQU8sU0FBQSxFQUFFLENBQUMsRUFBQTs7d0JBQTdELFNBQTZELENBQUMsQ0FBQyxnQ0FBZ0M7d0JBQy9GLGNBQU0sQ0FBQyxPQUFPLENBQUMsWUFBSyxJQUFBLGNBQUssRUFBQyxLQUFLLENBQUMsc0NBQW1DLENBQUMsQ0FBQzt3QkFDckUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFHLElBQUEsY0FBSyxFQUFDLElBQUksQ0FBQyw0QkFBa0IsT0FBTyx5Q0FBc0MsQ0FBQyxDQUFDO3dCQUMzRixPQUFPLENBQUMsR0FBRyxDQUFDLFVBQUcsSUFBQSxjQUFLLEVBQUMsS0FBSyxDQUFDLG1GQUFnRixDQUFDLENBQUM7d0JBQzdHLE9BQU8sQ0FBQyxHQUFHLENBQ1QsVUFBRyxJQUFBLGNBQUssRUFBQyxJQUFJLENBQUMsMkJBQW1COzRCQUMvQixNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxvREFBb0QsR0FBRyxJQUFJLENBQUMsQ0FDckYsQ0FBQzs7NEJBR0osc0JBQU8sRUFBRSxPQUFPLFNBQUEsRUFBRSxFQUFDOzs7O0tBQ3BCO0lBQ0ssa0RBQTRCLEdBQWxDLFVBQW1DLElBQVksRUFBRSxHQUFZOzs7Ozs7d0JBQ3ZELFdBQVcsR0FBRyxHQUFHLENBQUM7d0JBQ3RCLElBQUksQ0FBQyxXQUFXLEVBQUU7NEJBQ2hCLFdBQVcsR0FBRyxJQUFBLGFBQUksRUFBQyxJQUFBLGNBQUssRUFBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQzt5QkFDdEM7d0JBQ0ssUUFBUSxHQUFHLElBQUEsaUJBQVMsRUFBQyxVQUFVLENBQUMsSUFBSSw0QkFBaUIsQ0FBQzt3QkFFNUMscUJBQU0sZUFBZSxDQUFDLEVBQUUsUUFBUSxVQUFBLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFBOzt3QkFBNUYsT0FBTyxHQUFHLFNBQWtGO3dCQUNsRyxJQUFJLE9BQU8sRUFBRTs0QkFDWCxjQUFNLENBQUMsT0FBTyxDQUFDLFlBQUssSUFBQSxjQUFLLEVBQUMsS0FBSyxDQUFDLHNDQUFtQyxDQUFDLENBQUM7NEJBQ3JFLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBRyxJQUFBLGNBQUssRUFBQyxJQUFJLENBQUMsNEJBQWtCLE9BQU8seUNBQXNDLENBQUMsQ0FBQzs0QkFDM0YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFHLElBQUEsY0FBSyxFQUFDLEtBQUssQ0FBQyxtRkFBZ0YsQ0FBQyxDQUFDOzRCQUM3RyxPQUFPLENBQUMsR0FBRyxDQUNULFVBQUcsSUFBQSxjQUFLLEVBQUMsSUFBSSxDQUFDLDJCQUFtQjtnQ0FDL0IsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsb0RBQW9ELEdBQUcsSUFBSSxDQUFDLENBQ3JGLENBQUM7eUJBQ0g7d0JBQ0Qsc0JBQU8sRUFBRSxPQUFPLFNBQUEsRUFBRSxFQUFDOzs7O0tBQ3BCO0lBQ0sscUNBQWUsR0FBckIsVUFBc0IsSUFBWSxFQUFFLEdBQVk7OztnQkFDOUMsc0JBQU8sSUFBSSxPQUFPLENBQUMsVUFBQSxPQUFPO3dCQUN4QixJQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFLLEVBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFOzRCQUMzQyxLQUFLLEVBQUUsSUFBSTs0QkFDWCxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUk7NEJBQ3JCLEtBQUssRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDO3lCQUN4QyxDQUFDLENBQUM7d0JBQ0gsTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsVUFBQSxJQUFJOzRCQUNyQixPQUFPLENBQUMsRUFBRSxJQUFJLE1BQUEsRUFBRSxDQUFDLENBQUM7d0JBQ3BCLENBQUMsQ0FBQyxDQUFDO29CQUNMLENBQUMsQ0FBQyxFQUFDOzs7S0FDSjtJQUVLLDRCQUFNLEdBQVosVUFBYSxPQUFlOzs7Ozs0QkFDTCxxQkFBTSxRQUFRLENBQUMsTUFBTSxDQUFDOzRCQUN6QztnQ0FDRSxJQUFJLEVBQUUsU0FBUztnQ0FDZixJQUFJLEVBQUUsTUFBTTtnQ0FDWixPQUFPLEVBQUUsR0FBRztnQ0FDWixPQUFPLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFBLFlBQUksRUFBQywwQkFBMEIsQ0FBQyxDQUFDOzZCQUN6RDt5QkFDRixDQUFDLEVBQUE7O3dCQVBJLE9BQU8sR0FBUSxTQU9uQjt3QkFFRixJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7NEJBQ2hCLElBQUEseUJBQVMsRUFBQyxVQUFVLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7eUJBQ3hFOzs7OztLQUNGO0lBRUssMEJBQUksR0FBVixVQUFXLElBQWEsRUFBRSxHQUFZOzs7Ozs7d0JBQ3BDLE9BQU8sQ0FBQyxHQUFHLENBQ1QsWUFBSyxJQUFBLGNBQUssRUFBQyxJQUFJLENBQUMsa0NBQXdCLE1BQU0sQ0FBQyxTQUFTLENBQ3RELG1GQUFtRixDQUNwRixPQUFJLENBQ04sQ0FBQzs2QkFDRSxDQUFDLElBQUksRUFBTCx3QkFBSzt3QkFDYyxxQkFBTSxRQUFRLENBQUMsTUFBTSxDQUFDLGtDQUFvQixDQUFDLEVBQUE7O3dCQUExRCxPQUFPLEdBQVEsU0FBMkM7d0JBQzFELGdCQUFjLE9BQU8sQ0FBQyxRQUFRLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQzt3QkFDM0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFLLElBQUEsY0FBSyxFQUFDLElBQUksQ0FBQyxrREFBd0MsYUFBVyxRQUFLLENBQUMsQ0FBQzt3QkFDbEUscUJBQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFXLEVBQUUsR0FBRyxDQUFDLEVBQUE7O3dCQUFwRCxPQUFPLEdBQUssQ0FBQSxTQUF3QyxDQUFBLFFBQTdDO3dCQUNmLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLGFBQVcsRUFBRSxDQUFDLENBQUM7d0JBQ2pELE9BQU8sR0FBUSxJQUFBLGFBQUksRUFBQywwQkFBWSxFQUFFLFVBQUEsSUFBSSxJQUFJLE9BQUEsSUFBSSxDQUFDLEtBQUssS0FBSyxhQUFXLEVBQTFCLENBQTBCLENBQUMsQ0FBQzs2QkFDeEUsQ0FBQSxPQUFPLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQSxFQUEzQix3QkFBMkI7d0JBQzdCLHFCQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUE7O3dCQUExQixTQUEwQixDQUFDOzs7OzZCQUVwQixDQUFBLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUEsRUFBL0Isd0JBQStCO3dCQUN4QyxxQkFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBQTs7d0JBQXJDLFNBQXFDLENBQUM7Ozs2QkFFbEMsSUFBQSxhQUFJLEVBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsS0FBSyxrQkFBa0IsRUFBeEIsQ0FBd0IsQ0FBQyxFQUFqRCx3QkFBaUQ7d0JBQzVDLHFCQUFNLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUE7NEJBQXpELHNCQUFPLFNBQWtELEVBQUM7NEJBRXhDLHFCQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFBOzt3QkFBN0MsT0FBTyxHQUFLLENBQUEsU0FBaUMsQ0FBQSxRQUF0Qzt3QkFDVCxPQUFPLEdBQVEsSUFBQSxhQUFJLEVBQUMsMEJBQVksRUFBRSxVQUFBLElBQUksSUFBSSxPQUFBLElBQUEsaUJBQVEsRUFBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUExQixDQUEwQixDQUFDLENBQUM7NkJBQ3hFLENBQUEsT0FBTyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUEsRUFBM0IseUJBQTJCO3dCQUM3QixxQkFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFBOzt3QkFBMUIsU0FBMEIsQ0FBQzs7Ozs7O0tBR2hDO0lBQ0gsa0JBQUM7QUFBRCxDQUFDLEFBNUdELElBNEdDO0FBNUdZLGtDQUFXIn0=
|
package/lib/onboarding/index.js
CHANGED
|
@@ -43,19 +43,27 @@ var init_manager_1 = require("../init/init-manager");
|
|
|
43
43
|
var utils_1 = require("../utils");
|
|
44
44
|
var common_1 = require("../utils/common");
|
|
45
45
|
var core_1 = __importDefault(require("../utils/core"));
|
|
46
|
-
var colors = core_1.default.colors, inquirer = core_1.default.inquirer, fs = core_1.default.fse;
|
|
46
|
+
var colors = core_1.default.colors, inquirer = core_1.default.inquirer, fs = core_1.default.fse, getTemplatePath = core_1.default.getTemplatePath;
|
|
47
47
|
function onboarding() {
|
|
48
48
|
return __awaiter(this, void 0, void 0, function () {
|
|
49
|
-
var templateFile;
|
|
49
|
+
var templateFile, error_1;
|
|
50
50
|
return __generator(this, function (_a) {
|
|
51
51
|
switch (_a.label) {
|
|
52
52
|
case 0:
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
53
|
+
_a.trys.push([0, 2, , 3]);
|
|
54
|
+
return [4 /*yield*/, getTemplatePath()];
|
|
55
|
+
case 1:
|
|
56
|
+
templateFile = _a.sent();
|
|
57
|
+
return [3 /*break*/, 3];
|
|
58
|
+
case 2:
|
|
59
|
+
error_1 = _a.sent();
|
|
60
|
+
return [3 /*break*/, 3];
|
|
58
61
|
case 3:
|
|
62
|
+
if (!fs.existsSync(templateFile)) return [3 /*break*/, 5];
|
|
63
|
+
return [4 /*yield*/, projectWithDevs()];
|
|
64
|
+
case 4: return [2 /*return*/, _a.sent()];
|
|
65
|
+
case 5: return [4 /*yield*/, projectWithNoDevs()];
|
|
66
|
+
case 6:
|
|
59
67
|
_a.sent();
|
|
60
68
|
return [2 /*return*/];
|
|
61
69
|
}
|
|
@@ -100,4 +108,4 @@ function projectWithNoDevs() {
|
|
|
100
108
|
});
|
|
101
109
|
}
|
|
102
110
|
exports.default = onboarding;
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvb25ib2FyZGluZy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFEQUFtRDtBQUNuRCxrQ0FBZ0M7QUFDaEMsMENBQTZDO0FBQzdDLHVEQUFpQztBQUN6QixJQUFBLE1BQU0sR0FBeUMsY0FBSSxPQUE3QyxFQUFFLFFBQVEsR0FBK0IsY0FBSSxTQUFuQyxFQUFPLEVBQUUsR0FBc0IsY0FBSSxJQUExQixFQUFFLGVBQWUsR0FBSyxjQUFJLGdCQUFULENBQVU7QUFFNUQsU0FBZSxVQUFVOzs7Ozs7O29CQUdOLHFCQUFNLGVBQWUsRUFBRSxFQUFBOztvQkFBdEMsWUFBWSxHQUFHLFNBQXVCLENBQUM7Ozs7Ozt5QkFFckMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsRUFBM0Isd0JBQTJCO29CQUN0QixxQkFBTSxlQUFlLEVBQUUsRUFBQTt3QkFBOUIsc0JBQU8sU0FBdUIsRUFBQzt3QkFFakMscUJBQU0saUJBQWlCLEVBQUUsRUFBQTs7b0JBQXpCLFNBQXlCLENBQUM7Ozs7O0NBQzNCO0FBRUQsU0FBZSxlQUFlOzs7WUFDNUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFBLFlBQUcsRUFBQyxVQUFHLElBQUEsWUFBSSxFQUFDLDhCQUE4QixDQUFDLE1BQUcsQ0FBQyxDQUFDLENBQUM7WUFFN0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFLLElBQUEsY0FBSyxFQUFDLElBQUksQ0FBQyxjQUFJLElBQUEsWUFBRyxFQUFDLGFBQWEsQ0FBQyxTQUFHLFlBQUcsQ0FBQyxTQUFTLENBQUMsaUNBQWlDLENBQUMsQ0FBRSxDQUFDLENBQUM7WUFDekcsT0FBTyxDQUFDLEdBQUcsQ0FDVCxVQUFHLElBQUEsY0FBSyxFQUFDLElBQUksQ0FBQyxjQUFJLElBQUEsWUFBRyxFQUFDLGVBQWUsQ0FBQyxTQUFHLFlBQUcsQ0FBQyxTQUFTLENBQ3BELGdFQUFnRSxDQUNqRSxDQUFFLENBQ0osQ0FBQztZQUNGLE9BQU8sQ0FBQyxHQUFHLENBQ1QsVUFBRyxJQUFBLGNBQUssRUFBQyxHQUFHLENBQUMsY0FBSSxJQUFBLFlBQUcsRUFBQyxVQUFVLENBQUMsU0FBRyxZQUFHLENBQUMsU0FBUyxDQUFDLDJEQUEyRCxDQUFDLENBQUUsQ0FDaEgsQ0FBQzs7OztDQUNIO0FBRUQsU0FBZSxpQkFBaUI7Ozs7O3dCQUNmLHFCQUFNLFFBQVEsQ0FBQyxNQUFNLENBQUM7d0JBQ25DOzRCQUNFLElBQUksRUFBRSxTQUFTOzRCQUNmLE9BQU8sRUFBRSxHQUFHOzRCQUNaLElBQUksRUFBRSxNQUFNOzRCQUNaLE9BQU8sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUEsWUFBSSxFQUFDLHNCQUFzQixDQUFDLENBQUM7eUJBQ3JEO3FCQUNGLENBQUMsRUFBQTs7b0JBUEksTUFBTSxHQUFHLFNBT2I7eUJBQ0UsTUFBTSxDQUFDLElBQUksRUFBWCx3QkFBVztvQkFDUCxXQUFXLEdBQUcsSUFBSSwwQkFBVyxFQUFFLENBQUM7b0JBQ3RDLHFCQUFNLFdBQVcsQ0FBQyxJQUFJLEVBQUUsRUFBQTs7b0JBQXhCLFNBQXdCLENBQUM7Ozs7OztDQUU1QjtBQUVELGtCQUFlLFVBQVUsQ0FBQyJ9
|