@matter/tools 0.15.2-alpha.0-20250703-2e16aba2b → 0.15.2-alpha.0-20250708-b8eb61a5e

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.
@@ -1 +1 @@
1
- {"version":3,"file":"cycles.d.ts","sourceRoot":"","sources":["../../../src/building/cycles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAQ/C,wBAAsB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,iBAKlE"}
1
+ {"version":3,"file":"cycles.d.ts","sourceRoot":"","sources":["../../../src/building/cycles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAQ/C,wBAAsB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,iBAKlE"}
@@ -41,6 +41,7 @@ var import_text_builder = require("../ansi-text/text-builder.js");
41
41
  * Copyright 2022-2025 Matter.js Authors
42
42
  * SPDX-License-Identifier: Apache-2.0
43
43
  */
44
+ const MAX_CYCLES = 1e3;
44
45
  async function reportCycles(pkg, progress) {
45
46
  const cycles = await progress.run(pkg.name, () => identifyCycles(pkg, progress));
46
47
  if (cycles) {
@@ -60,6 +61,9 @@ async function identifyCycles(pkg, progress) {
60
61
  const cycles = [];
61
62
  for (const filename in deps) {
62
63
  visit(filename, []);
64
+ if (cycles.length === MAX_CYCLES) {
65
+ break;
66
+ }
63
67
  }
64
68
  function visit(filename, breadcrumb) {
65
69
  progress.refresh();
@@ -94,6 +98,9 @@ async function identifyCycles(pkg, progress) {
94
98
  breadcrumb = [...breadcrumb, filename];
95
99
  for (const dep of fileDeps) {
96
100
  visit(dep, breadcrumb);
101
+ if (cycles.length > MAX_CYCLES) {
102
+ break;
103
+ }
97
104
  }
98
105
  }
99
106
  return cycles.length ? cycles : void 0;
@@ -104,6 +111,11 @@ function printCycles(pkg, cycles) {
104
111
  for (const cycle of cycles) {
105
112
  import_std.std.out(" ", cycle.map((name) => import_text_builder.ansi.bright.blue((0, import_node_path.relative)(src, name))).join(" \u2192 "), " \u21A9\n");
106
113
  }
114
+ if (cycles.length >= MAX_CYCLES) {
115
+ import_std.std.out(`
116
+ ${import_text_builder.ansi.red(`Stopping search after max ${MAX_CYCLES} cycles`)}
117
+ `);
118
+ }
107
119
  }
108
120
  function resolveDeps(pkg, sourceFilename, deps) {
109
121
  const dir = (0, import_node_path.dirname)(sourceFilename);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/building/cycles.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,sBAAyB;AAKzB,kCAAsB;AACtB,uBAA2C;AAC3C,iBAAoB;AACpB,0BAAqB;AAdrB;AAAA;AAAA;AAAA;AAAA;AAgBA,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,UAAM,0BAAS,UAAU,OAAO;AACjD,UAAM,eAAW,4BAAAA,SAAU,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,iBAAI,IAAI,yBAAK,IAAI,kBAAkB,GAAG,IAAI;AAC1C,QAAM,MAAM,IAAI,QAAQ,KAAK;AAC7B,aAAW,SAAS,QAAQ;AACxB,mBAAI,IAAI,MAAM,MAAM,IAAI,UAAQ,yBAAK,OAAO,SAAK,2BAAS,KAAK,IAAI,CAAC,CAAC,EAAE,KAAK,UAAK,GAAG,WAAM;AAAA,EAC9F;AACJ;AAEA,SAAS,YAAY,KAAc,gBAAwB,MAAgB;AACvE,QAAM,UAAM,0BAAQ,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,SAAK,0BAAQ,MAAM,GAAG,CAAC;AAAA,IACpC;AAAA,EACJ;AAEA,SAAO;AACX;",
4
+ "mappings": "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",
5
5
  "names": ["detective"]
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../src/util/progress.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,eAAO,MAAM,mBAAmB,oDAAkB,CAAC;AACnD,eAAO,MAAM,mBAAmB,oDAAuB,CAAC;AACxD,eAAO,MAAM,mBAAmB,oDAAsB,CAAC;AAkFvD,qBAAa,QAAQ;;IACjB,MAAM,kBAA2B;;IAWjC,SAAS,CAAC,IAAI,EAAE,OAAO;IAIvB,WAAW,CAAC,IAAI,EAAE,OAAO;IAIzB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO;IAI9B,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,OAAO,GAAG,OAAO;IAcxD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;IAuBnC,OAAO,CAAC,IAAI,EAAE,MAAM;IAMpB,OAAO,CAAC,IAAI,EAAE,MAAM;IAMpB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG;IAO/B,IAAI,CAAC,IAAI,EAAE,MAAM;IAIjB,KAAK;IAQL,CAAC,MAAM,CAAC,OAAO,CAAC;IAIhB,OAAO;IAMD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC;IA4B7C,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAiBtD;AAED,yBAAiB,QAAQ,CAAC;IACtB,KAAY,MAAM;QACd,OAAO,YAAY;QACnB,OAAO,YAAY;QACnB,OAAO,YAAY;QACnB,OAAO,YAAY;KACtB;IAED,SAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,UAyB9C;CACJ"}
1
+ {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../src/util/progress.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,eAAO,MAAM,mBAAmB,oDAAkB,CAAC;AACnD,eAAO,MAAM,mBAAmB,oDAAuB,CAAC;AACxD,eAAO,MAAM,mBAAmB,oDAAsB,CAAC;AAkFvD,qBAAa,QAAQ;;IACjB,MAAM,kBAA2B;;IAWjC,SAAS,CAAC,IAAI,EAAE,OAAO;IAIvB,WAAW,CAAC,IAAI,EAAE,OAAO;IAIzB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO;IAI9B,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,OAAO,GAAG,OAAO;IAcxD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;IAuBnC,OAAO,CAAC,IAAI,EAAE,MAAM;IAMpB,OAAO,CAAC,IAAI,EAAE,MAAM;IAMpB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG;IAO/B,IAAI,CAAC,IAAI,EAAE,MAAM;IAIjB,KAAK;IAQL,CAAC,MAAM,CAAC,OAAO,CAAC;IAIhB,OAAO;IAMD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC;IA4B7C,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAiBtD;AAED,yBAAiB,QAAQ,CAAC;IACtB,KAAY,MAAM;QACd,OAAO,YAAY;QACnB,OAAO,YAAY;QACnB,OAAO,YAAY;QACnB,OAAO,YAAY;KACtB;IAED,SAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,UAsB9C;CACJ"}
@@ -241,9 +241,6 @@ class Progress {
241
241
  if (time.startsWith("0.")) {
242
242
  time = time.slice(1);
243
243
  }
244
- while (time.endsWith("0")) {
245
- time = time.slice(0, time.length - 1);
246
- }
247
244
  if (time.endsWith(".")) {
248
245
  if (time.length === 1) {
249
246
  time = "0";
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/util/progress.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["writeStatus", "Progress", "Status"]
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cycles.d.ts","sourceRoot":"","sources":["../../../src/building/cycles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAQ/C,wBAAsB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,iBAKlE"}
1
+ {"version":3,"file":"cycles.d.ts","sourceRoot":"","sources":["../../../src/building/cycles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAQ/C,wBAAsB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,iBAKlE"}
@@ -3,6 +3,7 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ const MAX_CYCLES = 1e3;
6
7
  import { readFile } from "node:fs/promises";
7
8
  import detective from "detective-typescript";
8
9
  import { dirname, relative, resolve } from "node:path";
@@ -27,6 +28,9 @@ async function identifyCycles(pkg, progress) {
27
28
  const cycles = [];
28
29
  for (const filename in deps) {
29
30
  visit(filename, []);
31
+ if (cycles.length === MAX_CYCLES) {
32
+ break;
33
+ }
30
34
  }
31
35
  function visit(filename, breadcrumb) {
32
36
  progress.refresh();
@@ -61,6 +65,9 @@ async function identifyCycles(pkg, progress) {
61
65
  breadcrumb = [...breadcrumb, filename];
62
66
  for (const dep of fileDeps) {
63
67
  visit(dep, breadcrumb);
68
+ if (cycles.length > MAX_CYCLES) {
69
+ break;
70
+ }
64
71
  }
65
72
  }
66
73
  return cycles.length ? cycles : void 0;
@@ -71,6 +78,11 @@ function printCycles(pkg, cycles) {
71
78
  for (const cycle of cycles) {
72
79
  std.out(" ", cycle.map((name) => ansi.bright.blue(relative(src, name))).join(" \u2192 "), " \u21A9\n");
73
80
  }
81
+ if (cycles.length >= MAX_CYCLES) {
82
+ std.out(`
83
+ ${ansi.red(`Stopping search after max ${MAX_CYCLES} cycles`)}
84
+ `);
85
+ }
74
86
  }
75
87
  function resolveDeps(pkg, sourceFilename, deps) {
76
88
  const dir = dirname(sourceFilename);
@@ -91,4 +103,4 @@ function resolveDeps(pkg, sourceFilename, deps) {
91
103
  export {
92
104
  reportCycles
93
105
  };
94
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2J1aWxkaW5nL2N5Y2xlcy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMjItMjAyNSBNYXR0ZXIuanMgQXV0aG9yc1xuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiAqL1xuXG5pbXBvcnQgeyByZWFkRmlsZSB9IGZyb20gXCJub2RlOmZzL3Byb21pc2VzXCI7XG5pbXBvcnQgeyBQYWNrYWdlIH0gZnJvbSBcIi4uL3V0aWwvcGFja2FnZS5qc1wiO1xuaW1wb3J0IHsgUHJvZ3Jlc3MgfSBmcm9tIFwiLi4vdXRpbC9wcm9ncmVzcy5qc1wiO1xuXG4vLyBAdHMtZXhwZWN0LWVycm9yIHdlIGRvbid0IGhhdmUgdHlwZXMgZm9yIGRldGVjdGl2ZS10eXBlc2NyaXB0XG5pbXBvcnQgZGV0ZWN0aXZlIGZyb20gXCJkZXRlY3RpdmUtdHlwZXNjcmlwdFwiO1xuaW1wb3J0IHsgZGlybmFtZSwgcmVsYXRpdmUsIHJlc29sdmUgfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBzdGQgfSBmcm9tIFwiLi4vYW5zaS10ZXh0L3N0ZC5qc1wiO1xuaW1wb3J0IHsgYW5zaSB9IGZyb20gXCIuLi9hbnNpLXRleHQvdGV4dC1idWlsZGVyLmpzXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXBvcnRDeWNsZXMocGtnOiBQYWNrYWdlLCBwcm9ncmVzczogUHJvZ3Jlc3MpIHtcbiAgICBjb25zdCBjeWNsZXMgPSBhd2FpdCBwcm9ncmVzcy5ydW4ocGtnLm5hbWUsICgpID0+IGlkZW50aWZ5Q3ljbGVzKHBrZywgcHJvZ3Jlc3MpKTtcbiAgICBpZiAoY3ljbGVzKSB7XG4gICAgICAgIHByaW50Q3ljbGVzKHBrZywgY3ljbGVzKTtcbiAgICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGlkZW50aWZ5Q3ljbGVzKHBrZzogUGFja2FnZSwgcHJvZ3Jlc3M6IFByb2dyZXNzKSB7XG4gICAgY29uc3QgZGVwcyA9IHt9IGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPjtcbiAgICBmb3IgKGNvbnN0IGZpbGVuYW1lIG9mIGF3YWl0IHBrZy5nbG9iKFwie3NyYyx0ZXN0fS8qKi8qLnRzXCIpKSB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnRzID0gYXdhaXQgcmVhZEZpbGUoZmlsZW5hbWUsIFwidXRmLThcIik7XG4gICAgICAgIGNvbnN0IGZpbGVEZXBzID0gZGV0ZWN0aXZlKGNvbnRlbnRzLCB7XG4gICAgICAgICAgICBza2lwVHlwZUltcG9ydHM6IHRydWUsXG4gICAgICAgICAgICBza2lwQXN5bmNJbXBvcnRzOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgICAgZGVwc1tmaWxlbmFtZV0gPSByZXNvbHZlRGVwcyhwa2csIGZpbGVuYW1lLCBmaWxlRGVwcyk7XG4gICAgfVxuXG4gICAgY29uc3QgY3ljbGVzID0gW10gYXMgc3RyaW5nW11bXTtcbiAgICBmb3IgKGNvbnN0IGZpbGVuYW1lIGluIGRlcHMpIHtcbiAgICAgICAgdmlzaXQoZmlsZW5hbWUsIFtdKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB2aXNpdChmaWxlbmFtZTogc3RyaW5nLCBicmVhZGNydW1iOiBzdHJpbmdbXSkge1xuICAgICAgICBwcm9ncmVzcy5yZWZyZXNoKCk7XG4gICAgICAgIGNvbnN0IGZpbGVEZXBzID0gZGVwc1tmaWxlbmFtZV0gPz8gZGVwc1tmaWxlbmFtZS5yZXBsYWNlKC9cXC5qcyQvLCBcIi50c1wiKV07XG4gICAgICAgIGlmIChmaWxlRGVwcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwcmV2aW91c0luZGV4ID0gYnJlYWRjcnVtYi5pbmRleE9mKGZpbGVuYW1lKTtcbiAgICAgICAgaWYgKHByZXZpb3VzSW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdDeWNsZSA9IGJyZWFkY3J1bWIuc2xpY2UocHJldmlvdXNJbmRleCk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGN5Y2xlIG9mIGN5Y2xlcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVuYW1lT2Zmc2V0ID0gY3ljbGUuaW5kZXhPZihmaWxlbmFtZSk7XG4gICAgICAgICAgICAgICAgaWYgKGN5Y2xlLmxlbmd0aCAhPT0gbmV3Q3ljbGUubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoZmlsZW5hbWVPZmZzZXQgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGxldCBpID0gMDtcbiAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbmV3Q3ljbGUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5ld0N5Y2xlW2ldICE9PSBjeWNsZVsoZmlsZW5hbWVPZmZzZXQgKyBpKSAlIG5ld0N5Y2xlLmxlbmd0aF0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGkgPT09IG5ld0N5Y2xlLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY3ljbGVzLnB1c2gobmV3Q3ljbGUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWRjcnVtYiA9IFsuLi5icmVhZGNydW1iLCBmaWxlbmFtZV07XG4gICAgICAgIGZvciAoY29uc3QgZGVwIG9mIGZpbGVEZXBzKSB7XG4gICAgICAgICAgICB2aXNpdChkZXAsIGJyZWFkY3J1bWIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGN5Y2xlcy5sZW5ndGggPyBjeWNsZXMgOiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIHByaW50Q3ljbGVzKHBrZzogUGFja2FnZSwgY3ljbGVzOiBzdHJpbmdbXVtdKSB7XG4gICAgc3RkLm91dChhbnNpLnJlZChcIkN5Y2xlcyBkZXRlY3RlZDpcIiksIFwiXFxuXCIpO1xuICAgIGNvbnN0IHNyYyA9IHBrZy5yZXNvbHZlKFwic3JjXCIpO1xuICAgIGZvciAoY29uc3QgY3ljbGUgb2YgY3ljbGVzKSB7XG4gICAgICAgIHN0ZC5vdXQoXCIgIFwiLCBjeWNsZS5tYXAobmFtZSA9PiBhbnNpLmJyaWdodC5ibHVlKHJlbGF0aXZlKHNyYywgbmFtZSkpKS5qb2luKFwiIFx1MjE5MiBcIiksIFwiIFx1MjFBOVxcblwiKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVEZXBzKHBrZzogUGFja2FnZSwgc291cmNlRmlsZW5hbWU6IHN0cmluZywgZGVwczogc3RyaW5nW10pIHtcbiAgICBjb25zdCBkaXIgPSBkaXJuYW1lKHNvdXJjZUZpbGVuYW1lKTtcbiAgICBjb25zdCBhbGlhc2VzID0gcGtnLmltcG9ydEFsaWFzZXM7XG4gICAgY29uc3QgcmVzb2x2ZWQgPSBBcnJheTxzdHJpbmc+KCk7XG5cbiAgICBmb3IgKGxldCBkZXAgb2YgZGVwcykge1xuICAgICAgICBsZXQgYmFzZSA9IGRpcjtcbiAgICAgICAgaWYgKGRlcC5zdGFydHNXaXRoKFwiI1wiKSkge1xuICAgICAgICAgICAgZGVwID0gYWxpYXNlcy5yZXdyaXRlKGRlcCk7XG4gICAgICAgICAgICBiYXNlID0gcGtnLnBhdGg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRlcC5zdGFydHNXaXRoKFwiLi9cIikpIHtcbiAgICAgICAgICAgIHJlc29sdmVkLnB1c2gocmVzb2x2ZShiYXNlLCBkZXApKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXNvbHZlZDtcbn1cbiJd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
106
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2J1aWxkaW5nL2N5Y2xlcy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMjItMjAyNSBNYXR0ZXIuanMgQXV0aG9yc1xuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiAqL1xuXG5jb25zdCBNQVhfQ1lDTEVTID0gMTAwMDtcblxuaW1wb3J0IHsgcmVhZEZpbGUgfSBmcm9tIFwibm9kZTpmcy9wcm9taXNlc1wiO1xuaW1wb3J0IHsgUGFja2FnZSB9IGZyb20gXCIuLi91dGlsL3BhY2thZ2UuanNcIjtcbmltcG9ydCB7IFByb2dyZXNzIH0gZnJvbSBcIi4uL3V0aWwvcHJvZ3Jlc3MuanNcIjtcblxuLy8gQHRzLWV4cGVjdC1lcnJvciB3ZSBkb24ndCBoYXZlIHR5cGVzIGZvciBkZXRlY3RpdmUtdHlwZXNjcmlwdFxuaW1wb3J0IGRldGVjdGl2ZSBmcm9tIFwiZGV0ZWN0aXZlLXR5cGVzY3JpcHRcIjtcbmltcG9ydCB7IGRpcm5hbWUsIHJlbGF0aXZlLCByZXNvbHZlIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgc3RkIH0gZnJvbSBcIi4uL2Fuc2ktdGV4dC9zdGQuanNcIjtcbmltcG9ydCB7IGFuc2kgfSBmcm9tIFwiLi4vYW5zaS10ZXh0L3RleHQtYnVpbGRlci5qc1wiO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVwb3J0Q3ljbGVzKHBrZzogUGFja2FnZSwgcHJvZ3Jlc3M6IFByb2dyZXNzKSB7XG4gICAgY29uc3QgY3ljbGVzID0gYXdhaXQgcHJvZ3Jlc3MucnVuKHBrZy5uYW1lLCAoKSA9PiBpZGVudGlmeUN5Y2xlcyhwa2csIHByb2dyZXNzKSk7XG4gICAgaWYgKGN5Y2xlcykge1xuICAgICAgICBwcmludEN5Y2xlcyhwa2csIGN5Y2xlcyk7XG4gICAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBpZGVudGlmeUN5Y2xlcyhwa2c6IFBhY2thZ2UsIHByb2dyZXNzOiBQcm9ncmVzcykge1xuICAgIGNvbnN0IGRlcHMgPSB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT47XG4gICAgZm9yIChjb25zdCBmaWxlbmFtZSBvZiBhd2FpdCBwa2cuZ2xvYihcIntzcmMsdGVzdH0vKiovKi50c1wiKSkge1xuICAgICAgICBjb25zdCBjb250ZW50cyA9IGF3YWl0IHJlYWRGaWxlKGZpbGVuYW1lLCBcInV0Zi04XCIpO1xuICAgICAgICBjb25zdCBmaWxlRGVwcyA9IGRldGVjdGl2ZShjb250ZW50cywge1xuICAgICAgICAgICAgc2tpcFR5cGVJbXBvcnRzOiB0cnVlLFxuICAgICAgICAgICAgc2tpcEFzeW5jSW1wb3J0czogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGRlcHNbZmlsZW5hbWVdID0gcmVzb2x2ZURlcHMocGtnLCBmaWxlbmFtZSwgZmlsZURlcHMpO1xuICAgIH1cblxuICAgIGNvbnN0IGN5Y2xlcyA9IFtdIGFzIHN0cmluZ1tdW107XG4gICAgZm9yIChjb25zdCBmaWxlbmFtZSBpbiBkZXBzKSB7XG4gICAgICAgIHZpc2l0KGZpbGVuYW1lLCBbXSk7XG4gICAgICAgIGlmIChjeWNsZXMubGVuZ3RoID09PSBNQVhfQ1lDTEVTKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHZpc2l0KGZpbGVuYW1lOiBzdHJpbmcsIGJyZWFkY3J1bWI6IHN0cmluZ1tdKSB7XG4gICAgICAgIHByb2dyZXNzLnJlZnJlc2goKTtcbiAgICAgICAgY29uc3QgZmlsZURlcHMgPSBkZXBzW2ZpbGVuYW1lXSA/PyBkZXBzW2ZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzJC8sIFwiLnRzXCIpXTtcbiAgICAgICAgaWYgKGZpbGVEZXBzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHByZXZpb3VzSW5kZXggPSBicmVhZGNydW1iLmluZGV4T2YoZmlsZW5hbWUpO1xuICAgICAgICBpZiAocHJldmlvdXNJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld0N5Y2xlID0gYnJlYWRjcnVtYi5zbGljZShwcmV2aW91c0luZGV4KTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgY3ljbGUgb2YgY3ljbGVzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsZW5hbWVPZmZzZXQgPSBjeWNsZS5pbmRleE9mKGZpbGVuYW1lKTtcbiAgICAgICAgICAgICAgICBpZiAoY3ljbGUubGVuZ3RoICE9PSBuZXdDeWNsZS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChmaWxlbmFtZU9mZnNldCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbGV0IGkgPSAwO1xuICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBuZXdDeWNsZS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBpZiAobmV3Q3ljbGVbaV0gIT09IGN5Y2xlWyhmaWxlbmFtZU9mZnNldCArIGkpICUgbmV3Q3ljbGUubGVuZ3RoXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoaSA9PT0gbmV3Q3ljbGUubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjeWNsZXMucHVzaChuZXdDeWNsZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBicmVhZGNydW1iID0gWy4uLmJyZWFkY3J1bWIsIGZpbGVuYW1lXTtcbiAgICAgICAgZm9yIChjb25zdCBkZXAgb2YgZmlsZURlcHMpIHtcbiAgICAgICAgICAgIHZpc2l0KGRlcCwgYnJlYWRjcnVtYik7XG4gICAgICAgICAgICBpZiAoY3ljbGVzLmxlbmd0aCA+IE1BWF9DWUNMRVMpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjeWNsZXMubGVuZ3RoID8gY3ljbGVzIDogdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBwcmludEN5Y2xlcyhwa2c6IFBhY2thZ2UsIGN5Y2xlczogc3RyaW5nW11bXSkge1xuICAgIHN0ZC5vdXQoYW5zaS5yZWQoXCJDeWNsZXMgZGV0ZWN0ZWQ6XCIpLCBcIlxcblwiKTtcbiAgICBjb25zdCBzcmMgPSBwa2cucmVzb2x2ZShcInNyY1wiKTtcbiAgICBmb3IgKGNvbnN0IGN5Y2xlIG9mIGN5Y2xlcykge1xuICAgICAgICBzdGQub3V0KFwiICBcIiwgY3ljbGUubWFwKG5hbWUgPT4gYW5zaS5icmlnaHQuYmx1ZShyZWxhdGl2ZShzcmMsIG5hbWUpKSkuam9pbihcIiBcdTIxOTIgXCIpLCBcIiBcdTIxQTlcXG5cIik7XG4gICAgfVxuICAgIGlmIChjeWNsZXMubGVuZ3RoID49IE1BWF9DWUNMRVMpIHtcbiAgICAgICAgc3RkLm91dChgXFxuJHthbnNpLnJlZChgU3RvcHBpbmcgc2VhcmNoIGFmdGVyIG1heCAke01BWF9DWUNMRVN9IGN5Y2xlc2ApfVxcbmApO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gcmVzb2x2ZURlcHMocGtnOiBQYWNrYWdlLCBzb3VyY2VGaWxlbmFtZTogc3RyaW5nLCBkZXBzOiBzdHJpbmdbXSkge1xuICAgIGNvbnN0IGRpciA9IGRpcm5hbWUoc291cmNlRmlsZW5hbWUpO1xuICAgIGNvbnN0IGFsaWFzZXMgPSBwa2cuaW1wb3J0QWxpYXNlcztcbiAgICBjb25zdCByZXNvbHZlZCA9IEFycmF5PHN0cmluZz4oKTtcblxuICAgIGZvciAobGV0IGRlcCBvZiBkZXBzKSB7XG4gICAgICAgIGxldCBiYXNlID0gZGlyO1xuICAgICAgICBpZiAoZGVwLnN0YXJ0c1dpdGgoXCIjXCIpKSB7XG4gICAgICAgICAgICBkZXAgPSBhbGlhc2VzLnJld3JpdGUoZGVwKTtcbiAgICAgICAgICAgIGJhc2UgPSBwa2cucGF0aDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGVwLnN0YXJ0c1dpdGgoXCIuL1wiKSkge1xuICAgICAgICAgICAgcmVzb2x2ZWQucHVzaChyZXNvbHZlKGJhc2UsIGRlcCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc29sdmVkO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BLE1BQU0sYUFBYTtBQUVuQixTQUFTLGdCQUFnQjtBQUt6QixPQUFPLGVBQWU7QUFDdEIsU0FBUyxTQUFTLFVBQVUsZUFBZTtBQUMzQyxTQUFTLFdBQVc7QUFDcEIsU0FBUyxZQUFZO0FBRXJCLGVBQXNCLGFBQWEsS0FBYyxVQUFvQjtBQUNqRSxRQUFNLFNBQVMsTUFBTSxTQUFTLElBQUksSUFBSSxNQUFNLE1BQU0sZUFBZSxLQUFLLFFBQVEsQ0FBQztBQUMvRSxNQUFJLFFBQVE7QUFDUixnQkFBWSxLQUFLLE1BQU07QUFBQSxFQUMzQjtBQUNKO0FBRUEsZUFBZSxlQUFlLEtBQWMsVUFBb0I7QUFDNUQsUUFBTSxPQUFPLENBQUM7QUFDZCxhQUFXLFlBQVksTUFBTSxJQUFJLEtBQUssb0JBQW9CLEdBQUc7QUFDekQsVUFBTSxXQUFXLE1BQU0sU0FBUyxVQUFVLE9BQU87QUFDakQsVUFBTSxXQUFXLFVBQVUsVUFBVTtBQUFBLE1BQ2pDLGlCQUFpQjtBQUFBLE1BQ2pCLGtCQUFrQjtBQUFBLElBQ3RCLENBQUM7QUFDRCxTQUFLLFFBQVEsSUFBSSxZQUFZLEtBQUssVUFBVSxRQUFRO0FBQUEsRUFDeEQ7QUFFQSxRQUFNLFNBQVMsQ0FBQztBQUNo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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
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;",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../src/util/progress.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,eAAO,MAAM,mBAAmB,oDAAkB,CAAC;AACnD,eAAO,MAAM,mBAAmB,oDAAuB,CAAC;AACxD,eAAO,MAAM,mBAAmB,oDAAsB,CAAC;AAkFvD,qBAAa,QAAQ;;IACjB,MAAM,kBAA2B;;IAWjC,SAAS,CAAC,IAAI,EAAE,OAAO;IAIvB,WAAW,CAAC,IAAI,EAAE,OAAO;IAIzB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO;IAI9B,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,OAAO,GAAG,OAAO;IAcxD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;IAuBnC,OAAO,CAAC,IAAI,EAAE,MAAM;IAMpB,OAAO,CAAC,IAAI,EAAE,MAAM;IAMpB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG;IAO/B,IAAI,CAAC,IAAI,EAAE,MAAM;IAIjB,KAAK;IAQL,CAAC,MAAM,CAAC,OAAO,CAAC;IAIhB,OAAO;IAMD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC;IA4B7C,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAiBtD;AAED,yBAAiB,QAAQ,CAAC;IACtB,KAAY,MAAM;QACd,OAAO,YAAY;QACnB,OAAO,YAAY;QACnB,OAAO,YAAY;QACnB,OAAO,YAAY;KACtB;IAED,SAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,UAyB9C;CACJ"}
1
+ {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../src/util/progress.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,eAAO,MAAM,mBAAmB,oDAAkB,CAAC;AACnD,eAAO,MAAM,mBAAmB,oDAAuB,CAAC;AACxD,eAAO,MAAM,mBAAmB,oDAAsB,CAAC;AAkFvD,qBAAa,QAAQ;;IACjB,MAAM,kBAA2B;;IAWjC,SAAS,CAAC,IAAI,EAAE,OAAO;IAIvB,WAAW,CAAC,IAAI,EAAE,OAAO;IAIzB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO;IAI9B,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,OAAO,GAAG,OAAO;IAcxD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;IAuBnC,OAAO,CAAC,IAAI,EAAE,MAAM;IAMpB,OAAO,CAAC,IAAI,EAAE,MAAM;IAMpB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG;IAO/B,IAAI,CAAC,IAAI,EAAE,MAAM;IAIjB,KAAK;IAQL,CAAC,MAAM,CAAC,OAAO,CAAC;IAIhB,OAAO;IAMD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC;IA4B7C,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAiBtD;AAED,yBAAiB,QAAQ,CAAC;IACtB,KAAY,MAAM;QACd,OAAO,YAAY;QACnB,OAAO,YAAY;QACnB,OAAO,YAAY;QACnB,OAAO,YAAY;KACtB;IAED,SAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,UAsB9C;CACJ"}
@@ -215,9 +215,6 @@ class Progress {
215
215
  if (time.startsWith("0.")) {
216
216
  time = time.slice(1);
217
217
  }
218
- while (time.endsWith("0")) {
219
- time = time.slice(0, time.length - 1);
220
- }
221
218
  if (time.endsWith(".")) {
222
219
  if (time.length === 1) {
223
220
  time = "0";
@@ -241,4 +238,4 @@ export {
241
238
  STATUS_ICON_SKIPPED,
242
239
  STATUS_ICON_SUCCESS
243
240
  };
244
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3V0aWwvcHJvZ3Jlc3MudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDIyLTIwMjUgTWF0dGVyLmpzIEF1dGhvcnNcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG4gKi9cblxuaW1wb3J0IHsgc3RkZXJyLCBzdGRvdXQgfSBmcm9tIFwibm9kZTpwcm9jZXNzXCI7XG5pbXBvcnQgeyBzY3JlZW4gfSBmcm9tIFwiLi4vYW5zaS10ZXh0L3NjcmVlbi5qc1wiO1xuaW1wb3J0IHsgc3RkIH0gZnJvbSBcIi4uL2Fuc2ktdGV4dC9zdGQuanNcIjtcbmltcG9ydCB7IGFuc2kgfSBmcm9tIFwiLi4vYW5zaS10ZXh0L3RleHQtYnVpbGRlci5qc1wiO1xuaW1wb3J0IHsgUGFja2FnZSB9IGZyb20gXCIuL3BhY2thZ2UuanNcIjtcblxuZXhwb3J0IGNvbnN0IFNUQVRVU19JQ09OX1NVQ0NFU1MgPSBhbnNpLmdyZWVuKFwiXHUyNzEzXCIpO1xuZXhwb3J0IGNvbnN0IFNUQVRVU19JQ09OX0ZBSUxVUkUgPSBhbnNpLmJyaWdodC5yZWQoXCJcdTI3MTdcIik7XG5leHBvcnQgY29uc3QgU1RBVFVTX0lDT05fU0tJUFBFRCA9IGFuc2kuZGltLndoaXRlKFwiXHUyMDQzXCIpO1xuXG5jb25zdCBTUElOTkVSID0gXCJcdTI1RDBcdTI1RDNcdTI1RDFcdTI1RDJcIjsgLy9cIlx1Mjg1Q1x1MjgxNFx1MjgyMlx1MjhBM1wiOyAvL1tcIlx1MjZBQlx1RkUwRVwiLCBcIlx1MjZBQVx1RkUwRVwiXTsgXCJcdTI4NDhcdTI4MTRcdTI4MjJcdTI4ODFcIjtcbmNvbnN0IFNQSU5ORVJfSU5URVJWQUwgPSAxMDA7XG5cbmZ1bmN0aW9uIHBhY2thZ2VJZGVudGl0eShwa2c6IFBhY2thZ2UpIHtcbiAgICBsZXQgaWRlbnRpdHkgPSBhbnNpLmJvbGQocGtnLm5hbWUpLnRvU3RyaW5nKCk7XG4gICAgaWYgKHBrZy5qc29uLnZlcnNpb24pIHtcbiAgICAgICAgaWRlbnRpdHkgPSBgJHtpZGVudGl0eX1AJHtwa2cuanNvbi52ZXJzaW9ufWA7XG4gICAgfVxuICAgIHJldHVybiBpZGVudGl0eTtcbn1cblxuLyoqXG4gKiBJbnRlcmNlcHQgd3JpdGVzIHRvIHN0ZGVyciBhbmQgc3Rkb3V0IHNvIHdlIGNhbiBlbnN1cmUgb3VyIHVwZGF0ZXMgYXBwZWFyIG9uIGRpZmZlcmVudCBsaW5lcyBmcm9tIG90aGVyIG91dHB1dC5cbiAqL1xuY29uc3Qgd3JpdGVTdGF0dXMgPSAoKCkgPT4ge1xuICAgIGxldCBsYXN0U3RhdHVzOiB1bmRlZmluZWQgfCBzdHJpbmc7XG4gICAgbGV0IG5lZWROZXdsaW5lID0gZmFsc2U7XG4gICAgbGV0IG5lZWRzQ2xlYXIgPSBmYWxzZTtcblxuICAgIGZ1bmN0aW9uIGludGVyY2VwdChzdHJlYW06IE5vZGVKUy5Xcml0ZVN0cmVhbSkge1xuICAgICAgICBjb25zdCBhY3R1YWxXcml0ZSA9IHN0cmVhbS53cml0ZTtcbiAgICAgICAgc3RyZWFtLndyaXRlID0gKHBheWxvYWQ6IFVpbnQ4QXJyYXkgfCBzdHJpbmcsIC4uLnBhcmFtczogYW55W10pID0+IHtcbiAgICAgICAgICAgIGlmIChsYXN0U3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgaWYgKHBheWxvYWRbMF0gIT09IFwiXFxuXCIgJiYgcGF5bG9hZFswXSAhPT0gMHhhICYmIG5lZWROZXdsaW5lKSB7XG4gICAgICAgICAgICAgICAgICAgIGFjdHVhbFdyaXRlLmNhbGwoc3RyZWFtLCBcIlxcblwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGFzdFN0YXR1cyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFwYXlsb2FkLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBSZXF1aXJlIGEgbmV3bGluZSBmb3Igc3RhdHVzIHVwZGF0ZXMgYW55IHRpbWUgdGhlIGN1cnNvciBkb2VzIG5vdCBlbmQgYXQgdGhlIGJlZ2lubmluZyBvZiBhIGxpbmVcbiAgICAgICAgICAgIHN3aXRjaCAocGF5bG9hZFtwYXlsb2FkLmxlbmd0aCAtIDFdKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBcIlxcblwiOlxuICAgICAgICAgICAgICAgIGNhc2UgMHhhOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJcXHJcIjpcbiAgICAgICAgICAgICAgICBjYXNlIDB4ZDpcbiAgICAgICAgICAgICAgICAgICAgbmVlZE5ld2xpbmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBuZWVkTmV3bGluZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAobmVlZHNDbGVhcikge1xuICAgICAgICAgICAgICAgIGFjdHVhbFdyaXRlLmNhbGwoc3RyZWFtLCBzY3JlZW4uZXJhc2UudG9Fb2wpO1xuICAgICAgICAgICAgICAgIG5lZWRzQ2xlYXIgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGFjdHVhbFdyaXRlLmNhbGwoc3RyZWFtLCBwYXlsb2FkLCAuLi5wYXJhbXMpO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIGludGVyY2VwdChzdGRvdXQpO1xuICAgIGludGVyY2VwdChzdGRlcnIpO1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIHdyaXRlU3RhdHVzKHRleHQ6IHN0cmluZywgd2lsbE92ZXJ3cml0ZSA9IGZhbHNlKSB7XG4gICAgICAgIHRleHQgKz0gd2lsbE92ZXJ3cml0ZSA/IGAke3NjcmVlbi5lcmFzZS50b0VvbH1cXHJgIDogYCR7c2NyZWVuLmVyYXNlLnRvRW9sfVxcbmA7XG4gICAgICAgIGlmICh0ZXh0ID09PSBsYXN0U3RhdHVzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzdGQub3V0LnN0YXRlKHsgYnVmZmVyOiB0cnVlIH0sICgpID0+IHtcbiAgICAgICAgICAgIGlmIChsYXN0U3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgbGFzdFN0YXR1cyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobmVlZE5ld2xpbmUgJiYgIXRleHQuc3RhcnRzV2l0aChcIlxcblwiKSkge1xuICAgICAgICAgICAgICAgIHN0ZC5vdXQoXCJcXG5cIik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN0ZC5vdXQud3JpdGVUcnVuY2F0ZWQodGV4dCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGxhc3RTdGF0dXMgPSB0ZXh0O1xuICAgICAgICBuZWVkc0NsZWFyID0gd2lsbE92ZXJ3cml0ZTtcbiAgICB9O1xufSkoKTtcblxuZXhwb3J0IGNsYXNzIFByb2dyZXNzIHtcbiAgICBzdGF0dXMgPSBQcm9ncmVzcy5TdGF0dXMuU3RhcnR1cDtcbiAgICAjb25nb2luZz86IHsgdGV4dDogc3RyaW5nOyBleHRyYT86IHN0cmluZyB9O1xuICAgICNzdGFydD86IG51bWJlcjtcbiAgICAjc3Bpbm5lciA9IFwiXHUyOUQ3XCI7XG4gICAgI3JlZnJlc2hJbnRlcnZhbD86IFJldHVyblR5cGU8dHlwZW9mIHNldEludGVydmFsPjtcbiAgICAjc3Bpbm5lclBvc2l0aW9uID0gMDtcbiAgICAjc3Bpbm5lcldpbmRvdz86IG51bWJlcjtcbiAgICAjc3VidGFza3MgPSBBcnJheTxzdHJpbmc+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgICBlbXBoYXNpemUodGV4dDogdW5rbm93bikge1xuICAgICAgICByZXR1cm4gYW5zaS5ib2xkKGAke3RleHR9YCk7XG4gICAgfVxuXG4gICAgZGVlbXBoYXNpemUodGV4dDogdW5rbm93bikge1xuICAgICAgICByZXR1cm4gYW5zaS5kaW0oYCR7dGV4dH1gKTtcbiAgICB9XG5cbiAgICBza2lwKHdoeTogc3RyaW5nLCBwa2c6IFBhY2thZ2UpIHtcbiAgICAgICAgc3RkLm91dC53cml0ZShhbnNpLmRpbShgU2tpcCAke3BhY2thZ2VJZGVudGl0eShwa2cpfTogJHt3aHl9XFxuXFxuYCkpO1xuICAgIH1cblxuICAgIHN0YXJ0dXAod2hhdDogc3RyaW5nLCBwa2dPck92ZXJ3cml0ZT86IFBhY2thZ2UgfCBib29sZWFuKSB7XG4gICAgICAgIGlmIChwcm9jZXNzLnN0ZG91dC5pc1RUWSkge1xuICAgICAgICAgICAgdGhpcy4jdXBkYXRlU3Bpbm5lcigpO1xuICAgICAgICAgICAgdGhpcy4jcmVmcmVzaEludGVydmFsID0gc2V0SW50ZXJ2YWwodGhpcy5yZWZyZXNoLmJpbmQodGhpcyksIFNQSU5ORVJfSU5URVJWQUwpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zdGF0dXMgPSBQcm9ncmVzcy5TdGF0dXMuU3RhcnR1cDtcbiAgICAgICAgaWYgKHBrZ09yT3ZlcndyaXRlID09PSB1bmRlZmluZWQgfHwgdHlwZW9mIHBrZ09yT3ZlcndyaXRlID09PSBcImJvb2xlYW5cIikge1xuICAgICAgICAgICAgd3JpdGVTdGF0dXMod2hhdCwgcGtnT3JPdmVyd3JpdGUgPz8gdHJ1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB3cml0ZVN0YXR1cyhgJHt3aGF0fSAke3BhY2thZ2VJZGVudGl0eShwa2dPck92ZXJ3cml0ZSl9YCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1cGRhdGUodGV4dDogc3RyaW5nLCBleHRyYT86IHN0cmluZykge1xuICAgICAgICB0aGlzLnN0YXR1cyA9IFByb2dyZXNzLlN0YXR1cy5PbmdvaW5nO1xuICAgICAgICBpZiAodGhpcy4jc3RhcnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy4jc3RhcnQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICAgICAgfVxuICAgICAgICBleHRyYSA9IGV4dHJhID09PSB1bmRlZmluZWQgPyBcIlwiIDogYCAke2V4dHJhfWA7XG4gICAgICAgIHRoaXMuI29uZ29pbmcgPSB7IHRleHQsIGV4dHJhIH07XG4gICAgICAgIHRoaXMuI3dyaXRlT25nb2luZygpO1xuICAgIH1cblxuICAgICN3cml0ZU9uZ29pbmcoKSB7XG4gICAgICAgIGlmICghdGhpcy4jb25nb2luZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZXh0cmEgPSB0aGlzLiNvbmdvaW5nLmV4dHJhID8gYCAke3RoaXMuI29uZ29pbmcuZXh0cmF9YCA6IFwiXCI7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgJHt0aGlzLiNvbmdvaW5nLnRleHR9ICR7dGhpcy4jZHVyYXRpb259JHtleHRyYX1gO1xuXG4gICAgICAgIGNvbnN0IHN1YnRhc2sgPSB0aGlzLiNzdWJ0YXNrcy5sZW5ndGggPyBhbnNpLmRpbShgICgke3RoaXMuI3N1YnRhc2tzW3RoaXMuI3N1YnRhc2tzLmxlbmd0aCAtIDFdfSlgKSA6IFwiXCI7XG5cbiAgICAgICAgd3JpdGVTdGF0dXMoYCAgJHthbnNpLnllbGxvdyh0aGlzLiNzcGlubmVyKX0gJHttZXNzYWdlfSR7c3VidGFza31gLCB0cnVlKTtcbiAgICB9XG5cbiAgICBzdWNjZXNzKHRleHQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLnN0YXR1cyA9IFByb2dyZXNzLlN0YXR1cy5TdWNjZXNzO1xuICAgICAgICB3cml0ZVN0YXR1cyhgICAke1NUQVRVU19JQ09OX1NVQ0NFU1N9ICR7dGV4dH0gJHt0aGlzLiNkdXJhdGlvbn1gKTtcbiAgICAgICAgdGhpcy4jc3RhcnQgPSB0aGlzLiNvbmdvaW5nID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGZhaWx1cmUodGV4dDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc3RhdHVzID0gUHJvZ3Jlc3MuU3RhdHVzLkZhaWx1cmU7XG4gICAgICAgIHdyaXRlU3RhdHVzKGAgICR7U1RBVFVTX0lDT05fRkFJTFVSRX0gJHt0ZXh0fSAke3RoaXMuI2R1cmF0aW9ufWApO1xuICAgICAgICB0aGlzLiNzdGFydCA9IHRoaXMuI29uZ29pbmcgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaW5mbyhsYWJlbDogc3RyaW5nLCB2YWx1ZT86IGFueSkge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIGxhYmVsID0gYCR7YW5zaS5kaW0obGFiZWwpfSAke3ZhbHVlfWA7XG4gICAgICAgIH1cbiAgICAgICAgd3JpdGVTdGF0dXMoYCAgJHthbnNpLmRpbShcIlx1MjAyM1wiKX0gJHtsYWJlbH1gKTtcbiAgICB9XG5cbiAgICB3YXJuKHRleHQ6IHN0cmluZykge1xuICAgICAgICBzdGQub3V0LndyaXRlKGAgICAgJHthbnNpLnllbGxvdyhcIldhcm5pbmc6XCIpfSAke3RleHR9XFxuYCk7XG4gICAgfVxuXG4gICAgY2xvc2UoKSB7XG4gICAgICAgIGlmICh0aGlzLiNyZWZyZXNoSW50ZXJ2YWwpIHtcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy4jcmVmcmVzaEludGVydmFsKTtcbiAgICAgICAgICAgIHRoaXMuI3JlZnJlc2hJbnRlcnZhbCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICB3cml0ZVN0YXR1cyhcIlwiKTtcbiAgICB9XG5cbiAgICBbU3ltYm9sLmRpc3Bvc2VdKCkge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgcmVmcmVzaCgpIHtcbiAgICAgICAgaWYgKHRoaXMuI3VwZGF0ZVNwaW5uZXIoKSkge1xuICAgICAgICAgICAgdGhpcy4jd3JpdGVPbmdvaW5nKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhc3luYyBzdWJ0YXNrKHRleHQ6IHN0cmluZywgZm46ICgpID0+IFByb21pc2U8dm9pZD4pIHtcbiAgICAgICAgdGhpcy4jc3VidGFza3MucHVzaCh0ZXh0KTtcbiAgICAgICAgdGhpcy4jd3JpdGVPbmdvaW5nKCk7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IGZuKCk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICB0aGlzLiNzdWJ0YXNrcy5wb3AoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICN1cGRhdGVTcGlubmVyKCkge1xuICAgICAgICBpZiAoIXN0ZG91dC5pc1RUWSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgd2luZG93ID0gTWF0aC5mbG9vcihuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIFNQSU5ORVJfSU5URVJWQUwpO1xuICAgICAgICBpZiAodGhpcy4jc3Bpbm5lcldpbmRvdyA9PT0gd2luZG93KSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy4jc3Bpbm5lcldpbmRvdyA9IHdpbmRvdztcblxuICAgICAgICB0aGlzLiNzcGlubmVyUG9zaXRpb24gPSAodGhpcy4jc3Bpbm5lclBvc2l0aW9uICsgMSkgJSBTUElOTkVSLmxlbmd0aDtcbiAgICAgICAgdGhpcy4jc3Bpbm5lciA9IFNQSU5ORVJbdGhpcy4jc3Bpbm5lclBvc2l0aW9uXTtcblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBhc3luYyBydW48VD4od2hhdDogc3RyaW5nLCBmbjogKCkgPT4gVCB8IFByb21pc2U8VD4pIHtcbiAgICAgICAgdGhpcy51cGRhdGUod2hhdCk7XG4gICAgICAgIGxldCByZXN1bHQ6IFQ7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBmbigpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aGlzLmZhaWx1cmUod2hhdCk7XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3VjY2Vzcyh3aGF0KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBnZXQgI2R1cmF0aW9uKCkge1xuICAgICAgICBjb25zdCBkdXJhdGlvbiA9IHRoaXMuI3N0YXJ0ID8gbmV3IERhdGUoKS5nZXRUaW1lKCkgLSB0aGlzLiNzdGFydCA6IDA7XG4gICAgICAgIHJldHVybiBQcm9ncmVzcy5mb3JtYXREdXJhdGlvbihkdXJhdGlvbik7XG4gICAgfVxufVxuXG5leHBvcnQgbmFtZXNwYWNlIFByb2dyZXNzIHtcbiAgICBleHBvcnQgZW51bSBTdGF0dXMge1xuICAgICAgICBTdGFydHVwID0gXCJzdGFydHVwXCIsXG4gICAgICAgIE9uZ29pbmcgPSBcIm9uZ29pbmdcIixcbiAgICAgICAgU3VjY2VzcyA9IFwic3VjY2Vzc1wiLFxuICAgICAgICBGYWlsdXJlID0gXCJmYWlsdXJlXCIsXG4gICAgfVxuXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdER1cmF0aW9uKGR1cmF0aW9uOiBudW1iZXIpIHtcbiAgICAgICAgZHVyYXRpb24gLz0gMTAwMDtcbiAgICAgICAgbGV0IHRpbWU7XG4gICAgICAgIGlmIChkdXJhdGlvbiA8IDEwKSB7XG4gICAgICAgICAgICB0aW1lID0gZHVyYXRpb24udG9QcmVjaXNpb24oMik7XG4gICAgICAgICAgICBpZiAodGltZS5zdGFydHNXaXRoKFwiMC5cIikpIHtcbiAgICAgICAgICAgICAgICB0aW1lID0gdGltZS5zbGljZSgxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdoaWxlICh0aW1lLmVuZHNXaXRoKFwiMFwiKSkge1xuICAgICAgICAgICAgICAgIHRpbWUgPSB0aW1lLnNsaWNlKDAsIHRpbWUubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGltZS5lbmRzV2l0aChcIi5cIikpIHtcbiAgICAgICAgICAgICAgICBpZiAodGltZS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGltZSA9IFwiMFwiO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRpbWUgPSB0aW1lLnNsaWNlKDAsIHRpbWUubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGltZSArPSBcInNcIjtcbiAgICAgICAgfSBlbHNlIGlmIChkdXJhdGlvbiA8IDYwKSB7XG4gICAgICAgICAgICB0aW1lID0gYCR7TWF0aC50cnVuYyhkdXJhdGlvbil9c2A7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aW1lID0gYCR7TWF0aC50cnVuYyhkdXJhdGlvbiAvIDYwKX1tICR7TWF0aC50cnVuYyhkdXJhdGlvbikgJSA2MH1zYDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYCR7YW5zaS5kaW0ueWVsbG93fSgke3RpbWV9KSR7YW5zaS5ub3QuZGltLm5vdC55ZWxsb3d9YDtcbiAgICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUEsU0FBUyxRQUFRLGNBQWM7QUFDL0IsU0FBUyxjQUFjO0FBQ3ZCLFNBQVMsV0FBVztBQUNwQixTQUFTLFlBQVk7QUFHZCxNQUFNLHNCQUFzQixLQUFLLE1BQU0sUUFBRztBQUMxQyxNQUFNLHNCQUFzQixLQUFLLE9BQU8sSUFBSSxRQUFHO0FBQy9DLE1BQU0sc0JBQXNCLEtBQUssSUFBSSxNQUFNLFFBQUc7QUFFckQsTUFBTSxVQUFVO0FBQ2hCLE1BQU0sbUJBQW1CO0FBRXpCLFNBQVMsZ0JBQWdCLEtBQWM7QUFDbkMsTUFBSSxXQUFXLEtBQUssS0FBSyxJQUFJLElBQUksRUFBRSxTQUFTO0FBQzVDLE1BQUksSUFBSSxLQUFLLFNBQVM7QUFDbEIsZUFBVyxHQUFHLFFBQVEsSUFBSSxJQUFJLEtBQUssT0FBTztBQUFBLEVBQzlDO0FBQ0EsU0FBTztBQUNYO0FBS0EsTUFBTSxlQUFlLE1BQU07QUFDdkIsTUFBSTtBQUNKLE1BQUksY0FBYztBQUNsQixNQUFJLGFB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
241
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3V0aWwvcHJvZ3Jlc3MudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDIyLTIwMjUgTWF0dGVyLmpzIEF1dGhvcnNcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG4gKi9cblxuaW1wb3J0IHsgc3RkZXJyLCBzdGRvdXQgfSBmcm9tIFwibm9kZTpwcm9jZXNzXCI7XG5pbXBvcnQgeyBzY3JlZW4gfSBmcm9tIFwiLi4vYW5zaS10ZXh0L3NjcmVlbi5qc1wiO1xuaW1wb3J0IHsgc3RkIH0gZnJvbSBcIi4uL2Fuc2ktdGV4dC9zdGQuanNcIjtcbmltcG9ydCB7IGFuc2kgfSBmcm9tIFwiLi4vYW5zaS10ZXh0L3RleHQtYnVpbGRlci5qc1wiO1xuaW1wb3J0IHsgUGFja2FnZSB9IGZyb20gXCIuL3BhY2thZ2UuanNcIjtcblxuZXhwb3J0IGNvbnN0IFNUQVRVU19JQ09OX1NVQ0NFU1MgPSBhbnNpLmdyZWVuKFwiXHUyNzEzXCIpO1xuZXhwb3J0IGNvbnN0IFNUQVRVU19JQ09OX0ZBSUxVUkUgPSBhbnNpLmJyaWdodC5yZWQoXCJcdTI3MTdcIik7XG5leHBvcnQgY29uc3QgU1RBVFVTX0lDT05fU0tJUFBFRCA9IGFuc2kuZGltLndoaXRlKFwiXHUyMDQzXCIpO1xuXG5jb25zdCBTUElOTkVSID0gXCJcdTI1RDBcdTI1RDNcdTI1RDFcdTI1RDJcIjsgLy9cIlx1Mjg1Q1x1MjgxNFx1MjgyMlx1MjhBM1wiOyAvL1tcIlx1MjZBQlx1RkUwRVwiLCBcIlx1MjZBQVx1RkUwRVwiXTsgXCJcdTI4NDhcdTI4MTRcdTI4MjJcdTI4ODFcIjtcbmNvbnN0IFNQSU5ORVJfSU5URVJWQUwgPSAxMDA7XG5cbmZ1bmN0aW9uIHBhY2thZ2VJZGVudGl0eShwa2c6IFBhY2thZ2UpIHtcbiAgICBsZXQgaWRlbnRpdHkgPSBhbnNpLmJvbGQocGtnLm5hbWUpLnRvU3RyaW5nKCk7XG4gICAgaWYgKHBrZy5qc29uLnZlcnNpb24pIHtcbiAgICAgICAgaWRlbnRpdHkgPSBgJHtpZGVudGl0eX1AJHtwa2cuanNvbi52ZXJzaW9ufWA7XG4gICAgfVxuICAgIHJldHVybiBpZGVudGl0eTtcbn1cblxuLyoqXG4gKiBJbnRlcmNlcHQgd3JpdGVzIHRvIHN0ZGVyciBhbmQgc3Rkb3V0IHNvIHdlIGNhbiBlbnN1cmUgb3VyIHVwZGF0ZXMgYXBwZWFyIG9uIGRpZmZlcmVudCBsaW5lcyBmcm9tIG90aGVyIG91dHB1dC5cbiAqL1xuY29uc3Qgd3JpdGVTdGF0dXMgPSAoKCkgPT4ge1xuICAgIGxldCBsYXN0U3RhdHVzOiB1bmRlZmluZWQgfCBzdHJpbmc7XG4gICAgbGV0IG5lZWROZXdsaW5lID0gZmFsc2U7XG4gICAgbGV0IG5lZWRzQ2xlYXIgPSBmYWxzZTtcblxuICAgIGZ1bmN0aW9uIGludGVyY2VwdChzdHJlYW06IE5vZGVKUy5Xcml0ZVN0cmVhbSkge1xuICAgICAgICBjb25zdCBhY3R1YWxXcml0ZSA9IHN0cmVhbS53cml0ZTtcbiAgICAgICAgc3RyZWFtLndyaXRlID0gKHBheWxvYWQ6IFVpbnQ4QXJyYXkgfCBzdHJpbmcsIC4uLnBhcmFtczogYW55W10pID0+IHtcbiAgICAgICAgICAgIGlmIChsYXN0U3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgaWYgKHBheWxvYWRbMF0gIT09IFwiXFxuXCIgJiYgcGF5bG9hZFswXSAhPT0gMHhhICYmIG5lZWROZXdsaW5lKSB7XG4gICAgICAgICAgICAgICAgICAgIGFjdHVhbFdyaXRlLmNhbGwoc3RyZWFtLCBcIlxcblwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGFzdFN0YXR1cyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFwYXlsb2FkLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBSZXF1aXJlIGEgbmV3bGluZSBmb3Igc3RhdHVzIHVwZGF0ZXMgYW55IHRpbWUgdGhlIGN1cnNvciBkb2VzIG5vdCBlbmQgYXQgdGhlIGJlZ2lubmluZyBvZiBhIGxpbmVcbiAgICAgICAgICAgIHN3aXRjaCAocGF5bG9hZFtwYXlsb2FkLmxlbmd0aCAtIDFdKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBcIlxcblwiOlxuICAgICAgICAgICAgICAgIGNhc2UgMHhhOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJcXHJcIjpcbiAgICAgICAgICAgICAgICBjYXNlIDB4ZDpcbiAgICAgICAgICAgICAgICAgICAgbmVlZE5ld2xpbmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBuZWVkTmV3bGluZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAobmVlZHNDbGVhcikge1xuICAgICAgICAgICAgICAgIGFjdHVhbFdyaXRlLmNhbGwoc3RyZWFtLCBzY3JlZW4uZXJhc2UudG9Fb2wpO1xuICAgICAgICAgICAgICAgIG5lZWRzQ2xlYXIgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGFjdHVhbFdyaXRlLmNhbGwoc3RyZWFtLCBwYXlsb2FkLCAuLi5wYXJhbXMpO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIGludGVyY2VwdChzdGRvdXQpO1xuICAgIGludGVyY2VwdChzdGRlcnIpO1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIHdyaXRlU3RhdHVzKHRleHQ6IHN0cmluZywgd2lsbE92ZXJ3cml0ZSA9IGZhbHNlKSB7XG4gICAgICAgIHRleHQgKz0gd2lsbE92ZXJ3cml0ZSA/IGAke3NjcmVlbi5lcmFzZS50b0VvbH1cXHJgIDogYCR7c2NyZWVuLmVyYXNlLnRvRW9sfVxcbmA7XG4gICAgICAgIGlmICh0ZXh0ID09PSBsYXN0U3RhdHVzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzdGQub3V0LnN0YXRlKHsgYnVmZmVyOiB0cnVlIH0sICgpID0+IHtcbiAgICAgICAgICAgIGlmIChsYXN0U3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgbGFzdFN0YXR1cyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobmVlZE5ld2xpbmUgJiYgIXRleHQuc3RhcnRzV2l0aChcIlxcblwiKSkge1xuICAgICAgICAgICAgICAgIHN0ZC5vdXQoXCJcXG5cIik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN0ZC5vdXQud3JpdGVUcnVuY2F0ZWQodGV4dCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGxhc3RTdGF0dXMgPSB0ZXh0O1xuICAgICAgICBuZWVkc0NsZWFyID0gd2lsbE92ZXJ3cml0ZTtcbiAgICB9O1xufSkoKTtcblxuZXhwb3J0IGNsYXNzIFByb2dyZXNzIHtcbiAgICBzdGF0dXMgPSBQcm9ncmVzcy5TdGF0dXMuU3RhcnR1cDtcbiAgICAjb25nb2luZz86IHsgdGV4dDogc3RyaW5nOyBleHRyYT86IHN0cmluZyB9O1xuICAgICNzdGFydD86IG51bWJlcjtcbiAgICAjc3Bpbm5lciA9IFwiXHUyOUQ3XCI7XG4gICAgI3JlZnJlc2hJbnRlcnZhbD86IFJldHVyblR5cGU8dHlwZW9mIHNldEludGVydmFsPjtcbiAgICAjc3Bpbm5lclBvc2l0aW9uID0gMDtcbiAgICAjc3Bpbm5lcldpbmRvdz86IG51bWJlcjtcbiAgICAjc3VidGFza3MgPSBBcnJheTxzdHJpbmc+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgICBlbXBoYXNpemUodGV4dDogdW5rbm93bikge1xuICAgICAgICByZXR1cm4gYW5zaS5ib2xkKGAke3RleHR9YCk7XG4gICAgfVxuXG4gICAgZGVlbXBoYXNpemUodGV4dDogdW5rbm93bikge1xuICAgICAgICByZXR1cm4gYW5zaS5kaW0oYCR7dGV4dH1gKTtcbiAgICB9XG5cbiAgICBza2lwKHdoeTogc3RyaW5nLCBwa2c6IFBhY2thZ2UpIHtcbiAgICAgICAgc3RkLm91dC53cml0ZShhbnNpLmRpbShgU2tpcCAke3BhY2thZ2VJZGVudGl0eShwa2cpfTogJHt3aHl9XFxuXFxuYCkpO1xuICAgIH1cblxuICAgIHN0YXJ0dXAod2hhdDogc3RyaW5nLCBwa2dPck92ZXJ3cml0ZT86IFBhY2thZ2UgfCBib29sZWFuKSB7XG4gICAgICAgIGlmIChwcm9jZXNzLnN0ZG91dC5pc1RUWSkge1xuICAgICAgICAgICAgdGhpcy4jdXBkYXRlU3Bpbm5lcigpO1xuICAgICAgICAgICAgdGhpcy4jcmVmcmVzaEludGVydmFsID0gc2V0SW50ZXJ2YWwodGhpcy5yZWZyZXNoLmJpbmQodGhpcyksIFNQSU5ORVJfSU5URVJWQUwpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zdGF0dXMgPSBQcm9ncmVzcy5TdGF0dXMuU3RhcnR1cDtcbiAgICAgICAgaWYgKHBrZ09yT3ZlcndyaXRlID09PSB1bmRlZmluZWQgfHwgdHlwZW9mIHBrZ09yT3ZlcndyaXRlID09PSBcImJvb2xlYW5cIikge1xuICAgICAgICAgICAgd3JpdGVTdGF0dXMod2hhdCwgcGtnT3JPdmVyd3JpdGUgPz8gdHJ1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB3cml0ZVN0YXR1cyhgJHt3aGF0fSAke3BhY2thZ2VJZGVudGl0eShwa2dPck92ZXJ3cml0ZSl9YCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1cGRhdGUodGV4dDogc3RyaW5nLCBleHRyYT86IHN0cmluZykge1xuICAgICAgICB0aGlzLnN0YXR1cyA9IFByb2dyZXNzLlN0YXR1cy5PbmdvaW5nO1xuICAgICAgICBpZiAodGhpcy4jc3RhcnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy4jc3RhcnQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICAgICAgfVxuICAgICAgICBleHRyYSA9IGV4dHJhID09PSB1bmRlZmluZWQgPyBcIlwiIDogYCAke2V4dHJhfWA7XG4gICAgICAgIHRoaXMuI29uZ29pbmcgPSB7IHRleHQsIGV4dHJhIH07XG4gICAgICAgIHRoaXMuI3dyaXRlT25nb2luZygpO1xuICAgIH1cblxuICAgICN3cml0ZU9uZ29pbmcoKSB7XG4gICAgICAgIGlmICghdGhpcy4jb25nb2luZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZXh0cmEgPSB0aGlzLiNvbmdvaW5nLmV4dHJhID8gYCAke3RoaXMuI29uZ29pbmcuZXh0cmF9YCA6IFwiXCI7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgJHt0aGlzLiNvbmdvaW5nLnRleHR9ICR7dGhpcy4jZHVyYXRpb259JHtleHRyYX1gO1xuXG4gICAgICAgIGNvbnN0IHN1YnRhc2sgPSB0aGlzLiNzdWJ0YXNrcy5sZW5ndGggPyBhbnNpLmRpbShgICgke3RoaXMuI3N1YnRhc2tzW3RoaXMuI3N1YnRhc2tzLmxlbmd0aCAtIDFdfSlgKSA6IFwiXCI7XG5cbiAgICAgICAgd3JpdGVTdGF0dXMoYCAgJHthbnNpLnllbGxvdyh0aGlzLiNzcGlubmVyKX0gJHttZXNzYWdlfSR7c3VidGFza31gLCB0cnVlKTtcbiAgICB9XG5cbiAgICBzdWNjZXNzKHRleHQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLnN0YXR1cyA9IFByb2dyZXNzLlN0YXR1cy5TdWNjZXNzO1xuICAgICAgICB3cml0ZVN0YXR1cyhgICAke1NUQVRVU19JQ09OX1NVQ0NFU1N9ICR7dGV4dH0gJHt0aGlzLiNkdXJhdGlvbn1gKTtcbiAgICAgICAgdGhpcy4jc3RhcnQgPSB0aGlzLiNvbmdvaW5nID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGZhaWx1cmUodGV4dDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc3RhdHVzID0gUHJvZ3Jlc3MuU3RhdHVzLkZhaWx1cmU7XG4gICAgICAgIHdyaXRlU3RhdHVzKGAgICR7U1RBVFVTX0lDT05fRkFJTFVSRX0gJHt0ZXh0fSAke3RoaXMuI2R1cmF0aW9ufWApO1xuICAgICAgICB0aGlzLiNzdGFydCA9IHRoaXMuI29uZ29pbmcgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaW5mbyhsYWJlbDogc3RyaW5nLCB2YWx1ZT86IGFueSkge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIGxhYmVsID0gYCR7YW5zaS5kaW0obGFiZWwpfSAke3ZhbHVlfWA7XG4gICAgICAgIH1cbiAgICAgICAgd3JpdGVTdGF0dXMoYCAgJHthbnNpLmRpbShcIlx1MjAyM1wiKX0gJHtsYWJlbH1gKTtcbiAgICB9XG5cbiAgICB3YXJuKHRleHQ6IHN0cmluZykge1xuICAgICAgICBzdGQub3V0LndyaXRlKGAgICAgJHthbnNpLnllbGxvdyhcIldhcm5pbmc6XCIpfSAke3RleHR9XFxuYCk7XG4gICAgfVxuXG4gICAgY2xvc2UoKSB7XG4gICAgICAgIGlmICh0aGlzLiNyZWZyZXNoSW50ZXJ2YWwpIHtcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy4jcmVmcmVzaEludGVydmFsKTtcbiAgICAgICAgICAgIHRoaXMuI3JlZnJlc2hJbnRlcnZhbCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICB3cml0ZVN0YXR1cyhcIlwiKTtcbiAgICB9XG5cbiAgICBbU3ltYm9sLmRpc3Bvc2VdKCkge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgcmVmcmVzaCgpIHtcbiAgICAgICAgaWYgKHRoaXMuI3VwZGF0ZVNwaW5uZXIoKSkge1xuICAgICAgICAgICAgdGhpcy4jd3JpdGVPbmdvaW5nKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhc3luYyBzdWJ0YXNrKHRleHQ6IHN0cmluZywgZm46ICgpID0+IFByb21pc2U8dm9pZD4pIHtcbiAgICAgICAgdGhpcy4jc3VidGFza3MucHVzaCh0ZXh0KTtcbiAgICAgICAgdGhpcy4jd3JpdGVPbmdvaW5nKCk7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IGZuKCk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICB0aGlzLiNzdWJ0YXNrcy5wb3AoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICN1cGRhdGVTcGlubmVyKCkge1xuICAgICAgICBpZiAoIXN0ZG91dC5pc1RUWSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgd2luZG93ID0gTWF0aC5mbG9vcihuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIFNQSU5ORVJfSU5URVJWQUwpO1xuICAgICAgICBpZiAodGhpcy4jc3Bpbm5lcldpbmRvdyA9PT0gd2luZG93KSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy4jc3Bpbm5lcldpbmRvdyA9IHdpbmRvdztcblxuICAgICAgICB0aGlzLiNzcGlubmVyUG9zaXRpb24gPSAodGhpcy4jc3Bpbm5lclBvc2l0aW9uICsgMSkgJSBTUElOTkVSLmxlbmd0aDtcbiAgICAgICAgdGhpcy4jc3Bpbm5lciA9IFNQSU5ORVJbdGhpcy4jc3Bpbm5lclBvc2l0aW9uXTtcblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBhc3luYyBydW48VD4od2hhdDogc3RyaW5nLCBmbjogKCkgPT4gVCB8IFByb21pc2U8VD4pIHtcbiAgICAgICAgdGhpcy51cGRhdGUod2hhdCk7XG4gICAgICAgIGxldCByZXN1bHQ6IFQ7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBmbigpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aGlzLmZhaWx1cmUod2hhdCk7XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3VjY2Vzcyh3aGF0KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBnZXQgI2R1cmF0aW9uKCkge1xuICAgICAgICBjb25zdCBkdXJhdGlvbiA9IHRoaXMuI3N0YXJ0ID8gbmV3IERhdGUoKS5nZXRUaW1lKCkgLSB0aGlzLiNzdGFydCA6IDA7XG4gICAgICAgIHJldHVybiBQcm9ncmVzcy5mb3JtYXREdXJhdGlvbihkdXJhdGlvbik7XG4gICAgfVxufVxuXG5leHBvcnQgbmFtZXNwYWNlIFByb2dyZXNzIHtcbiAgICBleHBvcnQgZW51bSBTdGF0dXMge1xuICAgICAgICBTdGFydHVwID0gXCJzdGFydHVwXCIsXG4gICAgICAgIE9uZ29pbmcgPSBcIm9uZ29pbmdcIixcbiAgICAgICAgU3VjY2VzcyA9IFwic3VjY2Vzc1wiLFxuICAgICAgICBGYWlsdXJlID0gXCJmYWlsdXJlXCIsXG4gICAgfVxuXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdER1cmF0aW9uKGR1cmF0aW9uOiBudW1iZXIpIHtcbiAgICAgICAgZHVyYXRpb24gLz0gMTAwMDtcbiAgICAgICAgbGV0IHRpbWU7XG4gICAgICAgIGlmIChkdXJhdGlvbiA8IDEwKSB7XG4gICAgICAgICAgICB0aW1lID0gZHVyYXRpb24udG9QcmVjaXNpb24oMik7XG4gICAgICAgICAgICBpZiAodGltZS5zdGFydHNXaXRoKFwiMC5cIikpIHtcbiAgICAgICAgICAgICAgICB0aW1lID0gdGltZS5zbGljZSgxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aW1lLmVuZHNXaXRoKFwiLlwiKSkge1xuICAgICAgICAgICAgICAgIGlmICh0aW1lLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICB0aW1lID0gXCIwXCI7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGltZSA9IHRpbWUuc2xpY2UoMCwgdGltZS5sZW5ndGggLSAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aW1lICs9IFwic1wiO1xuICAgICAgICB9IGVsc2UgaWYgKGR1cmF0aW9uIDwgNjApIHtcbiAgICAgICAgICAgIHRpbWUgPSBgJHtNYXRoLnRydW5jKGR1cmF0aW9uKX1zYDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRpbWUgPSBgJHtNYXRoLnRydW5jKGR1cmF0aW9uIC8gNjApfW0gJHtNYXRoLnRydW5jKGR1cmF0aW9uKSAlIDYwfXNgO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBgJHthbnNpLmRpbS55ZWxsb3d9KCR7dGltZX0pJHthbnNpLm5vdC5kaW0ubm90LnllbGxvd31gO1xuICAgIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQSxTQUFTLFFBQVEsY0FBYztBQUMvQixTQUFTLGNBQWM7QUFDdkIsU0FBUyxXQUFXO0FBQ3BCLFNBQVMsWUFBWTtBQUdkLE1BQU0sc0JBQXNCLEtBQUssTUFBTSxRQUFHO0FBQzFDLE1BQU0sc0JBQXNCLEtBQUssT0FBTyxJQUFJLFFBQUc7QUFDL0MsTUFBTSxzQkFBc0IsS0FBSyxJQUFJLE1BQU0sUUFBRztBQUVyRCxNQUFNLFVBQVU7QUFDaEIsTUFBTSxtQkFBbUI7QUFFekIsU0FBUyxnQkFBZ0IsS0FBYztBQUNuQyxNQUFJLFdBQVcsS0FBSyxLQUFLLElBQUksSUFBSSxFQUFFLFNBQVM7QUFDNUMsTUFBSSxJQUFJLEtBQUssU0FBUztBQUNsQixlQUFXLEdBQUcsUUFBUSxJQUFJLElBQUksS0FBSyxPQUFPO0FBQUEsRUFDOUM7QUFDQSxTQUFPO0FBQ1g7QUFLQSxNQUFNLGVBQWUsTUFBTTtBQUN2QixNQUFJO0FBQ0osTUFBSSxjQUFjO0FBQ2xCLE1BQUksYUFBYTtBQUVqQixXQUFTLFVBQVUsUUFBNEI7QUFDM0MsVUFBTSxjQUFjLE9BQU87QUFDM0IsV0FBTyxRQUFRLENBQUMsWUFBaUMsV0FBa0I7QUFDL0QsVUFBSSxZQUFZO0FBQ1osWUFBSSxRQUFRLENBQUMs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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/util/progress.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["writeStatus", "Progress", "Status"]
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matter/tools",
3
- "version": "0.15.2-alpha.0-20250703-2e16aba2b",
3
+ "version": "0.15.2-alpha.0-20250708-b8eb61a5e",
4
4
  "description": "Matter.js tooling",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -74,7 +74,7 @@
74
74
  "devDependencies": {
75
75
  "@types/madge": "^5.0.3",
76
76
  "@types/minimatch": "^5.1.2",
77
- "@types/node": "^24.0.7",
77
+ "@types/node": "^24.0.10",
78
78
  "detective-typescript": "^14.0.0"
79
79
  },
80
80
  "publishConfig": {
@@ -4,6 +4,8 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
+ const MAX_CYCLES = 1000;
8
+
7
9
  import { readFile } from "node:fs/promises";
8
10
  import { Package } from "../util/package.js";
9
11
  import { Progress } from "../util/progress.js";
@@ -35,6 +37,9 @@ async function identifyCycles(pkg: Package, progress: Progress) {
35
37
  const cycles = [] as string[][];
36
38
  for (const filename in deps) {
37
39
  visit(filename, []);
40
+ if (cycles.length === MAX_CYCLES) {
41
+ break;
42
+ }
38
43
  }
39
44
 
40
45
  function visit(filename: string, breadcrumb: string[]) {
@@ -74,6 +79,9 @@ async function identifyCycles(pkg: Package, progress: Progress) {
74
79
  breadcrumb = [...breadcrumb, filename];
75
80
  for (const dep of fileDeps) {
76
81
  visit(dep, breadcrumb);
82
+ if (cycles.length > MAX_CYCLES) {
83
+ break;
84
+ }
77
85
  }
78
86
  }
79
87
 
@@ -86,6 +94,9 @@ function printCycles(pkg: Package, cycles: string[][]) {
86
94
  for (const cycle of cycles) {
87
95
  std.out(" ", cycle.map(name => ansi.bright.blue(relative(src, name))).join(" → "), " ↩\n");
88
96
  }
97
+ if (cycles.length >= MAX_CYCLES) {
98
+ std.out(`\n${ansi.red(`Stopping search after max ${MAX_CYCLES} cycles`)}\n`);
99
+ }
89
100
  }
90
101
 
91
102
  function resolveDeps(pkg: Package, sourceFilename: string, deps: string[]) {
@@ -259,9 +259,6 @@ export namespace Progress {
259
259
  if (time.startsWith("0.")) {
260
260
  time = time.slice(1);
261
261
  }
262
- while (time.endsWith("0")) {
263
- time = time.slice(0, time.length - 1);
264
- }
265
262
  if (time.endsWith(".")) {
266
263
  if (time.length === 1) {
267
264
  time = "0";