@matter/tools 0.12.4-alpha.0-20250211-56b2c53a0 → 0.12.4-alpha.0-20250213-1187f81eb

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 (67) hide show
  1. package/dist/cjs/building/builder.js +2 -2
  2. package/dist/cjs/building/builder.js.map +1 -1
  3. package/dist/cjs/building/cli.d.ts.map +1 -1
  4. package/dist/cjs/building/cli.js +88 -10
  5. package/dist/cjs/building/cli.js.map +2 -2
  6. package/dist/cjs/building/cycles.d.ts +9 -0
  7. package/dist/cjs/building/cycles.d.ts.map +1 -0
  8. package/dist/cjs/building/cycles.js +124 -0
  9. package/dist/cjs/building/cycles.js.map +6 -0
  10. package/dist/cjs/building/graph.js +1 -1
  11. package/dist/cjs/building/graph.js.map +1 -1
  12. package/dist/cjs/building/project-builder.js +2 -2
  13. package/dist/cjs/building/project-builder.js.map +1 -1
  14. package/dist/cjs/util/bootstrap.mjs +8 -1
  15. package/dist/cjs/util/import-aliases.d.ts +14 -0
  16. package/dist/cjs/util/import-aliases.d.ts.map +1 -0
  17. package/dist/cjs/util/import-aliases.js +82 -0
  18. package/dist/cjs/util/import-aliases.js.map +6 -0
  19. package/dist/cjs/util/package.d.ts +2 -1
  20. package/dist/cjs/util/package.d.ts.map +1 -1
  21. package/dist/cjs/util/package.js +15 -10
  22. package/dist/cjs/util/package.js.map +1 -1
  23. package/dist/cjs/util/progress.d.ts +2 -1
  24. package/dist/cjs/util/progress.d.ts.map +1 -1
  25. package/dist/cjs/util/progress.js +4 -1
  26. package/dist/cjs/util/progress.js.map +1 -1
  27. package/dist/cjs/versioning/cli.js +1 -1
  28. package/dist/cjs/versioning/cli.js.map +1 -1
  29. package/dist/esm/building/builder.js +3 -3
  30. package/dist/esm/building/builder.js.map +1 -1
  31. package/dist/esm/building/cli.d.ts.map +1 -1
  32. package/dist/esm/building/cli.js +89 -11
  33. package/dist/esm/building/cli.js.map +2 -2
  34. package/dist/esm/building/cycles.d.ts +9 -0
  35. package/dist/esm/building/cycles.d.ts.map +1 -0
  36. package/dist/esm/building/cycles.js +94 -0
  37. package/dist/esm/building/cycles.js.map +6 -0
  38. package/dist/esm/building/graph.js +2 -2
  39. package/dist/esm/building/graph.js.map +1 -1
  40. package/dist/esm/building/project-builder.js +3 -3
  41. package/dist/esm/building/project-builder.js.map +1 -1
  42. package/dist/esm/util/bootstrap.mjs +8 -1
  43. package/dist/esm/util/import-aliases.d.ts +14 -0
  44. package/dist/esm/util/import-aliases.d.ts.map +1 -0
  45. package/dist/esm/util/import-aliases.js +62 -0
  46. package/dist/esm/util/import-aliases.js.map +6 -0
  47. package/dist/esm/util/package.d.ts +2 -1
  48. package/dist/esm/util/package.d.ts.map +1 -1
  49. package/dist/esm/util/package.js +16 -11
  50. package/dist/esm/util/package.js.map +1 -1
  51. package/dist/esm/util/progress.d.ts +2 -1
  52. package/dist/esm/util/progress.d.ts.map +1 -1
  53. package/dist/esm/util/progress.js +5 -2
  54. package/dist/esm/util/progress.js.map +1 -1
  55. package/dist/esm/versioning/cli.js +2 -2
  56. package/dist/esm/versioning/cli.js.map +1 -1
  57. package/package.json +6 -4
  58. package/src/building/builder.ts +2 -2
  59. package/src/building/cli.ts +25 -1
  60. package/src/building/cycles.ts +108 -0
  61. package/src/building/graph.ts +1 -1
  62. package/src/building/project-builder.ts +2 -2
  63. package/src/util/bootstrap.mjs +8 -1
  64. package/src/util/import-aliases.ts +79 -0
  65. package/src/util/package.ts +15 -10
  66. package/src/util/progress.ts +5 -1
  67. package/src/versioning/cli.ts +1 -1
@@ -0,0 +1,94 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Project CHIP Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { readFile } from "fs/promises";
7
+ import detective from "detective-typescript";
8
+ import { dirname, relative, resolve } from "path";
9
+ import { std } from "../ansi-text/std.js";
10
+ import { ansi } from "../ansi-text/text-builder.js";
11
+ async function reportCycles(pkg, progress) {
12
+ const cycles = await progress.run(pkg.name, () => identifyCycles(pkg, progress));
13
+ if (cycles) {
14
+ printCycles(pkg, cycles);
15
+ }
16
+ }
17
+ async function identifyCycles(pkg, progress) {
18
+ const deps = {};
19
+ for (const filename of await pkg.glob("{src,test}/**/*.ts")) {
20
+ const contents = await readFile(filename, "utf-8");
21
+ const fileDeps = detective(contents, {
22
+ skipTypeImports: true,
23
+ skipAsyncImports: true
24
+ });
25
+ deps[filename] = resolveDeps(pkg, filename, fileDeps);
26
+ }
27
+ const cycles = [];
28
+ for (const filename in deps) {
29
+ visit(filename, []);
30
+ }
31
+ function visit(filename, breadcrumb) {
32
+ progress.refresh();
33
+ const fileDeps = deps[filename] ?? deps[filename.replace(/\.js$/, ".ts")];
34
+ if (fileDeps === void 0) {
35
+ return;
36
+ }
37
+ const previousIndex = breadcrumb.indexOf(filename);
38
+ if (previousIndex !== -1) {
39
+ const newCycle = breadcrumb.slice(previousIndex);
40
+ for (const cycle of cycles) {
41
+ const filenameOffset = cycle.indexOf(filename);
42
+ if (cycle.length !== newCycle.length) {
43
+ continue;
44
+ }
45
+ if (filenameOffset === -1) {
46
+ continue;
47
+ }
48
+ let i = 0;
49
+ for (i = 0; i < newCycle.length; i++) {
50
+ if (newCycle[i] !== cycle[(filenameOffset + i) % newCycle.length]) {
51
+ break;
52
+ }
53
+ }
54
+ if (i === newCycle.length) {
55
+ return;
56
+ }
57
+ }
58
+ cycles.push(newCycle);
59
+ return;
60
+ }
61
+ breadcrumb = [...breadcrumb, filename];
62
+ for (const dep of fileDeps) {
63
+ visit(dep, breadcrumb);
64
+ }
65
+ }
66
+ return cycles.length ? cycles : void 0;
67
+ }
68
+ function printCycles(pkg, cycles) {
69
+ std.out(ansi.red("Cycles detected:"), "\n");
70
+ const src = pkg.resolve("src");
71
+ for (const cycle of cycles) {
72
+ std.out(" ", cycle.map((name) => ansi.bright.blue(relative(src, name))).join(" \u2192 "), " \u21A9\n");
73
+ }
74
+ }
75
+ function resolveDeps(pkg, sourceFilename, deps) {
76
+ const dir = dirname(sourceFilename);
77
+ const aliases = pkg.importAliases;
78
+ const resolved = Array();
79
+ for (let dep of deps) {
80
+ let base = dir;
81
+ if (dep.startsWith("#")) {
82
+ dep = aliases.rewrite(dep);
83
+ base = pkg.path;
84
+ }
85
+ if (dep.startsWith("./")) {
86
+ resolved.push(resolve(base, dep));
87
+ }
88
+ }
89
+ return resolved;
90
+ }
91
+ export {
92
+ reportCycles
93
+ };
94
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2J1aWxkaW5nL2N5Y2xlcy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMjItMjAyNSBQcm9qZWN0IENISVAgQXV0aG9yc1xuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiAqL1xuXG5pbXBvcnQgeyByZWFkRmlsZSB9IGZyb20gXCJmcy9wcm9taXNlc1wiO1xuaW1wb3J0IHsgUGFja2FnZSB9IGZyb20gXCIuLi91dGlsL3BhY2thZ2UuanNcIjtcbmltcG9ydCB7IFByb2dyZXNzIH0gZnJvbSBcIi4uL3V0aWwvcHJvZ3Jlc3MuanNcIjtcblxuLy8gQHRzLWV4cGVjdC1lcnJvciB3ZSBkb24ndCBoYXZlIHR5cGVzIGZvciBkZXRlY3RpdmUtdHlwZXNjcmlwdFxuaW1wb3J0IGRldGVjdGl2ZSBmcm9tIFwiZGV0ZWN0aXZlLXR5cGVzY3JpcHRcIjtcbmltcG9ydCB7IGRpcm5hbWUsIHJlbGF0aXZlLCByZXNvbHZlIH0gZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IHN0ZCB9IGZyb20gXCIuLi9hbnNpLXRleHQvc3RkLmpzXCI7XG5pbXBvcnQgeyBhbnNpIH0gZnJvbSBcIi4uL2Fuc2ktdGV4dC90ZXh0LWJ1aWxkZXIuanNcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlcG9ydEN5Y2xlcyhwa2c6IFBhY2thZ2UsIHByb2dyZXNzOiBQcm9ncmVzcykge1xuICAgIGNvbnN0IGN5Y2xlcyA9IGF3YWl0IHByb2dyZXNzLnJ1bihwa2cubmFtZSwgKCkgPT4gaWRlbnRpZnlDeWNsZXMocGtnLCBwcm9ncmVzcykpO1xuICAgIGlmIChjeWNsZXMpIHtcbiAgICAgICAgcHJpbnRDeWNsZXMocGtnLCBjeWNsZXMpO1xuICAgIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gaWRlbnRpZnlDeWNsZXMocGtnOiBQYWNrYWdlLCBwcm9ncmVzczogUHJvZ3Jlc3MpIHtcbiAgICBjb25zdCBkZXBzID0ge30gYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nW10+O1xuICAgIGZvciAoY29uc3QgZmlsZW5hbWUgb2YgYXdhaXQgcGtnLmdsb2IoXCJ7c3JjLHRlc3R9LyoqLyoudHNcIikpIHtcbiAgICAgICAgY29uc3QgY29udGVudHMgPSBhd2FpdCByZWFkRmlsZShmaWxlbmFtZSwgXCJ1dGYtOFwiKTtcbiAgICAgICAgY29uc3QgZmlsZURlcHMgPSBkZXRlY3RpdmUoY29udGVudHMsIHtcbiAgICAgICAgICAgIHNraXBUeXBlSW1wb3J0czogdHJ1ZSxcbiAgICAgICAgICAgIHNraXBBc3luY0ltcG9ydHM6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgICBkZXBzW2ZpbGVuYW1lXSA9IHJlc29sdmVEZXBzKHBrZywgZmlsZW5hbWUsIGZpbGVEZXBzKTtcbiAgICB9XG5cbiAgICBjb25zdCBjeWNsZXMgPSBbXSBhcyBzdHJpbmdbXVtdO1xuICAgIGZvciAoY29uc3QgZmlsZW5hbWUgaW4gZGVwcykge1xuICAgICAgICB2aXNpdChmaWxlbmFtZSwgW10pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHZpc2l0KGZpbGVuYW1lOiBzdHJpbmcsIGJyZWFkY3J1bWI6IHN0cmluZ1tdKSB7XG4gICAgICAgIHByb2dyZXNzLnJlZnJlc2goKTtcbiAgICAgICAgY29uc3QgZmlsZURlcHMgPSBkZXBzW2ZpbGVuYW1lXSA/PyBkZXBzW2ZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzJC8sIFwiLnRzXCIpXTtcbiAgICAgICAgaWYgKGZpbGVEZXBzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHByZXZpb3VzSW5kZXggPSBicmVhZGNydW1iLmluZGV4T2YoZmlsZW5hbWUpO1xuICAgICAgICBpZiAocHJldmlvdXNJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld0N5Y2xlID0gYnJlYWRjcnVtYi5zbGljZShwcmV2aW91c0luZGV4KTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgY3ljbGUgb2YgY3ljbGVzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsZW5hbWVPZmZzZXQgPSBjeWNsZS5pbmRleE9mKGZpbGVuYW1lKTtcbiAgICAgICAgICAgICAgICBpZiAoY3ljbGUubGVuZ3RoICE9PSBuZXdDeWNsZS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChmaWxlbmFtZU9mZnNldCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbGV0IGkgPSAwO1xuICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBuZXdDeWNsZS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBpZiAobmV3Q3ljbGVbaV0gIT09IGN5Y2xlWyhmaWxlbmFtZU9mZnNldCArIGkpICUgbmV3Q3ljbGUubGVuZ3RoXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoaSA9PT0gbmV3Q3ljbGUubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjeWNsZXMucHVzaChuZXdDeWNsZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBicmVhZGNydW1iID0gWy4uLmJyZWFkY3J1bWIsIGZpbGVuYW1lXTtcbiAgICAgICAgZm9yIChjb25zdCBkZXAgb2YgZmlsZURlcHMpIHtcbiAgICAgICAgICAgIHZpc2l0KGRlcCwgYnJlYWRjcnVtYik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY3ljbGVzLmxlbmd0aCA/IGN5Y2xlcyA6IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gcHJpbnRDeWNsZXMocGtnOiBQYWNrYWdlLCBjeWNsZXM6IHN0cmluZ1tdW10pIHtcbiAgICBzdGQub3V0KGFuc2kucmVkKFwiQ3ljbGVzIGRldGVjdGVkOlwiKSwgXCJcXG5cIik7XG4gICAgY29uc3Qgc3JjID0gcGtnLnJlc29sdmUoXCJzcmNcIik7XG4gICAgZm9yIChjb25zdCBjeWNsZSBvZiBjeWNsZXMpIHtcbiAgICAgICAgc3RkLm91dChcIiAgXCIsIGN5Y2xlLm1hcChuYW1lID0+IGFuc2kuYnJpZ2h0LmJsdWUocmVsYXRpdmUoc3JjLCBuYW1lKSkpLmpvaW4oXCIgXHUyMTkyIFwiKSwgXCIgXHUyMUE5XFxuXCIpO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gcmVzb2x2ZURlcHMocGtnOiBQYWNrYWdlLCBzb3VyY2VGaWxlbmFtZTogc3RyaW5nLCBkZXBzOiBzdHJpbmdbXSkge1xuICAgIGNvbnN0IGRpciA9IGRpcm5hbWUoc291cmNlRmlsZW5hbWUpO1xuICAgIGNvbnN0IGFsaWFzZXMgPSBwa2cuaW1wb3J0QWxpYXNlcztcbiAgICBjb25zdCByZXNvbHZlZCA9IEFycmF5PHN0cmluZz4oKTtcblxuICAgIGZvciAobGV0IGRlcCBvZiBkZXBzKSB7XG4gICAgICAgIGxldCBiYXNlID0gZGlyO1xuICAgICAgICBpZiAoZGVwLnN0YXJ0c1dpdGgoXCIjXCIpKSB7XG4gICAgICAgICAgICBkZXAgPSBhbGlhc2VzLnJld3JpdGUoZGVwKTtcbiAgICAgICAgICAgIGJhc2UgPSBwa2cucGF0aDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGVwLnN0YXJ0c1dpdGgoXCIuL1wiKSkge1xuICAgICAgICAgICAgcmVzb2x2ZWQucHVzaChyZXNvbHZlKGJhc2UsIGRlcCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc29sdmVkO1xufVxuIl0sCiAgIm1h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
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/building/cycles.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,gBAAgB;AAKzB,OAAO,eAAe;AACtB,SAAS,SAAS,UAAU,eAAe;AAC3C,SAAS,WAAW;AACpB,SAAS,YAAY;AAErB,eAAsB,aAAa,KAAc,UAAoB;AACjE,QAAM,SAAS,MAAM,SAAS,IAAI,IAAI,MAAM,MAAM,eAAe,KAAK,QAAQ,CAAC;AAC/E,MAAI,QAAQ;AACR,gBAAY,KAAK,MAAM;AAAA,EAC3B;AACJ;AAEA,eAAe,eAAe,KAAc,UAAoB;AAC5D,QAAM,OAAO,CAAC;AACd,aAAW,YAAY,MAAM,IAAI,KAAK,oBAAoB,GAAG;AACzD,UAAM,WAAW,MAAM,SAAS,UAAU,OAAO;AACjD,UAAM,WAAW,UAAU,UAAU;AAAA,MACjC,iBAAiB;AAAA,MACjB,kBAAkB;AAAA,IACtB,CAAC;AACD,SAAK,QAAQ,IAAI,YAAY,KAAK,UAAU,QAAQ;AAAA,EACxD;AAEA,QAAM,SAAS,CAAC;AAChB,aAAW,YAAY,MAAM;AACzB,UAAM,UAAU,CAAC,CAAC;AAAA,EACtB;AAEA,WAAS,MAAM,UAAkB,YAAsB;AACnD,aAAS,QAAQ;AACjB,UAAM,WAAW,KAAK,QAAQ,KAAK,KAAK,SAAS,QAAQ,SAAS,KAAK,CAAC;AACxE,QAAI,aAAa,QAAW;AACxB;AAAA,IACJ;AAEA,UAAM,gBAAgB,WAAW,QAAQ,QAAQ;AACjD,QAAI,kBAAkB,IAAI;AACtB,YAAM,WAAW,WAAW,MAAM,aAAa;AAC/C,iBAAW,SAAS,QAAQ;AACxB,cAAM,iBAAiB,MAAM,QAAQ,QAAQ;AAC7C,YAAI,MAAM,WAAW,SAAS,QAAQ;AAClC;AAAA,QACJ;AACA,YAAI,mBAAmB,IAAI;AACvB;AAAA,QACJ;AAEA,YAAI,IAAI;AACR,aAAK,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;AAClC,cAAI,SAAS,CAAC,MAAM,OAAO,iBAAiB,KAAK,SAAS,MAAM,GAAG;AAC/D;AAAA,UACJ;AAAA,QACJ;AAEA,YAAI,MAAM,SAAS,QAAQ;AACvB;AAAA,QACJ;AAAA,MACJ;AACA,aAAO,KAAK,QAAQ;AACpB;AAAA,IACJ;AAEA,iBAAa,CAAC,GAAG,YAAY,QAAQ;AACrC,eAAW,OAAO,UAAU;AACxB,YAAM,KAAK,UAAU;AAAA,IACzB;AAAA,EACJ;AAEA,SAAO,OAAO,SAAS,SAAS;AACpC;AAEA,SAAS,YAAY,KAAc,QAAoB;AACnD,MAAI,IAAI,KAAK,IAAI,kBAAkB,GAAG,IAAI;AAC1C,QAAM,MAAM,IAAI,QAAQ,KAAK;AAC7B,aAAW,SAAS,QAAQ;AACxB,QAAI,IAAI,MAAM,MAAM,IAAI,UAAQ,KAAK,OAAO,KAAK,SAAS,KAAK,IAAI,CAAC,CAAC,EAAE,KAAK,UAAK,GAAG,WAAM;AAAA,EAC9F;AACJ;AAEA,SAAS,YAAY,KAAc,gBAAwB,MAAgB;AACvE,QAAM,MAAM,QAAQ,cAAc;AAClC,QAAM,UAAU,IAAI;AACpB,QAAM,WAAW,MAAc;AAE/B,WAAS,OAAO,MAAM;AAClB,QAAI,OAAO;AACX,QAAI,IAAI,WAAW,GAAG,GAAG;AACrB,YAAM,QAAQ,QAAQ,GAAG;AACzB,aAAO,IAAI;AAAA,IACf;AACA,QAAI,IAAI,WAAW,IAAI,GAAG;AACtB,eAAS,KAAK,QAAQ,MAAM,GAAG,CAAC;AAAA,IACpC;AAAA,EACJ;AAEA,SAAO;AACX;",
5
+ "names": []
6
+ }
@@ -107,7 +107,7 @@ class Graph {
107
107
  progress.info("built", formatTime(node.info.timestamp ?? 0));
108
108
  progress.info("dirty", node.isDirty ? colors.dim.red("yes") : colors.dim.green("no"));
109
109
  progress.info("dependencies", node.dependencies.map(formatDep).join(", "));
110
- progress.shutdown();
110
+ progress.close();
111
111
  }
