@matter/tools 0.11.9 → 0.12.0-alpha.0-20241211-6d80d8b5c

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 (43) hide show
  1. package/dist/cjs/building/project.js +1 -1
  2. package/dist/cjs/building/project.js.map +1 -1
  3. package/dist/cjs/index.d.ts +1 -0
  4. package/dist/cjs/index.d.ts.map +1 -1
  5. package/dist/cjs/index.js +1 -0
  6. package/dist/cjs/index.js.map +1 -1
  7. package/dist/cjs/running/cli.d.ts.map +1 -1
  8. package/dist/cjs/running/cli.js +25 -30
  9. package/dist/cjs/running/cli.js.map +1 -1
  10. package/dist/cjs/running/ensure-compiled.d.ts +11 -0
  11. package/dist/cjs/running/ensure-compiled.d.ts.map +1 -0
  12. package/dist/cjs/running/ensure-compiled.js +69 -0
  13. package/dist/cjs/running/ensure-compiled.js.map +6 -0
  14. package/dist/cjs/util/bootstrap.mjs +10 -8
  15. package/dist/cjs/util/progress.d.ts +2 -1
  16. package/dist/cjs/util/progress.d.ts.map +1 -1
  17. package/dist/cjs/util/progress.js +14 -2
  18. package/dist/cjs/util/progress.js.map +1 -1
  19. package/dist/esm/building/project.js +2 -2
  20. package/dist/esm/building/project.js.map +1 -1
  21. package/dist/esm/index.d.ts +1 -0
  22. package/dist/esm/index.d.ts.map +1 -1
  23. package/dist/esm/index.js +2 -1
  24. package/dist/esm/index.js.map +1 -1
  25. package/dist/esm/running/cli.d.ts.map +1 -1
  26. package/dist/esm/running/cli.js +27 -32
  27. package/dist/esm/running/cli.js.map +1 -1
  28. package/dist/esm/running/ensure-compiled.d.ts +11 -0
  29. package/dist/esm/running/ensure-compiled.d.ts.map +1 -0
  30. package/dist/esm/running/ensure-compiled.js +49 -0
  31. package/dist/esm/running/ensure-compiled.js.map +6 -0
  32. package/dist/esm/util/bootstrap.mjs +10 -8
  33. package/dist/esm/util/progress.d.ts +2 -1
  34. package/dist/esm/util/progress.d.ts.map +1 -1
  35. package/dist/esm/util/progress.js +15 -3
  36. package/dist/esm/util/progress.js.map +1 -1
  37. package/package.json +6 -1
  38. package/src/building/project.ts +1 -1
  39. package/src/index.ts +1 -0
  40. package/src/running/cli.ts +36 -36
  41. package/src/running/ensure-compiled.ts +57 -0
  42. package/src/util/bootstrap.mjs +10 -8
  43. package/src/util/progress.ts +20 -3
@@ -4,15 +4,32 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { dirname, resolve } from "path";
7
- import { exit } from "process";
8
- import { Builder } from "../building/builder.js";
9
- import { Graph } from "../building/graph.js";
10
- import { Project } from "../building/project.js";
11
- import { Package } from "../util/package.js";
7
+ import { exit, stderr, stdout } from "process";
8
+ import { ensureCompiled } from "./ensure-compiled.js";
12
9
  import { executeNode } from "./execute.js";
