@cdktn/commons 0.25.0-pre.53 → 0.25.0-pre.55

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/build/config.d.ts +5 -0
  2. package/build/config.d.ts.map +1 -1
  3. package/build/config.js +26 -1
  4. package/build/config.test.js +23 -1
  5. package/build/construct-maker-target.d.ts +2 -0
  6. package/build/construct-maker-target.d.ts.map +1 -1
  7. package/build/construct-maker-target.js +3 -1
  8. package/build/debug.js +11 -11
  9. package/build/debug.test.js +9 -2
  10. package/build/errors.d.ts +3 -0
  11. package/build/errors.d.ts.map +1 -1
  12. package/build/errors.js +31 -23
  13. package/build/errors.test.d.ts +2 -0
  14. package/build/errors.test.d.ts.map +1 -0
  15. package/build/errors.test.js +24 -0
  16. package/build/identity.d.ts +3 -0
  17. package/build/identity.d.ts.map +1 -0
  18. package/build/identity.js +88 -0
  19. package/build/index.d.ts +2 -1
  20. package/build/index.d.ts.map +1 -1
  21. package/build/index.js +3 -2
  22. package/build/process-state.d.ts +2 -0
  23. package/build/process-state.d.ts.map +1 -0
  24. package/build/process-state.js +15 -0
  25. package/build/telemetry.d.ts +24 -0
  26. package/build/telemetry.d.ts.map +1 -0
  27. package/build/telemetry.js +721 -0
  28. package/build/telemetry.test.d.ts +2 -0
  29. package/build/telemetry.test.d.ts.map +1 -0
  30. package/build/telemetry.test.js +1501 -0
  31. package/build/terraform.d.ts +10 -1
  32. package/build/terraform.d.ts.map +1 -1
  33. package/build/terraform.js +43 -8
  34. package/build/terraform.test.d.ts +2 -0
  35. package/build/terraform.test.d.ts.map +1 -0
  36. package/build/terraform.test.js +136 -0
  37. package/package.json +3 -3
  38. package/build/checkpoint.d.ts +0 -19
  39. package/build/checkpoint.d.ts.map +0 -1
  40. package/build/checkpoint.js +0 -185
package/build/debug.js CHANGED
@@ -333,7 +333,7 @@ async function getPackageVersion(language, packageName) {
333
333
  return libVersion !== null && libVersion !== void 0 ? libVersion : undefined;
334
334
  }
335
335
  async function collectDebugInformation() {
336
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
336
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
337
337
  const debugOutput = {};
338
338
  const language = getLanguage();
339
339
  debugOutput["language"] = language !== null && language !== void 0 ? language : null;
@@ -350,7 +350,7 @@ async function collectDebugInformation() {
350
350
  debugOutput["constructs"] = (_d = (await constructs)) !== null && _d !== void 0 ? _d : null;
351
351
  debugOutput["jsii"] = (_e = (await jsii)) !== null && _e !== void 0 ? _e : null;
352
352
  }
353
- debugOutput["terraform"] = await terraform_1.terraformVersion;
353
+ debugOutput["terraform"] = (_f = (await (0, terraform_1.terraformVersion)())) !== null && _f !== void 0 ? _f : null;
354
354
  debugOutput["arch"] = os.arch();
355
355
  debugOutput["os"] = `${os.platform()} ${os.release()}`;
356
356
  switch (language) {
@@ -359,9 +359,9 @@ async function collectDebugInformation() {
359
359
  const python = getPythonVersion();
360
360
  const pip = getPipVersion();
361
361
  const pipenv = getPipenvVersion();
362
- debugOutput["python"] = (_f = (await python)) !== null && _f !== void 0 ? _f : null;
363
- debugOutput["pip"] = (_g = (await pip)) !== null && _g !== void 0 ? _g : null;
364
- debugOutput["pipenv"] = (_h = (await pipenv)) !== null && _h !== void 0 ? _h : null;
362
+ debugOutput["python"] = (_g = (await python)) !== null && _g !== void 0 ? _g : null;
363
+ debugOutput["pip"] = (_h = (await pip)) !== null && _h !== void 0 ? _h : null;
364
+ debugOutput["pipenv"] = (_j = (await pipenv)) !== null && _j !== void 0 ? _j : null;
365
365
  }
366
366
  break;
367
367
  case "java":
@@ -369,18 +369,18 @@ async function collectDebugInformation() {
369
369
  const java = getJavaVersion();
370
370
  const maven = getMavenVersion();
371
371
  const gradle = getGradleVersion();
372
- debugOutput["java"] = (_j = (await java)) !== null && _j !== void 0 ? _j : null;
373
- debugOutput["maven"] = (_k = (await maven)) !== null && _k !== void 0 ? _k : null;
374
- debugOutput["gradle"] = (_l = (await gradle)) !== null && _l !== void 0 ? _l : null;
372
+ debugOutput["java"] = (_k = (await java)) !== null && _k !== void 0 ? _k : null;
373
+ debugOutput["maven"] = (_l = (await maven)) !== null && _l !== void 0 ? _l : null;
374
+ debugOutput["gradle"] = (_m = (await gradle)) !== null && _m !== void 0 ? _m : null;
375
375
  }
376
376
  break;
377
377
  case "csharp":
378
- debugOutput["dotnet"] = (_m = (await getDotnetVersion())) !== null && _m !== void 0 ? _m : null;
378
+ debugOutput["dotnet"] = (_o = (await getDotnetVersion())) !== null && _o !== void 0 ? _o : null;
379
379
  break;
380
380
  case "go":
381
- debugOutput["go"] = (_o = (await getGoVersion())) !== null && _o !== void 0 ? _o : null;
381
+ debugOutput["go"] = (_p = (await getGoVersion())) !== null && _p !== void 0 ? _p : null;
382
382
  break;
383
383
  }
384
384
  return debugOutput;
385
385
  }
