@serverless-devs/s 3.0.0-beta.2 → 3.0.0-beta.4

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 (54) hide show
  1. package/lib/daemon/update.js +18 -6
  2. package/lib/index.js +1165 -465
  3. package/lib/update-notifier.js +260 -0
  4. package/package.json +24 -17
  5. package/replace-committers.sh +69 -0
  6. package/s-linux +0 -0
  7. package/s-macos +0 -0
  8. package/s-win.exe +0 -0
  9. package/lib/command/clean/index.js +0 -125
  10. package/lib/command/config/command/add.js +0 -100
  11. package/lib/command/config/command/default.js +0 -78
  12. package/lib/command/config/command/get.js +0 -100
  13. package/lib/command/config/command/remove.js +0 -77
  14. package/lib/command/config/command/rename.js +0 -84
  15. package/lib/command/config/index.js +0 -27
  16. package/lib/command/config/utils/index.js +0 -19
  17. package/lib/command/custom/help.js +0 -231
  18. package/lib/command/custom/index.js +0 -177
  19. package/lib/command/custom/types.js +0 -3
  20. package/lib/command/custom/v1/index.js +0 -293
  21. package/lib/command/index.js +0 -95
  22. package/lib/command/init/constant.js +0 -600
  23. package/lib/command/init/index.js +0 -101
  24. package/lib/command/init/manager.js +0 -181
  25. package/lib/command/registry/command/detail.js +0 -71
  26. package/lib/command/registry/command/list.js +0 -69
  27. package/lib/command/registry/command/login.js +0 -90
  28. package/lib/command/registry/command/publish.js +0 -67
  29. package/lib/command/registry/command/remove.js +0 -70
  30. package/lib/command/registry/index.js +0 -27
  31. package/lib/command/set/command/analysis.js +0 -94
  32. package/lib/command/set/command/log.js +0 -94
  33. package/lib/command/set/command/proxy.js +0 -98
  34. package/lib/command/set/command/registry.js +0 -115
  35. package/lib/command/set/index.js +0 -25
  36. package/lib/constant.js +0 -25
  37. package/lib/daemon/template.js +0 -20
  38. package/lib/error/command-error.js +0 -29
  39. package/lib/error/config-delete-error.js +0 -29
  40. package/lib/error/config-error.js +0 -29
  41. package/lib/error/config-get-error.js +0 -29
  42. package/lib/error/human-error.js +0 -71
  43. package/lib/error/human-warning.js +0 -18
  44. package/lib/error/index.js +0 -68
  45. package/lib/error/init-error.js +0 -29
  46. package/lib/error/serverless-error.js +0 -12
  47. package/lib/i18n/en.js +0 -4
  48. package/lib/i18n/index.js +0 -16
  49. package/lib/i18n/zh.js +0 -4
  50. package/lib/logger.js +0 -82
  51. package/lib/utils/check-node-version.js +0 -15
  52. package/lib/utils/get-pid.js +0 -55
  53. package/lib/utils/index.js +0 -43
  54. package/lib/utils/set-proxy.js +0 -21
