@plugjs/plug 0.4.34 → 0.5.0

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 (93) hide show
  1. package/dist/build.cjs +14 -5
  2. package/dist/build.cjs.map +1 -1
  3. package/dist/build.d.ts +3 -1
  4. package/dist/build.mjs +14 -6
  5. package/dist/build.mjs.map +1 -1
  6. package/dist/cli.mjs +14 -11
  7. package/dist/cli.mjs.map +2 -2
  8. package/dist/fork.cjs +23 -18
  9. package/dist/fork.cjs.map +1 -1
  10. package/dist/fork.d.ts +1 -0
  11. package/dist/fork.mjs +23 -18
  12. package/dist/fork.mjs.map +1 -1
  13. package/dist/fs.cjs +1 -1
  14. package/dist/fs.cjs.map +1 -1
  15. package/dist/fs.d.ts +1 -1
  16. package/dist/fs.mjs +1 -1
  17. package/dist/fs.mjs.map +1 -1
  18. package/dist/helpers.d.ts +2 -2
  19. package/dist/index.cjs +1 -1
  20. package/dist/index.cjs.map +1 -1
  21. package/dist/index.d.ts +2 -2
  22. package/dist/index.mjs +2 -2
  23. package/dist/index.mjs.map +1 -1
  24. package/dist/logging/emit.cjs +31 -2
  25. package/dist/logging/emit.cjs.map +2 -2
  26. package/dist/logging/emit.d.ts +14 -0
  27. package/dist/logging/emit.mjs +29 -2
  28. package/dist/logging/emit.mjs.map +2 -2
  29. package/dist/logging/github.cjs +4 -7
  30. package/dist/logging/github.cjs.map +1 -1
  31. package/dist/logging/github.mjs +4 -7
  32. package/dist/logging/github.mjs.map +1 -1
  33. package/dist/logging/logger.cjs +24 -38
  34. package/dist/logging/logger.cjs.map +1 -1
  35. package/dist/logging/logger.d.ts +7 -7
  36. package/dist/logging/logger.mjs +25 -39
  37. package/dist/logging/logger.mjs.map +1 -1
  38. package/dist/logging/options.cjs +31 -30
  39. package/dist/logging/options.cjs.map +1 -1
  40. package/dist/logging/options.d.ts +2 -11
  41. package/dist/logging/options.mjs +31 -30
  42. package/dist/logging/options.mjs.map +1 -1
  43. package/dist/logging.cjs +5 -3
  44. package/dist/logging.cjs.map +1 -1
  45. package/dist/logging.mjs +5 -3
  46. package/dist/logging.mjs.map +1 -1
  47. package/dist/pipe.d.ts +1 -1
  48. package/dist/plugs/build.cjs +12 -4
  49. package/dist/plugs/build.cjs.map +1 -1
  50. package/dist/plugs/build.d.ts +8 -3
  51. package/dist/plugs/build.mjs +12 -4
  52. package/dist/plugs/build.mjs.map +1 -1
  53. package/dist/plugs/exec.cjs +1 -1
  54. package/dist/plugs/exec.cjs.map +1 -1
  55. package/dist/plugs/exec.mjs +1 -1
  56. package/dist/plugs/exec.mjs.map +1 -1
  57. package/dist/plugs/exports.cjs +3 -5
  58. package/dist/plugs/exports.cjs.map +1 -1
  59. package/dist/plugs/exports.mjs +3 -5
  60. package/dist/plugs/exports.mjs.map +1 -1
  61. package/dist/utils/ansi.cjs +39 -0
  62. package/dist/utils/ansi.cjs.map +6 -0
  63. package/dist/utils/ansi.d.ts +4 -0
  64. package/dist/utils/ansi.mjs +13 -0
  65. package/dist/utils/ansi.mjs.map +6 -0
  66. package/dist/utils/exec.cjs +10 -1
  67. package/dist/utils/exec.cjs.map +1 -1
  68. package/dist/utils/exec.mjs +11 -2
  69. package/dist/utils/exec.mjs.map +1 -1
  70. package/dist/utils.cjs +2 -0
  71. package/dist/utils.cjs.map +1 -1
  72. package/dist/utils.d.ts +1 -0
  73. package/dist/utils.mjs +1 -0
  74. package/dist/utils.mjs.map +1 -1
  75. package/package.json +1 -1
  76. package/src/build.ts +15 -6
  77. package/src/cli.mts +14 -9
  78. package/src/fork.ts +29 -23
  79. package/src/fs.ts +1 -1
  80. package/src/helpers.ts +2 -2
  81. package/src/index.ts +2 -2
  82. package/src/logging/emit.ts +65 -2
  83. package/src/logging/github.ts +4 -11
  84. package/src/logging/logger.ts +26 -44
  85. package/src/logging/options.ts +30 -38
  86. package/src/logging.ts +5 -3
  87. package/src/pipe.ts +1 -1
  88. package/src/plugs/build.ts +19 -5
  89. package/src/plugs/exec.ts +2 -2
  90. package/src/plugs/exports.ts +3 -4
  91. package/src/utils/ansi.ts +10 -0
  92. package/src/utils/exec.ts +7 -2
  93. package/src/utils.ts +1 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWA,mBAAsB;AAqBtB,cAAyB;AACzB,YAAuB;AACvB,YAAuB;AACvB,WAAsB;AACtB,SAAoB;AACpB,cAAyB;AACzB,YAAuB;AACvB,WAAsB;AACtB,YAAuB;AAGvB,qBAA+F;AAC/F,qBAA2C;AAG3C,wBAAc,wBA/Cd;AAgDA,wBAAc,0BAhDd;AAiDA,wBAAc,wBAjDd;AAkDA,wBAAc,wBAlDd;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWA,mBAAsB;AAqBtB,cAAyB;AACzB,YAAuB;AACvB,YAAuB;AACvB,WAAsB;AACtB,SAAoB;AACpB,cAAyB;AACzB,YAAuB;AACvB,WAAsB;AACtB,YAAuB;AAGvB,qBAA2C;AAC3C,qBAA+F;AAG/F,wBAAc,wBA/Cd;AAgDA,wBAAc,0BAhDd;AAiDA,wBAAc,wBAjDd;AAkDA,wBAAc,wBAlDd;",