13
10
  async function main(argv = process.argv) {
14
- let script = argv[2];
15
- argv = argv.slice(3);
11
+ let directExec = !!process.env.MATTER_DIRECT_EXEC;
12
+ argv = argv.slice(2);
13
+ while (argv[0][0] === "-") {
14
+ const option = argv.shift();
15
+ switch (option) {
16
+ case "--clear":
17
+ console.clear();
18
+ break;
19
+ case "--direct":
20
+ directExec = true;
21
+ break;
22
+ default:
23
+ stderr.write(`Unrecognized option ${option}`);
24
+ break;
25
+ case "--help":
26
+ stdout.write(
27
+ "Usage: matter-run [--clear] [--direct] <SCRIPT> [ARG]...\nRun a Node.js script with source map support and automatic transpilation of TypeScript."
28
+ );
29
+ break;
30
+ }
31
+ }
32
+ let script = argv.shift();
16
33
  if (script === void 0 || script === "") {
17
34
  console.error("Error: Script name required");
18
35
  exit(1);
@@ -24,35 +41,13 @@ async function main(argv = process.argv) {
24
41
  } else {
25
42
  dir = dirname(script);
26
43
  }
27
- const pkg = Package.forPath(dir);
28
- let format;
29
- if (!pkg.hasSrc) {
30
- format = "none";
31
- } else if (pkg.supportsEsm) {
32
- format = "esm";
33
- } else if (pkg.supportsCjs) {
34
- format = "cjs";
35
- } else {
36
- console.error("Error: Could not identify project format");
37
- exit(2);
38
- }
39
- const isDevelopment = !dir.match(/[\\/]node_modules[\\/]/);
40
- if (isDevelopment && format !== "none") {
41
- const builder = new Builder();
42
- const dependencies = await Graph.forProject(dir);
43
- if (dependencies) {
44
- await dependencies.build(builder, false);
45
- } else {
46
- const project = new Project(pkg);
47
- await builder.build(project);
48
- }
49
- }
44
+ const { format, pkg } = await ensureCompiled(dir);
50
45
  if (format !== "none") {
51
46
  script = pkg.resolve(
52
47
  pkg.relative(script).replace(/\.ts$/, ".js").replace(/^src[\\/]/, `dist/${format}/`)
53
48
  );
54
49
  }
55
- if (process.env.MATTER_DIRECT_EXEC) {
50
+ if (directExec) {
56
51
  await import(script);
57
52
  } else {
58
53
  process.on("SIGINT", () => {
@@ -65,4 +60,4 @@ async function main(argv = process.argv) {
65
60
  export {
66
61
  main
67
62
  };
68
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3J1bm5pbmcvY2xpLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAyMi0yMDI0IE1hdHRlci5qcyBBdXRob3JzXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuICovXG5cbmltcG9ydCB7IGRpcm5hbWUsIHJlc29sdmUgfSBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgZXhpdCB9IGZyb20gXCJwcm9jZXNzXCI7XG5pbXBvcnQgeyBCdWlsZGVyIH0gZnJvbSBcIi4uL2J1aWxkaW5nL2J1aWxkZXIuanNcIjtcbmltcG9ydCB7IEdyYXBoIH0gZnJvbSBcIi4uL2J1aWxkaW5nL2dyYXBoLmpzXCI7XG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSBcIi4uL2J1aWxkaW5nL3Byb2plY3QuanNcIjtcbmltcG9ydCB7IFBhY2thZ2UgfSBmcm9tIFwiLi4vdXRpbC9wYWNrYWdlLmpzXCI7XG5pbXBvcnQgeyBleGVjdXRlTm9kZSB9IGZyb20gXCIuL2V4ZWN1dGUuanNcIjtcblxuLyoqXG4gKiBFeGVjdXRlIGEgc2NyaXB0IGluIGEgcGFja2FnZSB0aGF0IGNvbmZvcm1zIHRvIG1hdHRlci5qcyBjb252ZW50aW9ucy4gIFRoaXMgaXMgcHJpbWFyaWx5IHVzZWZ1bCB3aXRoaW4gYSBtYXR0ZXIuanNcbiAqIGRldmVsb3BtZW50IGVudmlyb25tZW50IGJ1dCBzaG91bGQgYWxzbyB3b3JrIHdoZW4gaW5zdGFsbGVkIHZpYSBOUE0uXG4gKlxuICogRmlyc3Qgd2UgdHJhbnNsYXRlIHNvdXJjZSBmaWxlbmFtZXMgdG8gdGhlIHRyYW5zcGlsZWQgKi5qcyBlcXVpdmFsZW50LlxuICpcbiAqIElmIHRoZSB0YXJnZXQgc2NyaXB0IGlzIGluIGEgcGFja2FnZSBub3QgaW5zdGFsbGVkIHZpYSBOUE0gd2UgYnVpbGQgdGhlIHBhY2thZ2UuICBJZiB0aGUgcGFja2FnZSBpcyBhbiBOUE0gd29ya3NwYWNlXG4gKiB1bmRlciBhIHRvcC1sZXZlbCBwYWNrYWdlIHdlIGFsc28gYnVpbGQgZGVwZW5kZW5jaWVzLlxuICpcbiAqIFdlIHRoZW4gcnVuIHRoZSBzY3JpcHQgaW4gYSBjaGlsZCBwcm9jZXNzIHNvIHdlIGNhbiBlbmFibGUgc291cmNlIG1hcHMgdXNpbmcgbm9kZSAtLXNvdXJjZS1tYXBzLiAgWW91IGNhbiBkaXNhYmxlXG4gKiB0aGlzIGJ5IHNldHRpbmcgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIE1BVFRFUl9ESVJFQ1RfRVhFQy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1haW4oYXJndiA9IHByb2Nlc3MuYXJndikge1xuICAgIGxldCBzY3JpcHQgPSBhcmd2WzJdO1xuICAgIGFyZ3YgPSBhcmd2LnNsaWNlKDMpO1xuXG4gICAgaWYgKHNjcmlwdCA9PT0gdW5kZWZpbmVkIHx8IHNjcmlwdCA9PT0gXCJcIikge1xuICAgICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3I6IFNjcmlwdCBuYW1lIHJlcXVpcmVkXCIpO1xuICAgICAgICBleGl0KDEpO1xuICAgIH1cblxuICAgIHNjcmlwdCA9IHJlc29sdmUoc2NyaXB0KTtcbiAgICBsZXQgZGlyO1xuXG4gICAgaWYgKHNjcmlwdC5tYXRjaCgvW1xcXFwvXW5vZGVfbW9kdWxlc1tcXFxcL10uYmluW1xcXFwvXS8pKSB7XG4gICAgICAgIC8vIFdoZW4gZXhlY3V0aW5nIGEgc2NyaXB0IGxpbmtlZCB1bmRlciBub2RlX21vZHVsZXMsIHNlYXJjaCBmb3IgdGhlIHByb2plY3QgZnJvbSBjd2QuICBUaGlzIG9jY3VycyB3aGVuIHJ1bm5pbmdcbiAgICAgICAgLy8gdG9vbGluZyBzdWNoIGFzIFwibWF0dGVyLXRlc3RcIlxuICAgICAgICBkaXIgPSBwcm9jZXNzLmN3ZCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFdoZW4gZXhlY3V0aW5nIG91dHNpZGUgb2Ygbm9kZSBtb2R1bGVzIHdlIHdhbnQgdG8gYnVpbGQgdGhlIHByb2plY3QgY29udGFpbmluZyB0aGUgc2NyaXB0XG4gICAgICAgIGRpciA9IGRpcm5hbWUoc2NyaXB0KTtcbiAgICB9XG5cbiAgICBjb25zdCBwa2cgPSBQYWNrYWdlLmZvclBhdGgoZGlyKTtcblxuICAgIGxldCBmb3JtYXQ6IFwiZXNtXCIgfCBcImNqc1wiIHwgXCJub25lXCI7XG4gICAgaWYgKCFwa2cuaGFzU3JjKSB7XG4gICAgICAgIGZvcm1hdCA9IFwibm9uZVwiO1xuICAgIH0gZWxzZSBpZiAocGtnLnN1cHBvcnRzRXNtKSB7XG4gICAgICAgIGZvcm1hdCA9IFwiZXNtXCI7XG4gICAgfSBlbHNlIGlmIChwa2cuc3VwcG9ydHNDanMpIHtcbiAgICAgICAgZm9ybWF0ID0gXCJjanNcIjtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3I6IENvdWxkIG5vdCBpZGVudGlmeSBwcm9qZWN0IGZvcm1hdFwiKTtcbiAgICAgICAgZXhpdCgyKTtcbiAgICB9XG5cbiAgICAvLyBJbiBkZXZlbG9wbWVudCB3ZSBjdXJyZW50bHkgYnVpbGQgcGFja2FnZSBhbmQgZGVwZW5kZW5jaWVzIHVuY29uZGl0aW9uYWxseSBiZWZvcmUgcnVubmluZ1xuICAgIGNvbnN0IGlzRGV2ZWxvcG1lbnQgPSAhZGlyLm1hdGNoKC9bXFxcXC9dbm9kZV9tb2R1bGVzW1xcXFwvXS8pO1xuICAgIGlmIChpc0RldmVsb3BtZW50ICYmIGZvcm1hdCAhPT0gXCJub25lXCIpIHtcbiAgICAgICAgY29uc3QgYnVpbGRlciA9IG5ldyBCdWlsZGVyKCk7XG4gICAgICAgIGNvbnN0IGRlcGVuZGVuY2llcyA9IGF3YWl0IEdyYXBoLmZvclByb2plY3QoZGlyKTtcbiAgICAgICAgaWYgKGRlcGVuZGVuY2llcykge1xuICAgICAgICAgICAgLy8gUHJvamVjdCBpcyBpbiBhIHdvcmtzcGFjZTsgYnVpbGQgYWxvbmcgd2l0aCBkZXBlbmRlbmNpZXMgZnJvbSB0aGUgc2FtZSB3b3Jrc3BhY2VcbiAgICAgICAgICAgIGF3YWl0IGRlcGVuZGVuY2llcy5idWlsZChidWlsZGVyLCBmYWxzZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBQcm9qZWN0IGlzIG5vdCBpbiBhIHdvcmtzcGFjZTsgb25seSBidWlsZCB0aGUgcHJvamVjdFxuICAgICAgICAgICAgY29uc3QgcHJvamVjdCA9IG5ldyBQcm9qZWN0KHBrZyk7XG4gICAgICAgICAgICBhd2FpdCBidWlsZGVyLmJ1aWxkKHByb2plY3QpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGV0ZXJtaW5lIHRoZSBhY3R1YWwgc2NyaXB0IHRvIHJ1blxuICAgIGlmIChmb3JtYXQgIT09IFwibm9uZVwiKSB7XG4gICAgICAgIHNjcmlwdCA9IHBrZy5yZXNvbHZlKFxuICAgICAgICAgICAgcGtnXG4gICAgICAgICAgICAgICAgLnJlbGF0aXZlKHNjcmlwdClcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFwudHMkLywgXCIuanNcIilcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXnNyY1tcXFxcL10vLCBgZGlzdC8ke2Zvcm1hdH0vYCksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gSWYgd2UgcnVuIGluIHRoZSBzYW1lIHByb2Nlc3Mgd2UgY2Fubm90IGVuYWJsZSBzb3VyY2UgbWFwcyBzbyBkZWZhdWx0IG1vZGUgaXMgdG8gZm9yay4gIEhvd2V2ZXIgZm9yIGRldmVsb3BtZW50XG4gICAgLy8gcHVycG9zZXMgaXQgY2FuIGJlIHVzZWZ1bCB0byBhdm9pZCB0aGUgaW50ZXJtZWRpYXJ5IHByb2Nlc3MuICBJbiB0aGlzIGNhc2UgeW91IGNhbiBzZXQgXCItLWVuYWJsZS1zb3VyY2UtbWFwc1wiXG4gICAgLy8gbWFudWFsbHkgdGhlbiBzZXQgTUFUVEVSX0RJUkVDVF9FWEVDXG4gICAgaWYgKHByb2Nlc3MuZW52Lk1BVFRFUl9ESVJFQ1RfRVhFQykge1xuICAgICAgICAvLyBUaGlzIHdpbGwgbm90IHRyYW5zcGlsZSBwcm9wZXJseSB0byBjb21tb25qcyBidXQgd2Ugb25seSB1c2UgdGhpcyBtb2R1bGUgZnJvbSBFU00gc28gdGhhdCdzIE9LXG4gICAgICAgIGF3YWl0IGltcG9ydChzY3JpcHQpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIE91ciBiZWhhdmlvciBpbiByZXNwb25zZSB0byBTSUdJTlQgc2hvdWxkIG1pcnJvciB0aGUgY2hpbGQgcHJvY2VzcydzLiAgU28gaWdub3JlIHRoZSBzaWduYWwgbG9jYWxseSwgb25seVxuICAgICAgICAvLyBxdWl0dGluZyBvbmNlIHRoZSBjaGlsZCBwcm9jZXNzIGRvZXNcbiAgICAgICAgcHJvY2Vzcy5vbihcIlNJR0lOVFwiLCAoKSA9PiB7fSk7XG4gICAgICAgIHByb2Nlc3Mub24oXCJTSUdURVJNXCIsICgpID0+IHt9KTtcblxuICAgICAgICBwcm9jZXNzLmV4aXRDb2RlID0gYXdhaXQgZXhlY3V0ZU5vZGUoc2NyaXB0LCBhcmd2KTtcbiAgICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUEsU0FBUyxTQUFTLGVBQWU7QUFDakMsU0FBUyxZQUFZO0FBQ3JCLFNBQVMsZUFBZTtBQUN4QixTQUFTLGFBQWE7QUFDdEIsU0FBUyxlQUFlO0FBQ3hCLFNBQVMsZUFBZTtBQUN4QixTQUFTLG1CQUFtQjtBQWM1QixlQUFzQixLQUFLLE9BQU8sUUFBUSxNQUFNO0FBQzVDLE1BQUksU0FBUyxLQUFLLENBQUM7QUFDbkIsU0FBTyxLQUFLLE1BQU0sQ0FBQztBQUVuQixNQUFJLFdBQVcsVUFBYSxXQUFXLElBQUk7QUFDdkMsWUFBUSxNQUFNLDZCQUE2QjtBQUMzQyxTQUFLLENBQUM7QUFBQSxFQUNWO0FBRUEsV0FBUyxRQUFRLE1BQU07QUFDdkIsTUFBSTtBQUVKLE1BQUksT0FBTyxNQUFNLGlDQUFpQyxHQUFHO0FBR2pELFVBQU0sUUFBUSxJQUFJO0FBQUEsRUFDdEIsT0FBTztBQUVILFVBQU0sUUFBUSxNQUFNO0FBQUEsRUFDeEI7QUFFQSxRQUFNLE1BQU0sUUFBUSxRQUFRLEdBQUc7QUFFL0IsTUFBSTtBQUNKLE1BQUksQ0FBQyxJQUFJLFFBQVE7QUFDYixhQUFTO0FBQUEsRUFDYixXQUFXLElBQUksYUFBYTtBQUN4QixhQUFTO0FBQUEsRUFDYixXQUFXLElBQUksYUFBYTtBQUN4QixhQUFTO0FBQUEsRUFDYixPQUFPO0FBQ0gsWUFBUSxNQUFNLDBDQUEwQztBQUN4RCxTQUFLLENBQUM7QUFBQSxFQUNWO0FBR0EsUUFBTSxnQkFBZ0IsQ0FBQyxJQUFJLE1BQU0sd0JBQXdCO0FBQ3pELE1BQUksaUJBQWlCLFdBQVcsUUFBUTtBQUNwQyxVQUFNLFVBQVUsSUFBSSxRQUFRO0FBQzVCLFVBQU0sZUFBZSxNQUFNLE1BQU0sV0FBVyxHQUFHO0FBQy9DLFFBQUksY0FBYztBQUVkLFlBQU0sYUFBYSxNQUFNLFNBQVMsS0FBSztBQUFBLElBQzNDLE9BQU87QUFFSCxZQUFNLFVBQVUsSUFBSSxRQUFRLEdBQUc7QUFDL0IsWUFBTSxRQUFRLE1BQU0sT0FBTztBQUFBLElBQy9CO0FBQUEsRUFDSjtBQUdBLE1BQUksV0FBVyxRQUFRO0FBQ25CLGFBQVMsSUFBSTtBQUFBLE1BQ1QsSUFDSyxTQUFTLE1BQU0sRUFDZixRQUFRLFNBQVMsS0FBSyxFQUN0QixRQUFRLGFBQWEsUUFBUSxNQUFNLEdBQUc7QUFBQSxJQUMvQztBQUFBLEVBQ0o7QUFLQSxNQUFJLFFBQVEsSUFBSSxvQkFBb0I7QUFFaEMsVUFBTSxPQUFPO0FBQUEsRUFDakIsT0FBTztBQUdILFlBQVEsR0FBRyxVQUFVLE1BQU07QUFBQSxJQUFDLENBQUM7QUFDN0IsWUFBUSxHQUFHLFdBQVcsTUFBTTtBQUFBLElBQUMsQ0FBQztBQUU5QixZQUFRLFdBQVcsTUFBTSxZQUFZLFFBQVEsSUFBSTtBQUFBLEVBQ3JEO0FBQ0o7IiwKICAibmFtZXMiOiBbXQp9Cg==
63
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3J1bm5pbmcvY2xpLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAyMi0yMDI0IE1hdHRlci5qcyBBdXRob3JzXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuICovXG5cbmltcG9ydCB7IGRpcm5hbWUsIHJlc29sdmUgfSBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgZXhpdCwgc3RkZXJyLCBzdGRvdXQgfSBmcm9tIFwicHJvY2Vzc1wiO1xuaW1wb3J0IHsgZW5zdXJlQ29tcGlsZWQgfSBmcm9tIFwiLi9lbnN1cmUtY29tcGlsZWQuanNcIjtcbmltcG9ydCB7IGV4ZWN1dGVOb2RlIH0gZnJvbSBcIi4vZXhlY3V0ZS5qc1wiO1xuXG4vKipcbiAqIEV4ZWN1dGUgYSBzY3JpcHQgaW4gYSBwYWNrYWdlIHRoYXQgY29uZm9ybXMgdG8gbWF0dGVyLmpzIGNvbnZlbnRpb25zLiAgVGhpcyBpcyBwcmltYXJpbHkgdXNlZnVsIHdpdGhpbiBhIG1hdHRlci5qc1xuICogZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQgYnV0IHNob3VsZCBhbHNvIHdvcmsgd2hlbiBpbnN0YWxsZWQgdmlhIE5QTS5cbiAqXG4gKiBGaXJzdCB3ZSB0cmFuc2xhdGUgc291cmNlIGZpbGVuYW1lcyB0byB0aGUgdHJhbnNwaWxlZCAqLmpzIGVxdWl2YWxlbnQuXG4gKlxuICogSWYgdGhlIHRhcmdldCBzY3JpcHQgaXMgaW4gYSBwYWNrYWdlIG5vdCBpbnN0YWxsZWQgdmlhIE5QTSB3ZSBidWlsZCB0aGUgcGFja2FnZS4gIElmIHRoZSBwYWNrYWdlIGlzIGFuIE5QTSB3b3Jrc3BhY2VcbiAqIHVuZGVyIGEgdG9wLWxldmVsIHBhY2thZ2Ugd2UgYWxzbyBidWlsZCBkZXBlbmRlbmNpZXMuXG4gKlxuICogV2UgdGhlbiBydW4gdGhlIHNjcmlwdCBpbiBhIGNoaWxkIHByb2Nlc3Mgc28gd2UgY2FuIGVuYWJsZSBzb3VyY2UgbWFwcyB1c2luZyBub2RlIC0tc291cmNlLW1hcHMuICBZb3UgY2FuIGRpc2FibGVcbiAqIHRoaXMgYnkgc2V0dGluZyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgTUFUVEVSX0RJUkVDVF9FWEVDLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbWFpbihhcmd2ID0gcHJvY2Vzcy5hcmd2KSB7XG4gICAgbGV0IGRpcmVjdEV4ZWMgPSAhIXByb2Nlc3MuZW52Lk1BVFRFUl9ESVJFQ1RfRVhFQztcblxuICAgIC8vIERyb3Agbm9kZSBhbmQgbWF0dGVyLXJ1blxuICAgIGFyZ3YgPSBhcmd2LnNsaWNlKDIpO1xuXG4gICAgLy8gUHJvY2VzcyBhcmd1bWVudHMgdG8gbWF0dGVyLXJ1biBpdHNlbGYgKHZlcnkgc2ltcGxlIGFzIG9mIHlldCBzbyBqdXN0IHByb2Nlc3NpbmcgbWFudWFsbHkpXG4gICAgd2hpbGUgKGFyZ3ZbMF1bMF0gPT09IFwiLVwiKSB7XG4gICAgICAgIGNvbnN0IG9wdGlvbiA9IGFyZ3Yuc2hpZnQoKTtcblxuICAgICAgICBzd2l0Y2ggKG9wdGlvbikge1xuICAgICAgICAgICAgY2FzZSBcIi0tY2xlYXJcIjpcbiAgICAgICAgICAgICAgICBjb25zb2xlLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgXCItLWRpcmVjdFwiOlxuICAgICAgICAgICAgICAgIGRpcmVjdEV4ZWMgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHN0ZGVyci53cml0ZShgVW5yZWNvZ25pemVkIG9wdGlvbiAke29wdGlvbn1gKTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSBcIi0taGVscFwiOlxuICAgICAgICAgICAgICAgIHN0ZG91dC53cml0ZShcbiAgICAgICAgICAgICAgICAgICAgXCJVc2FnZTogbWF0dGVyLXJ1biBbLS1jbGVhcl0gWy0tZGlyZWN0XSA8U0NSSVBUPiBbQVJHXS4uLlxcblJ1biBhIE5vZGUuanMgc2NyaXB0IHdpdGggc291cmNlIG1hcCBzdXBwb3J0IGFuZCBhdXRvbWF0aWMgdHJhbnNwaWxhdGlvbiBvZiBUeXBlU2NyaXB0LlwiLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFeHRyYWN0IHNjcmlwdCBuYW1lLiAgYXJndiBpcyB0aGVuIHRoZSBzY3JpcHQncyBhcmdzXG4gICAgbGV0IHNjcmlwdCA9IGFyZ3Yuc2hpZnQoKTtcblxuICAgIGlmIChzY3JpcHQgPT09IHVuZGVmaW5lZCB8fCBzY3JpcHQgPT09IFwiXCIpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcIkVycm9yOiBTY3JpcHQgbmFtZSByZXF1aXJlZFwiKTtcbiAgICAgICAgZXhpdCgxKTtcbiAgICB9XG5cbiAgICBzY3JpcHQgPSByZXNvbHZlKHNjcmlwdCk7XG4gICAgbGV0IGRpcjtcblxuICAgIGlmIChzY3JpcHQubWF0Y2goL1tcXFxcL11ub2RlX21vZHVsZXNbXFxcXC9dLmJpbltcXFxcL10vKSkge1xuICAgICAgICAvLyBXaGVuIGV4ZWN1dGluZyBhIHNjcmlwdCBsaW5rZWQgdW5kZXIgbm9kZV9tb2R1bGVzLCBzZWFyY2ggZm9yIHRoZSBwcm9qZWN0IGZyb20gY3dkLiAgVGhpcyBvY2N1cnMgd2hlbiBydW5uaW5nXG4gICAgICAgIC8vIHRvb2xpbmcgc3VjaCBhcyBcIm1hdHRlci10ZXN0XCJcbiAgICAgICAgZGlyID0gcHJvY2Vzcy5jd2QoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICAvLyBXaGVuIGV4ZWN1dGluZyBvdXRzaWRlIG9mIG5vZGUgbW9kdWxlcyB3ZSB3YW50IHRvIGJ1aWxkIHRoZSBwcm9qZWN0IGNvbnRhaW5pbmcgdGhlIHNjcmlwdFxuICAgICAgICBkaXIgPSBkaXJuYW1lKHNjcmlwdCk7XG4gICAgfVxuXG4gICAgY29uc3QgeyBmb3JtYXQsIHBrZyB9ID0gYXdhaXQgZW5zdXJlQ29tcGlsZWQoZGlyKTtcblxuICAgIC8vIERldGVybWluZSB0aGUgYWN0dWFsIHNjcmlwdCB0byBydW5cbiAgICBpZiAoZm9ybWF0ICE9PSBcIm5vbmVcIikge1xuICAgICAgICBzY3JpcHQgPSBwa2cucmVzb2x2ZShcbiAgICAgICAgICAgIHBrZ1xuICAgICAgICAgICAgICAgIC5yZWxhdGl2ZShzY3JpcHQpXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcLnRzJC8sIFwiLmpzXCIpXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL15zcmNbXFxcXC9dLywgYGRpc3QvJHtmb3JtYXR9L2ApLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8vIElmIHdlIHJ1biBpbiB0aGUgc2FtZSBwcm9jZXNzIHdlIGNhbm5vdCBlbmFibGUgc291cmNlIG1hcHMgc28gZGVmYXVsdCBtb2RlIGlzIHRvIGZvcmsuICBIb3dldmVyIGZvciBkZXZlbG9wbWVudFxuICAgIC8vIHB1cnBvc2VzIGl0IGNhbiBiZSB1c2VmdWwgdG8gYXZvaWQgdGhlIGludGVybWVkaWFyeSBwcm9jZXNzLiAgSW4gdGhpcyBjYXNlIHlvdSBjYW4gc2V0IFwiLS1lbmFibGUtc291cmNlLW1hcHNcIlxuICAgIC8vIG1hbnVhbGx5IHRoZW4gc2V0IE1BVFRFUl9ESVJFQ1RfRVhFQ1xuICAgIGlmIChkaXJlY3RFeGVjKSB7XG4gICAgICAgIC8vIFRoaXMgd2lsbCBub3QgdHJhbnNwaWxlIHByb3Blcmx5IHRvIGNvbW1vbmpzIGJ1dCB3ZSBvbmx5IHVzZSB0aGlzIG1vZHVsZSBmcm9tIEVTTSBzbyB0aGF0J3MgT0tcbiAgICAgICAgYXdhaXQgaW1wb3J0KHNjcmlwdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgLy8gT3VyIGJlaGF2aW9yIGluIHJlc3BvbnNlIHRvIFNJR0lOVCBzaG91bGQgbWlycm9yIHRoZSBjaGlsZCBwcm9jZXNzJ3MuICBTbyBpZ25vcmUgdGhlIHNpZ25hbCBsb2NhbGx5LCBvbmx5XG4gICAgICAgIC8vIHF1aXR0aW5nIG9uY2UgdGhlIGNoaWxkIHByb2Nlc3MgZG9lc1xuICAgICAgICBwcm9jZXNzLm9uKFwiU0lHSU5UXCIsICgpID0+IHt9KTtcbiAgICAgICAgcHJvY2Vzcy5vbihcIlNJR1RFUk1cIiwgKCkgPT4ge30pO1xuXG4gICAgICAgIHByb2Nlc3MuZXhpdENvZGUgPSBhd2FpdCBleGVjdXRlTm9kZShzY3JpcHQsIGFyZ3YpO1xuICAgIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQSxTQUFTLFNBQVMsZUFBZTtBQUNqQyxTQUFTLE1BQU0sUUFBUSxjQUFjO0FBQ3JDLFNBQVMsc0JBQXNCO0FBQy9CLFNBQVMsbUJBQW1CO0FBYzVCLGVBQXNCLEtBQUssT0FBTyxRQUFRLE1BQU07QUFDNUMsTUFBSSxhQUFhLENBQUMsQ0FBQyxRQUFRLElBQUk7QUFHL0IsU0FBTyxLQUFLLE1BQU0sQ0FBQztBQUduQixTQUFPLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxLQUFLO0FBQ3ZCLFVBQU0sU0FBUyxLQUFLLE1BQU07QUFFMUIsWUFBUSxRQUFRO0FBQUEsTUFDWixLQUFLO0FBQ0QsZ0JBQVEsTUFBTTtBQUNkO0FBQUEsTUFFSixLQUFLO0FBQ0QscUJBQWE7QUFDYjtBQUFBLE1BRUo7QUFDSSxlQUFPLE1BQU0sdUJBQXVCLE1BQU0sRUFBRTtBQUM1QztBQUFBLE1BRUosS0FBSztBQUNELGVBQU87QUFBQSxVQUNIO0FBQUEsUUFDSjtBQUNBO0FBQUEsSUFDUjtBQUFBLEVBQ0o7QUFHQSxNQUFJLFNBQVMsS0FBSyxNQUFNO0FBRXhCLE1BQUksV0FBVyxVQUFhLFdBQVcsSUFBSTtBQUN2QyxZQUFRLE1BQU0sNkJBQTZCO0FBQzNDLFNBQUssQ0FBQztBQUFBLEVBQ1Y7QUFFQSxXQUFTLFFBQVEsTUFBTTtBQUN2QixNQUFJO0FBRUosTUFBSSxPQUFPLE1BQU0saUNBQWlDLEdBQUc7QUFHakQsVUFBTSxRQUFRLElBQUk7QUFBQSxFQUN0QixPQUFPO0FBRUgsVUFBTSxRQUFRLE1BQU07QUFBQSxFQUN4QjtBQUVBLFFBQU0sRUFBRSxRQUFRLElBQUksSUFBSSxNQUFNLGVBQWUsR0FBRztBQUdoRCxNQUFJLFdBQVcsUUFBUTtBQUNuQixhQUFTLElBQUk7QUFBQSxNQUNULElBQ0ssU0FBUyxNQUFNLEVBQ2YsUUFBUSxTQUFTLEtBQUssRUFDdEIsUUFBUSxhQUFhLFFBQVEsTUFBTSxHQUFHO0FBQUEsSUFDL0M7QUFBQSxFQUNKO0FBS0EsTUFBSSxZQUFZO0FBRVosVUFBTSxPQUFPO0FBQUEsRUFDakIsT0FBTztBQUdILFlBQVEsR0FBRyxVQUFVLE1BQU07QUFBQSxJQUFDLENBQUM7QUFDN0IsWUFBUSxHQUFHLFdBQVcsTUFBTTtBQUFBLElBQUMsQ0FBQztBQUU5QixZQUFRLFdBQVcsTUFBTSxZQUFZLFFBQVEsSUFBSTtBQUFBLEVBQ3JEO0FBQ0o7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/running/cli.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,SAAS,eAAe;AACjC,SAAS,YAAY;AACrB,SAAS,eAAe;AACxB,SAAS,aAAa;AACtB,SAAS,eAAe;AACxB,SAAS,eAAe;AACxB,SAAS,mBAAmB;AAc5B,eAAsB,KAAK,OAAO,QAAQ,MAAM;AAC5C,MAAI,SAAS,KAAK,CAAC;AACnB,SAAO,KAAK,MAAM,CAAC;AAEnB,MAAI,WAAW,UAAa,WAAW,IAAI;AACvC,YAAQ,MAAM,6BAA6B;AAC3C,SAAK,CAAC;AAAA,EACV;AAEA,WAAS,QAAQ,MAAM;AACvB,MAAI;AAEJ,MAAI,OAAO,MAAM,iCAAiC,GAAG;AAGjD,UAAM,QAAQ,IAAI;AAAA,EACtB,OAAO;AAEH,UAAM,QAAQ,MAAM;AAAA,EACxB;AAEA,QAAM,MAAM,QAAQ,QAAQ,GAAG;AAE/B,MAAI;AACJ,MAAI,CAAC,IAAI,QAAQ;AACb,aAAS;AAAA,EACb,WAAW,IAAI,aAAa;AACxB,aAAS;AAAA,EACb,WAAW,IAAI,aAAa;AACxB,aAAS;AAAA,EACb,OAAO;AACH,YAAQ,MAAM,0CAA0C;AACxD,SAAK,CAAC;AAAA,EACV;AAGA,QAAM,gBAAgB,CAAC,IAAI,MAAM,wBAAwB;AACzD,MAAI,iBAAiB,WAAW,QAAQ;AACpC,UAAM,UAAU,IAAI,QAAQ;AAC5B,UAAM,eAAe,MAAM,MAAM,WAAW,GAAG;AAC/C,QAAI,cAAc;AAEd,YAAM,aAAa,MAAM,SAAS,KAAK;AAAA,IAC3C,OAAO;AAEH,YAAM,UAAU,IAAI,QAAQ,GAAG;AAC/B,YAAM,QAAQ,MAAM,OAAO;AAAA,IAC/B;AAAA,EACJ;AAGA,MAAI,WAAW,QAAQ;AACnB,aAAS,IAAI;AAAA,MACT,IACK,SAAS,MAAM,EACf,QAAQ,SAAS,KAAK,EACtB,QAAQ,aAAa,QAAQ,MAAM,GAAG;AAAA,IAC/C;AAAA,EACJ;AAKA,MAAI,QAAQ,IAAI,oBAAoB;AAEhC,UAAM,OAAO;AAAA,EACjB,OAAO;AAGH,YAAQ,GAAG,UAAU,MAAM;AAAA,IAAC,CAAC;AAC7B,YAAQ,GAAG,WAAW,MAAM;AAAA,IAAC,CAAC;AAE9B,YAAQ,WAAW,MAAM,YAAY,QAAQ,IAAI;AAAA,EACrD;AACJ;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,SAAS,eAAe;AACjC,SAAS,MAAM,QAAQ,cAAc;AACrC,SAAS,sBAAsB;AAC/B,SAAS,mBAAmB;AAc5B,eAAsB,KAAK,OAAO,QAAQ,MAAM;AAC5C,MAAI,aAAa,CAAC,CAAC,QAAQ,IAAI;AAG/B,SAAO,KAAK,MAAM,CAAC;AAGnB,SAAO,KAAK,CAAC,EAAE,CAAC,MAAM,KAAK;AACvB,UAAM,SAAS,KAAK,MAAM;AAE1B,YAAQ,QAAQ;AAAA,MACZ,KAAK;AACD,gBAAQ,MAAM;AACd;AAAA,MAEJ,KAAK;AACD,qBAAa;AACb;AAAA,MAEJ;AACI,eAAO,MAAM,uBAAuB,MAAM,EAAE;AAC5C;AAAA,MAEJ,KAAK;AACD,eAAO;AAAA,UACH;AAAA,QACJ;AACA;AAAA,IACR;AAAA,EACJ;AAGA,MAAI,SAAS,KAAK,MAAM;AAExB,MAAI,WAAW,UAAa,WAAW,IAAI;AACvC,YAAQ,MAAM,6BAA6B;AAC3C,SAAK,CAAC;AAAA,EACV;AAEA,WAAS,QAAQ,MAAM;AACvB,MAAI;AAEJ,MAAI,OAAO,MAAM,iCAAiC,GAAG;AAGjD,UAAM,QAAQ,IAAI;AAAA,EACtB,OAAO;AAEH,UAAM,QAAQ,MAAM;AAAA,EACxB;AAEA,QAAM,EAAE,QAAQ,IAAI,IAAI,MAAM,eAAe,GAAG;AAGhD,MAAI,WAAW,QAAQ;AACnB,aAAS,IAAI;AAAA,MACT,IACK,SAAS,MAAM,EACf,QAAQ,SAAS,KAAK,EACtB,QAAQ,aAAa,QAAQ,MAAM,GAAG;AAAA,IAC/C;AAAA,EACJ;AAKA,MAAI,YAAY;AAEZ,UAAM,OAAO;AAAA,EACjB,OAAO;AAGH,YAAQ,GAAG,UAAU,MAAM;AAAA,IAAC,CAAC;AAC7B,YAAQ,GAAG,WAAW,MAAM;AAAA,IAAC,CAAC;AAE9B,YAAQ,WAAW,MAAM,YAAY,QAAQ,IAAI;AAAA,EACrD;AACJ;",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Package } from "../util/package.js";
7
+ export declare function ensureCompiled(path: string): Promise<{
8
+ pkg: Package;
9
+ format: "esm" | "cjs" | "none";
10
+ }>;
11
+ //# sourceMappingURL=ensure-compiled.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensure-compiled.d.ts","sourceRoot":"","sources":["../../../src/running/ensure-compiled.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAI7C,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM;;;GAyChD"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { exit } from "process";
7
+ import { fileURLToPath } from "url";
8
+ import { Builder } from "../building/builder.js";
9
+ import { Graph } from "../building/graph.js";
10
+ import { Project } from "../building/project.js";
11
+ import { Package } from "../util/package.js";
12
+ let compilationEnsured;
13
+ async function ensureCompiled(path) {
14
+ if (path.startsWith("file:")) {
15
+ path = fileURLToPath(path);
16
+ }
17
+ const pkg = Package.forPath(path);
18
+ let format;
19
+ if (!pkg.hasSrc) {
20
+ format = "none";
21
+ } else if (pkg.supportsEsm) {
22
+ format = "esm";
23
+ } else if (pkg.supportsCjs) {
24
+ format = "cjs";
25
+ } else {
26
+ console.error("Error: Could not identify project format");
27
+ exit(2);
28
+ }
29
+ if (compilationEnsured == pkg) {
30
+ return { pkg, format };
31
+ }
32
+ const isDevelopment = !path.match(/[\\/]node_modules[\\/]/);
33
+ if (isDevelopment && format !== "none") {
34
+ const builder = new Builder();
35
+ const dependencies = await Graph.forProject(path);
36
+ if (dependencies) {
37
+ await dependencies.build(builder, false);
38
+ } else {
39
+ const project = new Project(pkg);
40
+ await builder.build(project);
41
+ }
42
+ }
43
+ compilationEnsured = pkg;
44
+ return { pkg, format };
45
+ }
46
+ export {
47
+ ensureCompiled
48
+ };
49
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3J1bm5pbmcvZW5zdXJlLWNvbXBpbGVkLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAyMi0yMDI0IE1hdHRlci5qcyBBdXRob3JzXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuICovXG5cbmltcG9ydCB7IGV4aXQgfSBmcm9tIFwicHJvY2Vzc1wiO1xuaW1wb3J0IHsgZmlsZVVSTFRvUGF0aCB9IGZyb20gXCJ1cmxcIjtcbmltcG9ydCB7IEJ1aWxkZXIgfSBmcm9tIFwiLi4vYnVpbGRpbmcvYnVpbGRlci5qc1wiO1xuaW1wb3J0IHsgR3JhcGggfSBmcm9tIFwiLi4vYnVpbGRpbmcvZ3JhcGguanNcIjtcbmltcG9ydCB7IFByb2plY3QgfSBmcm9tIFwiLi4vYnVpbGRpbmcvcHJvamVjdC5qc1wiO1xuaW1wb3J0IHsgUGFja2FnZSB9IGZyb20gXCIuLi91dGlsL3BhY2thZ2UuanNcIjtcblxubGV0IGNvbXBpbGF0aW9uRW5zdXJlZDogdW5kZWZpbmVkIHwgUGFja2FnZTtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVuc3VyZUNvbXBpbGVkKHBhdGg6IHN0cmluZykge1xuICAgIGlmIChwYXRoLnN0YXJ0c1dpdGgoXCJmaWxlOlwiKSkge1xuICAgICAgICBwYXRoID0gZmlsZVVSTFRvUGF0aChwYXRoKTtcbiAgICB9XG5cbiAgICBjb25zdCBwa2cgPSBQYWNrYWdlLmZvclBhdGgocGF0aCk7XG5cbiAgICBsZXQgZm9ybWF0OiBcImVzbVwiIHwgXCJjanNcIiB8IFwibm9uZVwiO1xuICAgIGlmICghcGtnLmhhc1NyYykge1xuICAgICAgICBmb3JtYXQgPSBcIm5vbmVcIjtcbiAgICB9IGVsc2UgaWYgKHBrZy5zdXBwb3J0c0VzbSkge1xuICAgICAgICBmb3JtYXQgPSBcImVzbVwiO1xuICAgIH0gZWxzZSBpZiAocGtnLnN1cHBvcnRzQ2pzKSB7XG4gICAgICAgIGZvcm1hdCA9IFwiY2pzXCI7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcIkVycm9yOiBDb3VsZCBub3QgaWRlbnRpZnkgcHJvamVjdCBmb3JtYXRcIik7XG4gICAgICAgIGV4aXQoMik7XG4gICAgfVxuXG4gICAgaWYgKGNvbXBpbGF0aW9uRW5zdXJlZCA9PSBwa2cpIHtcbiAgICAgICAgcmV0dXJuIHsgcGtnLCBmb3JtYXQgfTtcbiAgICB9XG5cbiAgICAvLyBJbiBkZXZlbG9wbWVudCB3ZSBjdXJyZW50bHkgYnVpbGQgcGFja2FnZSBhbmQgZGVwZW5kZW5jaWVzIHVuY29uZGl0aW9uYWxseSBiZWZvcmUgcnVubmluZ1xuICAgIGNvbnN0IGlzRGV2ZWxvcG1lbnQgPSAhcGF0aC5tYXRjaCgvW1xcXFwvXW5vZGVfbW9kdWxlc1tcXFxcL10vKTtcbiAgICBpZiAoaXNEZXZlbG9wbWVudCAmJiBmb3JtYXQgIT09IFwibm9uZVwiKSB7XG4gICAgICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgQnVpbGRlcigpO1xuICAgICAgICBjb25zdCBkZXBlbmRlbmNpZXMgPSBhd2FpdCBHcmFwaC5mb3JQcm9qZWN0KHBhdGgpO1xuICAgICAgICBpZiAoZGVwZW5kZW5jaWVzKSB7XG4gICAgICAgICAgICAvLyBQcm9qZWN0IGlzIGluIGEgd29ya3NwYWNlOyBidWlsZCBhbG9uZyB3aXRoIGRlcGVuZGVuY2llcyBmcm9tIHRoZSBzYW1lIHdvcmtzcGFjZVxuICAgICAgICAgICAgYXdhaXQgZGVwZW5kZW5jaWVzLmJ1aWxkKGJ1aWxkZXIsIGZhbHNlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIFByb2plY3QgaXMgbm90IGluIGEgd29ya3NwYWNlOyBvbmx5IGJ1aWxkIHRoZSBwcm9qZWN0XG4gICAgICAgICAgICBjb25zdCBwcm9qZWN0ID0gbmV3IFByb2plY3QocGtnKTtcbiAgICAgICAgICAgIGF3YWl0IGJ1aWxkZXIuYnVpbGQocHJvamVjdCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb21waWxhdGlvbkVuc3VyZWQgPSBwa2c7XG5cbiAgICByZXR1cm4geyBwa2csIGZvcm1hdCB9O1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BLFNBQVMsWUFBWTtBQUNyQixTQUFTLHFCQUFxQjtBQUM5QixTQUFTLGVBQWU7QUFDeEIsU0FBUyxhQUFhO0FBQ3RCLFNBQVMsZUFBZTtBQUN4QixTQUFTLGVBQWU7QUFFeEIsSUFBSTtBQUVKLGVBQXNCLGVBQWUsTUFBYztBQUMvQyxNQUFJLEtBQUssV0FBVyxPQUFPLEdBQUc7QUFDMUIsV0FBTyxjQUFjLElBQUk7QUFBQSxFQUM3QjtBQUVBLFFBQU0sTUFBTSxRQUFRLFFBQVEsSUFBSTtBQUVoQyxNQUFJO0FBQ0osTUFBSSxDQUFDLElBQUksUUFBUTtBQUNiLGFBQVM7QUFBQSxFQUNiLFdBQVcsSUFBSSxhQUFhO0FBQ3hCLGFBQVM7QUFBQSxFQUNiLFdBQVcsSUFBSSxhQUFhO0FBQ3hCLGFBQVM7QUFBQSxFQUNiLE9BQU87QUFDSCxZQUFRLE1BQU0sMENBQTBDO0FBQ3hELFNBQUssQ0FBQztBQUFBLEVBQ1Y7QUFFQSxNQUFJLHNCQUFzQixLQUFLO0FBQzNCLFdBQU8sRUFBRSxLQUFLLE9BQU87QUFBQSxFQUN6QjtBQUdBLFFBQU0sZ0JBQWdCLENBQUMsS0FBSyxNQUFNLHdCQUF3QjtBQUMxRCxNQUFJLGlCQUFpQixXQUFXLFFBQVE7QUFDcEMsVUFBTSxVQUFVLElBQUksUUFBUTtBQUM1QixVQUFNLGVBQWUsTUFBTSxNQUFNLFdBQVcsSUFBSTtBQUNoRCxRQUFJLGNBQWM7QUFFZCxZQUFNLGFBQWEsTUFBTSxTQUFTLEtBQUs7QUFBQSxJQUMzQyxPQUFPO0FBRUgsWUFBTSxVQUFVLElBQUksUUFBUSxHQUFHO0FBQy9CLFlBQU0sUUFBUSxNQUFNLE9BQU87QUFBQSxJQUMvQjtBQUFBLEVBQ0o7QUFFQSx1QkFBcUI7QUFFckIsU0FBTyxFQUFFLEtBQUssT0FBTztBQUN6QjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/running/ensure-compiled.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,YAAY;AACrB,SAAS,qBAAqB;AAC9B,SAAS,eAAe;AACxB,SAAS,aAAa;AACtB,SAAS,eAAe;AACxB,SAAS,eAAe;AAExB,IAAI;AAEJ,eAAsB,eAAe,MAAc;AAC/C,MAAI,KAAK,WAAW,OAAO,GAAG;AAC1B,WAAO,cAAc,IAAI;AAAA,EAC7B;AAEA,QAAM,MAAM,QAAQ,QAAQ,IAAI;AAEhC,MAAI;AACJ,MAAI,CAAC,IAAI,QAAQ;AACb,aAAS;AAAA,EACb,WAAW,IAAI,aAAa;AACxB,aAAS;AAAA,EACb,WAAW,IAAI,aAAa;AACxB,aAAS;AAAA,EACb,OAAO;AACH,YAAQ,MAAM,0CAA0C;AACxD,SAAK,CAAC;AAAA,EACV;AAEA,MAAI,sBAAsB,KAAK;AAC3B,WAAO,EAAE,KAAK,OAAO;AAAA,EACzB;AAGA,QAAM,gBAAgB,CAAC,KAAK,MAAM,wBAAwB;AAC1D,MAAI,iBAAiB,WAAW,QAAQ;AACpC,UAAM,UAAU,IAAI,QAAQ;AAC5B,UAAM,eAAe,MAAM,MAAM,WAAW,IAAI;AAChD,QAAI,cAAc;AAEd,YAAM,aAAa,MAAM,SAAS,KAAK;AAAA,IAC3C,OAAO;AAEH,YAAM,UAAU,IAAI,QAAQ,GAAG;AAC/B,YAAM,QAAQ,MAAM,OAAO;AAAA,IAC/B;AAAA,EACJ;AAEA,uBAAqB;AAErB,SAAO,EAAE,KAAK,OAAO;AACzB;",
5
+ "names": []
6
+ }
@@ -25,13 +25,15 @@ function fatal(why, error) {
25
25
  async function findFile(name) {
26
26
  let dir = dirname(fileURLToPath(import.meta.url));
27
27
  while (true) {
28
- const path = resolve(dir, name);
29
- try {
30
- await stat(path);
31
- return path;
32
- } catch (e) {
33
- if (e.code !== "ENOENT") {
34
- fatal("there was an unexpected error searching the filesystem", e);
28
+ if (!dir.endsWith("/dist/esm")) {
29
+ const path = resolve(dir, name);
30
+ try {
31
+ await stat(path);
32
+ return path;
33
+ } catch (e) {
34
+ if (e.code !== "ENOENT") {
35
+ fatal("there was an unexpected error searching the filesystem", e);
36
+ }
35
37
  }
36
38
  }
37
39
 
@@ -88,7 +90,7 @@ async function bootstrap() {
88
90
  if (code === 0) {
89
91
  resolve();
90
92
  } else {
91
- fatal(`esbuild existing with code ${code}`);
93
+ fatal(`esbuild exited with code ${code}`);
92
94
  }
93
95
  });
94
96
  });
@@ -19,7 +19,8 @@ export declare class Progress {
19
19
  warn(text: string): void;
20
20
  shutdown(): void;
21
21
  refresh(): void;
22
- run(what: string, fn: () => void | Promise<void>): Promise<void>;
22
+ subtask(text: string, fn: () => Promise<void>): Promise<void>;
23
+ run<T>(what: string, fn: () => T | Promise<T>): Promise<T>;
23
24
  }
24
25
  export declare namespace Progress {
25
26
  enum Status {
@@ -1 +1 @@
1
- {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../src/util/progress.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAmEvC,qBAAa,QAAQ;;IACjB,MAAM,kBAA2B;;IAUjC,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;IAsBnC,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,QAAQ;IAQR,OAAO;IAuBD,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAsBzD;AAED,yBAAiB,QAAQ,CAAC;IACtB,KAAY,MAAM;QACd,OAAO,YAAY;QACnB,OAAO,YAAY;QACnB,OAAO,YAAY;QACnB,OAAO,YAAY;KACtB;CACJ"}
1
+ {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../src/util/progress.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAmEvC,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;IA0BnC,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,QAAQ;IAQR,OAAO;IAMD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC;IA2B7C,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAwBtD;AAED,yBAAiB,QAAQ,CAAC;IACtB,KAAY,MAAM;QACd,OAAO,YAAY;QACnB,OAAO,YAAY;QACnB,OAAO,YAAY;QACnB,OAAO,YAAY;KACtB;CACJ"}
@@ -61,6 +61,7 @@ class Progress {
61
61
  #refreshInterval;
62
62
  #spinnerPosition = 0;
63
63
  #spinnerWindow;
64
+ #subtasks = Array();
64
65
  constructor() {
65
66
  }
66
67
  emphasize(text) {
@@ -103,7 +104,8 @@ class Progress {
103
104
  if (!this.#ongoingText) {
104
105
  return;
105
106
  }
106
- writeStatus(` ${colors.yellow(this.#spinner)} ${this.#ongoingText}`, true);
107
+ const subtask = this.#subtasks.length ? colors.dim(` (${colors.dim(this.#subtasks[this.#subtasks.length - 1])})`) : "";
108
+ writeStatus(` ${colors.yellow(this.#spinner)} ${this.#ongoingText}${subtask}`, true);
107
109
  }
108
110
  success(text) {
109
111
  this.status = Progress.Status.Success;
@@ -137,6 +139,14 @@ class Progress {
137
139
  this.#writeOngoing();
138
140
  }
139
141
  }
142
+ async subtask(text, fn) {
143
+ this.#subtasks.push(text);
144
+ try {
145
+ await fn();
146
+ } finally {
147
+ this.#subtasks.pop();
148
+ }
149
+ }
140
150
  #updateSpinner() {
141
151
  if (!stdout.isTTY) {
142
152
  return false;
@@ -152,13 +162,15 @@ class Progress {
152
162
  }
153
163
  async run(what, fn) {
154
164
  this.update(what);
165
+ let result;
155
166
  try {
156
- await fn();
167
+ result = await fn();
157
168
  } catch (e) {
158
169
  this.failure(what);
159
170
  throw e;
160
171
  }
161
172
  this.success(what);
173
+ return result;
162
174
  }
163
175
  get #duration() {
164
176
  let ms = this.#start ? (/* @__PURE__ */ new Date()).getTime() - this.#start : 0;
@@ -201,4 +213,4 @@ function filterAnsi(str, len) {
201
213
  export {
202
214
  Progress
203
215
  };
204
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3V0aWwvcHJvZ3Jlc3MudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDIyLTIwMjQgTWF0dGVyLmpzIEF1dGhvcnNcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG4gKi9cblxuaW1wb3J0IGNvbG9ycyBmcm9tIFwiYW5zaS1jb2xvcnNcIjtcbmltcG9ydCB7IHN0ZGVyciwgc3Rkb3V0IH0gZnJvbSBcInByb2Nlc3NcIjtcbmltcG9ydCB7IFBhY2thZ2UgfSBmcm9tIFwiLi9wYWNrYWdlLmpzXCI7XG5cbmNvbnN0IENMRUFSID0gXCJcXHgxYltLXCI7XG5jb25zdCBTUElOTkVSID0gXCJcdTI1RDBcdTI1RDNcdTI1RDFcdTI1RDJcIjsgLy9cIlx1Mjg1Q1x1MjgxNFx1MjgyMlx1MjhBM1wiOyAvL1tcIlx1MjZBQlx1RkUwRVwiLCBcIlx1MjZBQVx1RkUwRVwiXTsgXCJcdTI4NDhcdTI4MTRcdTI4MjJcdTI4ODFcIjtcbmNvbnN0IFNQSU5ORVJfSU5URVJWQUwgPSAxMDA7XG5cbmZ1bmN0aW9uIHBhY2thZ2VJZGVudGl0eShwa2c6IFBhY2thZ2UpIHtcbiAgICBsZXQgaWRlbnRpdHkgPSBjb2xvcnMuYm9sZChwa2cuanNvbi5uYW1lKTtcbiAgICBpZiAocGtnLmpzb24udmVyc2lvbikge1xuICAgICAgICBpZGVudGl0eSA9IGAke2lkZW50aXR5fUAke3BrZy5qc29uLnZlcnNpb259YDtcbiAgICB9XG4gICAgcmV0dXJuIGlkZW50aXR5O1xufVxuXG4vKipcbiAqIEludGVyY2VwdCB3cml0ZXMgdG8gc3RkZXJyIGFuZCBzdGRvdXQgc28gd2UgY2FuIGVuc3VyZSBvdXIgdXBkYXRlcyBhcHBlYXIgb24gZGlmZmVyZW50IGxpbmVzIGZyb20gb3RoZXIgb3V0cHV0LlxuICovXG5jb25zdCB3cml0ZVN0YXR1cyA9ICgoKSA9PiB7XG4gICAgbGV0IGxhc3RTdGF0dXM6IHVuZGVmaW5lZCB8IHN0cmluZztcbiAgICBsZXQgbmVlZE5ld2xpbmUgPSBmYWxzZTtcblxuICAgIGZ1bmN0aW9uIGludGVyY2VwdChzdHJlYW06IE5vZGVKUy5Xcml0ZVN0cmVhbSkge1xuICAgICAgICBjb25zdCBhY3R1YWxXcml0ZSA9IHN0cmVhbS53cml0ZTtcbiAgICAgICAgc3RyZWFtLndyaXRlID0gKHBheWxvYWQ6IFVpbnQ4QXJyYXkgfCBzdHJpbmcsIC4uLnBhcmFtczogYW55W10pID0+IHtcbiAgICAgICAgICAgIGlmIChsYXN0U3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgYWN0dWFsV3JpdGUuY2FsbChzdHJlYW0sIFwiXFxuXCIpO1xuICAgICAgICAgICAgICAgIGxhc3RTdGF0dXMgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghcGF5bG9hZC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gUmVxdWlyZSBhIG5ld2xpbmUgZm9yIHN0YXR1cyB1cGRhdGVzIGFueSB0aW1lIHRoZSBjdXJzb3IgZG9lcyBub3QgZW5kIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBsaW5lXG4gICAgICAgICAgICBuZWVkTmV3bGluZSA9IHBheWxvYWRbcGF5bG9hZC5sZW5ndGggLSAxXSAhPT0gXCJcXG5cIiAmJiBwYXlsb2FkW3BheWxvYWQubGVuZ3RoIC0gMV0gIT09IFwiXFxyXCI7XG5cbiAgICAgICAgICAgIHJldHVybiBhY3R1YWxXcml0ZS5jYWxsKHN0cmVhbSwgcGF5bG9hZCwgLi4ucGFyYW1zKTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBpbnRlcmNlcHQoc3Rkb3V0KTtcbiAgICBpbnRlcmNlcHQoc3RkZXJyKTtcblxuICAgIHJldHVybiBmdW5jdGlvbiB3cml0ZVN0YXR1cyh0ZXh0OiBzdHJpbmcsIHdpbGxPdmVyd3JpdGUgPSBmYWxzZSkge1xuICAgICAgICBjb25zdCBjb2x1bW5zID0gcHJvY2Vzcy5zdGRvdXQuY29sdW1ucztcbiAgICAgICAgaWYgKHdpbGxPdmVyd3JpdGUgJiYgY29sdW1ucyAhPT0gdW5kZWZpbmVkICYmIHRleHQubGVuZ3RoID4gY29sdW1ucyAtIDIpIHtcbiAgICAgICAgICAgIHRleHQgPSBmaWx0ZXJBbnNpKHRleHQsIGNvbHVtbnMgLSAyKSArIFwiXHUyMDI2XCI7XG4gICAgICAgIH1cblxuICAgICAgICB0ZXh0ICs9IHdpbGxPdmVyd3JpdGUgPyBcIlxcclwiIDogXCJcXG5cIjtcbiAgICAgICAgaWYgKHRleHQgPT09IGxhc3RTdGF0dXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChsYXN0U3RhdHVzKSB7XG4gICAgICAgICAgICBsYXN0U3RhdHVzID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgc3Rkb3V0LndyaXRlKENMRUFSKTtcbiAgICAgICAgfSBlbHNlIGlmIChuZWVkTmV3bGluZSAmJiAhdGV4dC5zdGFydHNXaXRoKFwiXFxuXCIpKSB7XG4gICAgICAgICAgICBzdGRvdXQud3JpdGUoXCJcXG5cIik7XG4gICAgICAgIH1cblxuICAgICAgICBzdGRvdXQud3JpdGUodGV4dCk7XG5cbiAgICAgICAgbGFzdFN0YXR1cyA9IHRleHQ7XG4gICAgfTtcbn0pKCk7XG5cbmV4cG9ydCBjbGFzcyBQcm9ncmVzcyB7XG4gICAgc3RhdHVzID0gUHJvZ3Jlc3MuU3RhdHVzLlN0YXJ0dXA7XG4gICAgI29uZ29pbmdUZXh0Pzogc3RyaW5nO1xuICAgICNzdGFydD86IG51bWJlcjtcbiAgICAjc3Bpbm5lciA9IFwiXHUyOUQ3XCI7XG4gICAgI3JlZnJlc2hJbnRlcnZhbD86IFJldHVyblR5cGU8dHlwZW9mIHNldEludGVydmFsPjtcbiAgICAjc3Bpbm5lclBvc2l0aW9uID0gMDtcbiAgICAjc3Bpbm5lcldpbmRvdz86IG51bWJlcjtcblxuICAgIGNvbnN0cnVjdG9yKCkge31cblxuICAgIGVtcGhhc2l6ZSh0ZXh0OiB1bmtub3duKSB7XG4gICAgICAgIHJldHVybiBjb2xvcnMuYm9sZChgJHt0ZXh0fWApO1xuICAgIH1cblxuICAgIGRlZW1waGFzaXplKHRleHQ6IHVua25vd24pIHtcbiAgICAgICAgcmV0dXJuIGNvbG9ycy5kaW0oYCR7dGV4dH1gKTtcbiAgICB9XG5cbiAgICBza2lwKHdoeTogc3RyaW5nLCBwa2c6IFBhY2thZ2UpIHtcbiAgICAgICAgc3Rkb3V0LndyaXRlKGNvbG9ycy5kaW0oYFNraXAgJHtwYWNrYWdlSWRlbnRpdHkocGtnKX06ICR7d2h5fVxcblxcbmApKTtcbiAgICB9XG5cbiAgICBzdGFydHVwKHdoYXQ6IHN0cmluZywgcGtnT3JPdmVyd3JpdGU/OiBQYWNrYWdlIHwgYm9vbGVhbikge1xuICAgICAgICBpZiAocHJvY2Vzcy5zdGRvdXQuaXNUVFkpIHtcbiAgICAgICAgICAgIHRoaXMuI3VwZGF0ZVNwaW5uZXIoKTtcbiAgICAgICAgICAgIHRoaXMuI3JlZnJlc2hJbnRlcnZhbCA9IHNldEludGVydmFsKHRoaXMucmVmcmVzaC5iaW5kKHRoaXMpLCBTUElOTkVSX0lOVEVSVkFMKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc3RhdHVzID0gUHJvZ3Jlc3MuU3RhdHVzLlN0YXJ0dXA7XG4gICAgICAgIGlmIChwa2dPck92ZXJ3cml0ZSA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiBwa2dPck92ZXJ3cml0ZSA9PT0gXCJib29sZWFuXCIpIHtcbiAgICAgICAgICAgIHdyaXRlU3RhdHVzKHdoYXQsIHBrZ09yT3ZlcndyaXRlID8/IHRydWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgd3JpdGVTdGF0dXMoYCR7d2hhdH0gJHtwYWNrYWdlSWRlbnRpdHkocGtnT3JPdmVyd3JpdGUpfWApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlKHRleHQ6IHN0cmluZywgZXh0cmE/OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zdGF0dXMgPSBQcm9ncmVzcy5TdGF0dXMuT25nb2luZztcbiAgICAgICAgbGV0IGR1cmF0aW9uO1xuICAgICAgICBpZiAodGhpcy4jc3RhcnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy4jc3RhcnQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICAgICAgICAgIGR1cmF0aW9uID0gXCJcIjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGR1cmF0aW9uID0gdGhpcy4jZHVyYXRpb247XG4gICAgICAgIH1cbiAgICAgICAgZXh0cmEgPSBleHRyYSA9PT0gdW5kZWZpbmVkID8gXCJcIiA6IGAgJHtleHRyYX1gO1xuICAgICAgICB0aGlzLiNvbmdvaW5nVGV4dCA9IGAke3RleHR9ICR7ZHVyYXRpb259JHtleHRyYX1gO1xuICAgICAgICB0aGlzLiN3cml0ZU9uZ29pbmcoKTtcbiAgICB9XG5cbiAgICAjd3JpdGVPbmdvaW5nKCkge1xuICAgICAgICBpZiAoIXRoaXMuI29uZ29pbmdUZXh0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB3cml0ZVN0YXR1cyhgICAke2NvbG9ycy55ZWxsb3codGhpcy4jc3Bpbm5lcil9ICR7dGhpcy4jb25nb2luZ1RleHR9YCwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgc3VjY2Vzcyh0ZXh0OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zdGF0dXMgPSBQcm9ncmVzcy5TdGF0dXMuU3VjY2VzcztcbiAgICAgICAgd3JpdGVTdGF0dXMoYCAgJHtjb2xvcnMuZ3JlZW4oXCJcdTI3MTNcIil9ICR7dGV4dH0gJHt0aGlzLiNkdXJhdGlvbn1gKTtcbiAgICAgICAgdGhpcy4jc3RhcnQgPSB0aGlzLiNvbmdvaW5nVGV4dCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBmYWlsdXJlKHRleHQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLnN0YXR1cyA9IFByb2dyZXNzLlN0YXR1cy5GYWlsdXJlO1xuICAgICAgICB3cml0ZVN0YXR1cyhgICAke2NvbG9ycy5yZWRCcmlnaHQoXCJcdTI3MTdcIil9ICR7dGV4dH0gJHt0aGlzLiNkdXJhdGlvbn1gKTtcbiAgICAgICAgdGhpcy4jc3RhcnQgPSB0aGlzLiNvbmdvaW5nVGV4dCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpbmZvKGxhYmVsOiBzdHJpbmcsIHZhbHVlPzogYW55KSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgbGFiZWwgPSBgJHtjb2xvcnMuZGltKGxhYmVsKX0gJHt2YWx1ZX1gO1xuICAgICAgICB9XG4gICAgICAgIHdyaXRlU3RhdHVzKGAgICR7Y29sb3JzLmRpbShcIlx1MjAyM1wiKX0gJHtsYWJlbH1gKTtcbiAgICB9XG5cbiAgICB3YXJuKHRleHQ6IHN0cmluZykge1xuICAgICAgICBzdGRvdXQud3JpdGUoYCAgICAke2NvbG9ycy55ZWxsb3coXCJXYXJuaW5nOlwiKX0gJHt0ZXh0fVxcbmApO1xuICAgIH1cblxuICAgIHNodXRkb3duKCkge1xuICAgICAgICBpZiAodGhpcy4jcmVmcmVzaEludGVydmFsKSB7XG4gICAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMuI3JlZnJlc2hJbnRlcnZhbCk7XG4gICAgICAgICAgICB0aGlzLiNyZWZyZXNoSW50ZXJ2YWwgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgd3JpdGVTdGF0dXMoXCJcIik7XG4gICAgfVxuXG4gICAgcmVmcmVzaCgpIHtcbiAgICAgICAgaWYgKHRoaXMuI3VwZGF0ZVNwaW5uZXIoKSkge1xuICAgICAgICAgICAgdGhpcy4jd3JpdGVPbmdvaW5nKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjdXBkYXRlU3Bpbm5lcigpIHtcbiAgICAgICAgaWYgKCFzdGRvdXQuaXNUVFkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHdpbmRvdyA9IE1hdGguZmxvb3IobmV3IERhdGUoKS5nZXRUaW1lKCkgLyBTUElOTkVSX0lOVEVSVkFMKTtcbiAgICAgICAgaWYgKHRoaXMuI3NwaW5uZXJXaW5kb3cgPT09IHdpbmRvdykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuI3NwaW5uZXJXaW5kb3cgPSB3aW5kb3c7XG5cbiAgICAgICAgdGhpcy4jc3Bpbm5lclBvc2l0aW9uID0gKHRoaXMuI3NwaW5uZXJQb3NpdGlvbiArIDEpICUgU1BJTk5FUi5sZW5ndGg7XG4gICAgICAgIHRoaXMuI3NwaW5uZXIgPSBTUElOTkVSW3RoaXMuI3NwaW5uZXJQb3NpdGlvbl07XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgYXN5bmMgcnVuKHdoYXQ6IHN0cmluZywgZm46ICgpID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+KSB7XG4gICAgICAgIHRoaXMudXBkYXRlKHdoYXQpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgZm4oKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhpcy5mYWlsdXJlKHdoYXQpO1xuICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN1Y2Nlc3Mod2hhdCk7XG4gICAgfVxuXG4gICAgZ2V0ICNkdXJhdGlvbigpIHtcbiAgICAgICAgbGV0IG1zID0gdGhpcy4jc3RhcnQgPyBuZXcgRGF0ZSgpLmdldFRpbWUoKSAtIHRoaXMuI3N0YXJ0IDogMDtcbiAgICAgICAgaWYgKG1zIDwgMTAwMCkge1xuICAgICAgICAgICAgbXMgPSBNYXRoLnJvdW5kKG1zIC8gMTApIC8gMTAwO1xuICAgICAgICB9IGVsc2UgaWYgKG1zIDwgMTAwMDApIHtcbiAgICAgICAgICAgIG1zID0gTWF0aC5yb3VuZChtcyAvIDEwMCkgLyAxMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1zID0gTWF0aC50cnVuYyhtcyAvIDEwMDApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb2xvcnMuZGltLnllbGxvdyhgKCR7bXN9cylgKTtcbiAgICB9XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgUHJvZ3Jlc3Mge1xuICAgIGV4cG9ydCBlbnVtIFN0YXR1cyB7XG4gICAgICAgIFN0YXJ0dXAgPSBcInN0YXJ0dXBcIixcbiAgICAgICAgT25nb2luZyA9IFwib25nb2luZ1wiLFxuICAgICAgICBTdWNjZXNzID0gXCJzdWNjZXNzXCIsXG4gICAgICAgIEZhaWx1cmUgPSBcImZhaWx1cmVcIixcbiAgICB9XG59XG5cbi8vIFNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yNjIzODU1My9ob3ctY2FuLWktdHJ1bmNhdGUtYS1zdHJpbmctdG8tYS1tYXhpbXVtLWxlbmd0aC13aXRob3V0LWJyZWFraW5nLWFuc2ktZXNjYXBlLWNvZFxuLy8gVE9ETyAtIHRoaXMgZnVuY3Rpb24gZG9lc24ndCBzZWVtIGVudGlyZWx5IGNvcnJlY3QsIHN0aWxsIHNlZW1zIHRvIHRydW5jYXRlIHRvbyBtdWNoXG4vLyBDcm9wIHRoZSBsZW5ndGggb2YgbGluZXMsIEFOU0kgZXNjYXBlIGNvZGUgYXdhcmVcbi8vIEFsd2F5cyBvdXRwdXRzIGV2ZXJ5IGVzY2FwZSBjaGFyLCByZWdhcmRsZXNzIG9mIGxlbmd0aCAoc28gd2UgYWx3YXlzIGVuZCB1cCB3aXRoIGEgc2FuZSBzdGF0ZSlcbi8vIFZpc2libGUgY2hhcmFjdGVycyBhcmUgZmlsdGVyZWQgb3V0IG9uY2UgbGVuZ3RoIGlzIGV4Y2VlZGVkXG5mdW5jdGlvbiBmaWx0ZXJBbnNpKHN0cjogc3RyaW5nLCBsZW46IG51bWJlcikge1xuICAgIGlmICghbGVuIHx8IGxlbiA8IDEwKSByZXR1cm4gc3RyOyAvLyBwcm9iYWJseSBub3QgYSB2YWxpZCBjb25zb2xlIC0tIHNlbmQgYmFjayB0aGUgd2hvbGUgbGluZVxuICAgIGxldCBjb3VudCA9IDAsIC8vIG51bWJlciBvZiB2aXNpYmxlIGNoYXJzIG9uIGxpbmUgc28gZmFyXG4gICAgICAgIGVzYyA9IGZhbHNlLCAvLyBpbiBhbiBlc2NhcGUgc2VxdWVuY2VcbiAgICAgICAgbG9uZ2VzYyA9IGZhbHNlOyAvLyBpbiBhIG11bHRpLWNoYXJhY3RlciBlc2NhcGUgc2VxdWVuY2VcbiAgICBsZXQgb3V0cCA9IHRydWU7IC8vIHNob3VsZCBvdXRwdXQgdGhpcyBjaGFyYWN0ZXJcbiAgICByZXR1cm4gc3RyXG4gICAgICAgIC5zcGxpdChcIlwiKVxuICAgICAgICAuZmlsdGVyKGZ1bmN0aW9uIChjKSB7XG4gICAgICAgICAgICAvLyBmaWx0ZXIgY2hhcmFjdGVycy4uLlxuICAgICAgICAgICAgaWYgKGVzYyAmJiAhbG9uZ2VzYyAmJiBjID09IFwiW1wiKSBsb25nZXNjID0gdHJ1ZTsgLy8gaGF2ZSBzZWVuIGFuIGVzY2FwZSwgbm93ICdbJywgc3RhcnQgbXVsdGktY2hhciBlc2NhcGVcbiAgICAgICAgICAgIGlmIChjID09IFwiXFx4MWJcIikgZXNjID0gdHJ1ZTsgLy8gc3RhcnQgb2YgZXNjYXBlIHNlcXVlbmNlXG5cbiAgICAgICAgICAgIG91dHAgPSBjb3VudCA8IGxlbiB8fCBlc2M7IC8vIGlmIGxlbmd0aCBleGNlZWRlZCwgZG9uJ3Qgb3V0cHV0IG5vbi1lc2NhcGUgY2hhcnNcbiAgICAgICAgICAgIGlmICghZXNjICYmICFsb25nZXNjKSBjb3VudCsrOyAvLyBpZiBub3QgaW4gZXNjYXBlLCBjb3VudCB2aXNpYmxlIGNoYXJcblxuICAgICAgICAgICAgaWYgKGVzYyAmJiAhbG9uZ2VzYyAmJiBjICE9IFwiXFx4MWJcIikgZXNjID0gZmFsc2U7IC8vIG91dCBvZiBzaW5nbGUgY2hhciBlc2NhcGVcbiAgICAgICAgICAgIGlmIChsb25nZXNjICYmIGMgIT0gXCJbXCIgJiYgYyA+PSBcIkBcIiAmJiBjIDw9IFwiflwiKSB7XG4gICAgICAgICAgICAgICAgZXNjID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgbG9uZ2VzYyA9IGZhbHNlO1xuICAgICAgICAgICAgfSAvLyBlbmQgb2YgbXVsdGktY2hhciBlc2NhcGVcblxuICAgICAgICAgICAgcmV0dXJuIG91dHA7IC8vIHJlc3VsdCBmb3IgZmlsdGVyXG4gICAgICAgIH0pXG4gICAgICAgIC5qb2luKFwiXCIpOyAvLyBnbHVlIGNoYXJzIGJhY2sgaW50byBzdHJpbmdcbn1cbiJdLAogICJtYXBwaW5ncyI6ICJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQSxPQUFPLFlBQVk7QUFDbkIsU0FBUyxRQUFRLGNBQWM7QUFHL0IsTUFBTSxRQUFRO0FBQ2QsTUFBTSxVQUFVO0FBQ2hCLE1BQU0sbUJBQW1CO0FBRXpCLFNBQVMsZ0JBQWdCLEtBQWM7QUFDbkMsTUFBSSxXQUFXLE9BQU8sS0FBSyxJQUFJLEtBQUssSUFBSTtBQUN4QyxNQUFJLElBQUksS0FBSyxTQUFTO0FBQ2xCLGVBQVcsR0FBRyxRQUFRLElBQUksSUFBSSxLQUFLLE9BQU87QUFBQSxFQUM5QztBQUNBLFNBQU87QUFDWDtBQUtBLE1BQU0sZUFBZSxNQUFNO0FBQ3ZCLE1BQUk7QUFDSixNQUFJLGNBQWM7QUFFbEIsV0FBUyxVQUFVLFFBQTRCO0FBQzNDLFVBQU0sY0FBYyxPQUFPO0FBQzNCLFdBQU8sUUFBUSxDQUFDLFlBQWlDLFdBQWtCO0FBQy9ELFVBQUksWUFBWTtBQUNaLG9CQUFZLEtBQUssUUFBUSxJQUFJO0FBQzdCLHFCQUFhO0FBQUEsTUFDakI7QUFFQSxVQUFJLENBQUMsUUFBUSxRQUFRO0FBQ2pCLGVBQU87QUFBQSxNQUNYO0FBR0Esb0JBQWMsUUFBUSxRQUFRLFNBQVMsQ0FBQyxNQUFNLFFBQVEsUUFBUSxRQUFRLFNBQVMsQ0FBQyxNQUFNO0FBRXRGLGFBQU8sWUFBWSxLQUFLLFFBQVEsU0FBUyxHQUFHLE1BQU07QUFBQSxJQUN0RDtBQUFBLEVBQ0o7QUFFQSxZQUFVLE1BQU07QUFDaEIsWUFBVSxNQUFNO0FBRWhCLFNBQU8sU0FBU0EsYUFBWSxNQUFjLGdCQUFnQixPQUFPO0FBQzdELFVBQU0sVUFBVSxRQUFRLE9BQU87QUFDL0IsUUFBSSxpQkFBaUIsWUFBWSxV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
216
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3V0aWwvcHJvZ3Jlc3MudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDIyLTIwMjQgTWF0dGVyLmpzIEF1dGhvcnNcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG4gKi9cblxuaW1wb3J0IGNvbG9ycyBmcm9tIFwiYW5zaS1jb2xvcnNcIjtcbmltcG9ydCB7IHN0ZGVyciwgc3Rkb3V0IH0gZnJvbSBcInByb2Nlc3NcIjtcbmltcG9ydCB7IFBhY2thZ2UgfSBmcm9tIFwiLi9wYWNrYWdlLmpzXCI7XG5cbmNvbnN0IENMRUFSID0gXCJcXHgxYltLXCI7XG5jb25zdCBTUElOTkVSID0gXCJcdTI1RDBcdTI1RDNcdTI1RDFcdTI1RDJcIjsgLy9cIlx1Mjg1Q1x1MjgxNFx1MjgyMlx1MjhBM1wiOyAvL1tcIlx1MjZBQlx1RkUwRVwiLCBcIlx1MjZBQVx1RkUwRVwiXTsgXCJcdTI4NDhcdTI4MTRcdTI4MjJcdTI4ODFcIjtcbmNvbnN0IFNQSU5ORVJfSU5URVJWQUwgPSAxMDA7XG5cbmZ1bmN0aW9uIHBhY2thZ2VJZGVudGl0eShwa2c6IFBhY2thZ2UpIHtcbiAgICBsZXQgaWRlbnRpdHkgPSBjb2xvcnMuYm9sZChwa2cuanNvbi5uYW1lKTtcbiAgICBpZiAocGtnLmpzb24udmVyc2lvbikge1xuICAgICAgICBpZGVudGl0eSA9IGAke2lkZW50aXR5fUAke3BrZy5qc29uLnZlcnNpb259YDtcbiAgICB9XG4gICAgcmV0dXJuIGlkZW50aXR5O1xufVxuXG4vKipcbiAqIEludGVyY2VwdCB3cml0ZXMgdG8gc3RkZXJyIGFuZCBzdGRvdXQgc28gd2UgY2FuIGVuc3VyZSBvdXIgdXBkYXRlcyBhcHBlYXIgb24gZGlmZmVyZW50IGxpbmVzIGZyb20gb3RoZXIgb3V0cHV0LlxuICovXG5jb25zdCB3cml0ZVN0YXR1cyA9ICgoKSA9PiB7XG4gICAgbGV0IGxhc3RTdGF0dXM6IHVuZGVmaW5lZCB8IHN0cmluZztcbiAgICBsZXQgbmVlZE5ld2xpbmUgPSBmYWxzZTtcblxuICAgIGZ1bmN0aW9uIGludGVyY2VwdChzdHJlYW06IE5vZGVKUy5Xcml0ZVN0cmVhbSkge1xuICAgICAgICBjb25zdCBhY3R1YWxXcml0ZSA9IHN0cmVhbS53cml0ZTtcbiAgICAgICAgc3RyZWFtLndyaXRlID0gKHBheWxvYWQ6IFVpbnQ4QXJyYXkgfCBzdHJpbmcsIC4uLnBhcmFtczogYW55W10pID0+IHtcbiAgICAgICAgICAgIGlmIChsYXN0U3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgYWN0dWFsV3JpdGUuY2FsbChzdHJlYW0sIFwiXFxuXCIpO1xuICAgICAgICAgICAgICAgIGxhc3RTdGF0dXMgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghcGF5bG9hZC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gUmVxdWlyZSBhIG5ld2xpbmUgZm9yIHN0YXR1cyB1cGRhdGVzIGFueSB0aW1lIHRoZSBjdXJzb3IgZG9lcyBub3QgZW5kIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBsaW5lXG4gICAgICAgICAgICBuZWVkTmV3bGluZSA9IHBheWxvYWRbcGF5bG9hZC5sZW5ndGggLSAxXSAhPT0gXCJcXG5cIiAmJiBwYXlsb2FkW3BheWxvYWQubGVuZ3RoIC0gMV0gIT09IFwiXFxyXCI7XG5cbiAgICAgICAgICAgIHJldHVybiBhY3R1YWxXcml0ZS5jYWxsKHN0cmVhbSwgcGF5bG9hZCwgLi4ucGFyYW1zKTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBpbnRlcmNlcHQoc3Rkb3V0KTtcbiAgICBpbnRlcmNlcHQoc3RkZXJyKTtcblxuICAgIHJldHVybiBmdW5jdGlvbiB3cml0ZVN0YXR1cyh0ZXh0OiBzdHJpbmcsIHdpbGxPdmVyd3JpdGUgPSBmYWxzZSkge1xuICAgICAgICBjb25zdCBjb2x1bW5zID0gcHJvY2Vzcy5zdGRvdXQuY29sdW1ucztcbiAgICAgICAgaWYgKHdpbGxPdmVyd3JpdGUgJiYgY29sdW1ucyAhPT0gdW5kZWZpbmVkICYmIHRleHQubGVuZ3RoID4gY29sdW1ucyAtIDIpIHtcbiAgICAgICAgICAgIHRleHQgPSBmaWx0ZXJBbnNpKHRleHQsIGNvbHVtbnMgLSAyKSArIFwiXHUyMDI2XCI7XG4gICAgICAgIH1cblxuICAgICAgICB0ZXh0ICs9IHdpbGxPdmVyd3JpdGUgPyBcIlxcclwiIDogXCJcXG5cIjtcbiAgICAgICAgaWYgKHRleHQgPT09IGxhc3RTdGF0dXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChsYXN0U3RhdHVzKSB7XG4gICAgICAgICAgICBsYXN0U3RhdHVzID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgc3Rkb3V0LndyaXRlKENMRUFSKTtcbiAgICAgICAgfSBlbHNlIGlmIChuZWVkTmV3bGluZSAmJiAhdGV4dC5zdGFydHNXaXRoKFwiXFxuXCIpKSB7XG4gICAgICAgICAgICBzdGRvdXQud3JpdGUoXCJcXG5cIik7XG4gICAgICAgIH1cblxuICAgICAgICBzdGRvdXQud3JpdGUodGV4dCk7XG5cbiAgICAgICAgbGFzdFN0YXR1cyA9IHRleHQ7XG4gICAgfTtcbn0pKCk7XG5cbmV4cG9ydCBjbGFzcyBQcm9ncmVzcyB7XG4gICAgc3RhdHVzID0gUHJvZ3Jlc3MuU3RhdHVzLlN0YXJ0dXA7XG4gICAgI29uZ29pbmdUZXh0Pzogc3RyaW5nO1xuICAgICNzdGFydD86IG51bWJlcjtcbiAgICAjc3Bpbm5lciA9IFwiXHUyOUQ3XCI7XG4gICAgI3JlZnJlc2hJbnRlcnZhbD86IFJldHVyblR5cGU8dHlwZW9mIHNldEludGVydmFsPjtcbiAgICAjc3Bpbm5lclBvc2l0aW9uID0gMDtcbiAgICAjc3Bpbm5lcldpbmRvdz86IG51bWJlcjtcbiAgICAjc3VidGFza3MgPSBBcnJheTxzdHJpbmc+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgICBlbXBoYXNpemUodGV4dDogdW5rbm93bikge1xuICAgICAgICByZXR1cm4gY29sb3JzLmJvbGQoYCR7dGV4dH1gKTtcbiAgICB9XG5cbiAgICBkZWVtcGhhc2l6ZSh0ZXh0OiB1bmtub3duKSB7XG4gICAgICAgIHJldHVybiBjb2xvcnMuZGltKGAke3RleHR9YCk7XG4gICAgfVxuXG4gICAgc2tpcCh3aHk6IHN0cmluZywgcGtnOiBQYWNrYWdlKSB7XG4gICAgICAgIHN0ZG91dC53cml0ZShjb2xvcnMuZGltKGBTa2lwICR7cGFja2FnZUlkZW50aXR5KHBrZyl9OiAke3doeX1cXG5cXG5gKSk7XG4gICAgfVxuXG4gICAgc3RhcnR1cCh3aGF0OiBzdHJpbmcsIHBrZ09yT3ZlcndyaXRlPzogUGFja2FnZSB8IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHByb2Nlc3Muc3Rkb3V0LmlzVFRZKSB7XG4gICAgICAgICAgICB0aGlzLiN1cGRhdGVTcGlubmVyKCk7XG4gICAgICAgICAgICB0aGlzLiNyZWZyZXNoSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCh0aGlzLnJlZnJlc2guYmluZCh0aGlzKSwgU1BJTk5FUl9JTlRFUlZBTCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnN0YXR1cyA9IFByb2dyZXNzLlN0YXR1cy5TdGFydHVwO1xuICAgICAgICBpZiAocGtnT3JPdmVyd3JpdGUgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgcGtnT3JPdmVyd3JpdGUgPT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgICAgICB3cml0ZVN0YXR1cyh3aGF0LCBwa2dPck92ZXJ3cml0ZSA/PyB0cnVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHdyaXRlU3RhdHVzKGAke3doYXR9ICR7cGFja2FnZUlkZW50aXR5KHBrZ09yT3ZlcndyaXRlKX1gKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZSh0ZXh0OiBzdHJpbmcsIGV4dHJhPzogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc3RhdHVzID0gUHJvZ3Jlc3MuU3RhdHVzLk9uZ29pbmc7XG4gICAgICAgIGxldCBkdXJhdGlvbjtcbiAgICAgICAgaWYgKHRoaXMuI3N0YXJ0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuI3N0YXJ0ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgICAgICAgICBkdXJhdGlvbiA9IFwiXCI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkdXJhdGlvbiA9IHRoaXMuI2R1cmF0aW9uO1xuICAgICAgICB9XG4gICAgICAgIGV4dHJhID0gZXh0cmEgPT09IHVuZGVmaW5lZCA/IFwiXCIgOiBgICR7ZXh0cmF9YDtcbiAgICAgICAgdGhpcy4jb25nb2luZ1RleHQgPSBgJHt0ZXh0fSAke2R1cmF0aW9ufSR7ZXh0cmF9YDtcbiAgICAgICAgdGhpcy4jd3JpdGVPbmdvaW5nKCk7XG4gICAgfVxuXG4gICAgI3dyaXRlT25nb2luZygpIHtcbiAgICAgICAgaWYgKCF0aGlzLiNvbmdvaW5nVGV4dCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3VidGFzayA9IHRoaXMuI3N1YnRhc2tzLmxlbmd0aFxuICAgICAgICAgICAgPyBjb2xvcnMuZGltKGAgKCR7Y29sb3JzLmRpbSh0aGlzLiNzdWJ0YXNrc1t0aGlzLiNzdWJ0YXNrcy5sZW5ndGggLSAxXSl9KWApXG4gICAgICAgICAgICA6IFwiXCI7XG5cbiAgICAgICAgd3JpdGVTdGF0dXMoYCAgJHtjb2xvcnMueWVsbG93KHRoaXMuI3NwaW5uZXIpfSAke3RoaXMuI29uZ29pbmdUZXh0fSR7c3VidGFza31gLCB0cnVlKTtcbiAgICB9XG5cbiAgICBzdWNjZXNzKHRleHQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLnN0YXR1cyA9IFByb2dyZXNzLlN0YXR1cy5TdWNjZXNzO1xuICAgICAgICB3cml0ZVN0YXR1cyhgICAke2NvbG9ycy5ncmVlbihcIlx1MjcxM1wiKX0gJHt0ZXh0fSAke3RoaXMuI2R1cmF0aW9ufWApO1xuICAgICAgICB0aGlzLiNzdGFydCA9IHRoaXMuI29uZ29pbmdUZXh0ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGZhaWx1cmUodGV4dDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc3RhdHVzID0gUHJvZ3Jlc3MuU3RhdHVzLkZhaWx1cmU7XG4gICAgICAgIHdyaXRlU3RhdHVzKGAgICR7Y29sb3JzLnJlZEJyaWdodChcIlx1MjcxN1wiKX0gJHt0ZXh0fSAke3RoaXMuI2R1cmF0aW9ufWApO1xuICAgICAgICB0aGlzLiNzdGFydCA9IHRoaXMuI29uZ29pbmdUZXh0ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGluZm8obGFiZWw6IHN0cmluZywgdmFsdWU/OiBhbnkpIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICBsYWJlbCA9IGAke2NvbG9ycy5kaW0obGFiZWwpfSAke3ZhbHVlfWA7XG4gICAgICAgIH1cbiAgICAgICAgd3JpdGVTdGF0dXMoYCAgJHtjb2xvcnMuZGltKFwiXHUyMDIzXCIpfSAke2xhYmVsfWApO1xuICAgIH1cblxuICAgIHdhcm4odGV4dDogc3RyaW5nKSB7XG4gICAgICAgIHN0ZG91dC53cml0ZShgICAgICR7Y29sb3JzLnllbGxvdyhcIldhcm5pbmc6XCIpfSAke3RleHR9XFxuYCk7XG4gICAgfVxuXG4gICAgc2h1dGRvd24oKSB7XG4gICAgICAgIGlmICh0aGlzLiNyZWZyZXNoSW50ZXJ2YWwpIHtcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy4jcmVmcmVzaEludGVydmFsKTtcbiAgICAgICAgICAgIHRoaXMuI3JlZnJlc2hJbnRlcnZhbCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICB3cml0ZVN0YXR1cyhcIlwiKTtcbiAgICB9XG5cbiAgICByZWZyZXNoKCkge1xuICAgICAgICBpZiAodGhpcy4jdXBkYXRlU3Bpbm5lcigpKSB7XG4gICAgICAgICAgICB0aGlzLiN3cml0ZU9uZ29pbmcoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIHN1YnRhc2sodGV4dDogc3RyaW5nLCBmbjogKCkgPT4gUHJvbWlzZTx2b2lkPikge1xuICAgICAgICB0aGlzLiNzdWJ0YXNrcy5wdXNoKHRleHQpO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCBmbigpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgdGhpcy4jc3VidGFza3MucG9wKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjdXBkYXRlU3Bpbm5lcigpIHtcbiAgICAgICAgaWYgKCFzdGRvdXQuaXNUVFkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHdpbmRvdyA9IE1hdGguZmxvb3IobmV3IERhdGUoKS5nZXRUaW1lKCkgLyBTUElOTkVSX0lOVEVSVkFMKTtcbiAgICAgICAgaWYgKHRoaXMuI3NwaW5uZXJXaW5kb3cgPT09IHdpbmRvdykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuI3NwaW5uZXJXaW5kb3cgPSB3aW5kb3c7XG5cbiAgICAgICAgdGhpcy4jc3Bpbm5lclBvc2l0aW9uID0gKHRoaXMuI3NwaW5uZXJQb3NpdGlvbiArIDEpICUgU1BJTk5FUi5sZW5ndGg7XG4gICAgICAgIHRoaXMuI3NwaW5uZXIgPSBTUElOTkVSW3RoaXMuI3NwaW5uZXJQb3NpdGlvbl07XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgYXN5bmMgcnVuPFQ+KHdoYXQ6IHN0cmluZywgZm46ICgpID0+IFQgfCBQcm9taXNlPFQ+KSB7XG4gICAgICAgIHRoaXMudXBkYXRlKHdoYXQpO1xuICAgICAgICBsZXQgcmVzdWx0OiBUO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgZm4oKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhpcy5mYWlsdXJlKHdoYXQpO1xuICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN1Y2Nlc3Mod2hhdCk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgZ2V0ICNkdXJhdGlvbigpIHtcbiAgICAgICAgbGV0IG1zID0gdGhpcy4jc3RhcnQgPyBuZXcgRGF0ZSgpLmdldFRpbWUoKSAtIHRoaXMuI3N0YXJ0IDogMDtcbiAgICAgICAgaWYgKG1zIDwgMTAwMCkge1xuICAgICAgICAgICAgbXMgPSBNYXRoLnJvdW5kKG1zIC8gMTApIC8gMTAwO1xuICAgICAgICB9IGVsc2UgaWYgKG1zIDwgMTAwMDApIHtcbiAgICAgICAgICAgIG1zID0gTWF0aC5yb3VuZChtcyAvIDEwMCkgLyAxMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1zID0gTWF0aC50cnVuYyhtcyAvIDEwMDApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb2xvcnMuZGltLnllbGxvdyhgKCR7bXN9cylgKTtcbiAgICB9XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgUHJvZ3Jlc3Mge1xuICAgIGV4cG9ydCBlbnVtIFN0YXR1cyB7XG4gICAgICAgIFN0YXJ0dXAgPSBcInN0YXJ0dXBcIixcbiAgICAgICAgT25nb2luZyA9IFwib25nb2luZ1wiLFxuICAgICAgICBTdWNjZXNzID0gXCJzdWNjZXNzXCIsXG4gICAgICAgIEZhaWx1cmUgPSBcImZhaWx1cmVcIixcbiAgICB9XG59XG5cbi8vIFNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yNjIzODU1My9ob3ctY2FuLWktdHJ1bmNhdGUtYS1zdHJpbmctdG8tYS1tYXhpbXVtLWxlbmd0aC13aXRob3V0LWJyZWFraW5nLWFuc2ktZXNjYXBlLWNvZFxuLy8gVE9ETyAtIHRoaXMgZnVuY3Rpb24gZG9lc24ndCBzZWVtIGVudGlyZWx5IGNvcnJlY3QsIHN0aWxsIHNlZW1zIHRvIHRydW5jYXRlIHRvbyBtdWNoXG4vLyBDcm9wIHRoZSBsZW5ndGggb2YgbGluZXMsIEFOU0kgZXNjYXBlIGNvZGUgYXdhcmVcbi8vIEFsd2F5cyBvdXRwdXRzIGV2ZXJ5IGVzY2FwZSBjaGFyLCByZWdhcmRsZXNzIG9mIGxlbmd0aCAoc28gd2UgYWx3YXlzIGVuZCB1cCB3aXRoIGEgc2FuZSBzdGF0ZSlcbi8vIFZpc2libGUgY2hhcmFjdGVycyBhcmUgZmlsdGVyZWQgb3V0IG9uY2UgbGVuZ3RoIGlzIGV4Y2VlZGVkXG5mdW5jdGlvbiBmaWx0ZXJBbnNpKHN0cjogc3RyaW5nLCBsZW46IG51bWJlcikge1xuICAgIGlmICghbGVuIHx8IGxlbiA8IDEwKSByZXR1cm4gc3RyOyAvLyBwcm9iYWJseSBub3QgYSB2YWxpZCBjb25zb2xlIC0tIHNlbmQgYmFjayB0aGUgd2hvbGUgbGluZVxuICAgIGxldCBjb3VudCA9IDAsIC8vIG51bWJlciBvZiB2aXNpYmxlIGNoYXJzIG9uIGxpbmUgc28gZmFyXG4gICAgICAgIGVzYyA9IGZhbHNlLCAvLyBpbiBhbiBlc2NhcGUgc2VxdWVuY2VcbiAgICAgICAgbG9uZ2VzYyA9IGZhbHNlOyAvLyBpbiBhIG11bHRpLWNoYXJhY3RlciBlc2NhcGUgc2VxdWVuY2VcbiAgICBsZXQgb3V0cCA9IHRydWU7IC8vIHNob3VsZCBvdXRwdXQgdGhpcyBjaGFyYWN0ZXJcbiAgICByZXR1cm4gc3RyXG4gICAgICAgIC5zcGxpdChcIlwiKVxuICAgICAgICAuZmlsdGVyKGZ1bmN0aW9uIChjKSB7XG4gICAgICAgICAgICAvLyBmaWx0ZXIgY2hhcmFjdGVycy4uLlxuICAgICAgICAgICAgaWYgKGVzYyAmJiAhbG9uZ2VzYyAmJiBjID09IFwiW1wiKSBsb25nZXNjID0gdHJ1ZTsgLy8gaGF2ZSBzZWVuIGFuIGVzY2FwZSwgbm93ICdbJywgc3RhcnQgbXVsdGktY2hhciBlc2NhcGVcbiAgICAgICAgICAgIGlmIChjID09IFwiXFx4MWJcIikgZXNjID0gdHJ1ZTsgLy8gc3RhcnQgb2YgZXNjYXBlIHNlcXVlbmNlXG5cbiAgICAgICAgICAgIG91dHAgPSBjb3VudCA8IGxlbiB8fCBlc2M7IC8vIGlmIGxlbmd0aCBleGNlZWRlZCwgZG9uJ3Qgb3V0cHV0IG5vbi1lc2NhcGUgY2hhcnNcbiAgICAgICAgICAgIGlmICghZXNjICYmICFsb25nZXNjKSBjb3VudCsrOyAvLyBpZiBub3QgaW4gZXNjYXBlLCBjb3VudCB2aXNpYmxlIGNoYXJcblxuICAgICAgICAgICAgaWYgKGVzYyAmJiAhbG9uZ2VzYyAmJiBjICE9IFwiXFx4MWJcIikgZXNjID0gZmFsc2U7IC8vIG91dCBvZiBzaW5nbGUgY2hhciBlc2NhcGVcbiAgICAgICAgICAgIGlmIChsb25nZXNjICYmIGMgIT0gXCJbXCIgJiYgYyA+PSBcIkBcIiAmJiBjIDw9IFwiflwiKSB7XG4gICAgICAgICAgICAgICAgZXNjID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgbG9uZ2VzYyA9IGZhbHNlO1xuICAgICAgICAgICAgfSAvLyBlbmQgb2YgbXVsdGktY2hhciBlc2NhcGVcblxuICAgICAgICAgICAgcmV0dXJuIG91dHA7IC8vIHJlc3VsdCBmb3IgZmlsdGVyXG4gICAgICAgIH0pXG4gICAgICAgIC5qb2luKFwiXCIpOyAvLyBnbHVlIGNoYXJzIGJhY2sgaW50byBzdHJpbmdcbn1cbiJdLAogICJtYXBwaW5ncyI6ICJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQSxPQUFPLFlBQVk7QUFDbkIsU0FBUyxRQUFRLGNBQWM7QUFHL0IsTUFBTSxRQUFRO0FBQ2QsTUFBTSxVQUFVO0FBQ2hCLE1BQU0sbUJBQW1CO0FBRXpCLFNBQVMsZ0JBQWdCLEtBQWM7QUFDbkMsTUFBSSxXQUFXLE9BQU8sS0FBSyxJQUFJLEtBQUssSUFBSTtBQUN4QyxNQUFJLElBQUksS0FBSyxTQUFTO0FBQ2xCLGVBQVcsR0FBRyxRQUFRLElBQUksSUFBSSxLQUFLLE9BQU87QUFBQSxFQUM5QztBQUNBLFNBQU87QUFDWDtBQUtBLE1BQU0s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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.11.9",
3
+ "version": "0.12.0-alpha.0-20241211-6d80d8b5c",
4
4
  "description": "Matter.js tooling",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -24,6 +24,11 @@
24
24
  "types": "./dist/cjs/index.d.ts",
25
25
  "default": "./dist/cjs/index.js"
26
26
  }
27
+ },
28
+ "./bootstrap": {
29
+ "import": {
30
+ "default": "./src/util/bootstrap.mjs"
31
+ }
27
32
  }
28
33
  },
29
34
  "main": "dist/cjs/index.js",
@@ -107,7 +107,7 @@ export class Project {
107
107
  return;
108
108
  }
109
109
 
110
- const declarations = (await this.pkg.glob(`dist/${path}/**/*.d.ts*`)).sort();
110
+ const declarations = (await this.pkg.glob(`dist/${path}/**/*.d.{ts,mts,cts}`)).sort();
111
111
  for (const file of declarations) {
112
112
  apiSha.update(file);
113
113
  apiSha.update(await readFile(file));
package/src/index.ts CHANGED
@@ -7,6 +7,7 @@
7
7
  export * from "./building/builder.js";
8
8
  export * from "./building/graph.js";
9
9
  export * from "./building/project.js";
10
+ export * from "./running/ensure-compiled.js";
10
11
  export * from "./util/commander.js";
11
12
  export * from "./util/file.js";
12
13
  export * from "./util/package.js";
@@ -5,11 +5,8 @@
5
5
  */
6
6
 
7
7
  import { dirname, resolve } from "path";
8
- import { exit } from "process";
9
- import { Builder } from "../building/builder.js";
10
- import { Graph } from "../building/graph.js";
11
- import { Project } from "../building/project.js";
12
- import { Package } from "../util/package.js";
8
+ import { exit, stderr, stdout } from "process";
9
+ import { ensureCompiled } from "./ensure-compiled.js";
13
10
  import { executeNode } from "./execute.js";
14
11
 
15
12
  /**
@@ -25,8 +22,38 @@ import { executeNode } from "./execute.js";
25
22
  * this by setting the environment variable MATTER_DIRECT_EXEC.
26
23
  */
27
24
  export async function main(argv = process.argv) {
28
- let script = argv[2];
29
- argv = argv.slice(3);
25
+ let directExec = !!process.env.MATTER_DIRECT_EXEC;
26
+
27
+ // Drop node and matter-run
28
+ argv = argv.slice(2);
29
+
30
+ // Process arguments to matter-run itself (very simple as of yet so just processing manually)
31
+ while (argv[0][0] === "-") {
32
+ const option = argv.shift();
33
+
34
+ switch (option) {
35
+ case "--clear":
36
+ console.clear();
37
+ break;
38
+
39
+ case "--direct":
40
+ directExec = true;
41
+ break;
42
+
43
+ default:
44
+ stderr.write(`Unrecognized option ${option}`);
45
+ break;
46
+
47
+ case "--help":
48
+ stdout.write(
49
+ "Usage: matter-run [--clear] [--direct] <SCRIPT> [ARG]...\nRun a Node.js script with source map support and automatic transpilation of TypeScript.",
50
+ );
51
+ break;
52
+ }
53
+ }
54
+
55
+ // Extract script name. argv is then the script's args
56
+ let script = argv.shift();
30
57
 
31
58
  if (script === undefined || script === "") {
32
59
  console.error("Error: Script name required");
@@ -45,34 +72,7 @@ export async function main(argv = process.argv) {
45
72
  dir = dirname(script);
46
73
  }
47
74
 
48
- const pkg = Package.forPath(dir);
49
-
50
- let format: "esm" | "cjs" | "none";
51
- if (!pkg.hasSrc) {
52
- format = "none";
53
- } else if (pkg.supportsEsm) {
54
- format = "esm";
55
- } else if (pkg.supportsCjs) {
56
- format = "cjs";
57
- } else {
58
- console.error("Error: Could not identify project format");
59
- exit(2);
60
- }
61
-
62
- // In development we currently build package and dependencies unconditionally before running
63
- const isDevelopment = !dir.match(/[\\/]node_modules[\\/]/);
64
- if (isDevelopment && format !== "none") {
65
- const builder = new Builder();
66
- const dependencies = await Graph.forProject(dir);
67
- if (dependencies) {
68
- // Project is in a workspace; build along with dependencies from the same workspace
69
- await dependencies.build(builder, false);
70
- } else {
71
- // Project is not in a workspace; only build the project
72
- const project = new Project(pkg);
73
- await builder.build(project);
74
- }
75
- }
75
+ const { format, pkg } = await ensureCompiled(dir);
76
76
 
77
77
  // Determine the actual script to run
78
78
  if (format !== "none") {
@@ -87,7 +87,7 @@ export async function main(argv = process.argv) {
87
87
  // If we run in the same process we cannot enable source maps so default mode is to fork. However for development
88
88
  // purposes it can be useful to avoid the intermediary process. In this case you can set "--enable-source-maps"
89
89
  // manually then set MATTER_DIRECT_EXEC
90
- if (process.env.MATTER_DIRECT_EXEC) {
90
+ if (directExec) {
91
91
  // This will not transpile properly to commonjs but we only use this module from ESM so that's OK
92
92
  await import(script);
93
93
  } else {
@@ -0,0 +1,57 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ import { exit } from "process";
8
+ import { fileURLToPath } from "url";
9
+ import { Builder } from "../building/builder.js";
10
+ import { Graph } from "../building/graph.js";
11
+ import { Project } from "../building/project.js";
12
+ import { Package } from "../util/package.js";
13
+
14
+ let compilationEnsured: undefined | Package;
15
+
16
+ export async function ensureCompiled(path: string) {
17
+ if (path.startsWith("file:")) {
18
+ path = fileURLToPath(path);
19
+ }
20
+
21
+ const pkg = Package.forPath(path);
22
+
23
+ let format: "esm" | "cjs" | "none";
24
+ if (!pkg.hasSrc) {
25
+ format = "none";
26
+ } else if (pkg.supportsEsm) {
27
+ format = "esm";
28
+ } else if (pkg.supportsCjs) {
29
+ format = "cjs";
30
+ } else {
31
+ console.error("Error: Could not identify project format");
32
+ exit(2);
33
+ }
34
+
35
+ if (compilationEnsured == pkg) {
36
+ return { pkg, format };
37
+ }
38
+
39
+ // In development we currently build package and dependencies unconditionally before running
40
+ const isDevelopment = !path.match(/[\\/]node_modules[\\/]/);
41
+ if (isDevelopment && format !== "none") {
42
+ const builder = new Builder();
43
+ const dependencies = await Graph.forProject(path);
44
+ if (dependencies) {
45
+ // Project is in a workspace; build along with dependencies from the same workspace
46
+ await dependencies.build(builder, false);
47
+ } else {
48
+ // Project is not in a workspace; only build the project
49
+ const project = new Project(pkg);
50
+ await builder.build(project);
51
+ }
52
+ }
53
+
54
+ compilationEnsured = pkg;
55
+
56
+ return { pkg, format };
57
+ }