@@ -1,600 +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
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.APPLICATION_TEMPLATE = exports.ALL_TEMPLATE = void 0;
40
- var lodash_1 = require("lodash");
41
- var first_level_template = [
42
- {
43
- name: 'Alibaba Cloud Serverless',
44
- value: 'Alibaba_Cloud_Serverless',
45
- },
46
- {
47
- name: 'AWS Cloud Serverless',
48
- value: 'devscomp/start-lambda',
49
- },
50
- {
51
- name: 'Tencent Cloud Serverless',
52
- value: 'devscomp/start-scf',
53
- },
54
- {
55
- name: 'Huawei Cloud Serverless',
56
- value: 'Huawei_Cloud_Serverless',
57
- },
58
- {
59
- name: 'Baidu Cloud Serverless',
60
- value: 'Baidu_Cloud_Serverless',
61
- },
62
- {
63
- name: 'Dev Template for Serverless Devs',
64
- value: 'Dev_Template_for_Serverless_Devs',
65
- },
66
- ];
67
- var devs_template = [
68
- {
69
- name: 'Application Scaffolding',
70
- value: 'devsapp/start-application',
71
- },
72
- {
73
- name: 'Component Scaffolding',
74
- value: 'devsapp/start-component',
75
- },
76
- {
77
- name: 'Plugin Scaffolding',
78
- value: 'devsapp/start-plugin',
79
- },
80
- ];
81
- var ali_template = [
82
- {
83
- name: 'Quick start [Deploy a Hello World function to FaaS]',
84
- value: 'quick_start',
85
- },
86
- {
87
- name: 'Container example [Deploy function to FaaS with custom-container]',
88
- value: 'container_example',
89
- },
90
- {
91
- name: 'Web Framework [Deploy a web framework to FaaS]',
92
- value: 'web_framework',
93
- },
94
- {
95
- name: 'Static website [Deploy a static website]',
96
- value: 'static_website',
97
- },
98
- {
99
- name: 'Best practice [Experience serverless project]',
100
- value: 'best_practice',
101
- },
102
- ];
103
- var quick_start_template = [
104
- {
105
- name: '[HTTP] Node.js 14',
106
- value: 'devsapp/start-fc-http-nodejs14',
107
- isDeploy: true,
108
- },
109
- {
110
- name: '[HTTP] Python3',
111
- value: 'devsapp/start-fc-http-python3',
112
- isDeploy: true,
113
- },
114
- {
115
- name: '[HTTP] Java8',
116
- value: 'devsapp/start-fc-http-java8',
117
- },
118
- {
119
- name: '[HTTP] PHP7',
120
- value: 'devsapp/start-fc-http-php7',
121
- isDeploy: true,
122
- },
123
- {
124
- name: '[HTTP] Go1',
125
- value: 'devsapp/start-fc-http-golang1.x',
126
- isDeploy: true,
127
- },
128
- {
129
- name: '[HTTP] C++ (custom)',
130
- value: 'devsapp/fc-custom-cpp-http',
131
- isDeploy: true,
132
- },
133
- {
134
- name: '[Event] Node.js 14',
135
- value: 'devsapp/start-fc-event-nodejs14',
136
- isDeploy: true,
137
- },
138
- {
139
- name: '[Event] Python3',
140
- value: 'devsapp/start-fc-event-python3',
141
- isDeploy: true,
142
- },
143
- {
144
- name: '[Event] Java8',
145
- value: 'devsapp/start-fc-event-java8',
146
- },
147
- {
148
- name: '[Event] PHP7',
149
- value: 'devsapp/start-fc-event-php7',
150
- isDeploy: true,
151
- },
152
- {
153
- name: '[Event] Go1',
154
- value: 'devsapp/start-fc-event-golang1.x',
155
- isDeploy: true,
156
- },
157
- {
158
- name: '[Event] Go (custom)',
159
- value: 'devsapp/fc-custom-golang-event',
160
- },
161
- {
162
- name: '[Event] Powershell (custom)',
163
- value: 'devsapp/fc-custom-powershell-event',
164
- },
165
- {
166
- name: '[Event] Typescript (custom)',
167
- value: 'devsapp/fc-custom-typescript-event',
168
- },
169
- {
170
- name: '[Event] Lua (custom)',
171
- value: 'devsapp/fc-custom-lua-event',
172
- },
173
- {
174
- name: '[Event] Ruby (custom)',
175
- value: 'devsapp/fc-custom-ruby-event',
176
- },
177
- {
178
- name: '[Event] Rust (custom)',
179
- value: 'devsapp/fc-custom-rust-event',
180
- },
181
- {
182
- name: '[Event] Dart (custom)',
183
- value: 'devsapp/fc-custom-dart-event',
184
- },
185
- ];
186
- var container_example_template = [
187
- {
188
- name: '[HTTP] C++',
189
- value: 'devsapp/start-fc-custom-container-http-cpp',
190
- },
191
- {
192
- name: '[HTTP] Java (Springboot)',
193
- value: 'devsapp/start-fc-custom-container-http-springboot',
194
- },
195
- {
196
- name: '[HTTP] ASP.NET Core',
197
- value: 'devsapp/start-fc-custom-container-http-aspdotnetcore',
198
- },
199
- {
200
- name: '[Event] Node.js 14',
201
- value: 'devsapp/start-fc-custom-container-event-nodejs14',
202
- isDeploy: true,
203
- },
204
- {
205
- name: '[Event] Python3.9',
206
- value: 'devsapp/start-fc-custom-container-event-python3.9',
207
- },
208
- {
209
- name: '[Event] C++',
210
- value: 'devsapp/start-fc-custom-container-event-cpp',
211
- },
212
- ];
213
- var web_framework_template = [
214
- {
215
- name: 'Express.js',
216
- value: 'devsapp/start-express',
217
- isDeploy: true,
218
- },
219
- {
220
- name: 'Egg.js',
221
- value: 'devsapp/start-egg',
222
- isDeploy: true,
223
- },
224
- {
225
- name: 'Koa.js',
226
- value: 'devsapp/start-koa',
227
- },
228
- {
229
- name: 'Nuxt.js (SSR)',
230
- value: 'devsapp/start-nuxt-ssr',
231
- isDeploy: true,
232
- },
233
- {
234
- name: 'Next.js',
235
- value: 'devsapp/start-next',
236
- isDeploy: true,
237
- },
238
- {
239
- name: 'Django',
240
- value: 'devsapp/start-django',
241
- isDeploy: true,
242
- },
243
- {
244
- name: 'Flask',
245
- value: 'devsapp/start-flask',
246
- isDeploy: true,
247
- },
248
- {
249
- name: 'Tornado',
250
- value: 'devsapp/start-tornado',
251
- isDeploy: true,
252
- },
253
- {
254
- name: 'Springboot',
255
- value: 'devsapp/start-springboot',
256
- },
257
- {
258
- name: 'ThinkPHP',
259
- value: 'devsapp/start-thinkphp',
260
- },
261
- {
262
- name: 'Laravel',
263
- value: 'devsapp/start-laravel',
264
- },
265
- ];
266
- var static_website_template = [
267
- {
268
- name: 'Docusaurus',
269
- value: 'devsapp/website-docusaurus',
270
- isDeploy: true,
271
- },
272
- {
273
- name: 'Hexo',
274
- value: 'devsapp/website-hexo',
275
- isDeploy: true,
276
- },
277
- {
278
- name: 'Vuepress',
279
- value: 'devsapp/website-vuepress',
280
- isDeploy: true,
281
- },
282
- ];
283
- var best_practice_template = [
284
- {
285
- name: '[AI] PyTorch',
286
- value: 'devsapp/start-pytorch',
287
- isDeploy: true,
288
- },
289
- {
290
- name: '[AI] Tensorflow',
291
- value: 'devsapp/start-tensorflow',
292
- isDeploy: true,
293
- },
294
- {
295
- name: '[AI] Image Prediction',
296
- value: 'devsapp/image-prediction-app',
297
- isDeploy: true,
298
- },
299
- {
300
- name: '[DB] MySQL Example',
301
- value: 'devsapp/start-fc-mysql-python',
302
- },
303
- {
304
- name: '[DB] MongoDB Example',
305
- value: 'devsapp/start-fc-mongodb-python',
306
- },
307
- {
308
- name: '[DB] Redis Example',
309
- value: 'devsapp/start-fc-redis-python',
310
- },
311
- {
312
- name: 'Puppeteer Example',
313
- value: 'devsapp/start-puppeteer',
314
- },
315
- {
316
- name: 'FFmpeg Example',
317
- value: 'devsapp/ffmpeg-app',
318
- },
319
- {
320
- name: 'Mall admin Example',
321
- value: 'devsapp/start-fc-mall-admin',
322
- },
323
- ];
324
- var all_ali_template = (0, lodash_1.concat)(ali_template, quick_start_template, container_example_template, web_framework_template, static_website_template, best_practice_template);
325
- var huawei_template = [
326
- {
327
- name: 'Quick start [Deploy a Hello World function to FaaS]',
328
- value: 'quick_start',
329
- },
330
- ];
331
- var huawei_quick_start_template = [
332
- {
333
- name: '[HTTP] Node.js 14',
334
- value: 'start-fg-http-nodejs14',
335
- },
336
- {
337
- name: '[HTTP] Python3',
338
- value: 'start-fg-http-python3',
339
- },
340
- {
341
- name: '[Event] Node.js 14',
342
- value: 'start-fg-event-nodejs14',
343
- },
344
- {
345
- name: '[Event] Python3',
346
- value: 'start-fg-event-python3',
347
- },
348
- ];
349
- var all_huawei_template = (0, lodash_1.concat)(huawei_template, huawei_quick_start_template);
350
- var baidu_template = [
351
- {
352
- name: 'Quick start [Deploy a Hello World function to FaaS]',
353
- value: 'quick_start',
354
- },
355
- ];
356
- var baidu_quick_start_template = [
357
- {
358
- name: '[HTTP] Node.js 12',
359
- value: 'start-cfc-http-nodejs12',
360
- },
361
- {
362
- name: '[HTTP] Python 3',
363
- value: 'start-cfc-http-python3',
364
- },
365
- ];
366
- var all_baidu_template = (0, lodash_1.concat)(baidu_template, baidu_quick_start_template);
367
- exports.ALL_TEMPLATE = (0, lodash_1.concat)(first_level_template, all_ali_template, all_huawei_template, all_baidu_template, devs_template);
368
- exports.APPLICATION_TEMPLATE = [
369
- {
370
- type: 'autocomplete',
371
- name: 'firstLevel',
372
- loop: true,
373
- message: 'Hello Serverless for Cloud Vendors',
374
- default: (0, lodash_1.first)(first_level_template).value,
375
- source: function (_answersSoFar, input) {
376
- if (input) {
377
- return exports.ALL_TEMPLATE.filter(function (item) { return (0, lodash_1.lowerCase)(item.name).includes((0, lodash_1.lowerCase)(input)); });
378
- }
379
- return first_level_template;
380
- },
381
- },
382
- {
383
- type: 'autocomplete',
384
- name: 'template',
385
- message: 'Which template do you like?',
386
- default: (0, lodash_1.first)(devs_template).value,
387
- loop: true,
388
- when: function (answers) {
389
- return answers.firstLevel === 'Dev_Template_for_Serverless_Devs';
390
- },
391
- source: function (_answersSoFar, input) {
392
- return __awaiter(this, void 0, void 0, function () {
393
- return __generator(this, function (_a) {
394
- if (input) {
395
- return [2 /*return*/, devs_template.filter(function (item) { return (0, lodash_1.lowerCase)(item.name).includes((0, lodash_1.lowerCase)(input)); })];
396
- }
397
- return [2 /*return*/, devs_template];
398
- });
399
- });
400
- },
401
- },
402
- {
403
- type: 'autocomplete',
404
- name: 'ali_template',
405
- when: function (answers) {
406
- return answers.firstLevel === 'Alibaba_Cloud_Serverless';
407
- },
408
- default: (0, lodash_1.first)(ali_template).value,
409
- message: 'Hello, serverlesser. Which template do you like?',
410
- source: function (_answersSoFar, input) {
411
- return __awaiter(this, void 0, void 0, function () {
412
- return __generator(this, function (_a) {
413
- if (input) {
414
- return [2 /*return*/, all_ali_template.filter(function (item) { return (0, lodash_1.lowerCase)(item.name).includes((0, lodash_1.lowerCase)(input)); })];
415
- }
416
- return [2 /*return*/, ali_template];
417
- });
418
- });
419
- },
420
- },
421
- {
422
- type: 'autocomplete',
423
- name: 'huawei_template',
424
- when: function (answers) {
425
- return answers.firstLevel === 'Huawei_Cloud_Serverless';
426
- },
427
- default: (0, lodash_1.first)(huawei_template).value,
428
- message: 'Hello, serverlesser. Which template do you like?',
429
- source: function (_answersSoFar, input) {
430
- return __awaiter(this, void 0, void 0, function () {
431
- return __generator(this, function (_a) {
432
- if (input) {
433
- return [2 /*return*/, all_huawei_template.filter(function (item) { return (0, lodash_1.lowerCase)(item.name).includes((0, lodash_1.lowerCase)(input)); })];
434
- }
435
- return [2 /*return*/, huawei_template];
436
- });
437
- });
438
- },
439
- },
440
- {
441
- type: 'autocomplete',
442
- name: 'template',
443
- loop: true,
444
- when: function (answers) {
445
- return answers.huawei_template === 'quick_start';
446
- },
447
- message: 'Which template do you like?',
448
- default: (0, lodash_1.first)(huawei_quick_start_template).value,
449
- source: function (_answersSoFar, input) {
450
- return __awaiter(this, void 0, void 0, function () {
451
- return __generator(this, function (_a) {
452
- if (input) {
453
- return [2 /*return*/, huawei_quick_start_template.filter(function (item) { return (0, lodash_1.lowerCase)(item.name).includes((0, lodash_1.lowerCase)(input)); })];
454
- }
455
- return [2 /*return*/, huawei_quick_start_template];
456
- });
457
- });
458
- },
459
- },
460
- {
461
- type: 'autocomplete',
462
- name: 'baidu_template',
463
- when: function (answers) {
464
- return answers.firstLevel === 'Baidu_Cloud_Serverless';
465
- },
466
- default: (0, lodash_1.first)(baidu_template).value,
467
- message: 'Hello, serverlesser. Which template do you like?',
468
- source: function (_answersSoFar, input) {
469
- return __awaiter(this, void 0, void 0, function () {
470
- return __generator(this, function (_a) {
471
- if (input) {
472
- return [2 /*return*/, all_baidu_template.filter(function (item) { return (0, lodash_1.lowerCase)(item.name).includes((0, lodash_1.lowerCase)(input)); })];
473
- }
474
- return [2 /*return*/, baidu_template];
475
- });
476
- });
477
- },
478
- },
479
- {
480
- type: 'autocomplete',
481
- name: 'template',
482
- loop: true,
483
- when: function (answers) {
484
- return answers.baidu_template === 'quick_start';
485
- },
486
- message: 'Which template do you like?',
487
- default: (0, lodash_1.first)(baidu_quick_start_template).value,
488
- source: function (_answersSoFar, input) {
489
- return __awaiter(this, void 0, void 0, function () {
490
- return __generator(this, function (_a) {
491
- if (input) {
492
- return [2 /*return*/, baidu_quick_start_template.filter(function (item) { return (0, lodash_1.lowerCase)(item.name).includes((0, lodash_1.lowerCase)(input)); })];
493
- }
494
- return [2 /*return*/, baidu_quick_start_template];
495
- });
496
- });
497
- },
498
- },
499
- {
500
- type: 'autocomplete',
501
- name: 'template',
502
- loop: true,
503
- when: function (answers) {
504
- return answers.ali_template === 'quick_start';
505
- },
506
- message: 'Which template do you like?',
507
- default: (0, lodash_1.first)(quick_start_template).value,
508
- source: function (_answersSoFar, input) {
509
- return __awaiter(this, void 0, void 0, function () {
510
- return __generator(this, function (_a) {
511
- if (input) {
512
- return [2 /*return*/, quick_start_template.filter(function (item) { return (0, lodash_1.lowerCase)(item.name).includes((0, lodash_1.lowerCase)(input)); })];
513
- }
514
- return [2 /*return*/, quick_start_template];
515
- });
516
- });
517
- },
518
- },
519
- {
520
- type: 'autocomplete',
521
- name: 'template',
522
- loop: true,
523
- when: function (answers) {
524
- return answers.ali_template === 'container_example';
525
- },
526
- message: 'Which template do you like?',
527
- default: (0, lodash_1.first)(container_example_template).value,
528
- source: function (_answersSoFar, input) {
529
- return __awaiter(this, void 0, void 0, function () {
530
- return __generator(this, function (_a) {
531
- if (input) {
532
- return [2 /*return*/, container_example_template.filter(function (item) { return (0, lodash_1.lowerCase)(item.name).includes((0, lodash_1.lowerCase)(input)); })];
533
- }
534
- return [2 /*return*/, container_example_template];
535
- });
536
- });
537
- },
538
- },
539
- {
540
- type: 'autocomplete',
541
- name: 'template',
542
- loop: true,
543
- when: function (answers) {
544
- return answers.ali_template === 'web_framework';
545
- },
546
- message: 'Which template do you like?',
547
- default: (0, lodash_1.first)(web_framework_template).value,
548
- source: function (_answersSoFar, input) {
549
- return __awaiter(this, void 0, void 0, function () {
550
- return __generator(this, function (_a) {
551
- if (input) {
552
- return [2 /*return*/, web_framework_template.filter(function (item) { return (0, lodash_1.lowerCase)(item.name).includes((0, lodash_1.lowerCase)(input)); })];
553
- }
554
- return [2 /*return*/, web_framework_template];
555
- });
556
- });
557
- },
558
- },
559
- {
560
- type: 'autocomplete',
561
- name: 'template',
562
- loop: true,
563
- when: function (answers) {
564
- return answers.ali_template === 'static_website';
565
- },
566
- message: 'Which template do you like?',
567
- default: (0, lodash_1.first)(static_website_template).value,
568
- source: function (_answersSoFar, input) {
569
- return __awaiter(this, void 0, void 0, function () {
570
- return __generator(this, function (_a) {
571
- if (input) {
572
- return [2 /*return*/, static_website_template.filter(function (item) { return (0, lodash_1.lowerCase)(item.name).includes((0, lodash_1.lowerCase)(input)); })];
573
- }
574
- return [2 /*return*/, static_website_template];
575
- });
576
- });
577
- },
578
- },
579
- {
580
- type: 'autocomplete',
581
- name: 'template',
582
- loop: true,
583
- when: function (answers) {
584
- return answers.ali_template === 'best_practice';
585
- },
586
- message: 'Which template do you like?',
587
- default: (0, lodash_1.first)(best_practice_template).value,
588
- source: function (_answersSoFar, input) {
589
- return __awaiter(this, void 0, void 0, function () {
590
- return __generator(this, function (_a) {
591
- if (input) {
592
- return [2 /*return*/, best_practice_template.filter(function (item) { return (0, lodash_1.lowerCase)(item.name).includes((0, lodash_1.lowerCase)(input)); })];
593
- }
594
- return [2 /*return*/, best_practice_template];
595
- });
596
- });
597
- },
598
- },
599
- ];
600
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZC9pbml0L2NvbnN0YW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlDQUFrRDtBQUVsRCxJQUFNLG9CQUFvQixHQUFHO0lBQzNCO1FBQ0UsSUFBSSxFQUFFLDBCQUEwQjtRQUNoQyxLQUFLLEVBQUUsMEJBQTBCO0tBQ2xDO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsc0JBQXNCO1FBQzVCLEtBQUssRUFBRSx1QkFBdUI7S0FDL0I7SUFDRDtRQUNFLElBQUksRUFBRSwwQkFBMEI7UUFDaEMsS0FBSyxFQUFFLG9CQUFvQjtLQUM1QjtJQUNEO1FBQ0UsSUFBSSxFQUFFLHlCQUF5QjtRQUMvQixLQUFLLEVBQUUseUJBQXlCO0tBQ2pDO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsd0JBQXdCO1FBQzlCLEtBQUssRUFBRSx3QkFBd0I7S0FDaEM7SUFDRDtRQUNFLElBQUksRUFBRSxrQ0FBa0M7UUFDeEMsS0FBSyxFQUFFLGtDQUFrQztLQUMxQztDQUNGLENBQUM7QUFFRixJQUFNLGFBQWEsR0FBRztJQUNwQjtRQUNFLElBQUksRUFBRSx5QkFBeUI7UUFDL0IsS0FBSyxFQUFFLDJCQUEyQjtLQUNuQztJQUNEO1FBQ0UsSUFBSSxFQUFFLHVCQUF1QjtRQUM3QixLQUFLLEVBQUUseUJBQXlCO0tBQ2pDO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsb0JBQW9CO1FBQzFCLEtBQUssRUFBRSxzQkFBc0I7S0FDOUI7Q0FDRixDQUFDO0FBRUYsSUFBTSxZQUFZLEdBQUc7SUFDbkI7UUFDRSxJQUFJLEVBQUUscURBQXFEO1FBQzNELEtBQUssRUFBRSxhQUFhO0tBQ3JCO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsbUVBQW1FO1FBQ3pFLEtBQUssRUFBRSxtQkFBbUI7S0FDM0I7SUFDRDtRQUNFLElBQUksRUFBRSxnREFB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