5
5
  "names": []
6
6
  }
package/dist/index.d.ts CHANGED
@@ -29,8 +29,8 @@ export * as logging from './logging';
29
29
  export * as paths from './paths';
30
30
  export * as pipe from './pipe';
31
31
  export * as utils from './utils';
32
- export { banner, log, $ms, $p, $t, $blu, $cyn, $grn, $gry, $mgt, $red, $und, $wht, $ylw } from './logging';
33
- export { assert, fail, BuildFailure } from './asserts';
32
+ export { BuildFailure, assert, fail } from './asserts';
33
+ export { $blu, $cyn, $grn, $gry, $mgt, $ms, $p, $red, $t, $und, $wht, $ylw, banner, log } from './logging';
34
34
  export * from './build';
35
35
  export * from './helpers';
36
36
  export * from './plugs';
package/dist/index.mjs CHANGED
@@ -9,8 +9,8 @@ import * as logging from "./logging.mjs";
9
9
  import * as paths from "./paths.mjs";
10
10
  import * as pipe from "./pipe.mjs";
11
11
  import * as utils from "./utils.mjs";
12
- import { banner, log, $ms, $p, $t, $blu, $cyn, $grn, $gry, $mgt, $red, $und, $wht, $ylw } from "./logging.mjs";
13
- import { assert, fail, BuildFailure } from "./asserts.mjs";
12
+ import { BuildFailure, assert, fail } from "./asserts.mjs";
13
+ import { $blu, $cyn, $grn, $gry, $mgt, $ms, $p, $red, $t, $und, $wht, $ylw, banner, log } from "./logging.mjs";
14
14
  export * from "./build.mjs";
15
15
  export * from "./helpers.mjs";
16
16
  export * from "./plugs.mjs";
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts"],
4
- "mappings": ";AAWA,SAAS,aAAa;AAqBtB,YAAY,aAAa;AACzB,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB,YAAY,UAAU;AACtB,YAAY,QAAQ;AACpB,YAAY,aAAa;AACzB,YAAY,WAAW;AACvB,YAAY,UAAU;AACtB,YAAY,WAAW;AAGvB,SAAS,QAAQ,KAAK,KAAK,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,YAAY;AAC/F,SAAS,QAAQ,MAAM,oBAAoB;AAG3C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
4
+ "mappings": ";AAWA,SAAS,aAAa;AAqBtB,YAAY,aAAa;AACzB,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB,YAAY,UAAU;AACtB,YAAY,QAAQ;AACpB,YAAY,aAAa;AACzB,YAAY,WAAW;AACvB,YAAY,UAAU;AACtB,YAAY,WAAW;AAGvB,SAAS,cAAc,QAAQ,YAAY;AAC3C,SAAS,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,IAAI,MAAM,IAAI,MAAM,MAAM,MAAM,QAAQ,WAAW;AAG/F,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
5
5
  "names": []
6
6
  }
@@ -20,11 +20,14 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // logging/emit.ts
21
21
  var emit_exports = {};
22
22
  __export(emit_exports, {
23
+ emit: () => emit2,
23
24
  emitFancy: () => emitFancy,
25
+ emitForked: () => emitForked,
24
26
  emitPlain: () => emitPlain
25
27
  });
26
28
  module.exports = __toCommonJS(emit_exports);
27
29
  var import_node_util = require("node:util");
30
+ var import_asserts = require("../asserts.cjs");
28
31
  var import_colors = require("./colors.cjs");
29
32
  var import_levels = require("./levels.cjs");
30
33
  var import_options = require("./options.cjs");
@@ -33,13 +36,14 @@ var _output = import_options.logOptions.output;
33
36
  var _indentSize = import_options.logOptions.indentSize;
34
37
  var _taskLength = import_options.logOptions.taskLength;
35
38
  var _lineLength = import_options.logOptions.lineLength;
36
- var _inspectOptions = import_options.logOptions.inspectOptions;
39
+ var _inspectOptions = { ...import_options.logOptions.inspectOptions };
37
40
  import_options.logOptions.on("changed", (options) => {
38
41
  _output = options.output;
39
42
  _indentSize = options.indentSize;
40
43
  _taskLength = options.taskLength;
41
44
  _lineLength = options.lineLength;
42
- _inspectOptions = options.inspectOptions;
45
+ _inspectOptions = { ...options.inspectOptions };
46
+ _defaultEmitter = options.format === "fancy" ? emitFancy : options.format === "plain" ? emitPlain : (0, import_asserts.fail)(`Invalid log format "${import_options.logOptions.format}"`);
43
47
  });
