@analogjs/vitest-angular 2.0.0-alpha.2 → 2.0.0-alpha.3

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@analogjs/vitest-angular",
3
- "version": "2.0.0-alpha.2",
3
+ "version": "2.0.0-alpha.3",
4
4
  "description": "Vitest Builder for Angular",
5
5
  "type": "commonjs",
6
6
  "author": "Brandon Roberts <robertsbt@gmail.com>",
@@ -28,6 +28,14 @@
28
28
  "watch": {
29
29
  "description": "Watch files for changes and rerun tests related to changed files.",
30
30
  "type": "boolean"
31
+ },
32
+ "ui": {
33
+ "description": "Run tests using Vitest UI Mode.",
34
+ "type": "boolean"
35
+ },
36
+ "coverage": {
37
+ "description": "Enable code coverage analysis.",
38
+ "type": "boolean"
31
39
  }
32
40
  },
33
41
  "required": []
@@ -7,12 +7,19 @@ async function vitestBuilder(options, context) {
7
7
  process.env['VITEST'] = 'true';
8
8
  const { startVitest } = await Function('return import("vitest/node")')();
9
9
  const projectConfig = await context.getProjectMetadata(context.target);
10
- const extraArgs = await getExtraArgs(options);
10
+ const { coverageArgs, ...extraArgs } = await getExtraArgs(options);
11
11
  const watch = options.watch === true;
12
+ const ui = options.ui === true;
13
+ const coverageEnabled = options.coverage === true;
12
14
  const config = {
13
15
  root: `${projectConfig['root'] || '.'}`,
14
16
  watch,
17
+ ui,
15
18
  config: options.configFile,
19
+ coverage: {
20
+ enabled: coverageEnabled,
21
+ ...coverageArgs,
22
+ },
16
23
  ...extraArgs,
17
24
  };
18
25
  const viteOverrides = {
@@ -52,4 +59,4 @@ async function getExtraArgs(options) {
52
59
  return extraArgs;
53
60
  }
54
61
  exports.default = (0, architect_1.createBuilder)(vitestBuilder);
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZXN0LmltcGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy92aXRlc3QtYW5ndWxhci9zcmMvbGliL2J1aWxkZXJzL3Rlc3Qvdml0ZXN0LmltcGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFrRUEsb0NBYUM7QUEvRUQseURBSW1DO0FBSW5DLEtBQUssVUFBVSxhQUFhLENBQzFCLE9BQXFCLEVBQ3JCLE9BQXVCO0lBRXZCLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDO0lBQzdCLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsTUFBTSxDQUFDO0lBRS9CLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxNQUFPLFFBQVEsQ0FDckMsOEJBQThCLENBQy9CLEVBQTRDLENBQUM7SUFFOUMsTUFBTSxhQUFhLEdBQUcsTUFBTSxPQUFPLENBQUMsa0JBQWtCLENBQ3BELE9BQU8sQ0FBQyxNQUEyQixDQUNwQyxDQUFDO0lBQ0YsTUFBTSxTQUFTLEdBQUcsTUFBTSxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUM7SUFDckMsTUFBTSxNQUFNLEdBQUc7UUFDYixJQUFJLEVBQUUsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxFQUFFO1FBQ3ZDLEtBQUs7UUFDTCxNQUFNLEVBQUUsT0FBTyxDQUFDLFVBQVU7UUFDMUIsR0FBRyxTQUFTO0tBQ2IsQ0FBQztJQUNGLE1BQU0sYUFBYSxHQUFRO1FBQ3pCLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRTtLQUNoQixDQUFDO0lBRUYsTUFBTSxNQUFNLEdBQUcsTUFBTSxXQUFXLENBQzlCLE1BQU0sRUFDTixPQUFPLENBQUMsU0FBUyxJQUFJLEVBQUUsRUFDdkIsTUFBTSxFQUNOLGFBQWEsQ0FDZCxDQUFDO0lBRUYsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBRXRCLE1BQU0sV0FBVyxHQUFHLEdBQUcsRUFBRTtRQUN2QixNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDZixJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsQixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUMsQ0FBQztJQUVGLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2xCLE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ25DLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCw0REFBNEQ7SUFDNUQsU0FBUyxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLENBQUMsQ0FBWSxDQUFDO0lBRXBFLE9BQU87UUFDTCxPQUFPLEVBQUUsQ0FBQyxTQUFTO0tBQ3BCLENBQUM7QUFDSixDQUFDO0FBRU0sS0FBSyxVQUFVLFlBQVksQ0FDaEMsT0FBcUI7SUFFckIsMkNBQTJDO0lBQzNDLE1BQU0sTUFBTSxHQUFHLDJDQUFhLGVBQWUsRUFBQyxDQUFDO0lBQzdDLE1BQU0sU0FBUyxHQUF3QixFQUFFLENBQUM7SUFDMUMsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFFLE1BQWMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNyQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUksT0FBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVELGtCQUFlLElBQUEseUJBQWEsRUFBQyxhQUFhLENBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJ1aWxkZXJDb250ZXh0LFxuICBCdWlsZGVyT3V0cHV0LFxuICBjcmVhdGVCdWlsZGVyLFxufSBmcm9tICdAYW5ndWxhci1kZXZraXQvYXJjaGl0ZWN0JztcblxuaW1wb3J0IHsgVml0ZXN0U2NoZW1hIH0gZnJvbSAnLi9zY2hlbWEnO1xuXG5hc3luYyBmdW5jdGlvbiB2aXRlc3RCdWlsZGVyKFxuICBvcHRpb25zOiBWaXRlc3RTY2hlbWEsXG4gIGNvbnRleHQ6IEJ1aWxkZXJDb250ZXh0XG4pOiBQcm9taXNlPEJ1aWxkZXJPdXRwdXQ+IHtcbiAgcHJvY2Vzcy5lbnZbJ1RFU1QnXSA9ICd0cnVlJztcbiAgcHJvY2Vzcy5lbnZbJ1ZJVEVTVCddID0gJ3RydWUnO1xuXG4gIGNvbnN0IHsgc3RhcnRWaXRlc3QgfSA9IGF3YWl0IChGdW5jdGlvbihcbiAgICAncmV0dXJuIGltcG9ydChcInZpdGVzdC9ub2RlXCIpJ1xuICApKCkgYXMgUHJvbWlzZTx0eXBlb2YgaW1wb3J0KCd2aXRlc3Qvbm9kZScpPik7XG5cbiAgY29uc3QgcHJvamVjdENvbmZpZyA9IGF3YWl0IGNvbnRleHQuZ2V0UHJvamVjdE1ldGFkYXRhKFxuICAgIGNvbnRleHQudGFyZ2V0IGFzIHVua25vd24gYXMgc3RyaW5nXG4gICk7XG4gIGNvbnN0IGV4dHJhQXJncyA9IGF3YWl0IGdldEV4dHJhQXJncyhvcHRpb25zKTtcbiAgY29uc3Qgd2F0Y2ggPSBvcHRpb25zLndhdGNoID09PSB0cnVlO1xuICBjb25zdCBjb25maWcgPSB7XG4gICAgcm9vdDogYCR7cHJvamVjdENvbmZpZ1sncm9vdCddIHx8ICcuJ31gLFxuICAgIHdhdGNoLFxuICAgIGNvbmZpZzogb3B0aW9ucy5jb25maWdGaWxlLFxuICAgIC4uLmV4dHJhQXJncyxcbiAgfTtcbiAgY29uc3Qgdml0ZU92ZXJyaWRlczogYW55ID0ge1xuICAgIHRlc3Q6IHsgd2F0Y2ggfSxcbiAgfTtcblxuICBjb25zdCBzZXJ2ZXIgPSBhd2FpdCBzdGFydFZpdGVzdChcbiAgICAndGVzdCcsXG4gICAgb3B0aW9ucy50ZXN0RmlsZXMgPz8gW10sXG4gICAgY29uZmlnLFxuICAgIHZpdGVPdmVycmlkZXNcbiAgKTtcblxuICBsZXQgaGFzRXJyb3JzID0gZmFsc2U7XG5cbiAgY29uc3QgcHJvY2Vzc0V4aXQgPSAoKSA9PiB7XG4gICAgc2VydmVyPy5leGl0KCk7XG4gICAgaWYgKGhhc0Vycm9ycykge1xuICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgIH0gZWxzZSB7XG4gICAgICBwcm9jZXNzLmV4aXQoMCk7XG4gICAgfVxuICB9O1xuXG4gIGlmIChvcHRpb25zLndhdGNoKSB7XG4gICAgcHJvY2Vzcy5vbignU0lHSU5UJywgcHJvY2Vzc0V4aXQpO1xuICAgIHByb2Nlc3Mub24oJ1NJR1RFUk0nLCBwcm9jZXNzRXhpdCk7XG4gICAgcHJvY2Vzcy5vbignZXhpdCcsIHByb2Nlc3NFeGl0KTtcbiAgfVxuXG4gIC8vIHZpdGVzdCBzZXRzIHRoZSBleGl0Q29kZSA9IDEgd2hlbiBjb2RlIGNvdmVyYWdlIGlzbid0IG1ldFxuICBoYXNFcnJvcnMgPSAocHJvY2Vzcy5leGl0Q29kZSAmJiBwcm9jZXNzLmV4aXRDb2RlICE9PSAwKSBhcyBib29sZWFuO1xuXG4gIHJldHVybiB7XG4gICAgc3VjY2VzczogIWhhc0Vycm9ycyxcbiAgfTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEV4dHJhQXJncyhcbiAgb3B0aW9uczogVml0ZXN0U2NoZW1hXG4pOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgLy8gc3VwcG9ydCBwYXNzaW5nIGV4dHJhIGFyZ3MgdG8gVml0ZXN0IENMSVxuICBjb25zdCBzY2hlbWEgPSBhd2FpdCBpbXBvcnQoJy4vc2NoZW1hLmpzb24nKTtcbiAgY29uc3QgZXh0cmFBcmdzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG9wdGlvbnMpKSB7XG4gICAgaWYgKCEoc2NoZW1hIGFzIGFueSkucHJvcGVydGllc1trZXldKSB7XG4gICAgICBleHRyYUFyZ3Nba2V5XSA9IChvcHRpb25zIGFzIGFueSlba2V5XTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZXh0cmFBcmdzO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjcmVhdGVCdWlsZGVyKHZpdGVzdEJ1aWxkZXIpIGFzIGFueTtcbiJdfQ==
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZXN0LmltcGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy92aXRlc3QtYW5ndWxhci9zcmMvbGliL2J1aWxkZXJzL3Rlc3Qvdml0ZXN0LmltcGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUF5RUEsb0NBYUM7QUF0RkQseURBSW1DO0FBSW5DLEtBQUssVUFBVSxhQUFhLENBQzFCLE9BQXFCLEVBQ3JCLE9BQXVCO0lBRXZCLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDO0lBQzdCLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsTUFBTSxDQUFDO0lBRS9CLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxNQUFPLFFBQVEsQ0FDckMsOEJBQThCLENBQy9CLEVBQTRDLENBQUM7SUFFOUMsTUFBTSxhQUFhLEdBQUcsTUFBTSxPQUFPLENBQUMsa0JBQWtCLENBQ3BELE9BQU8sQ0FBQyxNQUEyQixDQUNwQyxDQUFDO0lBQ0YsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLFNBQVMsRUFBRSxHQUFHLE1BQU0sWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25FLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDO0lBQ3JDLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDO0lBQy9CLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDO0lBQ2xELE1BQU0sTUFBTSxHQUFHO1FBQ2IsSUFBSSxFQUFFLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsRUFBRTtRQUN2QyxLQUFLO1FBQ0wsRUFBRTtRQUNGLE1BQU0sRUFBRSxPQUFPLENBQUMsVUFBVTtRQUMxQixRQUFRLEVBQUU7WUFDUixPQUFPLEVBQUUsZUFBZTtZQUN4QixHQUFHLFlBQVk7U0FDaEI7UUFDRCxHQUFHLFNBQVM7S0FDYixDQUFDO0lBQ0YsTUFBTSxhQUFhLEdBQVE7UUFDekIsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFO0tBQ2hCLENBQUM7SUFFRixNQUFNLE1BQU0sR0FBRyxNQUFNLFdBQVcsQ0FDOUIsTUFBTSxFQUNOLE9BQU8sQ0FBQyxTQUFTLElBQUksRUFBRSxFQUN2QixNQUFNLEVBQ04sYUFBYSxDQUNkLENBQUM7SUFFRixJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFFdEIsTUFBTSxXQUFXLEdBQUcsR0FBRyxFQUFFO1FBQ3ZCLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUNmLElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xCLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsQixDQUFDO0lBQ0gsQ0FBQyxDQUFDO0lBRUYsSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEIsT0FBTyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDbEMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDbkMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELDREQUE0RDtJQUM1RCxTQUFTLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQyxRQUFRLEtBQUssQ0FBQyxDQUFZLENBQUM7SUFFcEUsT0FBTztRQUNMLE9BQU8sRUFBRSxDQUFDLFNBQVM7S0FDcEIsQ0FBQztBQUNKLENBQUM7QUFFTSxLQUFLLFVBQVUsWUFBWSxDQUNoQyxPQUFxQjtJQUVyQiwyQ0FBMkM7SUFDM0MsTUFBTSxNQUFNLEdBQUcsMkNBQWEsZUFBZSxFQUFDLENBQUM7SUFDN0MsTUFBTSxTQUFTLEdBQXdCLEVBQUUsQ0FBQztJQUMxQyxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUUsTUFBYyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3JDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBSSxPQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBRUQsa0JBQWUsSUFBQSx5QkFBYSxFQUFDLGFBQWEsQ0FBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQnVpbGRlckNvbnRleHQsXG4gIEJ1aWxkZXJPdXRwdXQsXG4gIGNyZWF0ZUJ1aWxkZXIsXG59IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9hcmNoaXRlY3QnO1xuXG5pbXBvcnQgeyBWaXRlc3RTY2hlbWEgfSBmcm9tICcuL3NjaGVtYSc7XG5cbmFzeW5jIGZ1bmN0aW9uIHZpdGVzdEJ1aWxkZXIoXG4gIG9wdGlvbnM6IFZpdGVzdFNjaGVtYSxcbiAgY29udGV4dDogQnVpbGRlckNvbnRleHRcbik6IFByb21pc2U8QnVpbGRlck91dHB1dD4ge1xuICBwcm9jZXNzLmVudlsnVEVTVCddID0gJ3RydWUnO1xuICBwcm9jZXNzLmVudlsnVklURVNUJ10gPSAndHJ1ZSc7XG5cbiAgY29uc3QgeyBzdGFydFZpdGVzdCB9ID0gYXdhaXQgKEZ1bmN0aW9uKFxuICAgICdyZXR1cm4gaW1wb3J0KFwidml0ZXN0L25vZGVcIiknXG4gICkoKSBhcyBQcm9taXNlPHR5cGVvZiBpbXBvcnQoJ3ZpdGVzdC9ub2RlJyk+KTtcblxuICBjb25zdCBwcm9qZWN0Q29uZmlnID0gYXdhaXQgY29udGV4dC5nZXRQcm9qZWN0TWV0YWRhdGEoXG4gICAgY29udGV4dC50YXJnZXQgYXMgdW5rbm93biBhcyBzdHJpbmdcbiAgKTtcbiAgY29uc3QgeyBjb3ZlcmFnZUFyZ3MsIC4uLmV4dHJhQXJncyB9ID0gYXdhaXQgZ2V0RXh0cmFBcmdzKG9wdGlvbnMpO1xuICBjb25zdCB3YXRjaCA9IG9wdGlvbnMud2F0Y2ggPT09IHRydWU7XG4gIGNvbnN0IHVpID0gb3B0aW9ucy51aSA9PT0gdHJ1ZTtcbiAgY29uc3QgY292ZXJhZ2VFbmFibGVkID0gb3B0aW9ucy5jb3ZlcmFnZSA9PT0gdHJ1ZTtcbiAgY29uc3QgY29uZmlnID0ge1xuICAgIHJvb3Q6IGAke3Byb2plY3RDb25maWdbJ3Jvb3QnXSB8fCAnLid9YCxcbiAgICB3YXRjaCxcbiAgICB1aSxcbiAgICBjb25maWc6IG9wdGlvbnMuY29uZmlnRmlsZSxcbiAgICBjb3ZlcmFnZToge1xuICAgICAgZW5hYmxlZDogY292ZXJhZ2VFbmFibGVkLFxuICAgICAgLi4uY292ZXJhZ2VBcmdzLFxuICAgIH0sXG4gICAgLi4uZXh0cmFBcmdzLFxuICB9O1xuICBjb25zdCB2aXRlT3ZlcnJpZGVzOiBhbnkgPSB7XG4gICAgdGVzdDogeyB3YXRjaCB9LFxuICB9O1xuXG4gIGNvbnN0IHNlcnZlciA9IGF3YWl0IHN0YXJ0Vml0ZXN0KFxuICAgICd0ZXN0JyxcbiAgICBvcHRpb25zLnRlc3RGaWxlcyA/PyBbXSxcbiAgICBjb25maWcsXG4gICAgdml0ZU92ZXJyaWRlc1xuICApO1xuXG4gIGxldCBoYXNFcnJvcnMgPSBmYWxzZTtcblxuICBjb25zdCBwcm9jZXNzRXhpdCA9ICgpID0+IHtcbiAgICBzZXJ2ZXI/LmV4aXQoKTtcbiAgICBpZiAoaGFzRXJyb3JzKSB7XG4gICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHByb2Nlc3MuZXhpdCgwKTtcbiAgICB9XG4gIH07XG5cbiAgaWYgKG9wdGlvbnMud2F0Y2gpIHtcbiAgICBwcm9jZXNzLm9uKCdTSUdJTlQnLCBwcm9jZXNzRXhpdCk7XG4gICAgcHJvY2Vzcy5vbignU0lHVEVSTScsIHByb2Nlc3NFeGl0KTtcbiAgICBwcm9jZXNzLm9uKCdleGl0JywgcHJvY2Vzc0V4aXQpO1xuICB9XG5cbiAgLy8gdml0ZXN0IHNldHMgdGhlIGV4aXRDb2RlID0gMSB3aGVuIGNvZGUgY292ZXJhZ2UgaXNuJ3QgbWV0XG4gIGhhc0Vycm9ycyA9IChwcm9jZXNzLmV4aXRDb2RlICYmIHByb2Nlc3MuZXhpdENvZGUgIT09IDApIGFzIGJvb2xlYW47XG5cbiAgcmV0dXJuIHtcbiAgICBzdWNjZXNzOiAhaGFzRXJyb3JzLFxuICB9O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RXh0cmFBcmdzKFxuICBvcHRpb25zOiBWaXRlc3RTY2hlbWFcbik6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICAvLyBzdXBwb3J0IHBhc3NpbmcgZXh0cmEgYXJncyB0byBWaXRlc3QgQ0xJXG4gIGNvbnN0IHNjaGVtYSA9IGF3YWl0IGltcG9ydCgnLi9zY2hlbWEuanNvbicpO1xuICBjb25zdCBleHRyYUFyZ3M6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMob3B0aW9ucykpIHtcbiAgICBpZiAoIShzY2hlbWEgYXMgYW55KS5wcm9wZXJ0aWVzW2tleV0pIHtcbiAgICAgIGV4dHJhQXJnc1trZXldID0gKG9wdGlvbnMgYXMgYW55KVtrZXldO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBleHRyYUFyZ3M7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNyZWF0ZUJ1aWxkZXIodml0ZXN0QnVpbGRlcikgYXMgYW55O1xuIl19