112
112
  }
113
113
  static async #createGraph(nodes) {
@@ -187,4 +187,4 @@ function formatDep(node) {
187
187
  export {
188
188
  Graph
189
189
  };
190
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2J1aWxkaW5nL2dyYXBoLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAyMi0yMDI1IE1hdHRlci5qcyBBdXRob3JzXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuICovXG5cbmltcG9ydCBjb2xvcnMgZnJvbSBcImFuc2ktY29sb3JzXCI7XG5pbXBvcnQgeyBKc29uTm90Rm91bmRFcnJvciwgUGFja2FnZSB9IGZyb20gXCIuLi91dGlsL3BhY2thZ2UuanNcIjtcbmltcG9ydCB7IFByb2dyZXNzIH0gZnJvbSBcIi4uL3V0aWwvcHJvZ3Jlc3MuanNcIjtcbmltcG9ydCB7IEludGVybmFsQnVpbGRFcnJvciB9IGZyb20gXCIuL2Vycm9yLmpzXCI7XG5pbXBvcnQgeyBQcm9qZWN0QnVpbGRlciB9IGZyb20gXCIuL3Byb2plY3QtYnVpbGRlci5qc1wiO1xuaW1wb3J0IHsgQlVJTERfSU5GT19MT0NBVElPTiwgQnVpbGRJbmZvcm1hdGlvbiwgUHJvamVjdCB9IGZyb20gXCIuL3Byb2plY3QuanNcIjtcblxuLyoqXG4gKiBHcmFwaCBvZiBkZXBlbmRlbmNpZXMgZm9yIHdvcmtzcGFjZSBwYWNrYWdlcy5cbiAqXG4gKiBXZSB1c2UgdGhpcyBpbmZvcm1hdGlvbiB0byBkZXRlcm1pbmUgd2hpY2ggcGFja2FnZXMgYXJlIFwiZGlydHlcIiBhbmQgbmVlZCByZWJ1aWxkLiAgSW4gdGhlIGZ1dHVyZSB3ZSBjYW4gYWxzbyB1c2UgZm9yXG4gKiBwYXJhbGxlbCBidWlsZCwgb25seSB0cmlja3kgcGFydCB0aGVyZSBpcyBzaG93aW5nIHN0YXR1cy5cbiAqL1xuZXhwb3J0IGNsYXNzIEdyYXBoIHtcbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IocmVhZG9ubHkgbm9kZXM6IEdyYXBoLk5vZGVbXSkge31cblxuICAgIGdldChuYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXMubm9kZXMuZmluZChub2RlID0+IG5vZGUucGtnLm5hbWUgPT09IG5hbWUpO1xuICAgICAgICBpZiAobm9kZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBsb2NhdGUgcGFja2FnZSBcIiR7bmFtZX1cImApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub2RlO1xuICAgIH1cblxuICAgIHN0YXRpYyBhc3luYyBsb2FkKHBrZyA9IFBhY2thZ2Uud29ya3NwYWNlKSB7XG4gICAgICAgIGNvbnN0IG5vZGVNYXAgPSBhd2FpdCB0aGlzLiNsb2FkTm9kZXMocGtnLndvcmtzcGFjZSk7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLiNjcmVhdGVHcmFwaChPYmplY3QudmFsdWVzKG5vZGVNYXApKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgYXN5bmMgZm9yUHJvamVjdChwYXRoOiBzdHJpbmcpOiBQcm9taXNlPEdyYXBoIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGxldCB3b3Jrc3BhY2U7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB3b3Jrc3BhY2UgPSBQYWNrYWdlLndvcmtzcGFjZUZvcihwYXRoKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBKc29uTm90Rm91bmRFcnJvcikge1xuICAgICAgICAgICAgICAgIC8vIFByb2plY3QgaXMgbm90IGluIGEgd29ya3NwYWNlXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5vZGVNYXAgPSBhd2FpdCB0aGlzLiNsb2FkTm9kZXMod29ya3NwYWNlKTtcblxuICAgICAgICBjb25zdCByb290UGtnID0gbmV3IFBhY2thZ2UoeyBwYXRoOiBwYXRoIH0pO1xuICAgICAgICBjb25zdCByb290Tm9kZSA9IG5vZGVNYXBbcm9vdFBrZy5qc29uLm5hbWVdO1xuICAgICAgICBpZiAoIXJvb3ROb2RlKSB7XG4gICAgICAgICAgICAvLyBQcm9qZWN0IHJlc2lkZXMgdW5kZXIgYSB3b3Jrc3BhY2UgYnV0IGlzIG5vdCBwYXJ0IG9mIHRoZSB3b3Jrc3BhY2VcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5vZGVzID0gbmV3IFNldDxHcmFwaC5Ob2RlPigpO1xuICAgICAgICBmdW5jdGlvbiBhZGROb2RlKG5vZGU6IEdyYXBoLk5vZGUpIHtcbiAgICAgICAgICAgIGlmIChub2Rlcy5oYXMobm9kZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBub2Rlcy5hZGQobm9kZSk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGRlcGVuZGVuY3kgb2Ygbm9kZS5kZXBlbmRlbmNpZXMpIHtcbiAgICAgICAgICAgICAgICBhZGROb2RlKGRlcGVuZGVuY3kpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYWRkTm9kZShyb290Tm9kZSk7XG5cbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuI2NyZWF0ZUdyYXBoKFsuLi5ub2Rlc10pO1xuICAgIH1cblxuICAgIC8vIFRPRE8gLSBwYXJhbGxlbGl6YXRpb24gd2lsbCBiZSB0cml2aWFsIGV4Y2VwdCBuZWVkIHRvIHVwZGF0ZSBQcm9ncmVzcyB0byBzdXBwb3J0IGRpc3BsYXkgb2YgbXVsdGlwbGUgc2ltdWx0YW5lb3VzXG4gICAgLy8gdGFza3NcbiAgICBhc3luYyBidWlsZChidWlsZGVyOiBQcm9qZWN0QnVpbGRlciwgc2hvd1NraXBwZWQgPSB0cnVlKSB7XG4gICAgICAgIGNvbnN0IHRvQnVpbGQgPSBuZXcgU2V0KHRoaXMubm9kZXMpO1xuXG4gICAgICAgIGNvbnN0IG5lZWRzQ29uZmlnID0gdGhpcy5ub2Rlcy5maW5kKG5vZGUgPT4gbm9kZS5wa2cuaGFzQ29uZmlnKTtcbiAgICAgICAgaWYgKGJ1aWxkZXIuaGFzQ2xlYW4gfHwgbmVlZHNDb25maWcpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgLy8gV2UgY2xlYW4gYWxsIHBhY2thZ2VzIGJlZm9yZSBlbmdhZ2luZyB0eXBlc2NyaXB0IGJlY2F1c2Ugb3RoZXJ3aXNlIGl0IHNlZW1zIHRvIGdldCBjb25mdXNlZFxuICAgICAgICAgICAgICAgIGlmIChidWlsZGVyLmhhc0NsZWFuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJ1aWxkZXIuY2xlYXJDbGVhbigpO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IG5vZGUgb2YgdGhpcy5ub2Rlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgbm9kZS5wcm9qZWN0LmNsZWFuKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlLmluZm8gPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIFdlIGNvbmZpZ3VyZSBlYWNoIGJ1aWxkIGJlZm9yZSBidWlsZGluZyBzbyB0aGF0IGFueSBnZW5lcmF0ZWQgZmlsZXMgYXJlIGluIHBsYWNlIGJlZm9yZSB3ZSBpbml0aWF0ZSB0aGUgYnVpbGRcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IG5vZGUgb2YgdGhpcy5ub2Rlcykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIW5vZGUucGtnLmhhc0NvbmZpZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgYnVpbGRlci5jb25maWd1cmUobm9kZS5wcm9qZWN0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIlRlcm1pbmF0aW5nIGR1ZSB0byBwcmVidWlsZCBlcnJvcjpcIiwgZSk7XG4gICAgICAgICAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgd2hpbGUgKHRvQnVpbGQuc2l6ZSkge1xuICAgICAgICAgICAgbGV0IG5vZGU7XG5cbiAgICAgICAgICAgIG5vZGVzOiBmb3IgKG5vZGUgb2YgdG9CdWlsZCkge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZGVwIG9mIG5vZGUuZGVwZW5kZW5jaWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChkZXAuaXNEaXJ0eSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUgbm9kZXM7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghbm9kZSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludGVybmFsIGxvZ2ljIGVycm9yOiBObyB1bmJ1aWx0IHByb2plY3QgaGFzIGZ1bGx5IGJ1aWx0IGRlcGVuZGVuY2llc1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChub2RlLmlzRGlydHkgfHwgYnVpbGRlci51bmNvbmRpdGlvbmFsKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgYnVpbGRlci5idWlsZChub2RlLnByb2plY3QpO1xuICAgICAgICAgICAgICAgIG5vZGUuaW5mby50aW1lc3RhbXAgPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHNob3dTa2lwcGVkKSB7XG4gICAgICAgICAgICAgICAgbmV3IFByb2dyZXNzKCkuc2tpcChcIlVwIHRvIGRhdGVcIiwgbm9kZS5wa2cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0b0J1aWxkLmRlbGV0ZShub2RlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRpc3BsYXkoKSB7XG4gICAgICAgIGZvciAoY29uc3Qgbm9kZSBvZiB0aGlzLm5vZGVzKSB7XG4gICAgICAgICAgICBjb25zdCBwcm9ncmVzcyA9IG5vZGUucGtnLnN0YXJ0KFwiTm9kZVwiKTtcbiAgICAgICAgICAgIHByb2dyZXNzLmluZm8oXCJwYXRoXCIsIG5vZGUucGtnLnBhdGgpO1xuICAgICAgICAgICAgcHJvZ3Jlc3MuaW5mbyhcIm1vZGlmaWVkXCIsIGZvcm1hdFRpbWUobm9kZS5tb2RpZnlUaW1lKSk7XG4gICAgICAgICAgICBwcm9ncmVzcy5pbmZvKFwiYnVpbHRcIiwgZm9ybWF0VGltZShub2RlLmluZm8udGltZXN0YW1wID8/IDApKTtcbiAgICAgICAgICAgIHByb2dyZXNzLmluZm8oXCJkaXJ0eVwiLCBub2RlLmlzRGlydHkgPyBjb2xvcnMuZGltLnJlZChcInllc1wiKSA6IGNvbG9ycy5kaW0uZ3JlZW4oXCJub1wiKSk7XG4gICAgICAgICAgICBwcm9ncmVzcy5pbmZvKFwiZGVwZW5kZW5jaWVzXCIsIG5vZGUuZGVwZW5kZW5jaWVzLm1hcChmb3JtYXREZXApLmpvaW4oXCIsIFwiKSk7XG4gICAgICAgICAgICBwcm9ncmVzcy5zaHV0ZG93bigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3RhdGljIGFzeW5jICNjcmVhdGVHcmFwaChub2RlczogR3JhcGguTm9kZVtdKSB7XG4gICAgICAgIGNvbnN0IGdyYXBoID0gbmV3IEdyYXBoKG5vZGVzKTtcblxuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgICAgIGdyYXBoLm5vZGVzLm1hcChhc3luYyBub2RlID0+IHtcbiAgICAgICAgICAgICAgICBpZiAobm9kZS5wa2cuaGFzRmlsZShCVUlMRF9JTkZPX0xPQ0FUSU9OKSkge1xuICAgICAgICAgICAgICAgICAgICBub2RlLmluZm8gPSBhd2FpdCBub2RlLnBrZy5yZWFkSnNvbihCVUlMRF9JTkZPX0xPQ0FUSU9OKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBub2RlLm1vZGlmeVRpbWUgPSBhd2FpdCBub2RlLnBrZy5sYXN0TW9kaWZpZWQoXCJwYWNrYWdlLmpzb25cIiwgXCJzcmNcIiwgXCJ0ZXN0XCIpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBzdGFjayA9IEFycmF5PEdyYXBoLk5vZGU+KCk7XG4gICAgICAgIGZ1bmN0aW9uIGZpbmRDaXJjdWxhcihub2RlOiBHcmFwaC5Ob2RlKSB7XG4gICAgICAgICAgICBpZiAoc3RhY2suaW5kZXhPZihub2RlKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICBzdGFjay5wdXNoKG5vZGUpO1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEJ1aWxkRXJyb3IoYENpcmN1bGFyIGRlcGVuZGVuY3k6ICR7c3RhY2subWFwKGZvcm1hdERlcCkuam9pbihcIiBcdTI1QjggXCIpfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3RhY2sucHVzaChub2RlKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZGVwIG9mIG5vZGUuZGVwZW5kZW5jaWVzKSB7XG4gICAgICAgICAgICAgICAgZmluZENpcmN1bGFyKGRlcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdGFjay5wb3AoKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IG5vZGUgb2YgZ3JhcGgubm9kZXMpIHtcbiAgICAgICAgICAgIGZpbmRDaXJjdWxhcihub2RlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBncmFwaDtcbiAgICB9XG5cbiAgICBzdGF0aWMgYXN5bmMgI2xvYWROb2Rlcyh3b3Jrc3BhY2U6IFBhY2thZ2UpIHtcbiAgICAgICAgY29uc3Qgd29ya3NwYWNlcyA9IHdvcmtzcGFjZS5qc29uLndvcmtzcGFjZXM7XG5cbiAgICAgICAgY29uc3Qgbm9kZU1hcCA9IHt9IGFzIFJlY29yZDxzdHJpbmcsIEdyYXBoLk5vZGU+O1xuICAgICAgICBjb25zdCBhbGxEZXBzID0ge30gYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nW10+O1xuICAgICAgICBmb3IgKGNvbnN0IHBhdGggb2Ygd29ya3NwYWNlcy52YWx1ZXMoKSkge1xuICAgICAgICAgICAgY29uc3QgcGtnID0gbmV3IFBhY2thZ2UoeyBwYXRoOiB3b3Jrc3BhY2UucmVzb2x2ZShwYXRoKSB9KTtcbiAgICAgICAgICAgIGFsbERlcHNbcGtnLmpzb24ubmFtZV0gPSBwa2cuZGVwZW5kZW5jaWVzO1xuICAgICAgICAgICAgbm9kZU1hcFtwa2cuanNvbi5uYW1lXSA9IHtcbiAgICAgICAgICAgICAgICBwa2csXG4gICAgICAgICAgICAgICAgcHJvamVjdDogbmV3IFByb2plY3QocGtnKSxcbiAgICAgICAgICAgICAgICBkZXBlbmRlbmNpZXM6IFtdLFxuICAgICAgICAgICAgICAgIGluZm86IHt9LFxuICAgICAgICAgICAgICAgIG1vZGlmeVRpbWU6IDAsXG5cbiAgICAgICAgICAgICAgICBnZXQgYnVpbGRUaW1lKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pbmZvLnRpbWVzdGFtcCA/IG5ldyBEYXRlKHRoaXMuaW5mby50aW1lc3RhbXApLmdldFRpbWUoKSA6IDA7XG4gICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICAgIGdldCBpc0RpcnR5KCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RpZnlUaW1lID4gdGhpcy5idWlsZFRpbWUgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICEhdGhpcy5kZXBlbmRlbmNpZXMuZmluZChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXAgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwLmlzRGlydHkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlcC5idWlsZFRpbWUgPiB0aGlzLmJ1aWxkVGltZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlcC5pbmZvLmFwaVNoYSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwLmluZm8uYXBpU2hhICE9PSB0aGlzLmluZm8uZGVwZW5kZW5jeUFwaVNoYXM/LltkZXAucGtnLm5hbWVdKSksXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IG5hbWUgaW4gYWxsRGVwcykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBkZXAgb2YgYWxsRGVwc1tuYW1lXSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlcE5vZGUgPSBub2RlTWFwW2RlcF07XG5cbiAgICAgICAgICAgICAgICAvLyBOb3RlIC0tIGFsbG93IG5vZGVzIHRvIHJlZmVyZW5jZSB0aGVtc2VsdmVzLCBzZWVtcyB0byBiZSBuZWNlc3Nhcnkgb24gdG9vbHMgZm9yIHVzZSBvZiB0c2NcbiAgICAgICAgICAgICAgICBpZiAoZGVwTm9kZSAmJiBkZXBOb2RlICE9PSBub2RlTWFwW25hbWVdKSB7XG4gICAgICAgICAgICAgICAgICAgIG5vZGVNYXBbbmFtZV0uZGVwZW5kZW5jaWVzLnB1c2goZGVwTm9kZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5vZGVNYXA7XG4gICAgfVxufVxuXG5leHBvcnQgbmFtZXNwYWNlIEdyYXBoIHtcbiAgICBleHBvcnQgaW50ZXJmYWNlIE5vZGUge1xuICAgICAgICBwa2c6IFBhY2thZ2U7XG4gICAgICAgIHByb2plY3Q6IFByb2plY3Q7XG4gICAgICAgIGRlcGVuZGVuY2llczogTm9kZVtdO1xuICAgICAgICBidWlsZFRpbWU6IG51bWJlcjtcbiAgICAgICAgaW5mbzogQnVpbGRJbmZvcm1hdGlvbjtcbiAgICAgICAgbW9kaWZ5VGltZTogbnVtYmVyO1xuICAgICAgICBpc0RpcnR5OiBib29sZWFuO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gZm9ybWF0VGltZSh0aW1lOiBudW1iZXIgfCBzdHJpbmcpIHtcbiAgICBpZiAoIXRpbWUpIHtcbiAgICAgICAgcmV0dXJuIGNvbG9ycy5kaW0ucmVkKFwibmV2ZXJcIik7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdGltZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICB0aW1lID0gbmV3IERhdGUodGltZSkuZ2V0VGltZSgpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IERhdGUodGltZSAtIG5ldyBEYXRlKCkuZ2V0VGltZXpvbmVPZmZzZXQoKSkudG9JU09TdHJpbmcoKS5zcGxpdChcIi5cIilbMF0ucmVwbGFjZShcIlRcIiwgXCIgXCIpO1xufVxuXG5mdW5jdGlvbiBmb3JtYXREZXAobm9kZTogR3JhcGguTm9kZSkge1xuICAgIHJldHVybiBub2RlLnBrZy5uYW1lLnJlcGxhY2UoL15AbWF0dGVyXFwvLywgXCJcIik7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUEsT0FBTyxZQUFZO0FBQ25CLFNBQVMsbUJBQW1CLGVBQWU7QUFDM0MsU0FBUyxnQkFBZ0I7QUFDekIsU0FBUywwQkFBMEI7QUFFbkMsU0FBUyxxQkFBdUMsZUFBZTtBQVF4RCxNQUFNLE1BQU07QUFBQSxFQUNMLFlBQXFCLE9BQXFCO0FBQXJCO0FBQUEsRUFBc0I7QUFBQSxFQUVyRCxJQUFJLE1BQWM7QUFDZCxVQUFNLE9BQU8sS0FBSyxNQUFNLEtBQUssQ0FBQUEsVUFBUUEsTUFBSyxJQUFJLFNBQVMsSUFBSTtBQUMzRCxRQUFJLFNBQVMsUUFBVztBQUNwQixZQUFN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
190
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2J1aWxkaW5nL2dyYXBoLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAyMi0yMDI1IE1hdHRlci5qcyBBdXRob3JzXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuICovXG5cbmltcG9ydCBjb2xvcnMgZnJvbSBcImFuc2ktY29sb3JzXCI7XG5pbXBvcnQgeyBKc29uTm90Rm91bmRFcnJvciwgUGFja2FnZSB9IGZyb20gXCIuLi91dGlsL3BhY2thZ2UuanNcIjtcbmltcG9ydCB7IFByb2dyZXNzIH0gZnJvbSBcIi4uL3V0aWwvcHJvZ3Jlc3MuanNcIjtcbmltcG9ydCB7IEludGVybmFsQnVpbGRFcnJvciB9IGZyb20gXCIuL2Vycm9yLmpzXCI7XG5pbXBvcnQgeyBQcm9qZWN0QnVpbGRlciB9IGZyb20gXCIuL3Byb2plY3QtYnVpbGRlci5qc1wiO1xuaW1wb3J0IHsgQlVJTERfSU5GT19MT0NBVElPTiwgQnVpbGRJbmZvcm1hdGlvbiwgUHJvamVjdCB9IGZyb20gXCIuL3Byb2plY3QuanNcIjtcblxuLyoqXG4gKiBHcmFwaCBvZiBkZXBlbmRlbmNpZXMgZm9yIHdvcmtzcGFjZSBwYWNrYWdlcy5cbiAqXG4gKiBXZSB1c2UgdGhpcyBpbmZvcm1hdGlvbiB0byBkZXRlcm1pbmUgd2hpY2ggcGFja2FnZXMgYXJlIFwiZGlydHlcIiBhbmQgbmVlZCByZWJ1aWxkLiAgSW4gdGhlIGZ1dHVyZSB3ZSBjYW4gYWxzbyB1c2UgZm9yXG4gKiBwYXJhbGxlbCBidWlsZCwgb25seSB0cmlja3kgcGFydCB0aGVyZSBpcyBzaG93aW5nIHN0YXR1cy5cbiAqL1xuZXhwb3J0IGNsYXNzIEdyYXBoIHtcbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IocmVhZG9ubHkgbm9kZXM6IEdyYXBoLk5vZGVbXSkge31cblxuICAgIGdldChuYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXMubm9kZXMuZmluZChub2RlID0+IG5vZGUucGtnLm5hbWUgPT09IG5hbWUpO1xuICAgICAgICBpZiAobm9kZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBsb2NhdGUgcGFja2FnZSBcIiR7bmFtZX1cImApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub2RlO1xuICAgIH1cblxuICAgIHN0YXRpYyBhc3luYyBsb2FkKHBrZyA9IFBhY2thZ2Uud29ya3NwYWNlKSB7XG4gICAgICAgIGNvbnN0IG5vZGVNYXAgPSBhd2FpdCB0aGlzLiNsb2FkTm9kZXMocGtnLndvcmtzcGFjZSk7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLiNjcmVhdGVHcmFwaChPYmplY3QudmFsdWVzKG5vZGVNYXApKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgYXN5bmMgZm9yUHJvamVjdChwYXRoOiBzdHJpbmcpOiBQcm9taXNlPEdyYXBoIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGxldCB3b3Jrc3BhY2U7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB3b3Jrc3BhY2UgPSBQYWNrYWdlLndvcmtzcGFjZUZvcihwYXRoKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBKc29uTm90Rm91bmRFcnJvcikge1xuICAgICAgICAgICAgICAgIC8vIFByb2plY3QgaXMgbm90IGluIGEgd29ya3NwYWNlXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5vZGVNYXAgPSBhd2FpdCB0aGlzLiNsb2FkTm9kZXMod29ya3NwYWNlKTtcblxuICAgICAgICBjb25zdCByb290UGtnID0gbmV3IFBhY2thZ2UoeyBwYXRoOiBwYXRoIH0pO1xuICAgICAgICBjb25zdCByb290Tm9kZSA9IG5vZGVNYXBbcm9vdFBrZy5qc29uLm5hbWVdO1xuICAgICAgICBpZiAoIXJvb3ROb2RlKSB7XG4gICAgICAgICAgICAvLyBQcm9qZWN0IHJlc2lkZXMgdW5kZXIgYSB3b3Jrc3BhY2UgYnV0IGlzIG5vdCBwYXJ0IG9mIHRoZSB3b3Jrc3BhY2VcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5vZGVzID0gbmV3IFNldDxHcmFwaC5Ob2RlPigpO1xuICAgICAgICBmdW5jdGlvbiBhZGROb2RlKG5vZGU6IEdyYXBoLk5vZGUpIHtcbiAgICAgICAgICAgIGlmIChub2Rlcy5oYXMobm9kZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBub2Rlcy5hZGQobm9kZSk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGRlcGVuZGVuY3kgb2Ygbm9kZS5kZXBlbmRlbmNpZXMpIHtcbiAgICAgICAgICAgICAgICBhZGROb2RlKGRlcGVuZGVuY3kpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYWRkTm9kZShyb290Tm9kZSk7XG5cbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuI2NyZWF0ZUdyYXBoKFsuLi5ub2Rlc10pO1xuICAgIH1cblxuICAgIC8vIFRPRE8gLSBwYXJhbGxlbGl6YXRpb24gd2lsbCBiZSB0cml2aWFsIGV4Y2VwdCBuZWVkIHRvIHVwZGF0ZSBQcm9ncmVzcyB0byBzdXBwb3J0IGRpc3BsYXkgb2YgbXVsdGlwbGUgc2ltdWx0YW5lb3VzXG4gICAgLy8gdGFza3NcbiAgICBhc3luYyBidWlsZChidWlsZGVyOiBQcm9qZWN0QnVpbGRlciwgc2hvd1NraXBwZWQgPSB0cnVlKSB7XG4gICAgICAgIGNvbnN0IHRvQnVpbGQgPSBuZXcgU2V0KHRoaXMubm9kZXMpO1xuXG4gICAgICAgIGNvbnN0IG5lZWRzQ29uZmlnID0gdGhpcy5ub2Rlcy5maW5kKG5vZGUgPT4gbm9kZS5wa2cuaGFzQ29uZmlnKTtcbiAgICAgICAgaWYgKGJ1aWxkZXIuaGFzQ2xlYW4gfHwgbmVlZHNDb25maWcpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgLy8gV2UgY2xlYW4gYWxsIHBhY2thZ2VzIGJlZm9yZSBlbmdhZ2luZyB0eXBlc2NyaXB0IGJlY2F1c2Ugb3RoZXJ3aXNlIGl0IHNlZW1zIHRvIGdldCBjb25mdXNlZFxuICAgICAgICAgICAgICAgIGlmIChidWlsZGVyLmhhc0NsZWFuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJ1aWxkZXIuY2xlYXJDbGVhbigpO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IG5vZGUgb2YgdGhpcy5ub2Rlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgbm9kZS5wcm9qZWN0LmNsZWFuKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlLmluZm8gPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIFdlIGNvbmZpZ3VyZSBlYWNoIGJ1aWxkIGJlZm9yZSBidWlsZGluZyBzbyB0aGF0IGFueSBnZW5lcmF0ZWQgZmlsZXMgYXJlIGluIHBsYWNlIGJlZm9yZSB3ZSBpbml0aWF0ZSB0aGUgYnVpbGRcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IG5vZGUgb2YgdGhpcy5ub2Rlcykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIW5vZGUucGtnLmhhc0NvbmZpZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgYnVpbGRlci5jb25maWd1cmUobm9kZS5wcm9qZWN0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIlRlcm1pbmF0aW5nIGR1ZSB0byBwcmVidWlsZCBlcnJvcjpcIiwgZSk7XG4gICAgICAgICAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgd2hpbGUgKHRvQnVpbGQuc2l6ZSkge1xuICAgICAgICAgICAgbGV0IG5vZGU7XG5cbiAgICAgICAgICAgIG5vZGVzOiBmb3IgKG5vZGUgb2YgdG9CdWlsZCkge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZGVwIG9mIG5vZGUuZGVwZW5kZW5jaWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChkZXAuaXNEaXJ0eSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUgbm9kZXM7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghbm9kZSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludGVybmFsIGxvZ2ljIGVycm9yOiBObyB1bmJ1aWx0IHByb2plY3QgaGFzIGZ1bGx5IGJ1aWx0IGRlcGVuZGVuY2llc1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChub2RlLmlzRGlydHkgfHwgYnVpbGRlci51bmNvbmRpdGlvbmFsKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgYnVpbGRlci5idWlsZChub2RlLnByb2plY3QpO1xuICAgICAgICAgICAgICAgIG5vZGUuaW5mby50aW1lc3RhbXAgPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHNob3dTa2lwcGVkKSB7XG4gICAgICAgICAgICAgICAgbmV3IFByb2dyZXNzKCkuc2tpcChcIlVwIHRvIGRhdGVcIiwgbm9kZS5wa2cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0b0J1aWxkLmRlbGV0ZShub2RlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRpc3BsYXkoKSB7XG4gICAgICAgIGZvciAoY29uc3Qgbm9kZSBvZiB0aGlzLm5vZGVzKSB7XG4gICAgICAgICAgICBjb25zdCBwcm9ncmVzcyA9IG5vZGUucGtnLnN0YXJ0KFwiTm9kZVwiKTtcbiAgICAgICAgICAgIHByb2dyZXNzLmluZm8oXCJwYXRoXCIsIG5vZGUucGtnLnBhdGgpO1xuICAgICAgICAgICAgcHJvZ3Jlc3MuaW5mbyhcIm1vZGlmaWVkXCIsIGZvcm1hdFRpbWUobm9kZS5tb2RpZnlUaW1lKSk7XG4gICAgICAgICAgICBwcm9ncmVzcy5pbmZvKFwiYnVpbHRcIiwgZm9ybWF0VGltZShub2RlLmluZm8udGltZXN0YW1wID8/IDApKTtcbiAgICAgICAgICAgIHByb2dyZXNzLmluZm8oXCJkaXJ0eVwiLCBub2RlLmlzRGlydHkgPyBjb2xvcnMuZGltLnJlZChcInllc1wiKSA6IGNvbG9ycy5kaW0uZ3JlZW4oXCJub1wiKSk7XG4gICAgICAgICAgICBwcm9ncmVzcy5pbmZvKFwiZGVwZW5kZW5jaWVzXCIsIG5vZGUuZGVwZW5kZW5jaWVzLm1hcChmb3JtYXREZXApLmpvaW4oXCIsIFwiKSk7XG4gICAgICAgICAgICBwcm9ncmVzcy5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3RhdGljIGFzeW5jICNjcmVhdGVHcmFwaChub2RlczogR3JhcGguTm9kZVtdKSB7XG4gICAgICAgIGNvbnN0IGdyYXBoID0gbmV3IEdyYXBoKG5vZGVzKTtcblxuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgICAgIGdyYXBoLm5vZGVzLm1hcChhc3luYyBub2RlID0+IHtcbiAgICAgICAgICAgICAgICBpZiAobm9kZS5wa2cuaGFzRmlsZShCVUlMRF9JTkZPX0xPQ0FUSU9OKSkge1xuICAgICAgICAgICAgICAgICAgICBub2RlLmluZm8gPSBhd2FpdCBub2RlLnBrZy5yZWFkSnNvbihCVUlMRF9JTkZPX0xPQ0FUSU9OKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBub2RlLm1vZGlmeVRpbWUgPSBhd2FpdCBub2RlLnBrZy5sYXN0TW9kaWZpZWQoXCJwYWNrYWdlLmpzb25cIiwgXCJzcmNcIiwgXCJ0ZXN0XCIpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBzdGFjayA9IEFycmF5PEdyYXBoLk5vZGU+KCk7XG4gICAgICAgIGZ1bmN0aW9uIGZpbmRDaXJjdWxhcihub2RlOiBHcmFwaC5Ob2RlKSB7XG4gICAgICAgICAgICBpZiAoc3RhY2suaW5kZXhPZihub2RlKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICBzdGFjay5wdXNoKG5vZGUpO1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEJ1aWxkRXJyb3IoYENpcmN1bGFyIGRlcGVuZGVuY3k6ICR7c3RhY2subWFwKGZvcm1hdERlcCkuam9pbihcIiBcdTI1QjggXCIpfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3RhY2sucHVzaChub2RlKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZGVwIG9mIG5vZGUuZGVwZW5kZW5jaWVzKSB7XG4gICAgICAgICAgICAgICAgZmluZENpcmN1bGFyKGRlcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdGFjay5wb3AoKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IG5vZGUgb2YgZ3JhcGgubm9kZXMpIHtcbiAgICAgICAgICAgIGZpbmRDaXJjdWxhcihub2RlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBncmFwaDtcbiAgICB9XG5cbiAgICBzdGF0aWMgYXN5bmMgI2xvYWROb2Rlcyh3b3Jrc3BhY2U6IFBhY2thZ2UpIHtcbiAgICAgICAgY29uc3Qgd29ya3NwYWNlcyA9IHdvcmtzcGFjZS5qc29uLndvcmtzcGFjZXM7XG5cbiAgICAgICAgY29uc3Qgbm9kZU1hcCA9IHt9IGFzIFJlY29yZDxzdHJpbmcsIEdyYXBoLk5vZGU+O1xuICAgICAgICBjb25zdCBhbGxEZXBzID0ge30gYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nW10+O1xuICAgICAgICBmb3IgKGNvbnN0IHBhdGggb2Ygd29ya3NwYWNlcy52YWx1ZXMoKSkge1xuICAgICAgICAgICAgY29uc3QgcGtnID0gbmV3IFBhY2thZ2UoeyBwYXRoOiB3b3Jrc3BhY2UucmVzb2x2ZShwYXRoKSB9KTtcbiAgICAgICAgICAgIGFsbERlcHNbcGtnLmpzb24ubmFtZV0gPSBwa2cuZGVwZW5kZW5jaWVzO1xuICAgICAgICAgICAgbm9kZU1hcFtwa2cuanNvbi5uYW1lXSA9IHtcbiAgICAgICAgICAgICAgICBwa2csXG4gICAgICAgICAgICAgICAgcHJvamVjdDogbmV3IFByb2plY3QocGtnKSxcbiAgICAgICAgICAgICAgICBkZXBlbmRlbmNpZXM6IFtdLFxuICAgICAgICAgICAgICAgIGluZm86IHt9LFxuICAgICAgICAgICAgICAgIG1vZGlmeVRpbWU6IDAsXG5cbiAgICAgICAgICAgICAgICBnZXQgYnVpbGRUaW1lKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pbmZvLnRpbWVzdGFtcCA/IG5ldyBEYXRlKHRoaXMuaW5mby50aW1lc3RhbXApLmdldFRpbWUoKSA6IDA7XG4gICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICAgIGdldCBpc0RpcnR5KCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RpZnlUaW1lID4gdGhpcy5idWlsZFRpbWUgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICEhdGhpcy5kZXBlbmRlbmNpZXMuZmluZChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXAgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwLmlzRGlydHkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlcC5idWlsZFRpbWUgPiB0aGlzLmJ1aWxkVGltZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlcC5pbmZvLmFwaVNoYSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwLmluZm8uYXBpU2hhICE9PSB0aGlzLmluZm8uZGVwZW5kZW5jeUFwaVNoYXM/LltkZXAucGtnLm5hbWVdKSksXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IG5hbWUgaW4gYWxsRGVwcykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBkZXAgb2YgYWxsRGVwc1tuYW1lXSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlcE5vZGUgPSBub2RlTWFwW2RlcF07XG5cbiAgICAgICAgICAgICAgICAvLyBOb3RlIC0tIGFsbG93IG5vZGVzIHRvIHJlZmVyZW5jZSB0aGVtc2VsdmVzLCBzZWVtcyB0byBiZSBuZWNlc3Nhcnkgb24gdG9vbHMgZm9yIHVzZSBvZiB0c2NcbiAgICAgICAgICAgICAgICBpZiAoZGVwTm9kZSAmJiBkZXBOb2RlICE9PSBub2RlTWFwW25hbWVdKSB7XG4gICAgICAgICAgICAgICAgICAgIG5vZGVNYXBbbmFtZV0uZGVwZW5kZW5jaWVzLnB1c2goZGVwTm9kZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5vZGVNYXA7XG4gICAgfVxufVxuXG5leHBvcnQgbmFtZXNwYWNlIEdyYXBoIHtcbiAgICBleHBvcnQgaW50ZXJmYWNlIE5vZGUge1xuICAgICAgICBwa2c6IFBhY2thZ2U7XG4gICAgICAgIHByb2plY3Q6IFByb2plY3Q7XG4gICAgICAgIGRlcGVuZGVuY2llczogTm9kZVtdO1xuICAgICAgICBidWlsZFRpbWU6IG51bWJlcjtcbiAgICAgICAgaW5mbzogQnVpbGRJbmZvcm1hdGlvbjtcbiAgICAgICAgbW9kaWZ5VGltZTogbnVtYmVyO1xuICAgICAgICBpc0RpcnR5OiBib29sZWFuO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gZm9ybWF0VGltZSh0aW1lOiBudW1iZXIgfCBzdHJpbmcpIHtcbiAgICBpZiAoIXRpbWUpIHtcbiAgICAgICAgcmV0dXJuIGNvbG9ycy5kaW0ucmVkKFwibmV2ZXJcIik7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdGltZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICB0aW1lID0gbmV3IERhdGUodGltZSkuZ2V0VGltZSgpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IERhdGUodGltZSAtIG5ldyBEYXRlKCkuZ2V0VGltZXpvbmVPZmZzZXQoKSkudG9JU09TdHJpbmcoKS5zcGxpdChcIi5cIilbMF0ucmVwbGFjZShcIlRcIiwgXCIgXCIpO1xufVxuXG5mdW5jdGlvbiBmb3JtYXREZXAobm9kZTogR3JhcGguTm9kZSkge1xuICAgIHJldHVybiBub2RlLnBrZy5uYW1lLnJlcGxhY2UoL15AbWF0dGVyXFwvLywgXCJcIik7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUEsT0FBTyxZQUFZO0FBQ25CLFNBQVMsbUJBQW1CLGVBQWU7QUFDM0MsU0FBUyxnQkFBZ0I7QUFDekIsU0FBUywwQkFBMEI7QUFFbkMsU0FBUyxxQkFBdUMsZUFBZTtBQVF4RCxNQUFNLE1BQU07QUFBQSxFQUNMLFlBQXFCLE9BQXFCO0FBQXJCO0FBQUEsRUFBc0I7QUFBQSxFQUVyRCxJQUFJLE1BQWM7QUFDZCxVQUFNLE9BQU8sS0FBSyxNQUFNLEtBQUssQ0FBQUEsVUFBUUEsTUFBSyxJQUFJLFNBQVMsSUFBSTtBQUMzRCxRQUFJLFNBQVMsUUFBVztBQUNwQixZQUFNLElB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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/building/graph.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["node"]
6
6
  }
