@plugjs/plug 0.3.5 → 0.4.1

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 (119) hide show
  1. package/dist/asserts.cjs +10 -12
  2. package/dist/asserts.cjs.map +1 -1
  3. package/dist/asserts.d.ts +1 -2
  4. package/dist/asserts.mjs +9 -10
  5. package/dist/asserts.mjs.map +1 -1
  6. package/dist/async.cjs +5 -20
  7. package/dist/async.cjs.map +2 -2
  8. package/dist/async.mjs +5 -20
  9. package/dist/async.mjs.map +2 -2
  10. package/dist/build.cjs +113 -64
  11. package/dist/build.cjs.map +2 -2
  12. package/dist/build.d.ts +9 -7
  13. package/dist/build.mjs +110 -63
  14. package/dist/build.mjs.map +2 -2
  15. package/dist/cli.d.mts +12 -0
  16. package/dist/cli.mjs +266 -0
  17. package/dist/cli.mjs.map +6 -0
  18. package/dist/files.cjs +5 -3
  19. package/dist/files.cjs.map +1 -1
  20. package/dist/files.d.ts +2 -1
  21. package/dist/files.mjs +11 -4
  22. package/dist/files.mjs.map +1 -1
  23. package/dist/fork.cjs +30 -12
  24. package/dist/fork.cjs.map +1 -1
  25. package/dist/fork.d.ts +10 -0
  26. package/dist/fork.mjs +31 -13
  27. package/dist/fork.mjs.map +1 -1
  28. package/dist/helpers.cjs +32 -13
  29. package/dist/helpers.cjs.map +2 -2
  30. package/dist/helpers.d.ts +12 -0
  31. package/dist/helpers.mjs +37 -14
  32. package/dist/helpers.mjs.map +2 -2
  33. package/dist/index.cjs +5 -0
  34. package/dist/index.cjs.map +1 -1
  35. package/dist/index.d.ts +2 -1
  36. package/dist/index.mjs +4 -1
  37. package/dist/index.mjs.map +1 -1
  38. package/dist/logging/emit.cjs +4 -4
  39. package/dist/logging/emit.cjs.map +1 -1
  40. package/dist/logging/emit.mjs +4 -4
  41. package/dist/logging/emit.mjs.map +1 -1
  42. package/dist/logging/logger.cjs +43 -2
  43. package/dist/logging/logger.cjs.map +1 -1
  44. package/dist/logging/logger.d.ts +36 -3
  45. package/dist/logging/logger.mjs +43 -3
  46. package/dist/logging/logger.mjs.map +1 -1
  47. package/dist/logging/options.cjs +8 -12
  48. package/dist/logging/options.cjs.map +1 -1
  49. package/dist/logging/options.d.ts +44 -1
  50. package/dist/logging/options.mjs +8 -12
  51. package/dist/logging/options.mjs.map +1 -1
  52. package/dist/logging.cjs +14 -3
  53. package/dist/logging.cjs.map +1 -1
  54. package/dist/logging.d.ts +2 -0
  55. package/dist/logging.mjs +13 -3
  56. package/dist/logging.mjs.map +1 -1
  57. package/dist/plugs/build.cjs +63 -0
  58. package/dist/plugs/build.cjs.map +6 -0
  59. package/dist/plugs/build.d.ts +13 -0
  60. package/dist/plugs/build.mjs +37 -0
  61. package/dist/plugs/build.mjs.map +6 -0
  62. package/dist/plugs/debug.cjs +7 -9
  63. package/dist/plugs/debug.cjs.map +1 -1
  64. package/dist/plugs/debug.mjs +8 -10
  65. package/dist/plugs/debug.mjs.map +1 -1
  66. package/dist/types.cjs +12 -0
  67. package/dist/types.cjs.map +1 -1
  68. package/dist/types.d.ts +35 -9
  69. package/dist/types.mjs +5 -0
  70. package/dist/types.mjs.map +2 -2
  71. package/dist/utils/diff.cjs +1 -4
  72. package/dist/utils/diff.cjs.map +1 -1
  73. package/dist/utils/diff.mjs +1 -4
  74. package/dist/utils/diff.mjs.map +1 -1
  75. package/dist/utils/exec.cjs +5 -12
  76. package/dist/utils/exec.cjs.map +2 -2
  77. package/dist/utils/exec.d.ts +0 -2
  78. package/dist/utils/exec.mjs +6 -13
  79. package/dist/utils/exec.mjs.map +1 -1
  80. package/dist/utils/{types.cjs → singleton.cjs} +14 -13
  81. package/dist/utils/singleton.cjs.map +6 -0
  82. package/dist/utils/singleton.d.ts +12 -0
  83. package/dist/utils/singleton.mjs +13 -0
  84. package/dist/utils/singleton.mjs.map +6 -0
  85. package/dist/utils.cjs +2 -2
  86. package/dist/utils.cjs.map +1 -1
  87. package/dist/utils.d.ts +1 -1
  88. package/dist/utils.mjs +1 -1
  89. package/package.json +7 -9
  90. package/src/asserts.ts +10 -12
  91. package/src/async.ts +6 -29
  92. package/src/build.ts +169 -106
  93. package/{extra/plug.mts → src/cli.mts} +115 -141
  94. package/src/files.ts +14 -6
  95. package/src/fork.ts +42 -16
  96. package/src/helpers.ts +56 -5
  97. package/src/index.ts +2 -1
  98. package/src/logging/emit.ts +4 -4
  99. package/src/logging/logger.ts +60 -7
  100. package/src/logging/options.ts +9 -14
  101. package/src/logging.ts +20 -5
  102. package/src/plugs/build.ts +45 -0
  103. package/src/plugs/debug.ts +10 -9
  104. package/src/types.ts +54 -23
  105. package/src/utils/diff.ts +1 -6
  106. package/src/utils/exec.ts +6 -20
  107. package/src/utils/singleton.ts +19 -0
  108. package/src/utils.ts +1 -1
  109. package/cli/plug.mjs +0 -1385
  110. package/cli/ts-loader.mjs +0 -275
  111. package/cli/tsrun.mjs +0 -1204
  112. package/dist/utils/types.cjs.map +0 -6
  113. package/dist/utils/types.d.ts +0 -4
  114. package/dist/utils/types.mjs +0 -12
  115. package/dist/utils/types.mjs.map +0 -6
  116. package/extra/ts-loader.mts +0 -546
  117. package/extra/tsrun.mts +0 -127
  118. package/extra/utils.ts +0 -150
  119. package/src/utils/types.ts +0 -11
@@ -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;AAQA,mBAAsB;AAqBtB,cAAyB;AACzB,YAAuB;AACvB,WAAsB;AACtB,SAAoB;AACpB,cAAyB;AACzB,YAAuB;AACvB,WAAsB;AACtB,YAAuB;AAGvB,qBAAuF;AACvF,qBAA2C;AAG3C,wBAAc,wBA3Cd;AA4CA,wBAAc,0BA5Cd;AA6CA,wBAAc,wBA7Cd;AA8CA,wBAAc,wBA9Cd;",
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;AAQA,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,wBA5Cd;AA6CA,wBAAc,0BA7Cd;AA8CA,wBAAc,wBA9Cd;AA+CA,wBAAc,wBA/Cd;",
5
5
  "names": []
6
6
  }
package/dist/index.d.ts CHANGED
@@ -20,6 +20,7 @@ export interface Pipe extends Promise<Files> {
20
20
  plug(plug: PlugFunction<Files | void | undefined>): Pipe | Promise<undefined>;
21
21
  }
22
22
  export * as asserts from './asserts';
23
+ export * as async from './async';
23
24
  export * as files from './files';