386
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGVidWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFZQSxrQ0FXQztBQXNCRCw0Q0FFQztBQUVELHdDQUVDO0FBQ0QsMENBRUM7QUFFRCw0Q0FFQztBQUVELDRDQUtDO0FBQ0Qsc0NBRUM7QUFDRCw0Q0FFQztBQUVELG9DQUVDO0FBRUQsd0NBRUM7QUEwUkQsOENBb0JDO0FBRUQsMERBc0RDO0FBcmJELCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDbkMsMkNBQTZCO0FBQzdCLHVDQUF5QjtBQUN6Qix1Q0FBbUM7QUFDbkMsaUNBQThCO0FBQzlCLDJDQUErQztBQUMvQyx1Q0FBNEM7QUFDNUMsdUNBQXdDO0FBQ3hDLHFDQUFvRTtBQUNwRSxpRUFBa0U7QUFFbEUsU0FBZ0IsV0FBVyxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFO0lBQ3JELElBQUksQ0FBQztRQUNILE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQzFCLElBQUEsdUJBQVksRUFBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxZQUFZLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FDL0QsQ0FBQztRQUNGLE9BQU8sU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUM1QixDQUFDO0lBQUMsV0FBTSxDQUFDO1FBQ1AsaUNBQWlDO1FBQ2pDLGdCQUFNLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7QUFDSCxDQUFDO0FBRUQsS0FBSyxVQUFVLGdCQUFnQixDQUM3QixNQUFjLEVBQ2QsY0FBc0I7SUFFdEIsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBQ3RCLElBQUksQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFHLE1BQU0s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Y0FBYyxFQUFFLENBQUM7Z0JBQzlCLE1BQU0sS0FBSyxHQUFHLGVBQWUsRUFBRSxDQUFDO2dCQUNoQyxNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUNsQyxXQUFXLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBQSxDQUFDLE1BQU0sSUFBSSxDQUFDLG1DQUFJLElBQUksQ0FBQztnQkFDM0MsV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLE1BQUEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxtQ0FBSSxJQUFJLENBQUM7Z0JBQzdDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxNQUFBLENBQUMsTUFBTSxNQUFNLENBQUMsbUNBQUksSUFBSSxDQUFDO1lBQ2pELENBQUM7WUFDRCxNQUFNO1FBQ1IsS0FBSyxRQUFRO1lBQ1gsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLE1BQUEsQ0FBQyxNQUFNLGdCQUFnQixFQUFFLENBQUMsbUNBQUksSUFBSSxDQUFDO1lBQzNELE1BQU07UUFDUixLQUFLLElBQUk7WUFDUCxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBQSxDQUFDLE1BQU0sWUFBWSxFQUFFLENBQUMsbUNBQUksSUFBSSxDQUFDO1lBQ25ELE1BQU07SUFDVixDQUFDO0lBRUQsT0FBTyxXQUFXLENBQUM7QUFDckIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgKiBhcyBvcyBmcm9tIFwib3NcIjtcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gXCIuL2xvZ2dpbmdcIjtcbmltcG9ydCB7IGV4ZWMgfSBmcm9tIFwiLi91dGlsXCI7XG5pbXBvcnQgeyB0ZXJyYWZvcm1WZXJzaW9uIH0gZnJvbSBcIi4vdGVycmFmb3JtXCI7XG5pbXBvcnQgeyBESVNQTEFZX1ZFUlNJT04gfSBmcm9tIFwiLi92ZXJzaW9uXCI7XG5pbXBvcnQgeyByZWFkRmlsZVN5bmMgfSBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCB7IGdldEdyYWRsZVBhY2thZ2VWZXJzaW9uLCBpc0dyYWRsZVByb2plY3QgfSBmcm9tIFwiLi9ncmFkbGVcIjtcbmltcG9ydCB7IGRldGVjdE5vZGVQYWNrYWdlTWFuYWdlciB9IGZyb20gXCIuL25vZGUtcGFja2FnZS1tYW5hZ2VyXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMYW5ndWFnZShwcm9qZWN0UGF0aCA9IHByb2Nlc3MuY3dkKCkpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICB0cnkge1xuICAgIGNvbnN0IGNka3RmSnNvbiA9IEpTT04ucGFyc2UoXG4gICAgICByZWFkRmlsZVN5bmMocGF0aC5yZXNvbHZlKHByb2plY3RQYXRoLCBcImNka3RmLmpzb25cIiksIFwidXRmLThcIiksXG4gICAgKTtcbiAgICByZXR1cm4gY2RrdGZKc29uLmxhbmd1YWdlO1xuICB9IGNhdGNoIHtcbiAgICAvLyBXZSBjYW4gbm90IGRldGVjdCB0aGUgbGFuZ3VhZ2VcbiAgICBsb2dnZXIuZGVidWcoYFVuYWJsZSB0byBkZXRlY3QgbGFuZ3VhZ2UgaW4gJHtwcm9qZWN0UGF0aH1gKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEJpbmFyeVZlcnNpb24oXG4gIGJpbmFyeTogc3RyaW5nLFxuICB2ZXJzaW9uQ29tbWFuZDogc3RyaW5nLFxuKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgY29uc3Qgbm9PcCA9ICgpID0+IHt9O1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGV4ZWMoXG4gICAgICBiaW5hcnksXG4gICAgICBbdmVyc2lvbkNvbW1hbmRdLFxuICAgICAgeyBlbnY6IHByb2Nlc3MuZW52LCBzdGRpbzogW3VuZGVmaW5lZCwgdW5kZWZpbmVkLCBcImlnbm9yZVwiXSB9LFxuICAgICAgbm9PcCxcbiAgICAgIG5vT3AsXG4gICAgKTtcbiAgICByZXR1cm4gcmVzdWx0LnRyaW0oKS5yZXBsYWNlKC9cXHI/XFxufFxcci9nLCBcIlwiKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGxvZ2dlci5kZWJ1ZyhgRmFpbGVkIHRvIHJ1biAke2JpbmFyeX0gJHt2ZXJzaW9uQ29tbWFuZH06ICR7ZX1gKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREb3RuZXRWZXJzaW9uKCkge1xuICByZXR1cm4gZ2V0QmluYXJ5VmVyc2lvbihcImRvdG5ldFwiLCBcIi0tdmVyc2lvblwiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEphdmFWZXJzaW9uKCkge1xuICByZXR1cm4gZ2V0QmluYXJ5VmVyc2lvbihcImphdmFcIiwgXCItdmVyc2lvblwiKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRNYXZlblZlcnNpb24oKSB7XG4gIHJldHVybiBnZXRCaW5hcnlWZXJzaW9uKFwibXZuXCIsIFwiLS12ZXJzaW9uXCIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0R3JhZGxlVmVyc2lvbigpIHtcbiAgcmV0dXJuIGdldEJpbmFyeVZlcnNpb24oXCJncmFkbGVcIiwgXCItLXZlcnNpb25cIik7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRQeXRob25WZXJzaW9uKCkge1xuICByZXR1cm4gKFxuICAgIChhd2FpdCBnZXRCaW5hcnlWZXJzaW9uKFwicHl0aG9uM1wiLCBcIi0tdmVyc2lvblwiKSkgfHxcbiAgICAoYXdhaXQgZ2V0QmluYXJ5VmVyc2lvbihcInB5dGhvblwiLCBcIi0tdmVyc2lvblwiKSlcbiAgKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRQaXBWZXJzaW9uKCkge1xuICByZXR1cm4gZ2V0QmluYXJ5VmVyc2lvbihcInBpcFwiLCBcIi0tdmVyc2lvblwiKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRQaXBlbnZWZXJzaW9uKCkge1xuICByZXR1cm4gZ2V0QmluYXJ5VmVyc2lvbihcInBpcGVudlwiLCBcIi0tdmVyc2lvblwiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEdvVmVyc2lvbigpIHtcbiAgcmV0dXJuIGdldEJpbmFyeVZlcnNpb24oXCJnb1wiLCBcInZlcnNpb25cIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXROb2RlVmVyc2lvbigpIHtcbiAgcmV0dXJuIGdldEJpbmFyeVZlcnNpb24oXCJub2RlXCIsIFwiLS12ZXJzaW9uXCIpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXROb2RlTW9kdWxlVmVyc2lvbihcbiAgcGFja2FnZU5hbWU6IHN0cmluZyxcbik6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gIHJldHVybiBkZXRlY3ROb2RlUGFja2FnZU1hbmFnZXIocHJvY2Vzcy5jd2QoKSkgPT09IFwicG5wbVwiXG4gICAgPyBnZXRQbnBtTm9kZU1vZHVsZVZlcnNpb24ocGFja2FnZU5hbWUpXG4gICAgOiBnZXROcG1Ob2RlTW9kdWxlVmVyc2lvbihwYWNrYWdlTmFtZSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldFBucG1Ob2RlTW9kdWxlVmVyc2lvbihcbiAgcGFja2FnZU5hbWU6IHN0cmluZyxcbik6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gIGxldCBvdXRwdXQ7XG5cbiAgdHJ5IHtcbiAgICBvdXRwdXQgPSBhd2FpdCBleGVjKFwicG5wbVwiLCBbXCJsaXN0XCIsIHBhY2thZ2VOYW1lLCBcIi0tanNvblwiXSwge1xuICAgICAgZW52OiB7IC4uLnByb2Nlc3MuZW52IH0sXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2dnZXIuZGVidWcoYFVuYWJsZSB0byBydW4gJ3BucG0gbGlzdCAke3BhY2thZ2VOYW1lfSAtLWpzb24nOiAke2V9YCk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGxldCBqc29uO1xuICB0cnkge1xuICAgIGpzb24gPSBKU09OLnBhcnNlKG91dHB1dCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2dnZXIuZGVidWcoXG4gICAgICBgVW5hYmxlIHRvIHBhcnNlIG91dHB1dCBvZiAncG5wbSBsaXN0ICR7cGFja2FnZU5hbWV9IC0tanNvbic6ICR7ZX1gLFxuICAgICk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmIChcbiAgICAhanNvbiB8fFxuICAgICFBcnJheS5pc0FycmF5KGpzb24pIHx8XG4gICAganNvbi5sZW5ndGggPT09IDAgfHxcbiAgICAhanNvblswXT8uZGVwZW5kZW5jaWVzPy5bcGFja2FnZU5hbWVdPy52ZXJzaW9uXG4gICkge1xuICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBVbmFibGUgdG8gZmluZCAnJHtwYWNrYWdlTmFtZX0nIGluICdwbnBtIGxpc3QgJHtwYWNrYWdlTmFtZX0gLS1qc29uJzogJHtvdXRwdXR9YCxcbiAgICApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICByZXR1cm4ganNvblswXS5kZXBlbmRlbmNpZXNbcGFja2FnZU5hbWVdLnZlcnNpb247XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldE5wbU5vZGVNb2R1bGVWZXJzaW9uKFxuICBwYWNrYWdlTmFtZTogc3RyaW5nLFxuKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgbGV0IG91dHB1dDtcblxuICB0cnkge1xuICAgIG91dHB1dCA9IGF3YWl0IGV4ZWMoXG4gICAgICBcIm5wbVwiLFxuICAgICAgW1wibGlzdFwiLCBwYWNrYWdlTmFtZSwgXCItLWpzb25cIiwgXCItLWluY2x1ZGU9ZGV2XCJdLFxuICAgICAge1xuICAgICAgICBlbnY6IHsgLi4ucHJvY2Vzcy5lbnYgfSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGxvZ2dlci5kZWJ1ZyhgVW5hYmxlIHRvIHJ1biAnbnBtIGxpc3QgJHtwYWNrYWdlTmFtZX0gLS1qc29uJzogJHtlfWApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBsZXQganNvbjtcbiAgdHJ5IHtcbiAgICBqc29uID0gSlNPTi5wYXJzZShvdXRwdXQpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgYFVuYWJsZSB0byBwYXJzZSBvdXRwdXQgb2YgJ25wbSBsaXN0ICR7cGFja2FnZU5hbWV9IC0tanNvbic6ICR7ZX1gLFxuICAgICk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmIChcbiAgICAhanNvbi5kZXBlbmRlbmNpZXMgfHxcbiAgICAhanNvbi5kZXBlbmRlbmNpZXNbcGFja2FnZU5hbWVdIHx8XG4gICAgIWpzb24uZGVwZW5kZW5jaWVzW3BhY2thZ2VOYW1lXS52ZXJzaW9uXG4gICkge1xuICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBVbmFibGUgdG8gZmluZCAnJHtwYWNrYWdlTmFtZX0nIGluICducG0gbGlzdCAke3BhY2thZ2VOYW1lfSAtLWpzb24nOiAke291dHB1dH1gLFxuICAgICk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJldHVybiBqc29uLmRlcGVuZGVuY2llc1twYWNrYWdlTmFtZV0udmVyc2lvbjtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0UHl0aG9uUGFja2FnZVZlcnNpb24oXG4gIHBhY2thZ2VOYW1lOiBzdHJpbmcsXG4pOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICBsZXQgb3V0cHV0O1xuICB0cnkge1xuICAgIG91dHB1dCA9IGF3YWl0IGV4ZWMoXCJwaXBlbnZcIiwgW1wicnVuXCIsIFwicGlwXCIsIFwic2hvd1wiLCBcIi1xcVwiLCBwYWNrYWdlTmFtZV0sIHtcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgfSk7XG5cbiAgICAvLyBSdW5uaW5nIHdpdGggYC1xcWAgc3VwcHJlc3NlcyBib3RoIG1pc3NpbmcgcGFja2FnZXMgYW5kIGFjdHVhbCBwYWNrYWdlXG4gICAgb3V0cHV0ID0gYXdhaXQgZXhlYyhcInBpcGVudlwiLCBbXCJydW5cIiwgXCJwaXBcIiwgXCJzaG93XCIsIHBhY2thZ2VOYW1lXSwge1xuICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGxvZ2dlci5kZWJ1ZyhgVW5hYmxlIHRvIHJ1biAncGlwZW52IHJ1biBwaXAgc2hvdyAke3BhY2thZ2VOYW1lfSc6ICR7ZX1gKTtcbiAgfVxuXG4gIC8vIElmIHdlIGNvdWxkbid0IGdldCB0aGUgb3V0cHV0IHVzaW5nIHBpcGVudiwgdHJ5IHRvIGdldCBpdCB1c2luZyBwaXAgZGlyZWN0bHlcbiAgaWYgKCFvdXRwdXQpIHtcbiAgICB0cnkge1xuICAgICAgb3V0cHV0ID0gYXdhaXQgZXhlYyhcInBpcFwiLCBbXCJzaG93XCIsIFwiLXFxXCIsIHBhY2thZ2VOYW1lXSwge1xuICAgICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgfSk7XG5cbiAgICAgIC8vIFJ1bm5pbmcgd2l0aCBgLXFxYCBzdXBwcmVzc2VzIGJvdGggbWlzc2luZyBwYWNrYWdlcyBhbmQgYWN0dWFsIHBhY2thZ2VcbiAgICAgIG91dHB1dCA9IGF3YWl0IGV4ZWMoXCJwaXBcIiwgW1wic2hvd1wiLCBwYWNrYWdlTmFtZV0sIHtcbiAgICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhgVW5hYmxlIHRvIHJ1biAncGlwIHNob3cgJHtwYWNrYWdlTmFtZX0nOiAke2V9YCk7XG4gICAgfVxuICB9XG5cbiAgaWYgKCFvdXRwdXQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgdmVyc2lvbkluZm8gPSBvdXRwdXRcbiAgICAuc3BsaXQoL1xcclxcbnxcXHJ8XFxuLylcbiAgICAuZmluZCgobGluZSkgPT4gbGluZS5zdGFydHNXaXRoKFwiVmVyc2lvbjpcIikpO1xuXG4gIGlmICghdmVyc2lvbkluZm8pIHtcbiAgICBsb2dnZXIuZGVidWcoXG4gICAgICBgVW5hYmxlIHRvIGZpbmQgdmVyc2lvbiBpbiBvdXRwdXQgb2YgJ3BpcGVudiBydW4gcGlwIHNob3cgJHtwYWNrYWdlTmFtZX0nIC8gJ3BpcCBzaG93ICR7cGFja2FnZU5hbWV9JzogJHtvdXRwdXR9YCxcbiAgICApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCB2ZXJzaW9uID0gdmVyc2lvbkluZm8uc3BsaXQoXCI6XCIpWzFdLnRyaW0oKTtcbiAgcmV0dXJuIHZlcnNpb247XG59XG5cbi8vIE9uY2UgaHR0cHM6Ly9naXRodWIuY29tL051R2V0L0hvbWUvaXNzdWVzLzc3NTIgZ2V0cyByZXNvbHZlZCB3ZSBjYW4gYWxzbyB0cnkgd2l0aCAtLWpzb25cbmFzeW5jIGZ1bmN0aW9uIGdldENTaGFycFBhY2thZ2VWZXJzaW9uKHBhY2thZ2VOYW1lOiBzdHJpbmcpIHtcbiAgY29uc3QgdHJhbnNsYXRpb25NYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAganNpaTogXCJBbWF6b24uSlNJSS5SdW50aW1lXCIsXG4gICAgY29uc3RydWN0czogXCJDb25zdHJ1Y3RzXCIsXG4gICAgY2RrdGY6IFwiSGFzaGlDb3JwLkNka3RmXCIsXG4gICAgY2RrdG46IFwiSW8uQ2RrdG5cIixcbiAgfTtcbiAgY29uc3QgY1NoYXJwUGFja2FnZU5hbWUgPSB0cmFuc2xhdGlvbk1hcFtwYWNrYWdlTmFtZV0gfHwgcGFja2FnZU5hbWU7XG5cbiAgbGV0IG91dHB1dDtcbiAgdHJ5IHtcbiAgICBvdXRwdXQgPSBhd2FpdCBleGVjKFwiZG90bmV0XCIsIFtcImxpc3RcIiwgXCJwYWNrYWdlXCIsIFwiLS1pbmNsdWRlLXRyYW5zaXRpdmVcIl0sIHtcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2dnZXIuZGVidWcoXG4gICAgICBgVW5hYmxlIHRvIHJ1biAnZG90bmV0IGxpc3QgcGFja2FnZSAtLWluY2x1ZGUtdHJhbnNpdGl2ZSc6ICR7ZX1gLFxuICAgICk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IHZlcnNpb25MaW5lID0gb3V0cHV0XG4gICAgLnNwbGl0KC9cXHJcXG58XFxyfFxcbi8pXG4gICAgLmZpbmQoKGxpbmUpID0+IGxpbmUuaW5jbHVkZXMoYD4gJHtjU2hhcnBQYWNrYWdlTmFtZX1gKSk7XG5cbiAgaWYgKCF2ZXJzaW9uTGluZSkge1xuICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBVbmFibGUgdG8gZmluZCB2ZXJzaW9uIGZvciAnJHtjU2hhcnBQYWNrYWdlTmFtZX0nIGluIG91dHB1dCBvZiAnZG90bmV0IGxpc3QgcGFja2FnZSAtLWluY2x1ZGUtdHJhbnNpdGl2ZSc6ICR7b3V0cHV0fWAsXG4gICAgKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLy8gQSBsaW5lIG1pZ2h0IGxvb2sgbGlrZSB0aGlzOlxuICAvLyAgIFRyYW5zaXRpdmUgUGFja2FnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvbHZlZFxuICAvLyAgID4gQW1hem9uLkpTSUkuUnVudGltZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjE3LjFcbiAgLy8gVGhlcmVmb3JlIHdlIHJldmVyc2Ugc3BsaXQgYnkgd2hpdGVzcGFjZSBhbmQgcmV2ZXJzZVxuICAvLyBzbyB0aGF0IHRoZSBmaXJzdCB0aGluZyB3ZSBmaW5kIGlzIHRoZSB2ZXJzaW9uIG51bWJlclxuICByZXR1cm4gdmVyc2lvbkxpbmVcbiAgICAuc3BsaXQoXCIgXCIpXG4gICAgLnJldmVyc2UoKVxuICAgIC5maW5kKChwYXJ0KSA9PiBwYXJ0ICE9PSBcIlwiKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0R29QYWNrYWdlVmVyc2lvbihwYWNrYWdlTmFtZTogc3RyaW5nKSB7XG4gIGNvbnN0IHRyYW5zbGF0aW9uTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgIGpzaWk6IFwianNpaS1ydW50aW1lLWdvXCIsXG4gICAgY2RrdGY6IFwiZ2l0aHViLmNvbS9oYXNoaWNvcnAvdGVycmFmb3JtLWNkay1nb1wiLFxuICAgIGNka3RuOiBcImdpdGh1Yi5jb20vb3Blbi1jb25zdHJ1Y3RzL2Nkay10ZXJyYWluLWdvXCIsXG4gIH07XG4gIGNvbnN0IGdvUGFja2FnZU5hbWUgPSB0cmFuc2xhdGlvbk1hcFtwYWNrYWdlTmFtZV0gfHwgcGFja2FnZU5hbWU7XG5cbiAgbGV0IG91dHB1dDtcbiAgdHJ5IHtcbiAgICBvdXRwdXQgPSBhd2FpdCBleGVjKFwiZ29cIiwgW1wibGlzdFwiLCBcIi1tXCIsIFwiYWxsXCJdLCB7XG4gICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgIH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgbG9nZ2VyLmRlYnVnKGBVbmFibGUgdG8gcnVuICdnbyBsaXN0IC1tIGFsbCc6ICR7ZX1gKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgbGV0IHZlcnNpb25MaW5lID0gb3V0cHV0XG4gICAgLnNwbGl0KC9cXHJcXG58XFxyfFxcbi8pXG4gICAgLmZpbmQoKGxpbmUpID0+IGxpbmUuaW5jbHVkZXMoZ29QYWNrYWdlTmFtZSkpO1xuXG4gIGlmICghdmVyc2lvbkxpbmUpIHtcbiAgICBsb2dnZXIuZGVidWcoXG4gICAgICBgVW5hYmxlIHRvIGZpbmQgdmVyc2lvbiBmb3IgJyR7Z29QYWNrYWdlTmFtZX0nIGluIG91dHB1dCBvZiAnZ28gbGlzdCAtbSBhbGwnOiAke291dHB1dH1gLFxuICAgICk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8vIFdlIGFyZSBkZWFsaW5nIHdpdGggYSBsb2NhbCB2ZXJzaW9uXG4gIGlmICh2ZXJzaW9uTGluZS5pbmNsdWRlcyhcIj0+XCIpKSB7XG4gICAgbG9nZ2VyLmRlYnVnKGBGb3VuZCBsb2NhbCB2ZXJzaW9uIGZvciAnJHtnb1BhY2thZ2VOYW1lfSc6ICR7dmVyc2lvbkxpbmV9YCk7XG4gICAgdmVyc2lvbkxpbmUgPSB2ZXJzaW9uTGluZS5zcGxpdChcIj0+XCIpWzBdLnRyaW0oKTtcbiAgfVxuXG4gIHJldHVybiB2ZXJzaW9uTGluZS5zcGxpdChcIiBcIikucG9wKCk/LnJlcGxhY2UoXCJ2XCIsIFwiXCIpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRNYXZlblBhY2thZ2VWZXJzaW9uKHBhY2thZ2VOYW1lOiBzdHJpbmcpIHtcbiAgY29uc3QgdHJhbnNsYXRpb25NYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAganNpaTogXCJqc2lpLXJ1bnRpbWVcIixcbiAgfTtcbiAgY29uc3QgamF2YVBhY2thZ2VOYW1lID0gdHJhbnNsYXRpb25NYXBbcGFja2FnZU5hbWVdIHx8IHBhY2thZ2VOYW1lO1xuXG4gIGxldCBvdXRwdXQ7XG4gIHRyeSB7XG4gICAgb3V0cHV0ID0gYXdhaXQgZXhlYyhcIm12blwiLCBbXCJkZXBlbmRlbmN5Omxpc3RcIl0sIHtcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2dnZXIuZGVidWcoYFVuYWJsZSB0byBydW4gJ212biBkZXBlbmRlbmN5Omxpc3QnOiAke2V9YCk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IHJlc29sdXRpb25QYXJ0ID0gb3V0cHV0LnNwbGl0KFxuICAgIFwiVGhlIGZvbGxvd2luZyBmaWxlcyBoYXZlIGJlZW4gcmVzb2x2ZWRcIixcbiAgKVsxXTtcbiAgaWYgKCFyZXNvbHV0aW9uUGFydCkge1xuICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBVbmFibGUgdG8gZmluZCByZXNvbHV0aW9uIHBhc3NhZ2UgaW4gb3V0cHV0IG9mICdtdm4gZGVwZW5kZW5jeTpsaXN0JzogJHtvdXRwdXR9YCxcbiAgICApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyBXZSBuZWVkIHRvIHNlYXJjaCBmb3IgdGhlIHBhY2thZ2UgbmFtZSBBTkQgYSBjb2xvbiB0byBub3QgbWF0Y2ggYSBsaW5lIGxpa2VcbiAgLy8gW0lORk9dICAgIGNvbS5oYXNoaWNvcnA6Y2RrdGYtcHJvdmlkZXItYXdzOmphcjo5LjAuOTpjb21waWxlXG4gIC8vIHdoZW4gbG9va2luZyBmb3IgdGhlIGNka3RmIHBhY2thZ2UgKHNlZSBHaXRodWIgaXNzdWUgIzE5OTQpXG4gIGNvbnN0IHZlcnNpb25MaW5lID0gcmVzb2x1dGlvblBhcnRcbiAgICAuc3BsaXQoL1xcclxcbnxcXHJ8XFxuLylcbiAgICAuZmluZCgobGluZSkgPT4gbGluZS5pbmNsdWRlcyhgJHtqYXZhUGFja2FnZU5hbWV9OmApKTtcblxuICBpZiAoIXZlcnNpb25MaW5lKSB7XG4gICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgYFVuYWJsZSB0byBmaW5kIHZlcnNpb24gZm9yICcke2phdmFQYWNrYWdlTmFtZX0nIGluIG91dHB1dCBvZiAnbXZuIGRlcGVuZGVuY3k6bGlzdCc6ICR7b3V0cHV0fWAsXG4gICAgKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLy8gRXhhbXBsZSBsaW5lOiBbSU5GT10gICAgY29tLmhhc2hpY29ycDpjZGt0ZjpqYXI6MC4wLjA6Y29tcGlsZVxuICBjb25zdCB2ZXJzaW9uU3RhcnREZWxpbWl0ZXIgPSBgJHtqYXZhUGFja2FnZU5hbWV9OmphcjpgO1xuICBjb25zdCB2ZXJzaW9uU3RhcnQgPVxuICAgIHZlcnNpb25MaW5lLmluZGV4T2YodmVyc2lvblN0YXJ0RGVsaW1pdGVyKSArIHZlcnNpb25TdGFydERlbGltaXRlci5sZW5ndGg7XG4gIGNvbnN0IHZlcnNpb25FbmREZWxlbWl0ZXIgPSBcIjpjb21waWxlXCI7XG4gIGNvbnN0IHZlcnNpb25FbmQgPSB2ZXJzaW9uTGluZS5pbmRleE9mKHZlcnNpb25FbmREZWxlbWl0ZXIpO1xuICByZXR1cm4gdmVyc2lvbkxpbmUuc3Vic3RyaW5nKHZlcnNpb25TdGFydCwgdmVyc2lvbkVuZCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEphdmFQYWNrYWdlVmVyc2lvbihwYWNrYWdlTmFtZTogc3RyaW5nKSB7XG4gIGlmIChpc0dyYWRsZVByb2plY3QoXCIuL1wiKSkge1xuICAgIHJldHVybiBnZXRHcmFkbGVQYWNrYWdlVmVyc2lvbihwYWNrYWdlTmFtZSk7XG4gIH1cblxuICByZXR1cm4gZ2V0TWF2ZW5QYWNrYWdlVmVyc2lvbihwYWNrYWdlTmFtZSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRQYWNrYWdlVmVyc2lvbihcbiAgbGFuZ3VhZ2U6IHN0cmluZyxcbiAgcGFja2FnZU5hbWU6IHN0cmluZyxcbik6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gIGNvbnN0IG5vT3AgPSBhc3luYyAoKSA9PiB1bmRlZmluZWQ7XG4gIGNvbnN0IGdldExpYnJhcnlWZXJzaW9uTWFwOiBSZWNvcmQ8XG4gICAgc3RyaW5nLFxuICAgIChuYW1lOiBzdHJpbmcpID0+IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPlxuICA+ID0ge1xuICAgIHR5cGVzY3JpcHQ6IGdldE5vZGVNb2R1bGVWZXJzaW9uLFxuICAgIHB5dGhvbjogZ2V0UHl0aG9uUGFja2FnZVZlcnNpb24sXG4gICAgZ286IGdldEdvUGFja2FnZVZlcnNpb24sXG4gICAgY3NoYXJwOiBnZXRDU2hhcnBQYWNrYWdlVmVyc2lvbixcbiAgICBqYXZhOiBnZXRKYXZhUGFja2FnZVZlcnNpb24sXG4gIH07XG5cbiAgY29uc3QgbGliVmVyc2lvbiA9IGF3YWl0IChnZXRMaWJyYXJ5VmVyc2lvbk1hcFtsYW5ndWFnZV0gfHwgbm9PcCkoXG4gICAgcGFja2FnZU5hbWUsXG4gICk7XG4gIHJldHVybiBsaWJWZXJzaW9uID8/IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNvbGxlY3REZWJ1Z0luZm9ybWF0aW9uKCkge1xuICBjb25zdCBkZWJ1Z091dHB1dDogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVsbD4gPSB7fTtcbiAgY29uc3QgbGFuZ3VhZ2UgPSBnZXRMYW5ndWFnZSgpO1xuICBkZWJ1Z091dHB1dFtcImxhbmd1YWdlXCJdID0gbGFuZ3VhZ2UgPz8gbnVsbDtcbiAgZGVidWdPdXRwdXRbXCJjZGt0bi1jbGlcIl0gPSBESVNQTEFZX1ZFUlNJT047XG5cbiAgY29uc3Qgbm9kZSA9IGdldE5vZGVWZXJzaW9uKCk7XG5cbiAgZGVidWdPdXRwdXRbXCJub2RlXCJdID0gKGF3YWl0IG5vZGUpID8/IG51bGw7XG4gIGlmIChsYW5ndWFnZSkge1xuICAgIGNvbnN0IGNka3RuID0gZ2V0UGFja2FnZVZlcnNpb24obGFuZ3VhZ2UsIFwiY2RrdG5cIik7XG4gICAgY29uc3QgY2RrdGYgPSBnZXRQYWNrYWdlVmVyc2lvbihsYW5ndWFnZSwgXCJjZGt0ZlwiKTtcbiAgICBjb25zdCBjb25zdHJ1Y3RzID0gZ2V0UGFja2FnZVZlcnNpb24obGFuZ3VhZ2UsIFwiY29uc3RydWN0c1wiKTtcbiAgICBjb25zdCBqc2lpID0gZ2V0UGFja2FnZVZlcnNpb24obGFuZ3VhZ2UsIFwianNpaVwiKTtcblxuICAgIGRlYnVnT3V0cHV0W1wiY2RrdG5cIl0gPSAoYXdhaXQgY2RrdG4pID8/IG51bGw7XG4gICAgZGVidWdPdXRwdXRbXCJjZGt0ZlwiXSA9IChhd2FpdCBjZGt0ZikgPz8gbnVsbDtcbiAgICBkZWJ1Z091dHB1dFtcImNvbnN0cnVjdHNcIl0gPSAoYXdhaXQgY29uc3RydWN0cykgPz8gbnVsbDtcbiAgICBkZWJ1Z091dHB1dFtcImpzaWlcIl0gPSAoYXdhaXQganNpaSkgPz8gbnVsbDtcbiAgfVxuICBkZWJ1Z091dHB1dFtcInRlcnJhZm9ybVwiXSA9IGF3YWl0IHRlcnJhZm9ybVZlcnNpb247XG4gIGRlYnVnT3V0cHV0W1wiYXJjaFwiXSA9IG9zLmFyY2goKTtcbiAgZGVidWdPdXRwdXRbXCJvc1wiXSA9IGAke29zLnBsYXRmb3JtKCl9ICR7b3MucmVsZWFzZSgpfWA7XG5cbiAgc3dpdGNoIChsYW5ndWFnZSkge1xuICAgIGNhc2UgXCJweXRob25cIjpcbiAgICAgIHtcbiAgICAgICAgY29uc3QgcHl0aG9uID0gZ2V0UHl0aG9uVmVyc2lvbigpO1xuICAgICAgICBjb25zdCBwaXAgPSBnZXRQaXBWZXJzaW9uKCk7XG4gICAgICAgIGNvbnN0IHBpcGVudiA9IGdldFBpcGVudlZlcnNpb24oKTtcbiAgICAgICAgZGVidWdPdXRwdXRbXCJweXRob25cIl0gPSAoYXdhaXQgcHl0aG9uKSA/PyBudWxsO1xuICAgICAgICBkZWJ1Z091dHB1dFtcInBpcFwiXSA9IChhd2FpdCBwaXApID8/IG51bGw7XG4gICAgICAgIGRlYnVnT3V0cHV0W1wicGlwZW52XCJdID0gKGF3YWl0IHBpcGVudikgPz8gbnVsbDtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJqYXZhXCI6XG4gICAgICB7XG4gICAgICAgIGNvbnN0IGphdmEgPSBnZXRKYXZhVmVyc2lvbigpO1xuICAgICAgICBjb25zdCBtYXZlbiA9IGdldE1hdmVuVmVyc2lvbigpO1xuICAgICAgICBjb25zdCBncmFkbGUgPSBnZXRHcmFkbGVWZXJzaW9uKCk7XG4gICAgICAgIGRlYnVnT3V0cHV0W1wiamF2YVwiXSA9IChhd2FpdCBqYXZhKSA/PyBudWxsO1xuICAgICAgICBkZWJ1Z091dHB1dFtcIm1hdmVuXCJdID0gKGF3YWl0IG1hdmVuKSA/PyBudWxsO1xuICAgICAgICBkZWJ1Z091dHB1dFtcImdyYWRsZVwiXSA9IChhd2FpdCBncmFkbGUpID8/IG51bGw7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlIFwiY3NoYXJwXCI6XG4gICAgICBkZWJ1Z091dHB1dFtcImRvdG5ldFwiXSA9IChhd2FpdCBnZXREb3RuZXRWZXJzaW9uKCkpID8/IG51bGw7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFwiZ29cIjpcbiAgICAgIGRlYnVnT3V0cHV0W1wiZ29cIl0gPSAoYXdhaXQgZ2V0R29WZXJzaW9uKCkpID8/IG51bGw7XG4gICAgICBicmVhaztcbiAgfVxuXG4gIHJldHVybiBkZWJ1Z091dHB1dDtcbn1cbiJdfQ==
386
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGVidWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFZQSxrQ0FXQztBQXNCRCw0Q0FFQztBQUVELHdDQUVDO0FBQ0QsMENBRUM7QUFFRCw0Q0FFQztBQUVELDRDQUtDO0FBQ0Qsc0NBRUM7QUFDRCw0Q0FFQztBQUVELG9DQUVDO0FBRUQsd0NBRUM7QUEwUkQsOENBb0JDO0FBRUQsMERBc0RDO0FBcmJELCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDbkMsMkNBQTZCO0FBQzdCLHVDQUF5QjtBQUN6Qix1Q0FBbUM7QUFDbkMsaUNBQThCO0FBQzlCLDJDQUErQztBQUMvQyx1Q0FBNEM7QUFDNUMsdUNBQXdDO0FBQ3hDLHFDQUFvRTtBQUNwRSxpRUFBa0U7QUFFbEUsU0FBZ0IsV0FBVyxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFO0lBQ3JELElBQUksQ0FBQztRQUNILE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQzFCLElBQUEsdUJBQVksRUFBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxZQUFZLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FDL0QsQ0FBQztRQUNGLE9BQU8sU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUM1QixDQUFDO0lBQUMsV0FBTSxDQUFDO1FBQ1AsaUNBQWlDO1FBQ2pDLGdCQUFNLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7QUFDSCxDQUFDO0FBRUQsS0FBSyxVQUFVLGdCQUFnQixDQUM3QixNQUFjLEVBQ2QsY0FBc0I7SUFFdEIsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBQ3RCLElBQUksQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFHLE1BQU0s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TUFBTTtZQUNULENBQUM7Z0JBQ0MsTUFBTSxJQUFJLEdBQUcsY0FBYyxFQUFFLENBQUM7Z0JBQzlCLE1BQU0sS0FBSyxHQUFHLGVBQWUsRUFBRSxDQUFDO2dCQUNoQyxNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUNsQyxXQUFXLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBQSxDQUFDLE1BQU0sSUFBSSxDQUFDLG1DQUFJLElBQUksQ0FBQztnQkFDM0MsV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLE1BQUEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxtQ0FBSSxJQUFJLENBQUM7Z0JBQzdDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxNQUFBLENBQUMsTUFBTSxNQUFNLENBQUMsbUNBQUksSUFBSSxDQUFDO1lBQ2pELENBQUM7WUFDRCxNQUFNO1FBQ1IsS0FBSyxRQUFRO1lBQ1gsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLE1BQUEsQ0FBQyxNQUFNLGdCQUFnQixFQUFFLENBQUMsbUNBQUksSUFBSSxDQUFDO1lBQzNELE1BQU07UUFDUixLQUFLLElBQUk7WUFDUCxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBQSxDQUFDLE1BQU0sWUFBWSxFQUFFLENBQUMsbUNBQUksSUFBSSxDQUFDO1lBQ25ELE1BQU07SUFDVixDQUFDO0lBRUQsT0FBTyxXQUFXLENBQUM7QUFDckIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgKiBhcyBvcyBmcm9tIFwib3NcIjtcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gXCIuL2xvZ2dpbmdcIjtcbmltcG9ydCB7IGV4ZWMgfSBmcm9tIFwiLi91dGlsXCI7XG5pbXBvcnQgeyB0ZXJyYWZvcm1WZXJzaW9uIH0gZnJvbSBcIi4vdGVycmFmb3JtXCI7XG5pbXBvcnQgeyBESVNQTEFZX1ZFUlNJT04gfSBmcm9tIFwiLi92ZXJzaW9uXCI7XG5pbXBvcnQgeyByZWFkRmlsZVN5bmMgfSBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCB7IGdldEdyYWRsZVBhY2thZ2VWZXJzaW9uLCBpc0dyYWRsZVByb2plY3QgfSBmcm9tIFwiLi9ncmFkbGVcIjtcbmltcG9ydCB7IGRldGVjdE5vZGVQYWNrYWdlTWFuYWdlciB9IGZyb20gXCIuL25vZGUtcGFja2FnZS1tYW5hZ2VyXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMYW5ndWFnZShwcm9qZWN0UGF0aCA9IHByb2Nlc3MuY3dkKCkpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICB0cnkge1xuICAgIGNvbnN0IGNka3RmSnNvbiA9IEpTT04ucGFyc2UoXG4gICAgICByZWFkRmlsZVN5bmMocGF0aC5yZXNvbHZlKHByb2plY3RQYXRoLCBcImNka3RmLmpzb25cIiksIFwidXRmLThcIiksXG4gICAgKTtcbiAgICByZXR1cm4gY2RrdGZKc29uLmxhbmd1YWdlO1xuICB9IGNhdGNoIHtcbiAgICAvLyBXZSBjYW4gbm90IGRldGVjdCB0aGUgbGFuZ3VhZ2VcbiAgICBsb2dnZXIuZGVidWcoYFVuYWJsZSB0byBkZXRlY3QgbGFuZ3VhZ2UgaW4gJHtwcm9qZWN0UGF0aH1gKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEJpbmFyeVZlcnNpb24oXG4gIGJpbmFyeTogc3RyaW5nLFxuICB2ZXJzaW9uQ29tbWFuZDogc3RyaW5nLFxuKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgY29uc3Qgbm9PcCA9ICgpID0+IHt9O1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGV4ZWMoXG4gICAgICBiaW5hcnksXG4gICAgICBbdmVyc2lvbkNvbW1hbmRdLFxuICAgICAgeyBlbnY6IHByb2Nlc3MuZW52LCBzdGRpbzogW3VuZGVmaW5lZCwgdW5kZWZpbmVkLCBcImlnbm9yZVwiXSB9LFxuICAgICAgbm9PcCxcbiAgICAgIG5vT3AsXG4gICAgKTtcbiAgICByZXR1cm4gcmVzdWx0LnRyaW0oKS5yZXBsYWNlKC9cXHI/XFxufFxcci9nLCBcIlwiKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGxvZ2dlci5kZWJ1ZyhgRmFpbGVkIHRvIHJ1biAke2JpbmFyeX0gJHt2ZXJzaW9uQ29tbWFuZH06ICR7ZX1gKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREb3RuZXRWZXJzaW9uKCkge1xuICByZXR1cm4gZ2V0QmluYXJ5VmVyc2lvbihcImRvdG5ldFwiLCBcIi0tdmVyc2lvblwiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEphdmFWZXJzaW9uKCkge1xuICByZXR1cm4gZ2V0QmluYXJ5VmVyc2lvbihcImphdmFcIiwgXCItdmVyc2lvblwiKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRNYXZlblZlcnNpb24oKSB7XG4gIHJldHVybiBnZXRCaW5hcnlWZXJzaW9uKFwibXZuXCIsIFwiLS12ZXJzaW9uXCIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0R3JhZGxlVmVyc2lvbigpIHtcbiAgcmV0dXJuIGdldEJpbmFyeVZlcnNpb24oXCJncmFkbGVcIiwgXCItLXZlcnNpb25cIik7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRQeXRob25WZXJzaW9uKCkge1xuICByZXR1cm4gKFxuICAgIChhd2FpdCBnZXRCaW5hcnlWZXJzaW9uKFwicHl0aG9uM1wiLCBcIi0tdmVyc2lvblwiKSkgfHxcbiAgICAoYXdhaXQgZ2V0QmluYXJ5VmVyc2lvbihcInB5dGhvblwiLCBcIi0tdmVyc2lvblwiKSlcbiAgKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRQaXBWZXJzaW9uKCkge1xuICByZXR1cm4gZ2V0QmluYXJ5VmVyc2lvbihcInBpcFwiLCBcIi0tdmVyc2lvblwiKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRQaXBlbnZWZXJzaW9uKCkge1xuICByZXR1cm4gZ2V0QmluYXJ5VmVyc2lvbihcInBpcGVudlwiLCBcIi0tdmVyc2lvblwiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEdvVmVyc2lvbigpIHtcbiAgcmV0dXJuIGdldEJpbmFyeVZlcnNpb24oXCJnb1wiLCBcInZlcnNpb25cIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXROb2RlVmVyc2lvbigpIHtcbiAgcmV0dXJuIGdldEJpbmFyeVZlcnNpb24oXCJub2RlXCIsIFwiLS12ZXJzaW9uXCIpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXROb2RlTW9kdWxlVmVyc2lvbihcbiAgcGFja2FnZU5hbWU6IHN0cmluZyxcbik6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gIHJldHVybiBkZXRlY3ROb2RlUGFja2FnZU1hbmFnZXIocHJvY2Vzcy5jd2QoKSkgPT09IFwicG5wbVwiXG4gICAgPyBnZXRQbnBtTm9kZU1vZHVsZVZlcnNpb24ocGFja2FnZU5hbWUpXG4gICAgOiBnZXROcG1Ob2RlTW9kdWxlVmVyc2lvbihwYWNrYWdlTmFtZSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldFBucG1Ob2RlTW9kdWxlVmVyc2lvbihcbiAgcGFja2FnZU5hbWU6IHN0cmluZyxcbik6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gIGxldCBvdXRwdXQ7XG5cbiAgdHJ5IHtcbiAgICBvdXRwdXQgPSBhd2FpdCBleGVjKFwicG5wbVwiLCBbXCJsaXN0XCIsIHBhY2thZ2VOYW1lLCBcIi0tanNvblwiXSwge1xuICAgICAgZW52OiB7IC4uLnByb2Nlc3MuZW52IH0sXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2dnZXIuZGVidWcoYFVuYWJsZSB0byBydW4gJ3BucG0gbGlzdCAke3BhY2thZ2VOYW1lfSAtLWpzb24nOiAke2V9YCk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGxldCBqc29uO1xuICB0cnkge1xuICAgIGpzb24gPSBKU09OLnBhcnNlKG91dHB1dCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2dnZXIuZGVidWcoXG4gICAgICBgVW5hYmxlIHRvIHBhcnNlIG91dHB1dCBvZiAncG5wbSBsaXN0ICR7cGFja2FnZU5hbWV9IC0tanNvbic6ICR7ZX1gLFxuICAgICk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmIChcbiAgICAhanNvbiB8fFxuICAgICFBcnJheS5pc0FycmF5KGpzb24pIHx8XG4gICAganNvbi5sZW5ndGggPT09IDAgfHxcbiAgICAhanNvblswXT8uZGVwZW5kZW5jaWVzPy5bcGFja2FnZU5hbWVdPy52ZXJzaW9uXG4gICkge1xuICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBVbmFibGUgdG8gZmluZCAnJHtwYWNrYWdlTmFtZX0nIGluICdwbnBtIGxpc3QgJHtwYWNrYWdlTmFtZX0gLS1qc29uJzogJHtvdXRwdXR9YCxcbiAgICApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICByZXR1cm4ganNvblswXS5kZXBlbmRlbmNpZXNbcGFja2FnZU5hbWVdLnZlcnNpb247XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldE5wbU5vZGVNb2R1bGVWZXJzaW9uKFxuICBwYWNrYWdlTmFtZTogc3RyaW5nLFxuKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgbGV0IG91dHB1dDtcblxuICB0cnkge1xuICAgIG91dHB1dCA9IGF3YWl0IGV4ZWMoXG4gICAgICBcIm5wbVwiLFxuICAgICAgW1wibGlzdFwiLCBwYWNrYWdlTmFtZSwgXCItLWpzb25cIiwgXCItLWluY2x1ZGU9ZGV2XCJdLFxuICAgICAge1xuICAgICAgICBlbnY6IHsgLi4ucHJvY2Vzcy5lbnYgfSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGxvZ2dlci5kZWJ1ZyhgVW5hYmxlIHRvIHJ1biAnbnBtIGxpc3QgJHtwYWNrYWdlTmFtZX0gLS1qc29uJzogJHtlfWApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBsZXQganNvbjtcbiAgdHJ5IHtcbiAgICBqc29uID0gSlNPTi5wYXJzZShvdXRwdXQpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgYFVuYWJsZSB0byBwYXJzZSBvdXRwdXQgb2YgJ25wbSBsaXN0ICR7cGFja2FnZU5hbWV9IC0tanNvbic6ICR7ZX1gLFxuICAgICk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmIChcbiAgICAhanNvbi5kZXBlbmRlbmNpZXMgfHxcbiAgICAhanNvbi5kZXBlbmRlbmNpZXNbcGFja2FnZU5hbWVdIHx8XG4gICAgIWpzb24uZGVwZW5kZW5jaWVzW3BhY2thZ2VOYW1lXS52ZXJzaW9uXG4gICkge1xuICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBVbmFibGUgdG8gZmluZCAnJHtwYWNrYWdlTmFtZX0nIGluICducG0gbGlzdCAke3BhY2thZ2VOYW1lfSAtLWpzb24nOiAke291dHB1dH1gLFxuICAgICk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJldHVybiBqc29uLmRlcGVuZGVuY2llc1twYWNrYWdlTmFtZV0udmVyc2lvbjtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0UHl0aG9uUGFja2FnZVZlcnNpb24oXG4gIHBhY2thZ2VOYW1lOiBzdHJpbmcsXG4pOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICBsZXQgb3V0cHV0O1xuICB0cnkge1xuICAgIG91dHB1dCA9IGF3YWl0IGV4ZWMoXCJwaXBlbnZcIiwgW1wicnVuXCIsIFwicGlwXCIsIFwic2hvd1wiLCBcIi1xcVwiLCBwYWNrYWdlTmFtZV0sIHtcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgfSk7XG5cbiAgICAvLyBSdW5uaW5nIHdpdGggYC1xcWAgc3VwcHJlc3NlcyBib3RoIG1pc3NpbmcgcGFja2FnZXMgYW5kIGFjdHVhbCBwYWNrYWdlXG4gICAgb3V0cHV0ID0gYXdhaXQgZXhlYyhcInBpcGVudlwiLCBbXCJydW5cIiwgXCJwaXBcIiwgXCJzaG93XCIsIHBhY2thZ2VOYW1lXSwge1xuICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGxvZ2dlci5kZWJ1ZyhgVW5hYmxlIHRvIHJ1biAncGlwZW52IHJ1biBwaXAgc2hvdyAke3BhY2thZ2VOYW1lfSc6ICR7ZX1gKTtcbiAgfVxuXG4gIC8vIElmIHdlIGNvdWxkbid0IGdldCB0aGUgb3V0cHV0IHVzaW5nIHBpcGVudiwgdHJ5IHRvIGdldCBpdCB1c2luZyBwaXAgZGlyZWN0bHlcbiAgaWYgKCFvdXRwdXQpIHtcbiAgICB0cnkge1xuICAgICAgb3V0cHV0ID0gYXdhaXQgZXhlYyhcInBpcFwiLCBbXCJzaG93XCIsIFwiLXFxXCIsIHBhY2thZ2VOYW1lXSwge1xuICAgICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgfSk7XG5cbiAgICAgIC8vIFJ1bm5pbmcgd2l0aCBgLXFxYCBzdXBwcmVzc2VzIGJvdGggbWlzc2luZyBwYWNrYWdlcyBhbmQgYWN0dWFsIHBhY2thZ2VcbiAgICAgIG91dHB1dCA9IGF3YWl0IGV4ZWMoXCJwaXBcIiwgW1wic2hvd1wiLCBwYWNrYWdlTmFtZV0sIHtcbiAgICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhgVW5hYmxlIHRvIHJ1biAncGlwIHNob3cgJHtwYWNrYWdlTmFtZX0nOiAke2V9YCk7XG4gICAgfVxuICB9XG5cbiAgaWYgKCFvdXRwdXQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgdmVyc2lvbkluZm8gPSBvdXRwdXRcbiAgICAuc3BsaXQoL1xcclxcbnxcXHJ8XFxuLylcbiAgICAuZmluZCgobGluZSkgPT4gbGluZS5zdGFydHNXaXRoKFwiVmVyc2lvbjpcIikpO1xuXG4gIGlmICghdmVyc2lvbkluZm8pIHtcbiAgICBsb2dnZXIuZGVidWcoXG4gICAgICBgVW5hYmxlIHRvIGZpbmQgdmVyc2lvbiBpbiBvdXRwdXQgb2YgJ3BpcGVudiBydW4gcGlwIHNob3cgJHtwYWNrYWdlTmFtZX0nIC8gJ3BpcCBzaG93ICR7cGFja2FnZU5hbWV9JzogJHtvdXRwdXR9YCxcbiAgICApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCB2ZXJzaW9uID0gdmVyc2lvbkluZm8uc3BsaXQoXCI6XCIpWzFdLnRyaW0oKTtcbiAgcmV0dXJuIHZlcnNpb247XG59XG5cbi8vIE9uY2UgaHR0cHM6Ly9naXRodWIuY29tL051R2V0L0hvbWUvaXNzdWVzLzc3NTIgZ2V0cyByZXNvbHZlZCB3ZSBjYW4gYWxzbyB0cnkgd2l0aCAtLWpzb25cbmFzeW5jIGZ1bmN0aW9uIGdldENTaGFycFBhY2thZ2VWZXJzaW9uKHBhY2thZ2VOYW1lOiBzdHJpbmcpIHtcbiAgY29uc3QgdHJhbnNsYXRpb25NYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAganNpaTogXCJBbWF6b24uSlNJSS5SdW50aW1lXCIsXG4gICAgY29uc3RydWN0czogXCJDb25zdHJ1Y3RzXCIsXG4gICAgY2RrdGY6IFwiSGFzaGlDb3JwLkNka3RmXCIsXG4gICAgY2RrdG46IFwiSW8uQ2RrdG5cIixcbiAgfTtcbiAgY29uc3QgY1NoYXJwUGFja2FnZU5hbWUgPSB0cmFuc2xhdGlvbk1hcFtwYWNrYWdlTmFtZV0gfHwgcGFja2FnZU5hbWU7XG5cbiAgbGV0IG91dHB1dDtcbiAgdHJ5IHtcbiAgICBvdXRwdXQgPSBhd2FpdCBleGVjKFwiZG90bmV0XCIsIFtcImxpc3RcIiwgXCJwYWNrYWdlXCIsIFwiLS1pbmNsdWRlLXRyYW5zaXRpdmVcIl0sIHtcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2dnZXIuZGVidWcoXG4gICAgICBgVW5hYmxlIHRvIHJ1biAnZG90bmV0IGxpc3QgcGFja2FnZSAtLWluY2x1ZGUtdHJhbnNpdGl2ZSc6ICR7ZX1gLFxuICAgICk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IHZlcnNpb25MaW5lID0gb3V0cHV0XG4gICAgLnNwbGl0KC9cXHJcXG58XFxyfFxcbi8pXG4gICAgLmZpbmQoKGxpbmUpID0+IGxpbmUuaW5jbHVkZXMoYD4gJHtjU2hhcnBQYWNrYWdlTmFtZX1gKSk7XG5cbiAgaWYgKCF2ZXJzaW9uTGluZSkge1xuICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBVbmFibGUgdG8gZmluZCB2ZXJzaW9uIGZvciAnJHtjU2hhcnBQYWNrYWdlTmFtZX0nIGluIG91dHB1dCBvZiAnZG90bmV0IGxpc3QgcGFja2FnZSAtLWluY2x1ZGUtdHJhbnNpdGl2ZSc6ICR7b3V0cHV0fWAsXG4gICAgKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLy8gQSBsaW5lIG1pZ2h0IGxvb2sgbGlrZSB0aGlzOlxuICAvLyAgIFRyYW5zaXRpdmUgUGFja2FnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvbHZlZFxuICAvLyAgID4gQW1hem9uLkpTSUkuUnVudGltZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjE3LjFcbiAgLy8gVGhlcmVmb3JlIHdlIHJldmVyc2Ugc3BsaXQgYnkgd2hpdGVzcGFjZSBhbmQgcmV2ZXJzZVxuICAvLyBzbyB0aGF0IHRoZSBmaXJzdCB0aGluZyB3ZSBmaW5kIGlzIHRoZSB2ZXJzaW9uIG51bWJlclxuICByZXR1cm4gdmVyc2lvbkxpbmVcbiAgICAuc3BsaXQoXCIgXCIpXG4gICAgLnJldmVyc2UoKVxuICAgIC5maW5kKChwYXJ0KSA9PiBwYXJ0ICE9PSBcIlwiKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0R29QYWNrYWdlVmVyc2lvbihwYWNrYWdlTmFtZTogc3RyaW5nKSB7XG4gIGNvbnN0IHRyYW5zbGF0aW9uTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgIGpzaWk6IFwianNpaS1ydW50aW1lLWdvXCIsXG4gICAgY2RrdGY6IFwiZ2l0aHViLmNvbS9oYXNoaWNvcnAvdGVycmFmb3JtLWNkay1nb1wiLFxuICAgIGNka3RuOiBcImdpdGh1Yi5jb20vb3Blbi1jb25zdHJ1Y3RzL2Nkay10ZXJyYWluLWdvXCIsXG4gIH07XG4gIGNvbnN0IGdvUGFja2FnZU5hbWUgPSB0cmFuc2xhdGlvbk1hcFtwYWNrYWdlTmFtZV0gfHwgcGFja2FnZU5hbWU7XG5cbiAgbGV0IG91dHB1dDtcbiAgdHJ5IHtcbiAgICBvdXRwdXQgPSBhd2FpdCBleGVjKFwiZ29cIiwgW1wibGlzdFwiLCBcIi1tXCIsIFwiYWxsXCJdLCB7XG4gICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgIH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgbG9nZ2VyLmRlYnVnKGBVbmFibGUgdG8gcnVuICdnbyBsaXN0IC1tIGFsbCc6ICR7ZX1gKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgbGV0IHZlcnNpb25MaW5lID0gb3V0cHV0XG4gICAgLnNwbGl0KC9cXHJcXG58XFxyfFxcbi8pXG4gICAgLmZpbmQoKGxpbmUpID0+IGxpbmUuaW5jbHVkZXMoZ29QYWNrYWdlTmFtZSkpO1xuXG4gIGlmICghdmVyc2lvbkxpbmUpIHtcbiAgICBsb2dnZXIuZGVidWcoXG4gICAgICBgVW5hYmxlIHRvIGZpbmQgdmVyc2lvbiBmb3IgJyR7Z29QYWNrYWdlTmFtZX0nIGluIG91dHB1dCBvZiAnZ28gbGlzdCAtbSBhbGwnOiAke291dHB1dH1gLFxuICAgICk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8vIFdlIGFyZSBkZWFsaW5nIHdpdGggYSBsb2NhbCB2ZXJzaW9uXG4gIGlmICh2ZXJzaW9uTGluZS5pbmNsdWRlcyhcIj0+XCIpKSB7XG4gICAgbG9nZ2VyLmRlYnVnKGBGb3VuZCBsb2NhbCB2ZXJzaW9uIGZvciAnJHtnb1BhY2thZ2VOYW1lfSc6ICR7dmVyc2lvbkxpbmV9YCk7XG4gICAgdmVyc2lvbkxpbmUgPSB2ZXJzaW9uTGluZS5zcGxpdChcIj0+XCIpWzBdLnRyaW0oKTtcbiAgfVxuXG4gIHJldHVybiB2ZXJzaW9uTGluZS5zcGxpdChcIiBcIikucG9wKCk/LnJlcGxhY2UoXCJ2XCIsIFwiXCIpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRNYXZlblBhY2thZ2VWZXJzaW9uKHBhY2thZ2VOYW1lOiBzdHJpbmcpIHtcbiAgY29uc3QgdHJhbnNsYXRpb25NYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAganNpaTogXCJqc2lpLXJ1bnRpbWVcIixcbiAgfTtcbiAgY29uc3QgamF2YVBhY2thZ2VOYW1lID0gdHJhbnNsYXRpb25NYXBbcGFja2FnZU5hbWVdIHx8IHBhY2thZ2VOYW1lO1xuXG4gIGxldCBvdXRwdXQ7XG4gIHRyeSB7XG4gICAgb3V0cHV0ID0gYXdhaXQgZXhlYyhcIm12blwiLCBbXCJkZXBlbmRlbmN5Omxpc3RcIl0sIHtcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2dnZXIuZGVidWcoYFVuYWJsZSB0byBydW4gJ212biBkZXBlbmRlbmN5Omxpc3QnOiAke2V9YCk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IHJlc29sdXRpb25QYXJ0ID0gb3V0cHV0LnNwbGl0KFxuICAgIFwiVGhlIGZvbGxvd2luZyBmaWxlcyBoYXZlIGJlZW4gcmVzb2x2ZWRcIixcbiAgKVsxXTtcbiAgaWYgKCFyZXNvbHV0aW9uUGFydCkge1xuICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBVbmFibGUgdG8gZmluZCByZXNvbHV0aW9uIHBhc3NhZ2UgaW4gb3V0cHV0IG9mICdtdm4gZGVwZW5kZW5jeTpsaXN0JzogJHtvdXRwdXR9YCxcbiAgICApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyBXZSBuZWVkIHRvIHNlYXJjaCBmb3IgdGhlIHBhY2thZ2UgbmFtZSBBTkQgYSBjb2xvbiB0byBub3QgbWF0Y2ggYSBsaW5lIGxpa2VcbiAgLy8gW0lORk9dICAgIGNvbS5oYXNoaWNvcnA6Y2RrdGYtcHJvdmlkZXItYXdzOmphcjo5LjAuOTpjb21waWxlXG4gIC8vIHdoZW4gbG9va2luZyBmb3IgdGhlIGNka3RmIHBhY2thZ2UgKHNlZSBHaXRodWIgaXNzdWUgIzE5OTQpXG4gIGNvbnN0IHZlcnNpb25MaW5lID0gcmVzb2x1dGlvblBhcnRcbiAgICAuc3BsaXQoL1xcclxcbnxcXHJ8XFxuLylcbiAgICAuZmluZCgobGluZSkgPT4gbGluZS5pbmNsdWRlcyhgJHtqYXZhUGFja2FnZU5hbWV9OmApKTtcblxuICBpZiAoIXZlcnNpb25MaW5lKSB7XG4gICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgYFVuYWJsZSB0byBmaW5kIHZlcnNpb24gZm9yICcke2phdmFQYWNrYWdlTmFtZX0nIGluIG91dHB1dCBvZiAnbXZuIGRlcGVuZGVuY3k6bGlzdCc6ICR7b3V0cHV0fWAsXG4gICAgKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLy8gRXhhbXBsZSBsaW5lOiBbSU5GT10gICAgY29tLmhhc2hpY29ycDpjZGt0ZjpqYXI6MC4wLjA6Y29tcGlsZVxuICBjb25zdCB2ZXJzaW9uU3RhcnREZWxpbWl0ZXIgPSBgJHtqYXZhUGFja2FnZU5hbWV9OmphcjpgO1xuICBjb25zdCB2ZXJzaW9uU3RhcnQgPVxuICAgIHZlcnNpb25MaW5lLmluZGV4T2YodmVyc2lvblN0YXJ0RGVsaW1pdGVyKSArIHZlcnNpb25TdGFydERlbGltaXRlci5sZW5ndGg7XG4gIGNvbnN0IHZlcnNpb25FbmREZWxlbWl0ZXIgPSBcIjpjb21waWxlXCI7XG4gIGNvbnN0IHZlcnNpb25FbmQgPSB2ZXJzaW9uTGluZS5pbmRleE9mKHZlcnNpb25FbmREZWxlbWl0ZXIpO1xuICByZXR1cm4gdmVyc2lvbkxpbmUuc3Vic3RyaW5nKHZlcnNpb25TdGFydCwgdmVyc2lvbkVuZCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEphdmFQYWNrYWdlVmVyc2lvbihwYWNrYWdlTmFtZTogc3RyaW5nKSB7XG4gIGlmIChpc0dyYWRsZVByb2plY3QoXCIuL1wiKSkge1xuICAgIHJldHVybiBnZXRHcmFkbGVQYWNrYWdlVmVyc2lvbihwYWNrYWdlTmFtZSk7XG4gIH1cblxuICByZXR1cm4gZ2V0TWF2ZW5QYWNrYWdlVmVyc2lvbihwYWNrYWdlTmFtZSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRQYWNrYWdlVmVyc2lvbihcbiAgbGFuZ3VhZ2U6IHN0cmluZyxcbiAgcGFja2FnZU5hbWU6IHN0cmluZyxcbik6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gIGNvbnN0IG5vT3AgPSBhc3luYyAoKSA9PiB1bmRlZmluZWQ7XG4gIGNvbnN0IGdldExpYnJhcnlWZXJzaW9uTWFwOiBSZWNvcmQ8XG4gICAgc3RyaW5nLFxuICAgIChuYW1lOiBzdHJpbmcpID0+IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPlxuICA+ID0ge1xuICAgIHR5cGVzY3JpcHQ6IGdldE5vZGVNb2R1bGVWZXJzaW9uLFxuICAgIHB5dGhvbjogZ2V0UHl0aG9uUGFja2FnZVZlcnNpb24sXG4gICAgZ286IGdldEdvUGFja2FnZVZlcnNpb24sXG4gICAgY3NoYXJwOiBnZXRDU2hhcnBQYWNrYWdlVmVyc2lvbixcbiAgICBqYXZhOiBnZXRKYXZhUGFja2FnZVZlcnNpb24sXG4gIH07XG5cbiAgY29uc3QgbGliVmVyc2lvbiA9IGF3YWl0IChnZXRMaWJyYXJ5VmVyc2lvbk1hcFtsYW5ndWFnZV0gfHwgbm9PcCkoXG4gICAgcGFja2FnZU5hbWUsXG4gICk7XG4gIHJldHVybiBsaWJWZXJzaW9uID8/IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNvbGxlY3REZWJ1Z0luZm9ybWF0aW9uKCkge1xuICBjb25zdCBkZWJ1Z091dHB1dDogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVsbD4gPSB7fTtcbiAgY29uc3QgbGFuZ3VhZ2UgPSBnZXRMYW5ndWFnZSgpO1xuICBkZWJ1Z091dHB1dFtcImxhbmd1YWdlXCJdID0gbGFuZ3VhZ2UgPz8gbnVsbDtcbiAgZGVidWdPdXRwdXRbXCJjZGt0bi1jbGlcIl0gPSBESVNQTEFZX1ZFUlNJT047XG5cbiAgY29uc3Qgbm9kZSA9IGdldE5vZGVWZXJzaW9uKCk7XG5cbiAgZGVidWdPdXRwdXRbXCJub2RlXCJdID0gKGF3YWl0IG5vZGUpID8/IG51bGw7XG4gIGlmIChsYW5ndWFnZSkge1xuICAgIGNvbnN0IGNka3RuID0gZ2V0UGFja2FnZVZlcnNpb24obGFuZ3VhZ2UsIFwiY2RrdG5cIik7XG4gICAgY29uc3QgY2RrdGYgPSBnZXRQYWNrYWdlVmVyc2lvbihsYW5ndWFnZSwgXCJjZGt0ZlwiKTtcbiAgICBjb25zdCBjb25zdHJ1Y3RzID0gZ2V0UGFja2FnZVZlcnNpb24obGFuZ3VhZ2UsIFwiY29uc3RydWN0c1wiKTtcbiAgICBjb25zdCBqc2lpID0gZ2V0UGFja2FnZVZlcnNpb24obGFuZ3VhZ2UsIFwianNpaVwiKTtcblxuICAgIGRlYnVnT3V0cHV0W1wiY2RrdG5cIl0gPSAoYXdhaXQgY2RrdG4pID8/IG51bGw7XG4gICAgZGVidWdPdXRwdXRbXCJjZGt0ZlwiXSA9IChhd2FpdCBjZGt0ZikgPz8gbnVsbDtcbiAgICBkZWJ1Z091dHB1dFtcImNvbnN0cnVjdHNcIl0gPSAoYXdhaXQgY29uc3RydWN0cykgPz8gbnVsbDtcbiAgICBkZWJ1Z091dHB1dFtcImpzaWlcIl0gPSAoYXdhaXQganNpaSkgPz8gbnVsbDtcbiAgfVxuICBkZWJ1Z091dHB1dFtcInRlcnJhZm9ybVwiXSA9IChhd2FpdCB0ZXJyYWZvcm1WZXJzaW9uKCkpID8/IG51bGw7XG4gIGRlYnVnT3V0cHV0W1wiYXJjaFwiXSA9IG9zLmFyY2goKTtcbiAgZGVidWdPdXRwdXRbXCJvc1wiXSA9IGAke29zLnBsYXRmb3JtKCl9ICR7b3MucmVsZWFzZSgpfWA7XG5cbiAgc3dpdGNoIChsYW5ndWFnZSkge1xuICAgIGNhc2UgXCJweXRob25cIjpcbiAgICAgIHtcbiAgICAgICAgY29uc3QgcHl0aG9uID0gZ2V0UHl0aG9uVmVyc2lvbigpO1xuICAgICAgICBjb25zdCBwaXAgPSBnZXRQaXBWZXJzaW9uKCk7XG4gICAgICAgIGNvbnN0IHBpcGVudiA9IGdldFBpcGVudlZlcnNpb24oKTtcbiAgICAgICAgZGVidWdPdXRwdXRbXCJweXRob25cIl0gPSAoYXdhaXQgcHl0aG9uKSA/PyBudWxsO1xuICAgICAgICBkZWJ1Z091dHB1dFtcInBpcFwiXSA9IChhd2FpdCBwaXApID8/IG51bGw7XG4gICAgICAgIGRlYnVnT3V0cHV0W1wicGlwZW52XCJdID0gKGF3YWl0IHBpcGVudikgPz8gbnVsbDtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJqYXZhXCI6XG4gICAgICB7XG4gICAgICAgIGNvbnN0IGphdmEgPSBnZXRKYXZhVmVyc2lvbigpO1xuICAgICAgICBjb25zdCBtYXZlbiA9IGdldE1hdmVuVmVyc2lvbigpO1xuICAgICAgICBjb25zdCBncmFkbGUgPSBnZXRHcmFkbGVWZXJzaW9uKCk7XG4gICAgICAgIGRlYnVnT3V0cHV0W1wiamF2YVwiXSA9IChhd2FpdCBqYXZhKSA/PyBudWxsO1xuICAgICAgICBkZWJ1Z091dHB1dFtcIm1hdmVuXCJdID0gKGF3YWl0IG1hdmVuKSA/PyBudWxsO1xuICAgICAgICBkZWJ1Z091dHB1dFtcImdyYWRsZVwiXSA9IChhd2FpdCBncmFkbGUpID8/IG51bGw7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlIFwiY3NoYXJwXCI6XG4gICAgICBkZWJ1Z091dHB1dFtcImRvdG5ldFwiXSA9IChhd2FpdCBnZXREb3RuZXRWZXJzaW9uKCkpID8/IG51bGw7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFwiZ29cIjpcbiAgICAgIGRlYnVnT3V0cHV0W1wiZ29cIl0gPSAoYXdhaXQgZ2V0R29WZXJzaW9uKCkpID8/IG51bGw7XG4gICAgICBicmVhaztcbiAgfVxuXG4gIHJldHVybiBkZWJ1Z091dHB1dDtcbn1cbiJdfQ==
@@ -38,9 +38,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
38
38
  const fs = __importStar(require("fs"));
