@studiokloek/vite-config 0.3.2 → 0.3.5
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/dist/index.js +6 -6
- package/package.json +10 -9
package/dist/index.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { normalizePath, createServer, build } from 'vite';
|
|
2
|
-
import { readFileSync, existsSync, promises } from 'node:fs';
|
|
3
2
|
import path from 'node:path';
|
|
4
3
|
import { fileURLToPath } from 'node:url';
|
|
5
4
|
import legacyPlugin from '@vitejs/plugin-legacy';
|
|
@@ -9,6 +8,8 @@ import imageminPlugin2 from 'vite-plugin-imagemin';
|
|
|
9
8
|
import { svelte } from '@sveltejs/vite-plugin-svelte';
|
|
10
9
|
import fullReload from 'vite-plugin-full-reload';
|
|
11
10
|
import tsconfigPathsPlugin from 'vite-tsconfig-paths';
|
|
11
|
+
import basicSSL from '@vitejs/plugin-basic-ssl';
|
|
12
|
+
import { readFileSync, existsSync, promises } from 'node:fs';
|
|
12
13
|
import process from 'node:process';
|
|
13
14
|
import os from 'node:os';
|
|
14
15
|
import viteHandlebarsPlugin from 'vite-plugin-handlebars';
|
|
@@ -368,6 +369,7 @@ function servePlugins(options) {
|
|
|
368
369
|
always: true,
|
|
369
370
|
}),
|
|
370
371
|
handlebarsPlugin(options.config.serve.partials, options),
|
|
372
|
+
basicSSL(),
|
|
371
373
|
];
|
|
372
374
|
}
|
|
373
375
|
|
|
@@ -420,10 +422,8 @@ async function defineKloekViteConfig(environment) {
|
|
|
420
422
|
switch (environment.command) {
|
|
421
423
|
case 'serve':
|
|
422
424
|
config.server = {
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
cert: readFileSync(path.resolve(cwd, 'cert', 'cert.pem')),
|
|
426
|
-
},
|
|
425
|
+
host: 'localhost',
|
|
426
|
+
https: true,
|
|
427
427
|
open: getPageToServe(options.config, options.settings.games),
|
|
428
428
|
};
|
|
429
429
|
break;
|
|
@@ -475,4 +475,4 @@ async function kloekBuild(flags) {
|
|
|
475
475
|
}
|
|
476
476
|
|
|
477
477
|
export { kloekBuild, kloekDevelopment };
|
|
478
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uL3NyYy9wbHVnaW5zL2xpYi9pbWFnZS1wbHVnaW4udHMiLCIuLi9zcmMvcGx1Z2lucy9saWIvbWFuaWZlc3QtcGx1Z2luLnRzIiwiLi4vc3JjL3BsdWdpbnMvYnVpbGQudHMiLCIuLi9zcmMvdXRpbHMvZ2FtZS50cyIsIi4uL3NyYy91dGlscy9idWlsZC50cyIsIi4uL3NyYy91dGlscy9pbmRleC50cyIsIi4uL3NyYy9wbHVnaW5zL2xpYi9oYW5kbGViYXJzLXBsdWdpbi50cyIsIi4uL3NyYy9wbHVnaW5zL2xpYi9odG1sLXBsdWdpbi50cyIsIi4uL3NyYy9wbHVnaW5zL3NlcnZlLnRzIiwiLi4vc3JjL2NvbmZpZy50cyIsIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbmZpZ0VudiwgUGx1Z2lufSBmcm9tICd2aXRlJztcbmltcG9ydCBpbWFnZW1pblBsdWdpbjIgZnJvbSAndml0ZS1wbHVnaW4taW1hZ2VtaW4nO1xuaW1wb3J0IHtJbWFnZVF1YWxpdHlDb25maWd9IGZyb20gJy4uLy4uL3V0aWxzL2ludGVyZmFjZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gaW1hZ2VtaW5QbHVnaW4oXG4gIGVudmlyb25tZW50OiBDb25maWdFbnYsXG4gIG9wdGlvbnM6IEltYWdlUXVhbGl0eUNvbmZpZyxcbik6IFBsdWdpbiB7XG4gIHJldHVybiBpbWFnZW1pblBsdWdpbjIoe1xuICAgIGRpc2FibGU6IGVudmlyb25tZW50Lm1vZGUgIT09ICdwcm9kdWN0aW9uJyxcbiAgICBtb3pqcGVnOiB7XG4gICAgICBxdWFsaXR5OiBvcHRpb25zPy5qcGVnID8/IDgwLFxuICAgIH0sXG4gICAgcG5ncXVhbnQ6IHtcbiAgICAgIHN0cmlwOiB0cnVlLFxuICAgICAgc3BlZWQ6IDIsXG4gICAgICBkaXRoZXJpbmc6IDAuMjUsXG4gICAgICBxdWFsaXR5OiBvcHRpb25zPy5wbmcgPz8gWzAuNSwgMC43XSxcbiAgICB9LFxuICB9KSBhcyBQbHVnaW47XG59XG4iLCJpbXBvcnQge1BsdWdpbiwgUmVzb2x2ZWRDb25maWd9IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IHtHYW1lU2V0dGluZ3MsIEdhbWVzU2V0dGluZ3N9IGZyb20gJy4uLy4uL3V0aWxzL2ludGVyZmFjZXMnO1xuXG5mdW5jdGlvbiByZW5kZXJHYW1lTWFuaWZlc3QoXG4gIHBhZ2VJZDogc3RyaW5nLFxuICBzZXR0aW5nczogR2FtZVNldHRpbmdzLFxuICBjb25maWc6IFJlc29sdmVkQ29uZmlnLFxuKTogc3RyaW5nIHtcbiAgY29uc3QgbWFuaWZlc3QgPSB7XG4gICAgc2hvcnRfbmFtZTogYCR7c2V0dGluZ3MubWV0YS5hcHB0aXRsZX1gLFxuICAgIG5hbWU6IGAke3NldHRpbmdzLm1ldGEudGl0bGV9YCxcbiAgICBkZXNjcmlwdGlvbjogYCR7c2V0dGluZ3MubWV0YS5kZXNjcmlwdGlvbn1gLFxuICAgIHNjb3BlOiBgJHtjb25maWcuYmFzZX0ke3BhZ2VJZH0uaHRtbGAsXG4gICAgc3RhcnRfdXJsOiBgJHtjb25maWcuYmFzZX0ke3BhZ2VJZH0uaHRtbGAsXG4gICAgZGlzcGxheTogJ2Z1bGxzY3JlZW4nLFxuICAgIG9yaWVudGF0aW9uOiBgJHtzZXR0aW5ncy5vcHRpb25zLm9yaWVudGF0aW9uID8/ICdsYW5kc2NhcGUnfWAsXG4gICAgaWNvbnM6IFtcbiAgICAgIHtcbiAgICAgICAgc3JjOiBgJHtjb25maWcuYmFzZX1tZXRhLyR7c2V0dGluZ3MuaW5mby5pZH0vaWNvbnMvY2hyb21lLXRvdWNoLWljb24tMTkyeDE5Mi5wbmdgLFxuICAgICAgICB0eXBlOiAnaW1hZ2UvcG5nJyxcbiAgICAgICAgc2l6ZXM6ICcxOTJ4MTkyJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHNyYzogYCR7Y29uZmlnLmJhc2V9bWV0YS8ke3NldHRpbmdzLmluZm8uaWR9L2ljb25zL2ljb24ucG5nYCxcbiAgICAgICAgdHlwZTogJ2ltYWdlL3BuZycsXG4gICAgICAgIHNpemVzOiAnMTAyNHgxMDI0JyxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBiYWNrZ3JvdW5kX2NvbG9yOiBgJHtzZXR0aW5ncy5vcHRpb25zLmJhY2tncm91bmRDb2xvcn1gLFxuICAgIHRoZW1lX2NvbG9yOiBgJHtzZXR0aW5ncy5vcHRpb25zLmJhY2tncm91bmRDb2xvcn1gLFxuICB9O1xuXG4gIHJldHVybiBgJHtKU09OLnN0cmluZ2lmeShtYW5pZmVzdCwgbnVsbCwgMil9XFxuYDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hbmlmZXN0UGx1Z2luKGdhbWVzOiBHYW1lc1NldHRpbmdzKTogUGx1Z2luIHtcbiAgbGV0IGNvbmZpZzogUmVzb2x2ZWRDb25maWc7XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAndml0ZS1wbHVnaW4ta2xvZWstbWFuaWZlc3QnLFxuICAgIGVuZm9yY2U6ICdwb3N0JyxcbiAgICBhcHBseTogJ2J1aWxkJyxcbiAgICBhc3luYyBjb25maWdSZXNvbHZlZChyZXNvbHZlZENvbmZpZzogUmVzb2x2ZWRDb25maWcpIHtcbiAgICAgIGNvbmZpZyA9IHJlc29sdmVkQ29uZmlnO1xuICAgIH0sXG4gICAgZ2VuZXJhdGVCdW5kbGUoXywgYnVuZGxlKSB7XG4gICAgICAvLyBWb29yIGllZGVyZSBhcHAgZWVuIG1hbmlmZXN0IG1ha2VuOlxuICAgICAgZm9yIChjb25zdCBbcGFnZUlkLCBzZXR0aW5nc10gb2YgT2JqZWN0LmVudHJpZXMoZ2FtZXMpKSB7XG4gICAgICAgIGJ1bmRsZVtgJHtwYWdlSWR9LndlYm1hbmlmZXN0YF0gPSB7XG4gICAgICAgICAgaXNBc3NldDogdHJ1ZSxcbiAgICAgICAgICB0eXBlOiAnYXNzZXQnLFxuICAgICAgICAgIG5hbWU6IHVuZGVmaW5lZCxcbiAgICAgICAgICBzb3VyY2U6IHJlbmRlckdhbWVNYW5pZmVzdChwYWdlSWQsIHNldHRpbmdzLCBjb25maWcpLFxuICAgICAgICAgIGZpbGVOYW1lOiBgJHtwYWdlSWR9LndlYm1hbmlmZXN0YCxcbiAgICAgICAgfTtcblxuICAgICAgICBidW5kbGVbYCR7cGFnZUlkfS1zZXJ2aWNld29ya2VyLmpzYF0gPSB7XG4gICAgICAgICAgaXNBc3NldDogdHJ1ZSxcbiAgICAgICAgICB0eXBlOiAnYXNzZXQnLFxuICAgICAgICAgIG5hbWU6IHVuZGVmaW5lZCxcbiAgICAgICAgICBzb3VyY2U6IFwic2VsZi5hZGRFdmVudExpc3RlbmVyKCdmZXRjaCcsIGZ1bmN0aW9uKCkgeyByZXR1cm47IH0pO1wiLFxuICAgICAgICAgIGZpbGVOYW1lOiBgJHtwYWdlSWR9LXNlcnZpY2V3b3JrZXIuanNgLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0sXG4gIH07XG59XG4iLCJpbXBvcnQgbGVnYWN5UGx1Z2luIGZyb20gJ0B2aXRlanMvcGx1Z2luLWxlZ2FjeSc7XG5pbXBvcnQge1BsdWdpbn0gZnJvbSAndml0ZSc7XG5pbXBvcnQgYmFubmVyUGx1Z2luIGZyb20gJ3ZpdGUtcGx1Z2luLWJhbm5lcic7XG5pbXBvcnQge2NyZWF0ZUh0bWxQbHVnaW59IGZyb20gJ3ZpdGUtcGx1Z2luLWh0bWwnO1xuaW1wb3J0IHtWaXRlT3B0aW9uc30gZnJvbSAnLi4vdXRpbHMvaW50ZXJmYWNlcyc7XG5pbXBvcnQge2ltYWdlbWluUGx1Z2lufSBmcm9tICcuL2xpYi9pbWFnZS1wbHVnaW4nO1xuaW1wb3J0IHttYW5pZmVzdFBsdWdpbn0gZnJvbSAnLi9saWIvbWFuaWZlc3QtcGx1Z2luJztcblxuLy8gQnVpbGQgcGx1Z2luc1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUGx1Z2lucyhvcHRpb25zOiBWaXRlT3B0aW9ucyk6IFBsdWdpbltdIHtcbiAgLy8gTm8gYnVpbGQ/IG5vIHBsdWdpbnMuLlxuICBpZiAob3B0aW9ucy5lbnZpcm9ubWVudC5jb21tYW5kICE9PSAnYnVpbGQnKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgY29uc3QgcGx1Z2luczogUGx1Z2luW10gPSBbXTtcblxuICBpZiAob3B0aW9ucy5jb25maWcuYnVpbGQubGVnYWN5KSB7XG4gICAgLy8gTWFrZSBzdXJlIHRoZSBwYWdlIHdvcmtzIGluIG9sZGVyIGJyb3dzZXJzXG4gICAgcGx1Z2lucy5wdXNoKFxuICAgICAgLi4ubGVnYWN5UGx1Z2luKHtcbiAgICAgICAgdGFyZ2V0czogKG9wdGlvbnMuY29uZmlnLmJ1aWxkLmJyb3dzZXJzbGlzdCBhcyBzdHJpbmdbXSkgPz8gJ2RlZmF1bHRzJyxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBjb25zdCBwYWdlcyA9IE9iamVjdC5rZXlzKG9wdGlvbnMuc2V0dGluZ3MuZ2FtZXMpLm1hcCgoZ2FtZUlkKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZpbGVuYW1lOiBgJHtnYW1lSWR9Lmh0bWxgLFxuICAgICAgdGVtcGxhdGU6IGAke2dhbWVJZH0uaHRtbGAsXG4gICAgfTtcbiAgfSk7XG5cbiAgcGx1Z2lucy5wdXNoKFxuICAgIC8vIE1pbmlmeSBpbWFnZSBhc3NldHNcbiAgICBpbWFnZW1pblBsdWdpbihvcHRpb25zLmVudmlyb25tZW50LCBvcHRpb25zLmNvbmZpZy5idWlsZC5pbWFnZVF1YWxpdHkpLFxuXG4gICAgLy8gTWFrZSB0aGUgaHRtbCBvdXRwdXQgc21hbGxlclxuICAgIC4uLihjcmVhdGVIdG1sUGx1Z2luKHttaW5pZnk6IHRydWUsIHBhZ2VzfSkgYXMgUGx1Z2luW10pLFxuXG4gICAgLy8gQWRkIGEgYmFubmVyIHRvIGdlbmVyYXRlZCBqcy9jc3NcbiAgICBiYW5uZXJQbHVnaW4oXG4gICAgICBgXG4gICAgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLlxuXG4gICAgICAgICBfXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAgICAgIF8gICAgICAgICAgICBfXG4gICAgICAgIC8gICkgICAgICAgICAgICAgIHwgIG8gICAgICAgICAvfCAgIC8gfCB8ICAgICAgICAgIHwgfFxuICAgICAgICBcXFxcX18gX3xfICAgICAgICAgX198ICAgICAgX18gICAgIHxfXy8gIHwgfCAgX18gICBfICB8IHxcbiAgICAgICAgICAgXFxcXCB8ICB8ICAgfCAgLyAgfCAgfCAgLyAgXFxcXF8gICB8IFxcXFwgICB8LyAgLyAgXFxcXF98LyAgfC9fKVxuICAgICAgIChfX18vIHxfLyBcXFxcXy98Xy9cXFxcXy98Xy98Xy9cXFxcX18vICAgIHwgIFxcXFxfL3xfXy9cXFxcX18vIHxfXy98IFxcXFxfL1xuXG4gICAgICAgIENvbmNlcHQsIG9udHdlcnAgJiBvbnR3aWtrZWxpbmdcbiAgICAgICAgaHR0cHM6Ly9zdHVkaW9rbG9lay5ubFxuXG4gICAgICAgIFN0dWRpbyBLbG9layDinaQgUGl4aUpTLCBHU0FQICYgaG93bGVyLmpzXG5cbiAgICAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuXG5cbiAgICBgLFxuICAgICksXG4gICk7XG5cbiAgLy8gQ3JlYXRlIGEgbWFuaWZlc3QgYW5kIG1pbmltYWwgd2Vid29ya2VyIGZvciBldmVyeSBnYW1lXG4gIGlmIChvcHRpb25zLmNvbmZpZy5idWlsZC5tYW5pZmVzdCkge1xuICAgIHBsdWdpbnMucHVzaChtYW5pZmVzdFBsdWdpbihvcHRpb25zLnNldHRpbmdzLmdhbWVzKSk7XG4gIH1cblxuICByZXR1cm4gcGx1Z2lucztcbn1cbiIsImltcG9ydCBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQge1xuICBHYW1lU2V0dGluZ3MsXG4gIEdhbWVTZXR0aW5nc1Byb3BlcnR5LFxuICBHYW1lc1NldHRpbmdzLFxuICBHYW1lc1NldHRpbmdzRGF0YSxcbiAgS2xvZWtWaXRlQ29uZmlnLFxuICBQYWNrYWdlR2FtZXNTZXR0aW5ncyxcbn0gZnJvbSAnLi9pbnRlcmZhY2VzJztcblxuZnVuY3Rpb24gbWVyZ2VHYW1lU2V0dGluZ3MoXG4gIGdlbmVyaWM6IEdhbWVTZXR0aW5ncyxcbiAgZ2FtZTogR2FtZVNldHRpbmdzLFxuICBpbmZvVHlwZXM6IEdhbWVTZXR0aW5nc1Byb3BlcnR5W10sXG4pOiBHYW1lU2V0dGluZ3Mge1xuICBjb25zdCBzZXR0aW5nczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcblxuICAvLyBBbGxlIHByb3BzIG9wIMOpw6luIGxldmVsIGRpZXAgbWVyZ2VuXG4gIGZvciAoY29uc3QgcHJvcGVydHkgb2YgaW5mb1R5cGVzKSB7XG4gICAgc2V0dGluZ3NbcHJvcGVydHldID0ge1xuICAgICAgLi4uZ2VuZXJpY1twcm9wZXJ0eV0sXG4gICAgICAuLi5nYW1lW3Byb3BlcnR5XSxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHNldHRpbmdzIGFzIHVua25vd24gYXMgR2FtZVNldHRpbmdzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VQYWNrYWdlR2FtZXNTZXR0aW5ncyhcbiAgcGFja2FnZVNldHRpbmdzOiBQYWNrYWdlR2FtZXNTZXR0aW5ncyxcbik6IEdhbWVzU2V0dGluZ3NEYXRhIHtcbiAgLy8gTWVyZ2Ugc2V0dGluZ3NcbiAgY29uc3QgaW5mb1R5cGVzID0gT2JqZWN0LmtleXMoXG4gICAgcGFja2FnZVNldHRpbmdzLmdlbmVyaWMsXG4gICkgYXMgR2FtZVNldHRpbmdzUHJvcGVydHlbXTtcbiAgY29uc3Qge2dlbmVyaWN9ID0gcGFja2FnZVNldHRpbmdzO1xuICBjb25zdCBhbGxTZXR0aW5nczogR2FtZXNTZXR0aW5nc0RhdGEgPSB7XG4gICAgZGV2ZWxvcG1lbnQ6IGdlbmVyaWMsXG4gICAgZ2FtZXM6IHt9LFxuICB9O1xuXG4gIGZvciAoY29uc3QgZ2FtZSBvZiBwYWNrYWdlU2V0dGluZ3MuZ2FtZXMgPz8gW10pIHtcbiAgICBjb25zdCBzZXR0aW5ncyA9IG1lcmdlR2FtZVNldHRpbmdzKGdlbmVyaWMsIGdhbWUsIGluZm9UeXBlcyk7XG5cbiAgICAvLyBab3JnIGVyIHZvb3IgZGF0IHBhZ2UgYWx0aWpkIGdlemV0IGlzXG4gICAgY29uc3QgcGFnZUlkID0gc2V0dGluZ3MuaW5mby5wYWdlID8/IHNldHRpbmdzLmluZm8uaWQgPz8gJ3Vua25vd24nO1xuICAgIHNldHRpbmdzLmluZm8ucGFnZSA9IHBhZ2VJZDtcblxuICAgIC8vIFNsYSBzZXR0aW5ncyBvcCBvbmRlciBwYWdlIGlkXG4gICAgYWxsU2V0dGluZ3MuZ2FtZXNbcGFnZUlkXSA9IHNldHRpbmdzO1xuICB9XG5cbiAgcmV0dXJuIGFsbFNldHRpbmdzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGF0aFRvR2FtZURhdGEoXG4gIGZ1bGxGaWxlUGF0aDogc3RyaW5nLFxuICBzZXR0aW5nczogR2FtZXNTZXR0aW5ncyxcbik6IEdhbWVTZXR0aW5ncyB8IHVuZGVmaW5lZCB7XG4gIC8vIERldGVybWluZSBmaWxlbmFtZSB3aXRob3V0IGV4dGVuc2lvblxuICBsZXQgZmlsZVBhdGggPSBwYXRoLmJhc2VuYW1lKGZ1bGxGaWxlUGF0aCwgcGF0aC5leHRuYW1lKGZ1bGxGaWxlUGF0aCkpO1xuXG4gIC8vIERldGVybWluZSBkaXIgJiByZW1vdmUgbGVhZGluZyBzbGFzaFxuICBsZXQgZmlsZURpcmVjdG9yeSA9IHBhdGguZGlybmFtZShmdWxsRmlsZVBhdGgpO1xuICBmaWxlRGlyZWN0b3J5ID0gZmlsZURpcmVjdG9yeS5yZXBsYWNlKC9eXFwvKy9nLCAnJyk7XG5cbiAgaWYgKGZpbGVEaXJlY3RvcnkpIHtcbiAgICBmaWxlUGF0aCA9IGAke2ZpbGVEaXJlY3Rvcnl9LyR7ZmlsZVBhdGh9YDtcbiAgfVxuXG4gIHJldHVybiBzZXR0aW5nc1tmaWxlUGF0aF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYWdlVG9TZXJ2ZShcbiAgY29uZmlnOiBLbG9la1ZpdGVDb25maWcsXG4gIHNldHRpbmdzOiBHYW1lc1NldHRpbmdzLFxuKTogc3RyaW5nIHtcbiAgLy8gSG9ldmVlbCBwYWdlcyB6aWpuIGVyP1xuICBjb25zdCBwYWdlSWRzID0gT2JqZWN0LmtleXMoc2V0dGluZ3MpO1xuICBjb25zdCBwYWdlID0gcGFnZUlkcy5sZW5ndGggPT09IDEgPyBwYWdlSWRzWzBdIDogJ2RldmVsb3BtZW50JztcblxuICByZXR1cm4gcGF0aC5wb3NpeC5qb2luKFxuICAgIGNvbmZpZy5idWlsZC5iYXNlUGF0aCxcbiAgICBgJHtwYWdlfS5odG1sJHtjb25maWcuZGV2LnNlcnZlUGFyYW1zID8/ICcnfWAsXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYWdlSWRGcm9tVXJsKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKCF1cmwpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBsZXQgcGF0aG5hbWU6IHN0cmluZztcblxuICB0cnkge1xuICAgIHBhdGhuYW1lID0gbmV3IFVSTCh1cmwsICdodHRwczovL3N0dWRpb2tsb2VrLm5sJykucGF0aG5hbWU7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIC8vIElmIHJlcXVlc3QgaXMgbm90IGh0bWwgLCBkaXJlY3RseSByZXR1cm4gbmV4dCgpXG4gIGlmICghcGF0aG5hbWUuZW5kc1dpdGgoJy5odG1sJykgJiYgcGF0aG5hbWUgIT09ICcvJykge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIC8vIFBhZ2luYSBpZCBvcHZyYWdlblxuICBjb25zdCBpbmRleCA9IHBhdGhuYW1lLmxhc3RJbmRleE9mKCcvJyk7XG4gIGNvbnN0IGZpbGVOYW1lID0gaW5kZXggPT09IC0xID8gcGF0aG5hbWUgOiBwYXRobmFtZS5zbGljZShpbmRleCArIDEpO1xuXG4gIHJldHVybiBmaWxlTmFtZS5yZXBsYWNlKCcuaHRtbCcsICcnKTtcbn1cbiIsImltcG9ydCBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQge0J1aWxkT3B0aW9uc30gZnJvbSAndml0ZSc7XG5pbXBvcnQge1ZpdGVPcHRpb25zfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lQnVpbGRDb25maWcob3B0aW9uczogVml0ZU9wdGlvbnMpOiBCdWlsZE9wdGlvbnMge1xuICBjb25zdCBpbnB1dDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXG4gIGZvciAoY29uc3QgZ2FtZUlkIG9mIE9iamVjdC5rZXlzKG9wdGlvbnMuc2V0dGluZ3MuZ2FtZXMpKSB7XG4gICAgaW5wdXRbZ2FtZUlkXSA9IHBhdGgucmVzb2x2ZShvcHRpb25zLnJvb3QsIGAke2dhbWVJZH0uaHRtbGApO1xuICB9XG5cbiAgLy8gTGlicyBkaWUgYXBhcnRlIGpzIGtyaWpnZW46XG4gIGNvbnN0IHZlbmRvckNodW5rcyA9IFsnZmlyZWJhc2UnLCAncGl4aScsICdsb2Rhc2gnLCAnY2FwYWNpdG9yJywgJ2dzYXAnXTtcblxuICByZXR1cm4ge1xuICAgIHJlcG9ydENvbXByZXNzZWRTaXplOiBmYWxzZSxcbiAgICBjaHVua1NpemVXYXJuaW5nTGltaXQ6IDEwMDAsXG4gICAgb3V0RGlyOiAnLi4vcHVibGljJyxcbiAgICBhc3NldHNEaXI6ICdnZW5lcmF0ZWQnLFxuICAgIHJvbGx1cE9wdGlvbnM6IHtcbiAgICAgIGlucHV0LFxuICAgICAgb3V0cHV0OiB7XG4gICAgICAgIG1hbnVhbENodW5rcyhpZCkge1xuICAgICAgICAgIGlmIChpZC5pbmNsdWRlcygnbm9kZV9tb2R1bGVzJykpIHtcbiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBpZFxuICAgICAgICAgICAgICAudG9TdHJpbmcoKVxuICAgICAgICAgICAgICAuc3BsaXQoJ25vZGVfbW9kdWxlcy8nKVsxXVxuICAgICAgICAgICAgICAuc3BsaXQoJy8nKVswXVxuICAgICAgICAgICAgICAudG9TdHJpbmcoKTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiB2ZW5kb3JDaHVua3MpIHtcbiAgICAgICAgICAgICAgaWYgKG5hbWUuaW5jbHVkZXModmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcbn1cbiIsImltcG9ydCB7cmVhZEZpbGVTeW5jfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5pbXBvcnQge25vcm1hbGl6ZVBhdGh9IGZyb20gJ3ZpdGUnO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVhZEpTT04ocGF0aDogc3RyaW5nKTogdW5rbm93biB7XG4gIHRyeSB7XG4gICAgY29uc3QgZGF0YSA9IHJlYWRGaWxlU3luYyhwYXRoKTtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShkYXRhLnRvU3RyaW5nKCkpO1xuICB9IGNhdGNoIHtcbiAgICAvL1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgY29uc3QgY3dkID0gbm9ybWFsaXplUGF0aChwcm9jZXNzLmN3ZCgpKTtcblxuZXhwb3J0ICogZnJvbSAnLi9nYW1lJztcbmV4cG9ydCAqIGZyb20gJy4vYnVpbGQnO1xuIiwiaW1wb3J0IG9zIGZyb20gJ25vZGU6b3MnO1xuaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7UGx1Z2lufSBmcm9tICd2aXRlJztcbmltcG9ydCB2aXRlSGFuZGxlYmFyc1BsdWdpbiBmcm9tICd2aXRlLXBsdWdpbi1oYW5kbGViYXJzJztcbmltcG9ydCB7Vml0ZU9wdGlvbnN9IGZyb20gJy4uLy4uL3V0aWxzL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtnZXRQYWdlSWRGcm9tVXJsfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbi8vIEhlbHBlcnMgdm9vciBoYW5kbGViYXJzXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlYmFyc1BsdWdpbihcbiAgcGFydGlhbERpcmVjdG9yeTogc3RyaW5nIHwgc3RyaW5nW10sXG4gIG9wdGlvbnM6IFZpdGVPcHRpb25zLFxuKTogUGx1Z2luIHtcbiAgcmV0dXJuIHZpdGVIYW5kbGViYXJzUGx1Z2luKHtcbiAgICBwYXJ0aWFsRGlyZWN0b3J5LFxuXG4gICAgaGVscGVyczoge1xuICAgICAganNvbjogKG9iamVjdDogYW55LCBpbmRlbnQgPSAwKSA9PlxuICAgICAgICBKU09OLnN0cmluZ2lmeShvYmplY3QsIHVuZGVmaW5lZCwgaW5kZW50KSxcbiAgICAgIGNvbmNhdDogKC4uLmFyZ3VtZW50c186IGFueVtdKSA9PiBhcmd1bWVudHNfLnNsaWNlKDAsIC0xKS5qb2luKCcnKSxcbiAgICAgIGVxOiAoYTogYW55LCBiOiBhbnkpID0+IGEgPT09IGIsXG4gICAgICBuZXE6IChhOiBhbnksIGI6IGFueSkgPT4gYSAhPT0gYixcbiAgICAgIGlzZGVmaW5lZDogKHZhbHVlOiB1bmRlZmluZWQpID0+IHZhbHVlICE9PSB1bmRlZmluZWQsXG4gICAgICAncmVzb2x2ZS1yb290JyhwOiBzdHJpbmcpIHtcbiAgICAgICAgLy8gVGlqZGVsaWprZSBoYWNrIHZvb3IgYnVnIGluIGhhbmRsZWJhcnMgcGx1Z2luXG4gICAgICAgIC8vIHppZSBvb2sgaHR0cHM6Ly9naXRodWIuY29tL2FsZXhsYWZyb3NjaWEvdml0ZS1wbHVnaW4taGFuZGxlYmFycy9wdWxsLzEyOVxuICAgICAgICBjb25zdCByZXNvbHZlZFBhdGggPSBwYXRoLnJlc29sdmUob3B0aW9ucy5yb290LCBwKTtcbiAgICAgICAgcmV0dXJuIG9zLnBsYXRmb3JtKCkgPT09ICd3aW4zMicgPyBgLyR7cmVzb2x2ZWRQYXRofWAgOiByZXNvbHZlZFBhdGg7XG4gICAgICB9LFxuICAgIH0sXG5cbiAgICBjb250ZXh0KHBhZ2VQYXRoOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgICBjb25zdCBnYW1lSWQgPSBnZXRQYWdlSWRGcm9tVXJsKHBhZ2VQYXRoKTtcblxuICAgICAgaWYgKCFnYW1lSWQpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgfVxuXG4gICAgICBpZiAoZ2FtZUlkID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgIC8vIFBhZ2luYSBzZXR0aW5ncyB0ZXJ1Z2dldmVuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZW52OiBvcHRpb25zLmVudmlyb25tZW50LFxuICAgICAgICAgIGRhdGE6IG9wdGlvbnMuc2V0dGluZ3MuZGV2ZWxvcG1lbnQsXG4gICAgICAgICAgZ2FtZXM6IG9wdGlvbnMuc2V0dGluZ3MuZ2FtZXMsXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIC8vIE9wIGJhc2lzIHZhbiBwYWQgZGF0YSBiZXBhbGVuXG4gICAgICBjb25zdCBzZXR0aW5ncyA9IG9wdGlvbnMuc2V0dGluZ3MuZ2FtZXNbZ2FtZUlkXTtcblxuICAgICAgLy8gUGFnaW5hIHNldHRpbmdzIHRlcnVnZ2V2ZW5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGVudjogb3B0aW9ucy5lbnZpcm9ubWVudCxcbiAgICAgICAgZGF0YTogc2V0dGluZ3MgPz8ge30sXG4gICAgICB9O1xuICAgIH0sXG4gIH0pO1xufVxuIiwiaW1wb3J0IHtleGlzdHNTeW5jLCBwcm9taXNlc30gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHtDb25maWdFbnYsIFBsdWdpbiwgVXNlckNvbmZpZywgVml0ZURldlNlcnZlcn0gZnJvbSAndml0ZSc7XG5pbXBvcnQge0dhbWVzU2V0dGluZ3N9IGZyb20gJy4uLy4uL3V0aWxzL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtjd2QsIGdldFBhZ2VJZEZyb21Vcmx9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuY29uc3QgUEFHRV9URU1QTEFURSA9ICd7ez4gZ2FtZSBkYXRhPWRhdGF9fSc7XG5jb25zdCBERVZFTE9QTUVOVF9URU1QTEFURSA9ICd7ez4gZGV2ZWxvcG1lbnQgZGF0YT1kYXRhfX0nO1xuXG5hc3luYyBmdW5jdGlvbiByZW5kZXJUZW1wb3JhcnlGaWxlKGZpbGVQYXRoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgLy8gQmVzdGFhdCBkaWUgZmlsZSBub2cgbmlldD9cbiAgaWYgKCFleGlzdHNTeW5jKGZpbGVQYXRoKSkge1xuICAgIC8vIEFhbm1ha2VuXG4gICAgYXdhaXQgcHJvbWlzZXMud3JpdGVGaWxlKGZpbGVQYXRoLCBQQUdFX1RFTVBMQVRFKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaHRtbFBsdWdpbihnYW1lczogR2FtZXNTZXR0aW5ncyk6IFBsdWdpbiB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ3ZpdGUtcGx1Z2luLWtsb2VrLWh0bWwnLFxuICAgIGVuZm9yY2U6ICdwcmUnLFxuXG4gICAgYXN5bmMgY29uZmlnKF9jb25maWc6IFVzZXJDb25maWcsIGVudmlyb25tZW50OiBDb25maWdFbnYpIHtcbiAgICAgIC8vIEJpaiBlZW4gYnVpbGQgbWFrZW4gd2UgdGlqZGVsaWprIGZpbGVzIGFhblxuICAgICAgaWYgKGVudmlyb25tZW50LmNvbW1hbmQgPT09ICdidWlsZCcpIHtcbiAgICAgICAgY29uc3QgYWN0aW9uczogQXJyYXk8UHJvbWlzZTx2b2lkPj4gPSBbXTtcblxuICAgICAgICBmb3IgKGNvbnN0IHBhZ2VJZCBvZiBPYmplY3Qua2V5cyhnYW1lcykpIHtcbiAgICAgICAgICAvLyBQYWQgbmFhciBmaWxlXG4gICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLnJlc29sdmUoY3dkLCAnc291cmNlJywgYCR7cGFnZUlkfS5odG1sYCk7XG4gICAgICAgICAgYWN0aW9ucy5wdXNoKHJlbmRlclRlbXBvcmFyeUZpbGUoZmlsZVBhdGgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKGFjdGlvbnMpO1xuICAgICAgfVxuICAgIH0sXG5cbiAgICBjb25maWd1cmVTZXJ2ZXIoc2VydmVyOiBWaXRlRGV2U2VydmVyKSB7XG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAvLyBab3JnIGVyIHZvb3IgZGF0IHRpamRlbnMgZGV2ZWxvcG1lbnQgZGUgcGFnaW5hIGdlLXJlbmRlcmVkIHRlcnVnIGdlZ2V2ZW4gd29yZHQgd29yZHRcbiAgICAgICAgc2VydmVyLm1pZGRsZXdhcmVzLnVzZSgnLycsIGFzeW5jIChyZXF1ZXN0LCByZXNwb25zZSwgbmV4dCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHVybCA9IHJlcXVlc3Q/LnVybCA/PyAnJztcbiAgICAgICAgICBjb25zdCBwYWdlSWQgPSBnZXRQYWdlSWRGcm9tVXJsKHVybCk7XG5cbiAgICAgICAgICBpZiAoIXBhZ2VJZCkge1xuICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChwYWdlSWQgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgICAgIC8vIERldmVsb3BtZW50PyBnZWVmIHRlcnVnLi4uXG4gICAgICAgICAgICByZXNwb25zZS5lbmQoXG4gICAgICAgICAgICAgIGF3YWl0IHNlcnZlci50cmFuc2Zvcm1JbmRleEh0bWwoXG4gICAgICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgICAgIERFVkVMT1BNRU5UX1RFTVBMQVRFLFxuICAgICAgICAgICAgICAgIHJlcXVlc3Qub3JpZ2luYWxVcmwsXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSBpZiAoT2JqZWN0LmtleXMoZ2FtZXMpLmluY2x1ZGVzKHBhZ2VJZCkpIHtcbiAgICAgICAgICAgIC8vIEJlc3RhYW5kZSBnYW1lPyB6b3JnIGVyIHZvb3IgZGF0IGRlIHRlbXBsYXRlIGdlLXJlbmRlcmVkIHdvcmR0XG4gICAgICAgICAgICByZXNwb25zZS5lbmQoXG4gICAgICAgICAgICAgIGF3YWl0IHNlcnZlci50cmFuc2Zvcm1JbmRleEh0bWwoXG4gICAgICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgICAgIFBBR0VfVEVNUExBVEUsXG4gICAgICAgICAgICAgICAgcmVxdWVzdC5vcmlnaW5hbFVybCxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIE5pa3MgZ2V2b25kZW5cbiAgICAgICAgICAgIHJlc3BvbnNlLmVuZCgnNDA0Jyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgfSxcblxuICAgIGFzeW5jIGNsb3NlQnVuZGxlKCkge1xuICAgICAgLy8gVmVyd2lqZGVyIGRlIGFhbmdlbWFha3RlIGZpbGVzXG4gICAgICBjb25zdCBhY3Rpb25zOiBBcnJheTxQcm9taXNlPHZvaWQ+PiA9IFtdO1xuICAgICAgZm9yIChjb25zdCBwYWdlSWQgb2YgT2JqZWN0LmtleXMoZ2FtZXMpKSB7XG4gICAgICAgIC8vIFBhZCBuYWFyIGZpbGVcbiAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLnJlc29sdmUoY3dkLCAnc291cmNlJywgYCR7cGFnZUlkfS5odG1sYCk7XG4gICAgICAgIGlmIChleGlzdHNTeW5jKGZpbGVQYXRoKSkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhY3Rpb25zLnB1c2gocHJvbWlzZXMucm0oZmlsZVBhdGgpKTtcbiAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKGFjdGlvbnMpO1xuICAgIH0sXG4gIH07XG59XG4iLCJpbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHtzdmVsdGV9IGZyb20gJ0BzdmVsdGVqcy92aXRlLXBsdWdpbi1zdmVsdGUnO1xuaW1wb3J0IHtQbHVnaW59IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IGZ1bGxSZWxvYWQgZnJvbSAndml0ZS1wbHVnaW4tZnVsbC1yZWxvYWQnO1xuaW1wb3J0IHRzY29uZmlnUGF0aHNQbHVnaW4gZnJvbSAndml0ZS10c2NvbmZpZy1wYXRocyc7XG5pbXBvcnQge1ZpdGVPcHRpb25zfSBmcm9tICcuLi91dGlscy9pbnRlcmZhY2VzJztcbmltcG9ydCB7Y3dkfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQge2hhbmRsZWJhcnNQbHVnaW59IGZyb20gJy4vbGliL2hhbmRsZWJhcnMtcGx1Z2luJztcbmltcG9ydCB7aHRtbFBsdWdpbn0gZnJvbSAnLi9saWIvaHRtbC1wbHVnaW4nO1xuXG5leHBvcnQgZnVuY3Rpb24gc2VydmVQbHVnaW5zKG9wdGlvbnM6IFZpdGVPcHRpb25zKTogUGx1Z2luW10ge1xuICByZXR1cm4gW1xuICAgIGh0bWxQbHVnaW4ob3B0aW9ucy5zZXR0aW5ncy5nYW1lcyksXG5cbiAgICAuLi5zdmVsdGUoe1xuICAgICAgLy8gSG90OiBmYWxzZSxcbiAgICAgIGV4cGVyaW1lbnRhbDoge1xuICAgICAgICBwcmVidW5kbGVTdmVsdGVMaWJyYXJpZXM6IHRydWUsXG4gICAgICAgIHVzZVZpdGVQcmVwcm9jZXNzOiB0cnVlLFxuICAgICAgfSxcbiAgICB9KSxcblxuICAgIHRzY29uZmlnUGF0aHNQbHVnaW4oe1xuICAgICAgcm9vdDogcGF0aC5yZXNvbHZlKGN3ZCksXG4gICAgICBleHRlbnNpb25zOiBbJy50cycsICcuanNvbiddLFxuICAgICAgbG9vc2U6IHRydWUsXG4gICAgfSksXG5cbiAgICBmdWxsUmVsb2FkKFsnc2NyaXB0LyoqLyoudHMnLCAnc3ZlbHRlLyoqLyouc3ZlbHRlJ10sIHtcbiAgICAgIHJvb3Q6IHBhdGguam9pbihwYXRoLnJlc29sdmUoY3dkKSwgJ3NvdXJjZScpLFxuICAgICAgbG9nOiB0cnVlLFxuICAgICAgYWx3YXlzOiB0cnVlLFxuICAgIH0pIGFzIFBsdWdpbixcblxuICAgIGhhbmRsZWJhcnNQbHVnaW4ob3B0aW9ucy5jb25maWcuc2VydmUucGFydGlhbHMsIG9wdGlvbnMpLFxuICBdO1xufVxuIiwiaW1wb3J0IHtyZWFkRmlsZVN5bmN9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7ZmlsZVVSTFRvUGF0aH0gZnJvbSAnbm9kZTp1cmwnO1xuaW1wb3J0IHtDb25maWdFbnYsIFVzZXJDb25maWd9IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IHtidWlsZFBsdWdpbnN9IGZyb20gJy4vcGx1Z2lucy9idWlsZCc7XG5pbXBvcnQge3NlcnZlUGx1Z2luc30gZnJvbSAnLi9wbHVnaW5zL3NlcnZlJztcbmltcG9ydCB7XG4gIGN3ZCxcbiAgZGVmaW5lQnVpbGRDb25maWcsXG4gIGdldFBhZ2VUb1NlcnZlLFxuICBwYXJzZVBhY2thZ2VHYW1lc1NldHRpbmdzLFxuICByZWFkSlNPTixcbn0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQge1xuICBLbG9la1ZpdGVDb25maWcsXG4gIFBhY2thZ2VHYW1lc1NldHRpbmdzLFxuICBWaXRlT3B0aW9ucyxcbn0gZnJvbSAnLi91dGlscy9pbnRlcmZhY2VzJztcblxuY29uc3QgX19kaXJuYW1lID0gcGF0aC5kaXJuYW1lKGZpbGVVUkxUb1BhdGgoaW1wb3J0Lm1ldGEudXJsKSk7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZWZpbmVLbG9la1ZpdGVDb25maWcoXG4gIGVudmlyb25tZW50OiBDb25maWdFbnYsXG4pOiBQcm9taXNlPFVzZXJDb25maWc+IHtcbiAgY29uc3QgcGtnID0gcmVhZEpTT04ocGF0aC5yZXNvbHZlKGN3ZCwgJ3BhY2thZ2UuanNvbicpKSBhcyBSZWNvcmQ8XG4gICAgc3RyaW5nLFxuICAgIHVua25vd25cbiAgPjtcbiAgY29uc3Qga2xvZWtDb25maWcgPSBwa2cudml0ZSBhcyBLbG9la1ZpdGVDb25maWc7XG4gIGNvbnN0IGJyb3dzZXJzbGlzdCA9IHBrZy5icm93c2Vyc2xpc3QgYXMgc3RyaW5nIHwgc3RyaW5nW107XG4gIGNvbnN0IG9wdGlvbnM6IFZpdGVPcHRpb25zID0ge1xuICAgIHJvb3Q6IHBhdGgucmVzb2x2ZShjd2QsICdzb3VyY2UnKSxcbiAgICBlbnZpcm9ubWVudCxcbiAgICBzZXR0aW5nczogcGFyc2VQYWNrYWdlR2FtZXNTZXR0aW5ncyhwa2cuc2V0dGluZ3MgYXMgUGFja2FnZUdhbWVzU2V0dGluZ3MpLFxuICAgIGNvbmZpZzoge1xuICAgICAgLi4ua2xvZWtDb25maWcsXG4gICAgICBidWlsZDogey4uLmtsb2VrQ29uZmlnLmJ1aWxkLCBicm93c2Vyc2xpc3R9LFxuICAgICAgc2VydmU6IHtcbiAgICAgICAgcGFydGlhbHM6IFtcbiAgICAgICAgICBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAncGFydGlhbHMnKSxcbiAgICAgICAgICBwYXRoLnJlc29sdmUoY3dkLCAnc291cmNlJywgJ3BhcnRpYWxzJyksXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG5cbiAgY29uc3QgY29uZmlnOiBVc2VyQ29uZmlnID0ge1xuICAgIGxvZ0xldmVsOiAnaW5mbycsXG4gICAgYmFzZToga2xvZWtDb25maWcuYnVpbGQuYmFzZVBhdGgsXG4gICAgcm9vdDogb3B0aW9ucy5yb290LFxuICAgIHB1YmxpY0RpcjogJ3N0YXRpYycsXG4gICAgZGVmaW5lOiB7fSxcblxuICAgIGVzYnVpbGQ6IHtcbiAgICAgIGxlZ2FsQ29tbWVudHM6ICdub25lJyxcbiAgICB9LFxuXG4gICAgcmVzb2x2ZToge1xuICAgICAgYWxpYXM6IHtcbiAgICAgICAgbG9kYXNoOiAnbG9kYXNoLWVzJyxcbiAgICAgICAgJ0BtZXRhJzogcGF0aC5yZXNvbHZlKGN3ZCwgJ3NvdXJjZScsICdzdGF0aWMnLCAnbWV0YScpLFxuICAgICAgICAnQGZvbnRzJzogcGF0aC5yZXNvbHZlKGN3ZCwgJ3NvdXJjZScsICdzdGF0aWMnLCAnZm9udHMnKSxcbiAgICAgIH0sXG4gICAgfSxcblxuICAgIGNzczoge1xuICAgICAgcHJlcHJvY2Vzc29yT3B0aW9uczoge1xuICAgICAgICBzY3NzOiB7XG4gICAgICAgICAgY2hhcnNldDogZmFsc2UsXG4gICAgICAgICAgLy8gQWRkaXRpb25hbERhdGE6IGBAY2hhcnNldCBcIlVURi04XCJgLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuXG4gICAgcGx1Z2luczogWy4uLnNlcnZlUGx1Z2lucyhvcHRpb25zKV0sXG4gIH07XG5cbiAgc3dpdGNoIChlbnZpcm9ubWVudC5jb21tYW5kKSB7XG4gICAgY2FzZSAnc2VydmUnOlxuICAgICAgY29uZmlnLnNlcnZlciA9IHtcbiAgICAgICAgaHR0cHM6IHtcbiAgICAgICAgICBrZXk6IHJlYWRGaWxlU3luYyhwYXRoLnJlc29sdmUoY3dkLCAnY2VydCcsICdrZXkucGVtJykpLFxuICAgICAgICAgIGNlcnQ6IHJlYWRGaWxlU3luYyhwYXRoLnJlc29sdmUoY3dkLCAnY2VydCcsICdjZXJ0LnBlbScpKSxcbiAgICAgICAgfSxcbiAgICAgICAgb3BlbjogZ2V0UGFnZVRvU2VydmUob3B0aW9ucy5jb25maWcsIG9wdGlvbnMuc2V0dGluZ3MuZ2FtZXMpLFxuICAgICAgfTtcblxuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdidWlsZCc6XG4gICAgICBjb25maWcuYnVpbGQgPSBkZWZpbmVCdWlsZENvbmZpZyhvcHRpb25zKTtcbiAgICAgIGNvbmZpZy5wbHVnaW5zID0gW1xuICAgICAgICAuLi4oY29uZmlnLnBsdWdpbnMgPyBjb25maWcucGx1Z2lucyA6IFtdKSxcbiAgICAgICAgLi4uYnVpbGRQbHVnaW5zKG9wdGlvbnMpLFxuICAgICAgXTtcbiAgICAgIGJyZWFrO1xuXG4gICAgZGVmYXVsdDpcbiAgfVxuXG4gIHJldHVybiBjb25maWc7XG59XG4iLCJpbXBvcnQge1R5cGVkRmxhZ3N9IGZyb20gJ21lb3cnO1xuaW1wb3J0IHtidWlsZCwgY3JlYXRlU2VydmVyfSBmcm9tICd2aXRlJztcbmltcG9ydCB7ZGVmaW5lS2xvZWtWaXRlQ29uZmlnfSBmcm9tICcuL2NvbmZpZyc7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBrbG9la0RldmVsb3BtZW50KCk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBjb25maWcgPSBhd2FpdCBkZWZpbmVLbG9la1ZpdGVDb25maWcoe1xuICAgIGNvbW1hbmQ6ICdzZXJ2ZScsXG4gICAgbW9kZTogJ2RldmVsb3BtZW50JyxcbiAgfSk7XG5cbiAgY29uc3Qgc2VydmVyID0gYXdhaXQgY3JlYXRlU2VydmVyKHtcbiAgICBjb25maWdGaWxlOiBmYWxzZSxcbiAgICBlbnZGaWxlOiBmYWxzZSxcbiAgICAuLi5jb25maWcsXG4gIH0pO1xuXG4gIGF3YWl0IHNlcnZlci5saXN0ZW4oKTtcbiAgc2VydmVyLnByaW50VXJscygpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24ga2xvZWtCdWlsZChcbiAgZmxhZ3M6IFR5cGVkRmxhZ3M8e1xuICAgIGVtcHR5T3V0RGlyOiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbic7XG4gICAgICBhbGlhczogc3RyaW5nO1xuICAgICAgZGVmYXVsdDogdHJ1ZTtcbiAgICB9O1xuICAgIGJhc2U6IHtcbiAgICAgIHR5cGU6ICdzdHJpbmcnO1xuICAgICAgYWxpYXM6IHN0cmluZztcbiAgICAgIGRlZmF1bHQ6IHN0cmluZztcbiAgICB9O1xuICB9Pixcbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBjb25maWcgPSBhd2FpdCBkZWZpbmVLbG9la1ZpdGVDb25maWcoe1xuICAgIGNvbW1hbmQ6ICdidWlsZCcsXG4gICAgbW9kZTogJ3Byb2R1Y3Rpb24nLFxuICB9KTtcblxuICAvLyBFbXB0eSBvdXQgdGhlIE91dHB1dCBkaXIgYmVmb3JlIGJ1aWxkaW5nP1xuICBpZiAoZmxhZ3MuZW1wdHlPdXREaXIgIT09IHVuZGVmaW5lZCkge1xuICAgIGNvbmZpZy5idWlsZCA9IHtcbiAgICAgIC4uLmNvbmZpZy5idWlsZCxcbiAgICAgIGVtcHR5T3V0RGlyOiBmbGFncy5lbXB0eU91dERpcixcbiAgICB9O1xuICB9XG5cbiAgLy8gRGlmZmVyZW50IGJhc2UgcGF0aFxuICBpZiAodHlwZW9mIGZsYWdzLmJhc2UgPT09ICdzdHJpbmcnKSB7XG4gICAgY29uZmlnLmJhc2UgPSBmbGFncy5iYXNlO1xuICB9XG5cbiAgYXdhaXQgYnVpbGQoe1xuICAgIGNvbmZpZ0ZpbGU6IGZhbHNlLFxuICAgIGVudkZpbGU6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
|
|
478
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uL3NyYy9wbHVnaW5zL2xpYi9pbWFnZS1wbHVnaW4udHMiLCIuLi9zcmMvcGx1Z2lucy9saWIvbWFuaWZlc3QtcGx1Z2luLnRzIiwiLi4vc3JjL3BsdWdpbnMvYnVpbGQudHMiLCIuLi9zcmMvdXRpbHMvZ2FtZS50cyIsIi4uL3NyYy91dGlscy9idWlsZC50cyIsIi4uL3NyYy91dGlscy9pbmRleC50cyIsIi4uL3NyYy9wbHVnaW5zL2xpYi9oYW5kbGViYXJzLXBsdWdpbi50cyIsIi4uL3NyYy9wbHVnaW5zL2xpYi9odG1sLXBsdWdpbi50cyIsIi4uL3NyYy9wbHVnaW5zL3NlcnZlLnRzIiwiLi4vc3JjL2NvbmZpZy50cyIsIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbmZpZ0VudiwgUGx1Z2lufSBmcm9tICd2aXRlJztcbmltcG9ydCBpbWFnZW1pblBsdWdpbjIgZnJvbSAndml0ZS1wbHVnaW4taW1hZ2VtaW4nO1xuaW1wb3J0IHtJbWFnZVF1YWxpdHlDb25maWd9IGZyb20gJy4uLy4uL3V0aWxzL2ludGVyZmFjZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gaW1hZ2VtaW5QbHVnaW4oXG4gIGVudmlyb25tZW50OiBDb25maWdFbnYsXG4gIG9wdGlvbnM6IEltYWdlUXVhbGl0eUNvbmZpZyxcbik6IFBsdWdpbiB7XG4gIHJldHVybiBpbWFnZW1pblBsdWdpbjIoe1xuICAgIGRpc2FibGU6IGVudmlyb25tZW50Lm1vZGUgIT09ICdwcm9kdWN0aW9uJyxcbiAgICBtb3pqcGVnOiB7XG4gICAgICBxdWFsaXR5OiBvcHRpb25zPy5qcGVnID8/IDgwLFxuICAgIH0sXG4gICAgcG5ncXVhbnQ6IHtcbiAgICAgIHN0cmlwOiB0cnVlLFxuICAgICAgc3BlZWQ6IDIsXG4gICAgICBkaXRoZXJpbmc6IDAuMjUsXG4gICAgICBxdWFsaXR5OiBvcHRpb25zPy5wbmcgPz8gWzAuNSwgMC43XSxcbiAgICB9LFxuICB9KSBhcyBQbHVnaW47XG59XG4iLCJpbXBvcnQge1BsdWdpbiwgUmVzb2x2ZWRDb25maWd9IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IHtHYW1lU2V0dGluZ3MsIEdhbWVzU2V0dGluZ3N9IGZyb20gJy4uLy4uL3V0aWxzL2ludGVyZmFjZXMnO1xuXG5mdW5jdGlvbiByZW5kZXJHYW1lTWFuaWZlc3QoXG4gIHBhZ2VJZDogc3RyaW5nLFxuICBzZXR0aW5nczogR2FtZVNldHRpbmdzLFxuICBjb25maWc6IFJlc29sdmVkQ29uZmlnLFxuKTogc3RyaW5nIHtcbiAgY29uc3QgbWFuaWZlc3QgPSB7XG4gICAgc2hvcnRfbmFtZTogYCR7c2V0dGluZ3MubWV0YS5hcHB0aXRsZX1gLFxuICAgIG5hbWU6IGAke3NldHRpbmdzLm1ldGEudGl0bGV9YCxcbiAgICBkZXNjcmlwdGlvbjogYCR7c2V0dGluZ3MubWV0YS5kZXNjcmlwdGlvbn1gLFxuICAgIHNjb3BlOiBgJHtjb25maWcuYmFzZX0ke3BhZ2VJZH0uaHRtbGAsXG4gICAgc3RhcnRfdXJsOiBgJHtjb25maWcuYmFzZX0ke3BhZ2VJZH0uaHRtbGAsXG4gICAgZGlzcGxheTogJ2Z1bGxzY3JlZW4nLFxuICAgIG9yaWVudGF0aW9uOiBgJHtzZXR0aW5ncy5vcHRpb25zLm9yaWVudGF0aW9uID8/ICdsYW5kc2NhcGUnfWAsXG4gICAgaWNvbnM6IFtcbiAgICAgIHtcbiAgICAgICAgc3JjOiBgJHtjb25maWcuYmFzZX1tZXRhLyR7c2V0dGluZ3MuaW5mby5pZH0vaWNvbnMvY2hyb21lLXRvdWNoLWljb24tMTkyeDE5Mi5wbmdgLFxuICAgICAgICB0eXBlOiAnaW1hZ2UvcG5nJyxcbiAgICAgICAgc2l6ZXM6ICcxOTJ4MTkyJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHNyYzogYCR7Y29uZmlnLmJhc2V9bWV0YS8ke3NldHRpbmdzLmluZm8uaWR9L2ljb25zL2ljb24ucG5nYCxcbiAgICAgICAgdHlwZTogJ2ltYWdlL3BuZycsXG4gICAgICAgIHNpemVzOiAnMTAyNHgxMDI0JyxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBiYWNrZ3JvdW5kX2NvbG9yOiBgJHtzZXR0aW5ncy5vcHRpb25zLmJhY2tncm91bmRDb2xvcn1gLFxuICAgIHRoZW1lX2NvbG9yOiBgJHtzZXR0aW5ncy5vcHRpb25zLmJhY2tncm91bmRDb2xvcn1gLFxuICB9O1xuXG4gIHJldHVybiBgJHtKU09OLnN0cmluZ2lmeShtYW5pZmVzdCwgbnVsbCwgMil9XFxuYDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hbmlmZXN0UGx1Z2luKGdhbWVzOiBHYW1lc1NldHRpbmdzKTogUGx1Z2luIHtcbiAgbGV0IGNvbmZpZzogUmVzb2x2ZWRDb25maWc7XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAndml0ZS1wbHVnaW4ta2xvZWstbWFuaWZlc3QnLFxuICAgIGVuZm9yY2U6ICdwb3N0JyxcbiAgICBhcHBseTogJ2J1aWxkJyxcbiAgICBhc3luYyBjb25maWdSZXNvbHZlZChyZXNvbHZlZENvbmZpZzogUmVzb2x2ZWRDb25maWcpIHtcbiAgICAgIGNvbmZpZyA9IHJlc29sdmVkQ29uZmlnO1xuICAgIH0sXG4gICAgZ2VuZXJhdGVCdW5kbGUoXywgYnVuZGxlKSB7XG4gICAgICAvLyBWb29yIGllZGVyZSBhcHAgZWVuIG1hbmlmZXN0IG1ha2VuOlxuICAgICAgZm9yIChjb25zdCBbcGFnZUlkLCBzZXR0aW5nc10gb2YgT2JqZWN0LmVudHJpZXMoZ2FtZXMpKSB7XG4gICAgICAgIGJ1bmRsZVtgJHtwYWdlSWR9LndlYm1hbmlmZXN0YF0gPSB7XG4gICAgICAgICAgaXNBc3NldDogdHJ1ZSxcbiAgICAgICAgICB0eXBlOiAnYXNzZXQnLFxuICAgICAgICAgIG5hbWU6IHVuZGVmaW5lZCxcbiAgICAgICAgICBzb3VyY2U6IHJlbmRlckdhbWVNYW5pZmVzdChwYWdlSWQsIHNldHRpbmdzLCBjb25maWcpLFxuICAgICAgICAgIGZpbGVOYW1lOiBgJHtwYWdlSWR9LndlYm1hbmlmZXN0YCxcbiAgICAgICAgfTtcblxuICAgICAgICBidW5kbGVbYCR7cGFnZUlkfS1zZXJ2aWNld29ya2VyLmpzYF0gPSB7XG4gICAgICAgICAgaXNBc3NldDogdHJ1ZSxcbiAgICAgICAgICB0eXBlOiAnYXNzZXQnLFxuICAgICAgICAgIG5hbWU6IHVuZGVmaW5lZCxcbiAgICAgICAgICBzb3VyY2U6IFwic2VsZi5hZGRFdmVudExpc3RlbmVyKCdmZXRjaCcsIGZ1bmN0aW9uKCkgeyByZXR1cm47IH0pO1wiLFxuICAgICAgICAgIGZpbGVOYW1lOiBgJHtwYWdlSWR9LXNlcnZpY2V3b3JrZXIuanNgLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0sXG4gIH07XG59XG4iLCJpbXBvcnQgbGVnYWN5UGx1Z2luIGZyb20gJ0B2aXRlanMvcGx1Z2luLWxlZ2FjeSc7XG5pbXBvcnQge1BsdWdpbn0gZnJvbSAndml0ZSc7XG5pbXBvcnQgYmFubmVyUGx1Z2luIGZyb20gJ3ZpdGUtcGx1Z2luLWJhbm5lcic7XG5pbXBvcnQge2NyZWF0ZUh0bWxQbHVnaW59IGZyb20gJ3ZpdGUtcGx1Z2luLWh0bWwnO1xuaW1wb3J0IHtWaXRlT3B0aW9uc30gZnJvbSAnLi4vdXRpbHMvaW50ZXJmYWNlcyc7XG5pbXBvcnQge2ltYWdlbWluUGx1Z2lufSBmcm9tICcuL2xpYi9pbWFnZS1wbHVnaW4nO1xuaW1wb3J0IHttYW5pZmVzdFBsdWdpbn0gZnJvbSAnLi9saWIvbWFuaWZlc3QtcGx1Z2luJztcblxuLy8gQnVpbGQgcGx1Z2luc1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUGx1Z2lucyhvcHRpb25zOiBWaXRlT3B0aW9ucyk6IFBsdWdpbltdIHtcbiAgLy8gTm8gYnVpbGQ/IG5vIHBsdWdpbnMuLlxuICBpZiAob3B0aW9ucy5lbnZpcm9ubWVudC5jb21tYW5kICE9PSAnYnVpbGQnKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgY29uc3QgcGx1Z2luczogUGx1Z2luW10gPSBbXTtcblxuICBpZiAob3B0aW9ucy5jb25maWcuYnVpbGQubGVnYWN5KSB7XG4gICAgLy8gTWFrZSBzdXJlIHRoZSBwYWdlIHdvcmtzIGluIG9sZGVyIGJyb3dzZXJzXG4gICAgcGx1Z2lucy5wdXNoKFxuICAgICAgLi4ubGVnYWN5UGx1Z2luKHtcbiAgICAgICAgdGFyZ2V0czogKG9wdGlvbnMuY29uZmlnLmJ1aWxkLmJyb3dzZXJzbGlzdCBhcyBzdHJpbmdbXSkgPz8gJ2RlZmF1bHRzJyxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBjb25zdCBwYWdlcyA9IE9iamVjdC5rZXlzKG9wdGlvbnMuc2V0dGluZ3MuZ2FtZXMpLm1hcCgoZ2FtZUlkKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZpbGVuYW1lOiBgJHtnYW1lSWR9Lmh0bWxgLFxuICAgICAgdGVtcGxhdGU6IGAke2dhbWVJZH0uaHRtbGAsXG4gICAgfTtcbiAgfSk7XG5cbiAgcGx1Z2lucy5wdXNoKFxuICAgIC8vIE1pbmlmeSBpbWFnZSBhc3NldHNcbiAgICBpbWFnZW1pblBsdWdpbihvcHRpb25zLmVudmlyb25tZW50LCBvcHRpb25zLmNvbmZpZy5idWlsZC5pbWFnZVF1YWxpdHkpLFxuXG4gICAgLy8gTWFrZSB0aGUgaHRtbCBvdXRwdXQgc21hbGxlclxuICAgIC4uLihjcmVhdGVIdG1sUGx1Z2luKHttaW5pZnk6IHRydWUsIHBhZ2VzfSkgYXMgUGx1Z2luW10pLFxuXG4gICAgLy8gQWRkIGEgYmFubmVyIHRvIGdlbmVyYXRlZCBqcy9jc3NcbiAgICBiYW5uZXJQbHVnaW4oXG4gICAgICBgXG4gICAgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLlxuXG4gICAgICAgICBfXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAgICAgIF8gICAgICAgICAgICBfXG4gICAgICAgIC8gICkgICAgICAgICAgICAgIHwgIG8gICAgICAgICAvfCAgIC8gfCB8ICAgICAgICAgIHwgfFxuICAgICAgICBcXFxcX18gX3xfICAgICAgICAgX198ICAgICAgX18gICAgIHxfXy8gIHwgfCAgX18gICBfICB8IHxcbiAgICAgICAgICAgXFxcXCB8ICB8ICAgfCAgLyAgfCAgfCAgLyAgXFxcXF8gICB8IFxcXFwgICB8LyAgLyAgXFxcXF98LyAgfC9fKVxuICAgICAgIChfX18vIHxfLyBcXFxcXy98Xy9cXFxcXy98Xy98Xy9cXFxcX18vICAgIHwgIFxcXFxfL3xfXy9cXFxcX18vIHxfXy98IFxcXFxfL1xuXG4gICAgICAgIENvbmNlcHQsIG9udHdlcnAgJiBvbnR3aWtrZWxpbmdcbiAgICAgICAgaHR0cHM6Ly9zdHVkaW9rbG9lay5ubFxuXG4gICAgICAgIFN0dWRpbyBLbG9layDinaQgUGl4aUpTLCBHU0FQICYgaG93bGVyLmpzXG5cbiAgICAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuXG5cbiAgICBgLFxuICAgICksXG4gICk7XG5cbiAgLy8gQ3JlYXRlIGEgbWFuaWZlc3QgYW5kIG1pbmltYWwgd2Vid29ya2VyIGZvciBldmVyeSBnYW1lXG4gIGlmIChvcHRpb25zLmNvbmZpZy5idWlsZC5tYW5pZmVzdCkge1xuICAgIHBsdWdpbnMucHVzaChtYW5pZmVzdFBsdWdpbihvcHRpb25zLnNldHRpbmdzLmdhbWVzKSk7XG4gIH1cblxuICByZXR1cm4gcGx1Z2lucztcbn1cbiIsImltcG9ydCBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQge1xuICBHYW1lU2V0dGluZ3MsXG4gIEdhbWVTZXR0aW5nc1Byb3BlcnR5LFxuICBHYW1lc1NldHRpbmdzLFxuICBHYW1lc1NldHRpbmdzRGF0YSxcbiAgS2xvZWtWaXRlQ29uZmlnLFxuICBQYWNrYWdlR2FtZXNTZXR0aW5ncyxcbn0gZnJvbSAnLi9pbnRlcmZhY2VzJztcblxuZnVuY3Rpb24gbWVyZ2VHYW1lU2V0dGluZ3MoXG4gIGdlbmVyaWM6IEdhbWVTZXR0aW5ncyxcbiAgZ2FtZTogR2FtZVNldHRpbmdzLFxuICBpbmZvVHlwZXM6IEdhbWVTZXR0aW5nc1Byb3BlcnR5W10sXG4pOiBHYW1lU2V0dGluZ3Mge1xuICBjb25zdCBzZXR0aW5nczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcblxuICAvLyBBbGxlIHByb3BzIG9wIMOpw6luIGxldmVsIGRpZXAgbWVyZ2VuXG4gIGZvciAoY29uc3QgcHJvcGVydHkgb2YgaW5mb1R5cGVzKSB7XG4gICAgc2V0dGluZ3NbcHJvcGVydHldID0ge1xuICAgICAgLi4uZ2VuZXJpY1twcm9wZXJ0eV0sXG4gICAgICAuLi5nYW1lW3Byb3BlcnR5XSxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHNldHRpbmdzIGFzIHVua25vd24gYXMgR2FtZVNldHRpbmdzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VQYWNrYWdlR2FtZXNTZXR0aW5ncyhcbiAgcGFja2FnZVNldHRpbmdzOiBQYWNrYWdlR2FtZXNTZXR0aW5ncyxcbik6IEdhbWVzU2V0dGluZ3NEYXRhIHtcbiAgLy8gTWVyZ2Ugc2V0dGluZ3NcbiAgY29uc3QgaW5mb1R5cGVzID0gT2JqZWN0LmtleXMoXG4gICAgcGFja2FnZVNldHRpbmdzLmdlbmVyaWMsXG4gICkgYXMgR2FtZVNldHRpbmdzUHJvcGVydHlbXTtcbiAgY29uc3Qge2dlbmVyaWN9ID0gcGFja2FnZVNldHRpbmdzO1xuICBjb25zdCBhbGxTZXR0aW5nczogR2FtZXNTZXR0aW5nc0RhdGEgPSB7XG4gICAgZGV2ZWxvcG1lbnQ6IGdlbmVyaWMsXG4gICAgZ2FtZXM6IHt9LFxuICB9O1xuXG4gIGZvciAoY29uc3QgZ2FtZSBvZiBwYWNrYWdlU2V0dGluZ3MuZ2FtZXMgPz8gW10pIHtcbiAgICBjb25zdCBzZXR0aW5ncyA9IG1lcmdlR2FtZVNldHRpbmdzKGdlbmVyaWMsIGdhbWUsIGluZm9UeXBlcyk7XG5cbiAgICAvLyBab3JnIGVyIHZvb3IgZGF0IHBhZ2UgYWx0aWpkIGdlemV0IGlzXG4gICAgY29uc3QgcGFnZUlkID0gc2V0dGluZ3MuaW5mby5wYWdlID8/IHNldHRpbmdzLmluZm8uaWQgPz8gJ3Vua25vd24nO1xuICAgIHNldHRpbmdzLmluZm8ucGFnZSA9IHBhZ2VJZDtcblxuICAgIC8vIFNsYSBzZXR0aW5ncyBvcCBvbmRlciBwYWdlIGlkXG4gICAgYWxsU2V0dGluZ3MuZ2FtZXNbcGFnZUlkXSA9IHNldHRpbmdzO1xuICB9XG5cbiAgcmV0dXJuIGFsbFNldHRpbmdzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGF0aFRvR2FtZURhdGEoXG4gIGZ1bGxGaWxlUGF0aDogc3RyaW5nLFxuICBzZXR0aW5nczogR2FtZXNTZXR0aW5ncyxcbik6IEdhbWVTZXR0aW5ncyB8IHVuZGVmaW5lZCB7XG4gIC8vIERldGVybWluZSBmaWxlbmFtZSB3aXRob3V0IGV4dGVuc2lvblxuICBsZXQgZmlsZVBhdGggPSBwYXRoLmJhc2VuYW1lKGZ1bGxGaWxlUGF0aCwgcGF0aC5leHRuYW1lKGZ1bGxGaWxlUGF0aCkpO1xuXG4gIC8vIERldGVybWluZSBkaXIgJiByZW1vdmUgbGVhZGluZyBzbGFzaFxuICBsZXQgZmlsZURpcmVjdG9yeSA9IHBhdGguZGlybmFtZShmdWxsRmlsZVBhdGgpO1xuICBmaWxlRGlyZWN0b3J5ID0gZmlsZURpcmVjdG9yeS5yZXBsYWNlKC9eXFwvKy9nLCAnJyk7XG5cbiAgaWYgKGZpbGVEaXJlY3RvcnkpIHtcbiAgICBmaWxlUGF0aCA9IGAke2ZpbGVEaXJlY3Rvcnl9LyR7ZmlsZVBhdGh9YDtcbiAgfVxuXG4gIHJldHVybiBzZXR0aW5nc1tmaWxlUGF0aF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYWdlVG9TZXJ2ZShcbiAgY29uZmlnOiBLbG9la1ZpdGVDb25maWcsXG4gIHNldHRpbmdzOiBHYW1lc1NldHRpbmdzLFxuKTogc3RyaW5nIHtcbiAgLy8gSG9ldmVlbCBwYWdlcyB6aWpuIGVyP1xuICBjb25zdCBwYWdlSWRzID0gT2JqZWN0LmtleXMoc2V0dGluZ3MpO1xuICBjb25zdCBwYWdlID0gcGFnZUlkcy5sZW5ndGggPT09IDEgPyBwYWdlSWRzWzBdIDogJ2RldmVsb3BtZW50JztcblxuICByZXR1cm4gcGF0aC5wb3NpeC5qb2luKFxuICAgIGNvbmZpZy5idWlsZC5iYXNlUGF0aCxcbiAgICBgJHtwYWdlfS5odG1sJHtjb25maWcuZGV2LnNlcnZlUGFyYW1zID8/ICcnfWAsXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYWdlSWRGcm9tVXJsKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKCF1cmwpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBsZXQgcGF0aG5hbWU6IHN0cmluZztcblxuICB0cnkge1xuICAgIHBhdGhuYW1lID0gbmV3IFVSTCh1cmwsICdodHRwczovL3N0dWRpb2tsb2VrLm5sJykucGF0aG5hbWU7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIC8vIElmIHJlcXVlc3QgaXMgbm90IGh0bWwgLCBkaXJlY3RseSByZXR1cm4gbmV4dCgpXG4gIGlmICghcGF0aG5hbWUuZW5kc1dpdGgoJy5odG1sJykgJiYgcGF0aG5hbWUgIT09ICcvJykge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIC8vIFBhZ2luYSBpZCBvcHZyYWdlblxuICBjb25zdCBpbmRleCA9IHBhdGhuYW1lLmxhc3RJbmRleE9mKCcvJyk7XG4gIGNvbnN0IGZpbGVOYW1lID0gaW5kZXggPT09IC0xID8gcGF0aG5hbWUgOiBwYXRobmFtZS5zbGljZShpbmRleCArIDEpO1xuXG4gIHJldHVybiBmaWxlTmFtZS5yZXBsYWNlKCcuaHRtbCcsICcnKTtcbn1cbiIsImltcG9ydCBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQge0J1aWxkT3B0aW9uc30gZnJvbSAndml0ZSc7XG5pbXBvcnQge1ZpdGVPcHRpb25zfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lQnVpbGRDb25maWcob3B0aW9uczogVml0ZU9wdGlvbnMpOiBCdWlsZE9wdGlvbnMge1xuICBjb25zdCBpbnB1dDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXG4gIGZvciAoY29uc3QgZ2FtZUlkIG9mIE9iamVjdC5rZXlzKG9wdGlvbnMuc2V0dGluZ3MuZ2FtZXMpKSB7XG4gICAgaW5wdXRbZ2FtZUlkXSA9IHBhdGgucmVzb2x2ZShvcHRpb25zLnJvb3QsIGAke2dhbWVJZH0uaHRtbGApO1xuICB9XG5cbiAgLy8gTGlicyBkaWUgYXBhcnRlIGpzIGtyaWpnZW46XG4gIGNvbnN0IHZlbmRvckNodW5rcyA9IFsnZmlyZWJhc2UnLCAncGl4aScsICdsb2Rhc2gnLCAnY2FwYWNpdG9yJywgJ2dzYXAnXTtcblxuICByZXR1cm4ge1xuICAgIHJlcG9ydENvbXByZXNzZWRTaXplOiBmYWxzZSxcbiAgICBjaHVua1NpemVXYXJuaW5nTGltaXQ6IDEwMDAsXG4gICAgb3V0RGlyOiAnLi4vcHVibGljJyxcbiAgICBhc3NldHNEaXI6ICdnZW5lcmF0ZWQnLFxuICAgIHJvbGx1cE9wdGlvbnM6IHtcbiAgICAgIGlucHV0LFxuICAgICAgb3V0cHV0OiB7XG4gICAgICAgIG1hbnVhbENodW5rcyhpZCkge1xuICAgICAgICAgIGlmIChpZC5pbmNsdWRlcygnbm9kZV9tb2R1bGVzJykpIHtcbiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBpZFxuICAgICAgICAgICAgICAudG9TdHJpbmcoKVxuICAgICAgICAgICAgICAuc3BsaXQoJ25vZGVfbW9kdWxlcy8nKVsxXVxuICAgICAgICAgICAgICAuc3BsaXQoJy8nKVswXVxuICAgICAgICAgICAgICAudG9TdHJpbmcoKTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiB2ZW5kb3JDaHVua3MpIHtcbiAgICAgICAgICAgICAgaWYgKG5hbWUuaW5jbHVkZXModmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcbn1cbiIsImltcG9ydCB7cmVhZEZpbGVTeW5jfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5pbXBvcnQge25vcm1hbGl6ZVBhdGh9IGZyb20gJ3ZpdGUnO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVhZEpTT04ocGF0aDogc3RyaW5nKTogdW5rbm93biB7XG4gIHRyeSB7XG4gICAgY29uc3QgZGF0YSA9IHJlYWRGaWxlU3luYyhwYXRoKTtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShkYXRhLnRvU3RyaW5nKCkpO1xuICB9IGNhdGNoIHtcbiAgICAvL1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgY29uc3QgY3dkID0gbm9ybWFsaXplUGF0aChwcm9jZXNzLmN3ZCgpKTtcblxuZXhwb3J0ICogZnJvbSAnLi9nYW1lJztcbmV4cG9ydCAqIGZyb20gJy4vYnVpbGQnO1xuIiwiaW1wb3J0IG9zIGZyb20gJ25vZGU6b3MnO1xuaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7UGx1Z2lufSBmcm9tICd2aXRlJztcbmltcG9ydCB2aXRlSGFuZGxlYmFyc1BsdWdpbiBmcm9tICd2aXRlLXBsdWdpbi1oYW5kbGViYXJzJztcbmltcG9ydCB7Vml0ZU9wdGlvbnN9IGZyb20gJy4uLy4uL3V0aWxzL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtnZXRQYWdlSWRGcm9tVXJsfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbi8vIEhlbHBlcnMgdm9vciBoYW5kbGViYXJzXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlYmFyc1BsdWdpbihcbiAgcGFydGlhbERpcmVjdG9yeTogc3RyaW5nIHwgc3RyaW5nW10sXG4gIG9wdGlvbnM6IFZpdGVPcHRpb25zLFxuKTogUGx1Z2luIHtcbiAgcmV0dXJuIHZpdGVIYW5kbGViYXJzUGx1Z2luKHtcbiAgICBwYXJ0aWFsRGlyZWN0b3J5LFxuXG4gICAgaGVscGVyczoge1xuICAgICAganNvbjogKG9iamVjdDogYW55LCBpbmRlbnQgPSAwKSA9PlxuICAgICAgICBKU09OLnN0cmluZ2lmeShvYmplY3QsIHVuZGVmaW5lZCwgaW5kZW50KSxcbiAgICAgIGNvbmNhdDogKC4uLmFyZ3VtZW50c186IGFueVtdKSA9PiBhcmd1bWVudHNfLnNsaWNlKDAsIC0xKS5qb2luKCcnKSxcbiAgICAgIGVxOiAoYTogYW55LCBiOiBhbnkpID0+IGEgPT09IGIsXG4gICAgICBuZXE6IChhOiBhbnksIGI6IGFueSkgPT4gYSAhPT0gYixcbiAgICAgIGlzZGVmaW5lZDogKHZhbHVlOiB1bmRlZmluZWQpID0+IHZhbHVlICE9PSB1bmRlZmluZWQsXG4gICAgICAncmVzb2x2ZS1yb290JyhwOiBzdHJpbmcpIHtcbiAgICAgICAgLy8gVGlqZGVsaWprZSBoYWNrIHZvb3IgYnVnIGluIGhhbmRsZWJhcnMgcGx1Z2luXG4gICAgICAgIC8vIHppZSBvb2sgaHR0cHM6Ly9naXRodWIuY29tL2FsZXhsYWZyb3NjaWEvdml0ZS1wbHVnaW4taGFuZGxlYmFycy9wdWxsLzEyOVxuICAgICAgICBjb25zdCByZXNvbHZlZFBhdGggPSBwYXRoLnJlc29sdmUob3B0aW9ucy5yb290LCBwKTtcbiAgICAgICAgcmV0dXJuIG9zLnBsYXRmb3JtKCkgPT09ICd3aW4zMicgPyBgLyR7cmVzb2x2ZWRQYXRofWAgOiByZXNvbHZlZFBhdGg7XG4gICAgICB9LFxuICAgIH0sXG5cbiAgICBjb250ZXh0KHBhZ2VQYXRoOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgICBjb25zdCBnYW1lSWQgPSBnZXRQYWdlSWRGcm9tVXJsKHBhZ2VQYXRoKTtcblxuICAgICAgaWYgKCFnYW1lSWQpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgfVxuXG4gICAgICBpZiAoZ2FtZUlkID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgIC8vIFBhZ2luYSBzZXR0aW5ncyB0ZXJ1Z2dldmVuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZW52OiBvcHRpb25zLmVudmlyb25tZW50LFxuICAgICAgICAgIGRhdGE6IG9wdGlvbnMuc2V0dGluZ3MuZGV2ZWxvcG1lbnQsXG4gICAgICAgICAgZ2FtZXM6IG9wdGlvbnMuc2V0dGluZ3MuZ2FtZXMsXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIC8vIE9wIGJhc2lzIHZhbiBwYWQgZGF0YSBiZXBhbGVuXG4gICAgICBjb25zdCBzZXR0aW5ncyA9IG9wdGlvbnMuc2V0dGluZ3MuZ2FtZXNbZ2FtZUlkXTtcblxuICAgICAgLy8gUGFnaW5hIHNldHRpbmdzIHRlcnVnZ2V2ZW5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGVudjogb3B0aW9ucy5lbnZpcm9ubWVudCxcbiAgICAgICAgZGF0YTogc2V0dGluZ3MgPz8ge30sXG4gICAgICB9O1xuICAgIH0sXG4gIH0pO1xufVxuIiwiaW1wb3J0IHtleGlzdHNTeW5jLCBwcm9taXNlc30gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHtDb25maWdFbnYsIFBsdWdpbiwgVXNlckNvbmZpZywgVml0ZURldlNlcnZlcn0gZnJvbSAndml0ZSc7XG5pbXBvcnQge0dhbWVzU2V0dGluZ3N9IGZyb20gJy4uLy4uL3V0aWxzL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtjd2QsIGdldFBhZ2VJZEZyb21Vcmx9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuY29uc3QgUEFHRV9URU1QTEFURSA9ICd7ez4gZ2FtZSBkYXRhPWRhdGF9fSc7XG5jb25zdCBERVZFTE9QTUVOVF9URU1QTEFURSA9ICd7ez4gZGV2ZWxvcG1lbnQgZGF0YT1kYXRhfX0nO1xuXG5hc3luYyBmdW5jdGlvbiByZW5kZXJUZW1wb3JhcnlGaWxlKGZpbGVQYXRoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgLy8gQmVzdGFhdCBkaWUgZmlsZSBub2cgbmlldD9cbiAgaWYgKCFleGlzdHNTeW5jKGZpbGVQYXRoKSkge1xuICAgIC8vIEFhbm1ha2VuXG4gICAgYXdhaXQgcHJvbWlzZXMud3JpdGVGaWxlKGZpbGVQYXRoLCBQQUdFX1RFTVBMQVRFKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaHRtbFBsdWdpbihnYW1lczogR2FtZXNTZXR0aW5ncyk6IFBsdWdpbiB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ3ZpdGUtcGx1Z2luLWtsb2VrLWh0bWwnLFxuICAgIGVuZm9yY2U6ICdwcmUnLFxuXG4gICAgYXN5bmMgY29uZmlnKF9jb25maWc6IFVzZXJDb25maWcsIGVudmlyb25tZW50OiBDb25maWdFbnYpIHtcbiAgICAgIC8vIEJpaiBlZW4gYnVpbGQgbWFrZW4gd2UgdGlqZGVsaWprIGZpbGVzIGFhblxuICAgICAgaWYgKGVudmlyb25tZW50LmNvbW1hbmQgPT09ICdidWlsZCcpIHtcbiAgICAgICAgY29uc3QgYWN0aW9uczogQXJyYXk8UHJvbWlzZTx2b2lkPj4gPSBbXTtcblxuICAgICAgICBmb3IgKGNvbnN0IHBhZ2VJZCBvZiBPYmplY3Qua2V5cyhnYW1lcykpIHtcbiAgICAgICAgICAvLyBQYWQgbmFhciBmaWxlXG4gICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLnJlc29sdmUoY3dkLCAnc291cmNlJywgYCR7cGFnZUlkfS5odG1sYCk7XG4gICAgICAgICAgYWN0aW9ucy5wdXNoKHJlbmRlclRlbXBvcmFyeUZpbGUoZmlsZVBhdGgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKGFjdGlvbnMpO1xuICAgICAgfVxuICAgIH0sXG5cbiAgICBjb25maWd1cmVTZXJ2ZXIoc2VydmVyOiBWaXRlRGV2U2VydmVyKSB7XG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAvLyBab3JnIGVyIHZvb3IgZGF0IHRpamRlbnMgZGV2ZWxvcG1lbnQgZGUgcGFnaW5hIGdlLXJlbmRlcmVkIHRlcnVnIGdlZ2V2ZW4gd29yZHQgd29yZHRcbiAgICAgICAgc2VydmVyLm1pZGRsZXdhcmVzLnVzZSgnLycsIGFzeW5jIChyZXF1ZXN0LCByZXNwb25zZSwgbmV4dCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHVybCA9IHJlcXVlc3Q/LnVybCA/PyAnJztcbiAgICAgICAgICBjb25zdCBwYWdlSWQgPSBnZXRQYWdlSWRGcm9tVXJsKHVybCk7XG5cbiAgICAgICAgICBpZiAoIXBhZ2VJZCkge1xuICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChwYWdlSWQgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgICAgIC8vIERldmVsb3BtZW50PyBnZWVmIHRlcnVnLi4uXG4gICAgICAgICAgICByZXNwb25zZS5lbmQoXG4gICAgICAgICAgICAgIGF3YWl0IHNlcnZlci50cmFuc2Zvcm1JbmRleEh0bWwoXG4gICAgICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgICAgIERFVkVMT1BNRU5UX1RFTVBMQVRFLFxuICAgICAgICAgICAgICAgIHJlcXVlc3Qub3JpZ2luYWxVcmwsXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSBpZiAoT2JqZWN0LmtleXMoZ2FtZXMpLmluY2x1ZGVzKHBhZ2VJZCkpIHtcbiAgICAgICAgICAgIC8vIEJlc3RhYW5kZSBnYW1lPyB6b3JnIGVyIHZvb3IgZGF0IGRlIHRlbXBsYXRlIGdlLXJlbmRlcmVkIHdvcmR0XG4gICAgICAgICAgICByZXNwb25zZS5lbmQoXG4gICAgICAgICAgICAgIGF3YWl0IHNlcnZlci50cmFuc2Zvcm1JbmRleEh0bWwoXG4gICAgICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgICAgIFBBR0VfVEVNUExBVEUsXG4gICAgICAgICAgICAgICAgcmVxdWVzdC5vcmlnaW5hbFVybCxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIE5pa3MgZ2V2b25kZW5cbiAgICAgICAgICAgIHJlc3BvbnNlLmVuZCgnNDA0Jyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgfSxcblxuICAgIGFzeW5jIGNsb3NlQnVuZGxlKCkge1xuICAgICAgLy8gVmVyd2lqZGVyIGRlIGFhbmdlbWFha3RlIGZpbGVzXG4gICAgICBjb25zdCBhY3Rpb25zOiBBcnJheTxQcm9taXNlPHZvaWQ+PiA9IFtdO1xuICAgICAgZm9yIChjb25zdCBwYWdlSWQgb2YgT2JqZWN0LmtleXMoZ2FtZXMpKSB7XG4gICAgICAgIC8vIFBhZCBuYWFyIGZpbGVcbiAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLnJlc29sdmUoY3dkLCAnc291cmNlJywgYCR7cGFnZUlkfS5odG1sYCk7XG4gICAgICAgIGlmIChleGlzdHNTeW5jKGZpbGVQYXRoKSkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhY3Rpb25zLnB1c2gocHJvbWlzZXMucm0oZmlsZVBhdGgpKTtcbiAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKGFjdGlvbnMpO1xuICAgIH0sXG4gIH07XG59XG4iLCJpbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHtzdmVsdGV9IGZyb20gJ0BzdmVsdGVqcy92aXRlLXBsdWdpbi1zdmVsdGUnO1xuaW1wb3J0IHtQbHVnaW59IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IGZ1bGxSZWxvYWQgZnJvbSAndml0ZS1wbHVnaW4tZnVsbC1yZWxvYWQnO1xuaW1wb3J0IHRzY29uZmlnUGF0aHNQbHVnaW4gZnJvbSAndml0ZS10c2NvbmZpZy1wYXRocyc7XG5pbXBvcnQgYmFzaWNTU0wgZnJvbSAnQHZpdGVqcy9wbHVnaW4tYmFzaWMtc3NsJztcbmltcG9ydCB7Vml0ZU9wdGlvbnN9IGZyb20gJy4uL3V0aWxzL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtjd2R9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7aGFuZGxlYmFyc1BsdWdpbn0gZnJvbSAnLi9saWIvaGFuZGxlYmFycy1wbHVnaW4nO1xuaW1wb3J0IHtodG1sUGx1Z2lufSBmcm9tICcuL2xpYi9odG1sLXBsdWdpbic7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXJ2ZVBsdWdpbnMob3B0aW9uczogVml0ZU9wdGlvbnMpOiBQbHVnaW5bXSB7XG4gIHJldHVybiBbXG4gICAgaHRtbFBsdWdpbihvcHRpb25zLnNldHRpbmdzLmdhbWVzKSxcblxuICAgIC4uLnN2ZWx0ZSh7XG4gICAgICAvLyBIb3Q6IGZhbHNlLFxuICAgICAgZXhwZXJpbWVudGFsOiB7XG4gICAgICAgIHByZWJ1bmRsZVN2ZWx0ZUxpYnJhcmllczogdHJ1ZSxcbiAgICAgICAgdXNlVml0ZVByZXByb2Nlc3M6IHRydWUsXG4gICAgICB9LFxuICAgIH0pLFxuXG4gICAgdHNjb25maWdQYXRoc1BsdWdpbih7XG4gICAgICByb290OiBwYXRoLnJlc29sdmUoY3dkKSxcbiAgICAgIGV4dGVuc2lvbnM6IFsnLnRzJywgJy5qc29uJ10sXG4gICAgICBsb29zZTogdHJ1ZSxcbiAgICB9KSxcblxuICAgIGZ1bGxSZWxvYWQoWydzY3JpcHQvKiovKi50cycsICdzdmVsdGUvKiovKi5zdmVsdGUnXSwge1xuICAgICAgcm9vdDogcGF0aC5qb2luKHBhdGgucmVzb2x2ZShjd2QpLCAnc291cmNlJyksXG4gICAgICBsb2c6IHRydWUsXG4gICAgICBhbHdheXM6IHRydWUsXG4gICAgfSkgYXMgUGx1Z2luLFxuXG4gICAgaGFuZGxlYmFyc1BsdWdpbihvcHRpb25zLmNvbmZpZy5zZXJ2ZS5wYXJ0aWFscywgb3B0aW9ucyksXG5cbiAgICBiYXNpY1NTTCgpLFxuICBdO1xufVxuIiwiaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7ZmlsZVVSTFRvUGF0aH0gZnJvbSAnbm9kZTp1cmwnO1xuaW1wb3J0IHtDb25maWdFbnYsIFVzZXJDb25maWd9IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IHtidWlsZFBsdWdpbnN9IGZyb20gJy4vcGx1Z2lucy9idWlsZCc7XG5pbXBvcnQge3NlcnZlUGx1Z2luc30gZnJvbSAnLi9wbHVnaW5zL3NlcnZlJztcbmltcG9ydCB7XG4gIGN3ZCxcbiAgZGVmaW5lQnVpbGRDb25maWcsXG4gIGdldFBhZ2VUb1NlcnZlLFxuICBwYXJzZVBhY2thZ2VHYW1lc1NldHRpbmdzLFxuICByZWFkSlNPTixcbn0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQge1xuICBLbG9la1ZpdGVDb25maWcsXG4gIFBhY2thZ2VHYW1lc1NldHRpbmdzLFxuICBWaXRlT3B0aW9ucyxcbn0gZnJvbSAnLi91dGlscy9pbnRlcmZhY2VzJztcblxuY29uc3QgX19kaXJuYW1lID0gcGF0aC5kaXJuYW1lKGZpbGVVUkxUb1BhdGgoaW1wb3J0Lm1ldGEudXJsKSk7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZWZpbmVLbG9la1ZpdGVDb25maWcoXG4gIGVudmlyb25tZW50OiBDb25maWdFbnYsXG4pOiBQcm9taXNlPFVzZXJDb25maWc+IHtcbiAgY29uc3QgcGtnID0gcmVhZEpTT04ocGF0aC5yZXNvbHZlKGN3ZCwgJ3BhY2thZ2UuanNvbicpKSBhcyBSZWNvcmQ8XG4gICAgc3RyaW5nLFxuICAgIHVua25vd25cbiAgPjtcbiAgY29uc3Qga2xvZWtDb25maWcgPSBwa2cudml0ZSBhcyBLbG9la1ZpdGVDb25maWc7XG4gIGNvbnN0IGJyb3dzZXJzbGlzdCA9IHBrZy5icm93c2Vyc2xpc3QgYXMgc3RyaW5nIHwgc3RyaW5nW107XG4gIGNvbnN0IG9wdGlvbnM6IFZpdGVPcHRpb25zID0ge1xuICAgIHJvb3Q6IHBhdGgucmVzb2x2ZShjd2QsICdzb3VyY2UnKSxcbiAgICBlbnZpcm9ubWVudCxcbiAgICBzZXR0aW5nczogcGFyc2VQYWNrYWdlR2FtZXNTZXR0aW5ncyhwa2cuc2V0dGluZ3MgYXMgUGFja2FnZUdhbWVzU2V0dGluZ3MpLFxuICAgIGNvbmZpZzoge1xuICAgICAgLi4ua2xvZWtDb25maWcsXG4gICAgICBidWlsZDogey4uLmtsb2VrQ29uZmlnLmJ1aWxkLCBicm93c2Vyc2xpc3R9LFxuICAgICAgc2VydmU6IHtcbiAgICAgICAgcGFydGlhbHM6IFtcbiAgICAgICAgICBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAncGFydGlhbHMnKSxcbiAgICAgICAgICBwYXRoLnJlc29sdmUoY3dkLCAnc291cmNlJywgJ3BhcnRpYWxzJyksXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG5cbiAgY29uc3QgY29uZmlnOiBVc2VyQ29uZmlnID0ge1xuICAgIGxvZ0xldmVsOiAnaW5mbycsXG4gICAgYmFzZToga2xvZWtDb25maWcuYnVpbGQuYmFzZVBhdGgsXG4gICAgcm9vdDogb3B0aW9ucy5yb290LFxuICAgIHB1YmxpY0RpcjogJ3N0YXRpYycsXG4gICAgZGVmaW5lOiB7fSxcblxuICAgIGVzYnVpbGQ6IHtcbiAgICAgIGxlZ2FsQ29tbWVudHM6ICdub25lJyxcbiAgICB9LFxuXG4gICAgcmVzb2x2ZToge1xuICAgICAgYWxpYXM6IHtcbiAgICAgICAgbG9kYXNoOiAnbG9kYXNoLWVzJyxcbiAgICAgICAgJ0BtZXRhJzogcGF0aC5yZXNvbHZlKGN3ZCwgJ3NvdXJjZScsICdzdGF0aWMnLCAnbWV0YScpLFxuICAgICAgICAnQGZvbnRzJzogcGF0aC5yZXNvbHZlKGN3ZCwgJ3NvdXJjZScsICdzdGF0aWMnLCAnZm9udHMnKSxcbiAgICAgIH0sXG4gICAgfSxcblxuICAgIGNzczoge1xuICAgICAgcHJlcHJvY2Vzc29yT3B0aW9uczoge1xuICAgICAgICBzY3NzOiB7XG4gICAgICAgICAgY2hhcnNldDogZmFsc2UsXG4gICAgICAgICAgLy8gQWRkaXRpb25hbERhdGE6IGBAY2hhcnNldCBcIlVURi04XCJgLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuXG4gICAgcGx1Z2luczogWy4uLnNlcnZlUGx1Z2lucyhvcHRpb25zKV0sXG4gIH07XG5cbiAgc3dpdGNoIChlbnZpcm9ubWVudC5jb21tYW5kKSB7XG4gICAgY2FzZSAnc2VydmUnOlxuICAgICAgY29uZmlnLnNlcnZlciA9IHtcbiAgICAgICAgaG9zdDogJ2xvY2FsaG9zdCcsXG4gICAgICAgIGh0dHBzOiB0cnVlLFxuICAgICAgICBvcGVuOiBnZXRQYWdlVG9TZXJ2ZShvcHRpb25zLmNvbmZpZywgb3B0aW9ucy5zZXR0aW5ncy5nYW1lcyksXG4gICAgICB9O1xuXG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2J1aWxkJzpcbiAgICAgIGNvbmZpZy5idWlsZCA9IGRlZmluZUJ1aWxkQ29uZmlnKG9wdGlvbnMpO1xuICAgICAgY29uZmlnLnBsdWdpbnMgPSBbXG4gICAgICAgIC4uLihjb25maWcucGx1Z2lucyA/IGNvbmZpZy5wbHVnaW5zIDogW10pLFxuICAgICAgICAuLi5idWlsZFBsdWdpbnMob3B0aW9ucyksXG4gICAgICBdO1xuICAgICAgYnJlYWs7XG5cbiAgICBkZWZhdWx0OlxuICB9XG5cbiAgcmV0dXJuIGNvbmZpZztcbn1cbiIsImltcG9ydCB7VHlwZWRGbGFnc30gZnJvbSAnbWVvdyc7XG5pbXBvcnQge2J1aWxkLCBjcmVhdGVTZXJ2ZXJ9IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IHtkZWZpbmVLbG9la1ZpdGVDb25maWd9IGZyb20gJy4vY29uZmlnJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGtsb2VrRGV2ZWxvcG1lbnQoKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGNvbmZpZyA9IGF3YWl0IGRlZmluZUtsb2VrVml0ZUNvbmZpZyh7XG4gICAgY29tbWFuZDogJ3NlcnZlJyxcbiAgICBtb2RlOiAnZGV2ZWxvcG1lbnQnLFxuICB9KTtcblxuICBjb25zdCBzZXJ2ZXIgPSBhd2FpdCBjcmVhdGVTZXJ2ZXIoe1xuICAgIGNvbmZpZ0ZpbGU6IGZhbHNlLFxuICAgIGVudkZpbGU6IGZhbHNlLFxuICAgIC4uLmNvbmZpZyxcbiAgfSk7XG5cbiAgYXdhaXQgc2VydmVyLmxpc3RlbigpO1xuICBzZXJ2ZXIucHJpbnRVcmxzKCk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBrbG9la0J1aWxkKFxuICBmbGFnczogVHlwZWRGbGFnczx7XG4gICAgZW1wdHlPdXREaXI6IHtcbiAgICAgIHR5cGU6ICdib29sZWFuJztcbiAgICAgIGFsaWFzOiBzdHJpbmc7XG4gICAgICBkZWZhdWx0OiB0cnVlO1xuICAgIH07XG4gICAgYmFzZToge1xuICAgICAgdHlwZTogJ3N0cmluZyc7XG4gICAgICBhbGlhczogc3RyaW5nO1xuICAgICAgZGVmYXVsdDogc3RyaW5nO1xuICAgIH07XG4gIH0+LFxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGNvbmZpZyA9IGF3YWl0IGRlZmluZUtsb2VrVml0ZUNvbmZpZyh7XG4gICAgY29tbWFuZDogJ2J1aWxkJyxcbiAgICBtb2RlOiAncHJvZHVjdGlvbicsXG4gIH0pO1xuXG4gIC8vIEVtcHR5IG91dCB0aGUgT3V0cHV0IGRpciBiZWZvcmUgYnVpbGRpbmc/XG4gIGlmIChmbGFncy5lbXB0eU91dERpciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY29uZmlnLmJ1aWxkID0ge1xuICAgICAgLi4uY29uZmlnLmJ1aWxkLFxuICAgICAgZW1wdHlPdXREaXI6IGZsYWdzLmVtcHR5T3V0RGlyLFxuICAgIH07XG4gIH1cblxuICAvLyBEaWZmZXJlbnQgYmFzZSBwYXRoXG4gIGlmICh0eXBlb2YgZmxhZ3MuYmFzZSA9PT0gJ3N0cmluZycpIHtcbiAgICBjb25maWcuYmFzZSA9IGZsYWdzLmJhc2U7XG4gIH1cblxuICBhd2FpdCBidWlsZCh7XG4gICAgY29uZmlnRmlsZTogZmFsc2UsXG4gICAgZW52RmlsZTogZmFsc2UsXG4gICAgLi4uY29uZmlnLFxuICB9KTtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBSWdCLFNBQUEs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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@studiokloek/vite-config",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.5",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": "Martijn Swart <opensource@studiokloek.nl> (https://studiokloek.nl)",
|
|
6
6
|
"description": "Base Vite config for usage in our projects.",
|
|
@@ -69,11 +69,12 @@
|
|
|
69
69
|
"@sveltejs/vite-plugin-svelte": "^1.0.1",
|
|
70
70
|
"@typescript-eslint/eslint-plugin": "^5.33.1",
|
|
71
71
|
"@typescript-eslint/parser": "^5.33.1",
|
|
72
|
+
"@vitejs/plugin-basic-ssl": "^0.1.2",
|
|
72
73
|
"@vitejs/plugin-legacy": "^2.0.1",
|
|
73
74
|
"eslint": "^8.22.0",
|
|
74
75
|
"eslint-config-prettier": "^8.5.0",
|
|
75
76
|
"eslint-formatter-pretty": "^4.1.0",
|
|
76
|
-
"eslint-import-resolver-typescript": "^3.4.
|
|
77
|
+
"eslint-import-resolver-typescript": "^3.4.2",
|
|
77
78
|
"eslint-plugin-eslint-comments": "^3.2.0",
|
|
78
79
|
"eslint-plugin-import": "^2.26.0",
|
|
79
80
|
"eslint-plugin-prettier": "^4.2.1",
|
|
@@ -90,7 +91,7 @@
|
|
|
90
91
|
"sass": "^1.54.4",
|
|
91
92
|
"svelte": "^3.49.0",
|
|
92
93
|
"terser": "^5.14.2",
|
|
93
|
-
"vite": "v3.0.
|
|
94
|
+
"vite": "v3.0.9",
|
|
94
95
|
"vite-plugin-banner": "^0.3.0",
|
|
95
96
|
"vite-plugin-full-reload": "^1.0.4",
|
|
96
97
|
"vite-plugin-handlebars": "naranjamecanica/vite-plugin-handlebars#tmp-release",
|
|
@@ -100,22 +101,22 @@
|
|
|
100
101
|
"vite-tsconfig-paths": "^3.5.0"
|
|
101
102
|
},
|
|
102
103
|
"devDependencies": {
|
|
103
|
-
"@microsoft/api-extractor": "^7.29.
|
|
104
|
+
"@microsoft/api-extractor": "^7.29.3",
|
|
104
105
|
"@rollup/plugin-node-resolve": "^13.3.0",
|
|
105
106
|
"@rollup/plugin-typescript": "^8.3.4",
|
|
106
|
-
"@sveltejs/kit": "^1.0.0-next.
|
|
107
|
+
"@sveltejs/kit": "^1.0.0-next.424",
|
|
107
108
|
"@types/ejs": "^3.1.1",
|
|
108
109
|
"@types/html-minifier-terser": "^7.0.0",
|
|
109
|
-
"@types/node": "^
|
|
110
|
+
"@types/node": "^18.7.6",
|
|
110
111
|
"np": "^7.6.2",
|
|
111
112
|
"prettier": "^2.7.1",
|
|
112
113
|
"rimraf": "^3.0.2",
|
|
113
|
-
"rollup": "^2.78.
|
|
114
|
+
"rollup": "^2.78.1",
|
|
114
115
|
"typescript": "^4.7.4",
|
|
115
116
|
"xo": "^0.51.0"
|
|
116
117
|
},
|
|
117
118
|
"resolutions": {
|
|
118
|
-
"@types/node": "^
|
|
119
|
-
"vite": "v3.0.
|
|
119
|
+
"@types/node": "^18.7.6",
|
|
120
|
+
"vite": "v3.0.9"
|
|
120
121
|
}
|
|
121
122
|
}
|