24
25
  export * as fork from './fork';
25
26
  export * as fs from './fs';
@@ -27,7 +28,7 @@ export * as logging from './logging';
27
28
  export * as paths from './paths';
28
29
  export * as pipe from './pipe';
29
30
  export * as utils from './utils';
30
- export { log, $ms, $p, $t, $blu, $cyn, $grn, $gry, $mgt, $red, $und, $wht, $ylw } from './logging';
31
+ export { banner, log, $ms, $p, $t, $blu, $cyn, $grn, $gry, $mgt, $red, $und, $wht, $ylw } from './logging';
31
32
  export { assert, fail, BuildFailure } from './asserts';
32
33
  export * from './build';
33
34
  export * from './helpers';
package/dist/index.mjs CHANGED
@@ -1,6 +1,7 @@
1
1
  // index.ts
2
2
  import { Files } from "./files.mjs";
3
3
  import * as asserts from "./asserts.mjs";
4
+ import * as async from "./async.mjs";
4
5
  import * as files from "./files.mjs";
5
6
  import * as fork from "./fork.mjs";
6
7
  import * as fs from "./fs.mjs";
@@ -8,7 +9,7 @@ import * as logging from "./logging.mjs";
8
9
  import * as paths from "./paths.mjs";
9
10
  import * as pipe from "./pipe.mjs";
10
11
  import * as utils from "./utils.mjs";
11
- import { log, $ms, $p, $t, $blu, $cyn, $grn, $gry, $mgt, $red, $und, $wht, $ylw } from "./logging.mjs";
12
+ import { banner, log, $ms, $p, $t, $blu, $cyn, $grn, $gry, $mgt, $red, $und, $wht, $ylw } from "./logging.mjs";
12
13
  import { assert, fail, BuildFailure } from "./asserts.mjs";
13
14
  export * from "./build.mjs";
14
15
  export * from "./helpers.mjs";
@@ -31,6 +32,8 @@ export {
31
32
  Files,
32
33
  assert,
33
34
  asserts,
35
+ async,
36
+ banner,
34
37
  fail,
35
38
  files,
36
39
  fork,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts"],
4
- "mappings": ";AAQA,SAAS,aAAa;AAqBtB,YAAY,aAAa;AACzB,YAAY,WAAW;AACvB,YAAY,UAAU;AACtB,YAAY,QAAQ;AACpB,YAAY,aAAa;AACzB,YAAY,WAAW;AACvB,YAAY,UAAU;AACtB,YAAY,WAAW;AAGvB,SAAS,KAAK,KAAK,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,YAAY;AACvF,SAAS,QAAQ,MAAM,oBAAoB;AAG3C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
4
+ "mappings": ";AAQA,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;",
5
5
  "names": []
6
6
  }
@@ -42,8 +42,8 @@ import_options.logOptions.on("changed", (options) => {
42
42
  _inspectOptions = options.inspectOptions;
43
43
  });
44
44
  var emitColor = (options, args) => {
45
- const { taskName, level, prefix, indent } = options;
46
- const logPrefix = prefix ? prefix : indent ? "".padStart(indent * _indentSize) : "";
45
+ const { taskName, level, prefix = "", indent = 0 } = options;
46
+ const logPrefix = "".padStart(indent * _indentSize) + prefix;
47
47
  const prefixes = [];
48
48
  prefixes.push("".padStart(_taskLength - taskName.length, " "));
49
49
  prefixes.push(`${(0, import_colors.$t)(taskName)}`);
@@ -70,8 +70,8 @@ var emitColor = (options, args) => {
70
70
  }
71
71
  };
