@studiokloek/vite-config 0.3.3 → 0.3.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.
- package/dist/index.js +3 -1
- package/package.json +2 -1
package/dist/index.js
CHANGED
|
@@ -9,6 +9,7 @@ import imageminPlugin2 from 'vite-plugin-imagemin';
|
|
|
9
9
|
import { svelte } from '@sveltejs/vite-plugin-svelte';
|
|
10
10
|
import fullReload from 'vite-plugin-full-reload';
|
|
11
11
|
import tsconfigPathsPlugin from 'vite-tsconfig-paths';
|
|
12
|
+
import basicSSL from '@vitejs/plugin-basic-ssl';
|
|
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
|
|
|
@@ -476,4 +478,4 @@ async function kloekBuild(flags) {
|
|
|
476
478
|
}
|
|
477
479
|
|
|
478
480
|
export { kloekBuild, kloekDevelopment };
|
|
479
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uL3NyYy9wbHVnaW5zL2xpYi9pbWFnZS1wbHVnaW4udHMiLCIuLi9zcmMvcGx1Z2lucy9saWIvbWFuaWZlc3QtcGx1Z2luLnRzIiwiLi4vc3JjL3BsdWdpbnMvYnVpbGQudHMiLCIuLi9zcmMvdXRpbHMvZ2FtZS50cyIsIi4uL3NyYy91dGlscy9idWlsZC50cyIsIi4uL3NyYy91dGlscy9pbmRleC50cyIsIi4uL3NyYy9wbHVnaW5zL2xpYi9oYW5kbGViYXJzLXBsdWdpbi50cyIsIi4uL3NyYy9wbHVnaW5zL2xpYi9odG1sLXBsdWdpbi50cyIsIi4uL3NyYy9wbHVnaW5zL3NlcnZlLnRzIiwiLi4vc3JjL2NvbmZpZy50cyIsIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbmZpZ0VudiwgUGx1Z2lufSBmcm9tICd2aXRlJztcbmltcG9ydCBpbWFnZW1pblBsdWdpbjIgZnJvbSAndml0ZS1wbHVnaW4taW1hZ2VtaW4nO1xuaW1wb3J0IHtJbWFnZVF1YWxpdHlDb25maWd9IGZyb20gJy4uLy4uL3V0aWxzL2ludGVyZmFjZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gaW1hZ2VtaW5QbHVnaW4oXG4gIGVudmlyb25tZW50OiBDb25maWdFbnYsXG4gIG9wdGlvbnM6IEltYWdlUXVhbGl0eUNvbmZpZyxcbik6IFBsdWdpbiB7XG4gIHJldHVybiBpbWFnZW1pblBsdWdpbjIoe1xuICAgIGRpc2FibGU6IGVudmlyb25tZW50Lm1vZGUgIT09ICdwcm9kdWN0aW9uJyxcbiAgICBtb3pqcGVnOiB7XG4gICAgICBxdWFsaXR5OiBvcHRpb25zPy5qcGVnID8/IDgwLFxuICAgIH0sXG4gICAgcG5ncXVhbnQ6IHtcbiAgICAgIHN0cmlwOiB0cnVlLFxuICAgICAgc3BlZWQ6IDIsXG4gICAgICBkaXRoZXJpbmc6IDAuMjUsXG4gICAgICBxdWFsaXR5OiBvcHRpb25zPy5wbmcgPz8gWzAuNSwgMC43XSxcbiAgICB9LFxuICB9KSBhcyBQbHVnaW47XG59XG4iLCJpbXBvcnQge1BsdWdpbiwgUmVzb2x2ZWRDb25maWd9IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IHtHYW1lU2V0dGluZ3MsIEdhbWVzU2V0dGluZ3N9IGZyb20gJy4uLy4uL3V0aWxzL2ludGVyZmFjZXMnO1xuXG5mdW5jdGlvbiByZW5kZXJHYW1lTWFuaWZlc3QoXG4gIHBhZ2VJZDogc3RyaW5nLFxuICBzZXR0aW5nczogR2FtZVNldHRpbmdzLFxuICBjb25maWc6IFJlc29sdmVkQ29uZmlnLFxuKTogc3RyaW5nIHtcbiAgY29uc3QgbWFuaWZlc3QgPSB7XG4gICAgc2hvcnRfbmFtZTogYCR7c2V0dGluZ3MubWV0YS5hcHB0aXRsZX1gLFxuICAgIG5hbWU6IGAke3NldHRpbmdzLm1ldGEudGl0bGV9YCxcbiAgICBkZXNjcmlwdGlvbjogYCR7c2V0dGluZ3MubWV0YS5kZXNjcmlwdGlvbn1gLFxuICAgIHNjb3BlOiBgJHtjb25maWcuYmFzZX0ke3BhZ2VJZH0uaHRtbGAsXG4gICAgc3RhcnRfdXJsOiBgJHtjb25maWcuYmFzZX0ke3BhZ2VJZH0uaHRtbGAsXG4gICAgZGlzcGxheTogJ2Z1bGxzY3JlZW4nLFxuICAgIG9yaWVudGF0aW9uOiBgJHtzZXR0aW5ncy5vcHRpb25zLm9yaWVudGF0aW9uID8/ICdsYW5kc2NhcGUnfWAsXG4gICAgaWNvbnM6IFtcbiAgICAgIHtcbiAgICAgICAgc3JjOiBgJHtjb25maWcuYmFzZX1tZXRhLyR7c2V0dGluZ3MuaW5mby5pZH0vaWNvbnMvY2hyb21lLXRvdWNoLWljb24tMTkyeDE5Mi5wbmdgLFxuICAgICAgICB0eXBlOiAnaW1hZ2UvcG5nJyxcbiAgICAgICAgc2l6ZXM6ICcxOTJ4MTkyJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHNyYzogYCR7Y29uZmlnLmJhc2V9bWV0YS8ke3NldHRpbmdzLmluZm8uaWR9L2ljb25zL2ljb24ucG5nYCxcbiAgICAgICAgdHlwZTogJ2ltYWdlL3BuZycsXG4gICAgICAgIHNpemVzOiAnMTAyNHgxMDI0JyxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBiYWNrZ3JvdW5kX2NvbG9yOiBgJHtzZXR0aW5ncy5vcHRpb25zLmJhY2tncm91bmRDb2xvcn1gLFxuICAgIHRoZW1lX2NvbG9yOiBgJHtzZXR0aW5ncy5vcHRpb25zLmJhY2tncm91bmRDb2xvcn1gLFxuICB9O1xuXG4gIHJldHVybiBgJHtKU09OLnN0cmluZ2lmeShtYW5pZmVzdCwgbnVsbCwgMil9XFxuYDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hbmlmZXN0UGx1Z2luKGdhbWVzOiBHYW1lc1NldHRpbmdzKTogUGx1Z2luIHtcbiAgbGV0IGNvbmZpZzogUmVzb2x2ZWRDb25maWc7XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAndml0ZS1wbHVnaW4ta2xvZWstbWFuaWZlc3QnLFxuICAgIGVuZm9yY2U6ICdwb3N0JyxcbiAgICBhcHBseTogJ2J1aWxkJyxcbiAgICBhc3luYyBjb25maWdSZXNvbHZlZChyZXNvbHZlZENvbmZpZzogUmVzb2x2ZWRDb25maWcpIHtcbiAgICAgIGNvbmZpZyA9IHJlc29sdmVkQ29uZmlnO1xuICAgIH0sXG4gICAgZ2VuZXJhdGVCdW5kbGUoXywgYnVuZGxlKSB7XG4gICAgICAvLyBWb29yIGllZGVyZSBhcHAgZWVuIG1hbmlmZXN0IG1ha2VuOlxuICAgICAgZm9yIChjb25zdCBbcGFnZUlkLCBzZXR0aW5nc10gb2YgT2JqZWN0LmVudHJpZXMoZ2FtZXMpKSB7XG4gICAgICAgIGJ1bmRsZVtgJHtwYWdlSWR9LndlYm1hbmlmZXN0YF0gPSB7XG4gICAgICAgICAgaXNBc3NldDogdHJ1ZSxcbiAgICAgICAgICB0eXBlOiAnYXNzZXQnLFxuICAgICAgICAgIG5hbWU6IHVuZGVmaW5lZCxcbiAgICAgICAgICBzb3VyY2U6IHJlbmRlckdhbWVNYW5pZmVzdChwYWdlSWQsIHNldHRpbmdzLCBjb25maWcpLFxuICAgICAgICAgIGZpbGVOYW1lOiBgJHtwYWdlSWR9LndlYm1hbmlmZXN0YCxcbiAgICAgICAgfTtcblxuICAgICAgICBidW5kbGVbYCR7cGFnZUlkfS1zZXJ2aWNld29ya2VyLmpzYF0gPSB7XG4gICAgICAgICAgaXNBc3NldDogdHJ1ZSxcbiAgICAgICAgICB0eXBlOiAnYXNzZXQnLFxuICAgICAgICAgIG5hbWU6IHVuZGVmaW5lZCxcbiAgICAgICAgICBzb3VyY2U6IFwic2VsZi5hZGRFdmVudExpc3RlbmVyKCdmZXRjaCcsIGZ1bmN0aW9uKCkgeyByZXR1cm47IH0pO1wiLFxuICAgICAgICAgIGZpbGVOYW1lOiBgJHtwYWdlSWR9LXNlcnZpY2V3b3JrZXIuanNgLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0sXG4gIH07XG59XG4iLCJpbXBvcnQgbGVnYWN5UGx1Z2luIGZyb20gJ0B2aXRlanMvcGx1Z2luLWxlZ2FjeSc7XG5pbXBvcnQge1BsdWdpbn0gZnJvbSAndml0ZSc7XG5pbXBvcnQgYmFubmVyUGx1Z2luIGZyb20gJ3ZpdGUtcGx1Z2luLWJhbm5lcic7XG5pbXBvcnQge2NyZWF0ZUh0bWxQbHVnaW59IGZyb20gJ3ZpdGUtcGx1Z2luLWh0bWwnO1xuaW1wb3J0IHtWaXRlT3B0aW9uc30gZnJvbSAnLi4vdXRpbHMvaW50ZXJmYWNlcyc7XG5pbXBvcnQge2ltYWdlbWluUGx1Z2lufSBmcm9tICcuL2xpYi9pbWFnZS1wbHVnaW4nO1xuaW1wb3J0IHttYW5pZmVzdFBsdWdpbn0gZnJvbSAnLi9saWIvbWFuaWZlc3QtcGx1Z2luJztcblxuLy8gQnVpbGQgcGx1Z2luc1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUGx1Z2lucyhvcHRpb25zOiBWaXRlT3B0aW9ucyk6IFBsdWdpbltdIHtcbiAgLy8gTm8gYnVpbGQ/IG5vIHBsdWdpbnMuLlxuICBpZiAob3B0aW9ucy5lbnZpcm9ubWVudC5jb21tYW5kICE9PSAnYnVpbGQnKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgY29uc3QgcGx1Z2luczogUGx1Z2luW10gPSBbXTtcblxuICBpZiAob3B0aW9ucy5jb25maWcuYnVpbGQubGVnYWN5KSB7XG4gICAgLy8gTWFrZSBzdXJlIHRoZSBwYWdlIHdvcmtzIGluIG9sZGVyIGJyb3dzZXJzXG4gICAgcGx1Z2lucy5wdXNoKFxuICAgICAgLi4ubGVnYWN5UGx1Z2luKHtcbiAgICAgICAgdGFyZ2V0czogKG9wdGlvbnMuY29uZmlnLmJ1aWxkLmJyb3dzZXJzbGlzdCBhcyBzdHJpbmdbXSkgPz8gJ2RlZmF1bHRzJyxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBjb25zdCBwYWdlcyA9IE9iamVjdC5rZXlzKG9wdGlvbnMuc2V0dGluZ3MuZ2FtZXMpLm1hcCgoZ2FtZUlkKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZpbGVuYW1lOiBgJHtnYW1lSWR9Lmh0bWxgLFxuICAgICAgdGVtcGxhdGU6IGAke2dhbWVJZH0uaHRtbGAsXG4gICAgfTtcbiAgfSk7XG5cbiAgcGx1Z2lucy5wdXNoKFxuICAgIC8vIE1pbmlmeSBpbWFnZSBhc3NldHNcbiAgICBpbWFnZW1pblBsdWdpbihvcHRpb25zLmVudmlyb25tZW50LCBvcHRpb25zLmNvbmZpZy5idWlsZC5pbWFnZVF1YWxpdHkpLFxuXG4gICAgLy8gTWFrZSB0aGUgaHRtbCBvdXRwdXQgc21hbGxlclxuICAgIC4uLihjcmVhdGVIdG1sUGx1Z2luKHttaW5pZnk6IHRydWUsIHBhZ2VzfSkgYXMgUGx1Z2luW10pLFxuXG4gICAgLy8gQWRkIGEgYmFubmVyIHRvIGdlbmVyYXRlZCBqcy9jc3NcbiAgICBiYW5uZXJQbHVnaW4oXG4gICAgICBgXG4gICAgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLlxuXG4gICAgICAgICBfXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAgICAgIF8gICAgICAgICAgICBfXG4gICAgICAgIC8gICkgICAgICAgICAgICAgIHwgIG8gICAgICAgICAvfCAgIC8gfCB8ICAgICAgICAgIHwgfFxuICAgICAgICBcXFxcX18gX3xfICAgICAgICAgX198ICAgICAgX18gICAgIHxfXy8gIHwgfCAgX18gICBfICB8IHxcbiAgICAgICAgICAgXFxcXCB8ICB8ICAgfCAgLyAgfCAgfCAgLyAgXFxcXF8gICB8IFxcXFwgICB8LyAgLyAgXFxcXF98LyAgfC9fKVxuICAgICAgIChfX18vIHxfLyBcXFxcXy98Xy9cXFxcXy98Xy98Xy9cXFxcX18vICAgIHwgIFxcXFxfL3xfXy9cXFxcX18vIHxfXy98IFxcXFxfL1xuXG4gICAgICAgIENvbmNlcHQsIG9udHdlcnAgJiBvbnR3aWtrZWxpbmdcbiAgICAgICAgaHR0cHM6Ly9zdHVkaW9rbG9lay5ubFxuXG4gICAgICAgIFN0dWRpbyBLbG9layDinaQgUGl4aUpTLCBHU0FQICYgaG93bGVyLmpzXG5cbiAgICAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuXG5cbiAgICBgLFxuICAgICksXG4gICk7XG5cbiAgLy8gQ3JlYXRlIGEgbWFuaWZlc3QgYW5kIG1pbmltYWwgd2Vid29ya2VyIGZvciBldmVyeSBnYW1lXG4gIGlmIChvcHRpb25zLmNvbmZpZy5idWlsZC5tYW5pZmVzdCkge1xuICAgIHBsdWdpbnMucHVzaChtYW5pZmVzdFBsdWdpbihvcHRpb25zLnNldHRpbmdzLmdhbWVzKSk7XG4gIH1cblxuICByZXR1cm4gcGx1Z2lucztcbn1cbiIsImltcG9ydCBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQge1xuICBHYW1lU2V0dGluZ3MsXG4gIEdhbWVTZXR0aW5nc1Byb3BlcnR5LFxuICBHYW1lc1NldHRpbmdzLFxuICBHYW1lc1NldHRpbmdzRGF0YSxcbiAgS2xvZWtWaXRlQ29uZmlnLFxuICBQYWNrYWdlR2FtZXNTZXR0aW5ncyxcbn0gZnJvbSAnLi9pbnRlcmZhY2VzJztcblxuZnVuY3Rpb24gbWVyZ2VHYW1lU2V0dGluZ3MoXG4gIGdlbmVyaWM6IEdhbWVTZXR0aW5ncyxcbiAgZ2FtZTogR2FtZVNldHRpbmdzLFxuICBpbmZvVHlwZXM6IEdhbWVTZXR0aW5nc1Byb3BlcnR5W10sXG4pOiBHYW1lU2V0dGluZ3Mge1xuICBjb25zdCBzZXR0aW5nczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcblxuICAvLyBBbGxlIHByb3BzIG9wIMOpw6luIGxldmVsIGRpZXAgbWVyZ2VuXG4gIGZvciAoY29uc3QgcHJvcGVydHkgb2YgaW5mb1R5cGVzKSB7XG4gICAgc2V0dGluZ3NbcHJvcGVydHldID0ge1xuICAgICAgLi4uZ2VuZXJpY1twcm9wZXJ0eV0sXG4gICAgICAuLi5nYW1lW3Byb3BlcnR5XSxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHNldHRpbmdzIGFzIHVua25vd24gYXMgR2FtZVNldHRpbmdzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VQYWNrYWdlR2FtZXNTZXR0aW5ncyhcbiAgcGFja2FnZVNldHRpbmdzOiBQYWNrYWdlR2FtZXNTZXR0aW5ncyxcbik6IEdhbWVzU2V0dGluZ3NEYXRhIHtcbiAgLy8gTWVyZ2Ugc2V0dGluZ3NcbiAgY29uc3QgaW5mb1R5cGVzID0gT2JqZWN0LmtleXMoXG4gICAgcGFja2FnZVNldHRpbmdzLmdlbmVyaWMsXG4gICkgYXMgR2FtZVNldHRpbmdzUHJvcGVydHlbXTtcbiAgY29uc3Qge2dlbmVyaWN9ID0gcGFja2FnZVNldHRpbmdzO1xuICBjb25zdCBhbGxTZXR0aW5nczogR2FtZXNTZXR0aW5nc0RhdGEgPSB7XG4gICAgZGV2ZWxvcG1lbnQ6IGdlbmVyaWMsXG4gICAgZ2FtZXM6IHt9LFxuICB9O1xuXG4gIGZvciAoY29uc3QgZ2FtZSBvZiBwYWNrYWdlU2V0dGluZ3MuZ2FtZXMgPz8gW10pIHtcbiAgICBjb25zdCBzZXR0aW5ncyA9IG1lcmdlR2FtZVNldHRpbmdzKGdlbmVyaWMsIGdhbWUsIGluZm9UeXBlcyk7XG5cbiAgICAvLyBab3JnIGVyIHZvb3IgZGF0IHBhZ2UgYWx0aWpkIGdlemV0IGlzXG4gICAgY29uc3QgcGFnZUlkID0gc2V0dGluZ3MuaW5mby5wYWdlID8/IHNldHRpbmdzLmluZm8uaWQgPz8gJ3Vua25vd24nO1xuICAgIHNldHRpbmdzLmluZm8ucGFnZSA9IHBhZ2VJZDtcblxuICAgIC8vIFNsYSBzZXR0aW5ncyBvcCBvbmRlciBwYWdlIGlkXG4gICAgYWxsU2V0dGluZ3MuZ2FtZXNbcGFnZUlkXSA9IHNldHRpbmdzO1xuICB9XG5cbiAgcmV0dXJuIGFsbFNldHRpbmdzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGF0aFRvR2FtZURhdGEoXG4gIGZ1bGxGaWxlUGF0aDogc3RyaW5nLFxuICBzZXR0aW5nczogR2FtZXNTZXR0aW5ncyxcbik6IEdhbWVTZXR0aW5ncyB8IHVuZGVmaW5lZCB7XG4gIC8vIERldGVybWluZSBmaWxlbmFtZSB3aXRob3V0IGV4dGVuc2lvblxuICBsZXQgZmlsZVBhdGggPSBwYXRoLmJhc2VuYW1lKGZ1bGxGaWxlUGF0aCwgcGF0aC5leHRuYW1lKGZ1bGxGaWxlUGF0aCkpO1xuXG4gIC8vIERldGVybWluZSBkaXIgJiByZW1vdmUgbGVhZGluZyBzbGFzaFxuICBsZXQgZmlsZURpcmVjdG9yeSA9IHBhdGguZGlybmFtZShmdWxsRmlsZVBhdGgpO1xuICBmaWxlRGlyZWN0b3J5ID0gZmlsZURpcmVjdG9yeS5yZXBsYWNlKC9eXFwvKy9nLCAnJyk7XG5cbiAgaWYgKGZpbGVEaXJlY3RvcnkpIHtcbiAgICBmaWxlUGF0aCA9IGAke2ZpbGVEaXJlY3Rvcnl9LyR7ZmlsZVBhdGh9YDtcbiAgfVxuXG4gIHJldHVybiBzZXR0aW5nc1tmaWxlUGF0aF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYWdlVG9TZXJ2ZShcbiAgY29uZmlnOiBLbG9la1ZpdGVDb25maWcsXG4gIHNldHRpbmdzOiBHYW1lc1NldHRpbmdzLFxuKTogc3RyaW5nIHtcbiAgLy8gSG9ldmVlbCBwYWdlcyB6aWpuIGVyP1xuICBjb25zdCBwYWdlSWRzID0gT2JqZWN0LmtleXMoc2V0dGluZ3MpO1xuICBjb25zdCBwYWdlID0gcGFnZUlkcy5sZW5ndGggPT09IDEgPyBwYWdlSWRzWzBdIDogJ2RldmVsb3BtZW50JztcblxuICByZXR1cm4gcGF0aC5wb3NpeC5qb2luKFxuICAgIGNvbmZpZy5idWlsZC5iYXNlUGF0aCxcbiAgICBgJHtwYWdlfS5odG1sJHtjb25maWcuZGV2LnNlcnZlUGFyYW1zID8/ICcnfWAsXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYWdlSWRGcm9tVXJsKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKCF1cmwpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBsZXQgcGF0aG5hbWU6IHN0cmluZztcblxuICB0cnkge1xuICAgIHBhdGhuYW1lID0gbmV3IFVSTCh1cmwsICdodHRwczovL3N0dWRpb2tsb2VrLm5sJykucGF0aG5hbWU7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIC8vIElmIHJlcXVlc3QgaXMgbm90IGh0bWwgLCBkaXJlY3RseSByZXR1cm4gbmV4dCgpXG4gIGlmICghcGF0aG5hbWUuZW5kc1dpdGgoJy5odG1sJykgJiYgcGF0aG5hbWUgIT09ICcvJykge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIC8vIFBhZ2luYSBpZCBvcHZyYWdlblxuICBjb25zdCBpbmRleCA9IHBhdGhuYW1lLmxhc3RJbmRleE9mKCcvJyk7XG4gIGNvbnN0IGZpbGVOYW1lID0gaW5kZXggPT09IC0xID8gcGF0aG5hbWUgOiBwYXRobmFtZS5zbGljZShpbmRleCArIDEpO1xuXG4gIHJldHVybiBmaWxlTmFtZS5yZXBsYWNlKCcuaHRtbCcsICcnKTtcbn1cbiIsImltcG9ydCBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQge0J1aWxkT3B0aW9uc30gZnJvbSAndml0ZSc7XG5pbXBvcnQge1ZpdGVPcHRpb25zfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lQnVpbGRDb25maWcob3B0aW9uczogVml0ZU9wdGlvbnMpOiBCdWlsZE9wdGlvbnMge1xuICBjb25zdCBpbnB1dDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXG4gIGZvciAoY29uc3QgZ2FtZUlkIG9mIE9iamVjdC5rZXlzKG9wdGlvbnMuc2V0dGluZ3MuZ2FtZXMpKSB7XG4gICAgaW5wdXRbZ2FtZUlkXSA9IHBhdGgucmVzb2x2ZShvcHRpb25zLnJvb3QsIGAke2dhbWVJZH0uaHRtbGApO1xuICB9XG5cbiAgLy8gTGlicyBkaWUgYXBhcnRlIGpzIGtyaWpnZW46XG4gIGNvbnN0IHZlbmRvckNodW5rcyA9IFsnZmlyZWJhc2UnLCAncGl4aScsICdsb2Rhc2gnLCAnY2FwYWNpdG9yJywgJ2dzYXAnXTtcblxuICByZXR1cm4ge1xuICAgIHJlcG9ydENvbXByZXNzZWRTaXplOiBmYWxzZSxcbiAgICBjaHVua1NpemVXYXJuaW5nTGltaXQ6IDEwMDAsXG4gICAgb3V0RGlyOiAnLi4vcHVibGljJyxcbiAgICBhc3NldHNEaXI6ICdnZW5lcmF0ZWQnLFxuICAgIHJvbGx1cE9wdGlvbnM6IHtcbiAgICAgIGlucHV0LFxuICAgICAgb3V0cHV0OiB7XG4gICAgICAgIG1hbnVhbENodW5rcyhpZCkge1xuICAgICAgICAgIGlmIChpZC5pbmNsdWRlcygnbm9kZV9tb2R1bGVzJykpIHtcbiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBpZFxuICAgICAgICAgICAgICAudG9TdHJpbmcoKVxuICAgICAgICAgICAgICAuc3BsaXQoJ25vZGVfbW9kdWxlcy8nKVsxXVxuICAgICAgICAgICAgICAuc3BsaXQoJy8nKVswXVxuICAgICAgICAgICAgICAudG9TdHJpbmcoKTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiB2ZW5kb3JDaHVua3MpIHtcbiAgICAgICAgICAgICAgaWYgKG5hbWUuaW5jbHVkZXModmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcbn1cbiIsImltcG9ydCB7cmVhZEZpbGVTeW5jfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5pbXBvcnQge25vcm1hbGl6ZVBhdGh9IGZyb20gJ3ZpdGUnO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVhZEpTT04ocGF0aDogc3RyaW5nKTogdW5rbm93biB7XG4gIHRyeSB7XG4gICAgY29uc3QgZGF0YSA9IHJlYWRGaWxlU3luYyhwYXRoKTtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShkYXRhLnRvU3RyaW5nKCkpO1xuICB9IGNhdGNoIHtcbiAgICAvL1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgY29uc3QgY3dkID0gbm9ybWFsaXplUGF0aChwcm9jZXNzLmN3ZCgpKTtcblxuZXhwb3J0ICogZnJvbSAnLi9nYW1lJztcbmV4cG9ydCAqIGZyb20gJy4vYnVpbGQnO1xuIiwiaW1wb3J0IG9zIGZyb20gJ25vZGU6b3MnO1xuaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7UGx1Z2lufSBmcm9tICd2aXRlJztcbmltcG9ydCB2aXRlSGFuZGxlYmFyc1BsdWdpbiBmcm9tICd2aXRlLXBsdWdpbi1oYW5kbGViYXJzJztcbmltcG9ydCB7Vml0ZU9wdGlvbnN9IGZyb20gJy4uLy4uL3V0aWxzL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtnZXRQYWdlSWRGcm9tVXJsfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbi8vIEhlbHBlcnMgdm9vciBoYW5kbGViYXJzXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlYmFyc1BsdWdpbihcbiAgcGFydGlhbERpcmVjdG9yeTogc3RyaW5nIHwgc3RyaW5nW10sXG4gIG9wdGlvbnM6IFZpdGVPcHRpb25zLFxuKTogUGx1Z2luIHtcbiAgcmV0dXJuIHZpdGVIYW5kbGViYXJzUGx1Z2luKHtcbiAgICBwYXJ0aWFsRGlyZWN0b3J5LFxuXG4gICAgaGVscGVyczoge1xuICAgICAganNvbjogKG9iamVjdDogYW55LCBpbmRlbnQgPSAwKSA9PlxuICAgICAgICBKU09OLnN0cmluZ2lmeShvYmplY3QsIHVuZGVmaW5lZCwgaW5kZW50KSxcbiAgICAgIGNvbmNhdDogKC4uLmFyZ3VtZW50c186IGFueVtdKSA9PiBhcmd1bWVudHNfLnNsaWNlKDAsIC0xKS5qb2luKCcnKSxcbiAgICAgIGVxOiAoYTogYW55LCBiOiBhbnkpID0+IGEgPT09IGIsXG4gICAgICBuZXE6IChhOiBhbnksIGI6IGFueSkgPT4gYSAhPT0gYixcbiAgICAgIGlzZGVmaW5lZDogKHZhbHVlOiB1bmRlZmluZWQpID0+IHZhbHVlICE9PSB1bmRlZmluZWQsXG4gICAgICAncmVzb2x2ZS1yb290JyhwOiBzdHJpbmcpIHtcbiAgICAgICAgLy8gVGlqZGVsaWprZSBoYWNrIHZvb3IgYnVnIGluIGhhbmRsZWJhcnMgcGx1Z2luXG4gICAgICAgIC8vIHppZSBvb2sgaHR0cHM6Ly9naXRodWIuY29tL2FsZXhsYWZyb3NjaWEvdml0ZS1wbHVnaW4taGFuZGxlYmFycy9wdWxsLzEyOVxuICAgICAgICBjb25zdCByZXNvbHZlZFBhdGggPSBwYXRoLnJlc29sdmUob3B0aW9ucy5yb290LCBwKTtcbiAgICAgICAgcmV0dXJuIG9zLnBsYXRmb3JtKCkgPT09ICd3aW4zMicgPyBgLyR7cmVzb2x2ZWRQYXRofWAgOiByZXNvbHZlZFBhdGg7XG4gICAgICB9LFxuICAgIH0sXG5cbiAgICBjb250ZXh0KHBhZ2VQYXRoOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgICBjb25zdCBnYW1lSWQgPSBnZXRQYWdlSWRGcm9tVXJsKHBhZ2VQYXRoKTtcblxuICAgICAgaWYgKCFnYW1lSWQpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgfVxuXG4gICAgICBpZiAoZ2FtZUlkID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgIC8vIFBhZ2luYSBzZXR0aW5ncyB0ZXJ1Z2dldmVuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZW52OiBvcHRpb25zLmVudmlyb25tZW50LFxuICAgICAgICAgIGRhdGE6IG9wdGlvbnMuc2V0dGluZ3MuZGV2ZWxvcG1lbnQsXG4gICAgICAgICAgZ2FtZXM6IG9wdGlvbnMuc2V0dGluZ3MuZ2FtZXMsXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIC8vIE9wIGJhc2lzIHZhbiBwYWQgZGF0YSBiZXBhbGVuXG4gICAgICBjb25zdCBzZXR0aW5ncyA9IG9wdGlvbnMuc2V0dGluZ3MuZ2FtZXNbZ2FtZUlkXTtcblxuICAgICAgLy8gUGFnaW5hIHNldHRpbmdzIHRlcnVnZ2V2ZW5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGVudjogb3B0aW9ucy5lbnZpcm9ubWVudCxcbiAgICAgICAgZGF0YTogc2V0dGluZ3MgPz8ge30sXG4gICAgICB9O1xuICAgIH0sXG4gIH0pO1xufVxuIiwiaW1wb3J0IHtleGlzdHNTeW5jLCBwcm9taXNlc30gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHtDb25maWdFbnYsIFBsdWdpbiwgVXNlckNvbmZpZywgVml0ZURldlNlcnZlcn0gZnJvbSAndml0ZSc7XG5pbXBvcnQge0dhbWVzU2V0dGluZ3N9IGZyb20gJy4uLy4uL3V0aWxzL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtjd2QsIGdldFBhZ2VJZEZyb21Vcmx9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuY29uc3QgUEFHRV9URU1QTEFURSA9ICd7ez4gZ2FtZSBkYXRhPWRhdGF9fSc7XG5jb25zdCBERVZFTE9QTUVOVF9URU1QTEFURSA9ICd7ez4gZGV2ZWxvcG1lbnQgZGF0YT1kYXRhfX0nO1xuXG5hc3luYyBmdW5jdGlvbiByZW5kZXJUZW1wb3JhcnlGaWxlKGZpbGVQYXRoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgLy8gQmVzdGFhdCBkaWUgZmlsZSBub2cgbmlldD9cbiAgaWYgKCFleGlzdHNTeW5jKGZpbGVQYXRoKSkge1xuICAgIC8vIEFhbm1ha2VuXG4gICAgYXdhaXQgcHJvbWlzZXMud3JpdGVGaWxlKGZpbGVQYXRoLCBQQUdFX1RFTVBMQVRFKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaHRtbFBsdWdpbihnYW1lczogR2FtZXNTZXR0aW5ncyk6IFBsdWdpbiB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ3ZpdGUtcGx1Z2luLWtsb2VrLWh0bWwnLFxuICAgIGVuZm9yY2U6ICdwcmUnLFxuXG4gICAgYXN5bmMgY29uZmlnKF9jb25maWc6IFVzZXJDb25maWcsIGVudmlyb25tZW50OiBDb25maWdFbnYpIHtcbiAgICAgIC8vIEJpaiBlZW4gYnVpbGQgbWFrZW4gd2UgdGlqZGVsaWprIGZpbGVzIGFhblxuICAgICAgaWYgKGVudmlyb25tZW50LmNvbW1hbmQgPT09ICdidWlsZCcpIHtcbiAgICAgICAgY29uc3QgYWN0aW9uczogQXJyYXk8UHJvbWlzZTx2b2lkPj4gPSBbXTtcblxuICAgICAgICBmb3IgKGNvbnN0IHBhZ2VJZCBvZiBPYmplY3Qua2V5cyhnYW1lcykpIHtcbiAgICAgICAgICAvLyBQYWQgbmFhciBmaWxlXG4gICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLnJlc29sdmUoY3dkLCAnc291cmNlJywgYCR7cGFnZUlkfS5odG1sYCk7XG4gICAgICAgICAgYWN0aW9ucy5wdXNoKHJlbmRlclRlbXBvcmFyeUZpbGUoZmlsZVBhdGgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKGFjdGlvbnMpO1xuICAgICAgfVxuICAgIH0sXG5cbiAgICBjb25maWd1cmVTZXJ2ZXIoc2VydmVyOiBWaXRlRGV2U2VydmVyKSB7XG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAvLyBab3JnIGVyIHZvb3IgZGF0IHRpamRlbnMgZGV2ZWxvcG1lbnQgZGUgcGFnaW5hIGdlLXJlbmRlcmVkIHRlcnVnIGdlZ2V2ZW4gd29yZHQgd29yZHRcbiAgICAgICAgc2VydmVyLm1pZGRsZXdhcmVzLnVzZSgnLycsIGFzeW5jIChyZXF1ZXN0LCByZXNwb25zZSwgbmV4dCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHVybCA9IHJlcXVlc3Q/LnVybCA/PyAnJztcbiAgICAgICAgICBjb25zdCBwYWdlSWQgPSBnZXRQYWdlSWRGcm9tVXJsKHVybCk7XG5cbiAgICAgICAgICBpZiAoIXBhZ2VJZCkge1xuICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChwYWdlSWQgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgICAgIC8vIERldmVsb3BtZW50PyBnZWVmIHRlcnVnLi4uXG4gICAgICAgICAgICByZXNwb25zZS5lbmQoXG4gICAgICAgICAgICAgIGF3YWl0IHNlcnZlci50cmFuc2Zvcm1JbmRleEh0bWwoXG4gICAgICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgICAgIERFVkVMT1BNRU5UX1RFTVBMQVRFLFxuICAgICAgICAgICAgICAgIHJlcXVlc3Qub3JpZ2luYWxVcmwsXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSBpZiAoT2JqZWN0LmtleXMoZ2FtZXMpLmluY2x1ZGVzKHBhZ2VJZCkpIHtcbiAgICAgICAgICAgIC8vIEJlc3RhYW5kZSBnYW1lPyB6b3JnIGVyIHZvb3IgZGF0IGRlIHRlbXBsYXRlIGdlLXJlbmRlcmVkIHdvcmR0XG4gICAgICAgICAgICByZXNwb25zZS5lbmQoXG4gICAgICAgICAgICAgIGF3YWl0IHNlcnZlci50cmFuc2Zvcm1JbmRleEh0bWwoXG4gICAgICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgICAgIFBBR0VfVEVNUExBVEUsXG4gICAgICAgICAgICAgICAgcmVxdWVzdC5vcmlnaW5hbFVybCxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIE5pa3MgZ2V2b25kZW5cbiAgICAgICAgICAgIHJlc3BvbnNlLmVuZCgnNDA0Jyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgfSxcblxuICAgIGFzeW5jIGNsb3NlQnVuZGxlKCkge1xuICAgICAgLy8gVmVyd2lqZGVyIGRlIGFhbmdlbWFha3RlIGZpbGVzXG4gICAgICBjb25zdCBhY3Rpb25zOiBBcnJheTxQcm9taXNlPHZvaWQ+PiA9IFtdO1xuICAgICAgZm9yIChjb25zdCBwYWdlSWQgb2YgT2JqZWN0LmtleXMoZ2FtZXMpKSB7XG4gICAgICAgIC8vIFBhZCBuYWFyIGZpbGVcbiAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLnJlc29sdmUoY3dkLCAnc291cmNlJywgYCR7cGFnZUlkfS5odG1sYCk7XG4gICAgICAgIGlmIChleGlzdHNTeW5jKGZpbGVQYXRoKSkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhY3Rpb25zLnB1c2gocHJvbWlzZXMucm0oZmlsZVBhdGgpKTtcbiAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKGFjdGlvbnMpO1xuICAgIH0sXG4gIH07XG59XG4iLCJpbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHtzdmVsdGV9IGZyb20gJ0BzdmVsdGVqcy92aXRlLXBsdWdpbi1zdmVsdGUnO1xuaW1wb3J0IHtQbHVnaW59IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IGZ1bGxSZWxvYWQgZnJvbSAndml0ZS1wbHVnaW4tZnVsbC1yZWxvYWQnO1xuaW1wb3J0IHRzY29uZmlnUGF0aHNQbHVnaW4gZnJvbSAndml0ZS10c2NvbmZpZy1wYXRocyc7XG5pbXBvcnQge1ZpdGVPcHRpb25zfSBmcm9tICcuLi91dGlscy9pbnRlcmZhY2VzJztcbmltcG9ydCB7Y3dkfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQge2hhbmRsZWJhcnNQbHVnaW59IGZyb20gJy4vbGliL2hhbmRsZWJhcnMtcGx1Z2luJztcbmltcG9ydCB7aHRtbFBsdWdpbn0gZnJvbSAnLi9saWIvaHRtbC1wbHVnaW4nO1xuXG5leHBvcnQgZnVuY3Rpb24gc2VydmVQbHVnaW5zKG9wdGlvbnM6IFZpdGVPcHRpb25zKTogUGx1Z2luW10ge1xuICByZXR1cm4gW1xuICAgIGh0bWxQbHVnaW4ob3B0aW9ucy5zZXR0aW5ncy5nYW1lcyksXG5cbiAgICAuLi5zdmVsdGUoe1xuICAgICAgLy8gSG90OiBmYWxzZSxcbiAgICAgIGV4cGVyaW1lbnRhbDoge1xuICAgICAgICBwcmVidW5kbGVTdmVsdGVMaWJyYXJpZXM6IHRydWUsXG4gICAgICAgIHVzZVZpdGVQcmVwcm9jZXNzOiB0cnVlLFxuICAgICAgfSxcbiAgICB9KSxcblxuICAgIHRzY29uZmlnUGF0aHNQbHVnaW4oe1xuICAgICAgcm9vdDogcGF0aC5yZXNvbHZlKGN3ZCksXG4gICAgICBleHRlbnNpb25zOiBbJy50cycsICcuanNvbiddLFxuICAgICAgbG9vc2U6IHRydWUsXG4gICAgfSksXG5cbiAgICBmdWxsUmVsb2FkKFsnc2NyaXB0LyoqLyoudHMnLCAnc3ZlbHRlLyoqLyouc3ZlbHRlJ10sIHtcbiAgICAgIHJvb3Q6IHBhdGguam9pbihwYXRoLnJlc29sdmUoY3dkKSwgJ3NvdXJjZScpLFxuICAgICAgbG9nOiB0cnVlLFxuICAgICAgYWx3YXlzOiB0cnVlLFxuICAgIH0pIGFzIFBsdWdpbixcblxuICAgIGhhbmRsZWJhcnNQbHVnaW4ob3B0aW9ucy5jb25maWcuc2VydmUucGFydGlhbHMsIG9wdGlvbnMpLFxuICBdO1xufVxuIiwiaW1wb3J0IHtyZWFkRmlsZVN5bmN9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7ZmlsZVVSTFRvUGF0aH0gZnJvbSAnbm9kZTp1cmwnO1xuaW1wb3J0IHtDb25maWdFbnYsIFVzZXJDb25maWd9IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IHtidWlsZFBsdWdpbnN9IGZyb20gJy4vcGx1Z2lucy9idWlsZCc7XG5pbXBvcnQge3NlcnZlUGx1Z2luc30gZnJvbSAnLi9wbHVnaW5zL3NlcnZlJztcbmltcG9ydCB7XG4gIGN3ZCxcbiAgZGVmaW5lQnVpbGRDb25maWcsXG4gIGdldFBhZ2VUb1NlcnZlLFxuICBwYXJzZVBhY2thZ2VHYW1lc1NldHRpbmdzLFxuICByZWFkSlNPTixcbn0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQge1xuICBLbG9la1ZpdGVDb25maWcsXG4gIFBhY2thZ2VHYW1lc1NldHRpbmdzLFxuICBWaXRlT3B0aW9ucyxcbn0gZnJvbSAnLi91dGlscy9pbnRlcmZhY2VzJztcblxuY29uc3QgX19kaXJuYW1lID0gcGF0aC5kaXJuYW1lKGZpbGVVUkxUb1BhdGgoaW1wb3J0Lm1ldGEudXJsKSk7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZWZpbmVLbG9la1ZpdGVDb25maWcoXG4gIGVudmlyb25tZW50OiBDb25maWdFbnYsXG4pOiBQcm9taXNlPFVzZXJDb25maWc+IHtcbiAgY29uc3QgcGtnID0gcmVhZEpTT04ocGF0aC5yZXNvbHZlKGN3ZCwgJ3BhY2thZ2UuanNvbicpKSBhcyBSZWNvcmQ8XG4gICAgc3RyaW5nLFxuICAgIHVua25vd25cbiAgPjtcbiAgY29uc3Qga2xvZWtDb25maWcgPSBwa2cudml0ZSBhcyBLbG9la1ZpdGVDb25maWc7XG4gIGNvbnN0IGJyb3dzZXJzbGlzdCA9IHBrZy5icm93c2Vyc2xpc3QgYXMgc3RyaW5nIHwgc3RyaW5nW107XG4gIGNvbnN0IG9wdGlvbnM6IFZpdGVPcHRpb25zID0ge1xuICAgIHJvb3Q6IHBhdGgucmVzb2x2ZShjd2QsICdzb3VyY2UnKSxcbiAgICBlbnZpcm9ubWVudCxcbiAgICBzZXR0aW5nczogcGFyc2VQYWNrYWdlR2FtZXNTZXR0aW5ncyhwa2cuc2V0dGluZ3MgYXMgUGFja2FnZUdhbWVzU2V0dGluZ3MpLFxuICAgIGNvbmZpZzoge1xuICAgICAgLi4ua2xvZWtDb25maWcsXG4gICAgICBidWlsZDogey4uLmtsb2VrQ29uZmlnLmJ1aWxkLCBicm93c2Vyc2xpc3R9LFxuICAgICAgc2VydmU6IHtcbiAgICAgICAgcGFydGlhbHM6IFtcbiAgICAgICAgICBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAncGFydGlhbHMnKSxcbiAgICAgICAgICBwYXRoLnJlc29sdmUoY3dkLCAnc291cmNlJywgJ3BhcnRpYWxzJyksXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG5cbiAgY29uc3QgY29uZmlnOiBVc2VyQ29uZmlnID0ge1xuICAgIGxvZ0xldmVsOiAnaW5mbycsXG4gICAgYmFzZToga2xvZWtDb25maWcuYnVpbGQuYmFzZVBhdGgsXG4gICAgcm9vdDogb3B0aW9ucy5yb290LFxuICAgIHB1YmxpY0RpcjogJ3N0YXRpYycsXG4gICAgZGVmaW5lOiB7fSxcblxuICAgIGVzYnVpbGQ6IHtcbiAgICAgIGxlZ2FsQ29tbWVudHM6ICdub25lJyxcbiAgICB9LFxuXG4gICAgcmVzb2x2ZToge1xuICAgICAgYWxpYXM6IHtcbiAgICAgICAgbG9kYXNoOiAnbG9kYXNoLWVzJyxcbiAgICAgICAgJ0BtZXRhJzogcGF0aC5yZXNvbHZlKGN3ZCwgJ3NvdXJjZScsICdzdGF0aWMnLCAnbWV0YScpLFxuICAgICAgICAnQGZvbnRzJzogcGF0aC5yZXNvbHZlKGN3ZCwgJ3NvdXJjZScsICdzdGF0aWMnLCAnZm9udHMnKSxcbiAgICAgIH0sXG4gICAgfSxcblxuICAgIGNzczoge1xuICAgICAgcHJlcHJvY2Vzc29yT3B0aW9uczoge1xuICAgICAgICBzY3NzOiB7XG4gICAgICAgICAgY2hhcnNldDogZmFsc2UsXG4gICAgICAgICAgLy8gQWRkaXRpb25hbERhdGE6IGBAY2hhcnNldCBcIlVURi04XCJgLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuXG4gICAgcGx1Z2luczogWy4uLnNlcnZlUGx1Z2lucyhvcHRpb25zKV0sXG4gIH07XG5cbiAgc3dpdGNoIChlbnZpcm9ubWVudC5jb21tYW5kKSB7XG4gICAgY2FzZSAnc2VydmUnOlxuICAgICAgY29uZmlnLnNlcnZlciA9IHtcbiAgICAgICAgaG9zdDogJ2xvY2FsaG9zdCcsXG4gICAgICAgIGh0dHBzOiB7XG4gICAgICAgICAga2V5OiByZWFkRmlsZVN5bmMocGF0aC5yZXNvbHZlKGN3ZCwgJ2NlcnQnLCAna2V5LnBlbScpKSxcbiAgICAgICAgICBjZXJ0OiByZWFkRmlsZVN5bmMocGF0aC5yZXNvbHZlKGN3ZCwgJ2NlcnQnLCAnY2VydC5wZW0nKSksXG4gICAgICAgIH0sXG4gICAgICAgIG9wZW46IGdldFBhZ2VUb1NlcnZlKG9wdGlvbnMuY29uZmlnLCBvcHRpb25zLnNldHRpbmdzLmdhbWVzKSxcbiAgICAgIH07XG5cbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnYnVpbGQnOlxuICAgICAgY29uZmlnLmJ1aWxkID0gZGVmaW5lQnVpbGRDb25maWcob3B0aW9ucyk7XG4gICAgICBjb25maWcucGx1Z2lucyA9IFtcbiAgICAgICAgLi4uKGNvbmZpZy5wbHVnaW5zID8gY29uZmlnLnBsdWdpbnMgOiBbXSksXG4gICAgICAgIC4uLmJ1aWxkUGx1Z2lucyhvcHRpb25zKSxcbiAgICAgIF07XG4gICAgICBicmVhaztcblxuICAgIGRlZmF1bHQ6XG4gIH1cblxuICByZXR1cm4gY29uZmlnO1xufVxuIiwiaW1wb3J0IHtUeXBlZEZsYWdzfSBmcm9tICdtZW93JztcbmltcG9ydCB7YnVpbGQsIGNyZWF0ZVNlcnZlcn0gZnJvbSAndml0ZSc7XG5pbXBvcnQge2RlZmluZUtsb2VrVml0ZUNvbmZpZ30gZnJvbSAnLi9jb25maWcnO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24ga2xvZWtEZXZlbG9wbWVudCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgY29uZmlnID0gYXdhaXQgZGVmaW5lS2xvZWtWaXRlQ29uZmlnKHtcbiAgICBjb21tYW5kOiAnc2VydmUnLFxuICAgIG1vZGU6ICdkZXZlbG9wbWVudCcsXG4gIH0pO1xuXG4gIGNvbnN0IHNlcnZlciA9IGF3YWl0IGNyZWF0ZVNlcnZlcih7XG4gICAgY29uZmlnRmlsZTogZmFsc2UsXG4gICAgZW52RmlsZTogZmFsc2UsXG4gICAgLi4uY29uZmlnLFxuICB9KTtcblxuICBhd2FpdCBzZXJ2ZXIubGlzdGVuKCk7XG4gIHNlcnZlci5wcmludFVybHMoKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGtsb2VrQnVpbGQoXG4gIGZsYWdzOiBUeXBlZEZsYWdzPHtcbiAgICBlbXB0eU91dERpcjoge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nO1xuICAgICAgYWxpYXM6IHN0cmluZztcbiAgICAgIGRlZmF1bHQ6IHRydWU7XG4gICAgfTtcbiAgICBiYXNlOiB7XG4gICAgICB0eXBlOiAnc3RyaW5nJztcbiAgICAgIGFsaWFzOiBzdHJpbmc7XG4gICAgICBkZWZhdWx0OiBzdHJpbmc7XG4gICAgfTtcbiAgfT4sXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgY29uZmlnID0gYXdhaXQgZGVmaW5lS2xvZWtWaXRlQ29uZmlnKHtcbiAgICBjb21tYW5kOiAnYnVpbGQnLFxuICAgIG1vZGU6ICdwcm9kdWN0aW9uJyxcbiAgfSk7XG5cbiAgLy8gRW1wdHkgb3V0IHRoZSBPdXRwdXQgZGlyIGJlZm9yZSBidWlsZGluZz9cbiAgaWYgKGZsYWdzLmVtcHR5T3V0RGlyICE9PSB1bmRlZmluZWQpIHtcbiAgICBjb25maWcuYnVpbGQgPSB7XG4gICAgICAuLi5jb25maWcuYnVpbGQsXG4gICAgICBlbXB0eU91dERpcjogZmxhZ3MuZW1wdHlPdXREaXIsXG4gICAgfTtcbiAgfVxuXG4gIC8vIERpZmZlcmVudCBiYXNlIHBhdGhcbiAgaWYgKHR5cGVvZiBmbGFncy5iYXNlID09PSAnc3RyaW5nJykge1xuICAgIGNvbmZpZy5iYXNlID0gZmxhZ3MuYmFzZTtcbiAgfVxuXG4gIGF3YWl0IGJ1aWxkKHtcbiAgICBjb25maWdGaWxlOiBmYWxzZSxcbiAgICBlbnZGaWxlOiBmYWxzZSxcbiAgICAuLi5jb25maWcsXG4gIH0pO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUlnQixTQUFBLGNBQWMsQ0FDNUIsV0FBc0IsRUFDdEIsT0FBMkIsRUFBQTtBQUUzQixJQUFBLE9BQU8sZUFBZSxDQUFDO0FBQ3JCLFFBQUEsT0FBTyxFQUFFLFdBQVcsQ0FBQyxJQUFJLEtBQUssWUFBWTtBQUMxQyxRQUFBLE9BQU8sRUFBRTtBQUNQLFlBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLElBQUksRUFBRTtBQUM3QixTQUFBO0FBQ0QsUUFBQSxRQUFRLEVBQUU7QUFDUixZQUFBLEtBQUssRUFBRSxJQUFJO0FBQ1gsWUFBQSxLQUFLLEVBQUUsQ0FBQztBQUNSLFlBQUEsU0FBUyxFQUFFLElBQUk7WUFDZixPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDcEMsU0FBQTtBQUNGLEtBQUEsQ0FBVyxDQUFDO0FBQ2Y7O0FDakJBLFNBQVMsa0JBQWtCLENBQ3pCLE1BQWMsRUFDZCxRQUFzQixFQUN0QixNQUFzQixFQUFBO0FBRXRCLElBQUEsTUFBTSxRQUFRLEdBQUc7QUFDZixRQUFBLFVBQVUsRUFBRSxDQUFHLEVBQUEsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUUsQ0FBQTtBQUN2QyxRQUFBLElBQUksRUFBRSxDQUFHLEVBQUEsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUUsQ0FBQTtBQUM5QixRQUFBLFdBQVcsRUFBRSxDQUFHLEVBQUEsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUUsQ0FBQTtBQUMzQyxRQUFBLEtBQUssRUFBRSxDQUFHLEVBQUEsTUFBTSxDQUFDLElBQUksQ0FBQSxFQUFHLE1BQU0sQ0FBTyxLQUFBLENBQUE7QUFDckMsUUFBQSxTQUFTLEVBQUUsQ0FBRyxFQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUEsRUFB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
|
|
481
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uL3NyYy9wbHVnaW5zL2xpYi9pbWFnZS1wbHVnaW4udHMiLCIuLi9zcmMvcGx1Z2lucy9saWIvbWFuaWZlc3QtcGx1Z2luLnRzIiwiLi4vc3JjL3BsdWdpbnMvYnVpbGQudHMiLCIuLi9zcmMvdXRpbHMvZ2FtZS50cyIsIi4uL3NyYy91dGlscy9idWlsZC50cyIsIi4uL3NyYy91dGlscy9pbmRleC50cyIsIi4uL3NyYy9wbHVnaW5zL2xpYi9oYW5kbGViYXJzLXBsdWdpbi50cyIsIi4uL3NyYy9wbHVnaW5zL2xpYi9odG1sLXBsdWdpbi50cyIsIi4uL3NyYy9wbHVnaW5zL3NlcnZlLnRzIiwiLi4vc3JjL2NvbmZpZy50cyIsIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbmZpZ0VudiwgUGx1Z2lufSBmcm9tICd2aXRlJztcbmltcG9ydCBpbWFnZW1pblBsdWdpbjIgZnJvbSAndml0ZS1wbHVnaW4taW1hZ2VtaW4nO1xuaW1wb3J0IHtJbWFnZVF1YWxpdHlDb25maWd9IGZyb20gJy4uLy4uL3V0aWxzL2ludGVyZmFjZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gaW1hZ2VtaW5QbHVnaW4oXG4gIGVudmlyb25tZW50OiBDb25maWdFbnYsXG4gIG9wdGlvbnM6IEltYWdlUXVhbGl0eUNvbmZpZyxcbik6IFBsdWdpbiB7XG4gIHJldHVybiBpbWFnZW1pblBsdWdpbjIoe1xuICAgIGRpc2FibGU6IGVudmlyb25tZW50Lm1vZGUgIT09ICdwcm9kdWN0aW9uJyxcbiAgICBtb3pqcGVnOiB7XG4gICAgICBxdWFsaXR5OiBvcHRpb25zPy5qcGVnID8/IDgwLFxuICAgIH0sXG4gICAgcG5ncXVhbnQ6IHtcbiAgICAgIHN0cmlwOiB0cnVlLFxuICAgICAgc3BlZWQ6IDIsXG4gICAgICBkaXRoZXJpbmc6IDAuMjUsXG4gICAgICBxdWFsaXR5OiBvcHRpb25zPy5wbmcgPz8gWzAuNSwgMC43XSxcbiAgICB9LFxuICB9KSBhcyBQbHVnaW47XG59XG4iLCJpbXBvcnQge1BsdWdpbiwgUmVzb2x2ZWRDb25maWd9IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IHtHYW1lU2V0dGluZ3MsIEdhbWVzU2V0dGluZ3N9IGZyb20gJy4uLy4uL3V0aWxzL2ludGVyZmFjZXMnO1xuXG5mdW5jdGlvbiByZW5kZXJHYW1lTWFuaWZlc3QoXG4gIHBhZ2VJZDogc3RyaW5nLFxuICBzZXR0aW5nczogR2FtZVNldHRpbmdzLFxuICBjb25maWc6IFJlc29sdmVkQ29uZmlnLFxuKTogc3RyaW5nIHtcbiAgY29uc3QgbWFuaWZlc3QgPSB7XG4gICAgc2hvcnRfbmFtZTogYCR7c2V0dGluZ3MubWV0YS5hcHB0aXRsZX1gLFxuICAgIG5hbWU6IGAke3NldHRpbmdzLm1ldGEudGl0bGV9YCxcbiAgICBkZXNjcmlwdGlvbjogYCR7c2V0dGluZ3MubWV0YS5kZXNjcmlwdGlvbn1gLFxuICAgIHNjb3BlOiBgJHtjb25maWcuYmFzZX0ke3BhZ2VJZH0uaHRtbGAsXG4gICAgc3RhcnRfdXJsOiBgJHtjb25maWcuYmFzZX0ke3BhZ2VJZH0uaHRtbGAsXG4gICAgZGlzcGxheTogJ2Z1bGxzY3JlZW4nLFxuICAgIG9yaWVudGF0aW9uOiBgJHtzZXR0aW5ncy5vcHRpb25zLm9yaWVudGF0aW9uID8/ICdsYW5kc2NhcGUnfWAsXG4gICAgaWNvbnM6IFtcbiAgICAgIHtcbiAgICAgICAgc3JjOiBgJHtjb25maWcuYmFzZX1tZXRhLyR7c2V0dGluZ3MuaW5mby5pZH0vaWNvbnMvY2hyb21lLXRvdWNoLWljb24tMTkyeDE5Mi5wbmdgLFxuICAgICAgICB0eXBlOiAnaW1hZ2UvcG5nJyxcbiAgICAgICAgc2l6ZXM6ICcxOTJ4MTkyJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHNyYzogYCR7Y29uZmlnLmJhc2V9bWV0YS8ke3NldHRpbmdzLmluZm8uaWR9L2ljb25zL2ljb24ucG5nYCxcbiAgICAgICAgdHlwZTogJ2ltYWdlL3BuZycsXG4gICAgICAgIHNpemVzOiAnMTAyNHgxMDI0JyxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBiYWNrZ3JvdW5kX2NvbG9yOiBgJHtzZXR0aW5ncy5vcHRpb25zLmJhY2tncm91bmRDb2xvcn1gLFxuICAgIHRoZW1lX2NvbG9yOiBgJHtzZXR0aW5ncy5vcHRpb25zLmJhY2tncm91bmRDb2xvcn1gLFxuICB9O1xuXG4gIHJldHVybiBgJHtKU09OLnN0cmluZ2lmeShtYW5pZmVzdCwgbnVsbCwgMil9XFxuYDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hbmlmZXN0UGx1Z2luKGdhbWVzOiBHYW1lc1NldHRpbmdzKTogUGx1Z2luIHtcbiAgbGV0IGNvbmZpZzogUmVzb2x2ZWRDb25maWc7XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAndml0ZS1wbHVnaW4ta2xvZWstbWFuaWZlc3QnLFxuICAgIGVuZm9yY2U6ICdwb3N0JyxcbiAgICBhcHBseTogJ2J1aWxkJyxcbiAgICBhc3luYyBjb25maWdSZXNvbHZlZChyZXNvbHZlZENvbmZpZzogUmVzb2x2ZWRDb25maWcpIHtcbiAgICAgIGNvbmZpZyA9IHJlc29sdmVkQ29uZmlnO1xuICAgIH0sXG4gICAgZ2VuZXJhdGVCdW5kbGUoXywgYnVuZGxlKSB7XG4gICAgICAvLyBWb29yIGllZGVyZSBhcHAgZWVuIG1hbmlmZXN0IG1ha2VuOlxuICAgICAgZm9yIChjb25zdCBbcGFnZUlkLCBzZXR0aW5nc10gb2YgT2JqZWN0LmVudHJpZXMoZ2FtZXMpKSB7XG4gICAgICAgIGJ1bmRsZVtgJHtwYWdlSWR9LndlYm1hbmlmZXN0YF0gPSB7XG4gICAgICAgICAgaXNBc3NldDogdHJ1ZSxcbiAgICAgICAgICB0eXBlOiAnYXNzZXQnLFxuICAgICAgICAgIG5hbWU6IHVuZGVmaW5lZCxcbiAgICAgICAgICBzb3VyY2U6IHJlbmRlckdhbWVNYW5pZmVzdChwYWdlSWQsIHNldHRpbmdzLCBjb25maWcpLFxuICAgICAgICAgIGZpbGVOYW1lOiBgJHtwYWdlSWR9LndlYm1hbmlmZXN0YCxcbiAgICAgICAgfTtcblxuICAgICAgICBidW5kbGVbYCR7cGFnZUlkfS1zZXJ2aWNld29ya2VyLmpzYF0gPSB7XG4gICAgICAgICAgaXNBc3NldDogdHJ1ZSxcbiAgICAgICAgICB0eXBlOiAnYXNzZXQnLFxuICAgICAgICAgIG5hbWU6IHVuZGVmaW5lZCxcbiAgICAgICAgICBzb3VyY2U6IFwic2VsZi5hZGRFdmVudExpc3RlbmVyKCdmZXRjaCcsIGZ1bmN0aW9uKCkgeyByZXR1cm47IH0pO1wiLFxuICAgICAgICAgIGZpbGVOYW1lOiBgJHtwYWdlSWR9LXNlcnZpY2V3b3JrZXIuanNgLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0sXG4gIH07XG59XG4iLCJpbXBvcnQgbGVnYWN5UGx1Z2luIGZyb20gJ0B2aXRlanMvcGx1Z2luLWxlZ2FjeSc7XG5pbXBvcnQge1BsdWdpbn0gZnJvbSAndml0ZSc7XG5pbXBvcnQgYmFubmVyUGx1Z2luIGZyb20gJ3ZpdGUtcGx1Z2luLWJhbm5lcic7XG5pbXBvcnQge2NyZWF0ZUh0bWxQbHVnaW59IGZyb20gJ3ZpdGUtcGx1Z2luLWh0bWwnO1xuaW1wb3J0IHtWaXRlT3B0aW9uc30gZnJvbSAnLi4vdXRpbHMvaW50ZXJmYWNlcyc7XG5pbXBvcnQge2ltYWdlbWluUGx1Z2lufSBmcm9tICcuL2xpYi9pbWFnZS1wbHVnaW4nO1xuaW1wb3J0IHttYW5pZmVzdFBsdWdpbn0gZnJvbSAnLi9saWIvbWFuaWZlc3QtcGx1Z2luJztcblxuLy8gQnVpbGQgcGx1Z2luc1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUGx1Z2lucyhvcHRpb25zOiBWaXRlT3B0aW9ucyk6IFBsdWdpbltdIHtcbiAgLy8gTm8gYnVpbGQ/IG5vIHBsdWdpbnMuLlxuICBpZiAob3B0aW9ucy5lbnZpcm9ubWVudC5jb21tYW5kICE9PSAnYnVpbGQnKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgY29uc3QgcGx1Z2luczogUGx1Z2luW10gPSBbXTtcblxuICBpZiAob3B0aW9ucy5jb25maWcuYnVpbGQubGVnYWN5KSB7XG4gICAgLy8gTWFrZSBzdXJlIHRoZSBwYWdlIHdvcmtzIGluIG9sZGVyIGJyb3dzZXJzXG4gICAgcGx1Z2lucy5wdXNoKFxuICAgICAgLi4ubGVnYWN5UGx1Z2luKHtcbiAgICAgICAgdGFyZ2V0czogKG9wdGlvbnMuY29uZmlnLmJ1aWxkLmJyb3dzZXJzbGlzdCBhcyBzdHJpbmdbXSkgPz8gJ2RlZmF1bHRzJyxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBjb25zdCBwYWdlcyA9IE9iamVjdC5rZXlzKG9wdGlvbnMuc2V0dGluZ3MuZ2FtZXMpLm1hcCgoZ2FtZUlkKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZpbGVuYW1lOiBgJHtnYW1lSWR9Lmh0bWxgLFxuICAgICAgdGVtcGxhdGU6IGAke2dhbWVJZH0uaHRtbGAsXG4gICAgfTtcbiAgfSk7XG5cbiAgcGx1Z2lucy5wdXNoKFxuICAgIC8vIE1pbmlmeSBpbWFnZSBhc3NldHNcbiAgICBpbWFnZW1pblBsdWdpbihvcHRpb25zLmVudmlyb25tZW50LCBvcHRpb25zLmNvbmZpZy5idWlsZC5pbWFnZVF1YWxpdHkpLFxuXG4gICAgLy8gTWFrZSB0aGUgaHRtbCBvdXRwdXQgc21hbGxlclxuICAgIC4uLihjcmVhdGVIdG1sUGx1Z2luKHttaW5pZnk6IHRydWUsIHBhZ2VzfSkgYXMgUGx1Z2luW10pLFxuXG4gICAgLy8gQWRkIGEgYmFubmVyIHRvIGdlbmVyYXRlZCBqcy9jc3NcbiAgICBiYW5uZXJQbHVnaW4oXG4gICAgICBgXG4gICAgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLlxuXG4gICAgICAgICBfXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAgICAgIF8gICAgICAgICAgICBfXG4gICAgICAgIC8gICkgICAgICAgICAgICAgIHwgIG8gICAgICAgICAvfCAgIC8gfCB8ICAgICAgICAgIHwgfFxuICAgICAgICBcXFxcX18gX3xfICAgICAgICAgX198ICAgICAgX18gICAgIHxfXy8gIHwgfCAgX18gICBfICB8IHxcbiAgICAgICAgICAgXFxcXCB8ICB8ICAgfCAgLyAgfCAgfCAgLyAgXFxcXF8gICB8IFxcXFwgICB8LyAgLyAgXFxcXF98LyAgfC9fKVxuICAgICAgIChfX18vIHxfLyBcXFxcXy98Xy9cXFxcXy98Xy98Xy9cXFxcX18vICAgIHwgIFxcXFxfL3xfXy9cXFxcX18vIHxfXy98IFxcXFxfL1xuXG4gICAgICAgIENvbmNlcHQsIG9udHdlcnAgJiBvbnR3aWtrZWxpbmdcbiAgICAgICAgaHR0cHM6Ly9zdHVkaW9rbG9lay5ubFxuXG4gICAgICAgIFN0dWRpbyBLbG9layDinaQgUGl4aUpTLCBHU0FQICYgaG93bGVyLmpzXG5cbiAgICAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuXG5cbiAgICBgLFxuICAgICksXG4gICk7XG5cbiAgLy8gQ3JlYXRlIGEgbWFuaWZlc3QgYW5kIG1pbmltYWwgd2Vid29ya2VyIGZvciBldmVyeSBnYW1lXG4gIGlmIChvcHRpb25zLmNvbmZpZy5idWlsZC5tYW5pZmVzdCkge1xuICAgIHBsdWdpbnMucHVzaChtYW5pZmVzdFBsdWdpbihvcHRpb25zLnNldHRpbmdzLmdhbWVzKSk7XG4gIH1cblxuICByZXR1cm4gcGx1Z2lucztcbn1cbiIsImltcG9ydCBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQge1xuICBHYW1lU2V0dGluZ3MsXG4gIEdhbWVTZXR0aW5nc1Byb3BlcnR5LFxuICBHYW1lc1NldHRpbmdzLFxuICBHYW1lc1NldHRpbmdzRGF0YSxcbiAgS2xvZWtWaXRlQ29uZmlnLFxuICBQYWNrYWdlR2FtZXNTZXR0aW5ncyxcbn0gZnJvbSAnLi9pbnRlcmZhY2VzJztcblxuZnVuY3Rpb24gbWVyZ2VHYW1lU2V0dGluZ3MoXG4gIGdlbmVyaWM6IEdhbWVTZXR0aW5ncyxcbiAgZ2FtZTogR2FtZVNldHRpbmdzLFxuICBpbmZvVHlwZXM6IEdhbWVTZXR0aW5nc1Byb3BlcnR5W10sXG4pOiBHYW1lU2V0dGluZ3Mge1xuICBjb25zdCBzZXR0aW5nczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcblxuICAvLyBBbGxlIHByb3BzIG9wIMOpw6luIGxldmVsIGRpZXAgbWVyZ2VuXG4gIGZvciAoY29uc3QgcHJvcGVydHkgb2YgaW5mb1R5cGVzKSB7XG4gICAgc2V0dGluZ3NbcHJvcGVydHldID0ge1xuICAgICAgLi4uZ2VuZXJpY1twcm9wZXJ0eV0sXG4gICAgICAuLi5nYW1lW3Byb3BlcnR5XSxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHNldHRpbmdzIGFzIHVua25vd24gYXMgR2FtZVNldHRpbmdzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VQYWNrYWdlR2FtZXNTZXR0aW5ncyhcbiAgcGFja2FnZVNldHRpbmdzOiBQYWNrYWdlR2FtZXNTZXR0aW5ncyxcbik6IEdhbWVzU2V0dGluZ3NEYXRhIHtcbiAgLy8gTWVyZ2Ugc2V0dGluZ3NcbiAgY29uc3QgaW5mb1R5cGVzID0gT2JqZWN0LmtleXMoXG4gICAgcGFja2FnZVNldHRpbmdzLmdlbmVyaWMsXG4gICkgYXMgR2FtZVNldHRpbmdzUHJvcGVydHlbXTtcbiAgY29uc3Qge2dlbmVyaWN9ID0gcGFja2FnZVNldHRpbmdzO1xuICBjb25zdCBhbGxTZXR0aW5nczogR2FtZXNTZXR0aW5nc0RhdGEgPSB7XG4gICAgZGV2ZWxvcG1lbnQ6IGdlbmVyaWMsXG4gICAgZ2FtZXM6IHt9LFxuICB9O1xuXG4gIGZvciAoY29uc3QgZ2FtZSBvZiBwYWNrYWdlU2V0dGluZ3MuZ2FtZXMgPz8gW10pIHtcbiAgICBjb25zdCBzZXR0aW5ncyA9IG1lcmdlR2FtZVNldHRpbmdzKGdlbmVyaWMsIGdhbWUsIGluZm9UeXBlcyk7XG5cbiAgICAvLyBab3JnIGVyIHZvb3IgZGF0IHBhZ2UgYWx0aWpkIGdlemV0IGlzXG4gICAgY29uc3QgcGFnZUlkID0gc2V0dGluZ3MuaW5mby5wYWdlID8/IHNldHRpbmdzLmluZm8uaWQgPz8gJ3Vua25vd24nO1xuICAgIHNldHRpbmdzLmluZm8ucGFnZSA9IHBhZ2VJZDtcblxuICAgIC8vIFNsYSBzZXR0aW5ncyBvcCBvbmRlciBwYWdlIGlkXG4gICAgYWxsU2V0dGluZ3MuZ2FtZXNbcGFnZUlkXSA9IHNldHRpbmdzO1xuICB9XG5cbiAgcmV0dXJuIGFsbFNldHRpbmdzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGF0aFRvR2FtZURhdGEoXG4gIGZ1bGxGaWxlUGF0aDogc3RyaW5nLFxuICBzZXR0aW5nczogR2FtZXNTZXR0aW5ncyxcbik6IEdhbWVTZXR0aW5ncyB8IHVuZGVmaW5lZCB7XG4gIC8vIERldGVybWluZSBmaWxlbmFtZSB3aXRob3V0IGV4dGVuc2lvblxuICBsZXQgZmlsZVBhdGggPSBwYXRoLmJhc2VuYW1lKGZ1bGxGaWxlUGF0aCwgcGF0aC5leHRuYW1lKGZ1bGxGaWxlUGF0aCkpO1xuXG4gIC8vIERldGVybWluZSBkaXIgJiByZW1vdmUgbGVhZGluZyBzbGFzaFxuICBsZXQgZmlsZURpcmVjdG9yeSA9IHBhdGguZGlybmFtZShmdWxsRmlsZVBhdGgpO1xuICBmaWxlRGlyZWN0b3J5ID0gZmlsZURpcmVjdG9yeS5yZXBsYWNlKC9eXFwvKy9nLCAnJyk7XG5cbiAgaWYgKGZpbGVEaXJlY3RvcnkpIHtcbiAgICBmaWxlUGF0aCA9IGAke2ZpbGVEaXJlY3Rvcnl9LyR7ZmlsZVBhdGh9YDtcbiAgfVxuXG4gIHJldHVybiBzZXR0aW5nc1tmaWxlUGF0aF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYWdlVG9TZXJ2ZShcbiAgY29uZmlnOiBLbG9la1ZpdGVDb25maWcsXG4gIHNldHRpbmdzOiBHYW1lc1NldHRpbmdzLFxuKTogc3RyaW5nIHtcbiAgLy8gSG9ldmVlbCBwYWdlcyB6aWpuIGVyP1xuICBjb25zdCBwYWdlSWRzID0gT2JqZWN0LmtleXMoc2V0dGluZ3MpO1xuICBjb25zdCBwYWdlID0gcGFnZUlkcy5sZW5ndGggPT09IDEgPyBwYWdlSWRzWzBdIDogJ2RldmVsb3BtZW50JztcblxuICByZXR1cm4gcGF0aC5wb3NpeC5qb2luKFxuICAgIGNvbmZpZy5idWlsZC5iYXNlUGF0aCxcbiAgICBgJHtwYWdlfS5odG1sJHtjb25maWcuZGV2LnNlcnZlUGFyYW1zID8/ICcnfWAsXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYWdlSWRGcm9tVXJsKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKCF1cmwpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBsZXQgcGF0aG5hbWU6IHN0cmluZztcblxuICB0cnkge1xuICAgIHBhdGhuYW1lID0gbmV3IFVSTCh1cmwsICdodHRwczovL3N0dWRpb2tsb2VrLm5sJykucGF0aG5hbWU7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIC8vIElmIHJlcXVlc3QgaXMgbm90IGh0bWwgLCBkaXJlY3RseSByZXR1cm4gbmV4dCgpXG4gIGlmICghcGF0aG5hbWUuZW5kc1dpdGgoJy5odG1sJykgJiYgcGF0aG5hbWUgIT09ICcvJykge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIC8vIFBhZ2luYSBpZCBvcHZyYWdlblxuICBjb25zdCBpbmRleCA9IHBhdGhuYW1lLmxhc3RJbmRleE9mKCcvJyk7XG4gIGNvbnN0IGZpbGVOYW1lID0gaW5kZXggPT09IC0xID8gcGF0aG5hbWUgOiBwYXRobmFtZS5zbGljZShpbmRleCArIDEpO1xuXG4gIHJldHVybiBmaWxlTmFtZS5yZXBsYWNlKCcuaHRtbCcsICcnKTtcbn1cbiIsImltcG9ydCBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQge0J1aWxkT3B0aW9uc30gZnJvbSAndml0ZSc7XG5pbXBvcnQge1ZpdGVPcHRpb25zfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lQnVpbGRDb25maWcob3B0aW9uczogVml0ZU9wdGlvbnMpOiBCdWlsZE9wdGlvbnMge1xuICBjb25zdCBpbnB1dDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXG4gIGZvciAoY29uc3QgZ2FtZUlkIG9mIE9iamVjdC5rZXlzKG9wdGlvbnMuc2V0dGluZ3MuZ2FtZXMpKSB7XG4gICAgaW5wdXRbZ2FtZUlkXSA9IHBhdGgucmVzb2x2ZShvcHRpb25zLnJvb3QsIGAke2dhbWVJZH0uaHRtbGApO1xuICB9XG5cbiAgLy8gTGlicyBkaWUgYXBhcnRlIGpzIGtyaWpnZW46XG4gIGNvbnN0IHZlbmRvckNodW5rcyA9IFsnZmlyZWJhc2UnLCAncGl4aScsICdsb2Rhc2gnLCAnY2FwYWNpdG9yJywgJ2dzYXAnXTtcblxuICByZXR1cm4ge1xuICAgIHJlcG9ydENvbXByZXNzZWRTaXplOiBmYWxzZSxcbiAgICBjaHVua1NpemVXYXJuaW5nTGltaXQ6IDEwMDAsXG4gICAgb3V0RGlyOiAnLi4vcHVibGljJyxcbiAgICBhc3NldHNEaXI6ICdnZW5lcmF0ZWQnLFxuICAgIHJvbGx1cE9wdGlvbnM6IHtcbiAgICAgIGlucHV0LFxuICAgICAgb3V0cHV0OiB7XG4gICAgICAgIG1hbnVhbENodW5rcyhpZCkge1xuICAgICAgICAgIGlmIChpZC5pbmNsdWRlcygnbm9kZV9tb2R1bGVzJykpIHtcbiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBpZFxuICAgICAgICAgICAgICAudG9TdHJpbmcoKVxuICAgICAgICAgICAgICAuc3BsaXQoJ25vZGVfbW9kdWxlcy8nKVsxXVxuICAgICAgICAgICAgICAuc3BsaXQoJy8nKVswXVxuICAgICAgICAgICAgICAudG9TdHJpbmcoKTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiB2ZW5kb3JDaHVua3MpIHtcbiAgICAgICAgICAgICAgaWYgKG5hbWUuaW5jbHVkZXModmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcbn1cbiIsImltcG9ydCB7cmVhZEZpbGVTeW5jfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5pbXBvcnQge25vcm1hbGl6ZVBhdGh9IGZyb20gJ3ZpdGUnO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVhZEpTT04ocGF0aDogc3RyaW5nKTogdW5rbm93biB7XG4gIHRyeSB7XG4gICAgY29uc3QgZGF0YSA9IHJlYWRGaWxlU3luYyhwYXRoKTtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShkYXRhLnRvU3RyaW5nKCkpO1xuICB9IGNhdGNoIHtcbiAgICAvL1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgY29uc3QgY3dkID0gbm9ybWFsaXplUGF0aChwcm9jZXNzLmN3ZCgpKTtcblxuZXhwb3J0ICogZnJvbSAnLi9nYW1lJztcbmV4cG9ydCAqIGZyb20gJy4vYnVpbGQnO1xuIiwiaW1wb3J0IG9zIGZyb20gJ25vZGU6b3MnO1xuaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7UGx1Z2lufSBmcm9tICd2aXRlJztcbmltcG9ydCB2aXRlSGFuZGxlYmFyc1BsdWdpbiBmcm9tICd2aXRlLXBsdWdpbi1oYW5kbGViYXJzJztcbmltcG9ydCB7Vml0ZU9wdGlvbnN9IGZyb20gJy4uLy4uL3V0aWxzL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtnZXRQYWdlSWRGcm9tVXJsfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbi8vIEhlbHBlcnMgdm9vciBoYW5kbGViYXJzXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlYmFyc1BsdWdpbihcbiAgcGFydGlhbERpcmVjdG9yeTogc3RyaW5nIHwgc3RyaW5nW10sXG4gIG9wdGlvbnM6IFZpdGVPcHRpb25zLFxuKTogUGx1Z2luIHtcbiAgcmV0dXJuIHZpdGVIYW5kbGViYXJzUGx1Z2luKHtcbiAgICBwYXJ0aWFsRGlyZWN0b3J5LFxuXG4gICAgaGVscGVyczoge1xuICAgICAganNvbjogKG9iamVjdDogYW55LCBpbmRlbnQgPSAwKSA9PlxuICAgICAgICBKU09OLnN0cmluZ2lmeShvYmplY3QsIHVuZGVmaW5lZCwgaW5kZW50KSxcbiAgICAgIGNvbmNhdDogKC4uLmFyZ3VtZW50c186IGFueVtdKSA9PiBhcmd1bWVudHNfLnNsaWNlKDAsIC0xKS5qb2luKCcnKSxcbiAgICAgIGVxOiAoYTogYW55LCBiOiBhbnkpID0+IGEgPT09IGIsXG4gICAgICBuZXE6IChhOiBhbnksIGI6IGFueSkgPT4gYSAhPT0gYixcbiAgICAgIGlzZGVmaW5lZDogKHZhbHVlOiB1bmRlZmluZWQpID0+IHZhbHVlICE9PSB1bmRlZmluZWQsXG4gICAgICAncmVzb2x2ZS1yb290JyhwOiBzdHJpbmcpIHtcbiAgICAgICAgLy8gVGlqZGVsaWprZSBoYWNrIHZvb3IgYnVnIGluIGhhbmRsZWJhcnMgcGx1Z2luXG4gICAgICAgIC8vIHppZSBvb2sgaHR0cHM6Ly9naXRodWIuY29tL2FsZXhsYWZyb3NjaWEvdml0ZS1wbHVnaW4taGFuZGxlYmFycy9wdWxsLzEyOVxuICAgICAgICBjb25zdCByZXNvbHZlZFBhdGggPSBwYXRoLnJlc29sdmUob3B0aW9ucy5yb290LCBwKTtcbiAgICAgICAgcmV0dXJuIG9zLnBsYXRmb3JtKCkgPT09ICd3aW4zMicgPyBgLyR7cmVzb2x2ZWRQYXRofWAgOiByZXNvbHZlZFBhdGg7XG4gICAgICB9LFxuICAgIH0sXG5cbiAgICBjb250ZXh0KHBhZ2VQYXRoOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgICBjb25zdCBnYW1lSWQgPSBnZXRQYWdlSWRGcm9tVXJsKHBhZ2VQYXRoKTtcblxuICAgICAgaWYgKCFnYW1lSWQpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgfVxuXG4gICAgICBpZiAoZ2FtZUlkID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgIC8vIFBhZ2luYSBzZXR0aW5ncyB0ZXJ1Z2dldmVuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZW52OiBvcHRpb25zLmVudmlyb25tZW50LFxuICAgICAgICAgIGRhdGE6IG9wdGlvbnMuc2V0dGluZ3MuZGV2ZWxvcG1lbnQsXG4gICAgICAgICAgZ2FtZXM6IG9wdGlvbnMuc2V0dGluZ3MuZ2FtZXMsXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIC8vIE9wIGJhc2lzIHZhbiBwYWQgZGF0YSBiZXBhbGVuXG4gICAgICBjb25zdCBzZXR0aW5ncyA9IG9wdGlvbnMuc2V0dGluZ3MuZ2FtZXNbZ2FtZUlkXTtcblxuICAgICAgLy8gUGFnaW5hIHNldHRpbmdzIHRlcnVnZ2V2ZW5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGVudjogb3B0aW9ucy5lbnZpcm9ubWVudCxcbiAgICAgICAgZGF0YTogc2V0dGluZ3MgPz8ge30sXG4gICAgICB9O1xuICAgIH0sXG4gIH0pO1xufVxuIiwiaW1wb3J0IHtleGlzdHNTeW5jLCBwcm9taXNlc30gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHtDb25maWdFbnYsIFBsdWdpbiwgVXNlckNvbmZpZywgVml0ZURldlNlcnZlcn0gZnJvbSAndml0ZSc7XG5pbXBvcnQge0dhbWVzU2V0dGluZ3N9IGZyb20gJy4uLy4uL3V0aWxzL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtjd2QsIGdldFBhZ2VJZEZyb21Vcmx9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuY29uc3QgUEFHRV9URU1QTEFURSA9ICd7ez4gZ2FtZSBkYXRhPWRhdGF9fSc7XG5jb25zdCBERVZFTE9QTUVOVF9URU1QTEFURSA9ICd7ez4gZGV2ZWxvcG1lbnQgZGF0YT1kYXRhfX0nO1xuXG5hc3luYyBmdW5jdGlvbiByZW5kZXJUZW1wb3JhcnlGaWxlKGZpbGVQYXRoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgLy8gQmVzdGFhdCBkaWUgZmlsZSBub2cgbmlldD9cbiAgaWYgKCFleGlzdHNTeW5jKGZpbGVQYXRoKSkge1xuICAgIC8vIEFhbm1ha2VuXG4gICAgYXdhaXQgcHJvbWlzZXMud3JpdGVGaWxlKGZpbGVQYXRoLCBQQUdFX1RFTVBMQVRFKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaHRtbFBsdWdpbihnYW1lczogR2FtZXNTZXR0aW5ncyk6IFBsdWdpbiB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ3ZpdGUtcGx1Z2luLWtsb2VrLWh0bWwnLFxuICAgIGVuZm9yY2U6ICdwcmUnLFxuXG4gICAgYXN5bmMgY29uZmlnKF9jb25maWc6IFVzZXJDb25maWcsIGVudmlyb25tZW50OiBDb25maWdFbnYpIHtcbiAgICAgIC8vIEJpaiBlZW4gYnVpbGQgbWFrZW4gd2UgdGlqZGVsaWprIGZpbGVzIGFhblxuICAgICAgaWYgKGVudmlyb25tZW50LmNvbW1hbmQgPT09ICdidWlsZCcpIHtcbiAgICAgICAgY29uc3QgYWN0aW9uczogQXJyYXk8UHJvbWlzZTx2b2lkPj4gPSBbXTtcblxuICAgICAgICBmb3IgKGNvbnN0IHBhZ2VJZCBvZiBPYmplY3Qua2V5cyhnYW1lcykpIHtcbiAgICAgICAgICAvLyBQYWQgbmFhciBmaWxlXG4gICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLnJlc29sdmUoY3dkLCAnc291cmNlJywgYCR7cGFnZUlkfS5odG1sYCk7XG4gICAgICAgICAgYWN0aW9ucy5wdXNoKHJlbmRlclRlbXBvcmFyeUZpbGUoZmlsZVBhdGgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKGFjdGlvbnMpO1xuICAgICAgfVxuICAgIH0sXG5cbiAgICBjb25maWd1cmVTZXJ2ZXIoc2VydmVyOiBWaXRlRGV2U2VydmVyKSB7XG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAvLyBab3JnIGVyIHZvb3IgZGF0IHRpamRlbnMgZGV2ZWxvcG1lbnQgZGUgcGFnaW5hIGdlLXJlbmRlcmVkIHRlcnVnIGdlZ2V2ZW4gd29yZHQgd29yZHRcbiAgICAgICAgc2VydmVyLm1pZGRsZXdhcmVzLnVzZSgnLycsIGFzeW5jIChyZXF1ZXN0LCByZXNwb25zZSwgbmV4dCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHVybCA9IHJlcXVlc3Q/LnVybCA/PyAnJztcbiAgICAgICAgICBjb25zdCBwYWdlSWQgPSBnZXRQYWdlSWRGcm9tVXJsKHVybCk7XG5cbiAgICAgICAgICBpZiAoIXBhZ2VJZCkge1xuICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChwYWdlSWQgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgICAgIC8vIERldmVsb3BtZW50PyBnZWVmIHRlcnVnLi4uXG4gICAgICAgICAgICByZXNwb25zZS5lbmQoXG4gICAgICAgICAgICAgIGF3YWl0IHNlcnZlci50cmFuc2Zvcm1JbmRleEh0bWwoXG4gICAgICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgICAgIERFVkVMT1BNRU5UX1RFTVBMQVRFLFxuICAgICAgICAgICAgICAgIHJlcXVlc3Qub3JpZ2luYWxVcmwsXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSBpZiAoT2JqZWN0LmtleXMoZ2FtZXMpLmluY2x1ZGVzKHBhZ2VJZCkpIHtcbiAgICAgICAgICAgIC8vIEJlc3RhYW5kZSBnYW1lPyB6b3JnIGVyIHZvb3IgZGF0IGRlIHRlbXBsYXRlIGdlLXJlbmRlcmVkIHdvcmR0XG4gICAgICAgICAgICByZXNwb25zZS5lbmQoXG4gICAgICAgICAgICAgIGF3YWl0IHNlcnZlci50cmFuc2Zvcm1JbmRleEh0bWwoXG4gICAgICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgICAgIFBBR0VfVEVNUExBVEUsXG4gICAgICAgICAgICAgICAgcmVxdWVzdC5vcmlnaW5hbFVybCxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIE5pa3MgZ2V2b25kZW5cbiAgICAgICAgICAgIHJlc3BvbnNlLmVuZCgnNDA0Jyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgfSxcblxuICAgIGFzeW5jIGNsb3NlQnVuZGxlKCkge1xuICAgICAgLy8gVmVyd2lqZGVyIGRlIGFhbmdlbWFha3RlIGZpbGVzXG4gICAgICBjb25zdCBhY3Rpb25zOiBBcnJheTxQcm9taXNlPHZvaWQ+PiA9IFtdO1xuICAgICAgZm9yIChjb25zdCBwYWdlSWQgb2YgT2JqZWN0LmtleXMoZ2FtZXMpKSB7XG4gICAgICAgIC8vIFBhZCBuYWFyIGZpbGVcbiAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLnJlc29sdmUoY3dkLCAnc291cmNlJywgYCR7cGFnZUlkfS5odG1sYCk7XG4gICAgICAgIGlmIChleGlzdHNTeW5jKGZpbGVQYXRoKSkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhY3Rpb25zLnB1c2gocHJvbWlzZXMucm0oZmlsZVBhdGgpKTtcbiAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKGFjdGlvbnMpO1xuICAgIH0sXG4gIH07XG59XG4iLCJpbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHtzdmVsdGV9IGZyb20gJ0BzdmVsdGVqcy92aXRlLXBsdWdpbi1zdmVsdGUnO1xuaW1wb3J0IHtQbHVnaW59IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IGZ1bGxSZWxvYWQgZnJvbSAndml0ZS1wbHVnaW4tZnVsbC1yZWxvYWQnO1xuaW1wb3J0IHRzY29uZmlnUGF0aHNQbHVnaW4gZnJvbSAndml0ZS10c2NvbmZpZy1wYXRocyc7XG5pbXBvcnQgYmFzaWNTU0wgZnJvbSAnQHZpdGVqcy9wbHVnaW4tYmFzaWMtc3NsJztcbmltcG9ydCB7Vml0ZU9wdGlvbnN9IGZyb20gJy4uL3V0aWxzL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtjd2R9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7aGFuZGxlYmFyc1BsdWdpbn0gZnJvbSAnLi9saWIvaGFuZGxlYmFycy1wbHVnaW4nO1xuaW1wb3J0IHtodG1sUGx1Z2lufSBmcm9tICcuL2xpYi9odG1sLXBsdWdpbic7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXJ2ZVBsdWdpbnMob3B0aW9uczogVml0ZU9wdGlvbnMpOiBQbHVnaW5bXSB7XG4gIHJldHVybiBbXG4gICAgaHRtbFBsdWdpbihvcHRpb25zLnNldHRpbmdzLmdhbWVzKSxcblxuICAgIC4uLnN2ZWx0ZSh7XG4gICAgICAvLyBIb3Q6IGZhbHNlLFxuICAgICAgZXhwZXJpbWVudGFsOiB7XG4gICAgICAgIHByZWJ1bmRsZVN2ZWx0ZUxpYnJhcmllczogdHJ1ZSxcbiAgICAgICAgdXNlVml0ZVByZXByb2Nlc3M6IHRydWUsXG4gICAgICB9LFxuICAgIH0pLFxuXG4gICAgdHNjb25maWdQYXRoc1BsdWdpbih7XG4gICAgICByb290OiBwYXRoLnJlc29sdmUoY3dkKSxcbiAgICAgIGV4dGVuc2lvbnM6IFsnLnRzJywgJy5qc29uJ10sXG4gICAgICBsb29zZTogdHJ1ZSxcbiAgICB9KSxcblxuICAgIGZ1bGxSZWxvYWQoWydzY3JpcHQvKiovKi50cycsICdzdmVsdGUvKiovKi5zdmVsdGUnXSwge1xuICAgICAgcm9vdDogcGF0aC5qb2luKHBhdGgucmVzb2x2ZShjd2QpLCAnc291cmNlJyksXG4gICAgICBsb2c6IHRydWUsXG4gICAgICBhbHdheXM6IHRydWUsXG4gICAgfSkgYXMgUGx1Z2luLFxuXG4gICAgaGFuZGxlYmFyc1BsdWdpbihvcHRpb25zLmNvbmZpZy5zZXJ2ZS5wYXJ0aWFscywgb3B0aW9ucyksXG5cbiAgICBiYXNpY1NTTCgpLFxuICBdO1xufVxuIiwiaW1wb3J0IHtyZWFkRmlsZVN5bmN9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7ZmlsZVVSTFRvUGF0aH0gZnJvbSAnbm9kZTp1cmwnO1xuaW1wb3J0IHtDb25maWdFbnYsIFVzZXJDb25maWd9IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IHtidWlsZFBsdWdpbnN9IGZyb20gJy4vcGx1Z2lucy9idWlsZCc7XG5pbXBvcnQge3NlcnZlUGx1Z2luc30gZnJvbSAnLi9wbHVnaW5zL3NlcnZlJztcbmltcG9ydCB7XG4gIGN3ZCxcbiAgZGVmaW5lQnVpbGRDb25maWcsXG4gIGdldFBhZ2VUb1NlcnZlLFxuICBwYXJzZVBhY2thZ2VHYW1lc1NldHRpbmdzLFxuICByZWFkSlNPTixcbn0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQge1xuICBLbG9la1ZpdGVDb25maWcsXG4gIFBhY2thZ2VHYW1lc1NldHRpbmdzLFxuICBWaXRlT3B0aW9ucyxcbn0gZnJvbSAnLi91dGlscy9pbnRlcmZhY2VzJztcblxuY29uc3QgX19kaXJuYW1lID0gcGF0aC5kaXJuYW1lKGZpbGVVUkxUb1BhdGgoaW1wb3J0Lm1ldGEudXJsKSk7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZWZpbmVLbG9la1ZpdGVDb25maWcoXG4gIGVudmlyb25tZW50OiBDb25maWdFbnYsXG4pOiBQcm9taXNlPFVzZXJDb25maWc+IHtcbiAgY29uc3QgcGtnID0gcmVhZEpTT04ocGF0aC5yZXNvbHZlKGN3ZCwgJ3BhY2thZ2UuanNvbicpKSBhcyBSZWNvcmQ8XG4gICAgc3RyaW5nLFxuICAgIHVua25vd25cbiAgPjtcbiAgY29uc3Qga2xvZWtDb25maWcgPSBwa2cudml0ZSBhcyBLbG9la1ZpdGVDb25maWc7XG4gIGNvbnN0IGJyb3dzZXJzbGlzdCA9IHBrZy5icm93c2Vyc2xpc3QgYXMgc3RyaW5nIHwgc3RyaW5nW107XG4gIGNvbnN0IG9wdGlvbnM6IFZpdGVPcHRpb25zID0ge1xuICAgIHJvb3Q6IHBhdGgucmVzb2x2ZShjd2QsICdzb3VyY2UnKSxcbiAgICBlbnZpcm9ubWVudCxcbiAgICBzZXR0aW5nczogcGFyc2VQYWNrYWdlR2FtZXNTZXR0aW5ncyhwa2cuc2V0dGluZ3MgYXMgUGFja2FnZUdhbWVzU2V0dGluZ3MpLFxuICAgIGNvbmZpZzoge1xuICAgICAgLi4ua2xvZWtDb25maWcsXG4gICAgICBidWlsZDogey4uLmtsb2VrQ29uZmlnLmJ1aWxkLCBicm93c2Vyc2xpc3R9LFxuICAgICAgc2VydmU6IHtcbiAgICAgICAgcGFydGlhbHM6IFtcbiAgICAgICAgICBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAncGFydGlhbHMnKSxcbiAgICAgICAgICBwYXRoLnJlc29sdmUoY3dkLCAnc291cmNlJywgJ3BhcnRpYWxzJyksXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG5cbiAgY29uc3QgY29uZmlnOiBVc2VyQ29uZmlnID0ge1xuICAgIGxvZ0xldmVsOiAnaW5mbycsXG4gICAgYmFzZToga2xvZWtDb25maWcuYnVpbGQuYmFzZVBhdGgsXG4gICAgcm9vdDogb3B0aW9ucy5yb290LFxuICAgIHB1YmxpY0RpcjogJ3N0YXRpYycsXG4gICAgZGVmaW5lOiB7fSxcblxuICAgIGVzYnVpbGQ6IHtcbiAgICAgIGxlZ2FsQ29tbWVudHM6ICdub25lJyxcbiAgICB9LFxuXG4gICAgcmVzb2x2ZToge1xuICAgICAgYWxpYXM6IHtcbiAgICAgICAgbG9kYXNoOiAnbG9kYXNoLWVzJyxcbiAgICAgICAgJ0BtZXRhJzogcGF0aC5yZXNvbHZlKGN3ZCwgJ3NvdXJjZScsICdzdGF0aWMnLCAnbWV0YScpLFxuICAgICAgICAnQGZvbnRzJzogcGF0aC5yZXNvbHZlKGN3ZCwgJ3NvdXJjZScsICdzdGF0aWMnLCAnZm9udHMnKSxcbiAgICAgIH0sXG4gICAgfSxcblxuICAgIGNzczoge1xuICAgICAgcHJlcHJvY2Vzc29yT3B0aW9uczoge1xuICAgICAgICBzY3NzOiB7XG4gICAgICAgICAgY2hhcnNldDogZmFsc2UsXG4gICAgICAgICAgLy8gQWRkaXRpb25hbERhdGE6IGBAY2hhcnNldCBcIlVURi04XCJgLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuXG4gICAgcGx1Z2luczogWy4uLnNlcnZlUGx1Z2lucyhvcHRpb25zKV0sXG4gIH07XG5cbiAgc3dpdGNoIChlbnZpcm9ubWVudC5jb21tYW5kKSB7XG4gICAgY2FzZSAnc2VydmUnOlxuICAgICAgY29uZmlnLnNlcnZlciA9IHtcbiAgICAgICAgaG9zdDogJ2xvY2FsaG9zdCcsXG4gICAgICAgIGh0dHBzOiB7XG4gICAgICAgICAga2V5OiByZWFkRmlsZVN5bmMocGF0aC5yZXNvbHZlKGN3ZCwgJ2NlcnQnLCAna2V5LnBlbScpKSxcbiAgICAgICAgICBjZXJ0OiByZWFkRmlsZVN5bmMocGF0aC5yZXNvbHZlKGN3ZCwgJ2NlcnQnLCAnY2VydC5wZW0nKSksXG4gICAgICAgIH0sXG4gICAgICAgIG9wZW46IGdldFBhZ2VUb1NlcnZlKG9wdGlvbnMuY29uZmlnLCBvcHRpb25zLnNldHRpbmdzLmdhbWVzKSxcbiAgICAgIH07XG5cbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnYnVpbGQnOlxuICAgICAgY29uZmlnLmJ1aWxkID0gZGVmaW5lQnVpbGRDb25maWcob3B0aW9ucyk7XG4gICAgICBjb25maWcucGx1Z2lucyA9IFtcbiAgICAgICAgLi4uKGNvbmZpZy5wbHVnaW5zID8gY29uZmlnLnBsdWdpbnMgOiBbXSksXG4gICAgICAgIC4uLmJ1aWxkUGx1Z2lucyhvcHRpb25zKSxcbiAgICAgIF07XG4gICAgICBicmVhaztcblxuICAgIGRlZmF1bHQ6XG4gIH1cblxuICByZXR1cm4gY29uZmlnO1xufVxuIiwiaW1wb3J0IHtUeXBlZEZsYWdzfSBmcm9tICdtZW93JztcbmltcG9ydCB7YnVpbGQsIGNyZWF0ZVNlcnZlcn0gZnJvbSAndml0ZSc7XG5pbXBvcnQge2RlZmluZUtsb2VrVml0ZUNvbmZpZ30gZnJvbSAnLi9jb25maWcnO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24ga2xvZWtEZXZlbG9wbWVudCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgY29uZmlnID0gYXdhaXQgZGVmaW5lS2xvZWtWaXRlQ29uZmlnKHtcbiAgICBjb21tYW5kOiAnc2VydmUnLFxuICAgIG1vZGU6ICdkZXZlbG9wbWVudCcsXG4gIH0pO1xuXG4gIGNvbnN0IHNlcnZlciA9IGF3YWl0IGNyZWF0ZVNlcnZlcih7XG4gICAgY29uZmlnRmlsZTogZmFsc2UsXG4gICAgZW52RmlsZTogZmFsc2UsXG4gICAgLi4uY29uZmlnLFxuICB9KTtcblxuICBhd2FpdCBzZXJ2ZXIubGlzdGVuKCk7XG4gIHNlcnZlci5wcmludFVybHMoKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGtsb2VrQnVpbGQoXG4gIGZsYWdzOiBUeXBlZEZsYWdzPHtcbiAgICBlbXB0eU91dERpcjoge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nO1xuICAgICAgYWxpYXM6IHN0cmluZztcbiAgICAgIGRlZmF1bHQ6IHRydWU7XG4gICAgfTtcbiAgICBiYXNlOiB7XG4gICAgICB0eXBlOiAnc3RyaW5nJztcbiAgICAgIGFsaWFzOiBzdHJpbmc7XG4gICAgICBkZWZhdWx0OiBzdHJpbmc7XG4gICAgfTtcbiAgfT4sXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgY29uZmlnID0gYXdhaXQgZGVmaW5lS2xvZWtWaXRlQ29uZmlnKHtcbiAgICBjb21tYW5kOiAnYnVpbGQnLFxuICAgIG1vZGU6ICdwcm9kdWN0aW9uJyxcbiAgfSk7XG5cbiAgLy8gRW1wdHkgb3V0IHRoZSBPdXRwdXQgZGlyIGJlZm9yZSBidWlsZGluZz9cbiAgaWYgKGZsYWdzLmVtcHR5T3V0RGlyICE9PSB1bmRlZmluZWQpIHtcbiAgICBjb25maWcuYnVpbGQgPSB7XG4gICAgICAuLi5jb25maWcuYnVpbGQsXG4gICAgICBlbXB0eU91dERpcjogZmxhZ3MuZW1wdHlPdXREaXIsXG4gICAgfTtcbiAgfVxuXG4gIC8vIERpZmZlcmVudCBiYXNlIHBhdGhcbiAgaWYgKHR5cGVvZiBmbGFncy5iYXNlID09PSAnc3RyaW5nJykge1xuICAgIGNvbmZpZy5iYXNlID0gZmxhZ3MuYmFzZTtcbiAgfVxuXG4gIGF3YWl0IGJ1aWxkKHtcbiAgICBjb25maWdGaWxlOiBmYWxzZSxcbiAgICBlbnZGaWxlOiBmYWxzZSxcbiAgICAuLi5jb25maWcsXG4gIH0pO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJZ0IsU0FBQSxjQUFjLENBQzVCLFdBQXNCLEVBQ3RCLE9BQTJCLEVBQUE7QUFFM0IsSUFBQSxPQUFPLGVBQWUsQ0FBQztBQUNyQixRQUFBLE9BQU8sRUFBRSxXQUFXLENBQUMsSUFBSSxLQUFLLFlBQVk7QUFDMUMsUUFBQSxPQUFPLEVBQUU7QUFDUCxZQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxJQUFJLEVBQUU7QUFDN0IsU0FBQTtBQUNELFFBQUEsUUFBUSxFQUFFO0FBQ1IsWUFBQSxLQUFLLEVBQUUsSUFBSTtBQUNYLFlBQUEsS0FBSyxFQUFFLENBQUM7QUFDUixZQUFBLFNBQVMsRUFBRSxJQUFJO1lBQ2YsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ3BDLFNBQUE7QUFDRixLQUFBLENBQVcsQ0FBQztBQUNmOztBQ2pCQSxTQUFTLGtCQUFrQixDQUN6QixNQUFjLEVBQ2QsUUFBc0IsRUFDdEIsTUFBc0IsRUFBQTtBQUV0QixJQUFBLE1BQU0sUUFBUSxHQUFHO0FBQ2YsUUFBQSxVQUFVLEVBQUUsQ0FBRyxFQUFBLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFFLENBQUE7QUFDdkMsUUFBQSxJQUFJLEVBQUUsQ0FBRyxFQUFBLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFFLENBQUE7QUFDOUIsUUFBQSxXQUFXLEVBQUUsQ0FBRyxFQUFBLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFFLENBQUE7QUFDM0MsUUFBQSxLQUFLLEVBQUUsQ0FBRyxFQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUEsRUFBRyxNQUFN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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.4",
|
|
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,6 +69,7 @@
|
|
|
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",
|