@@ -43,13 +43,13 @@ class ProjectBuilder {
43
43
  try {
44
44
  await this.#doBuild(project, progress);
45
45
  } catch (e) {
46
- progress.shutdown();
46
+ progress.close();
47
47
  process.stderr.write(`${e.stack ?? e.message}
48
48
 
49
49
  `);
50
50
  process.exit(1);
51
51
  }
52
- progress.shutdown();
52
+ progress.close();
53
53
  }
54
54
  async #doBuild(project, progress) {
55
55
  const targets = this.#selectTargets(project);
@@ -177,4 +177,4 @@ export {
177
177
  ProjectBuilder,
178
178
  Target
179
179
  };
180
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2J1aWxkaW5nL3Byb2plY3QtYnVpbGRlci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMjItMjAyNSBNYXR0ZXIuanMgQXV0aG9yc1xuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiAqL1xuXG5pbXBvcnQgeyBjcmVhdGVIYXNoIH0gZnJvbSBcImNyeXB0b1wiO1xuaW1wb3J0IHsgUHJvZ3Jlc3MgfSBmcm9tIFwiLi4vdXRpbC9wcm9ncmVzcy5qc1wiO1xuaW1wb3J0IHsgQnVpbGRFcnJvciB9IGZyb20gXCIuL2Vycm9yLmpzXCI7XG5pbXBvcnQgeyBHcmFwaCB9IGZyb20gXCIuL2dyYXBoLmpzXCI7XG5pbXBvcnQgeyBCdWlsZEluZm9ybWF0aW9uLCBQcm9qZWN0IH0gZnJvbSBcIi4vcHJvamVjdC5qc1wiO1xuaW1wb3J0IHsgY3JlYXRlVHlwZXNjcmlwdENvbnRleHQgfSBmcm9tIFwiLi90eXBlc2NyaXB0LmpzXCI7XG5pbXBvcnQgeyBUeXBlc2NyaXB0Q29udGV4dCB9IGZyb20gXCIuL3R5cGVzY3JpcHQvY29udGV4dC5qc1wiO1xuXG5leHBvcnQgZW51bSBUYXJnZXQge1xuICAgIGNsZWFuID0gXCJjbGVhblwiLFxuICAgIHR5cGVzID0gXCJ0eXBlc1wiLFxuICAgIGVzbSA9IFwiZXNtXCIsXG4gICAgY2pzID0gXCJjanNcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPcHRpb25zIHtcbiAgICB0YXJnZXRzPzogVGFyZ2V0W107XG4gICAgY2xlYW4/OiBib29sZWFuO1xuICAgIGdyYXBoPzogR3JhcGg7XG59XG5cbi8qKlxuICogSGlnaC1sZXZlbCBidWlsZCBjb29yZGluYXRpb24uXG4gKlxuICogV2FybmluZzogVGhpcyBjbGFzcyBpcyBpbnRlbmRlZCBmb3IgY29tbWFuZCBsaW5lIHVzZSBhbmQgd2lsbCBwcm9jZXNzLmV4aXQgaWYgdGhpbmdzIGdvIHdyb25nLlxuICovXG5leHBvcnQgY2xhc3MgUHJvamVjdEJ1aWxkZXIge1xuICAgIHVuY29uZGl0aW9uYWw6IGJvb2xlYW47XG4gICAgdHNDb250ZXh0PzogVHlwZXNjcmlwdENvbnRleHQ7XG4gICAgZ3JhcGg/OiBHcmFwaDtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgb3B0aW9uczogT3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHRoaXMuZ3JhcGggPSBvcHRpb25zLmdyYXBoO1xuICAgICAgICB0aGlzLnVuY29uZGl0aW9uYWwgPVxuICAgICAgICAgICAgb3B0aW9ucy5jbGVhbiB8fCAob3B0aW9ucy50YXJnZXRzICE9PSB1bmRlZmluZWQgJiYgb3B0aW9ucy50YXJnZXRzPy5pbmRleE9mKFRhcmdldC5jbGVhbikgIT09IC0xKTtcbiAgICB9XG5cbiAgICBnZXQgaGFzQ2xlYW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuY2xlYW47XG4gICAgfVxuXG4gICAgY2xlYXJDbGVhbigpIHtcbiAgICAgICAgZGVsZXRlIHRoaXMub3B0aW9ucy5jbGVhbjtcbiAgICB9XG5cbiAgICBoYXNUYXJnZXRzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLnRhcmdldHMgJiYgdGhpcy5vcHRpb25zLnRhcmdldHMubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgY29uZmlndXJlKHByb2plY3Q6IFByb2plY3QpIHtcbiAgICAgICAgaWYgKCFwcm9qZWN0LnBrZy5oYXNDb25maWcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IHByb2plY3QuY29uZmlndXJlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGJ1aWxkKHByb2plY3Q6IFByb2plY3QpIHtcbiAgICAgICAgY29uc3QgcHJvZ3Jlc3MgPSBwcm9qZWN0LnBrZy5zdGFydChcIkJ1aWxkaW5nXCIpO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLiNkb0J1aWxkKHByb2plY3QsIHByb2dyZXNzKTtcbiAgICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgICAgICBwcm9ncmVzcy5zaHV0ZG93bigpO1xuICAgICAgICAgICAgcHJvY2Vzcy5zdGRlcnIud3JpdGUoYCR7ZS5zdGFjayA/PyBlLm1lc3NhZ2V9XFxuXFxuYCk7XG4gICAgICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICAgIH1cblxuICAgICAgICBwcm9ncmVzcy5zaHV0ZG93bigpO1xuICAgIH1cblxuICAgIGFzeW5jICNkb0J1aWxkKHByb2plY3Q6IFByb2plY3QsIHByb2dyZXNzOiBQcm9ncmVzcykge1xuICAgICAgICBjb25zdCB0YXJnZXRzID0gdGhpcy4jc2VsZWN0VGFyZ2V0cyhwcm9qZWN0KTtcblxuICAgICAgICBpZiAodGFyZ2V0cy5oYXMoVGFyZ2V0LmNsZWFuKSB8fCB0aGlzLm9wdGlvbnMuY2xlYW4pIHtcbiAgICAgICAgICAgIGF3YWl0IHByb2dyZXNzLnJ1bihcIkNsZWFuXCIsICgpID0+IHByb2plY3QuY2xlYW4oKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRhcmdldHMuaGFzKFRhcmdldC50eXBlcykgJiYgIXRhcmdldHMuaGFzKFRhcmdldC5lc20pICYmICF0YXJnZXRzLmhhcyhUYXJnZXQuY2pzKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaW5mbzogQnVpbGRJbmZvcm1hdGlvbiA9IHt9O1xuXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IGF3YWl0IHByb2plY3QuY29uZmlndXJlKCk7XG5cbiAgICAgICAgYXdhaXQgY29uZmlnPy5iZWZvcmU/Lih7IHByb2plY3QgfSk7XG5cbiAgICAgICAgLy8gSWYgYXZhaWxhYmxlIHdlIHVzZSBncmFwaCB0byBhY2Nlc3MgZGVwZW5kZW5jeSBBUEkgc2hhc1xuICAgICAgICBjb25zdCBncmFwaCA9IHRoaXMuZ3JhcGggPz8gKGF3YWl0IEdyYXBoLmZvclByb2plY3QocHJvamVjdC5wa2cucGF0aCkpO1xuICAgICAgICBsZXQgbm9kZTogR3JhcGguTm9kZSB8IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKGdyYXBoKSB7XG4gICAgICAgICAgICBub2RlID0gZ3JhcGguZ2V0KHByb2plY3QucGtnLm5hbWUpO1xuICAgICAgICAgICAgZm9yIChjb25zdCBkZXAgb2Ygbm9kZS5kZXBlbmRlbmNpZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoZGVwLmluZm8uYXBpU2hhICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGluZm8uZGVwZW5kZW5jeUFwaVNoYXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5mby5kZXBlbmRlbmN5QXBpU2hhcyA9IHt9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGluZm8uZGVwZW5kZW5jeUFwaVNoYXNbZGVwLnBrZy5uYW1lXSA9IGRlcC5pbmZvLmFwaVNoYTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGFyZ2V0cy5oYXMoVGFyZ2V0LnR5cGVzKSkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAvLyBPYnRhaW4gb3IgaW5pdGlhbGl6ZSB0eXBlc2NyaXB0IHNvbHV0aW9uIGJ1aWxkZXJcbiAgICAgICAgICAgICAgICBsZXQgY29udGV4dCA9IHRoaXMudHNDb250ZXh0O1xuICAgICAgICAgICAgICAgIGlmIChjb250ZXh0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dCA9IHRoaXMudHNDb250ZXh0ID0gYXdhaXQgY3JlYXRlVHlwZXNjcmlwdENvbnRleHQocHJvamVjdC5wa2cud29ya3NwYWNlLCBncmFwaCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgcmVmcmVzaENhbGxiYWNrID0gcHJvZ3Jlc3MucmVmcmVzaC5iaW5kKHByb2dyZXNzKTtcblxuICAgICAgICAgICAgICAgIGlmIChwcm9qZWN0LnBrZy5pc0xpYnJhcnkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYXBpU2hhID0gY3JlYXRlSGFzaChcInNoYTFcIik7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gT3VyIEFQSSBTSEEgY2hhbmdlcyBpZiB0aGF0IG9mIGFueSBkZXBlbmRlbmN5IGNoYW5nZXNcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZGVwIG9mIG5vZGUuZGVwZW5kZW5jaWVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRlcC5pbmZvLmFwaVNoYSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwaVNoYS51cGRhdGUoZGVwLmluZm8uYXBpU2hhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBhd2FpdCBwcm9ncmVzcy5ydW4oYEdlbmVyYXRlICR7cHJvZ3Jlc3MuZW1waGFzaXplKFwidHlwZSBkZWNsYXJhdGlvbnNcIil9YCwgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgY29udGV4dC5idWlsZChwcm9qZWN0LnBrZywgXCJzcmNcIiwgcmVmcmVzaENhbGxiYWNrKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHByb2plY3QuaGFzaERlY2xhcmF0aW9ucyhhcGlTaGEpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBXb3JrLWluLXByb2dyZXNzIGFsdGVybmF0aXZlIGRvYyBnZW5lcmF0aW9uIGltcGxlbWVudGF0aW9uXG4gICAgICAgICAgICAgICAgICAgIC8vIGF3YWl0IHByb2dyZXNzLnJ1bihgRXh0cmFjdCAke3Byb2dyZXNzLmVtcGhhc2l6ZShcImFwaSBkb2NzXCIpfWAsICgpID0+XG4gICAgICAgICAgICAgICAgICAgIC8vICAgICBlbWl0QXBpRG9jKHByb2plY3QucGtnLCBwcm9ncmFtLCBwcm9ncmVzcyksXG4gICAgICAgICAgICAgICAgICAgIC8vICk7XG5cbiAgICAgICAgICAgICAgICAgICAgaW5mby5hcGlTaGEgPSBhcGlTaGEuZGlnZXN0KFwiaGV4XCIpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHByb2dyZXNzLnJ1bihgVmFsaWRhdGUgJHtwcm9ncmVzcy5lbXBoYXNpemUoXCJ0eXBlc1wiKX1gLCAoKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5idWlsZChwcm9qZWN0LnBrZywgXCJzcmNcIiwgcmVmcmVzaENhbGxiYWNrLCBmYWxzZSksXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChwcm9qZWN0LnBrZy5oYXNUZXN0cykge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCBwcm9ncmVzcy5ydW4oYFZhbGlkYXRlICR7cHJvZ3Jlc3MuZW1waGFzaXplKFwidGVzdCB0eXBlc1wiKX1gLCAoKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5idWlsZChwcm9qZWN0LnBrZywgXCJ0ZXN0XCIsIHJlZnJlc2hDYWxsYmFjayksXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgQnVpbGRFcnJvcikge1xuICAgICAgICAgICAgICAgICAgICBwcm9ncmVzcy5mYWlsdXJlKFwiVGVybWluYXRpbmcgZHVlIHRvIHR5cGUgZXJyb3JzXCIpO1xuICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLnN0ZGVyci53cml0ZShgJHtlLmRpYWdub3N0aWNzfVxcbmApO1xuICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmb3JtYXRzID0gQXJyYXk8XCJlc21cIiB8IFwiY2pzXCI+KCk7XG4gICAgICAgIGlmICh0YXJnZXRzLmhhcyhUYXJnZXQuZXNtKSkge1xuICAgICAgICAgICAgZm9ybWF0cy5wdXNoKFwiZXNtXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0YXJnZXRzLmhhcyhUYXJnZXQuY2pzKSkge1xuICAgICAgICAgICAgZm9ybWF0cy5wdXNoKFwiY2pzXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZvcm1hdHMubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBncm91cHMgPSBbcHJvamVjdC5wa2cuaXNMaWJyYXJ5ID8gXCJsaWJyYXJ5XCIgOiBcImFwcFwiXTtcbiAgICAgICAgICAgIGlmIChwcm9qZWN0LnBrZy5oYXNUZXN0cykge1xuICAgICAgICAgICAgICAgIGdyb3Vwcy5wdXNoKFwidGVzdHNcIik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdERlc2MgPSBmb3JtYXRzLm1hcChwcm9ncmVzcy5lbXBoYXNpemUpLmpvaW4oXCIrXCIpO1xuICAgICAgICAgICAgY29uc3QgZ3JvdXBEZXNjID0gZ3JvdXBzLm1hcChwcm9ncmVzcy5lbXBoYXNpemUpLmpvaW4oXCIrXCIpO1xuXG4gICAgICAgICAgICBhd2FpdCBwcm9ncmVzcy5ydW4oYFRyYW5zcGlsZSAke2dyb3VwRGVzY30gdG8gJHtmb3JtYXREZXNjfWAsIGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGZvcm1hdCBvZiBmb3JtYXRzKSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuI3RyYW5zcGlsZShwcm9qZWN0LCBmb3JtYXQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgYXdhaXQgY29uZmlnPy5hZnRlcj8uKHsgcHJvamVjdCB9KTtcblxuICAgICAgICAvLyBPbmx5IHVwZGF0ZSBidWlsZCBpbmZvcm1hdGlvbiB3aGVuIHRoZXJlIGFyZSBubyBleHBsaWNpdCB0YXJnZXRzIHNvIHdlIGtub3cgaXQncyBhIGZ1bGwgYnVpbGRcbiAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnMudGFyZ2V0cz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBhd2FpdCBwcm9qZWN0LnJlY29yZEJ1aWxkSW5mbyhpbmZvKTtcbiAgICAgICAgICAgIGlmIChub2RlKSB7XG4gICAgICAgICAgICAgICAgbm9kZS5pbmZvID0gaW5mbztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jICN0cmFuc3BpbGUocHJvamVjdDogUHJvamVjdCwgZm9ybWF0OiBcImVzbVwiIHwgXCJjanNcIikge1xuICAgICAgICBhd2FpdCBwcm9qZWN0LmJ1aWxkU291cmNlKGZvcm1hdCk7XG4gICAgICAgIGlmIChwcm9qZWN0LnBrZy5oYXNUZXN0cykge1xuICAgICAgICAgICAgYXdhaXQgcHJvamVjdC5idWlsZFRlc3RzKGZvcm1hdCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjc2VsZWN0VGFyZ2V0cyhwcm9qZWN0OiBQcm9qZWN0KSB7XG4gICAgICAgIGNvbnN0IHRhcmdldHMgPSBuZXcgU2V0PHN0cmluZz4odGhpcy5vcHRpb25zLnRhcmdldHMpO1xuXG4gICAgICAgIGlmICghdGFyZ2V0cy5zaXplKSB7XG4gICAgICAgICAgICB0YXJnZXRzLmFkZChUYXJnZXQudHlwZXMpO1xuXG4gICAgICAgICAgICBpZiAocHJvamVjdC5wa2cuc3VwcG9ydHNFc20pIHtcbiAgICAgICAgICAgICAgICB0YXJnZXRzLmFkZChUYXJnZXQuZXNtKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHByb2plY3QucGtnLnN1cHBvcnRzQ2pzKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0cy5hZGQoVGFyZ2V0LmNqcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoIXByb2plY3QucGtnLnN1cHBvcnRzRXNtKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0cy5kZWxldGUoVGFyZ2V0LmVzbSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghcHJvamVjdC5wa2cuc3VwcG9ydHNDanMpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXRzLmRlbGV0ZShUYXJnZXQuY2pzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0YXJnZXRzO1xuICAgIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQSxTQUFTLGtCQUFrQjtBQUUzQixTQUFTLGtCQUFrQjtBQUMzQixTQUFTLGFBQWE7QUFFdEIsU0FBUywrQkFBK0I7QUFHakMsSUFBSyxTQUFMLGtCQUFLQSxZQUFMO0FBQ0gsRUFBQUEsUUFBQSxXQUFRO0FBQ1IsRUFBQUEsUUFBQSxXQUFRO0FBQ1IsRUFBQUEsUUFBQSxTQUFNO0FBQ04sRUFBQUEsUUFBQSxTQUFNO0FBSkUsU0FBQUE7QUFBQSxHQUFBO0FBa0JMLE1BQU0sZUFBZTtBQUFBLEVBS3hCLFlBQW9CLFVBQW1CLENBQUMsR0FBRztBQUF2QjtBQUNoQixTQUFLLFFBQVEsUUFBUTtBQUNyQixTQUFLLGdCQUNELFFBQVEsU0FBVSxRQUFRLFlBQVksVUFBYSxRQUFRLFNBQVMsUUFBUSxtQkFBWSxNQUFNO0FBQUEsRUFDdEc7QUFBQSxFQVJBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQVFBLElBQUksV0FBVztBQUNYLFdBQU8sS0FBSyxRQUFRO0FBQUEsRUFDeEI7QUFBQSxFQUVBLGFBQWE7QUFDVCxXQUFPLEtBQUssUUFBUTtBQUFBLEVBQ3hCO0FBQUEsRUFFQSxhQUFhO0FBQ1QsV0FBTyxLQUFLLFFBQVEsV0FBVyxLQUFLLFFBQVEsUUFBUSxTQUFTO0FBQUEsRUFDakU7QUFBQSxFQUVBLE1BQWEsVUFBVSxTQUFrQjtBQUNyQyxRQUFJLENBQUMsUUFBUSxJQUFJLFdBQVc7QUFDeEI7QUFBQSxJQUNKO0FBRUEsVUFBTSxRQUFRLFVBQVU7QUFBQSxFQUM1QjtBQUFBLEVBRUEsTUFBYSxNQUFNLFNBQWtCO0FBQ2pDLFVBQU0sV0FBVyxRQUFRLElBQUksTUFBTSxVQUFVO0FBRTdDLFFBQUk7QUFDQSxZQUFNLEtBQUssU0FBUyxTQUFTLFFBQVE7QUFBQSxJQUN6QyxTQUFTLEdBQVE7QUFDYixlQUFTLFNBQVM7QUFDbEIsY0FBUSxPQUFPLE1BQU0sR0FBRyxFQUFFLFNBQVMsRUFBRSxPQUFPO0FBQUE7QUFBQSxDQUFNO0FBQ2xELGNBQVEsS0FBSyxDQUFDO0FBQUEsSUFDbEI7QUFFQSxhQUFTLFNBQVM7QUFBQSxFQUN0QjtBQUFBLEVBRUEsTUFBTSxTQUFTLFNBQWtCLFVBQW9CO0FBQ2pELFVBQU0sVUFBVSxLQUFLLGVBQWUsT0FBTztBQUUzQyxRQUFJLFFBQVEsSUFBSSxtQkFBWSxLQUFLLEtBQUssUUFBUSxPQUFPO0FBQ2pELFlBQU0sU0FBUyxJQUFJLFNBQVMsTUFBTSxRQUFRLE1BQU0sQ0FBQztBQUFBLElBQ3JEO0FBRUEsUUFBSSxDQUFDLFFBQVEsSUFBSSxtQkFBWSxLQUFLLENBQUMsUUFBUSxJQUFJLGVBQVUsS0FBSyxDQUFDLFFBQVEsSUFBSSxlQUFVLEdBQUc7QUFDcEY7QUFBQSxJQUNKO0FBRUEsVUFBTSxPQUF5QixDQUFDO0FBRWhDLFVBQU0sU0FBUyxNQUFNLFFBQVEsVUFBVTtBQUV2QyxVQUFNLFFBQVEsU0FBUyxFQUFFLFFBQVEsQ0FBQztBQUdsQyxVQUFNLFFBQVEsS0FBSyxTQUFVLE1BQU0sTUFBTSxXQUFXLFFBQVEsSUFBSSxJQUFJO0FBQ3BFLFFBQUk7QUFDSixRQUFJLE9BQU87QUFDUCxhQUFPLE1BQU0sSUFBSSxRQUFRLElBQUksSUFBSTtBQUNqQyxpQkFBVyxPQUFPLEtBQUssY0FBYztBQUNqQyxZQUFJLElBQUksS0FBSyxXQUFXLFFBQVc7QUFDL0IsY0FBSSxLQUFLLHNCQUFzQixRQUFXO0FBQ3RDLGlCQUFLLG9CQUFvQixDQUFDO0FBQUEsVUFDOUI7QUFDQSxlQUFLLGtCQUFrQixJQUFJLElBQUksSUFBSSxJQUFJLElBQUksS0FBSztBQUFBLFFBQ3BEO0FBQUEsTUFDSjtBQUFBLElBQ0o7QUFFQSxRQUFJLFFBQVEsSUFBSSxtQkFBWSxHQUFHO0FBQzNCLFVBQUk7QUFFQSxZQUFJLFVBQVUsS0FBSztBQUNuQixZQUFJLFlBQVksUUFBVztBQUN2QixvQkFBVSxLQUFLLFlBQVksTUFBTSx3QkFBd0IsUUFBUSxJQUFJLFdBQVcsS0FBSztBQUFBLFFBQ3pGO0FBRUEsY0FBTSxrQkFBa0IsU0FBUyxRQUFRLEtBQUssUUFBUTtBQUV0RCxZQUFJLFFBQVEsSUFBSSxXQUFXO0FBQ3ZCLGdCQUFNLFNBQVMsV0FBVyxNQUFNO0FBR2hDLGNBQUksTUFBTTtBQUNOLHVCQUFXLE9BQU8sS0FBSyxjQUFjO0FBQ2pDLGtCQUFJLElBQUksS0FBSyxXQUFXLFFBQVc7QUFDL0IsdUJBQU8sT0FBTyxJQUFJLEtBQUssTUFBTTtBQUFBLGNBQ2pDO0FBQUEsWUFDSjtBQUFBLFVBQ0o7QUFFQSxnQkFBTSxTQUFTLElBQUksWUFBWSxTQUFTLFVBQVUsbUJBQW1CLENBQUMsSUFBSSxZQUFZO0FBQ2xGLGtCQUFNLFFBQVEsTUFBTSxRQUFRLEtBQUssT0FBTyxlQUFlO0FBQ3ZELGtCQUFNLFFBQVEsaUJBQWlCLE1BQU07QUFBQSxVQUN6QyxDQUFDO0FBT0QsZUFBSyxTQUFTLE9BQU8sT0FBTyxLQUFLO0FBQUEsUUFDckMsT0FBTztBQUNILGdCQUFNLFNBQVM7QUFBQSxZQUFJLFlBQVksU0FBUyxVQUFVLE9BQU8sQ0FBQztBQUFBLFlBQUksTUFDMUQsUUFBUSxNQUFNLFFBQVEsS0FBSyxPQUFPLGlCQUFpQixLQUFLO0FBQUEsVUFDNUQ7QUFBQSxRQUNKO0FBQ0EsWUFBSSxRQUFRLElBQUksVUFBVTtBQUN0QixnQkFBTSxTQUFTO0FBQUEsWUFBSSxZQUFZLFNBQVMsVUFBVSxZQUFZLENBQUM7QUFBQSxZQUFJLE1BQy9ELFFBQVEsTUFBTSxRQUFRLEtBQUssUUFBUSxlQUFlO0FBQUEsVUFDdEQ7QUFBQSxRQUNKO0FBQUEsTUFDSixTQUFTLEdBQUc7QUFDUixZQUFJLGFBQWEsWUFBWTtBQUN6QixtQkFBUyxRQUFRLGdDQUFnQztBQUNqRCxrQkFBUSxPQUFPLE1BQU0sR0FBRyxFQUFFLFdBQVc7QUFBQSxDQUFJO0FBQ3pDLGtCQUFRLEtBQUssQ0FBQztBQUFBLFFBQ2xCO0FBQ0EsY0FBTTtBQUFBLE1BQ1Y7QUFBQSxJQUNKO0FBRUEsVUFBTSxVQUFVLE1BQXFCO0FBQ3JDLFFBQUksUUFBUSxJQUFJLGVBQVUsR0FBRztBQUN6QixjQUFRLEtBQUssS0FBSztBQUFBLElBQ3RCO0FBQ0EsUUFBSSxRQUFRLElBQUksZUFBVSxHQUFHO0FBQ3pCLGNBQVEsS0FBSyxLQUFLO0FBQUEsSUFDdEI7QUFFQSxRQUFJLFFBQVEsUUFBUTtBQUNoQixZQUFNLFNBQVMsQ0FBQyxRQUFRLElBQUksWUFBWSxZQUFZLEtBQUs7QUFDekQsVUFBSSxRQUFRLElBQUksVUFBVTtBQUN0QixlQUFPLEtBQUssT0FBTztBQUFBLE1BQ3ZCO0FBRUEsWUFBTSxhQUFhLFFBQVEsSUFBSSxTQUFTLFNBQVMsRUFBRSxLQUFLLEdBQUc7QUFDM0QsWUFBTSxZQUFZLE9BQU8sSUFBSSxTQUFTLFNBQVMsRUFBRSxLQUFLLEdBQUc7QUFFekQsWUFBTSxTQUFTLElBQUksYUFBYSxTQUFTLE9BQU8sVUFBVSxJQUFJLFlBQVk7QUFDdEUsbUJBQVcsVUFBVSxTQUFTO0FBQzFCLGdCQUFNLEtBQUssV0FBVyxTQUFTLE1BQU07QUFBQSxRQUN6QztBQUFBLE1BQ0osQ0FBQztBQUFBLElBQ0w7QUFFQSxVQUFNLFFBQVEsUUFBUSxFQUFFLFFBQVEsQ0FBQztBQUdqQyxRQUFJLENBQUMsS0FBSyxRQUFRLFNBQVMsUUFBUTtBQUMvQixZQUFNLFFBQVEsZ0JBQWdCLElBQUk7QUFDbEMsVUFBSSxNQUFNO0FBQ04sYUFBSyxPQUFPO0FBQUEsTUFDaEI7QUFBQSxJQUNKO0FBQUEsRUFDSjtBQUFBLEVBRUEsTUFBTSxXQUFXLFNBQWtCLFFBQXVCO0FBQ3RELFVBQU0sUUFBUSxZQUFZLE1BQU07QUFDaEMsUUFBSSxRQUFRLElBQUksVUFBVTtBQUN0QixZQUFNLFFBQVEsV0FBVyxNQUFNO0FBQUEsSUFDbkM7QUFBQSxFQUNKO0FBQUEsRUFFQSxlQUFlLFNBQWtCO0FBQzdCLFVBQU0sVUFBVSxJQUFJLElBQVksS0FBSyxRQUFRLE9BQU87QUFFcEQsUUFBSSxDQUFDLFFBQVEsTUFBTTtBQUNmLGNBQVEsSUFBSSxtQkFBWTtBQUV4QixVQUFJLFFBQVEsSUFBSSxhQUFhO0FBQ3pCLGdCQUFRLElBQUksZUFBVTtBQUFBLE1BQzFCO0FBRUEsVUFBSSxRQUFRLElBQUksYUFBYTtBQUN6QixnQkFBUSxJQUFJLGVBQVU7QUFBQSxNQUMxQjtBQUFBLElBQ0osT0FBTztBQUNILFVBQUksQ0FBQyxRQUFRLElBQUksYUFBYTtBQUMxQixnQkFBUSxPQUFPLGVBQVU7QUFBQSxNQUM3QjtBQUVBLFVBQUksQ0FBQyxRQUFRLElBQUksYUFBYTtBQUMxQixnQkFBUSxPQUFPLGVBQVU7QUFBQSxNQUM3QjtBQUFBLElBQ0o7QUFFQSxXQUFPO0FBQUEsRUFDWDtBQUNKOyIsCiAgIm5hbWVzIjogWyJUYXJnZXQiXQp9Cg==
180
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2J1aWxkaW5nL3Byb2plY3QtYnVpbGRlci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMjItMjAyNSBNYXR0ZXIuanMgQXV0aG9yc1xuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiAqL1xuXG5pbXBvcnQgeyBjcmVhdGVIYXNoIH0gZnJvbSBcImNyeXB0b1wiO1xuaW1wb3J0IHsgUHJvZ3Jlc3MgfSBmcm9tIFwiLi4vdXRpbC9wcm9ncmVzcy5qc1wiO1xuaW1wb3J0IHsgQnVpbGRFcnJvciB9IGZyb20gXCIuL2Vycm9yLmpzXCI7XG5pbXBvcnQgeyBHcmFwaCB9IGZyb20gXCIuL2dyYXBoLmpzXCI7XG5pbXBvcnQgeyBCdWlsZEluZm9ybWF0aW9uLCBQcm9qZWN0IH0gZnJvbSBcIi4vcHJvamVjdC5qc1wiO1xuaW1wb3J0IHsgY3JlYXRlVHlwZXNjcmlwdENvbnRleHQgfSBmcm9tIFwiLi90eXBlc2NyaXB0LmpzXCI7XG5pbXBvcnQgeyBUeXBlc2NyaXB0Q29udGV4dCB9IGZyb20gXCIuL3R5cGVzY3JpcHQvY29udGV4dC5qc1wiO1xuXG5leHBvcnQgZW51bSBUYXJnZXQge1xuICAgIGNsZWFuID0gXCJjbGVhblwiLFxuICAgIHR5cGVzID0gXCJ0eXBlc1wiLFxuICAgIGVzbSA9IFwiZXNtXCIsXG4gICAgY2pzID0gXCJjanNcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPcHRpb25zIHtcbiAgICB0YXJnZXRzPzogVGFyZ2V0W107XG4gICAgY2xlYW4/OiBib29sZWFuO1xuICAgIGdyYXBoPzogR3JhcGg7XG59XG5cbi8qKlxuICogSGlnaC1sZXZlbCBidWlsZCBjb29yZGluYXRpb24uXG4gKlxuICogV2FybmluZzogVGhpcyBjbGFzcyBpcyBpbnRlbmRlZCBmb3IgY29tbWFuZCBsaW5lIHVzZSBhbmQgd2lsbCBwcm9jZXNzLmV4aXQgaWYgdGhpbmdzIGdvIHdyb25nLlxuICovXG5leHBvcnQgY2xhc3MgUHJvamVjdEJ1aWxkZXIge1xuICAgIHVuY29uZGl0aW9uYWw6IGJvb2xlYW47XG4gICAgdHNDb250ZXh0PzogVHlwZXNjcmlwdENvbnRleHQ7XG4gICAgZ3JhcGg/OiBHcmFwaDtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgb3B0aW9uczogT3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHRoaXMuZ3JhcGggPSBvcHRpb25zLmdyYXBoO1xuICAgICAgICB0aGlzLnVuY29uZGl0aW9uYWwgPVxuICAgICAgICAgICAgb3B0aW9ucy5jbGVhbiB8fCAob3B0aW9ucy50YXJnZXRzICE9PSB1bmRlZmluZWQgJiYgb3B0aW9ucy50YXJnZXRzPy5pbmRleE9mKFRhcmdldC5jbGVhbikgIT09IC0xKTtcbiAgICB9XG5cbiAgICBnZXQgaGFzQ2xlYW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuY2xlYW47XG4gICAgfVxuXG4gICAgY2xlYXJDbGVhbigpIHtcbiAgICAgICAgZGVsZXRlIHRoaXMub3B0aW9ucy5jbGVhbjtcbiAgICB9XG5cbiAgICBoYXNUYXJnZXRzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLnRhcmdldHMgJiYgdGhpcy5vcHRpb25zLnRhcmdldHMubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgY29uZmlndXJlKHByb2plY3Q6IFByb2plY3QpIHtcbiAgICAgICAgaWYgKCFwcm9qZWN0LnBrZy5oYXNDb25maWcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IHByb2plY3QuY29uZmlndXJlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGJ1aWxkKHByb2plY3Q6IFByb2plY3QpIHtcbiAgICAgICAgY29uc3QgcHJvZ3Jlc3MgPSBwcm9qZWN0LnBrZy5zdGFydChcIkJ1aWxkaW5nXCIpO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLiNkb0J1aWxkKHByb2plY3QsIHByb2dyZXNzKTtcbiAgICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgICAgICBwcm9ncmVzcy5jbG9zZSgpO1xuICAgICAgICAgICAgcHJvY2Vzcy5zdGRlcnIud3JpdGUoYCR7ZS5zdGFjayA/PyBlLm1lc3NhZ2V9XFxuXFxuYCk7XG4gICAgICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICAgIH1cblxuICAgICAgICBwcm9ncmVzcy5jbG9zZSgpO1xuICAgIH1cblxuICAgIGFzeW5jICNkb0J1aWxkKHByb2plY3Q6IFByb2plY3QsIHByb2dyZXNzOiBQcm9ncmVzcykge1xuICAgICAgICBjb25zdCB0YXJnZXRzID0gdGhpcy4jc2VsZWN0VGFyZ2V0cyhwcm9qZWN0KTtcblxuICAgICAgICBpZiAodGFyZ2V0cy5oYXMoVGFyZ2V0LmNsZWFuKSB8fCB0aGlzLm9wdGlvbnMuY2xlYW4pIHtcbiAgICAgICAgICAgIGF3YWl0IHByb2dyZXNzLnJ1bihcIkNsZWFuXCIsICgpID0+IHByb2plY3QuY2xlYW4oKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRhcmdldHMuaGFzKFRhcmdldC50eXBlcykgJiYgIXRhcmdldHMuaGFzKFRhcmdldC5lc20pICYmICF0YXJnZXRzLmhhcyhUYXJnZXQuY2pzKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaW5mbzogQnVpbGRJbmZvcm1hdGlvbiA9IHt9O1xuXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IGF3YWl0IHByb2plY3QuY29uZmlndXJlKCk7XG5cbiAgICAgICAgYXdhaXQgY29uZmlnPy5iZWZvcmU/Lih7IHByb2plY3QgfSk7XG5cbiAgICAgICAgLy8gSWYgYXZhaWxhYmxlIHdlIHVzZSBncmFwaCB0byBhY2Nlc3MgZGVwZW5kZW5jeSBBUEkgc2hhc1xuICAgICAgICBjb25zdCBncmFwaCA9IHRoaXMuZ3JhcGggPz8gKGF3YWl0IEdyYXBoLmZvclByb2plY3QocHJvamVjdC5wa2cucGF0aCkpO1xuICAgICAgICBsZXQgbm9kZTogR3JhcGguTm9kZSB8IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKGdyYXBoKSB7XG4gICAgICAgICAgICBub2RlID0gZ3JhcGguZ2V0KHByb2plY3QucGtnLm5hbWUpO1xuICAgICAgICAgICAgZm9yIChjb25zdCBkZXAgb2Ygbm9kZS5kZXBlbmRlbmNpZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoZGVwLmluZm8uYXBpU2hhICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGluZm8uZGVwZW5kZW5jeUFwaVNoYXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5mby5kZXBlbmRlbmN5QXBpU2hhcyA9IHt9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGluZm8uZGVwZW5kZW5jeUFwaVNoYXNbZGVwLnBrZy5uYW1lXSA9IGRlcC5pbmZvLmFwaVNoYTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGFyZ2V0cy5oYXMoVGFyZ2V0LnR5cGVzKSkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAvLyBPYnRhaW4gb3IgaW5pdGlhbGl6ZSB0eXBlc2NyaXB0IHNvbHV0aW9uIGJ1aWxkZXJcbiAgICAgICAgICAgICAgICBsZXQgY29udGV4dCA9IHRoaXMudHNDb250ZXh0O1xuICAgICAgICAgICAgICAgIGlmIChjb250ZXh0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dCA9IHRoaXMudHNDb250ZXh0ID0gYXdhaXQgY3JlYXRlVHlwZXNjcmlwdENvbnRleHQocHJvamVjdC5wa2cud29ya3NwYWNlLCBncmFwaCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgcmVmcmVzaENhbGxiYWNrID0gcHJvZ3Jlc3MucmVmcmVzaC5iaW5kKHByb2dyZXNzKTtcblxuICAgICAgICAgICAgICAgIGlmIChwcm9qZWN0LnBrZy5pc0xpYnJhcnkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYXBpU2hhID0gY3JlYXRlSGFzaChcInNoYTFcIik7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gT3VyIEFQSSBTSEEgY2hhbmdlcyBpZiB0aGF0IG9mIGFueSBkZXBlbmRlbmN5IGNoYW5nZXNcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZGVwIG9mIG5vZGUuZGVwZW5kZW5jaWVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRlcC5pbmZvLmFwaVNoYSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwaVNoYS51cGRhdGUoZGVwLmluZm8uYXBpU2hhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBhd2FpdCBwcm9ncmVzcy5ydW4oYEdlbmVyYXRlICR7cHJvZ3Jlc3MuZW1waGFzaXplKFwidHlwZSBkZWNsYXJhdGlvbnNcIil9YCwgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgY29udGV4dC5idWlsZChwcm9qZWN0LnBrZywgXCJzcmNcIiwgcmVmcmVzaENhbGxiYWNrKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHByb2plY3QuaGFzaERlY2xhcmF0aW9ucyhhcGlTaGEpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBXb3JrLWluLXByb2dyZXNzIGFsdGVybmF0aXZlIGRvYyBnZW5lcmF0aW9uIGltcGxlbWVudGF0aW9uXG4gICAgICAgICAgICAgICAgICAgIC8vIGF3YWl0IHByb2dyZXNzLnJ1bihgRXh0cmFjdCAke3Byb2dyZXNzLmVtcGhhc2l6ZShcImFwaSBkb2NzXCIpfWAsICgpID0+XG4gICAgICAgICAgICAgICAgICAgIC8vICAgICBlbWl0QXBpRG9jKHByb2plY3QucGtnLCBwcm9ncmFtLCBwcm9ncmVzcyksXG4gICAgICAgICAgICAgICAgICAgIC8vICk7XG5cbiAgICAgICAgICAgICAgICAgICAgaW5mby5hcGlTaGEgPSBhcGlTaGEuZGlnZXN0KFwiaGV4XCIpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHByb2dyZXNzLnJ1bihgVmFsaWRhdGUgJHtwcm9ncmVzcy5lbXBoYXNpemUoXCJ0eXBlc1wiKX1gLCAoKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5idWlsZChwcm9qZWN0LnBrZywgXCJzcmNcIiwgcmVmcmVzaENhbGxiYWNrLCBmYWxzZSksXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChwcm9qZWN0LnBrZy5oYXNUZXN0cykge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCBwcm9ncmVzcy5ydW4oYFZhbGlkYXRlICR7cHJvZ3Jlc3MuZW1waGFzaXplKFwidGVzdCB0eXBlc1wiKX1gLCAoKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5idWlsZChwcm9qZWN0LnBrZywgXCJ0ZXN0XCIsIHJlZnJlc2hDYWxsYmFjayksXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgQnVpbGRFcnJvcikge1xuICAgICAgICAgICAgICAgICAgICBwcm9ncmVzcy5mYWlsdXJlKFwiVGVybWluYXRpbmcgZHVlIHRvIHR5cGUgZXJyb3JzXCIpO1xuICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLnN0ZGVyci53cml0ZShgJHtlLmRpYWdub3N0aWNzfVxcbmApO1xuICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmb3JtYXRzID0gQXJyYXk8XCJlc21cIiB8IFwiY2pzXCI+KCk7XG4gICAgICAgIGlmICh0YXJnZXRzLmhhcyhUYXJnZXQuZXNtKSkge1xuICAgICAgICAgICAgZm9ybWF0cy5wdXNoKFwiZXNtXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0YXJnZXRzLmhhcyhUYXJnZXQuY2pzKSkge1xuICAgICAgICAgICAgZm9ybWF0cy5wdXNoKFwiY2pzXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZvcm1hdHMubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBncm91cHMgPSBbcHJvamVjdC5wa2cuaXNMaWJyYXJ5ID8gXCJsaWJyYXJ5XCIgOiBcImFwcFwiXTtcbiAgICAgICAgICAgIGlmIChwcm9qZWN0LnBrZy5oYXNUZXN0cykge1xuICAgICAgICAgICAgICAgIGdyb3Vwcy5wdXNoKFwidGVzdHNcIik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdERlc2MgPSBmb3JtYXRzLm1hcChwcm9ncmVzcy5lbXBoYXNpemUpLmpvaW4oXCIrXCIpO1xuICAgICAgICAgICAgY29uc3QgZ3JvdXBEZXNjID0gZ3JvdXBzLm1hcChwcm9ncmVzcy5lbXBoYXNpemUpLmpvaW4oXCIrXCIpO1xuXG4gICAgICAgICAgICBhd2FpdCBwcm9ncmVzcy5ydW4oYFRyYW5zcGlsZSAke2dyb3VwRGVzY30gdG8gJHtmb3JtYXREZXNjfWAsIGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGZvcm1hdCBvZiBmb3JtYXRzKSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuI3RyYW5zcGlsZShwcm9qZWN0LCBmb3JtYXQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgYXdhaXQgY29uZmlnPy5hZnRlcj8uKHsgcHJvamVjdCB9KTtcblxuICAgICAgICAvLyBPbmx5IHVwZGF0ZSBidWlsZCBpbmZvcm1hdGlvbiB3aGVuIHRoZXJlIGFyZSBubyBleHBsaWNpdCB0YXJnZXRzIHNvIHdlIGtub3cgaXQncyBhIGZ1bGwgYnVpbGRcbiAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnMudGFyZ2V0cz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBhd2FpdCBwcm9qZWN0LnJlY29yZEJ1aWxkSW5mbyhpbmZvKTtcbiAgICAgICAgICAgIGlmIChub2RlKSB7XG4gICAgICAgICAgICAgICAgbm9kZS5pbmZvID0gaW5mbztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jICN0cmFuc3BpbGUocHJvamVjdDogUHJvamVjdCwgZm9ybWF0OiBcImVzbVwiIHwgXCJjanNcIikge1xuICAgICAgICBhd2FpdCBwcm9qZWN0LmJ1aWxkU291cmNlKGZvcm1hdCk7XG4gICAgICAgIGlmIChwcm9qZWN0LnBrZy5oYXNUZXN0cykge1xuICAgICAgICAgICAgYXdhaXQgcHJvamVjdC5idWlsZFRlc3RzKGZvcm1hdCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjc2VsZWN0VGFyZ2V0cyhwcm9qZWN0OiBQcm9qZWN0KSB7XG4gICAgICAgIGNvbnN0IHRhcmdldHMgPSBuZXcgU2V0PHN0cmluZz4odGhpcy5vcHRpb25zLnRhcmdldHMpO1xuXG4gICAgICAgIGlmICghdGFyZ2V0cy5zaXplKSB7XG4gICAgICAgICAgICB0YXJnZXRzLmFkZChUYXJnZXQudHlwZXMpO1xuXG4gICAgICAgICAgICBpZiAocHJvamVjdC5wa2cuc3VwcG9ydHNFc20pIHtcbiAgICAgICAgICAgICAgICB0YXJnZXRzLmFkZChUYXJnZXQuZXNtKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHByb2plY3QucGtnLnN1cHBvcnRzQ2pzKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0cy5hZGQoVGFyZ2V0LmNqcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoIXByb2plY3QucGtnLnN1cHBvcnRzRXNtKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0cy5kZWxldGUoVGFyZ2V0LmVzbSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghcHJvamVjdC5wa2cuc3VwcG9ydHNDanMpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXRzLmRlbGV0ZShUYXJnZXQuY2pzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0YXJnZXRzO1xuICAgIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQSxTQUFTLGtCQUFrQjtBQUUzQixTQUFTLGtCQUFrQjtBQUMzQixTQUFTLGFBQWE7QUFFdEIsU0FBUywrQkFBK0I7QUFHakMsSUFBSyxTQUFMLGtCQUFLQSxZQUFMO0FBQ0gsRUFBQUEsUUFBQSxXQUFRO0FBQ1IsRUFBQUEsUUFBQSxXQUFRO0FBQ1IsRUFBQUEsUUFBQSxTQUFNO0FBQ04sRUFBQUEsUUFBQSxTQUFNO0FBSkUsU0FBQUE7QUFBQSxHQUFBO0FBa0JMLE1BQU0sZUFBZTtBQUFBLEVBS3hCLFlBQW9CLFVBQW1CLENBQUMsR0FBRztBQUF2QjtBQUNoQixTQUFLLFFBQVEsUUFBUTtBQUNyQixTQUFLLGdCQUNELFFBQVEsU0FBVSxRQUFRLFlBQVksVUFBYSxRQUFRLFNBQVMsUUFBUSxtQkFBWSxNQUFNO0FBQUEsRUFDdEc7QUFBQSxFQVJB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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/building/project-builder.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["Target"]
6
6
  }