72
72
  var emitPlain = (options, args) => {
73
- const { taskName, level, prefix, indent } = options;
74
- const logPrefix = prefix ? prefix : indent ? "".padStart(indent * _indentSize) : "";
73
+ const { taskName, level, prefix = "", indent = 0 } = options;
74
+ const logPrefix = "".padStart(indent * _indentSize) + prefix;
75
75
  const prefixes = [];
76
76
  const pad = "".padStart(_taskLength - taskName.length, " ");
77
77
  prefixes.push(`${pad}${taskName}`);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/logging/emit.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAkC;AAElC,oBAAiD;AACjD,oBAAiD;AACjD,qBAA2B;AAC3B,qBAA2B;AAO3B,IAAI,UAAU,0BAAW;AACzB,IAAI,cAAc,0BAAW;AAC7B,IAAI,cAAc,0BAAW;AAC7B,IAAI,cAAc,0BAAW;AAC7B,IAAI,kBAAkB,0BAAW;AACjC,0BAAW,GAAG,WAAW,CAAC,YAAY;AACpC,YAAU,QAAQ;AAClB,gBAAc,QAAQ;AACtB,gBAAc,QAAQ;AACtB,gBAAc,QAAQ;AACtB,oBAAkB,QAAQ;AAC5B,CAAC;AAoBM,IAAM,YAAwB,CAAC,SAA4B,SAAsB;AACtF,QAAM,EAAE,UAAU,OAAO,QAAQ,OAAO,IAAI;AAC5C,QAAM,YAAY,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,WAAW,IAAI;AAGjF,QAAM,WAAqB,CAAC;AAG5B,WAAS,KAAK,GAAG,SAAS,cAAc,SAAS,QAAQ,GAAG,CAAC;AAC7D,WAAS,KAAK,OAAG,kBAAG,QAAQ,GAAG;AAG/B,MAAI,SAAS,qBAAO;AAClB,aAAS,KAAK,QAAI,oBAAK,QAAQ,IAAI;AAAA,EACrC,WAAW,SAAS,qBAAO;AACzB,aAAS,KAAK,QAAI,oBAAK,QAAQ,IAAI;AAAA,EACrC,WAAW,SAAS,oBAAM;AACxB,aAAS,KAAK,QAAI,oBAAK,QAAQ,IAAI;AAAA,EACrC,WAAW,SAAS,sBAAQ;AAC1B,aAAS,KAAK,QAAI,oBAAK,QAAQ,IAAI;AAAA,EACrC,WAAW,SAAS,oBAAM;AACxB,aAAS,KAAK,QAAI,oBAAK,QAAQ,IAAI;AAAA,EACrC,OAAO;AACL,aAAS,KAAK,QAAI,oBAAK,QAAQ,IAAI;AAAA,EACrC;AAGA,WAAS,KAAK,SAAS;AACvB,QAAM,aAAa,SAAS,KAAK,EAAE;AAGnC,QAAM,cAAc,cAAc,cAAc,UAAU,SAAS;AACnE,QAAM,cAAU,oCAAkB,EAAE,GAAG,iBAAiB,YAAY,GAAG,GAAG,IAAI;AAG9E,aAAW,QAAQ,QAAQ,MAAM,IAAI,GAAG;AACtC,YAAQ,MAAM,GAAG,4BAAa,aAAa;AAAA,CAAQ;AAAA,EACrD;AACF;AAKO,IAAM,YAAwB,CAAC,SAA4B,SAAsB;AACtF,QAAM,EAAE,UAAU,OAAO,QAAQ,OAAO,IAAI;AAC5C,QAAM,YAAY,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,WAAW,IAAI;AAEjF,QAAM,WAAqB,CAAC;AAE5B,QAAM,MAAM,GAAG,SAAS,cAAc,SAAS,QAAQ,GAAG;AAC1D,WAAS,KAAK,GAAG,MAAM,UAAU;AAEjC,MAAI,SAAS,qBAAO;AAClB,aAAS,KAAK,wBAAwB;AAAA,EACxC,WAAW,SAAS,qBAAO;AACzB,aAAS,KAAK,wBAAwB;AAAA,EACxC,WAAW,SAAS,oBAAM;AACxB,aAAS,KAAK,wBAAwB;AAAA,EACxC,WAAW,SAAS,sBAAQ;AAC1B,aAAS,KAAK,wBAAwB;AAAA,EACxC,WAAW,SAAS,oBAAM;AACxB,aAAS,KAAK,wBAAwB;AAAA,EACxC,OAAO;AACL,aAAS,KAAK,wBAAwB;AAAA,EACxC;AAGA,WAAS,KAAK,SAAS;AACvB,QAAM,aAAa,SAAS,KAAK,EAAE;AAGnC,QAAM,cAAc,cAAc,cAAc,UAAU,SAAS;AACnE,QAAM,cAAU,oCAAkB,EAAE,GAAG,iBAAiB,YAAY,GAAG,GAAG,IAAI;AAG9E,aAAW,QAAQ,QAAQ,MAAM,IAAI,GAAG;AACtC,YAAQ,MAAM,GAAG,aAAa;AAAA,CAAQ;AAAA,EACxC;AACF;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAkC;AAElC,oBAAiD;AACjD,oBAAiD;AACjD,qBAA2B;AAC3B,qBAA2B;AAO3B,IAAI,UAAU,0BAAW;AACzB,IAAI,cAAc,0BAAW;AAC7B,IAAI,cAAc,0BAAW;AAC7B,IAAI,cAAc,0BAAW;AAC7B,IAAI,kBAAkB,0BAAW;AACjC,0BAAW,GAAG,WAAW,CAAC,YAAY;AACpC,YAAU,QAAQ;AAClB,gBAAc,QAAQ;AACtB,gBAAc,QAAQ;AACtB,gBAAc,QAAQ;AACtB,oBAAkB,QAAQ;AAC5B,CAAC;AAoBM,IAAM,YAAwB,CAAC,SAA4B,SAAsB;AACtF,QAAM,EAAE,UAAU,OAAO,SAAS,IAAI,SAAS,EAAE,IAAI;AACrD,QAAM,YAAY,GAAG,SAAS,SAAS,WAAW,IAAI;AAGtD,QAAM,WAAqB,CAAC;AAG5B,WAAS,KAAK,GAAG,SAAS,cAAc,SAAS,QAAQ,GAAG,CAAC;AAC7D,WAAS,KAAK,OAAG,kBAAG,QAAQ,GAAG;AAG/B,MAAI,SAAS,qBAAO;AAClB,aAAS,KAAK,QAAI,oBAAK,QAAQ,IAAI;AAAA,EACrC,WAAW,SAAS,qBAAO;AACzB,aAAS,KAAK,QAAI,oBAAK,QAAQ,IAAI;AAAA,EACrC,WAAW,SAAS,oBAAM;AACxB,aAAS,KAAK,QAAI,oBAAK,QAAQ,IAAI;AAAA,EACrC,WAAW,SAAS,sBAAQ;AAC1B,aAAS,KAAK,QAAI,oBAAK,QAAQ,IAAI;AAAA,EACrC,WAAW,SAAS,oBAAM;AACxB,aAAS,KAAK,QAAI,oBAAK,QAAQ,IAAI;AAAA,EACrC,OAAO;AACL,aAAS,KAAK,QAAI,oBAAK,QAAQ,IAAI;AAAA,EACrC;AAGA,WAAS,KAAK,SAAS;AACvB,QAAM,aAAa,SAAS,KAAK,EAAE;AAGnC,QAAM,cAAc,cAAc,cAAc,UAAU,SAAS;AACnE,QAAM,cAAU,oCAAkB,EAAE,GAAG,iBAAiB,YAAY,GAAG,GAAG,IAAI;AAG9E,aAAW,QAAQ,QAAQ,MAAM,IAAI,GAAG;AACtC,YAAQ,MAAM,GAAG,4BAAa,aAAa;AAAA,CAAQ;AAAA,EACrD;AACF;AAKO,IAAM,YAAwB,CAAC,SAA4B,SAAsB;AACtF,QAAM,EAAE,UAAU,OAAO,SAAS,IAAI,SAAS,EAAE,IAAI;AACrD,QAAM,YAAY,GAAG,SAAS,SAAS,WAAW,IAAI;AAEtD,QAAM,WAAqB,CAAC;AAE5B,QAAM,MAAM,GAAG,SAAS,cAAc,SAAS,QAAQ,GAAG;AAC1D,WAAS,KAAK,GAAG,MAAM,UAAU;AAEjC,MAAI,SAAS,qBAAO;AAClB,aAAS,KAAK,wBAAwB;AAAA,EACxC,WAAW,SAAS,qBAAO;AACzB,aAAS,KAAK,wBAAwB;AAAA,EACxC,WAAW,SAAS,oBAAM;AACxB,aAAS,KAAK,wBAAwB;AAAA,EACxC,WAAW,SAAS,sBAAQ;AAC1B,aAAS,KAAK,wBAAwB;AAAA,EACxC,WAAW,SAAS,oBAAM;AACxB,aAAS,KAAK,wBAAwB;AAAA,EACxC,OAAO;AACL,aAAS,KAAK,wBAAwB;AAAA,EACxC;AAGA,WAAS,KAAK,SAAS;AACvB,QAAM,aAAa,SAAS,KAAK,EAAE;AAGnC,QAAM,cAAc,cAAc,cAAc,UAAU,SAAS;AACnE,QAAM,cAAU,oCAAkB,EAAE,GAAG,iBAAiB,YAAY,GAAG,GAAG,IAAI;AAG9E,aAAW,QAAQ,QAAQ,MAAM,IAAI,GAAG;AACtC,YAAQ,MAAM,GAAG,aAAa;AAAA,CAAQ;AAAA,EACxC;AACF;",
5
5
  "names": []
6
6
  }
@@ -17,8 +17,8 @@ logOptions.on("changed", (options) => {
17
17
  _inspectOptions = options.inspectOptions;
18
18
  });
19
19
  var emitColor = (options, args) => {
20
- const { taskName, level, prefix, indent } = options;
21
- const logPrefix = prefix ? prefix : indent ? "".padStart(indent * _indentSize) : "";
20
+ const { taskName, level, prefix = "", indent = 0 } = options;
21
+ const logPrefix = "".padStart(indent * _indentSize) + prefix;
22
22
  const prefixes = [];
23
23
  prefixes.push("".padStart(_taskLength - taskName.length, " "));
24
24
  prefixes.push(`${$t(taskName)}`);
@@ -45,8 +45,8 @@ var emitColor = (options, args) => {
45
45
  }
46
46
  };