39
39
  const path = __importStar(require("path"));
40
40
  jest.mock("./terraform", () => ({
41
- terraformVersion: Promise.resolve("1.7.5"),
41
+ terraformVersion: jest.fn(() => Promise.resolve("1.7.5")),
42
42
  }));
43
43
  const debug_1 = require("./debug");
44
+ const terraform_1 = require("./terraform");
44
45
  const util_1 = require("./util");
45
46
  function writeInstalledPackage(packageName, version) {
46
47
  const packageDir = path.join(process.cwd(), "node_modules", packageName);
@@ -85,5 +86,11 @@ describe("collectDebugInformation()", () => {
85
86
  }));
86
87
  });
87
88
  });
89
+ it("reports terraform as null when the binary cannot be probed", async () => {
90
+ jest.mocked(terraform_1.terraformVersion).mockResolvedValueOnce(undefined);
91
+ await (0, util_1.withTempDir)("debug.test", async () => {
92
+ await expect((0, debug_1.collectDebugInformation)()).resolves.toEqual(expect.objectContaining({ terraform: null }));
93
+ });
94
+ });
88
95
  });
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWcudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWJ1Zy50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQztBQUNuQyx1Q0FBeUI7QUFDekIsMkNBQTZCO0FBRTdCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDOUIsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7Q0FDM0MsQ0FBQyxDQUFDLENBQUM7QUFFSixtQ0FBa0Q7QUFDbEQsaUNBQXFDO0FBRXJDLFNBQVMscUJBQXFCLENBQUMsV0FBbUIsRUFBRSxPQUFlO0lBQ2pFLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLGNBQWMsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN6RSxFQUFFLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLEVBQUUsQ0FBQyxhQUFhLENBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsY0FBYyxDQUFDLEVBQ3JDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FDeEQsQ0FBQztBQUNKLENBQUM7QUFFRCxRQUFRLENBQUMsMkJBQTJCLEVBQUUsR0FBRyxFQUFFO0lBQ3pDLElBQUksZUFBbUMsQ0FBQztJQUV4QyxVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ2QsZUFBZSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO0lBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBRUgsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNiLElBQUksZUFBZSxLQUFLLFNBQVM7WUFBRSxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDOztZQUMxRCxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxlQUFlLENBQUM7SUFDOUMsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsNkVBQTZFLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDM0YsTUFBTSxJQUFBLGtCQUFXLEVBQUMsWUFBWSxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ3pDLEVBQUUsQ0FBQyxhQUFhLENBQ2QsWUFBWSxFQUNaLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FDM0MsQ0FBQztZQUNGLEVBQUUsQ0FBQyxhQUFhLENBQ2QsY0FBYyxFQUNkLElBQUksQ0FBQyxTQUFTLENBQ1o7Z0JBQ0UsSUFBSSxFQUFFLDhCQUE4QjtnQkFDcEMsT0FBTyxFQUFFLE9BQU87Z0JBQ2hCLGVBQWUsRUFBRTtvQkFDZixLQUFLLEVBQUUsUUFBUTtvQkFDZixLQUFLLEVBQUUsU0FBUztvQkFDaEIsVUFBVSxFQUFFLFFBQVE7b0JBQ3BCLElBQUksRUFBRSxPQUFPO2lCQUNkO2FBQ0YsRUFDRCxJQUFJLEVBQ0osQ0FBQyxDQUNGLENBQ0YsQ0FBQztZQUVGLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztZQUN6QyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDMUMscUJBQXFCLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQzlDLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztZQUV2QyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUM7WUFFcEMsTUFBTSxNQUFNLENBQUMsSUFBQSwrQkFBdUIsR0FBRSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FDdEQsTUFBTSxDQUFDLGdCQUFnQixDQUFDO2dCQUN0QixRQUFRLEVBQUUsWUFBWTtnQkFDdEIsS0FBSyxFQUFFLFFBQVE7Z0JBQ2YsS0FBSyxFQUFFLFNBQVM7Z0JBQ2hCLFVBQVUsRUFBRSxRQUFRO2dCQUNwQixJQUFJLEVBQUUsT0FBTzthQUNkLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5qZXN0Lm1vY2soXCIuL3RlcnJhZm9ybVwiLCAoKSA9PiAoe1xuICB0ZXJyYWZvcm1WZXJzaW9uOiBQcm9taXNlLnJlc29sdmUoXCIxLjcuNVwiKSxcbn0pKTtcblxuaW1wb3J0IHsgY29sbGVjdERlYnVnSW5mb3JtYXRpb24gfSBmcm9tIFwiLi9kZWJ1Z1wiO1xuaW1wb3J0IHsgd2l0aFRlbXBEaXIgfSBmcm9tIFwiLi91dGlsXCI7XG5cbmZ1bmN0aW9uIHdyaXRlSW5zdGFsbGVkUGFja2FnZShwYWNrYWdlTmFtZTogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcpIHtcbiAgY29uc3QgcGFja2FnZURpciA9IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBcIm5vZGVfbW9kdWxlc1wiLCBwYWNrYWdlTmFtZSk7XG4gIGZzLm1rZGlyU3luYyhwYWNrYWdlRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgZnMud3JpdGVGaWxlU3luYyhcbiAgICBwYXRoLmpvaW4ocGFja2FnZURpciwgXCJwYWNrYWdlLmpzb25cIiksXG4gICAgSlNPTi5zdHJpbmdpZnkoeyBuYW1lOiBwYWNrYWdlTmFtZSwgdmVyc2lvbiB9LCBudWxsLCAyKSxcbiAgKTtcbn1cblxuZGVzY3JpYmUoXCJjb2xsZWN0RGVidWdJbmZvcm1hdGlvbigpXCIsICgpID0+IHtcbiAgbGV0IHByZXZpb3VzTm9kZUVudjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIHByZXZpb3VzTm9kZUVudiA9IHByb2Nlc3MuZW52Lk5PREVfRU5WO1xuICB9KTtcblxuICBhZnRlckVhY2goKCkgPT4ge1xuICAgIGlmIChwcmV2aW91c05vZGVFbnYgPT09IHVuZGVmaW5lZCkgZGVsZXRlIHByb2Nlc3MuZW52Lk5PREVfRU5WO1xuICAgIGVsc2UgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPSBwcmV2aW91c05vZGVFbnY7XG4gIH0pO1xuXG4gIGl0KFwiZGV0ZWN0cyBUeXBlU2NyaXB0IHBhY2thZ2VzIGluc3RhbGxlZCBhcyBucG0gZGV2IGRlcGVuZGVuY2llcyBpbiBwcm9kdWN0aW9uXCIsIGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCB3aXRoVGVtcERpcihcImRlYnVnLnRlc3RcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgZnMud3JpdGVGaWxlU3luYyhcbiAgICAgICAgXCJjZGt0Zi5qc29uXCIsXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHsgbGFuZ3VhZ2U6IFwidHlwZXNjcmlwdFwiIH0pLFxuICAgICAgKTtcbiAgICAgIGZzLndyaXRlRmlsZVN5bmMoXG4gICAgICAgIFwicGFja2FnZS5qc29uXCIsXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVidWctZGV2LWRlcGVuZGVuY3ktZml4dHVyZVwiLFxuICAgICAgICAgICAgdmVyc2lvbjogXCIxLjAuMFwiLFxuICAgICAgICAgICAgZGV2RGVwZW5kZW5jaWVzOiB7XG4gICAgICAgICAgICAgIGNka3RuOiBcIjAuMjMuM1wiLFxuICAgICAgICAgICAgICBjZGt0ZjogXCIwLjIwLjExXCIsXG4gICAgICAgICAgICAgIGNvbnN0cnVjdHM6IFwiMTAuMy4wXCIsXG4gICAgICAgICAgICAgIGpzaWk6IFwiNS41LjBcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBudWxsLFxuICAgICAgICAgIDIsXG4gICAgICAgICksXG4gICAgICApO1xuXG4gICAgICB3cml0ZUluc3RhbGxlZFBhY2thZ2UoXCJjZGt0blwiLCBcIjAuMjMuM1wiKTtcbiAgICAgIHdyaXRlSW5zdGFsbGVkUGFja2FnZShcImNka3RmXCIsIFwiMC4yMC4xMVwiKTtcbiAgICAgIHdyaXRlSW5zdGFsbGVkUGFja2FnZShcImNvbnN0cnVjdHNcIiwgXCIxMC4zLjBcIik7XG4gICAgICB3cml0ZUluc3RhbGxlZFBhY2thZ2UoXCJqc2lpXCIsIFwiNS41LjBcIik7XG5cbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WID0gXCJwcm9kdWN0aW9uXCI7XG5cbiAgICAgIGF3YWl0IGV4cGVjdChjb2xsZWN0RGVidWdJbmZvcm1hdGlvbigpKS5yZXNvbHZlcy50b0VxdWFsKFxuICAgICAgICBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgbGFuZ3VhZ2U6IFwidHlwZXNjcmlwdFwiLFxuICAgICAgICAgIGNka3RuOiBcIjAuMjMuM1wiLFxuICAgICAgICAgIGNka3RmOiBcIjAuMjAuMTFcIixcbiAgICAgICAgICBjb25zdHJ1Y3RzOiBcIjEwLjMuMFwiLFxuICAgICAgICAgIGpzaWk6IFwiNS41LjBcIixcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWcudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWJ1Zy50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQztBQUNuQyx1Q0FBeUI7QUFDekIsMkNBQTZCO0FBRTdCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDOUIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0NBQzFELENBQUMsQ0FBQyxDQUFDO0FBRUosbUNBQWtEO0FBQ2xELDJDQUErQztBQUMvQyxpQ0FBcUM7QUFFckMsU0FBUyxxQkFBcUIsQ0FBQyxXQUFtQixFQUFFLE9BQWU7SUFDakUsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsY0FBYyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3pFLEVBQUUsQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUMsRUFBRSxDQUFDLGFBQWEsQ0FDZCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxjQUFjLENBQUMsRUFDckMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUN4RCxDQUFDO0FBQ0osQ0FBQztBQUVELFFBQVEsQ0FBQywyQkFBMkIsRUFBRSxHQUFHLEVBQUU7SUFDekMsSUFBSSxlQUFtQyxDQUFDO0lBRXhDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxlQUFlLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7SUFDekMsQ0FBQyxDQUFDLENBQUM7SUFFSCxTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2IsSUFBSSxlQUFlLEtBQUssU0FBUztZQUFFLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7O1lBQzFELE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLGVBQWUsQ0FBQztJQUM5QyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyw2RUFBNkUsRUFBRSxLQUFLLElBQUksRUFBRTtRQUMzRixNQUFNLElBQUEsa0JBQVcsRUFBQyxZQUFZLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDekMsRUFBRSxDQUFDLGFBQWEsQ0FDZCxZQUFZLEVBQ1osSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUMzQyxDQUFDO1lBQ0YsRUFBRSxDQUFDLGFBQWEsQ0FDZCxjQUFjLEVBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FDWjtnQkFDRSxJQUFJLEVBQUUsOEJBQThCO2dCQUNwQyxPQUFPLEVBQUUsT0FBTztnQkFDaEIsZUFBZSxFQUFFO29CQUNmLEtBQUssRUFBRSxRQUFRO29CQUNmLEtBQUssRUFBRSxTQUFTO29CQUNoQixVQUFVLEVBQUUsUUFBUTtvQkFDcEIsSUFBSSxFQUFFLE9BQU87aUJBQ2Q7YUFDRixFQUNELElBQUksRUFDSixDQUFDLENBQ0YsQ0FDRixDQUFDO1lBRUYscUJBQXFCLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ3pDLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztZQUMxQyxxQkFBcUIsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDOUMscUJBQXFCLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBRXZDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQztZQUVwQyxNQUFNLE1BQU0sQ0FBQyxJQUFBLCtCQUF1QixHQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUN0RCxNQUFNLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ3RCLFFBQVEsRUFBRSxZQUFZO2dCQUN0QixLQUFLLEVBQUUsUUFBUTtnQkFDZixLQUFLLEVBQUUsU0FBUztnQkFDaEIsVUFBVSxFQUFFLFFBQVE7Z0JBQ3BCLElBQUksRUFBRSxPQUFPO2FBQ2QsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLDREQUE0RCxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQzFFLElBQUksQ0FBQyxNQUFNLENBQUMsNEJBQWdCLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvRCxNQUFNLElBQUEsa0JBQVcsRUFBQyxZQUFZLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDekMsTUFBTSxNQUFNLENBQUMsSUFBQSwrQkFBdUIsR0FBRSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FDdEQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQzdDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmplc3QubW9jayhcIi4vdGVycmFmb3JtXCIsICgpID0+ICh7XG4gIHRlcnJhZm9ybVZlcnNpb246IGplc3QuZm4oKCkgPT4gUHJvbWlzZS5yZXNvbHZlKFwiMS43LjVcIikpLFxufSkpO1xuXG5pbXBvcnQgeyBjb2xsZWN0RGVidWdJbmZvcm1hdGlvbiB9IGZyb20gXCIuL2RlYnVnXCI7XG5pbXBvcnQgeyB0ZXJyYWZvcm1WZXJzaW9uIH0gZnJvbSBcIi4vdGVycmFmb3JtXCI7XG5pbXBvcnQgeyB3aXRoVGVtcERpciB9IGZyb20gXCIuL3V0aWxcIjtcblxuZnVuY3Rpb24gd3JpdGVJbnN0YWxsZWRQYWNrYWdlKHBhY2thZ2VOYW1lOiBzdHJpbmcsIHZlcnNpb246IHN0cmluZykge1xuICBjb25zdCBwYWNrYWdlRGlyID0gcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIFwibm9kZV9tb2R1bGVzXCIsIHBhY2thZ2VOYW1lKTtcbiAgZnMubWtkaXJTeW5jKHBhY2thZ2VEaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICBmcy53cml0ZUZpbGVTeW5jKFxuICAgIHBhdGguam9pbihwYWNrYWdlRGlyLCBcInBhY2thZ2UuanNvblwiKSxcbiAgICBKU09OLnN0cmluZ2lmeSh7IG5hbWU6IHBhY2thZ2VOYW1lLCB2ZXJzaW9uIH0sIG51bGwsIDIpLFxuICApO1xufVxuXG5kZXNjcmliZShcImNvbGxlY3REZWJ1Z0luZm9ybWF0aW9uKClcIiwgKCkgPT4ge1xuICBsZXQgcHJldmlvdXNOb2RlRW52OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgcHJldmlvdXNOb2RlRW52ID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlY7XG4gIH0pO1xuXG4gIGFmdGVyRWFjaCgoKSA9PiB7XG4gICAgaWYgKHByZXZpb3VzTm9kZUVudiA9PT0gdW5kZWZpbmVkKSBkZWxldGUgcHJvY2Vzcy5lbnYuTk9ERV9FTlY7XG4gICAgZWxzZSBwcm9jZXNzLmVudi5OT0RFX0VOViA9IHByZXZpb3VzTm9kZUVudjtcbiAgfSk7XG5cbiAgaXQoXCJkZXRlY3RzIFR5cGVTY3JpcHQgcGFja2FnZXMgaW5zdGFsbGVkIGFzIG5wbSBkZXYgZGVwZW5kZW5jaWVzIGluIHByb2R1Y3Rpb25cIiwgYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IHdpdGhUZW1wRGlyKFwiZGVidWcudGVzdFwiLCBhc3luYyAoKSA9PiB7XG4gICAgICBmcy53cml0ZUZpbGVTeW5jKFxuICAgICAgICBcImNka3RmLmpzb25cIixcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoeyBsYW5ndWFnZTogXCJ0eXBlc2NyaXB0XCIgfSksXG4gICAgICApO1xuICAgICAgZnMud3JpdGVGaWxlU3luYyhcbiAgICAgICAgXCJwYWNrYWdlLmpzb25cIixcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWJ1Zy1kZXYtZGVwZW5kZW5jeS1maXh0dXJlXCIsXG4gICAgICAgICAgICB2ZXJzaW9uOiBcIjEuMC4wXCIsXG4gICAgICAgICAgICBkZXZEZXBlbmRlbmNpZXM6IHtcbiAgICAgICAgICAgICAgY2RrdG46IFwiMC4yMy4zXCIsXG4gICAgICAgICAgICAgIGNka3RmOiBcIjAuMjAuMTFcIixcbiAgICAgICAgICAgICAgY29uc3RydWN0czogXCIxMC4zLjBcIixcbiAgICAgICAgICAgICAganNpaTogXCI1LjUuMFwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgMixcbiAgICAgICAgKSxcbiAgICAgICk7XG5cbiAgICAgIHdyaXRlSW5zdGFsbGVkUGFja2FnZShcImNka3RuXCIsIFwiMC4yMy4zXCIpO1xuICAgICAgd3JpdGVJbnN0YWxsZWRQYWNrYWdlKFwiY2RrdGZcIiwgXCIwLjIwLjExXCIpO1xuICAgICAgd3JpdGVJbnN0YWxsZWRQYWNrYWdlKFwiY29uc3RydWN0c1wiLCBcIjEwLjMuMFwiKTtcbiAgICAgIHdyaXRlSW5zdGFsbGVkUGFja2FnZShcImpzaWlcIiwgXCI1LjUuMFwiKTtcblxuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPSBcInByb2R1Y3Rpb25cIjtcblxuICAgICAgYXdhaXQgZXhwZWN0KGNvbGxlY3REZWJ1Z0luZm9ybWF0aW9uKCkpLnJlc29sdmVzLnRvRXF1YWwoXG4gICAgICAgIGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICBsYW5ndWFnZTogXCJ0eXBlc2NyaXB0XCIsXG4gICAgICAgICAgY2RrdG46IFwiMC4yMy4zXCIsXG4gICAgICAgICAgY2RrdGY6IFwiMC4yMC4xMVwiLFxuICAgICAgICAgIGNvbnN0cnVjdHM6IFwiMTAuMy4wXCIsXG4gICAgICAgICAganNpaTogXCI1LjUuMFwiLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KFwicmVwb3J0cyB0ZXJyYWZvcm0gYXMgbnVsbCB3aGVuIHRoZSBiaW5hcnkgY2Fubm90IGJlIHByb2JlZFwiLCBhc3luYyAoKSA9PiB7XG4gICAgamVzdC5tb2NrZWQodGVycmFmb3JtVmVyc2lvbikubW9ja1Jlc29sdmVkVmFsdWVPbmNlKHVuZGVmaW5lZCk7XG4gICAgYXdhaXQgd2l0aFRlbXBEaXIoXCJkZWJ1Zy50ZXN0XCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGF3YWl0IGV4cGVjdChjb2xsZWN0RGVidWdJbmZvcm1hdGlvbigpKS5yZXNvbHZlcy50b0VxdWFsKFxuICAgICAgICBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7IHRlcnJhZm9ybTogbnVsbCB9KSxcbiAgICAgICk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
package/build/errors.d.ts CHANGED
@@ -1,10 +1,13 @@
1
+ import { CommandErrorType } from "./telemetry";
1
2
  type ErrorType = "Internal" | "External" | "Usage";
