@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.
Files changed (49) hide show
  1. package/a.yaml +38 -0
  2. package/bin/s-verify +2 -0
  3. package/lib/clean/index.js +26 -42
  4. package/lib/cli/index.js +49 -62
  5. package/lib/component/index.js +44 -40
  6. package/lib/config/add/index.js +43 -39
  7. package/lib/config/delete/index.js +45 -53
  8. package/lib/config/get/index.js +51 -47
  9. package/lib/config/index.js +26 -42
  10. package/lib/constant.js +7 -0
  11. package/lib/error/index.js +60 -24
  12. package/lib/help/index.js +135 -0
  13. package/lib/index.js +89 -98
  14. package/lib/init/index.js +81 -90
  15. package/lib/init/init-config.js +4 -4
  16. package/lib/init/init-manager.js +26 -186
  17. package/lib/onboarding/index.js +16 -8
  18. package/lib/set/analysis/index.js +46 -42
  19. package/lib/set/index.js +27 -43
  20. package/lib/set/locale/index.js +47 -55
  21. package/lib/set/registry/index.js +46 -54
  22. package/lib/set/workspace/index.js +47 -43
  23. package/lib/special-commad/index.js +124 -0
  24. package/lib/update-notifier/index.js +19 -19
  25. package/lib/utils/common.js +97 -186
  26. package/lib/utils/core.js +23 -4
  27. package/lib/utils/handler-set-config.js +2 -8
  28. package/lib/utils/index.js +27 -24
  29. package/lib/utils/logger.js +4 -32
  30. package/lib/verify/index.js +78 -0
  31. package/package.json +7 -18
  32. package/shell/postbuild.sh +2 -0
  33. package/lib/cli/cli-manager.js +0 -215
  34. package/lib/constants/index.js +0 -1
  35. package/lib/constants/static-variable.js +0 -8
  36. package/lib/core/command/command-manager.js +0 -184
  37. package/lib/core/component/hook.js +0 -182
  38. package/lib/core/component/index.js +0 -354
  39. package/lib/core/index.js +0 -7
  40. package/lib/core/plugin/index.js +0 -102
  41. package/lib/entiry/cli.js +0 -11
  42. package/lib/entiry/index.js +0 -7
  43. package/lib/specification/analysis.js +0 -45
  44. package/lib/specification/index.js +0 -14
  45. package/lib/specification/parse.js +0 -252
  46. package/lib/specification/version.js +0 -151
  47. package/lib/utils/command-util.js +0 -331
  48. package/lib/utils/storage.js +0 -31
  49. package/lib/utils/url-parser.js +0 -50
@@ -99,8 +99,8 @@ var ali_template = [
99
99
  ];
100
100
  var quick_start_template = [
101
101
  {
102
- name: '[HTTP] Node.js 12',
103
- value: 'devsapp/start-fc-http-nodejs12',
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 12',
127
- value: 'devsapp/start-fc-event-nodejs12',
126
+ name: '[Event] Node.js 14',
127
+ value: 'devsapp/start-fc-event-nodejs14',
128
128
  isDeploy: true,
129
129
  },
130
130
  {
@@ -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 = __importDefault(require("lodash"));
56
+ var lodash_1 = require("lodash");
68
57
  var child_process_1 = require("child_process");
69
58
  var utils_1 = require("../utils");
70
- var static_variable_1 = require("../constants/static-variable");
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, setCredential = core_1.default.setCredential, colors = core_1.default.colors, report = core_1.default.report, fs = core_1.default.fse, yaml = core_1.default.jsyaml, inquirer = core_1.default.inquirer, getRootHome = core_1.default.getRootHome;
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, tempObj, baseChildComponent, e_1;
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.default.last(lodash_1.default.split(name, '/')) })])];
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.configSet.getConfig('registry') || static_variable_1.DEFAULT_REGIRSTRY;
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*/, 13];
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 6:
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 = 13;
254
- case 13: return [2 /*return*/, { appPath: appPath }];
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, tempObj, baseChildComponent, e_2;
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.default.last(lodash_1.default.split(name, '/'));
124
+ projectName = (0, lodash_1.last)((0, lodash_1.split)(name, '/'));
268
125
  }