47
47
  var emitPlain = (options, args) => {
48
- const { taskName, level, prefix, indent } = options;
49
- const logPrefix = prefix ? prefix : indent ? "".padStart(indent * _indentSize) : "";
48
+ const { taskName, level, prefix = "", indent = 0 } = options;
49
+ const logPrefix = "".padStart(indent * _indentSize) + prefix;
50
50
  const prefixes = [];
51
51
  const pad = "".padStart(_taskLength - taskName.length, " ");
52
52
  prefixes.push(`${pad}${taskName}`);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/logging/emit.ts"],
4
- "mappings": ";AAAA,SAAS,yBAAyB;AAElC,SAAS,MAAM,MAAM,MAAM,MAAM,IAAI,YAAY;AACjD,SAAS,OAAO,MAAM,QAAQ,OAAO,YAAY;AACjD,SAAS,kBAAkB;AAC3B,SAAS,kBAAkB;AAO3B,IAAI,UAAU,WAAW;AACzB,IAAI,cAAc,WAAW;AAC7B,IAAI,cAAc,WAAW;AAC7B,IAAI,cAAc,WAAW;AAC7B,IAAI,kBAAkB,WAAW;AACjC,WAAW,GAAG,WAAW,CAAC,YAAY;AACpC,YAAU,QAAQ;AAClB,gBAAc,QAAQ;AACtB,gBAAc,QAAQ;AACtB,gBAAc,QAAQ;AACtB,oBAAkB,QAAQ;AAC5B,CAAC;AAoBM,IAAM,YAAwB,CAAC,SAA4B,SAAsB;AACtF,QAAM,EAAE,UAAU,OAAO,QAAQ,OAAO,IAAI;AAC5C,QAAM,YAAY,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,WAAW,IAAI;AAGjF,QAAM,WAAqB,CAAC;AAG5B,WAAS,KAAK,GAAG,SAAS,cAAc,SAAS,QAAQ,GAAG,CAAC;AAC7D,WAAS,KAAK,GAAG,GAAG,QAAQ,GAAG;AAG/B,MAAI,SAAS,OAAO;AAClB,aAAS,KAAK,IAAI,KAAK,QAAQ,IAAI;AAAA,EACrC,WAAW,SAAS,OAAO;AACzB,aAAS,KAAK,IAAI,KAAK,QAAQ,IAAI;AAAA,EACrC,WAAW,SAAS,MAAM;AACxB,aAAS,KAAK,IAAI,KAAK,QAAQ,IAAI;AAAA,EACrC,WAAW,SAAS,QAAQ;AAC1B,aAAS,KAAK,IAAI,KAAK,QAAQ,IAAI;AAAA,EACrC,WAAW,SAAS,MAAM;AACxB,aAAS,KAAK,IAAI,KAAK,QAAQ,IAAI;AAAA,EACrC,OAAO;AACL,aAAS,KAAK,IAAI,KAAK,QAAQ,IAAI;AAAA,EACrC;AAGA,WAAS,KAAK,SAAS;AACvB,QAAM,aAAa,SAAS,KAAK,EAAE;AAGnC,QAAM,cAAc,cAAc,cAAc,UAAU,SAAS;AACnE,QAAM,UAAU,kBAAkB,EAAE,GAAG,iBAAiB,YAAY,GAAG,GAAG,IAAI;AAG9E,aAAW,QAAQ,QAAQ,MAAM,IAAI,GAAG;AACtC,YAAQ,MAAM,GAAG,aAAa,aAAa;AAAA,CAAQ;AAAA,EACrD;AACF;AAKO,IAAM,YAAwB,CAAC,SAA4B,SAAsB;AACtF,QAAM,EAAE,UAAU,OAAO,QAAQ,OAAO,IAAI;AAC5C,QAAM,YAAY,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,WAAW,IAAI;AAEjF,QAAM,WAAqB,CAAC;AAE5B,QAAM,MAAM,GAAG,SAAS,cAAc,SAAS,QAAQ,GAAG;AAC1D,WAAS,KAAK,GAAG,MAAM,UAAU;AAEjC,MAAI,SAAS,OAAO;AAClB,aAAS,KAAK,wBAAwB;AAAA,EACxC,WAAW,SAAS,OAAO;AACzB,aAAS,KAAK,wBAAwB;AAAA,EACxC,WAAW,SAAS,MAAM;AACxB,aAAS,KAAK,wBAAwB;AAAA,EACxC,WAAW,SAAS,QAAQ;AAC1B,aAAS,KAAK,wBAAwB;AAAA,EACxC,WAAW,SAAS,MAAM;AACxB,aAAS,KAAK,wBAAwB;AAAA,EACxC,OAAO;AACL,aAAS,KAAK,wBAAwB;AAAA,EACxC;AAGA,WAAS,KAAK,SAAS;AACvB,QAAM,aAAa,SAAS,KAAK,EAAE;AAGnC,QAAM,cAAc,cAAc,cAAc,UAAU,SAAS;AACnE,QAAM,UAAU,kBAAkB,EAAE,GAAG,iBAAiB,YAAY,GAAG,GAAG,IAAI;AAG9E,aAAW,QAAQ,QAAQ,MAAM,IAAI,GAAG;AACtC,YAAQ,MAAM,GAAG,aAAa;AAAA,CAAQ;AAAA,EACxC;AACF;",
4
+ "mappings": ";AAAA,SAAS,yBAAyB;AAElC,SAAS,MAAM,MAAM,MAAM,MAAM,IAAI,YAAY;AACjD,SAAS,OAAO,MAAM,QAAQ,OAAO,YAAY;AACjD,SAAS,kBAAkB;AAC3B,SAAS,kBAAkB;AAO3B,IAAI,UAAU,WAAW;AACzB,IAAI,cAAc,WAAW;AAC7B,IAAI,cAAc,WAAW;AAC7B,IAAI,cAAc,WAAW;AAC7B,IAAI,kBAAkB,WAAW;AACjC,WAAW,GAAG,WAAW,CAAC,YAAY;AACpC,YAAU,QAAQ;AAClB,gBAAc,QAAQ;AACtB,gBAAc,QAAQ;AACtB,gBAAc,QAAQ;AACtB,oBAAkB,QAAQ;AAC5B,CAAC;AAoBM,IAAM,YAAwB,CAAC,SAA4B,SAAsB;AACtF,QAAM,EAAE,UAAU,OAAO,SAAS,IAAI,SAAS,EAAE,IAAI;AACrD,QAAM,YAAY,GAAG,SAAS,SAAS,WAAW,IAAI;AAGtD,QAAM,WAAqB,CAAC;AAG5B,WAAS,KAAK,GAAG,SAAS,cAAc,SAAS,QAAQ,GAAG,CAAC;AAC7D,WAAS,KAAK,GAAG,GAAG,QAAQ,GAAG;AAG/B,MAAI,SAAS,OAAO;AAClB,aAAS,KAAK,IAAI,KAAK,QAAQ,IAAI;AAAA,EACrC,WAAW,SAAS,OAAO;AACzB,aAAS,KAAK,IAAI,KAAK,QAAQ,IAAI;AAAA,EACrC,WAAW,SAAS,MAAM;AACxB,aAAS,KAAK,IAAI,KAAK,QAAQ,IAAI;AAAA,EACrC,WAAW,SAAS,QAAQ;AAC1B,aAAS,KAAK,IAAI,KAAK,QAAQ,IAAI;AAAA,EACrC,WAAW,SAAS,MAAM;AACxB,aAAS,KAAK,IAAI,KAAK,QAAQ,IAAI;AAAA,EACrC,OAAO;AACL,aAAS,KAAK,IAAI,KAAK,QAAQ,IAAI;AAAA,EACrC;AAGA,WAAS,KAAK,SAAS;AACvB,QAAM,aAAa,SAAS,KAAK,EAAE;AAGnC,QAAM,cAAc,cAAc,cAAc,UAAU,SAAS;AACnE,QAAM,UAAU,kBAAkB,EAAE,GAAG,iBAAiB,YAAY,GAAG,GAAG,IAAI;AAG9E,aAAW,QAAQ,QAAQ,MAAM,IAAI,GAAG;AACtC,YAAQ,MAAM,GAAG,aAAa,aAAa;AAAA,CAAQ;AAAA,EACrD;AACF;AAKO,IAAM,YAAwB,CAAC,SAA4B,SAAsB;AACtF,QAAM,EAAE,UAAU,OAAO,SAAS,IAAI,SAAS,EAAE,IAAI;AACrD,QAAM,YAAY,GAAG,SAAS,SAAS,WAAW,IAAI;AAEtD,QAAM,WAAqB,CAAC;AAE5B,QAAM,MAAM,GAAG,SAAS,cAAc,SAAS,QAAQ,GAAG;AAC1D,WAAS,KAAK,GAAG,MAAM,UAAU;AAEjC,MAAI,SAAS,OAAO;AAClB,aAAS,KAAK,wBAAwB;AAAA,EACxC,WAAW,SAAS,OAAO;AACzB,aAAS,KAAK,wBAAwB;AAAA,EACxC,WAAW,SAAS,MAAM;AACxB,aAAS,KAAK,wBAAwB;AAAA,EACxC,WAAW,SAAS,QAAQ;AAC1B,aAAS,KAAK,wBAAwB;AAAA,EACxC,WAAW,SAAS,MAAM;AACxB,aAAS,KAAK,wBAAwB;AAAA,EACxC,OAAO;AACL,aAAS,KAAK,wBAAwB;AAAA,EACxC;AAGA,WAAS,KAAK,SAAS;AACvB,QAAM,aAAa,SAAS,KAAK,EAAE;AAGnC,QAAM,cAAc,cAAc,cAAc,UAAU,SAAS;AACnE,QAAM,UAAU,kBAAkB,EAAE,GAAG,iBAAiB,YAAY,GAAG,GAAG,IAAI;AAG9E,aAAW,QAAQ,QAAQ,MAAM,IAAI,GAAG;AACtC,YAAQ,MAAM,GAAG,aAAa;AAAA,CAAQ;AAAA,EACxC;AACF;",
5
5
  "names": []
6
6
  }
