effect-errors 1.4.0 → 1.4.2

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 (169) hide show
  1. package/README.md +2 -2
  2. package/cjs/capture-errors.js +74 -0
  3. package/cjs/capture-errors.js.map +1 -0
  4. package/cjs/index.js +61 -0
  5. package/cjs/index.js.map +1 -0
  6. package/cjs/logic/errors/capture-errors-from-cause.js +18 -0
  7. package/cjs/logic/errors/capture-errors-from-cause.js.map +1 -0
  8. package/cjs/logic/errors/extract-error-details.js +63 -0
  9. package/cjs/logic/errors/extract-error-details.js.map +1 -0
  10. package/cjs/logic/errors/parse-error.js +24 -0
  11. package/cjs/logic/errors/parse-error.js.map +1 -0
  12. package/cjs/logic/pretty-printing/format-failures-title.js +15 -0
  13. package/cjs/logic/pretty-printing/format-failures-title.js.map +1 -0
  14. package/cjs/logic/pretty-printing/format-span-attributes.js +55 -0
  15. package/cjs/logic/pretty-printing/format-span-attributes.js.map +1 -0
  16. package/cjs/logic/pretty-printing/maybe-print-node-stacktrace.js +24 -0
  17. package/cjs/logic/pretty-printing/maybe-print-node-stacktrace.js.map +1 -0
  18. package/cjs/logic/pretty-printing/maybe-print-span-attributes.js +31 -0
  19. package/cjs/logic/pretty-printing/maybe-print-span-attributes.js.map +1 -0
  20. package/cjs/logic/pretty-printing/maybe-warn-about-plain-strings.js +20 -0
  21. package/cjs/logic/pretty-printing/maybe-warn-about-plain-strings.js.map +1 -0
  22. package/cjs/logic/pretty-printing/print-effect-stacktrace.js +24 -0
  23. package/cjs/logic/pretty-printing/print-effect-stacktrace.js.map +1 -0
  24. package/cjs/logic/spans/get-span-attributes.js +33 -0
  25. package/cjs/logic/spans/get-span-attributes.js.map +1 -0
  26. package/cjs/logic/spans/get-span-duration.js +21 -0
  27. package/cjs/logic/spans/get-span-duration.js.map +1 -0
  28. package/cjs/logic/spans/spans-stack-trailing-char.js +15 -0
  29. package/cjs/logic/spans/spans-stack-trailing-char.js.map +1 -0
  30. package/cjs/logic/spans/split-spans-attributes-by-type.js +23 -0
  31. package/cjs/logic/spans/split-spans-attributes-by-type.js.map +1 -0
  32. package/cjs/logic/stack/filter-stack.js +21 -0
  33. package/cjs/logic/stack/filter-stack.js.map +1 -0
  34. package/cjs/logic/strip-cwd-path.js +10 -0
  35. package/cjs/logic/strip-cwd-path.js.map +1 -0
  36. package/cjs/pretty-print.js +43 -0
  37. package/cjs/pretty-print.js.map +1 -0
  38. package/cjs/runners/run-promise.js +18 -0
  39. package/cjs/runners/run-promise.js.map +1 -0
  40. package/cjs/runners/run-sync.js +18 -0
  41. package/cjs/runners/run-sync.js.map +1 -0
  42. package/cjs/types/pretty-error.type.js +22 -0
  43. package/cjs/types/pretty-error.type.js.map +1 -0
  44. package/cjs/types/pretty-print-options.type.js +12 -0
  45. package/cjs/types/pretty-print-options.type.js.map +1 -0
  46. package/{capture-errors.d.ts → dts/capture-errors.d.ts} +3 -2
  47. package/dts/capture-errors.d.ts.map +1 -0
  48. package/dts/index.d.ts +6 -0
  49. package/dts/index.d.ts.map +1 -0
  50. package/{logic → dts/logic}/errors/capture-errors-from-cause.d.ts +1 -0
  51. package/dts/logic/errors/capture-errors-from-cause.d.ts.map +1 -0
  52. package/{logic → dts/logic}/errors/extract-error-details.d.ts +1 -0
  53. package/dts/logic/errors/extract-error-details.d.ts.map +1 -0
  54. package/{logic → dts/logic}/errors/parse-error.d.ts +1 -0
  55. package/dts/logic/errors/parse-error.d.ts.map +1 -0
  56. package/dts/logic/pretty-printing/format-failures-title.d.ts +2 -0
  57. package/dts/logic/pretty-printing/format-failures-title.d.ts.map +1 -0
  58. package/dts/logic/pretty-printing/format-span-attributes.d.ts +7 -0
  59. package/dts/logic/pretty-printing/format-span-attributes.d.ts.map +1 -0
  60. package/dts/logic/pretty-printing/maybe-print-node-stacktrace.d.ts +4 -0
  61. package/dts/logic/pretty-printing/maybe-print-node-stacktrace.d.ts.map +1 -0
  62. package/dts/logic/pretty-printing/maybe-print-span-attributes.d.ts +4 -0
  63. package/dts/logic/pretty-printing/maybe-print-span-attributes.d.ts.map +1 -0
  64. package/dts/logic/pretty-printing/maybe-warn-about-plain-strings.d.ts +2 -0
  65. package/dts/logic/pretty-printing/maybe-warn-about-plain-strings.d.ts.map +1 -0
  66. package/dts/logic/pretty-printing/print-effect-stacktrace.d.ts +4 -0
  67. package/dts/logic/pretty-printing/print-effect-stacktrace.d.ts.map +1 -0
  68. package/{logic → dts/logic}/spans/get-span-attributes.d.ts +1 -0
  69. package/dts/logic/spans/get-span-attributes.d.ts.map +1 -0
  70. package/{logic → dts/logic}/spans/get-span-duration.d.ts +1 -0
  71. package/dts/logic/spans/get-span-duration.d.ts.map +1 -0
  72. package/{logic → dts/logic}/spans/spans-stack-trailing-char.d.ts +1 -0
  73. package/dts/logic/spans/spans-stack-trailing-char.d.ts.map +1 -0
  74. package/{logic → dts/logic}/spans/split-spans-attributes-by-type.d.ts +1 -0
  75. package/dts/logic/spans/split-spans-attributes-by-type.d.ts.map +1 -0
  76. package/{logic → dts/logic}/stack/filter-stack.d.ts +1 -0
  77. package/dts/logic/stack/filter-stack.d.ts.map +1 -0
  78. package/{logic → dts/logic}/strip-cwd-path.d.ts +1 -0
  79. package/dts/logic/strip-cwd-path.d.ts.map +1 -0
  80. package/dts/pretty-print.d.ts +4 -0
  81. package/dts/pretty-print.d.ts.map +1 -0
  82. package/{runners → dts/runners}/run-promise.d.ts +1 -0
  83. package/dts/runners/run-promise.d.ts.map +1 -0
  84. package/{runners → dts/runners}/run-sync.d.ts +1 -0
  85. package/dts/runners/run-sync.d.ts.map +1 -0
  86. package/{types → dts/types}/pretty-error.type.d.ts +1 -0
  87. package/dts/types/pretty-error.type.d.ts.map +1 -0
  88. package/{types → dts/types}/pretty-print-options.type.d.ts +1 -0
  89. package/dts/types/pretty-print-options.type.d.ts.map +1 -0
  90. package/esm/capture-errors.js +67 -0
  91. package/esm/capture-errors.js.map +1 -0
  92. package/{index.d.ts → esm/index.js} +1 -0
  93. package/esm/index.js.map +1 -0
  94. package/esm/logic/errors/capture-errors-from-cause.js +11 -0
  95. package/esm/logic/errors/capture-errors-from-cause.js.map +1 -0
  96. package/esm/logic/errors/extract-error-details.js +56 -0
  97. package/esm/logic/errors/extract-error-details.js.map +1 -0
  98. package/esm/logic/errors/parse-error.js +17 -0
  99. package/esm/logic/errors/parse-error.js.map +1 -0
  100. package/esm/logic/pretty-printing/format-failures-title.js +3 -0
  101. package/esm/logic/pretty-printing/format-failures-title.js.map +1 -0
  102. package/esm/logic/pretty-printing/format-span-attributes.js +43 -0
  103. package/esm/logic/pretty-printing/format-span-attributes.js.map +1 -0
  104. package/esm/logic/pretty-printing/maybe-print-node-stacktrace.js +12 -0
  105. package/esm/logic/pretty-printing/maybe-print-node-stacktrace.js.map +1 -0
  106. package/esm/logic/pretty-printing/maybe-print-span-attributes.js +19 -0
  107. package/esm/logic/pretty-printing/maybe-print-span-attributes.js.map +1 -0
  108. package/esm/logic/pretty-printing/maybe-warn-about-plain-strings.js +8 -0
  109. package/esm/logic/pretty-printing/maybe-warn-about-plain-strings.js.map +1 -0
  110. package/esm/logic/pretty-printing/print-effect-stacktrace.js +12 -0
  111. package/esm/logic/pretty-printing/print-effect-stacktrace.js.map +1 -0
  112. package/esm/logic/spans/get-span-attributes.js +21 -0
  113. package/esm/logic/spans/get-span-attributes.js.map +1 -0
  114. package/esm/logic/spans/get-span-duration.js +9 -0
  115. package/esm/logic/spans/get-span-duration.js.map +1 -0
  116. package/esm/logic/spans/spans-stack-trailing-char.js +3 -0
  117. package/esm/logic/spans/spans-stack-trailing-char.js.map +1 -0
  118. package/esm/logic/spans/split-spans-attributes-by-type.js +16 -0
  119. package/esm/logic/spans/split-spans-attributes-by-type.js.map +1 -0
  120. package/esm/logic/stack/filter-stack.js +14 -0
  121. package/esm/logic/stack/filter-stack.js.map +1 -0
  122. package/esm/logic/strip-cwd-path.js +3 -0
  123. package/esm/logic/strip-cwd-path.js.map +1 -0
  124. package/esm/pretty-print.js +31 -0
  125. package/esm/pretty-print.js.map +1 -0
  126. package/esm/runners/run-promise.js +11 -0
  127. package/esm/runners/run-promise.js.map +1 -0
  128. package/esm/runners/run-sync.js +11 -0
  129. package/esm/runners/run-sync.js.map +1 -0
  130. package/esm/types/pretty-error.type.js +15 -0
  131. package/esm/types/pretty-error.type.js.map +1 -0
  132. package/esm/types/pretty-print-options.type.js +6 -0
  133. package/esm/types/pretty-print-options.type.js.map +1 -0
  134. package/package.json +23 -8
  135. package/capture-errors.js +0 -83
  136. package/capture-errors.test.d.ts +0 -1
  137. package/capture-errors.test.js +0 -169
  138. package/examples/errors/fetch-error.d.ts +0 -9
  139. package/examples/errors/fetch-error.js +0 -27
  140. package/examples/errors/file-error.d.ts +0 -9
  141. package/examples/errors/file-error.js +0 -27
  142. package/examples/errors/user-not-found.error.d.ts +0 -9
  143. package/examples/errors/user-not-found.error.js +0 -27
  144. package/examples/from-promise.d.ts +0 -5
  145. package/examples/from-promise.js +0 -109
  146. package/examples/parallel-errors.d.ts +0 -4
  147. package/examples/parallel-errors.js +0 -69
  148. package/examples/util/filename.effect.d.ts +0 -2
  149. package/examples/util/filename.effect.js +0 -11
  150. package/index.js +0 -21
  151. package/logic/errors/capture-errors-from-cause.js +0 -41
  152. package/logic/errors/extract-error-details.js +0 -74
  153. package/logic/errors/parse-error.js +0 -19
  154. package/logic/spans/get-span-attributes.js +0 -44
  155. package/logic/spans/get-span-duration.js +0 -15
  156. package/logic/spans/spans-stack-trailing-char.js +0 -11
  157. package/logic/spans/split-spans-attributes-by-type.js +0 -47
  158. package/logic/stack/filter-stack.js +0 -39
  159. package/logic/strip-cwd-path.js +0 -8
  160. package/pretty-print.d.ts +0 -3
  161. package/pretty-print.js +0 -107
  162. package/runners/run-promise.js +0 -89
  163. package/runners/run-sync.js +0 -17
  164. package/tests/mocks/console.mock.d.ts +0 -9
  165. package/tests/mocks/console.mock.js +0 -66
  166. package/tests/runners/effect-cause.d.ts +0 -2
  167. package/tests/runners/effect-cause.js +0 -49
  168. package/types/pretty-error.type.js +0 -14
  169. package/types/pretty-print-options.type.js +0 -8
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-stack.js","names":["_stripCwdPath","require","filterStack","stack","stripCwd","lines","split","out","line","push","replace","includes","join","final","stripCwdPath","exports"],"sources":["../../../../src/logic/stack/filter-stack.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,aAAA,gBAAAC,OAAA;AAEO,MAAMC,WAAW,GAAGA,CAACC,KAAa,EAAEC,QAAiB,KAAI;EAC9D,MAAMC,KAAK,GAAGF,KAAK,CAACG,KAAK,CAAC,MAAM,CAAC;EACjC,MAAMC,GAAG,GAAa,EAAE;EAExB,KAAK,MAAMC,IAAI,IAAIH,KAAK,EAAE;IACxBE,GAAG,CAACE,IAAI,CAACD,IAAI,CAACE,OAAO,CAAC,gCAAgC,EAAE,OAAO,CAAC,CAAC;IAEjE,IAAIF,IAAI,CAACG,QAAQ,CAAC,iBAAiB,CAAC,EAAE;MACpC,OAAOJ,GAAG,CAACK,IAAI,CAAC,MAAM,CAAC;IACzB;EACF;EAEA,MAAMC,KAAK,GAAGN,GAAG,CAACK,IAAI,CAAC,MAAM,CAAC,CAACF,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC;EAE3D,OAAON,QAAQ,GAAG,IAAAJ,aAAA,CAAAc,YAAY,EAACD,KAAK,CAAC,GAAGA,KAAK;AAC/C,CAAC;AAACE,OAAA,CAAAb,WAAA,GAAAA,WAAA","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.stripCwdPath = void 0;
7
+ const cwdRegex = global.process !== undefined ? /*#__PURE__*/new RegExp( /*#__PURE__*/global.process.cwd(), 'g') : null;
8
+ const stripCwdPath = path => cwdRegex === null ? path : path.replace(cwdRegex, '.');
9
+ exports.stripCwdPath = stripCwdPath;
10
+ //# sourceMappingURL=strip-cwd-path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strip-cwd-path.js","names":["cwdRegex","global","process","undefined","RegExp","cwd","stripCwdPath","path","replace","exports"],"sources":["../../../src/logic/strip-cwd-path.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,MAAMA,QAAQ,GACZC,MAAM,CAACC,OAAO,KAAKC,SAAS,gBAAG,IAAIC,MAAM,eAACH,MAAM,CAACC,OAAO,CAACG,GAAG,EAAE,EAAE,GAAG,CAAC,GAAG,IAAI;AAEtE,MAAMC,YAAY,GAAIC,IAAY,IACvCP,QAAQ,KAAK,IAAI,GAAGO,IAAI,GAAGA,IAAI,CAACC,OAAO,CAACR,QAAQ,EAAE,GAAG,CAAC;AAACS,OAAA,CAAAH,YAAA,GAAAA,YAAA","ignoreList":[]}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.prettyPrint = void 0;
7
+ var _chalk = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("chalk"));
8
+ var _Cause = /*#__PURE__*/require("effect/Cause");
9
+ var _captureErrorsFromCause = /*#__PURE__*/require("./logic/errors/capture-errors-from-cause");
10
+ var _formatFailuresTitle = /*#__PURE__*/require("./logic/pretty-printing/format-failures-title");
11
+ var _maybePrintNodeStacktrace = /*#__PURE__*/require("./logic/pretty-printing/maybe-print-node-stacktrace");
12
+ var _maybePrintSpanAttributes = /*#__PURE__*/require("./logic/pretty-printing/maybe-print-span-attributes");
13
+ var _maybeWarnAboutPlainStrings = /*#__PURE__*/require("./logic/pretty-printing/maybe-warn-about-plain-strings");
14
+ var _printEffectStacktrace = /*#__PURE__*/require("./logic/pretty-printing/print-effect-stacktrace");
15
+ var _prettyPrintOptions = /*#__PURE__*/require("./types/pretty-print-options.type");
16
+ function _interopRequireDefault(obj) {
17
+ return obj && obj.__esModule ? obj : {
18
+ default: obj
19
+ };
20
+ }
21
+ const prettyPrint = (cause, options = _prettyPrintOptions.prettyPrintOptionsDefault) => {
22
+ if ((0, _Cause.isInterruptedOnly)(cause)) {
23
+ return 'All fibers interrupted without errors.';
24
+ }
25
+ const failures = (0, _captureErrorsFromCause.captureErrorsFrom)(cause);
26
+ const title = `\r\n🫠 ${_chalk.default.bold.yellowBright.underline(`${failures.length} error${failures.length > 1 ? 's' : ''} occured\r\n`)}\r\n`;
27
+ return title + failures.map(({
28
+ errorType,
29
+ message: errorMessage,
30
+ stack,
31
+ span,
32
+ isPlainString
33
+ }, failureIndex) => {
34
+ const d = [(0, _formatFailuresTitle.formatFailuresTitle)(errorType, errorMessage, failures.length, failureIndex)];
35
+ (0, _maybeWarnAboutPlainStrings.maybeWarnAboutPlainStrings)(d, isPlainString);
36
+ const spanAttributesStack = (0, _maybePrintSpanAttributes.maybePrintSpanAttributes)(d, span, isPlainString, options);
37
+ (0, _printEffectStacktrace.printEffectStacktrace)(d, span, spanAttributesStack, options);
38
+ (0, _maybePrintNodeStacktrace.maybePrintNodeStacktrace)(d, span, stack, isPlainString, options);
39
+ return [...d, '\r\n'].join('');
40
+ }).join('\r\n');
41
+ };
42
+ exports.prettyPrint = prettyPrint;
43
+ //# sourceMappingURL=pretty-print.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pretty-print.js","names":["_chalk","_interopRequireDefault","require","_Cause","_captureErrorsFromCause","_formatFailuresTitle","_maybePrintNodeStacktrace","_maybePrintSpanAttributes","_maybeWarnAboutPlainStrings","_printEffectStacktrace","_prettyPrintOptions","obj","__esModule","default","prettyPrint","cause","options","prettyPrintOptionsDefault","isInterruptedOnly","failures","captureErrorsFrom","title","bold","yellowBright","underline","length","map","errorType","message","errorMessage","stack","span","isPlainString","failureIndex","d","formatFailuresTitle","maybeWarnAboutPlainStrings","spanAttributesStack","maybePrintSpanAttributes","printEffectStacktrace","maybePrintNodeStacktrace","join","exports"],"sources":["../../src/pretty-print.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,MAAA,gBAAAC,sBAAA,eAAAC,OAAA;AACA,IAAAC,MAAA,gBAAAD,OAAA;AAEA,IAAAE,uBAAA,gBAAAF,OAAA;AACA,IAAAG,oBAAA,gBAAAH,OAAA;AACA,IAAAI,yBAAA,gBAAAJ,OAAA;AACA,IAAAK,yBAAA,gBAAAL,OAAA;AACA,IAAAM,2BAAA,gBAAAN,OAAA;AACA,IAAAO,sBAAA,gBAAAP,OAAA;AACA,IAAAQ,mBAAA,gBAAAR,OAAA;AAG2C,SAAAD,uBAAAU,GAAA;EAAA,OAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA;IAAAE,OAAA,EAAAF;EAAA;AAAA;AAEpC,MAAMG,WAAW,GAAGA,CACzBC,KAAe,EACfC,OAAA,GAA8BN,mBAAA,CAAAO,yBAAyB,KAC7C;EACV,IAAI,IAAAd,MAAA,CAAAe,iBAAiB,EAACH,KAAK,CAAC,EAAE;IAC5B,OAAO,wCAAwC;EACjD;EAEA,MAAMI,QAAQ,GAAG,IAAAf,uBAAA,CAAAgB,iBAAiB,EAAIL,KAAK,CAAC;EAE5C,MAAMM,KAAK,GAAG,WAAWrB,MAAA,CAAAa,OAAK,CAACS,IAAI,CAACC,YAAY,CAACC,SAAS,CACxD,GAAGL,QAAQ,CAACM,MAAM,SAASN,QAAQ,CAACM,MAAM,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,cAAc,CACxE,MAAM;EAEP,OACEJ,KAAK,GACLF,QAAQ,CACLO,GAAG,CACF,CACE;IAAEC,SAAS;IAAEC,OAAO,EAAEC,YAAY;IAAEC,KAAK;IAAEC,IAAI;IAAEC;EAAa,CAAE,EAChEC,YAAY,KACV;IACF,MAAMC,CAAC,GAAa,CAClB,IAAA7B,oBAAA,CAAA8B,mBAAmB,EACjBR,SAAS,EACTE,YAAY,EACZV,QAAQ,CAACM,MAAM,EACfQ,YAAY,CACb,CACF;IAED,IAAAzB,2BAAA,CAAA4B,0BAA0B,EAACF,CAAC,EAAEF,aAAa,CAAC;IAE5C,MAAMK,mBAAmB,GAAG,IAAA9B,yBAAA,CAAA+B,wBAAwB,EAClDJ,CAAC,EACDH,IAAI,EACJC,aAAa,EACbhB,OAAO,CACR;IAED,IAAAP,sBAAA,CAAA8B,qBAAqB,EAACL,CAAC,EAAEH,IAAI,EAAEM,mBAAmB,EAAErB,OAAO,CAAC;IAC5D,IAAAV,yBAAA,CAAAkC,wBAAwB,EAACN,CAAC,EAAEH,IAAI,EAAED,KAAK,EAAEE,aAAa,EAAEhB,OAAO,CAAC;IAEhE,OAAO,CAAC,GAAGkB,CAAC,EAAE,MAAM,CAAC,CAACO,IAAI,CAAC,EAAE,CAAC;EAChC,CAAC,CACF,CACAA,IAAI,CAAC,MAAM,CAAC;AAEnB,CAAC;AAACC,OAAA,CAAA5B,WAAA,GAAAA,WAAA","ignoreList":[]}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.runPromise = void 0;
7
+ var _effect = /*#__PURE__*/require("effect");
8
+ var _ = /*#__PURE__*/require("..");
9
+ var _prettyPrintOptions = /*#__PURE__*/require("../types/pretty-print-options.type");
10
+ const runPromise = async (effect, options = _prettyPrintOptions.prettyPrintOptionsDefault) => await _effect.Effect.runPromise((0, _effect.pipe)(effect, _effect.Effect.sandbox, _effect.Effect.catchAll(e => {
11
+ if (options.enabled === false) {
12
+ return _effect.Effect.fail(e);
13
+ }
14
+ console.error((0, _.prettyPrint)(e, options));
15
+ return _effect.Effect.fail('❌ runPromise failure');
16
+ })));
17
+ exports.runPromise = runPromise;
18
+ //# sourceMappingURL=run-promise.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-promise.js","names":["_effect","require","_","_prettyPrintOptions","runPromise","effect","options","prettyPrintOptionsDefault","Effect","pipe","sandbox","catchAll","e","enabled","fail","console","error","prettyPrint","exports"],"sources":["../../../src/runners/run-promise.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,OAAA,gBAAAC,OAAA;AAEA,IAAAC,CAAA,gBAAAD,OAAA;AACA,IAAAE,mBAAA,gBAAAF,OAAA;AAKO,MAAMG,UAAU,GAAG,MAAAA,CACxBC,MAA2B,EAC3BC,OAAA,GAA8BH,mBAAA,CAAAI,yBAAyB,KAEvD,MAAMP,OAAA,CAAAQ,MAAM,CAACJ,UAAU,CACrB,IAAAJ,OAAA,CAAAS,IAAI,EACFJ,MAAM,EACNL,OAAA,CAAAQ,MAAM,CAACE,OAAO,EACdV,OAAA,CAAAQ,MAAM,CAACG,QAAQ,CAAEC,CAAC,IAAI;EACpB,IAAIN,OAAO,CAACO,OAAO,KAAK,KAAK,EAAE;IAC7B,OAAOb,OAAA,CAAAQ,MAAM,CAACM,IAAI,CAACF,CAAC,CAAC;EACvB;EAEAG,OAAO,CAACC,KAAK,CAAC,IAAAd,CAAA,CAAAe,WAAW,EAACL,CAAC,EAAEN,OAAO,CAAC,CAAC;EAEtC,OAAON,OAAA,CAAAQ,MAAM,CAACM,IAAI,CAAC,sBAAsB,CAAU;AACrD,CAAC,CAAC,CACH,CACF;AAACI,OAAA,CAAAd,UAAA,GAAAA,UAAA","ignoreList":[]}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.runSync = void 0;
7
+ var _effect = /*#__PURE__*/require("effect");
8
+ var _ = /*#__PURE__*/require("..");
9
+ var _prettyPrintOptions = /*#__PURE__*/require("../types/pretty-print-options.type");
10
+ const runSync = (effect, options = _prettyPrintOptions.prettyPrintOptionsDefault) => _effect.Effect.runSync((0, _effect.pipe)(effect, _effect.Effect.sandbox, _effect.Effect.catchAll(e => {
11
+ if (options.enabled === true) {
12
+ console.error((0, _.prettyPrint)(e, options));
13
+ return _effect.Effect.fail('❌ runSync failure');
14
+ }
15
+ return _effect.Effect.fail(e);
16
+ })));
17
+ exports.runSync = runSync;
18
+ //# sourceMappingURL=run-sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-sync.js","names":["_effect","require","_","_prettyPrintOptions","runSync","effect","options","prettyPrintOptionsDefault","Effect","pipe","sandbox","catchAll","e","enabled","console","error","prettyPrint","fail","exports"],"sources":["../../../src/runners/run-sync.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,OAAA,gBAAAC,OAAA;AAEA,IAAAC,CAAA,gBAAAD,OAAA;AACA,IAAAE,mBAAA,gBAAAF,OAAA;AAKO,MAAMG,OAAO,GAAGA,CACrBC,MAA2B,EAC3BC,OAAA,GAA8BH,mBAAA,CAAAI,yBAAyB,KAEvDP,OAAA,CAAAQ,MAAM,CAACJ,OAAO,CACZ,IAAAJ,OAAA,CAAAS,IAAI,EACFJ,MAAM,EACNL,OAAA,CAAAQ,MAAM,CAACE,OAAO,EACdV,OAAA,CAAAQ,MAAM,CAACG,QAAQ,CAAEC,CAAC,IAAI;EACpB,IAAIN,OAAO,CAACO,OAAO,KAAK,IAAI,EAAE;IAC5BC,OAAO,CAACC,KAAK,CAAC,IAAAb,CAAA,CAAAc,WAAW,EAACJ,CAAC,EAAEN,OAAO,CAAC,CAAC;IAEtC,OAAON,OAAA,CAAAQ,MAAM,CAACS,IAAI,CAAC,mBAAmB,CAAU;EAClD;EAEA,OAAOjB,OAAA,CAAAQ,MAAM,CAACS,IAAI,CAACL,CAAC,CAAC;AACvB,CAAC,CAAC,CACH,CACF;AAACM,OAAA,CAAAd,OAAA,GAAAA,OAAA","ignoreList":[]}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.PrettyError = void 0;
7
+ class PrettyError {
8
+ message;
9
+ stack;
10
+ span;
11
+ isPlainString;
12
+ errorType;
13
+ constructor(message, stack, span, isPlainString, errorType) {
14
+ this.message = message;
15
+ this.stack = stack;
16
+ this.span = span;
17
+ this.isPlainString = isPlainString;
18
+ this.errorType = errorType;
19
+ }
20
+ }
21
+ exports.PrettyError = PrettyError;
22
+ //# sourceMappingURL=pretty-error.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pretty-error.type.js","names":["PrettyError","message","stack","span","isPlainString","errorType","constructor","exports"],"sources":["../../../src/types/pretty-error.type.ts"],"sourcesContent":[null],"mappings":";;;;;;AAEM,MAAOA,WAAW;EAEXC,OAAA;EACAC,KAAA;EACAC,IAAA;EACAC,aAAA;EACAC,SAAA;EALXC,YACWL,OAAgB,EAChBC,KAAyB,EACzBC,IAAsB,EACtBC,aAAsB,EACtBC,SAAmB;IAJnB,KAAAJ,OAAO,GAAPA,OAAO;IACP,KAAAC,KAAK,GAALA,KAAK;IACL,KAAAC,IAAI,GAAJA,IAAI;IACJ,KAAAC,aAAa,GAAbA,aAAa;IACb,KAAAC,SAAS,GAATA,SAAS;EACjB;;AACJE,OAAA,CAAAP,WAAA,GAAAA,WAAA","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.prettyPrintOptionsDefault = void 0;
7
+ const prettyPrintOptionsDefault = exports.prettyPrintOptionsDefault = {
8
+ enabled: true,
9
+ stripCwd: false,
10
+ reverseSpans: true
11
+ };
12
+ //# sourceMappingURL=pretty-print-options.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pretty-print-options.type.js","names":["prettyPrintOptionsDefault","exports","enabled","stripCwd","reverseSpans"],"sources":["../../../src/types/pretty-print-options.type.ts"],"sourcesContent":[null],"mappings":";;;;;;AAMO,MAAMA,yBAAyB,GAAAC,OAAA,CAAAD,yBAAA,GAAuB;EAC3DE,OAAO,EAAE,IAAI;EACbC,QAAQ,EAAE,KAAK;EACfC,YAAY,EAAE;CACf","ignoreList":[]}
@@ -8,8 +8,8 @@ export interface ErrorSpan {
8
8
  export interface ErrorData {
9
9
  errorType: unknown;
10
10
  message: unknown;
11
- stack?: string;
12
- effectStacktrace?: string;
11
+ stack?: string[];
12
+ effectStacktrace?: string[];
13
13
  spans?: ErrorSpan[];
14
14
  isPlainString: boolean;
15
15
  }
@@ -22,3 +22,4 @@ export interface CaptureErrorsOptions {
22
22
  stripCwd?: boolean;
23
23
  }
24
24
  export declare const captureErrors: <E>(cause: Cause<E>, { reverseSpans, stripCwd }?: CaptureErrorsOptions) => CapturedErrors;
25
+ //# sourceMappingURL=capture-errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture-errors.d.ts","sourceRoot":"","sources":["../../src/capture-errors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,KAAK,EAAqB,MAAM,cAAc,CAAC;AAC7D,OAAO,EAA2B,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAMzE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,aAAa,aACjB,MAAM,CAAC,CAAC,+BACa,oBAAoB,KAI/C,cAsDF,CAAC"}
package/dts/index.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ export * from './pretty-print';
2
+ export * from './runners/run-promise';
3
+ export * from './runners/run-sync';
4
+ export * from './types/pretty-print-options.type';
5
+ export * from './capture-errors';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mCAAmC,CAAC;AAClD,cAAc,kBAAkB,CAAC"}
@@ -1,3 +1,4 @@
1
1
  import { type Cause } from 'effect/Cause';
2
2
  import { type PrettyError } from '../../types/pretty-error.type';
3
3
  export declare const captureErrorsFrom: <E>(cause: Cause<E>) => readonly PrettyError[];
4
+ //# sourceMappingURL=capture-errors-from-cause.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture-errors-from-cause.d.ts","sourceRoot":"","sources":["../../../../src/logic/errors/capture-errors-from-cause.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAqB,MAAM,cAAc,CAAC;AAE7D,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAIjE,eAAO,MAAM,iBAAiB,aAAc,MAAM,CAAC,CAAC,KAAG,SAAS,WAAW,EAQvE,CAAC"}
@@ -5,3 +5,4 @@ interface ErrorDetails {
5
5
  }
6
6
  export declare const extractErrorDetails: (error: unknown) => ErrorDetails;
7
7
  export {};
8
+ //# sourceMappingURL=extract-error-details.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-error-details.d.ts","sourceRoot":"","sources":["../../../../src/logic/errors/extract-error-details.ts"],"names":[],"mappings":"AAGA,UAAU,YAAY;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,eAAO,MAAM,mBAAmB,UAAW,OAAO,KAAG,YA+DpD,CAAC"}
@@ -1,2 +1,3 @@
1
1
  import { PrettyError } from '../../types/pretty-error.type';
2
2
  export declare const parseError: (error: unknown) => PrettyError;
3
+ //# sourceMappingURL=parse-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-error.d.ts","sourceRoot":"","sources":["../../../../src/logic/errors/parse-error.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAM5D,eAAO,MAAM,UAAU,UAAW,OAAO,KAAG,WAoB3C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const formatFailuresTitle: (errorType: unknown, message: unknown, failuresLength: number, failureIndex: number) => string;
2
+ //# sourceMappingURL=format-failures-title.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-failures-title.d.ts","sourceRoot":"","sources":["../../../../src/logic/pretty-printing/format-failures-title.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,cACnB,OAAO,WACT,OAAO,kBACA,MAAM,gBACR,MAAM,WAUd,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { type Span } from 'effect/Tracer';
2
+ import { type PrettyPrintOptions } from '../../types/pretty-print-options.type';
3
+ export declare const formatSpanAttributes: (span: Span | undefined, { stripCwd, reverseSpans }: PrettyPrintOptions) => {
4
+ message: string;
5
+ stack: string[];
6
+ };
7
+ //# sourceMappingURL=format-span-attributes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-span-attributes.d.ts","sourceRoot":"","sources":["../../../../src/logic/pretty-printing/format-span-attributes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,KAAK,IAAI,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAMhF,eAAO,MAAM,oBAAoB,SACzB,IAAI,GAAG,SAAS,8BACM,kBAAkB;;;CAiD/C,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type Span } from 'effect/Tracer';
2
+ import { type PrettyPrintOptions } from '../../types/pretty-print-options.type';
3
+ export declare const maybePrintNodeStacktrace: (d: string[], span: Span | undefined, stack: string | undefined, isPlainString: boolean, { stripCwd }: PrettyPrintOptions) => void;
4
+ //# sourceMappingURL=maybe-print-node-stacktrace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maybe-print-node-stacktrace.d.ts","sourceRoot":"","sources":["../../../../src/logic/pretty-printing/maybe-print-node-stacktrace.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAGhF,eAAO,MAAM,wBAAwB,MAChC,MAAM,EAAE,QACL,IAAI,GAAG,SAAS,SACf,MAAM,GAAG,SAAS,iBACV,OAAO,gBACR,kBAAkB,SAWjC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type Span } from 'effect/Tracer';
2
+ import { type PrettyPrintOptions } from '../../types/pretty-print-options.type';
3
+ export declare const maybePrintSpanAttributes: (d: string[], span: Span | undefined, isPlainString: boolean, { stripCwd, reverseSpans }: PrettyPrintOptions) => string[] | undefined;
4
+ //# sourceMappingURL=maybe-print-span-attributes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maybe-print-span-attributes.d.ts","sourceRoot":"","sources":["../../../../src/logic/pretty-printing/maybe-print-span-attributes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAIhF,eAAO,MAAM,wBAAwB,MAChC,MAAM,EAAE,QACL,IAAI,GAAG,SAAS,iBACP,OAAO,8BACM,kBAAkB,yBAiB/C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const maybeWarnAboutPlainStrings: (d: string[], isPlainString: boolean) => void;
2
+ //# sourceMappingURL=maybe-warn-about-plain-strings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maybe-warn-about-plain-strings.d.ts","sourceRoot":"","sources":["../../../../src/logic/pretty-printing/maybe-warn-about-plain-strings.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,0BAA0B,MAClC,MAAM,EAAE,iBACI,OAAO,SASvB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type Span } from 'effect/Tracer';
2
+ import { type PrettyPrintOptions } from '../../types/pretty-print-options.type';
3
+ export declare const printEffectStacktrace: (d: string[], span: Span | undefined, spanAttributesStack: string[] | undefined, { stripCwd }: PrettyPrintOptions) => void;
4
+ //# sourceMappingURL=print-effect-stacktrace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"print-effect-stacktrace.d.ts","sourceRoot":"","sources":["../../../../src/logic/pretty-printing/print-effect-stacktrace.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAGhF,eAAO,MAAM,qBAAqB,MAC7B,MAAM,EAAE,QACL,IAAI,GAAG,SAAS,uBACD,MAAM,EAAE,GAAG,SAAS,gBAC3B,kBAAkB,SAUjC,CAAC"}
@@ -2,3 +2,4 @@ export declare const getSpanAttributes: (allAttributes: ReadonlyMap<string, unkn
2
2
  formattedAttributes: string;
3
3
  stack: string[];
4
4
  };
5
+ //# sourceMappingURL=get-span-attributes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-span-attributes.d.ts","sourceRoot":"","sources":["../../../../src/logic/spans/get-span-attributes.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,iBAAiB,kBACb,YAAY,MAAM,EAAE,OAAO,CAAC,eAC9B,OAAO;;;CAmBrB,CAAC"}
@@ -1,2 +1,3 @@
1
1
  import { type SpanStatus } from 'effect/Tracer';
2
2
  export declare const getSpanDuration: (status: SpanStatus, isLastEntry: boolean) => string;
3
+ //# sourceMappingURL=get-span-duration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-span-duration.d.ts","sourceRoot":"","sources":["../../../../src/logic/spans/get-span-duration.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,eAAO,MAAM,eAAe,WAAY,UAAU,eAAe,OAAO,WAQvE,CAAC"}
@@ -1 +1,2 @@
1
1
  export declare const spanStackTrailingChar: (isLastEntry: boolean) => string;
2
+ //# sourceMappingURL=spans-stack-trailing-char.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spans-stack-trailing-char.d.ts","sourceRoot":"","sources":["../../../../src/logic/spans/spans-stack-trailing-char.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,qBAAqB,gBAAiB,OAAO,WACT,CAAC"}
@@ -4,3 +4,4 @@ interface FilteredEffectAttributes {
4
4
  }
5
5
  export declare const splitSpansAttributesByTypes: (attributes: ReadonlyMap<string, unknown>) => FilteredEffectAttributes;
6
6
  export {};
7
+ //# sourceMappingURL=split-spans-attributes-by-type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"split-spans-attributes-by-type.d.ts","sourceRoot":"","sources":["../../../../src/logic/spans/split-spans-attributes-by-type.ts"],"names":[],"mappings":"AAAA,UAAU,wBAAwB;IAChC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1C;AAED,eAAO,MAAM,2BAA2B,eAC1B,YAAY,MAAM,EAAE,OAAO,CAAC,6BAoBvC,CAAC"}
@@ -1 +1,2 @@
1
1
  export declare const filterStack: (stack: string, stripCwd: boolean) => string;
2
+ //# sourceMappingURL=filter-stack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-stack.d.ts","sourceRoot":"","sources":["../../../../src/logic/stack/filter-stack.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,UAAW,MAAM,YAAY,OAAO,WAe3D,CAAC"}
@@ -1 +1,2 @@
1
1
  export declare const stripCwdPath: (path: string) => string;
2
+ //# sourceMappingURL=strip-cwd-path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strip-cwd-path.d.ts","sourceRoot":"","sources":["../../../src/logic/strip-cwd-path.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,YAAY,SAAU,MAAM,KAAG,MACY,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type Cause } from 'effect/Cause';
2
+ import { type PrettyPrintOptions } from './types/pretty-print-options.type';
3
+ export declare const prettyPrint: <E>(cause: Cause<E>, options?: PrettyPrintOptions) => string;
4
+ //# sourceMappingURL=pretty-print.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pretty-print.d.ts","sourceRoot":"","sources":["../../src/pretty-print.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,KAAK,EAAqB,MAAM,cAAc,CAAC;AAQ7D,OAAO,EACL,KAAK,kBAAkB,EAExB,MAAM,mCAAmC,CAAC;AAE3C,eAAO,MAAM,WAAW,aACf,MAAM,CAAC,CAAC,YACN,kBAAkB,KAC1B,MA6CF,CAAC"}
@@ -1,3 +1,4 @@
1
1
  import { Effect } from 'effect';
2
2
  import { type PrettyPrintOptions } from '../types/pretty-print-options.type';
3
3
  export declare const runPromise: <A, E>(effect: Effect.Effect<A, E>, options?: PrettyPrintOptions) => Promise<A>;
4
+ //# sourceMappingURL=run-promise.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-promise.d.ts","sourceRoot":"","sources":["../../../src/runners/run-promise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAQ,MAAM,QAAQ,CAAC;AAGtC,OAAO,EACL,KAAK,kBAAkB,EAExB,MAAM,oCAAoC,CAAC;AAE5C,eAAO,MAAM,UAAU,iBACb,OAAO,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,YAClB,kBAAkB,KAC1B,QAAQ,CAAC,CAeT,CAAC"}
@@ -1,3 +1,4 @@
1
1
  import { Effect } from 'effect';
2
2
  import { type PrettyPrintOptions } from '../types/pretty-print-options.type';
3
3
  export declare const runSync: <A, E>(effect: Effect.Effect<A, E>, options?: PrettyPrintOptions) => A;
4
+ //# sourceMappingURL=run-sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-sync.d.ts","sourceRoot":"","sources":["../../../src/runners/run-sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAQ,MAAM,QAAQ,CAAC;AAGtC,OAAO,EACL,KAAK,kBAAkB,EAExB,MAAM,oCAAoC,CAAC;AAE5C,eAAO,MAAM,OAAO,iBACV,OAAO,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,YAClB,kBAAkB,KAC1B,CAeA,CAAC"}
@@ -7,3 +7,4 @@ export declare class PrettyError {
7
7
  readonly errorType?: unknown;
8
8
  constructor(message: unknown, stack: string | undefined, span: Span | undefined, isPlainString: boolean, errorType?: unknown);
9
9
  }
10
+ //# sourceMappingURL=pretty-error.type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pretty-error.type.d.ts","sourceRoot":"","sources":["../../../src/types/pretty-error.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,qBAAa,WAAW;IAEpB,QAAQ,CAAC,OAAO,EAAE,OAAO;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS;IAClC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS;IAC/B,QAAQ,CAAC,aAAa,EAAE,OAAO;IAC/B,QAAQ,CAAC,SAAS,CAAC;gBAJV,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,IAAI,EAAE,IAAI,GAAG,SAAS,EACtB,aAAa,EAAE,OAAO,EACtB,SAAS,CAAC,SAAS;CAE/B"}
@@ -4,3 +4,4 @@ export interface PrettyPrintOptions {
4
4
  reverseSpans?: boolean;
5
5
  }
6
6
  export declare const prettyPrintOptionsDefault: PrettyPrintOptions;
7
+ //# sourceMappingURL=pretty-print-options.type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pretty-print-options.type.d.ts","sourceRoot":"","sources":["../../../src/types/pretty-print-options.type.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,yBAAyB,EAAE,kBAIvC,CAAC"}
@@ -0,0 +1,67 @@
1
+ import { Option } from 'effect';
2
+ import { isInterruptedOnly } from 'effect/Cause';
3
+ import { captureErrorsFrom } from './logic/errors/capture-errors-from-cause';
4
+ import { splitSpansAttributesByTypes } from './logic/spans/split-spans-attributes-by-type';
5
+ import { stripCwdPath } from './logic/strip-cwd-path';
6
+ export const captureErrors = (cause, {
7
+ reverseSpans,
8
+ stripCwd
9
+ } = {
10
+ reverseSpans: true,
11
+ stripCwd: true
12
+ }) => {
13
+ if (isInterruptedOnly(cause)) {
14
+ return {
15
+ interrupted: true,
16
+ errors: []
17
+ };
18
+ }
19
+ const errors = captureErrorsFrom(cause).map(({
20
+ message,
21
+ stack: maybeStack,
22
+ span,
23
+ errorType,
24
+ isPlainString
25
+ }) => {
26
+ const effectStacktrace = [];
27
+ const spans = [];
28
+ if (span !== undefined) {
29
+ let current = span;
30
+ while (current !== undefined && current._tag === 'Span') {
31
+ const {
32
+ name,
33
+ attributes: allAttributes,
34
+ status
35
+ } = current;
36
+ const {
37
+ attributes,
38
+ stacktrace
39
+ } = splitSpansAttributesByTypes(allAttributes);
40
+ effectStacktrace.push(...stacktrace);
41
+ spans.push({
42
+ name,
43
+ attributes,
44
+ status
45
+ });
46
+ current = Option.getOrUndefined(current.parent);
47
+ }
48
+ }
49
+ let stack;
50
+ if (maybeStack !== undefined) {
51
+ stack = stripCwd === true ? stripCwdPath(maybeStack) : maybeStack;
52
+ }
53
+ return {
54
+ errorType,
55
+ message,
56
+ stack: stack?.replaceAll(/ {4}at /g, 'at ').split('\r\n'),
57
+ effectStacktrace: effectStacktrace.length > 0 ? effectStacktrace : undefined,
58
+ spans: reverseSpans === true ? spans.toReversed() : spans,
59
+ isPlainString
60
+ };
61
+ });
62
+ return {
63
+ interrupted: false,
64
+ errors
65
+ };
66
+ };
67
+ //# sourceMappingURL=capture-errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture-errors.js","names":["Option","isInterruptedOnly","captureErrorsFrom","splitSpansAttributesByTypes","stripCwdPath","captureErrors","cause","reverseSpans","stripCwd","interrupted","errors","map","message","stack","maybeStack","span","errorType","isPlainString","effectStacktrace","spans","undefined","current","_tag","name","attributes","allAttributes","status","stacktrace","push","getOrUndefined","parent","replaceAll","split","length","toReversed"],"sources":["../../src/capture-errors.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,MAAM,QAAQ,QAAQ;AAC/B,SAAqBC,iBAAiB,QAAQ,cAAc;AAG5D,SAASC,iBAAiB,QAAQ,0CAA0C;AAC5E,SAASC,2BAA2B,QAAQ,8CAA8C;AAC1F,SAASC,YAAY,QAAQ,wBAAwB;AA2BrD,OAAO,MAAMC,aAAa,GAAGA,CAC3BC,KAAe,EACf;EAAEC,YAAY;EAAEC;AAAQ,IAA2B;EACjDD,YAAY,EAAE,IAAI;EAClBC,QAAQ,EAAE;CACX,KACiB;EAClB,IAAIP,iBAAiB,CAACK,KAAK,CAAC,EAAE;IAC5B,OAAO;MACLG,WAAW,EAAE,IAAI;MACjBC,MAAM,EAAE;KACT;EACH;EAEA,MAAMA,MAAM,GAAGR,iBAAiB,CAAII,KAAK,CAAC,CAACK,GAAG,CAC5C,CAAC;IAAEC,OAAO;IAAEC,KAAK,EAAEC,UAAU;IAAEC,IAAI;IAAEC,SAAS;IAAEC;EAAa,CAAE,KAAI;IACjE,MAAMC,gBAAgB,GAAa,EAAE;IACrC,MAAMC,KAAK,GAAG,EAAE;IAEhB,IAAIJ,IAAI,KAAKK,SAAS,EAAE;MACtB,IAAIC,OAAO,GAA+BN,IAAI;MAE9C,OAAOM,OAAO,KAAKD,SAAS,IAAIC,OAAO,CAACC,IAAI,KAAK,MAAM,EAAE;QACvD,MAAM;UAAEC,IAAI;UAAEC,UAAU,EAAEC,aAAa;UAAEC;QAAM,CAAE,GAAGL,OAAO;QAE3D,MAAM;UAAEG,UAAU;UAAEG;QAAU,CAAE,GAC9BxB,2BAA2B,CAACsB,aAAa,CAAC;QAE5CP,gBAAgB,CAACU,IAAI,CAAC,GAAGD,UAAU,CAAC;QAEpCR,KAAK,CAACS,IAAI,CAAC;UACTL,IAAI;UACJC,UAAU;UACVE;SACD,CAAC;QACFL,OAAO,GAAGrB,MAAM,CAAC6B,cAAc,CAACR,OAAO,CAACS,MAAM,CAAC;MACjD;IACF;IAEA,IAAIjB,KAAK;IACT,IAAIC,UAAU,KAAKM,SAAS,EAAE;MAC5BP,KAAK,GAAGL,QAAQ,KAAK,IAAI,GAAGJ,YAAY,CAACU,UAAU,CAAC,GAAGA,UAAU;IACnE;IAEA,OAAO;MACLE,SAAS;MACTJ,OAAO;MACPC,KAAK,EAAEA,KAAK,EAAEkB,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,CAACC,KAAK,CAAC,MAAM,CAAC;MACzDd,gBAAgB,EACdA,gBAAgB,CAACe,MAAM,GAAG,CAAC,GAAGf,gBAAgB,GAAGE,SAAS;MAC5DD,KAAK,EAAEZ,YAAY,KAAK,IAAI,GAAGY,KAAK,CAACe,UAAU,EAAE,GAAGf,KAAK;MACzDF;KACD;EACH,CAAC,CACF;EAED,OAAO;IACLR,WAAW,EAAE,KAAK;IAClBC;GACD;AACH,CAAC","ignoreList":[]}
@@ -3,3 +3,4 @@ export * from './runners/run-promise';
3
3
  export * from './runners/run-sync';
4
4
  export * from './types/pretty-print-options.type';
5
5
  export * from './capture-errors';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc,gBAAgB;AAC9B,cAAc,uBAAuB;AACrC,cAAc,oBAAoB;AAClC,cAAc,mCAAmC;AACjD,cAAc,kBAAkB","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ import { reduceWithContext } from 'effect/Cause';
2
+ import { parseError } from './parse-error';
3
+ export const captureErrorsFrom = cause => reduceWithContext(cause, undefined, {
4
+ emptyCase: () => [],
5
+ dieCase: (_, unknownError) => [parseError(unknownError)],
6
+ failCase: (_, error) => [parseError(error)],
7
+ interruptCase: () => [],
8
+ parallelCase: (_, l, r) => [...l, ...r],
9
+ sequentialCase: (_, l, r) => [...l, ...r]
10
+ });
11
+ //# sourceMappingURL=capture-errors-from-cause.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture-errors-from-cause.js","names":["reduceWithContext","parseError","captureErrorsFrom","cause","undefined","emptyCase","dieCase","_","unknownError","failCase","error","interruptCase","parallelCase","l","r","sequentialCase"],"sources":["../../../../src/logic/errors/capture-errors-from-cause.ts"],"sourcesContent":[null],"mappings":"AAAA,SAAqBA,iBAAiB,QAAQ,cAAc;AAI5D,SAASC,UAAU,QAAQ,eAAe;AAE1C,OAAO,MAAMC,iBAAiB,GAAOC,KAAe,IAClDH,iBAAiB,CAACG,KAAK,EAAEC,SAAS,EAAE;EAClCC,SAAS,EAAEA,CAAA,KAA8B,EAAE;EAC3CC,OAAO,EAAEA,CAACC,CAAC,EAAEC,YAAY,KAAK,CAACP,UAAU,CAACO,YAAY,CAAC,CAAC;EACxDC,QAAQ,EAAEA,CAACF,CAAC,EAAEG,KAAK,KAAK,CAACT,UAAU,CAACS,KAAK,CAAC,CAAC;EAC3CC,aAAa,EAAEA,CAAA,KAAM,EAAE;EACvBC,YAAY,EAAEA,CAACL,CAAC,EAAEM,CAAC,EAAEC,CAAC,KAAK,CAAC,GAAGD,CAAC,EAAE,GAAGC,CAAC,CAAC;EACvCC,cAAc,EAAEA,CAACR,CAAC,EAAEM,CAAC,EAAEC,CAAC,KAAK,CAAC,GAAGD,CAAC,EAAE,GAAGC,CAAC;CACzC,CAAC","ignoreList":[]}
@@ -0,0 +1,56 @@
1
+ import { isFunction } from 'effect/Function';
2
+ import { hasProperty } from 'effect/Predicate';
3
+ export const extractErrorDetails = error => {
4
+ if (typeof error === 'string') {
5
+ return {
6
+ isPlainString: true,
7
+ message: error
8
+ };
9
+ }
10
+ // TaggedError with cause
11
+ if (error instanceof Error && hasProperty(error, 'cause') && hasProperty(error, '_tag')) {
12
+ return {
13
+ isPlainString: false,
14
+ type: error._tag,
15
+ message: error.cause
16
+ };
17
+ }
18
+ // TaggedError with error ctor
19
+ if (error instanceof Error && hasProperty(error, 'error')) {
20
+ return {
21
+ isPlainString: false,
22
+ type: error.name,
23
+ message: error.error
24
+ };
25
+ }
26
+ // Plain objects with tag attribute
27
+ if (hasProperty(error, '_tag') && hasProperty(error, 'message')) {
28
+ return {
29
+ isPlainString: false,
30
+ type: error._tag,
31
+ message: error.message
32
+ };
33
+ }
34
+ // Plain objects with toString impl
35
+ if (hasProperty(error, 'toString') && isFunction(error.toString) && error.toString !== Object.prototype.toString && error.toString !== Array.prototype.toString) {
36
+ const message = error.toString();
37
+ const maybeWithUnderlyingType = message.split(': ');
38
+ if (maybeWithUnderlyingType.length > 1) {
39
+ const [type, ...message] = maybeWithUnderlyingType;
40
+ return {
41
+ isPlainString: false,
42
+ type,
43
+ message
44
+ };
45
+ }
46
+ return {
47
+ message,
48
+ isPlainString: false
49
+ };
50
+ }
51
+ return {
52
+ message: `Error: ${JSON.stringify(error)}`,
53
+ isPlainString: false
54
+ };
55
+ };
56
+ //# sourceMappingURL=extract-error-details.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-error-details.js","names":["isFunction","hasProperty","extractErrorDetails","error","isPlainString","message","Error","type","_tag","cause","name","toString","Object","prototype","Array","maybeWithUnderlyingType","split","length","JSON","stringify"],"sources":["../../../../src/logic/errors/extract-error-details.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAU,QAAQ,iBAAiB;AAC5C,SAASC,WAAW,QAAQ,kBAAkB;AAQ9C,OAAO,MAAMC,mBAAmB,GAAIC,KAAc,IAAkB;EAClE,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC7B,OAAO;MACLC,aAAa,EAAE,IAAI;MACnBC,OAAO,EAAEF;KACV;EACH;EAEA;EACA,IACEA,KAAK,YAAYG,KAAK,IACtBL,WAAW,CAACE,KAAK,EAAE,OAAO,CAAC,IAC3BF,WAAW,CAACE,KAAK,EAAE,MAAM,CAAC,EAC1B;IACA,OAAO;MACLC,aAAa,EAAE,KAAK;MACpBG,IAAI,EAAEJ,KAAK,CAACK,IAAI;MAChBH,OAAO,EAAEF,KAAK,CAACM;KAChB;EACH;EAEA;EACA,IAAIN,KAAK,YAAYG,KAAK,IAAIL,WAAW,CAACE,KAAK,EAAE,OAAO,CAAC,EAAE;IACzD,OAAO;MACLC,aAAa,EAAE,KAAK;MACpBG,IAAI,EAAEJ,KAAK,CAACO,IAAI;MAChBL,OAAO,EAAEF,KAAK,CAACA;KAChB;EACH;EAEA;EACA,IAAIF,WAAW,CAACE,KAAK,EAAE,MAAM,CAAC,IAAIF,WAAW,CAACE,KAAK,EAAE,SAAS,CAAC,EAAE;IAC/D,OAAO;MACLC,aAAa,EAAE,KAAK;MACpBG,IAAI,EAAEJ,KAAK,CAACK,IAAI;MAChBH,OAAO,EAAEF,KAAK,CAACE;KAChB;EACH;EAEA;EACA,IACEJ,WAAW,CAACE,KAAK,EAAE,UAAU,CAAC,IAC9BH,UAAU,CAACG,KAAK,CAACQ,QAAQ,CAAC,IAC1BR,KAAK,CAACQ,QAAQ,KAAKC,MAAM,CAACC,SAAS,CAACF,QAAQ,IAC5CR,KAAK,CAACQ,QAAQ,KAAKG,KAAK,CAACD,SAAS,CAACF,QAAQ,EAC3C;IACA,MAAMN,OAAO,GAAGF,KAAK,CAACQ,QAAQ,EAAE;IAChC,MAAMI,uBAAuB,GAAGV,OAAO,CAACW,KAAK,CAAC,IAAI,CAAC;IAEnD,IAAID,uBAAuB,CAACE,MAAM,GAAG,CAAC,EAAE;MACtC,MAAM,CAACV,IAAI,EAAE,GAAGF,OAAO,CAAC,GAAGU,uBAAuB;MAElD,OAAO;QACLX,aAAa,EAAE,KAAK;QACpBG,IAAI;QACJF;OACD;IACH;IAEA,OAAO;MAAEA,OAAO;MAAED,aAAa,EAAE;IAAK,CAAE;EAC1C;EAEA,OAAO;IAAEC,OAAO,EAAE,UAAUa,IAAI,CAACC,SAAS,CAAChB,KAAK,CAAC,EAAE;IAAEC,aAAa,EAAE;EAAK,CAAE;AAC7E,CAAC","ignoreList":[]}
@@ -0,0 +1,17 @@
1
+ import { hasProperty } from 'effect/Predicate';
2
+ import { PrettyError } from '../../types/pretty-error.type';
3
+ import { extractErrorDetails } from './extract-error-details';
4
+ const spanSymbol = /*#__PURE__*/Symbol.for('effect/SpanAnnotation');
5
+ export const parseError = error => {
6
+ const span = hasProperty(error, spanSymbol) ? error[spanSymbol] : undefined;
7
+ const {
8
+ message,
9
+ type,
10
+ isPlainString
11
+ } = extractErrorDetails(error);
12
+ if (error instanceof Error) {
13
+ return new PrettyError(message, error.stack?.split('\n').filter(el => /at (.*)/.exec(el)).join('\r\n'), span, false, type);
14
+ }
15
+ return new PrettyError(message, undefined, span, isPlainString, type);
16
+ };
17
+ //# sourceMappingURL=parse-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-error.js","names":["hasProperty","PrettyError","extractErrorDetails","spanSymbol","Symbol","for","parseError","error","span","undefined","message","type","isPlainString","Error","stack","split","filter","el","exec","join"],"sources":["../../../../src/logic/errors/parse-error.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,WAAW,QAAQ,kBAAkB;AAG9C,SAASC,WAAW,QAAQ,+BAA+B;AAE3D,SAASC,mBAAmB,QAAQ,yBAAyB;AAE7D,MAAMC,UAAU,gBAAGC,MAAM,CAACC,GAAG,CAAC,uBAAuB,CAAC;AAEtD,OAAO,MAAMC,UAAU,GAAIC,KAAc,IAAiB;EACxD,MAAMC,IAAI,GAAGR,WAAW,CAACO,KAAK,EAAEJ,UAAU,CAAC,GACtCI,KAAK,CAACJ,UAAU,CAAU,GAC3BM,SAAS;EACb,MAAM;IAAEC,OAAO;IAAEC,IAAI;IAAEC;EAAa,CAAE,GAAGV,mBAAmB,CAACK,KAAK,CAAC;EAEnE,IAAIA,KAAK,YAAYM,KAAK,EAAE;IAC1B,OAAO,IAAIZ,WAAW,CACpBS,OAAO,EACPH,KAAK,CAACO,KAAK,EACPC,KAAK,CAAC,IAAI,CAAC,CACZC,MAAM,CAAEC,EAAE,IAAK,SAAS,CAACC,IAAI,CAACD,EAAE,CAAC,CAAC,CAClCE,IAAI,CAAC,MAAM,CAAC,EACfX,IAAI,EACJ,KAAK,EACLG,IAAI,CACL;EACH;EAEA,OAAO,IAAIV,WAAW,CAACS,OAAO,EAAED,SAAS,EAAED,IAAI,EAAEI,aAAa,EAAED,IAAI,CAAC;AACvE,CAAC","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import chalk from 'chalk';
2
+ export const formatFailuresTitle = (errorType, message, failuresLength, failureIndex) => '💥 ' + (failuresLength > 1 ? chalk.bgRed.whiteBright(` #${failureIndex + 1} -`) : '') + chalk.bgRed.whiteBright(` ${errorType ?? 'Unknown error'} `) + chalk.bold.whiteBright(` • ${message}`) + '\r\n';
3
+ //# sourceMappingURL=format-failures-title.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-failures-title.js","names":["chalk","formatFailuresTitle","errorType","message","failuresLength","failureIndex","bgRed","whiteBright","bold"],"sources":["../../../../src/logic/pretty-printing/format-failures-title.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,OAAO,MAAMC,mBAAmB,GAAGA,CACjCC,SAAkB,EAClBC,OAAgB,EAChBC,cAAsB,EACtBC,YAAoB,KAEpB,KAAK,IACJD,cAAc,GAAG,CAAC,GACfJ,KAAK,CAACM,KAAK,CAACC,WAAW,CAAC,KAAKF,YAAY,GAAG,CAAC,IAAI,CAAC,GAClD,EAAE,CAAC,GACPL,KAAK,CAACM,KAAK,CAACC,WAAW,CACrB,IAAKL,SAAgC,IAAI,eAAe,GAAG,CAC5D,GACDF,KAAK,CAACQ,IAAI,CAACD,WAAW,CAAC,MAAMJ,OAAiB,EAAE,CAAC,GACjD,MAAM","ignoreList":[]}