2
3
  export declare function IsErrorType(error: any, type: ErrorType): boolean;
4
+ export declare function commandErrorType(error: unknown): CommandErrorType;
3
5
  export declare const Errors: {
4
6
  Internal: (message: string, originalError?: Error, context?: Record<string, any>) => any;
5
7
  Usage: (message: string, originalError?: Error, context?: Record<string, any>) => any;
6
8
  External: (message: string, originalError?: Error, context?: Record<string, any>) => any;
7
9
  setScope(scope: string): void;
10
+ getScope(): string;
8
11
  };
9
12
  export {};
10
13
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAmBA,KAAK,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC;AACnD,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAEhE;AAsBD,eAAO,MAAM,MAAM;wBAlBN,MAAM,kBACA,KAAK,YACV,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;qBAFpB,MAAM,kBACA,KAAK,YACV,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;wBAFpB,MAAM,kBACA,KAAK,YACV,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;oBAyBf,MAAM;CAIvB,CAAC"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAsB,MAAM,aAAa,CAAC;AAGnE,KAAK,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC;AACnD,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAEhE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAOjE;AA2BD,eAAO,MAAM,MAAM;wBAvBN,MAAM,kBACA,KAAK,YACV,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;qBAFpB,MAAM,kBACA,KAAK,YACV,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;wBAFpB,MAAM,kBACA,KAAK,YACV,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;oBA8Bf,MAAM;gBAKV,MAAM;CAGnB,CAAC"}
package/build/errors.js CHANGED
@@ -35,51 +35,59 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.Errors = void 0;
37
37
  exports.IsErrorType = IsErrorType;