44
48
  var emitFancy = (options, args) => {
45
49
  const { taskName, level, prefix = "", indent = 0 } = options;
@@ -97,9 +101,34 @@ var emitPlain = (options, args) => {
97
101
  `);
98
102
  }
99
103
  };
104
+ var emitForked = (options, args) => {
105
+ if (process.connected && process.send) {
106
+ const { taskName, level, prefix = "", indent = 0 } = options;
107
+ const linePrefix = "".padStart(indent * _indentSize) + prefix;
108
+ const breakLength = _lineLength - _taskLength - linePrefix.length - 20;
109
+ const message = (0, import_node_util.formatWithOptions)({ ..._inspectOptions, breakLength }, ...args);
110
+ const lines = message.split("\n").map((line) => `${linePrefix}${line}`);
111
+ process.send({ logLevel: level, taskName, lines });
112
+ } else {
113
+ _defaultEmitter(options, args);
114
+ }
115
+ };
116
+ var _defaultEmitter = import_options.logOptions.format === "fancy" ? emitFancy : import_options.logOptions.format === "plain" ? emitPlain : (0, import_asserts.fail)(`Invalid log format "${import_options.logOptions.format}"`);
117
+ var _emitter = _defaultEmitter;
118
+ var wrapper = function emit(options, args) {
119
+ _defaultEmitter(options, args);
120
+ };
121
+ var emit2 = Object.defineProperty(wrapper, "emitter", {
122
+ get: () => _emitter,
123
+ set: (emitter) => {
124
+ _emitter = emitter || _defaultEmitter;
125
+ }
126
+ });
100
127
  // Annotate the CommonJS export names for ESM import in node:
101
128
  0 && (module.exports = {
129
+ emit,
102
130
  emitFancy,
131
+ emitForked,
103
132
  emitPlain
104
133
  });
105
134
  //# sourceMappingURL=emit.cjs.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/logging/emit.ts"],
4
- "mappings": "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",
5
- "names": []
4
+ "mappings": "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",
5
+ "names": ["emit"]
6
6
  }
@@ -8,7 +8,21 @@ export interface LogEmitterOptions {
8
8
  }
9
9
  /** Emit a line (or multiple lines) of text to the log */
10
10
  export type LogEmitter = (options: LogEmitterOptions, args: any[]) => void;
11
+ /** A {@link LogEmitter} function configurable with a specific emitter */
12
+ export interface ConfigurableLogEmitter extends LogEmitter {
13
+ get emitter(): LogEmitter;
14
+ set emitter(emitter: LogEmitter | undefined);
15
+ }
11
16
  /** Emit in full colors with spinner support and whatnot! */
12
17
  export declare const emitFancy: LogEmitter;
13
18
  /** Emit in plain text (maybe with some colors?) */
14
19
  export declare const emitPlain: LogEmitter;
20
+ export interface ForkedLogMessage {
21
+ logLevel: LogLevel;
22
+ taskName: string;
23
+ lines: string[];
24
+ }
25
+ /** Emit to the parent process of a forked child, or to the default emitter */
26
+ export declare const emitForked: LogEmitter;
27
+ /** A _configurable_ {@link LogEmitter} where log should be emitted to */
28
+ export declare const emit: ConfigurableLogEmitter;
@@ -1,5 +1,6 @@
1
1
  // logging/emit.ts
2
2
  import { formatWithOptions } from "node:util";
3
+ import { fail } from "../asserts.mjs";
3
4
  import { $blu, $grn, $gry, $red, $t, $ylw } from "./colors.mjs";
4
5
  import { DEBUG, INFO, NOTICE, TRACE, WARN } from "./levels.mjs";
5
6
  import { logOptions } from "./options.mjs";
@@ -8,13 +9,14 @@ var _output = logOptions.output;
8
9
  var _indentSize = logOptions.indentSize;
9
10
  var _taskLength = logOptions.taskLength;
10
11
  var _lineLength = logOptions.lineLength;
11
- var _inspectOptions = logOptions.inspectOptions;
12
+ var _inspectOptions = { ...logOptions.inspectOptions };
12
13
  logOptions.on("changed", (options) => {
13
14
  _output = options.output;
14
15
  _indentSize = options.indentSize;
15
16
  _taskLength = options.taskLength;
16
17
  _lineLength = options.lineLength;
17
- _inspectOptions = options.inspectOptions;
18
+ _inspectOptions = { ...options.inspectOptions };
19
+ _defaultEmitter = options.format === "fancy" ? emitFancy : options.format === "plain" ? emitPlain : fail(`Invalid log format "${logOptions.format}"`);
18
20
  });
19
21
  var emitFancy = (options, args) => {
20
22
  const { taskName, level, prefix = "", indent = 0 } = options;
@@ -72,8 +74,33 @@ var emitPlain = (options, args) => {
72
74
  `);
73
75
  }
74
76
  };
77
+ var emitForked = (options, args) => {
78
+ if (process.connected && process.send) {
79
+ const { taskName, level, prefix = "", indent = 0 } = options;
80
+ const linePrefix = "".padStart(indent * _indentSize) + prefix;
81
+ const breakLength = _lineLength - _taskLength - linePrefix.length - 20;
82
+ const message = formatWithOptions({ ..._inspectOptions, breakLength }, ...args);
83
+ const lines = message.split("\n").map((line) => `${linePrefix}${line}`);
84
+ process.send({ logLevel: level, taskName, lines });
85
+ } else {
86
+ _defaultEmitter(options, args);
87
+ }
88
+ };
89
+ var _defaultEmitter = logOptions.format === "fancy" ? emitFancy : logOptions.format === "plain" ? emitPlain : fail(`Invalid log format "${logOptions.format}"`);
90
+ var _emitter = _defaultEmitter;
91
+ var wrapper = function emit(options, args) {
92
+ _defaultEmitter(options, args);
93
+ };
94
+ var emit2 = Object.defineProperty(wrapper, "emitter", {
95
+ get: () => _emitter,
96
+ set: (emitter) => {
97
+ _emitter = emitter || _defaultEmitter;
98
+ }
99
+ });
75
100
  export {
101
+ emit2 as emit,
76
102
  emitFancy,
103
+ emitForked,
77
104
  emitPlain
78
105
  };
79
106
  //# sourceMappingURL=emit.mjs.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/logging/emit.ts"],