@@ -73,7 +73,14 @@ async function bootstrap() {
73
73
  await new Promise(resolve => {
74
74
  const proc = spawn(
75
75
  esbuild,
76
- ["src/**/*.ts", "--outdir=dist/esm", "--format=esm", "--log-level=warning", "--sourcemap=inline"],
76
+ [
77
+ "src/**/*.ts",
78
+ "--outdir=dist/esm",
79
+ "--format=esm",
80
+ "--log-level=warning",
81
+ "--sourcemap=inline",
82
+ "--target=es2022",
83
+ ],
77
84
  options,
78
85
  );
79
86
 
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Project CHIP Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * Parses package.json "imports" fields and rewrites local imports according to the import definitions.
8
+ */
9
+ export declare class ImportAliases {
10
+ #private;
11
+ constructor(localAliases?: Record<string, string>, parent?: ImportAliases);
12
+ rewrite(path: string): string;
13
+ }
14
+ //# sourceMappingURL=import-aliases.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-aliases.d.ts","sourceRoot":"","sources":["../../../src/util/import-aliases.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,qBAAa,aAAa;;gBAKV,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,aAAa;IAmCzE,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAqBhC"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Project CHIP Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ class ImportAliases {
7
+ #parent;
8
+ #direct = {};
9
+ #wildcard = Array();
10
+ constructor(localAliases, parent) {
11
+ for (const path in localAliases) {
12
+ const resolvesTo = localAliases[path];
13
+ let wildcardAt = path.indexOf("*");
14
+ if (wildcardAt === -1) {
15
+ this.#direct[path] = resolvesTo;
16
+ continue;
17
+ }
18
+ const inputPrefix = path.substring(0, wildcardAt);
19
+ const inputSuffix = path.substring(wildcardAt + 1);
20
+ wildcardAt = resolvesTo.indexOf("*");
21
+ if (wildcardAt === -1) {
22
+ this.#wildcard.push({
23
+ inputPrefix,
24
+ inputSuffix,
25
+ includeGlob: false,
26
+ outputPrefix: resolvesTo,
27
+ outputSuffix: ""
28
+ });
29
+ } else {
30
+ this.#wildcard.push({
31
+ inputPrefix,
32
+ inputSuffix,
33
+ includeGlob: true,
34
+ outputPrefix: resolvesTo.substring(0, wildcardAt),
35
+ outputSuffix: resolvesTo.substring(wildcardAt + 1)
36
+ });
37
+ }
38
+ }
39
+ this.#parent = parent;
40
+ }
41
+ rewrite(path) {
42
+ if (path.startsWith("#")) {
43
+ const direct = this.#direct[path];
44
+ if (direct) {
45
+ return direct;
46
+ }
47
+ for (const alias of this.#wildcard) {
48
+ if (path.startsWith(alias.inputPrefix) && path.endsWith(alias.inputSuffix)) {
49
+ if (alias.includeGlob) {
50
+ return alias.outputPrefix + path.substring(alias.inputPrefix.length, path.length - alias.inputSuffix.length) + alias.outputSuffix;
51
+ }
52
+ return alias.outputPrefix;
53
+ }
54
+ }
55
+ }
56
+ return this.#parent?.rewrite(path) ?? path;
57
+ }
58
+ }
59
+ export {
60
+ ImportAliases
61
+ };
62
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3V0aWwvaW1wb3J0LWFsaWFzZXMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDIyLTIwMjUgUHJvamVjdCBDSElQIEF1dGhvcnNcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG4gKi9cblxuLyoqXG4gKiBQYXJzZXMgcGFja2FnZS5qc29uIFwiaW1wb3J0c1wiIGZpZWxkcyBhbmQgcmV3cml0ZXMgbG9jYWwgaW1wb3J0cyBhY2NvcmRpbmcgdG8gdGhlIGltcG9ydCBkZWZpbml0aW9ucy5cbiAqL1xuZXhwb3J0IGNsYXNzIEltcG9ydEFsaWFzZXMge1xuICAgICNwYXJlbnQ/OiBJbXBvcnRBbGlhc2VzO1xuICAgICNkaXJlY3Q6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgICAjd2lsZGNhcmQgPSBBcnJheTxXaWxkY2FyZEFsaWFzPigpO1xuXG4gICAgY29uc3RydWN0b3IobG9jYWxBbGlhc2VzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiwgcGFyZW50PzogSW1wb3J0QWxpYXNlcykge1xuICAgICAgICBmb3IgKGNvbnN0IHBhdGggaW4gbG9jYWxBbGlhc2VzKSB7XG4gICAgICAgICAgICBjb25zdCByZXNvbHZlc1RvID0gbG9jYWxBbGlhc2VzW3BhdGhdO1xuXG4gICAgICAgICAgICBsZXQgd2lsZGNhcmRBdCA9IHBhdGguaW5kZXhPZihcIipcIik7XG4gICAgICAgICAgICBpZiAod2lsZGNhcmRBdCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLiNkaXJlY3RbcGF0aF0gPSByZXNvbHZlc1RvO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBpbnB1dFByZWZpeCA9IHBhdGguc3Vic3RyaW5nKDAsIHdpbGRjYXJkQXQpO1xuICAgICAgICAgICAgY29uc3QgaW5wdXRTdWZmaXggPSBwYXRoLnN1YnN0cmluZyh3aWxkY2FyZEF0ICsgMSk7XG5cbiAgICAgICAgICAgIHdpbGRjYXJkQXQgPSByZXNvbHZlc1RvLmluZGV4T2YoXCIqXCIpO1xuICAgICAgICAgICAgaWYgKHdpbGRjYXJkQXQgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgdGhpcy4jd2lsZGNhcmQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGlucHV0UHJlZml4LFxuICAgICAgICAgICAgICAgICAgICBpbnB1dFN1ZmZpeCxcbiAgICAgICAgICAgICAgICAgICAgaW5jbHVkZUdsb2I6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBvdXRwdXRQcmVmaXg6IHJlc29sdmVzVG8sXG4gICAgICAgICAgICAgICAgICAgIG91dHB1dFN1ZmZpeDogXCJcIixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy4jd2lsZGNhcmQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGlucHV0UHJlZml4LFxuICAgICAgICAgICAgICAgICAgICBpbnB1dFN1ZmZpeCxcbiAgICAgICAgICAgICAgICAgICAgaW5jbHVkZUdsb2I6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIG91dHB1dFByZWZpeDogcmVzb2x2ZXNUby5zdWJzdHJpbmcoMCwgd2lsZGNhcmRBdCksXG4gICAgICAgICAgICAgICAgICAgIG91dHB1dFN1ZmZpeDogcmVzb2x2ZXNUby5zdWJzdHJpbmcod2lsZGNhcmRBdCArIDEpLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuI3BhcmVudCA9IHBhcmVudDtcbiAgICB9XG5cbiAgICByZXdyaXRlKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGlmIChwYXRoLnN0YXJ0c1dpdGgoXCIjXCIpKSB7XG4gICAgICAgICAgICBjb25zdCBkaXJlY3QgPSB0aGlzLiNkaXJlY3RbcGF0aF07XG4gICAgICAgICAgICBpZiAoZGlyZWN0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRpcmVjdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAoY29uc3QgYWxpYXMgb2YgdGhpcy4jd2lsZGNhcmQpIHtcbiAgICAgICAgICAgICAgICBpZiAocGF0aC5zdGFydHNXaXRoKGFsaWFzLmlucHV0UHJlZml4KSAmJiBwYXRoLmVuZHNXaXRoKGFsaWFzLmlucHV0U3VmZml4KSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoYWxpYXMuaW5jbHVkZUdsb2IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpYXMub3V0cHV0UHJlZml4ICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLnN1YnN0cmluZyhhbGlhcy5pbnB1dFByZWZpeC5sZW5ndGgsIHBhdGgubGVuZ3RoIC0gYWxpYXMuaW5wdXRTdWZmaXgubGVuZ3RoKSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpYXMub3V0cHV0U3VmZml4XG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhbGlhcy5vdXRwdXRQcmVmaXg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLiNwYXJlbnQ/LnJld3JpdGUocGF0aCkgPz8gcGF0aDtcbiAgICB9XG59XG5cbmludGVyZmFjZSBXaWxkY2FyZEFsaWFzIHtcbiAgICBpbnB1dFByZWZpeDogc3RyaW5nO1xuICAgIGlucHV0U3VmZml4OiBzdHJpbmc7XG4gICAgaW5jbHVkZUdsb2I6IGJvb2xlYW47XG4gICAgb3V0cHV0UHJlZml4OiBzdHJpbmc7XG4gICAgb3V0cHV0U3VmZml4OiBzdHJpbmc7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU08sTUFBTSxjQUFjO0FBQUEsRUFDdkI7QUFBQSxFQUNBLFVBQWtDLENBQUM7QUFBQSxFQUNuQyxZQUFZLE1BQXFCO0FBQUEsRUFFakMsWUFBWSxjQUF1QyxRQUF3QjtBQUN2RSxlQUFXLFFBQVEsY0FBYztBQUM3QixZQUFNLGFBQWEsYUFBYSxJQUFJO0FBRXBDLFVBQUksYUFBYSxLQUFLLFFBQVEsR0FBRztBQUNqQyxVQUFJLGVBQWUsSUFBSTtBQUNuQixhQUFLLFFBQVEsSUFBSSxJQUFJO0FBQ3JCO0FBQUEsTUFDSjtBQUVBLFlBQU0sY0FBYyxLQUFLLFVBQVUsR0FBRyxVQUFVO0FBQ2hELFlBQU0sY0FBYyxLQUFLLFVBQVUsYUFBYSxDQUFDO0FBRWpELG1CQUFhLFdBQVcsUUFBUSxHQUFHO0FBQ25DLFVBQUksZUFBZSxJQUFJO0FBQ25CLGFBQUssVUFBVSxLQUFLO0FBQUEsVUFDaEI7QUFBQSxVQUNBO0FBQUEsVUFDQSxhQUFhO0FBQUEsVUFDYixjQUFjO0FBQUEsVUFDZCxjQUFjO0FBQUEsUUFDbEIsQ0FBQztBQUFBLE1BQ0wsT0FBTztBQUNILGFBQUssVUFBVSxLQUFLO0FBQUEsVUFDaEI7QUFBQSxVQUNBO0FBQUEsVUFDQSxhQUFhO0FBQUEsVUFDYixjQUFjLFdBQVcsVUFBVSxHQUFHLFVBQVU7QUFBQSxVQUNoRCxjQUFjLFdBQVcsVUFBVSxhQUFhLENBQUM7QUFBQSxRQUNyRCxDQUFDO0FBQUEsTUFDTDtBQUFBLElBQ0o7QUFDQSxTQUFLLFVBQVU7QUFBQSxFQUNuQjtBQUFBLEVBRUEsUUFBUSxNQUFzQjtBQUMxQixRQUFJLEtBQUssV0FBVyxHQUFHLEdBQUc7QUFDdEIsWUFBTSxTQUFTLEtBQUssUUFBUSxJQUFJO0FBQ2hDLFVBQUksUUFBUTtBQUNSLGVBQU87QUFBQSxNQUNYO0FBQ0EsaUJBQVcsU0FBUyxLQUFLLFdBQVc7QUFDaEMsWUFBSSxLQUFLLFdBQVcsTUFBTSxXQUFXLEtBQUssS0FBSyxTQUFTLE1BQU0sV0FBVyxHQUFHO0FBQ3hFLGNBQUksTUFBTSxhQUFhO0FBQ25CLG1CQUNJLE1BQU0sZUFDTixLQUFLLFVBQVUsTUFBTSxZQUFZLFFBQVEsS0FBSyxTQUFTLE1BQU0sWUFBWSxNQUFNLElBQy9FLE1BQU07QUFBQSxVQUVkO0FBQ0EsaUJBQU8sTUFBTTtBQUFBLFFBQ2pCO0FBQUEsTUFDSjtBQUFBLElBQ0o7QUFDQSxXQUFPLEtBQUssU0FBUyxRQUFRLElBQUksS0FBSztBQUFBLEVBQzFDO0FBQ0o7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/util/import-aliases.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AASO,MAAM,cAAc;AAAA,EACvB;AAAA,EACA,UAAkC,CAAC;AAAA,EACnC,YAAY,MAAqB;AAAA,EAEjC,YAAY,cAAuC,QAAwB;AACvE,eAAW,QAAQ,cAAc;AAC7B,YAAM,aAAa,aAAa,IAAI;AAEpC,UAAI,aAAa,KAAK,QAAQ,GAAG;AACjC,UAAI,eAAe,IAAI;AACnB,aAAK,QAAQ,IAAI,IAAI;AACrB;AAAA,MACJ;AAEA,YAAM,cAAc,KAAK,UAAU,GAAG,UAAU;AAChD,YAAM,cAAc,KAAK,UAAU,aAAa,CAAC;AAEjD,mBAAa,WAAW,QAAQ,GAAG;AACnC,UAAI,eAAe,IAAI;AACnB,aAAK,UAAU,KAAK;AAAA,UAChB;AAAA,UACA;AAAA,UACA,aAAa;AAAA,UACb,cAAc;AAAA,UACd,cAAc;AAAA,QAClB,CAAC;AAAA,MACL,OAAO;AACH,aAAK,UAAU,KAAK;AAAA,UAChB;AAAA,UACA;AAAA,UACA,aAAa;AAAA,UACb,cAAc,WAAW,UAAU,GAAG,UAAU;AAAA,UAChD,cAAc,WAAW,UAAU,aAAa,CAAC;AAAA,QACrD,CAAC;AAAA,MACL;AAAA,IACJ;AACA,SAAK,UAAU;AAAA,EACnB;AAAA,EAEA,QAAQ,MAAsB;AAC1B,QAAI,KAAK,WAAW,GAAG,GAAG;AACtB,YAAM,SAAS,KAAK,QAAQ,IAAI;AAChC,UAAI,QAAQ;AACR,eAAO;AAAA,MACX;AACA,iBAAW,SAAS,KAAK,WAAW;AAChC,YAAI,KAAK,WAAW,MAAM,WAAW,KAAK,KAAK,SAAS,MAAM,WAAW,GAAG;AACxE,cAAI,MAAM,aAAa;AACnB,mBACI,MAAM,eACN,KAAK,UAAU,MAAM,YAAY,QAAQ,KAAK,SAAS,MAAM,YAAY,MAAM,IAC/E,MAAM;AAAA,UAEd;AACA,iBAAO,MAAM;AAAA,QACjB;AAAA,MACJ;AAAA,IACJ;AACA,WAAO,KAAK,SAAS,QAAQ,IAAI,KAAK;AAAA,EAC1C;AACJ;",
5
+ "names": []
6
+ }
@@ -3,6 +3,7 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { ImportAliases } from "./import-aliases.js";
6
7
  import { Progress } from "./progress.js";
7
8
  export declare class JsonNotFoundError extends Error {
8
9
  }
@@ -54,7 +55,7 @@ export declare class Package {
54
55
  writeJson(path: string, value: {}): Promise<void>;
55
56
  static maybeForPath(path: string): Package | undefined;
56
57
  static forPath(path: string): Package;
57
- get aliases(): Record<string, string>;
58
+ get importAliases(): ImportAliases;
58
59
  get modules(): Record<string, string>;
59
60
  get sourceModules(): Record<string, string>;
60
61
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../../../src/util/package.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../../../src/util/package.ts"],"names":[],"mappings":"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"}