38
+ exports.commandErrorType = commandErrorType;
38
39
  // Copyright (c) HashiCorp, Inc
39
40
  // SPDX-License-Identifier: MPL-2.0
40
- const checkpoint_1 = require("./checkpoint");
41
- const version_1 = require("./version");
42
41
  const Sentry = __importStar(require("@sentry/node"));
43
- // Errors that will emit telemetry events
44
- async function report(command, payload) {
45
- const reportParams = {
46
- command,
47
- product: "cdktn",
48
- version: `${version_1.DISPLAY_VERSION}`,
49
- dateTime: new Date(),
50
- payload,
51
- };
52
- await (0, checkpoint_1.ReportRequest)(reportParams);
53
- }
42
+ // telemetry.ts must never import this module: it would close a cycle through
43
+ // terraform.ts and load errors.ts before the factories exist.
44
+ const telemetry_1 = require("./telemetry");
45
+ const process_state_1 = require("./process-state");
54
46
  function IsErrorType(error, type) {
55
47
  return error && error.__type === type;
56
48
  }
57
- function reportPrefixedError(type, command) {
49
+ function commandErrorType(error) {
50
+ for (const type of ["Usage", "External", "Internal"]) {
51
+ if (IsErrorType(error, type)) {
52
+ return type;
53
+ }
54
+ }
55
+ return "unexpected";
56
+ }
57
+ function reportPrefixedError(type) {
58
58
  return (message, originalError = new Error(), context) => {
59
- report(command, { ...context, message, type });
60
59
  const err = new Error(`${type} Error: ${message}`);
61
60
  Object.entries(context || {}).forEach(([key, value]) => {
62
61
  err[key] = value;
63
62
  });
64
63
  err.__type = type;
65
64
  err.stack = originalError.stack;
65
+ // the scope is read here, not when the factory is created, so the
66
+ // command set by setScope is the one counted
67
+ (0, telemetry_1.sendErrorTelemetry)(type, scopeState.scope);
66
68
  return err;
67
69
  };
68
70
  }
69
71
  // The CLI only deals with one command at a time, so we can just use the same
70
- // scope for all errors and set it once during initialization.
71
- let errorScope = "unknown";
72
+ // scope for all errors and set it once during initialization (bin/cdktn.js
73
+ // sets it, the bundle copy in bin/cmds/handlers.js counts under it).
74
+ const scopeState = (0, process_state_1.processState)("cdktn.errorScope", () => ({
75
+ scope: "unknown",
76
+ }));
72
77
  exports.Errors = {
73
78
  // Error within our control
74
- Internal: reportPrefixedError("Internal", errorScope),
79
+ Internal: reportPrefixedError("Internal"),
75
80
  // Error in the usage
76
- Usage: reportPrefixedError("Usage", errorScope),
81
+ Usage: reportPrefixedError("Usage"),
77
82
  // Error outside of our control (e.g. terraform failed)
78
- External: reportPrefixedError("External", errorScope),
83
+ External: reportPrefixedError("External"),
79
84
  // Set the scope for all errors
80
85
  setScope(scope) {
81
- errorScope = scope;
82
- Sentry.configureScope((s) => s.setTransactionName(scope));
86
+ scopeState.scope = scope;
87
+ Sentry.getCurrentScope().setTransactionName(scope);
88
+ },
89
+ getScope() {
90
+ return scopeState.scope;
83
91
  },
84
92
  };
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkEsa0NBRUM7QUF0QkQsK0JBQStCO0FBQy9CLG1DQUFtQztBQUNuQyw2Q0FBMkQ7QUFDM0QsdUNBQTRDO0FBQzVDLHFEQUF1QztBQUV2Qyx5Q0FBeUM7QUFDekMsS0FBSyxVQUFVLE1BQU0sQ0FBQyxPQUFlLEVBQUUsT0FBNEI7SUFDakUsTUFBTSxZQUFZLEdBQWlCO1FBQ2pDLE9BQU87UUFDUCxPQUFPLEVBQUUsT0FBTztRQUNoQixPQUFPLEVBQUUsR0FBRyx5QkFBZSxFQUFFO1FBQzdCLFFBQVEsRUFBRSxJQUFJLElBQUksRUFBRTtRQUNwQixPQUFPO0tBQ1IsQ0FBQztJQUVGLE1BQU0sSUFBQSwwQkFBYSxFQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFHRCxTQUFnQixXQUFXLENBQUMsS0FBVSxFQUFFLElBQWU7SUFDckQsT0FBTyxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUM7QUFDeEMsQ0FBQztBQUVELFNBQVMsbUJBQW1CLENBQUMsSUFBZSxFQUFFLE9BQWU7SUFDM0QsT0FBTyxDQUNMLE9BQWUsRUFDZixnQkFBdUIsSUFBSSxLQUFLLEVBQUUsRUFDbEMsT0FBNkIsRUFDN0IsRUFBRTtRQUNGLE1BQU0sQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMvQyxNQUFNLEdBQUcsR0FBUSxJQUFJLEtBQUssQ0FBQyxHQUFHLElBQUksV0FBVyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDckQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztRQUNILEdBQUcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLEdBQUcsQ0FBQyxLQUFLLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQztRQUNoQyxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCw2RUFBNkU7QUFDN0UsOERBQThEO0FBQzlELElBQUksVUFBVSxHQUFHLFNBQVMsQ0FBQztBQUNkLFFBQUEsTUFBTSxHQUFHO0lBQ3BCLDJCQUEyQjtJQUMzQixRQUFRLEVBQUUsbUJBQW1CLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQztJQUNyRCxxQkFBcUI7SUFDckIsS0FBSyxFQUFFLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUM7SUFDL0MsdURBQXVEO0lBQ3ZELFFBQVEsRUFBRSxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDO0lBRXJELCtCQUErQjtJQUMvQixRQUFRLENBQUMsS0FBYTtRQUNwQixVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCB7IFJlcG9ydFBhcmFtcywgUmVwb3J0UmVxdWVzdCB9IGZyb20gXCIuL2NoZWNrcG9pbnRcIjtcbmltcG9ydCB7IERJU1BMQVlfVkVSU0lPTiB9IGZyb20gXCIuL3ZlcnNpb25cIjtcbmltcG9ydCAqIGFzIFNlbnRyeSBmcm9tIFwiQHNlbnRyeS9ub2RlXCI7XG5cbi8vIEVycm9ycyB0aGF0IHdpbGwgZW1pdCB0ZWxlbWV0cnkgZXZlbnRzXG5hc3luYyBmdW5jdGlvbiByZXBvcnQoY29tbWFuZDogc3RyaW5nLCBwYXlsb2FkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XG4gIGNvbnN0IHJlcG9ydFBhcmFtczogUmVwb3J0UGFyYW1zID0ge1xuICAgIGNvbW1hbmQsXG4gICAgcHJvZHVjdDogXCJjZGt0blwiLFxuICAgIHZlcnNpb246IGAke0RJU1BMQVlfVkVSU0lPTn1gLFxuICAgIGRhdGVUaW1lOiBuZXcgRGF0ZSgpLFxuICAgIHBheWxvYWQsXG4gIH07XG5cbiAgYXdhaXQgUmVwb3J0UmVxdWVzdChyZXBvcnRQYXJhbXMpO1xufVxuXG50eXBlIEVycm9yVHlwZSA9IFwiSW50ZXJuYWxcIiB8IFwiRXh0ZXJuYWxcIiB8IFwiVXNhZ2VcIjtcbmV4cG9ydCBmdW5jdGlvbiBJc0Vycm9yVHlwZShlcnJvcjogYW55LCB0eXBlOiBFcnJvclR5cGUpOiBib29sZWFuIHtcbiAgcmV0dXJuIGVycm9yICYmIGVycm9yLl9fdHlwZSA9PT0gdHlwZTtcbn1cblxuZnVuY3Rpb24gcmVwb3J0UHJlZml4ZWRFcnJvcih0eXBlOiBFcnJvclR5cGUsIGNvbW1hbmQ6IHN0cmluZykge1xuICByZXR1cm4gKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBvcmlnaW5hbEVycm9yOiBFcnJvciA9IG5ldyBFcnJvcigpLFxuICAgIGNvbnRleHQ/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICApID0+IHtcbiAgICByZXBvcnQoY29tbWFuZCwgeyAuLi5jb250ZXh0LCBtZXNzYWdlLCB0eXBlIH0pO1xuICAgIGNvbnN0IGVycjogYW55ID0gbmV3IEVycm9yKGAke3R5cGV9IEVycm9yOiAke21lc3NhZ2V9YCk7XG4gICAgT2JqZWN0LmVudHJpZXMoY29udGV4dCB8fCB7fSkuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICBlcnJba2V5XSA9IHZhbHVlO1xuICAgIH0pO1xuICAgIGVyci5fX3R5cGUgPSB0eXBlO1xuICAgIGVyci5zdGFjayA9IG9yaWdpbmFsRXJyb3Iuc3RhY2s7XG4gICAgcmV0dXJuIGVycjtcbiAgfTtcbn1cblxuLy8gVGhlIENMSSBvbmx5IGRlYWxzIHdpdGggb25lIGNvbW1hbmQgYXQgYSB0aW1lLCBzbyB3ZSBjYW4ganVzdCB1c2UgdGhlIHNhbWVcbi8vIHNjb3BlIGZvciBhbGwgZXJyb3JzIGFuZCBzZXQgaXQgb25jZSBkdXJpbmcgaW5pdGlhbGl6YXRpb24uXG5sZXQgZXJyb3JTY29wZSA9IFwidW5rbm93blwiO1xuZXhwb3J0IGNvbnN0IEVycm9ycyA9IHtcbiAgLy8gRXJyb3Igd2l0aGluIG91ciBjb250cm9sXG4gIEludGVybmFsOiByZXBvcnRQcmVmaXhlZEVycm9yKFwiSW50ZXJuYWxcIiwgZXJyb3JTY29wZSksXG4gIC8vIEVycm9yIGluIHRoZSB1c2FnZVxuICBVc2FnZTogcmVwb3J0UHJlZml4ZWRFcnJvcihcIlVzYWdlXCIsIGVycm9yU2NvcGUpLFxuICAvLyBFcnJvciBvdXRzaWRlIG9mIG91ciBjb250cm9sIChlLmcuIHRlcnJhZm9ybSBmYWlsZWQpXG4gIEV4dGVybmFsOiByZXBvcnRQcmVmaXhlZEVycm9yKFwiRXh0ZXJuYWxcIiwgZXJyb3JTY29wZSksXG5cbiAgLy8gU2V0IHRoZSBzY29wZSBmb3IgYWxsIGVycm9yc1xuICBzZXRTY29wZShzY29wZTogc3RyaW5nKSB7XG4gICAgZXJyb3JTY29wZSA9IHNjb3BlO1xuICAgIFNlbnRyeS5jb25maWd1cmVTY29wZSgocykgPT4gcy5zZXRUcmFuc2FjdGlvbk5hbWUoc2NvcGUpKTtcbiAgfSxcbn07XG4iXX0=
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTQSxrQ0FFQztBQUVELDRDQU9DO0FBcEJELCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDbkMscURBQXVDO0FBQ3ZDLDZFQUE2RTtBQUM3RSw4REFBOEQ7QUFDOUQsMkNBQW1FO0FBQ25FLG1EQUErQztBQUcvQyxTQUFnQixXQUFXLENBQUMsS0FBVSxFQUFFLElBQWU7SUFDckQsT0FBTyxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUM7QUFDeEMsQ0FBQztBQUVELFNBQWdCLGdCQUFnQixDQUFDLEtBQWM7SUFDN0MsS0FBSyxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFVLEVBQUUsQ0FBQztRQUM5RCxJQUFJLFdBQVcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUM3QixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQztBQUVELFNBQVMsbUJBQW1CLENBQUMsSUFBZTtJQUMxQyxPQUFPLENBQ0wsT0FBZSxFQUNmLGdCQUF1QixJQUFJLEtBQUssRUFBRSxFQUNsQyxPQUE2QixFQUM3QixFQUFFO1FBQ0YsTUFBTSxHQUFHLEdBQVEsSUFBSSxLQUFLLENBQUMsR0FBRyxJQUFJLFdBQVcsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN4RCxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO1lBQ3JELEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFDSCxHQUFHLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNsQixHQUFHLENBQUMsS0FBSyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUM7UUFDaEMsa0VBQWtFO1FBQ2xFLDZDQUE2QztRQUM3QyxJQUFBLDhCQUFrQixFQUFDLElBQUksRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0MsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsNkVBQTZFO0FBQzdFLDJFQUEyRTtBQUMzRSxxRUFBcUU7QUFDckUsTUFBTSxVQUFVLEdBQUcsSUFBQSw0QkFBWSxFQUFDLGtCQUFrQixFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDekQsS0FBSyxFQUFFLFNBQVM7Q0FDakIsQ0FBQyxDQUFDLENBQUM7QUFDUyxRQUFBLE1BQU0sR0FBRztJQUNwQiwyQkFBMkI7SUFDM0IsUUFBUSxFQUFFLG1CQUFtQixDQUFDLFVBQVUsQ0FBQztJQUN6QyxxQkFBcUI7SUFDckIsS0FBSyxFQUFFLG1CQUFtQixDQUFDLE9BQU8sQ0FBQztJQUNuQyx1REFBdUQ7SUFDdkQsUUFBUSxFQUFFLG1CQUFtQixDQUFDLFVBQVUsQ0FBQztJQUV6QywrQkFBK0I7SUFDL0IsUUFBUSxDQUFDLEtBQWE7UUFDcEIsVUFBVSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDekIsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDO0lBQzFCLENBQUM7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCAqIGFzIFNlbnRyeSBmcm9tIFwiQHNlbnRyeS9ub2RlXCI7XG4vLyB0ZWxlbWV0cnkudHMgbXVzdCBuZXZlciBpbXBvcnQgdGhpcyBtb2R1bGU6IGl0IHdvdWxkIGNsb3NlIGEgY3ljbGUgdGhyb3VnaFxuLy8gdGVycmFmb3JtLnRzIGFuZCBsb2FkIGVycm9ycy50cyBiZWZvcmUgdGhlIGZhY3RvcmllcyBleGlzdC5cbmltcG9ydCB7IENvbW1hbmRFcnJvclR5cGUsIHNlbmRFcnJvclRlbGVtZXRyeSB9IGZyb20gXCIuL3RlbGVtZXRyeVwiO1xuaW1wb3J0IHsgcHJvY2Vzc1N0YXRlIH0gZnJvbSBcIi4vcHJvY2Vzcy1zdGF0ZVwiO1xuXG50eXBlIEVycm9yVHlwZSA9IFwiSW50ZXJuYWxcIiB8IFwiRXh0ZXJuYWxcIiB8IFwiVXNhZ2VcIjtcbmV4cG9ydCBmdW5jdGlvbiBJc0Vycm9yVHlwZShlcnJvcjogYW55LCB0eXBlOiBFcnJvclR5cGUpOiBib29sZWFuIHtcbiAgcmV0dXJuIGVycm9yICYmIGVycm9yLl9fdHlwZSA9PT0gdHlwZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbW1hbmRFcnJvclR5cGUoZXJyb3I6IHVua25vd24pOiBDb21tYW5kRXJyb3JUeXBlIHtcbiAgZm9yIChjb25zdCB0eXBlIG9mIFtcIlVzYWdlXCIsIFwiRXh0ZXJuYWxcIiwgXCJJbnRlcm5hbFwiXSBhcyBjb25zdCkge1xuICAgIGlmIChJc0Vycm9yVHlwZShlcnJvciwgdHlwZSkpIHtcbiAgICAgIHJldHVybiB0eXBlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gXCJ1bmV4cGVjdGVkXCI7XG59XG5cbmZ1bmN0aW9uIHJlcG9ydFByZWZpeGVkRXJyb3IodHlwZTogRXJyb3JUeXBlKSB7XG4gIHJldHVybiAoXG4gICAgbWVzc2FnZTogc3RyaW5nLFxuICAgIG9yaWdpbmFsRXJyb3I6IEVycm9yID0gbmV3IEVycm9yKCksXG4gICAgY29udGV4dD86IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICkgPT4ge1xuICAgIGNvbnN0IGVycjogYW55ID0gbmV3IEVycm9yKGAke3R5cGV9IEVycm9yOiAke21lc3NhZ2V9YCk7XG4gICAgT2JqZWN0LmVudHJpZXMoY29udGV4dCB8fCB7fSkuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICBlcnJba2V5XSA9IHZhbHVlO1xuICAgIH0pO1xuICAgIGVyci5fX3R5cGUgPSB0eXBlO1xuICAgIGVyci5zdGFjayA9IG9yaWdpbmFsRXJyb3Iuc3RhY2s7XG4gICAgLy8gdGhlIHNjb3BlIGlzIHJlYWQgaGVyZSwgbm90IHdoZW4gdGhlIGZhY3RvcnkgaXMgY3JlYXRlZCwgc28gdGhlXG4gICAgLy8gY29tbWFuZCBzZXQgYnkgc2V0U2NvcGUgaXMgdGhlIG9uZSBjb3VudGVkXG4gICAgc2VuZEVycm9yVGVsZW1ldHJ5KHR5cGUsIHNjb3BlU3RhdGUuc2NvcGUpO1xuICAgIHJldHVybiBlcnI7XG4gIH07XG59XG5cbi8vIFRoZSBDTEkgb25seSBkZWFscyB3aXRoIG9uZSBjb21tYW5kIGF0IGEgdGltZSwgc28gd2UgY2FuIGp1c3QgdXNlIHRoZSBzYW1lXG4vLyBzY29wZSBmb3IgYWxsIGVycm9ycyBhbmQgc2V0IGl0IG9uY2UgZHVyaW5nIGluaXRpYWxpemF0aW9uIChiaW4vY2RrdG4uanNcbi8vIHNldHMgaXQsIHRoZSBidW5kbGUgY29weSBpbiBiaW4vY21kcy9oYW5kbGVycy5qcyBjb3VudHMgdW5kZXIgaXQpLlxuY29uc3Qgc2NvcGVTdGF0ZSA9IHByb2Nlc3NTdGF0ZShcImNka3RuLmVycm9yU2NvcGVcIiwgKCkgPT4gKHtcbiAgc2NvcGU6IFwidW5rbm93blwiLFxufSkpO1xuZXhwb3J0IGNvbnN0IEVycm9ycyA9IHtcbiAgLy8gRXJyb3Igd2l0aGluIG91ciBjb250cm9sXG4gIEludGVybmFsOiByZXBvcnRQcmVmaXhlZEVycm9yKFwiSW50ZXJuYWxcIiksXG4gIC8vIEVycm9yIGluIHRoZSB1c2FnZVxuICBVc2FnZTogcmVwb3J0UHJlZml4ZWRFcnJvcihcIlVzYWdlXCIpLFxuICAvLyBFcnJvciBvdXRzaWRlIG9mIG91ciBjb250cm9sIChlLmcuIHRlcnJhZm9ybSBmYWlsZWQpXG4gIEV4dGVybmFsOiByZXBvcnRQcmVmaXhlZEVycm9yKFwiRXh0ZXJuYWxcIiksXG5cbiAgLy8gU2V0IHRoZSBzY29wZSBmb3IgYWxsIGVycm9yc1xuICBzZXRTY29wZShzY29wZTogc3RyaW5nKSB7XG4gICAgc2NvcGVTdGF0ZS5zY29wZSA9IHNjb3BlO1xuICAgIFNlbnRyeS5nZXRDdXJyZW50U2NvcGUoKS5zZXRUcmFuc2FjdGlvbk5hbWUoc2NvcGUpO1xuICB9LFxuXG4gIGdldFNjb3BlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHNjb3BlU3RhdGUuc2NvcGU7XG4gIH0sXG59O1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=errors.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.test.d.ts","sourceRoot":"","sources":["../src/errors.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // Copyright (c) HashiCorp, Inc
4
+ // SPDX-License-Identifier: MPL-2.0
5
+ const errors_1 = require("./errors");
6
+ describe("Errors scope", () => {
7
+ afterEach(() => {
8
+ errors_1.Errors.setScope("unknown");
9
+ });
10
+ // the bundle has one copy of this module per entry point: the command
11
+ // modules in bin/cdktn.js set the scope, bin/cmds/handlers.js reads it
12
+ it("is shared with a second copy of the module", () => {
13
+ let second;
14
+ jest.isolateModules(() => {
15
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
16
+ second = require("./errors").Errors;
17
+ });
18
+ errors_1.Errors.setScope("deploy");
19
+ expect(second.getScope()).toBe("deploy");
20
+ second.setScope("synth");
21
+ expect(errors_1.Errors.getScope()).toBe("synth");
22
+ });
23
+ });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZXJyb3JzLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLHFDQUFrQztBQUVsQyxRQUFRLENBQUMsY0FBYyxFQUFFLEdBQUcsRUFBRTtJQUM1QixTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2IsZUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM3QixDQUFDLENBQUMsQ0FBQztJQUVILHNFQUFzRTtJQUN0RSx1RUFBdUU7SUFDdkUsRUFBRSxDQUFDLDRDQUE0QyxFQUFFLEdBQUcsRUFBRTtRQUNwRCxJQUFJLE1BQWlDLENBQUM7UUFDdEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUU7WUFDdkIsaUVBQWlFO1lBQ2pFLE1BQU0sR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO1FBRUgsZUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxQixNQUFNLENBQUMsTUFBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTFDLE1BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUIsTUFBTSxDQUFDLGVBQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCB7IEVycm9ycyB9IGZyb20gXCIuL2Vycm9yc1wiO1xuXG5kZXNjcmliZShcIkVycm9ycyBzY29wZVwiLCAoKSA9PiB7XG4gIGFmdGVyRWFjaCgoKSA9PiB7XG4gICAgRXJyb3JzLnNldFNjb3BlKFwidW5rbm93blwiKTtcbiAgfSk7XG5cbiAgLy8gdGhlIGJ1bmRsZSBoYXMgb25lIGNvcHkgb2YgdGhpcyBtb2R1bGUgcGVyIGVudHJ5IHBvaW50OiB0aGUgY29tbWFuZFxuICAvLyBtb2R1bGVzIGluIGJpbi9jZGt0bi5qcyBzZXQgdGhlIHNjb3BlLCBiaW4vY21kcy9oYW5kbGVycy5qcyByZWFkcyBpdFxuICBpdChcImlzIHNoYXJlZCB3aXRoIGEgc2Vjb25kIGNvcHkgb2YgdGhlIG1vZHVsZVwiLCAoKSA9PiB7XG4gICAgbGV0IHNlY29uZDogdHlwZW9mIEVycm9ycyB8IHVuZGVmaW5lZDtcbiAgICBqZXN0Lmlzb2xhdGVNb2R1bGVzKCgpID0+IHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG4gICAgICBzZWNvbmQgPSByZXF1aXJlKFwiLi9lcnJvcnNcIikuRXJyb3JzO1xuICAgIH0pO1xuXG4gICAgRXJyb3JzLnNldFNjb3BlKFwiZGVwbG95XCIpO1xuICAgIGV4cGVjdChzZWNvbmQhLmdldFNjb3BlKCkpLnRvQmUoXCJkZXBsb3lcIik7XG5cbiAgICBzZWNvbmQhLnNldFNjb3BlKFwic3ludGhcIik7XG4gICAgZXhwZWN0KEVycm9ycy5nZXRTY29wZSgpKS50b0JlKFwic3ludGhcIik7XG4gIH0pO1xufSk7XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export declare function getProjectId(projectPath?: string): string;
2
+ export declare function getUserId(): string;
3
+ //# sourceMappingURL=identity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAqDA,wBAAgB,YAAY,CAAC,WAAW,SAAgB,GAAG,MAAM,CAEhE;AAED,wBAAgB,SAAS,IAAI,MAAM,CAWlC"}
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.getProjectId = getProjectId;
37
+ exports.getUserId = getUserId;
38
+ // Copyright (c) HashiCorp, Inc
39
+ // SPDX-License-Identifier: MPL-2.0
40
+ const node_crypto_1 = require("node:crypto");
41
+ const os = __importStar(require("os"));
42
+ const path = __importStar(require("path"));
43
+ const fs = __importStar(require("fs-extra"));
44
+ function homeDir() {
45
+ var _a;
46
+ return process.env.CDKTF_HOME
47
+ ? path.resolve(process.env.CDKTF_HOME)
48
+ : path.join(((_a = os.userInfo().homedir) !== null && _a !== void 0 ? _a : os.homedir()).trim() || "/", ".cdktf");
49
+ }
50
+ function getId(filePath, key, forceCreation = false, explanatoryComment) {
51
+ const _uuid = (0, node_crypto_1.randomUUID)(); // create a new UUID in case we don't find one
52
+ let jsonFile;
53
+ try {
54
+ jsonFile = JSON.parse(fs.readFileSync(filePath, "utf-8")); // we found the file
55
+ }
56
+ catch (_a) {
57
+ // we found no file, create one if we're forcing a creation
58
+ if (forceCreation) {
59
+ const _idFile = {}; // compose JSON id file in case we don't find one
60
+ if (explanatoryComment) {
61
+ _idFile["//"] = explanatoryComment.replace(/\n/g, " ");
62
+ }
63
+ _idFile[key] = _uuid;
64
+ fs.ensureDirSync(path.dirname(filePath));
65
+ fs.writeFileSync(filePath, JSON.stringify(_idFile, null, 2));
66
+ }
67
+ return _uuid;
68
+ }
69
+ if (jsonFile[key]) {
70
+ return jsonFile[key]; // we found an id
71
+ }
72
+ else {
73
+ // we found no id, we add it to the file for future use
74
+ fs.writeFileSync(filePath, JSON.stringify({ ...jsonFile, [key]: _uuid }, null, 2));
75
+ return _uuid;
76
+ }
77
+ }
78
+ function getProjectId(projectPath = process.cwd()) {
79
+ return getId(path.resolve(projectPath, "cdktf.json"), "projectId");
80
+ }
81
+ function getUserId() {
82
+ return getId(path.resolve(homeDir(), "config.json"), "userId", true, `This signature is a randomly generated UUID used to anonymously differentiate users in telemetry data in order to inform product direction.
83
+ This signature is random, it is not based on any personally identifiable information.
84
+ To create a new signature, you can simply delete this file at any time.
85
+ See https://cdktn.io/docs/telemetry for more
86
+ information on how to disable it.`);
87
+ }
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaWRlbnRpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFxREEsb0NBRUM7QUFFRCw4QkFXQztBQXBFRCwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLDZDQUF5QztBQUN6Qyx1Q0FBeUI7QUFDekIsMkNBQTZCO0FBQzdCLDZDQUErQjtBQUUvQixTQUFTLE9BQU87O0lBQ2QsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVU7UUFDM0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUM7UUFDdEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ1AsQ0FBQyxNQUFBLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLG1DQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEdBQUcsRUFDckQsUUFBUSxDQUNULENBQUM7QUFDUixDQUFDO0FBRUQsU0FBUyxLQUFLLENBQ1osUUFBZ0IsRUFDaEIsR0FBVyxFQUNYLGFBQWEsR0FBRyxLQUFLLEVBQ3JCLGtCQUEyQjtJQUUzQixNQUFNLEtBQUssR0FBRyxJQUFBLHdCQUFVLEdBQUUsQ0FBQyxDQUFDLDhDQUE4QztJQUUxRSxJQUFJLFFBQVEsQ0FBQztJQUNiLElBQUksQ0FBQztRQUNILFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxvQkFBb0I7SUFDakYsQ0FBQztJQUFDLFdBQU0sQ0FBQztRQUNQLDJEQUEyRDtRQUMzRCxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ2xCLE1BQU0sT0FBTyxHQUFHLEVBQTRCLENBQUMsQ0FBQyxpREFBaUQ7WUFDL0YsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO2dCQUN2QixPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztZQUN6RCxDQUFDO1lBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUNyQixFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUN6QyxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsSUFBSSxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNsQixPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGlCQUFpQjtJQUN6QyxDQUFDO1NBQU0sQ0FBQztRQUNOLHVEQUF1RDtRQUN2RCxFQUFFLENBQUMsYUFBYSxDQUNkLFFBQVEsRUFDUixJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsR0FBRyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQ3ZELENBQUM7UUFDRixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBZ0IsWUFBWSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFO0lBQ3RELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLFlBQVksQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQ3JFLENBQUM7QUFFRCxTQUFnQixTQUFTO0lBQ3ZCLE9BQU8sS0FBSyxDQUNWLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsYUFBYSxDQUFDLEVBQ3RDLFFBQVEsRUFDUixJQUFJLEVBQ0o7Ozs7a0NBSThCLENBQy9CLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCB7IHJhbmRvbVVVSUQgfSBmcm9tIFwibm9kZTpjcnlwdG9cIjtcbmltcG9ydCAqIGFzIG9zIGZyb20gXCJvc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzLWV4dHJhXCI7XG5cbmZ1bmN0aW9uIGhvbWVEaXIoKSB7XG4gIHJldHVybiBwcm9jZXNzLmVudi5DREtURl9IT01FXG4gICAgPyBwYXRoLnJlc29sdmUocHJvY2Vzcy5lbnYuQ0RLVEZfSE9NRSlcbiAgICA6IHBhdGguam9pbihcbiAgICAgICAgKG9zLnVzZXJJbmZvKCkuaG9tZWRpciA/PyBvcy5ob21lZGlyKCkpLnRyaW0oKSB8fCBcIi9cIixcbiAgICAgICAgXCIuY2RrdGZcIixcbiAgICAgICk7XG59XG5cbmZ1bmN0aW9uIGdldElkKFxuICBmaWxlUGF0aDogc3RyaW5nLFxuICBrZXk6IHN0cmluZyxcbiAgZm9yY2VDcmVhdGlvbiA9IGZhbHNlLFxuICBleHBsYW5hdG9yeUNvbW1lbnQ/OiBzdHJpbmcsXG4pOiBzdHJpbmcge1xuICBjb25zdCBfdXVpZCA9IHJhbmRvbVVVSUQoKTsgLy8gY3JlYXRlIGEgbmV3IFVVSUQgaW4gY2FzZSB3ZSBkb24ndCBmaW5kIG9uZVxuXG4gIGxldCBqc29uRmlsZTtcbiAgdHJ5IHtcbiAgICBqc29uRmlsZSA9IEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKGZpbGVQYXRoLCBcInV0Zi04XCIpKTsgLy8gd2UgZm91bmQgdGhlIGZpbGVcbiAgfSBjYXRjaCB7XG4gICAgLy8gd2UgZm91bmQgbm8gZmlsZSwgY3JlYXRlIG9uZSBpZiB3ZSdyZSBmb3JjaW5nIGEgY3JlYXRpb25cbiAgICBpZiAoZm9yY2VDcmVhdGlvbikge1xuICAgICAgY29uc3QgX2lkRmlsZSA9IHt9IGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz47IC8vIGNvbXBvc2UgSlNPTiBpZCBmaWxlIGluIGNhc2Ugd2UgZG9uJ3QgZmluZCBvbmVcbiAgICAgIGlmIChleHBsYW5hdG9yeUNvbW1lbnQpIHtcbiAgICAgICAgX2lkRmlsZVtcIi8vXCJdID0gZXhwbGFuYXRvcnlDb21tZW50LnJlcGxhY2UoL1xcbi9nLCBcIiBcIik7XG4gICAgICB9XG4gICAgICBfaWRGaWxlW2tleV0gPSBfdXVpZDtcbiAgICAgIGZzLmVuc3VyZURpclN5bmMocGF0aC5kaXJuYW1lKGZpbGVQYXRoKSk7XG4gICAgICBmcy53cml0ZUZpbGVTeW5jKGZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeShfaWRGaWxlLCBudWxsLCAyKSk7XG4gICAgfVxuICAgIHJldHVybiBfdXVpZDtcbiAgfVxuXG4gIGlmIChqc29uRmlsZVtrZXldKSB7XG4gICAgcmV0dXJuIGpzb25GaWxlW2tleV07IC8vIHdlIGZvdW5kIGFuIGlkXG4gIH0gZWxzZSB7XG4gICAgLy8gd2UgZm91bmQgbm8gaWQsIHdlIGFkZCBpdCB0byB0aGUgZmlsZSBmb3IgZnV0dXJlIHVzZVxuICAgIGZzLndyaXRlRmlsZVN5bmMoXG4gICAgICBmaWxlUGF0aCxcbiAgICAgIEpTT04uc3RyaW5naWZ5KHsgLi4uanNvbkZpbGUsIFtrZXldOiBfdXVpZCB9LCBudWxsLCAyKSxcbiAgICApO1xuICAgIHJldHVybiBfdXVpZDtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHJvamVjdElkKHByb2plY3RQYXRoID0gcHJvY2Vzcy5jd2QoKSk6IHN0cmluZyB7XG4gIHJldHVybiBnZXRJZChwYXRoLnJlc29sdmUocHJvamVjdFBhdGgsIFwiY2RrdGYuanNvblwiKSwgXCJwcm9qZWN0SWRcIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVc2VySWQoKTogc3RyaW5nIHtcbiAgcmV0dXJuIGdldElkKFxuICAgIHBhdGgucmVzb2x2ZShob21lRGlyKCksIFwiY29uZmlnLmpzb25cIiksXG4gICAgXCJ1c2VySWRcIixcbiAgICB0cnVlLFxuICAgIGBUaGlzIHNpZ25hdHVyZSBpcyBhIHJhbmRvbWx5IGdlbmVyYXRlZCBVVUlEIHVzZWQgdG8gYW5vbnltb3VzbHkgZGlmZmVyZW50aWF0ZSB1c2VycyBpbiB0ZWxlbWV0cnkgZGF0YSBpbiBvcmRlciB0byBpbmZvcm0gcHJvZHVjdCBkaXJlY3Rpb24uXG5UaGlzIHNpZ25hdHVyZSBpcyByYW5kb20sIGl0IGlzIG5vdCBiYXNlZCBvbiBhbnkgcGVyc29uYWxseSBpZGVudGlmaWFibGUgaW5mb3JtYXRpb24uXG5UbyBjcmVhdGUgYSBuZXcgc2lnbmF0dXJlLCB5b3UgY2FuIHNpbXBseSBkZWxldGUgdGhpcyBmaWxlIGF0IGFueSB0aW1lLlxuU2VlIGh0dHBzOi8vY2RrdG4uaW8vZG9jcy90ZWxlbWV0cnkgZm9yIG1vcmVcbmluZm9ybWF0aW9uIG9uIGhvdyB0byBkaXNhYmxlIGl0LmAsXG4gICk7XG59XG4iXX0=
package/build/index.d.ts CHANGED
@@ -1,15 +1,16 @@
1
- export * from "./checkpoint";
2
1
  export * from "./construct-maker-target";
3
2
  export * from "./config";
4
3
  export * from "./debug";
5
4
  export * from "./environment";
6
5
  export * from "./errors";
7
6
  export * from "./gradle";
7
+ export * from "./identity";
8
8
  export * from "./logging";
9
9
  export * from "./module-schema";
10
10
  export * from "./node-package-manager";
11
11
  export * from "./provider-schema";
12
12
  export * from "./registry";
13
+ export * from "./telemetry";
13
14
  export * from "./terraform-module";
14
15
  export * from "./terraform";
15
16
  export * from "./util";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,0BAA0B,CAAC;AACzC,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC"}
package/build/index.js CHANGED
@@ -16,20 +16,21 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
17
17
  };