269
- registry = utils_1.configSet.getConfig('registry') || static_variable_1.DEFAULT_REGIRSTRY;
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 (!appPath) return [3 /*break*/, 8];
274
- _a.label = 2;
275
- case 2:
276
- _a.trys.push([2, 6, , 7]);
277
- if (!process.env["".concat(appPath, "-post-init")]) return [3 /*break*/, 5];
278
- tempObj = JSON.parse(process.env["".concat(appPath, "-post-init")]);
279
- return [4 /*yield*/, require(path_1.default.join(tempObj['tempPath'], 'hook'))];
280
- case 3:
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.default.find(init_config_1.ALL_TEMPLATE, function (item) { return item.value === answerValue_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.default.find(process.argv, function (v) { return v === '--force-creation'; })) return [3 /*break*/, 9];
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.default.find(init_config_1.ALL_TEMPLATE, function (item) { return lodash_1.default.includes(item.value, name); });
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC1tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luaXQvaW5pdC1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxjQUFjOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWQsOENBQXdCO0FBQ3hCLGtEQUF1QjtBQUN2QiwrQ0FBaUQ7QUFDakQsa0NBQXdFO0FBQ3hFLGdFQUFpRTtBQUNqRSw2Q0FBdUY7QUFDdkYsMENBQXdDO0FBQ3hDLHVEQUFpQztBQUN6QixJQUFBLGVBQWUsR0FBa0YsY0FBSSxnQkFBdEYsRUFBRSxhQUFhLEdBQW1FLGNBQUksY0FBdkUsRUFBRSxNQUFNLEdBQTJELGNBQUksT0FBL0QsRUFBRSxNQUFNLEdBQW1ELGNBQUksT0FBdkQsRUFBTyxFQUFFLEdBQTBDLGNBQUksSUFBOUMsRUFBVSxJQUFJLEdBQTRCLGNBQUksT0FBaEMsRUFBRSxRQUFRLEdBQWtCLGNBQUksU0FBdEIsRUFBRSxXQUFXLEdBQUssY0FBSSxZQUFULENBQVU7QUFFOUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLDhCQUE4QixDQUFDLENBQUMsQ0FBQztBQUN6RSxJQUFBLGVBQWUsR0FBaUMsY0FBTSxnQkFBdkMsRUFBRSxjQUFjLEdBQWlCLGNBQU0sZUFBdkIsRUFBRSxVQUFVLEdBQUssY0FBTSxXQUFYLENBQVk7QUFDL0QsSUFBTSxzQkFBc0IsR0FBRztJQUM3QixJQUFNLFdBQVcsR0FBRyxJQUFBLG1CQUFXLEVBQUMsV0FBVyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDekQsSUFBSSxDQUFDLFdBQVcsRUFBRTtRQUNoQixPQUFPLEVBQUUsQ0FBQztLQUNYO0lBRUQsSUFBSTtRQUNGLElBQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUMvRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDNUI7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sRUFBRSxDQUFDO0tBQ1g7QUFDSCxDQUFDLENBQUM7QUFFRjtJQUVFO1FBRFUsV0FBTSxHQUFRLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFVixpQ0FBVyxHQUFqQixVQUFrQixPQUFlOzs7Ozs7O3dCQUN6QixLQUFLLEdBQUcsSUFBQSxtQkFBVyxFQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQzs2QkFDcEMsS0FBSyxFQUFMLHdCQUFLO3dCQUNILFFBQVEsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQzt3QkFDekMsWUFBWSxHQUFHLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQzt3QkFDOUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFBLElBQUk7NEJBQ2YsSUFBQSxJQUFJLEdBQVcsSUFBSSxLQUFmLEVBQUUsSUFBSSxHQUFLLElBQUksS0FBVCxDQUFVOzRCQUM1QixJQUFJLElBQUksS0FBSyxRQUFRLEVBQUU7Z0NBQ3JCLElBQU0sbUJBQW1CLEdBQUcsc0JBQXNCLEVBQUUsQ0FBQztnQ0FDckQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLElBQUksbUJBQW1CLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQ0FDeEUsS0FBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRzt3Q0FDdEIsSUFBSSxFQUFFLE1BQU07d0NBQ1osSUFBSSxFQUFFLFFBQVE7d0NBQ2QsT0FBTyxFQUFFLGdDQUFnQzt3Q0FDekMsT0FBTyxFQUFFLG1CQUFtQjtxQ0FDN0IsQ0FBQztpQ0FDSDtxQ0FBTTtvQ0FDTCxLQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHO3dDQUN0QixJQUFJLEVBQUUsU0FBUzt3Q0FDZixJQUFJLEVBQUUsUUFBUTt3Q0FDZCxPQUFPLEVBQUUsb0JBQW9CO3dDQUM3QixPQUFPLEVBQUUsSUFBSTtxQ0FDZCxDQUFDO2lDQUNIOzZCQUNGO2lDQUFNO2dDQUNMLEtBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUc7b0NBQ2xCLElBQUksRUFBRSxPQUFPO29DQUNiLE9BQU8sRUFBRSx1QkFBZ0IsSUFBSSxJQUFJLElBQUksTUFBRztvQ0FDeEMsSUFBSSxNQUFBO2lDQUNMLENBQUM7NkJBQ0g7d0JBQ0gsQ0FBQyxDQUFDLENBQUM7d0JBRUcsS0FBMEMsSUFBSSxDQUFDLE1BQU0sRUFBM0MsWUFBWSxZQUFBLEVBQUssVUFBVSxjQUFyQyxVQUF1QyxDQUFGLENBQWlCO3dCQUN0RCxZQUFZLEdBQUcsZ0JBQUMsQ0FBQyxNQUFNLENBQUMsZ0JBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUM7d0JBRW5ELHFCQUFNLFFBQVEsQ0FBQyxNQUFNLENBQUMsZ0JBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLFVBQUEsSUFBSSxJQUFJLE9BQUEsSUFBSSxFQUFKLENBQUksQ0FBQyxDQUFDLEVBQUE7O3dCQUFwRSxNQUFNLEdBQUcsU0FBMkQ7NkJBQ3RFLENBQUEsTUFBTSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUEsRUFBdEIsd0JBQXNCO3dCQUNMLHFCQUFNLGFBQWEsRUFBRSxFQUFBOzt3QkFBbEMsVUFBVSxHQUFHLFNBQXFCO3dCQUN4QyxNQUFNLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7Ozt3QkFFakMsTUFBTSxDQUFDLE1BQU0sR0FBRyxPQUFPLE1BQU0sQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7Ozt3QkFFaEYsUUFBUSxHQUFHLFVBQVUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7d0JBQ3hDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQzs7NEJBRTdDLHNCQUFPLEtBQUssRUFBQzs7OztLQUNkO0lBRUssbUNBQWEsR0FBbkIsVUFBb0IsT0FBZTs7Ozs7O3dCQUMzQixrQkFBa0IsR0FBRyxjQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQzt3QkFDakUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUM7NEJBQUUsc0JBQU87d0JBQ3pDLFNBQVMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxDQUFDO3dCQUN6RCxZQUFZLEdBQUcsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO3dCQUMvQyxJQUFJLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQzs0QkFBRSxzQkFBTzt3QkFDaEMsWUFBWSxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsVUFBQSxJQUFJOzRCQUNoQyxJQUFBLElBQUksR0FBVyxJQUFJLEtBQWYsRUFBRSxJQUFJLEdBQUssSUFBSSxLQUFULENBQVU7NEJBQzVCLE9BQU87Z0NBQ0wsSUFBSSxFQUFFLE9BQU87Z0NBQ2IsT0FBTyxFQUFFLHVCQUFnQixJQUFJLElBQUksSUFBSSxNQUFHO2dDQUN4QyxJQUFJLE1BQUE7NkJBQ0wsQ0FBQzt3QkFDSixDQUFDLENBQUMsQ0FBQzt3QkFDWSxxQkFBTSxRQUFRLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxFQUFBOzt3QkFBNUMsTUFBTSxHQUFHLFNBQW1DO3dCQUM1QyxZQUFZLEdBQUcsVUFBVSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQzt3QkFDbkQsRUFBRSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO3dCQUM5QixFQUFFLENBQUMsYUFBYSxDQUFDLGNBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxFQUFFLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQzs7Ozs7S0FDeEU7SUFFSyx3Q0FBa0IsR0FBeEIsVUFBeUIsT0FBTyxFQUFFLEVBQXdCO1lBQXRCLFdBQVcsaUJBQUEsRUFBRSxPQUFPLGFBQUE7Ozs7Z0JBQ3RELElBQUksT0FBTyxLQUFLLGlCQUFpQixJQUFJLE9BQU8sS0FBSyx5QkFBeUIsRUFBRTtvQkFDcEUsZUFBZSxHQUFHLGNBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDO29CQUNyRCxlQUFlLEdBQUcsY0FBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUM7b0JBQzNELGVBQWUsQ0FBQyxDQUFDLGVBQWUsRUFBRSxlQUFlLENBQUMsRUFBRSxFQUFFLFdBQVcsYUFBQSxFQUFFLENBQUMsQ0FBQztpQkFDdEU7Ozs7S0FDRjtJQUNLLGlDQUFXLEdBQWpCLFVBQWtCLElBQVksRUFBRSxHQUFZLEVBQUUsV0FBcUI7Ozs7Ozt3QkFDN0QsV0FBVyxHQUFHLEdBQUcsQ0FBQzs2QkFDbEIsQ0FBQyxXQUFXLEVBQVosd0JBQVk7d0JBQ0UscUJBQU0sUUFBUSxDQUFDLE1BQU0sQ0FBQyx1QkFBTSxnQ0FBa0IsS0FBRSxPQUFPLEVBQUUsZ0JBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUcsQ0FBQyxFQUFBOzt3QkFBakcsT0FBTyxHQUFHLFNBQXVGO3dCQUN2RyxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQzs7O3dCQUU5QixRQUFRLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLGlCQUFTLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLG1DQUFpQixDQUFDO3dCQUVsRixxQkFBTSxlQUFlLENBQUMsRUFBRSxRQUFRLFVBQUEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUE7O3dCQUE1RixPQUFPLEdBQUcsU0FBa0Y7NkJBQzlGLE9BQU8sRUFBUCx5QkFBTzt3QkFDVCxxQkFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUFBOzt3QkFBL0IsU0FBK0IsQ0FBQzt3QkFDaEMscUJBQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsRUFBQTs7d0JBQWpDLFNBQWlDLENBQUM7d0JBQ2xDLHFCQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsRUFBRSxXQUFXLGFBQUEsRUFBRSxPQUFPLFNBQUEsRUFBRSxDQUFDLEVBQUE7O3dCQUE3RCxTQUE2RCxDQUFDLENBQUMsZ0NBQWdDOzs7OzZCQUd6RixPQUFPLENBQUMsR0FBRyxDQUFDLFVBQUcsT0FBTyxlQUFZLENBQUMsRUFBbkMseUJBQW1DO3dCQUMvQixPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQUcsT0FBTyxlQUFZLENBQUMsQ0FBQyxDQUFDO3dCQUNyQyxxQkFBTSxPQUFPLENBQUMsY0FBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsRUFBQTs7d0JBQTFFLGtCQUFrQixHQUFHLFNBQXFEO3dCQUNoRixxQkFBTSxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUE7O3dCQUExQyxTQUEwQyxDQUFDOzs7Ozs7O3dCQUcvQyxjQUFNLENBQUMsT0FBTyxDQUFDLFlBQUssSUFBQSxjQUFLLEVBQUMsS0FBSyxDQUFDLHNDQUFtQyxDQUFDLENBQUM7d0JBQ3JFLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBRyxJQUFBLGNBQUssRUFBQyxJQUFJLENBQUMsNEJBQWtCLE9BQU8seUNBQXNDLENBQUMsQ0FBQzt3QkFDM0YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFHLElBQUEsY0FBSyxFQUFDLEtBQUssQ0FBQyxtRkFBZ0YsQ0FBQyxDQUFDO3dCQUM3RyxPQUFPLENBQUMsR0FBRyxDQUNULFVBQUcsSUFBQSxjQUFLLEVBQUMsSUFBSSxDQUFDLDJCQUFtQjs0QkFDL0IsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsb0RBQW9ELEdBQUcsSUFBSSxDQUFDLENBQ3JGLENBQUM7OzZCQUVKLHNCQUFPLEVBQUUsT0FBTyxTQUFBLEVBQUUsRUFBQzs7OztLQUNwQjtJQUNLLGtEQUE0QixHQUFsQyxVQUFtQyxJQUFZLEVBQUUsR0FBWTs7Ozs7O3dCQUN2RCxXQUFXLEdBQUcsR0FBRyxDQUFDO3dCQUN0QixJQUFJLENBQUMsV0FBVyxFQUFFOzRCQUNoQixXQUFXLEdBQUcsZ0JBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7eUJBQzFDO3dCQUNLLFFBQVEsR0FBRyxpQkFBUyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxtQ0FBaUIsQ0FBQzt3QkFFdEQscUJBQU0sZUFBZSxDQUFDLEVBQUUsUUFBUSxVQUFBLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFBOzt3QkFBNUYsT0FBTyxHQUFHLFNBQWtGOzZCQUM5RixPQUFPLEVBQVAsd0JBQU87Ozs7NkJBR0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFHLE9BQU8sZUFBWSxDQUFDLEVBQW5DLHdCQUFtQzt3QkFDL0IsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFHLE9BQU8sZUFBWSxDQUFDLENBQUMsQ0FBQzt3QkFDckMscUJBQU0sT0FBTyxDQUFDLGNBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEVBQUE7O3dCQUExRSxrQkFBa0IsR0FBRyxTQUFxRDt3QkFDaEYscUJBQU0sa0JBQWtCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFBOzt3QkFBMUMsU0FBMEMsQ0FBQzs7Ozs7Ozt3QkFHL0MsY0FBTSxDQUFDLE9BQU8sQ0FBQyxZQUFLLElBQUEsY0FBSyxFQUFDLEtBQUssQ0FBQyxzQ0FBbUMsQ0FBQyxDQUFDO3dCQUNyRSxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQUcsSUFBQSxjQUFLLEVBQUMsSUFBSSxDQUFDLDRCQUFrQixPQUFPLHlDQUFzQyxDQUFDLENBQUM7d0JBQzNGLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBRyxJQUFBLGNBQUssRUFBQyxLQUFLLENBQUMsbUZBQWdGLENBQUMsQ0FBQzt3QkFDN0csT0FBTyxDQUFDLEdBQUcsQ0FDVCxVQUFHLElBQUEsY0FBSyxFQUFDLElBQUksQ0FBQywyQkFBbUI7NEJBQy9CLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLG9EQUFvRCxHQUFHLElBQUksQ0FBQyxDQUNyRixDQUFDOzs0QkFFSixzQkFBTyxFQUFFLE9BQU8sU0FBQSxFQUFFLEVBQUM7Ozs7S0FDcEI7SUFDSyxxQ0FBZSxHQUFyQixVQUFzQixJQUFZLEVBQUUsR0FBWTs7O2dCQUM5QyxzQkFBTyxJQUFJLE9BQU8sQ0FBQyxVQUFBLE9BQU87d0JBQ3hCLElBQU0sTUFBTSxHQUFHLElBQUEscUJBQUssRUFBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUU7NEJBQzNDLEtBQUssRUFBRSxJQUFJOzRCQUNYLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSTs0QkFDckIsS0FBSyxFQUFFLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUM7eUJBQ3hDLENBQUMsQ0FBQzt3QkFDSCxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxVQUFBLElBQUk7NEJBQ3JCLE9BQU8sQ0FBQyxFQUFFLElBQUksTUFBQSxFQUFFLENBQUMsQ0FBQzt3QkFDcEIsQ0FBQyxDQUFDLENBQUM7b0JBQ0wsQ0FBQyxDQUFDLEVBQUM7OztLQUNKO0lBRUssNEJBQU0sR0FBWixVQUFhLE9BQWU7Ozs7OzRCQUNMLHFCQUFNLFFBQVEsQ0FBQyxNQUFNLENBQUM7NEJBQ3pDO2dDQUNFLElBQUksRUFBRSxTQUFTO2dDQUNmLElBQUksRUFBRSxNQUFNO2dDQUNaLE9BQU8sRUFBRSxHQUFHO2dDQUNaLE9BQU8sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUEsWUFBSSxFQUFDLDBCQUEwQixDQUFDLENBQUM7NkJBQ3pEO3lCQUNGLENBQUMsRUFBQTs7d0JBUEksT0FBTyxHQUFRLFNBT25CO3dCQUVGLElBQUksT0FBTyxDQUFDLElBQUksRUFBRTs0QkFDaEIsSUFBQSx5QkFBUyxFQUFDLFVBQVUsRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQzt5QkFDeEU7Ozs7O0tBQ0Y7SUFFSywwQkFBSSxHQUFWLFVBQVcsSUFBYSxFQUFFLEdBQVk7Ozs7Ozt3QkFDcEMsT0FBTyxDQUFDLEdBQUcsQ0FDVCxZQUFLLElBQUEsY0FBSyxFQUFDLElBQUksQ0FBQyxrQ0FBd0IsTUFBTSxDQUFDLFNBQVMsQ0FDdEQsbUZBQW1GLENBQ3BGLE9BQUksQ0FDTixDQUFDOzZCQUNFLENBQUMsSUFBSSxFQUFMLHdCQUFLO3dCQUNjLHFCQUFNLFFBQVEsQ0FBQyxNQUFNLENBQUMsa0NBQW9CLENBQUMsRUFBQTs7d0JBQTFELE9BQU8sR0FBUSxTQUEyQzt3QkFDMUQsZ0JBQWMsT0FBTyxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDO3dCQUMzRCxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQUssSUFBQSxjQUFLLEVBQUMsSUFBSSxDQUFDLGtEQUF3QyxhQUFXLFFBQUssQ0FBQyxDQUFDO3dCQUNsRSxxQkFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQVcsRUFBRSxHQUFHLENBQUMsRUFBQTs7d0JBQXBELE9BQU8sR0FBSyxDQUFBLFNBQXdDLENBQUEsUUFBN0M7d0JBQ2YsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsYUFBVyxFQUFFLENBQUMsQ0FBQzt3QkFDakQsT0FBTyxHQUFRLGdCQUFDLENBQUMsSUFBSSxDQUFDLDBCQUFZLEVBQUUsVUFBQSxJQUFJLElBQUksT0FBQSxJQUFJLENBQUMsS0FBSyxLQUFLLGFBQVcsRUFBMUIsQ0FBMEIsQ0FBQyxDQUFDOzZCQUMxRSxDQUFBLE9BQU8sSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFBLEVBQTNCLHdCQUEyQjt3QkFDN0IscUJBQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBQTs7d0JBQTFCLFNBQTBCLENBQUM7Ozs7NkJBRXBCLENBQUEsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQSxFQUEvQix3QkFBK0I7d0JBQ3hDLHFCQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFBOzt3QkFBckMsU0FBcUMsQ0FBQzs7OzZCQUVsQyxnQkFBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxLQUFLLGtCQUFrQixFQUF4QixDQUF3QixDQUFDLEVBQW5ELHdCQUFtRDt3QkFDOUMscUJBQU0sSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBQTs0QkFBekQsc0JBQU8sU0FBa0QsRUFBQzs0QkFFeEMscUJBQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUE7O3dCQUE3QyxPQUFPLEdBQUssQ0FBQSxTQUFpQyxDQUFBLFFBQXRDO3dCQUNULE9BQU8sR0FBUSxnQkFBQyxDQUFDLElBQUksQ0FBQywwQkFBWSxFQUFFLFVBQUEsSUFBSSxJQUFJLE9BQUEsZ0JBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBNUIsQ0FBNEIsQ0FBQyxDQUFDOzZCQUM1RSxDQUFBLE9BQU8sSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFBLEVBQTNCLHlCQUEyQjt3QkFDN0IscUJBQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBQTs7d0JBQTFCLFNBQTBCLENBQUM7Ozs7OztLQUdoQztJQUNILGtCQUFDO0FBQUQsQ0FBQyxBQW5NRCxJQW1NQztBQW5NWSxrQ0FBVyJ9
232
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC1tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luaXQvaW5pdC1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxjQUFjOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVkLDhDQUF3QjtBQUN4QixpQ0FBcUQ7QUFDckQsK0NBQWlEO0FBQ2pELGtDQUFvRTtBQUNwRSx3Q0FBZ0Q7QUFDaEQsNkNBQXVGO0FBQ3ZGLDBDQUF3QztBQUN4Qyx1REFBaUM7QUFDekIsSUFBQSxlQUFlLEdBQStCLGNBQUksZ0JBQW5DLEVBQUUsTUFBTSxHQUF1QixjQUFJLE9BQTNCLEVBQUUsTUFBTSxHQUFlLGNBQUksT0FBbkIsRUFBRSxRQUFRLEdBQUssY0FBSSxTQUFULENBQVU7QUFFM0QsUUFBUSxDQUFDLGNBQWMsQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLDhCQUE4QixDQUFDLENBQUMsQ0FBQztBQUNqRjtJQUVFO1FBRFUsV0FBTSxHQUFRLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFDVix3Q0FBa0IsR0FBeEIsVUFBeUIsT0FBTyxFQUFFLEVBQXdCO1lBQXRCLFdBQVcsaUJBQUEsRUFBRSxPQUFPLGFBQUE7Ozs7Z0JBQ3RELElBQUksT0FBTyxLQUFLLGlCQUFpQixJQUFJLE9BQU8sS0FBSyx5QkFBeUIsRUFBRTtvQkFDcEUsZUFBZSxHQUFHLGNBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDO29CQUNyRCxlQUFlLEdBQUcsY0FBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUM7b0JBQzNELElBQUEsdUJBQWUsRUFBQyxDQUFDLGVBQWUsRUFBRSxlQUFlLENBQUMsRUFBRSxFQUFFLFdBQVcsYUFBQSxFQUFFLENBQUMsQ0FBQztpQkFDdEU7Ozs7S0FDRjtJQUNLLGlDQUFXLEdBQWpCLFVBQWtCLElBQVks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
@@ -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
- templateFile = process.env.templateFile;
54
- if (!fs.existsSync(templateFile)) return [3 /*break*/, 2];
55
- return [4 /*yield*/, projectWithDevs()];
56
- case 1: return [2 /*return*/, _a.sent()];
57
- case 2: return [4 /*yield*/, projectWithNoDevs()];
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvb25ib2FyZGluZy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFEQUFtRDtBQUNuRCxrQ0FBZ0M7QUFDaEMsMENBQTZDO0FBQzdDLHVEQUFpQztBQUN6QixJQUFBLE1BQU0sR0FBd0IsY0FBSSxPQUE1QixFQUFFLFFBQVEsR0FBYyxjQUFJLFNBQWxCLEVBQU8sRUFBRSxHQUFLLGNBQUksSUFBVCxDQUFVO0FBRTNDLFNBQWUsVUFBVTs7Ozs7O29CQUNmLFlBQVksR0FBSyxPQUFPLENBQUMsR0FBRyxhQUFoQixDQUFpQjt5QkFDakMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsRUFBM0Isd0JBQTJCO29CQUN0QixxQkFBTSxlQUFlLEVBQUUsRUFBQTt3QkFBOUIsc0JBQU8sU0FBdUIsRUFBQzt3QkFFakMscUJBQU0saUJBQWlCLEVBQUUsRUFBQTs7b0JBQXpCLFNBQXlCLENBQUM7Ozs7O0NBQzNCO0FBRUQsU0FBZSxlQUFlOzs7WUFDNUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFBLFlBQUcsRUFBQyxVQUFHLElBQUEsWUFBSSxFQUFDLDhCQUE4QixDQUFDLE1BQUcsQ0FBQyxDQUFDLENBQUM7WUFFN0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFLLElBQUEsY0FBSyxFQUFDLElBQUksQ0FBQyxjQUFJLElBQUEsWUFBRyxFQUFDLGFBQWEsQ0FBQyxTQUFHLFlBQUcsQ0FBQyxTQUFTLENBQUMsaUNBQWlDLENBQUMsQ0FBRSxDQUFDLENBQUM7WUFDekcsT0FBTyxDQUFDLEdBQUcsQ0FDVCxVQUFHLElBQUEsY0FBSyxFQUFDLElBQUksQ0FBQyxjQUFJLElBQUEsWUFBRyxFQUFDLGVBQWUsQ0FBQyxTQUFHLFlBQUcsQ0FBQyxTQUFTLENBQ3BELGdFQUFnRSxDQUNqRSxDQUFFLENBQ0osQ0FBQztZQUNGLE9BQU8sQ0FBQyxHQUFHLENBQ1QsVUFBRyxJQUFBLGNBQUssRUFBQyxHQUFHLENBQUMsY0FBSSxJQUFBLFlBQUcsRUFBQyxVQUFVLENBQUMsU0FBRyxZQUFHLENBQUMsU0FBUyxDQUFDLDJEQUEyRCxDQUFDLENBQUUsQ0FDaEgsQ0FBQzs7OztDQUNIO0FBRUQsU0FBZSxpQkFBaUI7Ozs7O3dCQUNmLHFCQUFNLFFBQVEsQ0FBQyxNQUFNLENBQUM7d0JBQ25DOzRCQUNFLElBQUksRUFBRSxTQUFTOzRCQUNmLE9BQU8sRUFBRSxHQUFHOzRCQUNaLElBQUksRUFBRSxNQUFNOzRCQUNaLE9BQU8sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUEsWUFBSSxFQUFDLHNCQUFzQixDQUFDLENBQUM7eUJBQ3JEO3FCQUNGLENBQUMsRUFBQTs7b0JBUEksTUFBTSxHQUFHLFNBT2I7eUJBQ0UsTUFBTSxDQUFDLElBQUksRUFBWCx3QkFBVztvQkFDUCxXQUFXLEdBQUcsSUFBSSwwQkFBVyxFQUFFLENBQUM7b0JBQ3RDLHFCQUFNLFdBQVcsQ0FBQyxJQUFJLEVBQUUsRUFBQTs7b0JBQXhCLFNBQXdCLENBQUM7Ozs7OztDQUU1QjtBQUVELGtCQUFlLFVBQVUsQ0FBQyJ9
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvb25ib2FyZGluZy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFEQUFtRDtBQUNuRCxrQ0FBZ0M7QUFDaEMsMENBQTZDO0FBQzdDLHVEQUFpQztBQUN6QixJQUFBLE1BQU0sR0FBeUMsY0FBSSxPQUE3QyxFQUFFLFFBQVEsR0FBK0IsY0FBSSxTQUFuQyxFQUFPLEVBQUUsR0FBc0IsY0FBSSxJQUExQixFQUFFLGVBQWUsR0FBSyxjQUFJLGdCQUFULENBQVU7QUFFNUQsU0FBZSxVQUFVOzs7Ozs7O29CQUdOLHFCQUFNLGVBQWUsRUFBRSxFQUFBOztvQkFBdEMsWUFBWSxHQUFHLFNBQXVCLENBQUM7Ozs7Ozt5QkFFckMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsRUFBM0Isd0JBQTJCO29CQUN0QixxQkFBTSxlQUFlLEVBQUUsRUFBQTt3QkFBOUIsc0JBQU8sU0FBdUIsRUFBQzt3QkFFakMscUJBQU0saUJBQWlCLEVBQUUsRUFBQTs7b0JBQXpCLFNBQXlCLENBQUM7Ozs7O0NBQzNCO0FBRUQsU0FBZSxlQUFlOzs7WUFDNUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFBLFlBQUcsRUFBQyxVQUFHLElBQUEsWUFBSSxFQUFDLDhCQUE4QixDQUFDLE1BQUcsQ0FBQyxDQUFDLENBQUM7WUFFN0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFLLElBQUEsY0FBSyxFQUFDLElBQUksQ0FBQyxjQUFJLElBQUEsWUFBRyxFQUFDLGFBQWEsQ0FBQyxTQUFHLFlBQUcsQ0FBQyxTQUFTLENBQUMsaUNBQWlDLENBQUMsQ0FBRSxDQUFDLENBQUM7WUFDekcsT0FBTyxDQUFDLEdBQUcsQ0FDVCxVQUFHLElBQUEsY0FBSyxFQUFDLElBQUksQ0FBQyxjQUFJLElBQUEsWUFBRyxFQUFDLGVBQWUsQ0FBQyxTQUFHLFlBQUcsQ0FBQyxTQUFTLENBQ3BELGdFQUFnRSxDQUNqRSxDQUFFLENBQ0osQ0FBQztZQUNGLE9BQU8sQ0FBQyxHQUFHLENBQ1QsVUFBRyxJQUFBLGNBQUssRUFBQyxHQUFHLENBQUMsY0FBSSxJQUFBLFlBQUcsRUFBQyxVQUFVLENBQUMsU0FBRyxZQUFHLENBQUMsU0FBUyxDQUFDLDJEQUEyRCxDQUFDLENBQUUsQ0FDaEgsQ0FBQzs7OztDQUNIO0FBRUQsU0FBZSxpQkFBaUI7Ozs7O3dCQUNmLHFCQUFNLFFBQVEsQ0FBQyxNQUFNLENBQUM7d0JBQ25DOzRCQUNFLElBQUksRUFBRSxTQUFTOzRCQUNmLE9BQU8sRUFBRSxHQUFHOzRCQUNaLElBQUksRUFBRSxNQUFNOzRCQUNaLE9BQU8sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUEsWUFBSSxFQUFDLHNCQUFzQixDQUFDLENBQUM7eUJBQ3JEO3FCQUNGLENBQUMsRUFBQTs7b0JBUEksTUFBTSxHQUFHLFNBT2I7eUJBQ0UsTUFBTSxDQUFDLElBQUksRUFBWCx3QkFBVztvQkFDUCxXQUFXLEdBQUcsSUFBSSwwQkFBVyxFQUFFLENBQUM7b0JBQ3RDLHFCQUFNLFdBQVcsQ0FBQyxJQUFJLEVBQUUsRUFBQTs7b0JBQXhCLFNBQXdCLENBQUM7Ozs7OztDQUU1QjtBQUVELGtCQUFlLFVBQVUsQ0FBQyJ9