@@ -20,14 +20,17 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // logging/logger.ts
21
21
  var logger_exports = {};
22
22
  __export(logger_exports, {
23
+ TestLogger: () => TestLogger,
23
24
  getLogger: () => getLogger
24
25
  });
25
26
  module.exports = __toCommonJS(logger_exports);
27
+ var import_node_util = require("node:util");
26
28
  var import_asserts = require("../asserts.cjs");
27
29
  var import_emit = require("./emit.cjs");
28
30
  var import_levels = require("./levels.cjs");
29
31
  var import_options = require("./options.cjs");
30
32
  var import_report = require("./report.cjs");
33
+ var import_colors = require("./colors.cjs");
31
34
  var _level = import_options.logOptions.level;
32
35
  var _colors = import_options.logOptions.colors;
33
36
  var _defaultTaskName = import_options.logOptions.defaultTaskName;
@@ -59,7 +62,7 @@ var LoggerImpl = class {
59
62
  if (this._level > level)
60
63
  return;
61
64
  const params = args.filter((arg) => {
62
- if ((0, import_asserts.isBuildFailure)(arg)) {
65
+ if (arg instanceof import_asserts.BuildFailure) {
63
66
  if (_loggedFailures.has(arg))
64
67
  return false;
65
68
  _loggedFailures.add(arg);
@@ -131,11 +134,49 @@ var LoggerImpl = class {
131
134
  }
132
135
  }
133
136
  report(title) {
134
- return new import_report.ReportImpl(title, this._task, this._emitter);
137
+ const emitter = (options, args) => {
138
+ if (this._stack.length) {
139
+ for (const { message, ...extras } of this._stack) {
140
+ this._emitter({ ...options, ...extras }, [message]);
141
+ }
142
+ this._stack.splice(0);
143
+ }
144
+ let { indent = 0, prefix = "" } = options;
145
+ prefix = this._indent ? (0, import_colors.$gry)("| ") + prefix : prefix;
146
+ indent += this._indent;
147
+ this._emitter({ ...options, indent, prefix }, args);
148
+ };
149
+ return new import_report.ReportImpl(title, this._task, emitter);
150
+ }
151
+ };
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
+ var TestLogger = class extends LoggerImpl {
155
+ _lines = [];
156
+ constructor() {
157
+ super("", (options, args) => {
158
+ const { prefix = "", indent = 0 } = options;
159
+ const linePrefix = "".padStart(indent * 2) + prefix;
160
+ (0, import_node_util.formatWithOptions)({ colors: false, breakLength: 120 }, ...args).split("\n").forEach((line) => {
161
+ const stripped = line.replaceAll(ansiRegExp, "");
162
+ this._lines.push(`${linePrefix}${stripped}`);
163
+ });
164
+ });
165
+ }
166
+ /** Return the _current_ buffer for this instance */
167
+ get buffer() {
168
+ return this._lines.join("\n");
169
+ }
170
+ /** Reset the buffer and return any previously buffered text */
171
+ reset() {
172
+ const buffer = this.buffer;
173
+ this._lines = [];
174
+ return buffer;
135
175
  }
136
176
  };
137
177
  // Annotate the CommonJS export names for ESM import in node:
138
178
  0 && (module.exports = {
179
+ TestLogger,
139
180
  getLogger
140
181
  });
141
182
  //# sourceMappingURL=logger.cjs.map
@@ -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
  }
@@ -1,9 +1,8 @@
1
+ import type { LogEmitter } from './emit';
1
2
  import type { LogLevel } from './levels';
2
3
  import type { Report } from './report';
3
4
  /** The basic interface giving access to log facilities. */
4
5
  export interface Log {
5
- /** The current {@link Logger} */
6
- readonly logger: Logger;
7
6
  /** Log a `TRACE` message */
8
7
  trace(...args: [any, ...any]): void;
9
8
  /** Log a `DEBUG` message */
@@ -20,7 +19,7 @@ export interface Log {
20
19
  fail(...args: [any, ...any]): never;
21
20
  }
22
21
  /** A {@link Logger} extends the basic {@link Log} adding some state. */
23
- export interface Logger extends Omit<Log, 'logger'> {
22
+ export interface Logger extends Log {
24
23
  /** The current level for logging. */
25
24
  level: LogLevel;
26
25
  /** Enter a sub-level of logging, increasing indent */
@@ -36,3 +35,37 @@ export interface Logger extends Omit<Log, 'logger'> {
36
35
  }
37
36
  /** Return a {@link Logger} associated with the specified task name. */
38
37
  export declare function getLogger(task?: string): Logger;
38
+ /** Default implementation of the {@link Logger} interface. */
39
+ declare class LoggerImpl implements Logger {
40
+ private readonly _task;
41
+ private readonly _emitter;
42
+ private readonly _stack;
43
+ private _level;
44
+ private _indent;
45
+ constructor(_task: string, _emitter: LogEmitter);
46
+ private _emit;
47
+ get level(): LogLevel;
48
+ set level(level: LogLevel);
49
+ trace(...args: [any, ...any]): void;
50
+ debug(...args: [any, ...any]): void;
51
+ info(...args: [any, ...any]): void;
52
+ notice(...args: [any, ...any]): void;
53
+ warn(...args: [any, ...any]): void;
54
+ error(...args: [any, ...any]): void;
55
+ fail(...args: [any, ...any]): never;
56
+ enter(): void;
57
+ enter(level: LogLevel, message: string): void;
58
+ leave(): void;
59
+ leave(level: LogLevel, message: string): void;
60
+ report(title: string): Report;
61
+ }
62
+ /** A test logger, writing to a buffer always _without_ colors */
63
+ export declare class TestLogger extends LoggerImpl {
64
+ private _lines;
65
+ constructor();
66
+ /** Return the _current_ buffer for this instance */
67
+ get buffer(): string;
68
+ /** Reset the buffer and return any previously buffered text */
69
+ reset(): string;
70
+ }
71
+ export {};
@@ -1,9 +1,11 @@
1
1
  // logging/logger.ts
2
- import { BuildFailure, isBuildFailure } from "../asserts.mjs";
2
+ import { formatWithOptions } from "node:util";
3
+ import { BuildFailure } from "../asserts.mjs";
3
4
  import { emitColor, emitPlain } from "./emit.mjs";
4
5
  import { DEBUG, ERROR, INFO, NOTICE, TRACE, WARN } from "./levels.mjs";
5
6
  import { logOptions } from "./options.mjs";
6
7
  import { ReportImpl } from "./report.mjs";
8
+ import { $gry } from "./colors.mjs";
7
9
  var _level = logOptions.level;
8
10
  var _colors = logOptions.colors;
9
11
  var _defaultTaskName = logOptions.defaultTaskName;
@@ -35,7 +37,7 @@ var LoggerImpl = class {
35
37
  if (this._level > level)
36
38
  return;
37
39
  const params = args.filter((arg) => {
38
- if (isBuildFailure(arg)) {
40
+ if (arg instanceof BuildFailure) {
39
41
  if (_loggedFailures.has(arg))
40
42
  return false;
41
43
  _loggedFailures.add(arg);
@@ -107,10 +109,48 @@ var LoggerImpl = class {
107
109
  }
108
110
  }
109
111
  report(title) {
110
- return new ReportImpl(title, this._task, this._emitter);
112
+ const emitter = (options, args) => {
113
+ if (this._stack.length) {
114
+ for (const { message, ...extras } of this._stack) {
115
+ this._emitter({ ...options, ...extras }, [message]);
116
+ }
117
+ this._stack.splice(0);
118
+ }
119
+ let { indent = 0, prefix = "" } = options;
120
+ prefix = this._indent ? $gry("| ") + prefix : prefix;
121
+ indent += this._indent;
122
+ this._emitter({ ...options, indent, prefix }, args);
123
+ };
124
+ return new ReportImpl(title, this._task, emitter);
125
+ }
126
+ };
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
+ var TestLogger = class extends LoggerImpl {
130
+ _lines = [];
131
+ constructor() {
132
+ super("", (options, args) => {
133
+ const { prefix = "", indent = 0 } = options;
134
+ const linePrefix = "".padStart(indent * 2) + prefix;
135
+ formatWithOptions({ colors: false, breakLength: 120 }, ...args).split("\n").forEach((line) => {
136
+ const stripped = line.replaceAll(ansiRegExp, "");
137
+ this._lines.push(`${linePrefix}${stripped}`);
138
+ });
139
+ });
140
+ }
141
+ /** Return the _current_ buffer for this instance */
142
+ get buffer() {
143
+ return this._lines.join("\n");
144
+ }
145
+ /** Reset the buffer and return any previously buffered text */
146
+ reset() {
147
+ const buffer = this.buffer;
148
+ this._lines = [];
149
+ return buffer;
111
150
  }
112
151
  };
113
152
  export {
153
+ TestLogger,
114
154
  getLogger
115
155
  };
116
156
  //# sourceMappingURL=logger.mjs.map
@@ -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
  }
@@ -26,6 +26,7 @@ module.exports = __toCommonJS(options_exports);
26
26
  var import_node_events = require("node:events");
27
27
  var import_node_net = require("node:net");
28
28
  var import_levels = require("./levels.cjs");
29
+ var import_singleton = require("../utils/singleton.cjs");
29
30
  var LogOptionsImpl = class extends import_node_events.EventEmitter {
30
31
  _output = process.stderr;
31
32
  _level = import_levels.NOTICE;
@@ -58,8 +59,11 @@ var LogOptionsImpl = class extends import_node_events.EventEmitter {
58
59
  }
59
60
  this._githubAnnotations = process.env.GITHUB_ACTIONS === "true";
60
61
  const { fd, ...options } = JSON.parse(process.env.__LOG_OPTIONS || "{}");
61
- if (fd)
62
- this._output = new import_node_net.Socket({ fd, readable: false, writable: true }).unref();
62
+ if (fd) {
63
+ const output = new import_node_net.Socket({ fd, readable: false, writable: true }).unref();
64
+ process.on("beforeExit", () => this._output.end());
65
+ this._output = output;
66
+ }
63
67
  Object.assign(this, options);
64
68
  }
65
69
  _notifyListeners() {
@@ -171,16 +175,8 @@ var LogOptionsImpl = class extends import_node_events.EventEmitter {
171
175
  this._notifyListeners();
172
176
  }
173
177
  };
174
- var optionsKey = Symbol.for("plugjs.plug.logging.logOptions");
175
- function getLogOptions() {
176
- let options = globalThis[optionsKey];
177
- if (!options) {
178
- options = new LogOptionsImpl();
179
- globalThis[optionsKey] = options;
180
- }
181
- return options;
182
- }
183
- var logOptions = getLogOptions();
178
+ var optionsKey = Symbol.for("plugjs:plug:types:LogOptions");
179
+ var logOptions = (0, import_singleton.getSingleton)(optionsKey, () => new LogOptionsImpl());
184
180
  // Annotate the CommonJS export names for ESM import in node:
185
181
  0 && (module.exports = {
186
182
  logOptions
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/logging/options.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -1,5 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="node" />
3
+ /// <reference types="node" />
4
+ import { EventEmitter } from 'node:events';
3
5
  import type { Writable } from 'node:stream';
4
6
  import type { InspectOptions } from 'node:util';
5
7
  import type { LogLevel } from './levels';
@@ -43,5 +45,46 @@ export interface LogOptions {
43
45
  */
44
46
  forkEnv(taskName?: string, logFd?: number): Record<string, string>;
45
47
  }
48
+ declare class LogOptionsImpl extends EventEmitter implements LogOptions {
49
+ private _output;
50
+ private _level;
51
+ private _colors;
52
+ private _colorsSet;
53
+ private _spinner;
54
+ private _lineLength;
55
+ private _lineLengthSet;
56
+ private _showSources;
57
+ private _githubAnnotations;
58
+ private _inspectOptions;
59
+ private _defaultTaskName;
60
+ private _taskLength;
61
+ private _indentSize;
62
+ constructor();
63
+ private _notifyListeners;
64
+ forkEnv(taskName?: string, fd?: number): Record<string, string>;
65
+ get output(): Writable;
66
+ set output(output: Writable);
67
+ get level(): LogLevel;
68
+ set level(level: LogLevel);
69
+ get colors(): boolean;
70
+ set colors(color: boolean);
71
+ get spinner(): boolean;
72
+ set spinner(spinner: boolean);
73
+ get lineLength(): number;
74
+ set lineLength(lineLength: number);
75
+ get taskLength(): number;
76
+ set taskLength(taskLength: number);
77
+ get indentSize(): number;
78
+ set indentSize(indentSize: number);
79
+ get showSources(): boolean;
80
+ set showSources(showSources: boolean);
81
+ get defaultTaskName(): string;
82
+ set defaultTaskName(defaultTaskName: string);
83
+ get githubAnnotations(): boolean;
84
+ set githubAnnotations(githubAnnotations: boolean);
85
+ get inspectOptions(): InspectOptions;
86
+ setInspectOption<K extends keyof InspectOptions>(key: K, value: InspectOptions[K]): void;
87
+ }
46
88
  /** Shared instance of our {@link LogOptions}. */
47
- export declare const logOptions: LogOptions;
89
+ export declare const logOptions: LogOptionsImpl;
90
+ export {};
@@ -2,6 +2,7 @@
2
2
  import { EventEmitter } from "node:events";
3
3
  import { Socket } from "node:net";
4
4
  import { getLevelNumber, NOTICE } from "./levels.mjs";
5
+ import { getSingleton } from "../utils/singleton.mjs";
5
6
  var LogOptionsImpl = class extends EventEmitter {
6
7
  _output = process.stderr;
7
8
  _level = NOTICE;
@@ -34,8 +35,11 @@ var LogOptionsImpl = class extends EventEmitter {
34
35
  }
35
36
  this._githubAnnotations = process.env.GITHUB_ACTIONS === "true";
36
37
  const { fd, ...options } = JSON.parse(process.env.__LOG_OPTIONS || "{}");
37
- if (fd)
38
- this._output = new Socket({ fd, readable: false, writable: true }).unref();
38
+ if (fd) {
39
+ const output = new Socket({ fd, readable: false, writable: true }).unref();
40
+ process.on("beforeExit", () => this._output.end());
41
+ this._output = output;
42
+ }
39
43
  Object.assign(this, options);
40
44
  }
41
45
  _notifyListeners() {
@@ -147,16 +151,8 @@ var LogOptionsImpl = class extends EventEmitter {
147
151
  this._notifyListeners();
148
152
  }
149
153
  };
150
- var optionsKey = Symbol.for("plugjs.plug.logging.logOptions");
151
- function getLogOptions() {
152
- let options = globalThis[optionsKey];
153
- if (!options) {
154
- options = new LogOptionsImpl();
155
- globalThis[optionsKey] = options;
156
- }
157
- return options;
158
- }
159
- var logOptions = getLogOptions();
154
+ var optionsKey = Symbol.for("plugjs:plug:types:LogOptions");
155
+ var logOptions = getSingleton(optionsKey, () => new LogOptionsImpl());
160
156
  export {
161
157
  logOptions
162
158
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/logging/options.ts"],
4
- "mappings": "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",
4
+ "mappings": ";AAAA,SAAS,oBAAoB;AAC7B,SAAS,cAAc;AAEvB,SAAS,gBAAgB,cAAc;AACvC,SAAS,oBAAoB;AAwD7B,IAAM,iBAAN,cAA6B,aAAmC;AAAA,EACtD,UAAoB,QAAQ;AAAA,EAC5B,SAAmB;AAAA,EACnB,UAAgC,KAAK,QAAS;AAAA,EAC9C,aAAa;AAAA;AAAA,EACb,WAAW;AAAA;AAAA,EACX,cAAoC,KAAK,QAAS,WAAW;AAAA,EAC7D,iBAAiB;AAAA;AAAA,EACjB,eAAe;AAAA;AAAA,EACf,qBAAqB;AAAA;AAAA,EACrB,kBAAkC,CAAC;AAAA,EACnC,mBAAmB;AAAA,EACnB,cAAc;AAAA,EACd,cAAc;AAAA,EAEtB,cAAc;AACZ,UAAM;AAGN,QAAI,QAAQ,IAAI,WAAW;AACzB,WAAK,SAAS,eAAe,QAAQ,IAAI,SAA2B;AAAA,IACtE;AAGA,QAAI,QAAQ,IAAI,YAAY;AAC1B,UAAI,QAAQ,IAAI,WAAW,YAAY,MAAM;AAAQ,aAAK,SAAS;AACnE,UAAI,QAAQ,IAAI,WAAW,YAAY,MAAM;AAAS,aAAK,SAAS;AAAA,IAEtE;AAGA,SAAK,qBAAqB,QAAQ,IAAI,mBAAmB;AAOzD,UAAM,EAAE,IAAI,GAAG,QAAQ,IAAI,KAAK,MAAM,QAAQ,IAAI,iBAAiB,IAAI;AACvE,QAAI,IAAI;AACN,YAAM,SAAS,IAAI,OAAO,EAAE,IAAI,UAAU,OAAO,UAAU,KAAK,CAAC,EAAE,MAAM;AACzE,cAAQ,GAAG,cAAc,MAAM,KAAK,QAAQ,IAAI,CAAC;AACjD,WAAK,UAAU;AAAA,IACjB;AACA,WAAO,OAAO,MAAM,OAAO;AAAA,EAC7B;AAAA,EAEQ,mBAAyB;AAC/B,UAAM,KAAK,WAAW,IAAI;AAAA,EAC5B;AAAA,EAEA,QAAQ,UAAmB,IAAqC;AAC9D,WAAO;AAAA,MACL,eAAe,KAAK,UAAU;AAAA,QAC5B,OAAO,KAAK;AAAA,QACZ,QAAQ,KAAK;AAAA,QACb,YAAY,KAAK;AAAA,QACjB,YAAY,KAAK;AAAA,QACjB,mBAAmB,KAAK;AAAA,QACxB,iBAAiB,YAAY,KAAK;AAAA,QAClC,SAAS;AAAA;AAAA,QACT;AAAA;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEA,IAAI,SAAmB;AACrB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,OAAO,QAAkB;AAC3B,SAAK,UAAU;AACf,QAAI,CAAE,KAAK;AAAY,WAAK,UAAU,CAAC,CAAwB,OAAQ;AACvE,QAAI,CAAE,KAAK;AAAgB,WAAK,cAAoC,OAAQ;AAC5E,SAAK,iBAAiB;AAAA,EACxB;AAAA,EAEA,IAAI,QAAkB;AACpB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,MAAM,OAAiB;AACzB,SAAK,SAAS;AACd,SAAK,iBAAiB;AAAA,EACxB;AAAA,EAEA,IAAI,SAAkB;AACpB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,OAAO,OAAgB;AACzB,SAAK,UAAU;AACf,SAAK,aAAa;AAClB,SAAK,iBAAiB;AAAA,EACxB;AAAA,EAEA,IAAI,UAAmB;AACrB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,QAAQ,SAAkB;AAC5B,SAAK,WAAW;AAChB,SAAK,iBAAiB;AAAA,EACxB;AAAA,EAEA,IAAI,aAAqB;AACvB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,WAAW,YAAoB;AACjC,SAAK,cAAc;AACnB,SAAK,iBAAiB;AACtB,SAAK,iBAAiB;AAAA,EACxB;AAAA,EAEA,IAAI,aAAqB;AACvB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,WAAW,YAAoB;AACjC,SAAK,cAAc;AACnB,SAAK,iBAAiB;AAAA,EACxB;AAAA,EAEA,IAAI,aAAqB;AACvB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,WAAW,YAAoB;AACjC,SAAK,cAAc;AACnB,QAAI,KAAK,cAAc;AAAG,WAAK,cAAc;AAC7C,SAAK,iBAAiB;AAAA,EACxB;AAAA,EAEA,IAAI,cAAuB;AACzB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,YAAY,aAAsB;AACpC,SAAK,eAAe;AACpB,SAAK,iBAAiB;AAAA,EACxB;AAAA,EAEA,IAAI,kBAA0B;AAC5B,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,gBAAgB,iBAAyB;AAC3C,SAAK,mBAAmB;AACxB,SAAK,iBAAiB;AAAA,EACxB;AAAA,EAEA,IAAI,oBAA6B;AAC/B,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,kBAAkB,mBAA4B;AAChD,SAAK,qBAAqB;AAC1B,SAAK,iBAAiB;AAAA,EACxB;AAAA,EAEA,IAAI,iBAAiC;AACnC,WAAO;AAAA,MACL,QAAQ,KAAK;AAAA,MACb,aAAa,KAAK;AAAA,MAClB,GAAG,KAAK;AAAA,IACV;AAAA,EACF;AAAA,EAEA,iBAAiD,KAAQ,OAAgC;AACvF,SAAK,gBAAgB,GAAG,IAAI;AAC5B,SAAK,iBAAiB;AAAA,EACxB;AACF;AAGA,IAAM,aAAa,OAAO,IAAI,8BAA8B;AAGrD,IAAM,aAAa,aAAa,YAAY,MAAM,IAAI,eAAe,CAAC;",
5
5
  "names": []
6
6
  }
package/dist/logging.cjs CHANGED
@@ -21,10 +21,12 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
21
21
  // logging.ts
22
22
  var logging_exports = {};
23
23
  __export(logging_exports, {
24
+ banner: () => banner,
24
25
  log: () => log
25
26
  });
26
27
  module.exports = __toCommonJS(logging_exports);
27
28
  var import_async = require("./async.cjs");
29
+ var import_colors = require("./logging/colors.cjs");
28
30
  var import_logger = require("./logging/logger.cjs");
29
31
  var import_spinner = require("./logging/spinner.cjs");
30
32
  __reExport(logging_exports, require("./logging/colors.cjs"), module.exports);
@@ -37,9 +39,6 @@ __reExport(logging_exports, require("./logging/report.cjs"), module.exports);
37
39
  var log = (() => {
38
40
  const logger = () => (0, import_async.currentContext)()?.log || (0, import_logger.getLogger)();
39
41
  const wrapper = {
40
- get logger() {
41
- return logger();
42
- },
43
42
  trace(...args) {
44
43
  logger().trace(...args);
45
44
  },
@@ -65,8 +64,20 @@ var log = (() => {
65
64
  const log2 = (...args) => void wrapper.notice(...args);
66
65
  return Object.assign(log2, wrapper);
67
66
  })();
67
+ function banner(message) {
68
+ const padMessage = message.length > 60 ? message.length : 60;
69
+ const padLines = padMessage + 2;
70
+ log.notice([
71
+ "",
72
+ (0, import_colors.$gry)(`\u2554${"".padStart(padLines, "\u2550")}\u2557`),
73
+ `${(0, import_colors.$gry)("\u2551")} ${(0, import_colors.$wht)(message.padEnd(padMessage, " "))} ${(0, import_colors.$gry)("\u2551")}`,
74
+ (0, import_colors.$gry)(`\u255A${"".padStart(padLines, "\u2550")}\u255D`),
75
+ ""
76
+ ].join("\n"));
77
+ }
68
78
  // Annotate the CommonJS export names for ESM import in node:
69
79
  0 && (module.exports = {
80
+ banner,
70
81
  log,
71
82
  ...require("./logging/colors.cjs"),
72
83
  ...require("./logging/github.cjs"),
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/logging.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA+B;AAC/B,oBAA0B;AAC1B,qBAA6B;AAI7B,4BAAc,iCANd;AAOA,4BAAc,iCAPd;AAQA,4BAAc,iCARd;AASA,4BAAc,iCATd;AAUA,4BAAc,kCAVd;AAWA,4BAAc,iCAXd;AAAA,IAkBA,6BAAa;AAUN,IAAM,OAAoB,MAAmB;AAElD,QAAM,SAAS,UAAe,6BAAe,GAAG,WAAO,yBAAU;AAGjE,QAAM,UAAe;AAAA,IACnB,IAAI,SAAS;AACX,aAAO,OAAO;AAAA,IAChB;AAAA,IAEA,SAAS,MAA6B;AACpC,aAAO,EAAE,MAAM,GAAG,IAAI;AAAA,IACxB;AAAA,IAEA,SAAS,MAA6B;AACpC,aAAO,EAAE,MAAM,GAAG,IAAI;AAAA,IACxB;AAAA,IAEA,QAAQ,MAA6B;AACnC,aAAO,EAAE,KAAK,GAAG,IAAI;AAAA,IACvB;AAAA,IAEA,UAAU,MAA6B;AACrC,aAAO,EAAE,OAAO,GAAG,IAAI;AAAA,IACzB;AAAA,IAEA,QAAQ,MAA6B;AACnC,aAAO,EAAE,KAAK,GAAG,IAAI;AAAA,IACvB;AAAA,IAEA,SAAS,MAA6B;AACpC,aAAO,EAAE,MAAM,GAAG,IAAI;AAAA,IACxB;AAAA,IAEA,QAAQ,MAA8B;AACpC,aAAO,OAAO,EAAE,KAAK,GAAG,IAAI;AAAA,IAC9B;AAAA,EACF;AAGA,QAAMA,OAAM,IAAI,SAAgC,KAAK,QAAQ,OAAO,GAAG,IAAI;AAG3E,SAAO,OAAO,OAAOA,MAAK,OAAO;AACnC,GAAG;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA+B;AAC/B,oBAA2B;AAC3B,oBAA0B;AAC1B,qBAA6B;AAI7B,4BAAc,iCAPd;AAQA,4BAAc,iCARd;AASA,4BAAc,iCATd;AAUA,4BAAc,iCAVd;AAWA,4BAAc,kCAXd;AAYA,4BAAc,iCAZd;AAAA,IAmBA,6BAAa;AAUN,IAAM,OAAoB,MAAmB;AAElD,QAAM,SAAS,UAAe,6BAAe,GAAG,WAAO,yBAAU;AAGjE,QAAM,UAAe;AAAA,IACnB,SAAS,MAA6B;AACpC,aAAO,EAAE,MAAM,GAAG,IAAI;AAAA,IACxB;AAAA,IAEA,SAAS,MAA6B;AACpC,aAAO,EAAE,MAAM,GAAG,IAAI;AAAA,IACxB;AAAA,IAEA,QAAQ,MAA6B;AACnC,aAAO,EAAE,KAAK,GAAG,IAAI;AAAA,IACvB;AAAA,IAEA,UAAU,MAA6B;AACrC,aAAO,EAAE,OAAO,GAAG,IAAI;AAAA,IACzB;AAAA,IAEA,QAAQ,MAA6B;AACnC,aAAO,EAAE,KAAK,GAAG,IAAI;AAAA,IACvB;AAAA,IAEA,SAAS,MAA6B;AACpC,aAAO,EAAE,MAAM,GAAG,IAAI;AAAA,IACxB;AAAA,IAEA,QAAQ,MAA8B;AACpC,aAAO,OAAO,EAAE,KAAK,GAAG,IAAI;AAAA,IAC9B;AAAA,EACF;AAGA,QAAMA,OAAM,IAAI,SAAgC,KAAK,QAAQ,OAAO,GAAG,IAAI;AAG3E,SAAO,OAAO,OAAOA,MAAK,OAAO;AACnC,GAAG;AAOI,SAAS,OAAO,SAAuB;AAC5C,QAAM,aAAa,QAAQ,SAAS,KAAK,QAAQ,SAAS;AAC1D,QAAM,WAAW,aAAa;AAE9B,MAAI,OAAO;AAAA,IACT;AAAA,QACA,oBAAK,SAAS,GAAG,SAAS,UAAU,QAAQ,SAAS;AAAA,IACrD,OAAG,oBAAK,QAAQ,SAAK,oBAAK,QAAQ,OAAO,YAAY,GAAG,CAAC,SAAK,oBAAK,QAAQ;AAAA,QAC3E,oBAAK,SAAS,GAAG,SAAS,UAAU,QAAQ,SAAS;AAAA,IACrD;AAAA,EACF,EAAE,KAAK,IAAI,CAAC;AACd;",
5
5
  "names": ["log"]
6
6
  }
package/dist/logging.d.ts CHANGED
@@ -9,3 +9,5 @@ export * from './logging/report';
9
9
  export type LogFunction = ((...args: [any, ...any]) => void) & Log;
10
10
  /** Our logging function (defaulting to the `NOTICE` level) */
11
11
  export declare const log: LogFunction;
12
+ /** Print a nice _banner_ message on the log */
13
+ export declare function banner(message: string): void;