18
18
  Object.defineProperty(exports, "__esModule", { value: true });
19
- __exportStar(require("./checkpoint"), exports);
20
19
  __exportStar(require("./construct-maker-target"), exports);
21
20
  __exportStar(require("./config"), exports);
22
21
  __exportStar(require("./debug"), exports);
23
22
  __exportStar(require("./environment"), exports);
24
23
  __exportStar(require("./errors"), exports);
25
24
  __exportStar(require("./gradle"), exports);
25
+ __exportStar(require("./identity"), exports);
26
26
  __exportStar(require("./logging"), exports);
27
27
  __exportStar(require("./module-schema"), exports);
28
28
  __exportStar(require("./node-package-manager"), exports);
29
29
  __exportStar(require("./provider-schema"), exports);
30
30
  __exportStar(require("./registry"), exports);
31
+ __exportStar(require("./telemetry"), exports);
31
32
  __exportStar(require("./terraform-module"), exports);
32
33
  __exportStar(require("./terraform"), exports);
33
34
  __exportStar(require("./util"), exports);
34
35
  __exportStar(require("./version"), exports);
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLCtCQUErQjtBQUMvQixtQ0FBbUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbkMsK0NBQTZCO0FBQzdCLDJEQUF5QztBQUN6QywyQ0FBeUI7QUFDekIsMENBQXdCO0FBQ3hCLGdEQUE4QjtBQUM5QiwyQ0FBeUI7QUFDekIsMkNBQXlCO0FBQ3pCLDRDQUEwQjtBQUMxQixrREFBZ0M7QUFDaEMseURBQXVDO0FBQ3ZDLG9EQUFrQztBQUNsQyw2Q0FBMkI7QUFDM0IscURBQW1DO0FBQ25DLDhDQUE0QjtBQUM1Qix5Q0FBdUI7QUFDdkIsNENBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcblxuZXhwb3J0ICogZnJvbSBcIi4vY2hlY2twb2ludFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29uc3RydWN0LW1ha2VyLXRhcmdldFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29uZmlnXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kZWJ1Z1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW52aXJvbm1lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Vycm9yc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZ3JhZGxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9sb2dnaW5nXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2R1bGUtc2NoZW1hXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ub2RlLXBhY2thZ2UtbWFuYWdlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcHJvdmlkZXItc2NoZW1hXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yZWdpc3RyeVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGVycmFmb3JtLW1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGVycmFmb3JtXCI7XG5leHBvcnQgKiBmcm9tIFwiLi91dGlsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi92ZXJzaW9uXCI7XG4iXX0=
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLCtCQUErQjtBQUMvQixtQ0FBbUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbkMsMkRBQXlDO0FBQ3pDLDJDQUF5QjtBQUN6QiwwQ0FBd0I7QUFDeEIsZ0RBQThCO0FBQzlCLDJDQUF5QjtBQUN6QiwyQ0FBeUI7QUFDekIsNkNBQTJCO0FBQzNCLDRDQUEwQjtBQUMxQixrREFBZ0M7QUFDaEMseURBQXVDO0FBQ3ZDLG9EQUFrQztBQUNsQyw2Q0FBMkI7QUFDM0IsOENBQTRCO0FBQzVCLHFEQUFtQztBQUNuQyw4Q0FBNEI7QUFDNUIseUNBQXVCO0FBQ3ZCLDRDQUEwQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5cbmV4cG9ydCAqIGZyb20gXCIuL2NvbnN0cnVjdC1tYWtlci10YXJnZXRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbmZpZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGVidWdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Vudmlyb25tZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lcnJvcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2dyYWRsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vaWRlbnRpdHlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xvZ2dpbmdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZHVsZS1zY2hlbWFcIjtcbmV4cG9ydCAqIGZyb20gXCIuL25vZGUtcGFja2FnZS1tYW5hZ2VyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wcm92aWRlci1zY2hlbWFcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3JlZ2lzdHJ5XCI7XG5leHBvcnQgKiBmcm9tIFwiLi90ZWxlbWV0cnlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RlcnJhZm9ybS1tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RlcnJhZm9ybVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXRpbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdmVyc2lvblwiO1xuIl19
@@ -0,0 +1,2 @@
1
+ export declare function processState<T extends object>(key: string, init: () => T): T;
2
+ //# sourceMappingURL=process-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-state.d.ts","sourceRoot":"","sources":["../src/process-state.ts"],"names":[],"mappings":"AAMA,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAG5E"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ // Copyright (c) HashiCorp, Inc
3
+ // SPDX-License-Identifier: MPL-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.processState = processState;
6
+ // The CLI bundle carries one copy of commons per esbuild entry point
7
+ // (bin/cdktn.js and bin/cmds/handlers.js); state a command sets in one copy
8
+ // and reads in the other has to live on globalThis, keyed by a shared symbol.
9
+ function processState(key, init) {
10
+ var _a;
11
+ var _b;
12
+ const globals = globalThis;
13
+ return ((_a = globals[_b = Symbol.for(key)]) !== null && _a !== void 0 ? _a : (globals[_b] = init()));
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm9jZXNzLXN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DOztBQUtuQyxvQ0FHQztBQU5ELHFFQUFxRTtBQUNyRSw0RUFBNEU7QUFDNUUsOEVBQThFO0FBQzlFLFNBQWdCLFlBQVksQ0FBbUIsR0FBVyxFQUFFLElBQWE7OztJQUN2RSxNQUFNLE9BQU8sR0FBRyxVQUE4QyxDQUFDO0lBQy9ELE9BQU8sT0FBQyxPQUFPLE1BQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMscUNBQXZCLE9BQU8sT0FBc0IsSUFBSSxFQUFFLEVBQUMsQ0FBQztBQUMvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcblxuLy8gVGhlIENMSSBidW5kbGUgY2FycmllcyBvbmUgY29weSBvZiBjb21tb25zIHBlciBlc2J1aWxkIGVudHJ5IHBvaW50XG4vLyAoYmluL2Nka3RuLmpzIGFuZCBiaW4vY21kcy9oYW5kbGVycy5qcyk7IHN0YXRlIGEgY29tbWFuZCBzZXRzIGluIG9uZSBjb3B5XG4vLyBhbmQgcmVhZHMgaW4gdGhlIG90aGVyIGhhcyB0byBsaXZlIG9uIGdsb2JhbFRoaXMsIGtleWVkIGJ5IGEgc2hhcmVkIHN5bWJvbC5cbmV4cG9ydCBmdW5jdGlvbiBwcm9jZXNzU3RhdGU8VCBleHRlbmRzIG9iamVjdD4oa2V5OiBzdHJpbmcsIGluaXQ6ICgpID0+IFQpOiBUIHtcbiAgY29uc3QgZ2xvYmFscyA9IGdsb2JhbFRoaXMgYXMgeyBba2V5OiBzeW1ib2xdOiBUIHwgdW5kZWZpbmVkIH07XG4gIHJldHVybiAoZ2xvYmFsc1tTeW1ib2wuZm9yKGtleSldID8/PSBpbml0KCkpO1xufVxuIl19