4
- "mappings": "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",
5
- "names": []
4
+ "mappings": "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",
5
+ "names": ["emit"]
6
6
  }
@@ -25,24 +25,21 @@ __export(github_exports, {
25
25
  module.exports = __toCommonJS(github_exports);
26
26
  var import_node_os = require("node:os");
27
27
  var import_node_util = require("node:util");
28
+ var import_ansi = require("../utils/ansi.cjs");
28
29
  var import_options = require("./options.cjs");
29
- var ansiRegExp = new RegExp([
30
- "[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)",
31
- "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"
32
- ].join("|"), "g");
33
30
  var _output = import_options.logOptions.output;
34
- var _inspectOptions = import_options.logOptions.inspectOptions;
35
31
  var _githubAnnotations = import_options.logOptions.githubAnnotations;
32
+ var _inspectOptions = { ...import_options.logOptions.inspectOptions, breakLength: Infinity };
36
33
  import_options.logOptions.on("changed", (options) => {
37
34
  _output = options.output;
38
35
  _githubAnnotations = options.githubAnnotations;
39
36
  _inspectOptions = { ...options.inspectOptions, breakLength: Infinity };
40
37
  });
41
38
  function escapeData(data) {
42
- return data.replace(ansiRegExp, "").replace(/%/g, "%25").replace(/\r/g, "%0D").replace(/\n/g, "%0A");
39
+ return (0, import_ansi.stripAnsi)(data).replace(/%/g, "%25").replace(/\r/g, "%0D").replace(/\n/g, "%0A");
43
40
  }
44
41
  function escapeProp(prop) {
45
- return `${prop}`.replace(ansiRegExp, "").replace(/%/g, "%25").replace(/\r/g, "%0D").replace(/\n/g, "%0A").replace(/:/g, "%3A").replace(/,/g, "%2C");
42
+ return (0, import_ansi.stripAnsi)(`${prop}`).replace(/%/g, "%25").replace(/\r/g, "%0D").replace(/\n/g, "%0A").replace(/:/g, "%3A").replace(/,/g, "%2C");
46
43
  }
47
44
  function githubAnnotation(options, ...args) {
48
45
  if (!_githubAnnotations)
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/logging/github.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAoB;AACpB,uBAAkC;AAElC,qBAA2B;AAK3B,IAAM,aAAa,IAAI,OAAO;AAAA,EAC5B;AAAA,EACA;AACF,EAAE,KAAK,GAAG,GAAG,GAAG;AAGhB,IAAI,UAAU,0BAAW;AACzB,IAAI,kBAAkB,0BAAW;AACjC,IAAI,qBAAqB,0BAAW;AACpC,0BAAW,GAAG,WAAW,CAAC,YAAY;AACpC,YAAU,QAAQ;AAClB,uBAAqB,QAAQ;AAC7B,oBAAkB,EAAE,GAAG,QAAQ,gBAAgB,aAAa,SAAS;AACvE,CAAC;AAGD,SAAS,WAAW,MAAsB;AACxC,SAAO,KACF,QAAQ,YAAY,EAAE,EACtB,QAAQ,MAAM,KAAK,EACnB,QAAQ,OAAO,KAAK,EACpB,QAAQ,OAAO,KAAK;AAC3B;AAEA,SAAS,WAAW,MAA+B;AACjD,SAAO,GAAG,IAAI,GACT,QAAQ,YAAY,EAAE,EACtB,QAAQ,MAAM,KAAK,EACnB,QAAQ,OAAO,KAAK,EACpB,QAAQ,OAAO,KAAK,EACpB,QAAQ,MAAM,KAAK,EACnB,QAAQ,MAAM,KAAK;AAC1B;AAiBO,SAAS,iBAAiB,YAA4D,MAAmB;AAC9G,MAAI,CAAE;AAAoB;AAE1B,MAAI,OAAO,YAAY;AAAU,cAAU,EAAE,MAAM,QAAQ;AAC3D,QAAM,EAAE,MAAM,GAAG,WAAW,IAAI;AAEhC,QAAM,aAAa,OAAO,QAAQ,UAAU,EACvC,OAAO,CAAC,CAAE,KAAK,KAAM,MAAM,CAAC,EAAE,OAAO,MAAM,EAC3C,IAAI,CAAC,CAAE,KAAK,KAAM,MAAM,GAAG,GAAG,IAAI,WAAW,KAAK,CAAC,EAAE,EACrD,KAAK,GAAG;AAEb,QAAM,MAAM,eAAW,oCAAkB,iBAAiB,GAAG,IAAI,CAAC;AAElE,MAAI,YAAY;AACd,YAAQ,MAAM,KAAK,IAAI,IAAI,UAAU,KAAK,GAAG,GAAG,kBAAG,EAAE;AAAA,EACvD,OAAO;AACL,YAAQ,MAAM,KAAK,IAAI,KAAK,GAAG,GAAG,kBAAG,EAAE;AAAA,EACzC;AACF;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAoB;AACpB,uBAAkC;AAElC,kBAA0B;AAC1B,qBAA2B;AAK3B,IAAI,UAAU,0BAAW;AACzB,IAAI,qBAAqB,0BAAW;AACpC,IAAI,kBAAkB,EAAE,GAAG,0BAAW,gBAAgB,aAAa,SAAS;AAC5E,0BAAW,GAAG,WAAW,CAAC,YAAY;AACpC,YAAU,QAAQ;AAClB,uBAAqB,QAAQ;AAC7B,oBAAkB,EAAE,GAAG,QAAQ,gBAAgB,aAAa,SAAS;AACvE,CAAC;AAGD,SAAS,WAAW,MAAsB;AACxC,aAAO,uBAAU,IAAI,EAChB,QAAQ,MAAM,KAAK,EACnB,QAAQ,OAAO,KAAK,EACpB,QAAQ,OAAO,KAAK;AAC3B;AAEA,SAAS,WAAW,MAA+B;AACjD,aAAO,uBAAU,GAAG,IAAI,EAAE,EACrB,QAAQ,MAAM,KAAK,EACnB,QAAQ,OAAO,KAAK,EACpB,QAAQ,OAAO,KAAK,EACpB,QAAQ,MAAM,KAAK,EACnB,QAAQ,MAAM,KAAK;AAC1B;AAiBO,SAAS,iBAAiB,YAA4D,MAAmB;AAC9G,MAAI,CAAE;AAAoB;AAE1B,MAAI,OAAO,YAAY;AAAU,cAAU,EAAE,MAAM,QAAQ;AAC3D,QAAM,EAAE,MAAM,GAAG,WAAW,IAAI;AAEhC,QAAM,aAAa,OAAO,QAAQ,UAAU,EACvC,OAAO,CAAC,CAAE,KAAK,KAAM,MAAM,CAAC,EAAE,OAAO,MAAM,EAC3C,IAAI,CAAC,CAAE,KAAK,KAAM,MAAM,GAAG,GAAG,IAAI,WAAW,KAAK,CAAC,EAAE,EACrD,KAAK,GAAG;AAEb,QAAM,MAAM,eAAW,oCAAkB,iBAAiB,GAAG,IAAI,CAAC;AAElE,MAAI,YAAY;AACd,YAAQ,MAAM,KAAK,IAAI,IAAI,UAAU,KAAK,GAAG,GAAG,kBAAG,EAAE;AAAA,EACvD,OAAO;AACL,YAAQ,MAAM,KAAK,IAAI,KAAK,GAAG,GAAG,kBAAG,EAAE;AAAA,EACzC;AACF;",
5
5
  "names": []
6
6
  }
@@ -1,24 +1,21 @@
1
1
  // logging/github.ts
2
2
  import { EOL } from "node:os";
3
3
  import { formatWithOptions } from "node:util";
4
+ import { stripAnsi } from "../utils/ansi.mjs";
4
5
  import { logOptions } from "./options.mjs";
5
- var ansiRegExp = new RegExp([
6
- "[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)",
7
- "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"
8
- ].join("|"), "g");
9
6
  var _output = logOptions.output;
10
- var _inspectOptions = logOptions.inspectOptions;
11
7
  var _githubAnnotations = logOptions.githubAnnotations;
8
+ var _inspectOptions = { ...logOptions.inspectOptions, breakLength: Infinity };
12
9
  logOptions.on("changed", (options) => {
13
10
  _output = options.output;
14
11
  _githubAnnotations = options.githubAnnotations;
15
12
  _inspectOptions = { ...options.inspectOptions, breakLength: Infinity };
16
13
  });
17
14
  function escapeData(data) {
18
- return data.replace(ansiRegExp, "").replace(/%/g, "%25").replace(/\r/g, "%0D").replace(/\n/g, "%0A");
15
+ return stripAnsi(data).replace(/%/g, "%25").replace(/\r/g, "%0D").replace(/\n/g, "%0A");
19
16
  }
20
17
  function escapeProp(prop) {
21
- return `${prop}`.replace(ansiRegExp, "").replace(/%/g, "%25").replace(/\r/g, "%0D").replace(/\n/g, "%0A").replace(/:/g, "%3A").replace(/,/g, "%2C");
18
+ return stripAnsi(`${prop}`).replace(/%/g, "%25").replace(/\r/g, "%0D").replace(/\n/g, "%0A").replace(/:/g, "%3A").replace(/,/g, "%2C");
22
19
  }
23
20
  function githubAnnotation(options, ...args) {
24
21
  if (!_githubAnnotations)
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/logging/github.ts"],
4
- "mappings": ";AAAA,SAAS,WAAW;AACpB,SAAS,yBAAyB;AAElC,SAAS,kBAAkB;AAK3B,IAAM,aAAa,IAAI,OAAO;AAAA,EAC5B;AAAA,EACA;AACF,EAAE,KAAK,GAAG,GAAG,GAAG;AAGhB,IAAI,UAAU,WAAW;AACzB,IAAI,kBAAkB,WAAW;AACjC,IAAI,qBAAqB,WAAW;AACpC,WAAW,GAAG,WAAW,CAAC,YAAY;AACpC,YAAU,QAAQ;AAClB,uBAAqB,QAAQ;AAC7B,oBAAkB,EAAE,GAAG,QAAQ,gBAAgB,aAAa,SAAS;AACvE,CAAC;AAGD,SAAS,WAAW,MAAsB;AACxC,SAAO,KACF,QAAQ,YAAY,EAAE,EACtB,QAAQ,MAAM,KAAK,EACnB,QAAQ,OAAO,KAAK,EACpB,QAAQ,OAAO,KAAK;AAC3B;AAEA,SAAS,WAAW,MAA+B;AACjD,SAAO,GAAG,IAAI,GACT,QAAQ,YAAY,EAAE,EACtB,QAAQ,MAAM,KAAK,EACnB,QAAQ,OAAO,KAAK,EACpB,QAAQ,OAAO,KAAK,EACpB,QAAQ,MAAM,KAAK,EACnB,QAAQ,MAAM,KAAK;AAC1B;AAiBO,SAAS,iBAAiB,YAA4D,MAAmB;AAC9G,MAAI,CAAE;AAAoB;AAE1B,MAAI,OAAO,YAAY;AAAU,cAAU,EAAE,MAAM,QAAQ;AAC3D,QAAM,EAAE,MAAM,GAAG,WAAW,IAAI;AAEhC,QAAM,aAAa,OAAO,QAAQ,UAAU,EACvC,OAAO,CAAC,CAAE,KAAK,KAAM,MAAM,CAAC,EAAE,OAAO,MAAM,EAC3C,IAAI,CAAC,CAAE,KAAK,KAAM,MAAM,GAAG,GAAG,IAAI,WAAW,KAAK,CAAC,EAAE,EACrD,KAAK,GAAG;AAEb,QAAM,MAAM,WAAW,kBAAkB,iBAAiB,GAAG,IAAI,CAAC;AAElE,MAAI,YAAY;AACd,YAAQ,MAAM,KAAK,IAAI,IAAI,UAAU,KAAK,GAAG,GAAG,GAAG,EAAE;AAAA,EACvD,OAAO;AACL,YAAQ,MAAM,KAAK,IAAI,KAAK,GAAG,GAAG,GAAG,EAAE;AAAA,EACzC;AACF;",
4
+ "mappings": ";AAAA,SAAS,WAAW;AACpB,SAAS,yBAAyB;AAElC,SAAS,iBAAiB;AAC1B,SAAS,kBAAkB;AAK3B,IAAI,UAAU,WAAW;AACzB,IAAI,qBAAqB,WAAW;AACpC,IAAI,kBAAkB,EAAE,GAAG,WAAW,gBAAgB,aAAa,SAAS;AAC5E,WAAW,GAAG,WAAW,CAAC,YAAY;AACpC,YAAU,QAAQ;AAClB,uBAAqB,QAAQ;AAC7B,oBAAkB,EAAE,GAAG,QAAQ,gBAAgB,aAAa,SAAS;AACvE,CAAC;AAGD,SAAS,WAAW,MAAsB;AACxC,SAAO,UAAU,IAAI,EAChB,QAAQ,MAAM,KAAK,EACnB,QAAQ,OAAO,KAAK,EACpB,QAAQ,OAAO,KAAK;AAC3B;AAEA,SAAS,WAAW,MAA+B;AACjD,SAAO,UAAU,GAAG,IAAI,EAAE,EACrB,QAAQ,MAAM,KAAK,EACnB,QAAQ,OAAO,KAAK,EACpB,QAAQ,OAAO,KAAK,EACpB,QAAQ,MAAM,KAAK,EACnB,QAAQ,MAAM,KAAK;AAC1B;AAiBO,SAAS,iBAAiB,YAA4D,MAAmB;AAC9G,MAAI,CAAE;AAAoB;AAE1B,MAAI,OAAO,YAAY;AAAU,cAAU,EAAE,MAAM,QAAQ;AAC3D,QAAM,EAAE,MAAM,GAAG,WAAW,IAAI;AAEhC,QAAM,aAAa,OAAO,QAAQ,UAAU,EACvC,OAAO,CAAC,CAAE,KAAK,KAAM,MAAM,CAAC,EAAE,OAAO,MAAM,EAC3C,IAAI,CAAC,CAAE,KAAK,KAAM,MAAM,GAAG,GAAG,IAAI,WAAW,KAAK,CAAC,EAAE,EACrD,KAAK,GAAG;AAEb,QAAM,MAAM,WAAW,kBAAkB,iBAAiB,GAAG,IAAI,CAAC;AAElE,MAAI,YAAY;AACd,YAAQ,MAAM,KAAK,IAAI,IAAI,UAAU,KAAK,GAAG,GAAG,GAAG,EAAE;AAAA,EACvD,OAAO;AACL,YAAQ,MAAM,KAAK,IAAI,KAAK,GAAG,GAAG,GAAG,EAAE;AAAA,EACzC;AACF;",
5
5
  "names": []
6
6
  }
@@ -26,40 +26,34 @@ __export(logger_exports, {
26
26
  module.exports = __toCommonJS(logger_exports);
27
27
  var import_node_util = require("node:util");
28
28
  var import_asserts = require("../asserts.cjs");
29
+ var import_async = require("../async.cjs");
30
+ var import_ansi = require("../utils/ansi.cjs");
31
+ var import_colors = require("./colors.cjs");
29
32
  var import_emit = require("./emit.cjs");
30
33
  var import_levels = require("./levels.cjs");
31
34
  var import_options = require("./options.cjs");
32
35
  var import_report = require("./report.cjs");
33
- var import_colors = require("./colors.cjs");
34
36
  var _level = import_options.logOptions.level;
35
- var _format = import_options.logOptions.format;
36
- var _defaultTaskName = import_options.logOptions.defaultTaskName;
37
- import_options.logOptions.on("changed", ({ defaultTaskName, format, level }) => {
38
- _defaultTaskName = defaultTaskName;
39
- _format = format;
37
+ import_options.logOptions.on("changed", ({ level }) => {
40
38
  _level = level;
41
39
  });
42
- function getLogger(task = _defaultTaskName) {
43
- let logger = _loggers.get(task);
44
- if (!logger) {
45
- const emitter = _format === "fancy" ? import_emit.emitFancy : import_emit.emitPlain;
46
- logger = new LoggerImpl(task, emitter);
47
- _loggers.set(task, logger);
48
- }
49
- return logger;
40
+ function getLogger(task, indent) {
41
+ const context = (0, import_async.currentContext)();
42
+ const taskName = task === void 0 ? context?.taskName || "" : task;
43
+ const indentLevel = indent === void 0 ? context?.log.indent || 0 : 0;
44
+ return new LoggerImpl(taskName, import_emit.emit, indentLevel);
50
45
  }
51
- var _loggers = /* @__PURE__ */ new Map();
52
46
  var _loggedFailures = /* @__PURE__ */ new WeakSet();
53
47
  var LoggerImpl = class {
54
- constructor(_task, _emitter) {
48
+ constructor(_task, _emitter, indent) {
55
49
  this._task = _task;
56
50
  this._emitter = _emitter;
51
+ this.indent = indent;
57
52
  }
58
53
  _stack = [];
59
- _level = _level;
60
- _indent = 0;
61
- _emit(level, args) {
62
- if (this._level > level)
54
+ level = _level;
55
+ _emit(level, args, taskName = this._task) {
56
+ if (this.level > level)
63
57
  return;
64
58
  const params = args.filter((arg) => {
65
59
  if (arg instanceof import_asserts.BuildFailure) {
@@ -79,7 +73,7 @@ var LoggerImpl = class {
79
73
  });
80
74
  if (params.length === 0)
81
75
  return;
82
- const options = { level, taskName: this._task, indent: this._indent };
76
+ const options = { level, taskName, indent: this.indent };
83
77
  if (this._stack.length) {
84
78
  for (const { message, ...extras } of this._stack) {
85
79
  this._emitter({ ...options, ...extras }, [message]);
@@ -88,12 +82,6 @@ var LoggerImpl = class {
88
82
  }
89
83
  this._emitter(options, params);
90
84
  }
91
- get level() {
92
- return this._level;
93
- }
94
- set level(level) {
95
- this._level = level;
96
- }
97
85
  trace(...args) {
98
86
  this._emit(import_levels.TRACE, args);
99
87
  }
@@ -119,15 +107,15 @@ var LoggerImpl = class {
119
107
  enter(...args) {
120
108
  if (args.length) {
121
109
  const [level, message] = args;
122
- this._stack.push({ level, message, indent: this._indent });
110
+ this._stack.push({ level, message, indent: this.indent });
123
111
  }
124
- this._indent++;
112
+ this.indent++;
125
113
  }
126
114
  leave(...args) {
127
115
  this._stack.pop();
128
- this._indent--;
129
- if (this._indent < 0)
130
- this._indent = 0;
116
+ this.indent--;
117
+ if (this.indent < 0)
118
+ this.indent = 0;
131
119
  if (args.length) {
132
120
  const [level, message] = args;
133
121
  this._emit(level, [message]);
@@ -142,15 +130,13 @@ var LoggerImpl = class {
142
130
  this._stack.splice(0);
143
131
  }
144
132
  let { indent = 0, prefix = "" } = options;
145
- prefix = this._indent ? (0, import_colors.$gry)("| ") + prefix : prefix;
146
- indent += this._indent;
133
+ prefix = this.indent ? (0, import_colors.$gry)("| ") + prefix : prefix;
134
+ indent += this.indent;
147
135
  this._emitter({ ...options, indent, prefix }, args);
148
136
  };
149
137
  return new import_report.ReportImpl(title, this._task, emitter);
150
138
  }
151
139
  };
152
- var ansiPattern = "[\\u001b\\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]";
153
- var ansiRegExp = new RegExp(ansiPattern, "g");
154
140
  var TestLogger = class extends LoggerImpl {
155
141
  _lines = [];
156
142
  constructor() {
@@ -158,10 +144,10 @@ var TestLogger = class extends LoggerImpl {
158
144
  const { prefix = "", indent = 0 } = options;
159
145
  const linePrefix = "".padStart(indent * 2) + prefix;
160
146
  (0, import_node_util.formatWithOptions)({ colors: false, breakLength: 120 }, ...args).split("\n").forEach((line) => {
161
- const stripped = line.replaceAll(ansiRegExp, "");
147
+ const stripped = (0, import_ansi.stripAnsi)(line);
162
148
  this._lines.push(`${linePrefix}${stripped}`);
163
149
  });
164
- });
150
+ }, 0);
165
151
  }
166
152
  /** Return the _current_ buffer for this instance */
167
153
  get buffer() {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/logging/logger.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -22,6 +22,8 @@ export interface Log {
22
22
  export interface Logger extends Log {
23
23
  /** The current level for logging. */
24
24
  level: LogLevel;
25
+ /** The current indent level for logging. */
26
+ indent: number;
25
27
  /** Enter a sub-level of logging, increasing indent */
26
28
  enter(): void;
27
29
  /** Enter a sub-level of logging, increasing indent */
@@ -34,18 +36,16 @@ export interface Logger extends Log {
34
36
  report(title: string): Report;
35
37
  }
36
38
  /** Return a {@link Logger} associated with the specified task name. */
37
- export declare function getLogger(task?: string): Logger;
39
+ export declare function getLogger(task?: string, indent?: number): Logger;
38
40
  /** Default implementation of the {@link Logger} interface. */
39
41
  declare class LoggerImpl implements Logger {
40
42
  private readonly _task;
41
43
  private readonly _emitter;
44
+ indent: number;
42
45
  private readonly _stack;
43
- private _level;
44
- private _indent;
45
- constructor(_task: string, _emitter: LogEmitter);
46
+ level: LogLevel;
47
+ constructor(_task: string, _emitter: LogEmitter, indent: number);
46
48
  private _emit;
47
- get level(): LogLevel;
48
- set level(level: LogLevel);
49
49
  trace(...args: [any, ...any]): void;
50
50
  debug(...args: [any, ...any]): void;
51
51
  info(...args: [any, ...any]): void;
@@ -59,7 +59,7 @@ declare class LoggerImpl implements Logger {
59
59
  leave(level: LogLevel, message: string): void;
60
60
  report(title: string): Report;
61
61
  }
62
- /** A test logger, writing to a buffer always _without_ colors */
62
+ /** A test logger, writing to a buffer always _without_ colors/indent */
63
63
  export declare class TestLogger extends LoggerImpl {
64
64
  private _lines;
65
65
  constructor();
@@ -1,40 +1,34 @@
1
1
  // logging/logger.ts
2
2
  import { formatWithOptions } from "node:util";
3
3
  import { BuildFailure } from "../asserts.mjs";
4
- import { emitFancy, emitPlain } from "./emit.mjs";
4
+ import { currentContext } from "../async.mjs";
5
+ import { stripAnsi } from "../utils/ansi.mjs";
6
+ import { $gry } from "./colors.mjs";
7
+ import { emit } from "./emit.mjs";
5
8
  import { DEBUG, ERROR, INFO, NOTICE, TRACE, WARN } from "./levels.mjs";
6
9
  import { logOptions } from "./options.mjs";
7
10
  import { ReportImpl } from "./report.mjs";
8
- import { $gry } from "./colors.mjs";
9
11
  var _level = logOptions.level;
10
- var _format = logOptions.format;
11
- var _defaultTaskName = logOptions.defaultTaskName;
12
- logOptions.on("changed", ({ defaultTaskName, format, level }) => {
13
- _defaultTaskName = defaultTaskName;
14
- _format = format;
12
+ logOptions.on("changed", ({ level }) => {
15
13
  _level = level;
16
14
  });
17
- function getLogger(task = _defaultTaskName) {
18
- let logger = _loggers.get(task);
19
- if (!logger) {
20
- const emitter = _format === "fancy" ? emitFancy : emitPlain;
21
- logger = new LoggerImpl(task, emitter);
22
- _loggers.set(task, logger);
23
- }
24
- return logger;
15
+ function getLogger(task, indent) {
16
+ const context = currentContext();
17
+ const taskName = task === void 0 ? context?.taskName || "" : task;
18
+ const indentLevel = indent === void 0 ? context?.log.indent || 0 : 0;
19
+ return new LoggerImpl(taskName, emit, indentLevel);
25
20
  }
26
- var _loggers = /* @__PURE__ */ new Map();
27
21
  var _loggedFailures = /* @__PURE__ */ new WeakSet();
28
22
  var LoggerImpl = class {
29
- constructor(_task, _emitter) {
23
+ constructor(_task, _emitter, indent) {
30
24
  this._task = _task;
31
25
  this._emitter = _emitter;
26
+ this.indent = indent;
32
27
  }
33
28
  _stack = [];
34
- _level = _level;
35
- _indent = 0;
36
- _emit(level, args) {
37
- if (this._level > level)
29
+ level = _level;
30
+ _emit(level, args, taskName = this._task) {
31
+ if (this.level > level)
38
32
  return;
39
33
  const params = args.filter((arg) => {
40
34
  if (arg instanceof BuildFailure) {
@@ -54,7 +48,7 @@ var LoggerImpl = class {
54
48
  });
55
49
  if (params.length === 0)
56
50
  return;
57
- const options = { level, taskName: this._task, indent: this._indent };
51
+ const options = { level, taskName, indent: this.indent };
58
52
  if (this._stack.length) {
59
53
  for (const { message, ...extras } of this._stack) {
60
54
  this._emitter({ ...options, ...extras }, [message]);
@@ -63,12 +57,6 @@ var LoggerImpl = class {
63
57
  }
64
58
  this._emitter(options, params);
65
59
  }
66
- get level() {
67
- return this._level;
68
- }
69
- set level(level) {
70
- this._level = level;
71
- }
72
60
  trace(...args) {
73
61
  this._emit(TRACE, args);
74
62
  }
@@ -94,15 +82,15 @@ var LoggerImpl = class {
94
82
  enter(...args) {
95
83
  if (args.length) {
96
84
  const [level, message] = args;
97
- this._stack.push({ level, message, indent: this._indent });
85
+ this._stack.push({ level, message, indent: this.indent });
98
86
  }
99
- this._indent++;
87
+ this.indent++;
100
88
  }
101
89
  leave(...args) {
102
90
  this._stack.pop();
103
- this._indent--;
104
- if (this._indent < 0)
105
- this._indent = 0;
91
+ this.indent--;
92
+ if (this.indent < 0)
93
+ this.indent = 0;
106
94
  if (args.length) {
107
95
  const [level, message] = args;
108
96
  this._emit(level, [message]);
@@ -117,15 +105,13 @@ var LoggerImpl = class {
117
105
  this._stack.splice(0);
118
106
  }
119
107
  let { indent = 0, prefix = "" } = options;
120
- prefix = this._indent ? $gry("| ") + prefix : prefix;
121
- indent += this._indent;
108
+ prefix = this.indent ? $gry("| ") + prefix : prefix;
109
+ indent += this.indent;
122
110
  this._emitter({ ...options, indent, prefix }, args);
123
111
  };
124
112
  return new ReportImpl(title, this._task, emitter);
125
113
  }
126
114
  };
127
- var ansiPattern = "[\\u001b\\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]";
128
- var ansiRegExp = new RegExp(ansiPattern, "g");
129
115
  var TestLogger = class extends LoggerImpl {
130
116
  _lines = [];
131
117
  constructor() {
@@ -133,10 +119,10 @@ var TestLogger = class extends LoggerImpl {
133
119
  const { prefix = "", indent = 0 } = options;
134
120
  const linePrefix = "".padStart(indent * 2) + prefix;
135
121
  formatWithOptions({ colors: false, breakLength: 120 }, ...args).split("\n").forEach((line) => {
136
- const stripped = line.replaceAll(ansiRegExp, "");
122
+ const stripped = stripAnsi(line);
137
123
  this._lines.push(`${linePrefix}${stripped}`);
138
124
  });
139
- });
125
+ }, 0);
140
126
  }
141
127
  /** Return the _current_ buffer for this instance */
142
128
  get buffer() {