@quenty/cli-output-helpers 1.10.0 → 1.11.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 (155) hide show
  1. package/CHANGELOG.md +28 -96
  2. package/dist/outputHelper.d.ts +5 -0
  3. package/dist/outputHelper.d.ts.map +1 -1
  4. package/dist/outputHelper.js +10 -1
  5. package/dist/outputHelper.js.map +1 -1
  6. package/dist/reporting/build-result-reporter.d.ts +33 -0
  7. package/dist/reporting/build-result-reporter.d.ts.map +1 -0
  8. package/dist/reporting/build-result-reporter.js +33 -0
  9. package/dist/reporting/build-result-reporter.js.map +1 -0
  10. package/dist/reporting/build-result-reporter.test.d.ts +2 -0
  11. package/dist/reporting/build-result-reporter.test.d.ts.map +1 -0
  12. package/dist/reporting/build-result-reporter.test.js +42 -0
  13. package/dist/reporting/build-result-reporter.test.js.map +1 -0
  14. package/dist/reporting/composite-reporter.d.ts.map +1 -1
  15. package/dist/reporting/composite-reporter.js.map +1 -1
  16. package/dist/reporting/composite-result-reporter.d.ts +15 -0
  17. package/dist/reporting/composite-result-reporter.d.ts.map +1 -0
  18. package/dist/reporting/composite-result-reporter.js +43 -0
  19. package/dist/reporting/composite-result-reporter.js.map +1 -0
  20. package/dist/reporting/composite-result-reporter.test.d.ts +2 -0
  21. package/dist/reporting/composite-result-reporter.test.d.ts.map +1 -0
  22. package/dist/reporting/composite-result-reporter.test.js +61 -0
  23. package/dist/reporting/composite-result-reporter.test.js.map +1 -0
  24. package/dist/reporting/file-result-reporter.d.ts +29 -0
  25. package/dist/reporting/file-result-reporter.d.ts.map +1 -0
  26. package/dist/reporting/file-result-reporter.js +61 -0
  27. package/dist/reporting/file-result-reporter.js.map +1 -0
  28. package/dist/reporting/file-result-reporter.test.d.ts +2 -0
  29. package/dist/reporting/file-result-reporter.test.d.ts.map +1 -0
  30. package/dist/reporting/file-result-reporter.test.js +78 -0
  31. package/dist/reporting/file-result-reporter.test.js.map +1 -0
  32. package/dist/reporting/format-json.d.ts +9 -0
  33. package/dist/reporting/format-json.d.ts.map +1 -0
  34. package/dist/reporting/format-json.js +12 -0
  35. package/dist/reporting/format-json.js.map +1 -0
  36. package/dist/reporting/format-json.test.d.ts +2 -0
  37. package/dist/reporting/format-json.test.d.ts.map +1 -0
  38. package/dist/reporting/format-json.test.js +29 -0
  39. package/dist/reporting/format-json.test.js.map +1 -0
  40. package/dist/reporting/format-table.d.ts +18 -0
  41. package/dist/reporting/format-table.d.ts.map +1 -0
  42. package/dist/reporting/format-table.js +61 -0
  43. package/dist/reporting/format-table.js.map +1 -0
  44. package/dist/reporting/format-table.test.d.ts +2 -0
  45. package/dist/reporting/format-table.test.d.ts.map +1 -0
  46. package/dist/reporting/format-table.test.js +90 -0
  47. package/dist/reporting/format-table.test.js.map +1 -0
  48. package/dist/reporting/github/annotations.d.ts.map +1 -1
  49. package/dist/reporting/github/annotations.js +1 -4
  50. package/dist/reporting/github/annotations.js.map +1 -1
  51. package/dist/reporting/github/annotations.test.js.map +1 -1
  52. package/dist/reporting/github/comment-table-reporter.d.ts.map +1 -1
  53. package/dist/reporting/github/comment-table-reporter.js.map +1 -1
  54. package/dist/reporting/github/formatting.d.ts.map +1 -1
  55. package/dist/reporting/github/formatting.js +9 -14
  56. package/dist/reporting/github/formatting.js.map +1 -1
  57. package/dist/reporting/github/job-summary-reporter.d.ts.map +1 -1
  58. package/dist/reporting/github/job-summary-reporter.js.map +1 -1
  59. package/dist/reporting/grouped-reporter.d.ts.map +1 -1
  60. package/dist/reporting/grouped-reporter.js +6 -2
  61. package/dist/reporting/grouped-reporter.js.map +1 -1
  62. package/dist/reporting/index.d.ts +9 -0
  63. package/dist/reporting/index.d.ts.map +1 -1
  64. package/dist/reporting/index.js +12 -1
  65. package/dist/reporting/index.js.map +1 -1
  66. package/dist/reporting/json-file-reporter.d.ts.map +1 -1
  67. package/dist/reporting/json-file-reporter.js +2 -1
  68. package/dist/reporting/json-file-reporter.js.map +1 -1
  69. package/dist/reporting/progress-format.d.ts.map +1 -1
  70. package/dist/reporting/progress-format.js.map +1 -1
  71. package/dist/reporting/reporter.d.ts.map +1 -1
  72. package/dist/reporting/reporter.js.map +1 -1
  73. package/dist/reporting/result-reporter.d.ts +37 -0
  74. package/dist/reporting/result-reporter.d.ts.map +1 -0
  75. package/dist/reporting/result-reporter.js +22 -0
  76. package/dist/reporting/result-reporter.js.map +1 -0
  77. package/dist/reporting/simple-reporter.d.ts.map +1 -1
  78. package/dist/reporting/simple-reporter.js +3 -1
  79. package/dist/reporting/simple-reporter.js.map +1 -1
  80. package/dist/reporting/spinner-reporter.d.ts.map +1 -1
  81. package/dist/reporting/spinner-reporter.js +4 -4
  82. package/dist/reporting/spinner-reporter.js.map +1 -1
  83. package/dist/reporting/spinner-reporter.test.js.map +1 -1
  84. package/dist/reporting/state/live-state-tracker.d.ts.map +1 -1
  85. package/dist/reporting/state/live-state-tracker.js +1 -1
  86. package/dist/reporting/state/live-state-tracker.js.map +1 -1
  87. package/dist/reporting/state/loaded-state-tracker.d.ts.map +1 -1
  88. package/dist/reporting/state/loaded-state-tracker.js.map +1 -1
  89. package/dist/reporting/state/state-tracker.d.ts.map +1 -1
  90. package/dist/reporting/stdout-result-reporter.d.ts +14 -0
  91. package/dist/reporting/stdout-result-reporter.d.ts.map +1 -0
  92. package/dist/reporting/stdout-result-reporter.js +16 -0
  93. package/dist/reporting/stdout-result-reporter.js.map +1 -0
  94. package/dist/reporting/stdout-result-reporter.test.d.ts +2 -0
  95. package/dist/reporting/stdout-result-reporter.test.d.ts.map +1 -0
  96. package/dist/reporting/stdout-result-reporter.test.js +28 -0
  97. package/dist/reporting/stdout-result-reporter.test.js.map +1 -0
  98. package/dist/reporting/summary-table-reporter.d.ts +2 -0
  99. package/dist/reporting/summary-table-reporter.d.ts.map +1 -1
  100. package/dist/reporting/summary-table-reporter.js +44 -33
  101. package/dist/reporting/summary-table-reporter.js.map +1 -1
  102. package/dist/reporting/watch-renderer.d.ts +16 -0
  103. package/dist/reporting/watch-renderer.d.ts.map +1 -0
  104. package/dist/reporting/watch-renderer.js +110 -0
  105. package/dist/reporting/watch-renderer.js.map +1 -0
  106. package/dist/reporting/watch-renderer.test.d.ts +2 -0
  107. package/dist/reporting/watch-renderer.test.d.ts.map +1 -0
  108. package/dist/reporting/watch-renderer.test.js +103 -0
  109. package/dist/reporting/watch-renderer.test.js.map +1 -0
  110. package/dist/reporting/watch-result-reporter.d.ts +21 -0
  111. package/dist/reporting/watch-result-reporter.d.ts.map +1 -0
  112. package/dist/reporting/watch-result-reporter.js +34 -0
  113. package/dist/reporting/watch-result-reporter.js.map +1 -0
  114. package/dist/reporting/watch-result-reporter.test.d.ts +2 -0
  115. package/dist/reporting/watch-result-reporter.test.d.ts.map +1 -0
  116. package/dist/reporting/watch-result-reporter.test.js +37 -0
  117. package/dist/reporting/watch-result-reporter.test.js.map +1 -0
  118. package/package.json +2 -2
  119. package/src/outputHelper.ts +12 -3
  120. package/src/reporting/build-result-reporter.test.ts +48 -0
  121. package/src/reporting/build-result-reporter.ts +58 -0
  122. package/src/reporting/composite-reporter.ts +10 -2
  123. package/src/reporting/composite-result-reporter.test.ts +71 -0
  124. package/src/reporting/composite-result-reporter.ts +58 -0
  125. package/src/reporting/file-result-reporter.test.ts +112 -0
  126. package/src/reporting/file-result-reporter.ts +75 -0
  127. package/src/reporting/format-json.test.ts +34 -0
  128. package/src/reporting/format-json.ts +16 -0
  129. package/src/reporting/format-table.test.ts +113 -0
  130. package/src/reporting/format-table.ts +97 -0
  131. package/src/reporting/github/annotations.test.ts +1 -3
  132. package/src/reporting/github/annotations.ts +13 -12
  133. package/src/reporting/github/comment-table-reporter.ts +5 -5
  134. package/src/reporting/github/formatting.ts +18 -16
  135. package/src/reporting/github/job-summary-reporter.ts +3 -1
  136. package/src/reporting/grouped-reporter.ts +6 -2
  137. package/src/reporting/index.ts +34 -1
  138. package/src/reporting/json-file-reporter.ts +2 -1
  139. package/src/reporting/progress-format.ts +5 -2
  140. package/src/reporting/reporter.ts +15 -2
  141. package/src/reporting/result-reporter.ts +40 -0
  142. package/src/reporting/simple-reporter.ts +3 -1
  143. package/src/reporting/spinner-reporter.test.ts +7 -6
  144. package/src/reporting/spinner-reporter.ts +20 -8
  145. package/src/reporting/state/live-state-tracker.ts +12 -6
  146. package/src/reporting/state/loaded-state-tracker.ts +2 -7
  147. package/src/reporting/state/state-tracker.ts +5 -1
  148. package/src/reporting/stdout-result-reporter.test.ts +34 -0
  149. package/src/reporting/stdout-result-reporter.ts +23 -0
  150. package/src/reporting/summary-table-reporter.ts +51 -36
  151. package/src/reporting/watch-renderer.test.ts +127 -0
  152. package/src/reporting/watch-renderer.ts +132 -0
  153. package/src/reporting/watch-result-reporter.test.ts +44 -0
  154. package/src/reporting/watch-result-reporter.ts +45 -0
  155. package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md CHANGED
@@ -3,189 +3,121 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
- # [1.10.0](https://github.com/Quenty/Nevermore/compare/@quenty/cli-output-helpers@1.9.0...@quenty/cli-output-helpers@1.10.0) (2026-02-23)
7
-
6
+ # [1.11.0](https://github.com/Quenty/Nevermore/compare/@quenty/cli-output-helpers@1.10.1...@quenty/cli-output-helpers@1.11.0) (2026-05-14)
8
7
 
9
8
  ### Features
10
9
 
11
- * **cli:** add structured progress and failure context to reporting ([#668](https://github.com/Quenty/Nevermore/issues/668)) ([e716329](https://github.com/Quenty/Nevermore/commit/e716329f5aeace8b213322ba3cce06b98d8ea43d))
12
-
13
-
10
+ - **studio-bridge:** persistent sessions and Linux/Wine support ([#669](https://github.com/Quenty/Nevermore/issues/669)) ([51514c9](https://github.com/Quenty/Nevermore/commit/51514c90cfe438ad1217dabb7fd64fd7350097a9))
14
11
 
12
+ ## [1.10.1](https://github.com/Quenty/Nevermore/compare/@quenty/cli-output-helpers@1.10.0...@quenty/cli-output-helpers@1.10.1) (2026-04-27)
15
13
 
14
+ ### Bug Fixes
16
15
 
17
- # [1.9.0](https://github.com/Quenty/Nevermore/compare/@quenty/cli-output-helpers@1.8.0...@quenty/cli-output-helpers@1.9.0) (2026-02-19)
16
+ - **cli-output-helpers:** collapse no-results PR comment to single line ([083969c](https://github.com/Quenty/Nevermore/commit/083969c128b14f8b8accceb6bc3e1dfd37c3739d))
18
17
 
18
+ # [1.10.0](https://github.com/Quenty/Nevermore/compare/@quenty/cli-output-helpers@1.9.0...@quenty/cli-output-helpers@1.10.0) (2026-02-23)
19
19
 
20
20
  ### Features
21
21
 
22
- * **cli:** add integration game deploy pipeline with base place merging ([b406938](https://github.com/Quenty/Nevermore/commit/b406938cee6a1af59adb6682eb6319c76c51aa1a))
23
- * **cli:** merge test and deploy results into single PR comment ([6750feb](https://github.com/Quenty/Nevermore/commit/6750feb4bb5c1075ca9931166aebae01c9333f8d))
24
-
22
+ - **cli:** add structured progress and failure context to reporting ([#668](https://github.com/Quenty/Nevermore/issues/668)) ([e716329](https://github.com/Quenty/Nevermore/commit/e716329f5aeace8b213322ba3cce06b98d8ea43d))
25
23
 
24
+ # [1.9.0](https://github.com/Quenty/Nevermore/compare/@quenty/cli-output-helpers@1.8.0...@quenty/cli-output-helpers@1.9.0) (2026-02-19)
26
25
 
26
+ ### Features
27
27
 
28
+ - **cli:** add integration game deploy pipeline with base place merging ([b406938](https://github.com/Quenty/Nevermore/commit/b406938cee6a1af59adb6682eb6319c76c51aa1a))
29
+ - **cli:** merge test and deploy results into single PR comment ([6750feb](https://github.com/Quenty/Nevermore/commit/6750feb4bb5c1075ca9931166aebae01c9333f8d))
28
30
 
29
31
  # [1.8.0](https://github.com/Quenty/Nevermore/compare/@quenty/cli-output-helpers@1.7.0...@quenty/cli-output-helpers@1.8.0) (2026-02-18)
30
32
 
31
-
32
33
  ### Features
33
34
 
34
- * **cli:** add GitHub Actions annotations for test failures ([2fd2f42](https://github.com/Quenty/Nevermore/commit/2fd2f423991ca6bf483fa2396045410f849223b6))
35
-
36
-
37
-
38
-
35
+ - **cli:** add GitHub Actions annotations for test failures ([2fd2f42](https://github.com/Quenty/Nevermore/commit/2fd2f423991ca6bf483fa2396045410f849223b6))
39
36
 
40
37
  # [1.7.0](https://github.com/Quenty/Nevermore/compare/@quenty/cli-output-helpers@1.6.0...@quenty/cli-output-helpers@1.7.0) (2026-02-18)
41
38
 
42
-
43
39
  ### Features
44
40
 
45
- * **cli:** add GitHub Actions workflow annotations for linting ([698f7ba](https://github.com/Quenty/Nevermore/commit/698f7ba6ca2c1448b594b94ca5dedf7b528cc8f3))
46
-
47
-
48
-
49
-
41
+ - **cli:** add GitHub Actions workflow annotations for linting ([698f7ba](https://github.com/Quenty/Nevermore/commit/698f7ba6ca2c1448b594b94ca5dedf7b528cc8f3))
50
42
 
51
43
  # [1.6.0](https://github.com/Quenty/Nevermore/compare/@quenty/cli-output-helpers@1.5.2...@quenty/cli-output-helpers@1.6.0) (2026-02-17)
52
44
 
53
-
54
45
  ### Bug Fixes
55
46
 
56
- * **cli:** strip redundant heading from job summary output ([3683d56](https://github.com/Quenty/Nevermore/commit/3683d56fd6ac889db6c33f4b348a32ee9807197e))
57
-
47
+ - **cli:** strip redundant heading from job summary output ([3683d56](https://github.com/Quenty/Nevermore/commit/3683d56fd6ac889db6c33f4b348a32ee9807197e))
58
48
 
59
49
  ### Features
60
50
 
61
- * **cli:** add GitHub Actions job summary reporter ([84db8d2](https://github.com/Quenty/Nevermore/commit/84db8d2518df1293fb9bc1d3e05c69cf236e2ed5))
62
-
63
-
64
-
65
-
51
+ - **cli:** add GitHub Actions job summary reporter ([84db8d2](https://github.com/Quenty/Nevermore/commit/84db8d2518df1293fb9bc1d3e05c69cf236e2ed5))
66
52
 
67
53
  ## [1.5.2](https://github.com/Quenty/Nevermore/compare/@quenty/cli-output-helpers@1.5.1...@quenty/cli-output-helpers@1.5.2) (2026-02-17)
68
54
 
69
-
70
55
  ### Bug Fixes
71
56
 
72
- * When no tests run we report that tests were not run ([66a8608](https://github.com/Quenty/Nevermore/commit/66a860829d7241a0055028669a0bf55d4670a245))
73
-
74
-
75
-
76
-
57
+ - When no tests run we report that tests were not run ([66a8608](https://github.com/Quenty/Nevermore/commit/66a860829d7241a0055028669a0bf55d4670a245))
77
58
 
78
59
  ## [1.5.1](https://github.com/Quenty/Nevermore/compare/@quenty/cli-output-helpers@1.5.0...@quenty/cli-output-helpers@1.5.1) (2026-02-17)
79
60
 
80
-
81
61
  ### Bug Fixes
82
62
 
83
- * devcontainer initializes properly with luau-lsp working out of the box ([b8591e8](https://github.com/Quenty/Nevermore/commit/b8591e8a62beda655e90875b0dc22d79fcae8e61))
84
-
85
-
86
-
87
-
63
+ - devcontainer initializes properly with luau-lsp working out of the box ([b8591e8](https://github.com/Quenty/Nevermore/commit/b8591e8a62beda655e90875b0dc22d79fcae8e61))
88
64
 
89
65
  # [1.5.0](https://github.com/Quenty/Nevermore/compare/@quenty/cli-output-helpers@1.3.0...@quenty/cli-output-helpers@1.5.0) (2026-02-17)
90
66
 
91
-
92
67
  ### Bug Fixes
93
68
 
94
- * Fix spinner design showing stuff ([814cd91](https://github.com/Quenty/Nevermore/commit/814cd915358079f7d628a9739d0cd56e472b52f6))
95
-
69
+ - Fix spinner design showing stuff ([814cd91](https://github.com/Quenty/Nevermore/commit/814cd915358079f7d628a9739d0cd56e472b52f6))
96
70
 
97
71
  ### Features
98
72
 
99
- * Better error messages and optimized tests ([71ca056](https://github.com/Quenty/Nevermore/commit/71ca056517ee98e625d61e7dcd923dc808ac3edc))
100
- * Improve output quality of testing cli tools ([217630c](https://github.com/Quenty/Nevermore/commit/217630c354308b740092c07077341dc82d134965))
101
- * Use reporting system for studio bridge too (a bit ugly) ([20b675c](https://github.com/Quenty/Nevermore/commit/20b675cb22cb46c88b556f4afdda2700dd1258dd))
102
-
103
-
104
-
105
-
73
+ - Better error messages and optimized tests ([71ca056](https://github.com/Quenty/Nevermore/commit/71ca056517ee98e625d61e7dcd923dc808ac3edc))
74
+ - Improve output quality of testing cli tools ([217630c](https://github.com/Quenty/Nevermore/commit/217630c354308b740092c07077341dc82d134965))
75
+ - Use reporting system for studio bridge too (a bit ugly) ([20b675c](https://github.com/Quenty/Nevermore/commit/20b675cb22cb46c88b556f4afdda2700dd1258dd))
106
76
 
107
77
  # [1.3.0](https://github.com/Quenty/Nevermore/compare/@quenty/cli-output-helpers@1.2.5...@quenty/cli-output-helpers@1.3.0) (2026-01-14)
108
78
 
109
-
110
79
  ### Features
111
80
 
112
- * Nevermore CLI now checks to make sure it is up to date ([d86930c](https://github.com/Quenty/Nevermore/commit/d86930c85f24d879dee9ce5ce413488d1250246d))
113
-
114
-
115
-
116
-
81
+ - Nevermore CLI now checks to make sure it is up to date ([d86930c](https://github.com/Quenty/Nevermore/commit/d86930c85f24d879dee9ce5ce413488d1250246d))
117
82
 
118
83
  ## [1.2.5](https://github.com/Quenty/Nevermore/compare/@quenty/cli-output-helpers@1.2.4...@quenty/cli-output-helpers@1.2.5) (2026-01-12)
119
84
 
120
-
121
85
  ### Bug Fixes
122
86
 
123
- * Fix dependency installation process for pnpm ([9651b09](https://github.com/Quenty/Nevermore/commit/9651b09af34f252ef3f9c7c539793cc878dd8cba))
124
-
125
-
126
-
127
-
87
+ - Fix dependency installation process for pnpm ([9651b09](https://github.com/Quenty/Nevermore/commit/9651b09af34f252ef3f9c7c539793cc878dd8cba))
128
88
 
129
89
  ## [1.2.4](https://github.com/Quenty/Nevermore/compare/@quenty/cli-output-helpers@1.2.3...@quenty/cli-output-helpers@1.2.4) (2026-01-10)
130
90
 
131
91
  **Note:** Version bump only for package @quenty/cli-output-helpers
132
92
 
133
-
134
-
135
-
136
-
137
93
  ## [1.2.3](https://github.com/Quenty/Nevermore/compare/@quenty/cli-output-helpers@1.2.2...@quenty/cli-output-helpers@1.2.3) (2025-12-31)
138
94
 
139
-
140
95
  ### Bug Fixes
141
96
 
142
- * Add warning output to output helper ([573ce4e](https://github.com/Quenty/Nevermore/commit/573ce4ed42831d552cfeb4dde1703d4aeda54967))
143
-
144
-
145
-
146
-
97
+ - Add warning output to output helper ([573ce4e](https://github.com/Quenty/Nevermore/commit/573ce4ed42831d552cfeb4dde1703d4aeda54967))
147
98
 
148
99
  ## [1.2.2](https://github.com/Quenty/Nevermore/compare/@quenty/cli-output-helpers@1.2.0...@quenty/cli-output-helpers@1.2.2) (2025-04-07)
149
100
 
150
-
151
101
  ### Bug Fixes
152
102
 
153
- * Add types to packages ([2374fb2](https://github.com/Quenty/Nevermore/commit/2374fb2b043cfbe0e9b507b3316eec46a4e353a0))
154
- * Bump package versions for republishing ([ba47c62](https://github.com/Quenty/Nevermore/commit/ba47c62e32170bf74377b0c658c60b84306dc294))
155
-
156
-
157
-
158
-
103
+ - Add types to packages ([2374fb2](https://github.com/Quenty/Nevermore/commit/2374fb2b043cfbe0e9b507b3316eec46a4e353a0))
104
+ - Bump package versions for republishing ([ba47c62](https://github.com/Quenty/Nevermore/commit/ba47c62e32170bf74377b0c658c60b84306dc294))
159
105
 
160
106
  ## [1.2.1](https://github.com/Quenty/Nevermore/compare/@quenty/cli-output-helpers@1.2.0...@quenty/cli-output-helpers@1.2.1) (2025-04-07)
161
107
 
162
-
163
108
  ### Bug Fixes
164
109
 
165
- * Add types to packages ([2374fb2](https://github.com/Quenty/Nevermore/commit/2374fb2b043cfbe0e9b507b3316eec46a4e353a0))
166
-
167
-
168
-
169
-
110
+ - Add types to packages ([2374fb2](https://github.com/Quenty/Nevermore/commit/2374fb2b043cfbe0e9b507b3316eec46a4e353a0))
170
111
 
171
112
  # [1.2.0](https://github.com/Quenty/Nevermore/compare/@quenty/cli-output-helpers@1.1.0...@quenty/cli-output-helpers@1.2.0) (2023-02-21)
172
113
 
173
114
  **Note:** Version bump only for package @quenty/cli-output-helpers
174
115
 
175
-
176
-
177
-
178
-
179
116
  # 1.1.0 (2022-12-27)
180
117
 
181
-
182
118
  ### Features
183
119
 
184
- * Add ability to generate new Nevermore library packages ([e0e8e44](https://github.com/Quenty/Nevermore/commit/e0e8e44a21692d4c383274985d01a965dcfe389c))
185
-
186
-
187
-
188
-
120
+ - Add ability to generate new Nevermore library packages ([e0e8e44](https://github.com/Quenty/Nevermore/commit/e0e8e44a21692d4c383274985d01a965dcfe389c))
189
121
 
190
122
  # v1.1.0 (Tue Dec 27 2022)
191
123
 
@@ -64,6 +64,11 @@ export declare class OutputHelper {
64
64
  * intermediate messages during concurrent execution.
65
65
  */
66
66
  static setVerbose(verbose: boolean): void;
67
+ /**
68
+ * Returns the current verbose flag. Useful for handlers that need to
69
+ * forward the global `--verbose` setting to downstream APIs.
70
+ */
71
+ static isVerbose(): boolean;
67
72
  /**
68
73
  * Logs a verbose/intermediate message. Suppressed when verbose is false.
69
74
  * When running inside a buffered context (see runBuffered), messages are
@@ -1 +1 @@
1
- {"version":3,"file":"outputHelper.d.ts","sourceRoot":"","sources":["../src/outputHelper.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAID;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAiB;IACxC;;;;OAIG;WACW,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAIlD;;;;OAIG;WACW,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAIjD;;;;OAIG;WACW,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAIpD;;;;OAIG;WACW,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAIxD;;;;OAIG;WACW,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;WAInC,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;WAIlC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAIpD,OAAO,CAAC,MAAM,CAAC,QAAQ,CACE;IAEzB,oDAAoD;IACpD,OAAc,SAAS,GAAI,MAAM,MAAM,KAAG,MAAM,CACH;IAE7C;;OAEG;WACW,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,MAAM;IA+BtE;;;OAGG;WACW,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI1C;;;OAGG;WACW,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIzC;;;;OAIG;WACW,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIhD;;;;OAIG;WACW,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAc5C;;;;OAIG;WACiB,WAAW,CAAC,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC;QAAE,MAAM,EAAE,CAAC,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAM3C;;;OAGG;WACW,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIzC;;;OAGG;WACW,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIzC;;;OAGG;WACW,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI;CAG/D"}
1
+ {"version":3,"file":"outputHelper.d.ts","sourceRoot":"","sources":["../src/outputHelper.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAID;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAiB;IACxC;;;;OAIG;WACW,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAIlD;;;;OAIG;WACW,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAIjD;;;;OAIG;WACW,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAIpD;;;;OAIG;WACW,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAIxD;;;;OAIG;WACW,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;WAInC,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;WAIlC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAIpD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAqD;IAE5E,oDAAoD;IACpD,OAAc,SAAS,GAAI,MAAM,MAAM,KAAG,MAAM,CACH;IAE7C;;OAEG;WACW,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,MAAM;IA+BtE;;;OAGG;WACW,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI1C;;;OAGG;WACW,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIzC;;;;OAIG;WACW,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIhD;;;OAGG;WACW,SAAS,IAAI,OAAO;IAIlC;;;;OAIG;WACW,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAgB5C;;;;OAIG;WACiB,WAAW,CAAC,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC;QAAE,MAAM,EAAE,CAAC,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAM3C;;;OAGG;WACW,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIzC;;;OAGG;WACW,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIzC;;;OAGG;WACW,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI;CAG/D"}
@@ -101,6 +101,13 @@ export class OutputHelper {
101
101
  static setVerbose(verbose) {
102
102
  this._verbose = verbose;
103
103
  }
104
+ /**
105
+ * Returns the current verbose flag. Useful for handlers that need to
106
+ * forward the global `--verbose` setting to downstream APIs.
107
+ */
108
+ static isVerbose() {
109
+ return this._verbose;
110
+ }
104
111
  /**
105
112
  * Logs a verbose/intermediate message. Suppressed when verbose is false.
106
113
  * When running inside a buffered context (see runBuffered), messages are
@@ -110,7 +117,9 @@ export class OutputHelper {
110
117
  if (!this._verbose) {
111
118
  return;
112
119
  }
113
- const formatted = this._hasAnsi(message) ? message : this.formatDim(message);
120
+ const formatted = this._hasAnsi(message)
121
+ ? message
122
+ : this.formatDim(message);
114
123
  const buffer = _outputStorage.getStore();
115
124
  if (buffer) {
116
125
  buffer.lines.push(formatted);
@@ -1 +1 @@
1
- {"version":3,"file":"outputHelper.js","sourceRoot":"","sources":["../src/outputHelper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"outputHelper.js","sourceRoot":"","sources":["../src/outputHelper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Factory that maps argv-style flags to the right concrete `ResultReporter`.
3
+ * Encapsulates the "is this --output, --watch, or default stdout?" dispatch
4
+ * so command frameworks don't have to know which reporter class to construct.
5
+ */
6
+ import type { ResultReporter } from './result-reporter.js';
7
+ export interface BuildResultReporterOptions<T> {
8
+ /** Output file path; if set, returns a `FileResultReporter`. */
9
+ outputPath?: string;
10
+ /** When true (and no `outputPath`), returns a `WatchResultReporter`. */
11
+ watch?: boolean;
12
+ /** Open the output file after writing (`FileResultReporter` only). */
13
+ open?: boolean;
14
+ /** Polling interval for the `WatchResultReporter`. Default: 1000ms. */
15
+ intervalMs?: number;
16
+ /** Render result to a string. */
17
+ render: (result: T) => string;
18
+ /**
19
+ * Optionally extract a binary buffer for `FileResultReporter`. When
20
+ * provided and the buffer is non-undefined, the file write skips text
21
+ * rendering and emits raw bytes instead.
22
+ */
23
+ binary?: (result: T) => Buffer | undefined;
24
+ }
25
+ /**
26
+ * Build a `ResultReporter` from common argv-style flags. Selection rules:
27
+ *
28
+ * - `outputPath` set → `FileResultReporter`
29
+ * - else `watch` truthy → `WatchResultReporter`
30
+ * - else → `StdoutResultReporter`
31
+ */
32
+ export declare function buildResultReporter<T>(options: BuildResultReporterOptions<T>): ResultReporter<T>;
33
+ //# sourceMappingURL=build-result-reporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-result-reporter.d.ts","sourceRoot":"","sources":["../../src/reporting/build-result-reporter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAK3D,MAAM,WAAW,0BAA0B,CAAC,CAAC;IAC3C,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,sEAAsE;IACtE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iCAAiC;IACjC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,MAAM,CAAC;IAC9B;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC;CAC5C;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,OAAO,EAAE,0BAA0B,CAAC,CAAC,CAAC,GACrC,cAAc,CAAC,CAAC,CAAC,CAkBnB"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Factory that maps argv-style flags to the right concrete `ResultReporter`.
3
+ * Encapsulates the "is this --output, --watch, or default stdout?" dispatch
4
+ * so command frameworks don't have to know which reporter class to construct.
5
+ */
6
+ import { StdoutResultReporter } from './stdout-result-reporter.js';
7
+ import { FileResultReporter } from './file-result-reporter.js';
8
+ import { WatchResultReporter } from './watch-result-reporter.js';
9
+ /**
10
+ * Build a `ResultReporter` from common argv-style flags. Selection rules:
11
+ *
12
+ * - `outputPath` set → `FileResultReporter`
13
+ * - else `watch` truthy → `WatchResultReporter`
14
+ * - else → `StdoutResultReporter`
15
+ */
16
+ export function buildResultReporter(options) {
17
+ if (options.outputPath !== undefined) {
18
+ return new FileResultReporter({
19
+ outputPath: options.outputPath,
20
+ render: options.render,
21
+ binary: options.binary,
22
+ open: options.open,
23
+ });
24
+ }
25
+ if (options.watch) {
26
+ return new WatchResultReporter({
27
+ render: options.render,
28
+ intervalMs: options.intervalMs,
29
+ });
30
+ }
31
+ return new StdoutResultReporter({ render: options.render });
32
+ }
33
+ //# sourceMappingURL=build-result-reporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-result-reporter.js","sourceRoot":"","sources":["../../src/reporting/build-result-reporter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAqBjE;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAsC;IAEtC,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACrC,OAAO,IAAI,kBAAkB,CAAI;YAC/B,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,IAAI,mBAAmB,CAAI;YAChC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,IAAI,oBAAoB,CAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;AACjE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=build-result-reporter.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-result-reporter.test.d.ts","sourceRoot":"","sources":["../../src/reporting/build-result-reporter.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,42 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { buildResultReporter } from './build-result-reporter.js';
3
+ import { StdoutResultReporter } from './stdout-result-reporter.js';
4
+ import { FileResultReporter } from './file-result-reporter.js';
5
+ import { WatchResultReporter } from './watch-result-reporter.js';
6
+ describe('buildResultReporter', () => {
7
+ const render = (r) => String(r);
8
+ it('returns a StdoutResultReporter by default', () => {
9
+ const reporter = buildResultReporter({ render });
10
+ expect(reporter).toBeInstanceOf(StdoutResultReporter);
11
+ });
12
+ it('returns a FileResultReporter when outputPath is set', () => {
13
+ const reporter = buildResultReporter({
14
+ outputPath: '/tmp/out.txt',
15
+ render,
16
+ });
17
+ expect(reporter).toBeInstanceOf(FileResultReporter);
18
+ });
19
+ it('returns a WatchResultReporter when watch is true and no outputPath', () => {
20
+ const reporter = buildResultReporter({ watch: true, render });
21
+ expect(reporter).toBeInstanceOf(WatchResultReporter);
22
+ });
23
+ it('outputPath wins over watch', () => {
24
+ const reporter = buildResultReporter({
25
+ outputPath: '/tmp/out.txt',
26
+ watch: true,
27
+ render,
28
+ });
29
+ expect(reporter).toBeInstanceOf(FileResultReporter);
30
+ });
31
+ it('treats empty-string outputPath as a file destination', () => {
32
+ // Empty string is a valid (if degenerate) path — selection is by
33
+ // presence of the field, not truthiness.
34
+ const reporter = buildResultReporter({ outputPath: '', render });
35
+ expect(reporter).toBeInstanceOf(FileResultReporter);
36
+ });
37
+ it('returns Stdout when watch is false and no outputPath', () => {
38
+ const reporter = buildResultReporter({ watch: false, render });
39
+ expect(reporter).toBeInstanceOf(StdoutResultReporter);
40
+ });
41
+ });
42
+ //# sourceMappingURL=build-result-reporter.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-result-reporter.test.js","sourceRoot":"","sources":["../../src/reporting/build-result-reporter.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,MAAM,MAAM,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAEzC,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACjD,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,QAAQ,GAAG,mBAAmB,CAAC;YACnC,UAAU,EAAE,cAAc;YAC1B,MAAM;SACP,CAAC,CAAC;QACH,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC5E,MAAM,QAAQ,GAAG,mBAAmB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC9D,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,QAAQ,GAAG,mBAAmB,CAAC;YACnC,UAAU,EAAE,cAAc;YAC1B,KAAK,EAAE,IAAI;YACX,MAAM;SACP,CAAC,CAAC;QACH,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,iEAAiE;QACjE,yCAAyC;QACzC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACjE,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,QAAQ,GAAG,mBAAmB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/D,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"composite-reporter.d.ts","sourceRoot":"","sources":["../../src/reporting/composite-reporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACvG,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE;;;;;GAKG;AACH,qBAAa,iBAAkB,YAAW,QAAQ;IAChD,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,UAAU,CAAa;gBAG7B,YAAY,EAAE,MAAM,EAAE,EACtB,OAAO,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,QAAQ,EAAE;IAMlD,IAAI,KAAK,IAAI,gBAAgB,CAE5B;IAEK,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAOzC,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI;IAOhE,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI;IAO7E,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI;IAOjE,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAMjC"}
1
+ {"version":3,"file":"composite-reporter.d.ts","sourceRoot":"","sources":["../../src/reporting/composite-reporter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,eAAe,EACrB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE;;;;;GAKG;AACH,qBAAa,iBAAkB,YAAW,QAAQ;IAChD,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,UAAU,CAAa;gBAG7B,YAAY,EAAE,MAAM,EAAE,EACtB,OAAO,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,QAAQ,EAAE;IAMlD,IAAI,KAAK,IAAI,gBAAgB,CAE5B;IAEK,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAOzC,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI;IAOhE,uBAAuB,CACrB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,eAAe,GACxB,IAAI;IAOP,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI;IAOjE,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAMjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"composite-reporter.js","sourceRoot":"","sources":["../../src/reporting/composite-reporter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,OAAO,iBAAiB;IACpB,MAAM,CAAmB;IACzB,UAAU,CAAa;IAE/B,YACE,YAAsB,EACtB,OAAgD;QAEhD,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAgB,CAAC,YAAY,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAC/B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED,cAAc,CAAC,WAAmB;QAChC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACxC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,oBAAoB,CAAC,WAAmB,EAAE,KAAe;QACvD,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACrD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,CAAC,CAAC,oBAAoB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,uBAAuB,CAAC,WAAmB,EAAE,QAAyB;QACpE,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC3D,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,CAAC,CAAC,uBAAuB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,eAAe,CAAC,MAAqB,EAAE,cAAyB;QAC9D,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACpD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS;QACb,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;QACtB,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;IAChC,CAAC;CACF"}
1
+ {"version":3,"file":"composite-reporter.js","sourceRoot":"","sources":["../../src/reporting/composite-reporter.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,OAAO,iBAAiB;IACpB,MAAM,CAAmB;IACzB,UAAU,CAAa;IAE/B,YACE,YAAsB,EACtB,OAAgD;QAEhD,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAgB,CAAC,YAAY,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAC/B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED,cAAc,CAAC,WAAmB;QAChC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACxC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,oBAAoB,CAAC,WAAmB,EAAE,KAAe;QACvD,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACrD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,CAAC,CAAC,oBAAoB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,uBAAuB,CACrB,WAAmB,EACnB,QAAyB;QAEzB,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC3D,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,CAAC,CAAC,uBAAuB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,eAAe,CAAC,MAAqB,EAAE,cAAyB;QAC9D,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACpD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS;QACb,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;QACtB,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;IAChC,CAAC;CACF"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Fans out single-result reporting to multiple ResultReporter instances.
3
+ * Mirrors CompositeReporter (for batch lifecycle) but for single-result
4
+ * output.
5
+ */
6
+ import type { ResultReporter } from './result-reporter.js';
7
+ export declare class CompositeResultReporter<T = unknown> implements ResultReporter<T> {
8
+ private _reporters;
9
+ constructor(reporters: ResultReporter<T>[]);
10
+ startAsync(): Promise<void>;
11
+ onResult(result: T): void;
12
+ stopAsync(): Promise<void>;
13
+ private _throwFirstRejection;
14
+ }
15
+ //# sourceMappingURL=composite-result-reporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composite-result-reporter.d.ts","sourceRoot":"","sources":["../../src/reporting/composite-result-reporter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,qBAAa,uBAAuB,CAAC,CAAC,GAAG,OAAO,CAAE,YAAW,cAAc,CAAC,CAAC,CAAC;IAC5E,OAAO,CAAC,UAAU,CAAsB;gBAE5B,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE;IAIpC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI;IAcnB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAOhC,OAAO,CAAC,oBAAoB;CAc7B"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Fans out single-result reporting to multiple ResultReporter instances.
3
+ * Mirrors CompositeReporter (for batch lifecycle) but for single-result
4
+ * output.
5
+ */
6
+ export class CompositeResultReporter {
7
+ _reporters;
8
+ constructor(reporters) {
9
+ this._reporters = reporters;
10
+ }
11
+ async startAsync() {
12
+ const results = await Promise.allSettled(this._reporters.map((r) => r.startAsync()));
13
+ this._throwFirstRejection(results, 'startAsync');
14
+ }
15
+ onResult(result) {
16
+ const errors = [];
17
+ for (const r of this._reporters) {
18
+ try {
19
+ r.onResult(result);
20
+ }
21
+ catch (err) {
22
+ errors.push(err);
23
+ }
24
+ }
25
+ if (errors.length > 0) {
26
+ throw errors[0];
27
+ }
28
+ }
29
+ async stopAsync() {
30
+ const results = await Promise.allSettled(this._reporters.map((r) => r.stopAsync()));
31
+ this._throwFirstRejection(results, 'stopAsync');
32
+ }
33
+ _throwFirstRejection(results, phase) {
34
+ const firstRejected = results.find((r) => r.status === 'rejected');
35
+ if (firstRejected) {
36
+ const reason = firstRejected.reason;
37
+ throw reason instanceof Error
38
+ ? reason
39
+ : new Error(`Reporter ${phase} failed: ${String(reason)}`);
40
+ }
41
+ }
42
+ }
43
+ //# sourceMappingURL=composite-result-reporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composite-result-reporter.js","sourceRoot":"","sources":["../../src/reporting/composite-result-reporter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,OAAO,uBAAuB;IAC1B,UAAU,CAAsB;IAExC,YAAY,SAA8B;QACxC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAC3C,CAAC;QACF,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACnD,CAAC;IAED,QAAQ,CAAC,MAAS;QAChB,MAAM,MAAM,GAAc,EAAE,CAAC;QAC7B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACrB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAC1C,CAAC;QACF,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAClD,CAAC;IAEO,oBAAoB,CAC1B,OAAwC,EACxC,KAAa;QAEb,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAChC,CAAC,CAAC,EAA8B,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAC3D,CAAC;QACF,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;YACpC,MAAM,MAAM,YAAY,KAAK;gBAC3B,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,IAAI,KAAK,CAAC,YAAY,KAAK,YAAY,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=composite-result-reporter.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composite-result-reporter.test.d.ts","sourceRoot":"","sources":["../../src/reporting/composite-result-reporter.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,61 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { CompositeResultReporter } from './composite-result-reporter.js';
3
+ import { BaseResultReporter } from './result-reporter.js';
4
+ class RecordingReporter extends BaseResultReporter {
5
+ startCount = 0;
6
+ stopCount = 0;
7
+ results = [];
8
+ async startAsync() {
9
+ this.startCount++;
10
+ }
11
+ onResult(result) {
12
+ this.results.push(result);
13
+ }
14
+ async stopAsync() {
15
+ this.stopCount++;
16
+ }
17
+ }
18
+ describe('CompositeResultReporter', () => {
19
+ it('fans out lifecycle hooks to every child reporter', async () => {
20
+ const a = new RecordingReporter();
21
+ const b = new RecordingReporter();
22
+ const composite = new CompositeResultReporter([a, b]);
23
+ await composite.startAsync();
24
+ composite.onResult(1);
25
+ composite.onResult(2);
26
+ await composite.stopAsync();
27
+ expect(a.startCount).toBe(1);
28
+ expect(b.startCount).toBe(1);
29
+ expect(a.results).toEqual([1, 2]);
30
+ expect(b.results).toEqual([1, 2]);
31
+ expect(a.stopCount).toBe(1);
32
+ expect(b.stopCount).toBe(1);
33
+ });
34
+ it('preserves call order across reporters', async () => {
35
+ const order = [];
36
+ const make = (name) => ({
37
+ async startAsync() {
38
+ order.push(`${name}:start`);
39
+ },
40
+ onResult() {
41
+ order.push(`${name}:result`);
42
+ },
43
+ async stopAsync() {
44
+ order.push(`${name}:stop`);
45
+ },
46
+ });
47
+ const composite = new CompositeResultReporter([make('a'), make('b')]);
48
+ await composite.startAsync();
49
+ composite.onResult(null);
50
+ await composite.stopAsync();
51
+ expect(order).toEqual([
52
+ 'a:start',
53
+ 'b:start',
54
+ 'a:result',
55
+ 'b:result',
56
+ 'a:stop',
57
+ 'b:stop',
58
+ ]);
59
+ });
60
+ });
61
+ //# sourceMappingURL=composite-result-reporter.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composite-result-reporter.test.js","sourceRoot":"","sources":["../../src/reporting/composite-result-reporter.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Writes a rendered result to a file. Each onResult overwrites the file —
3
+ * usable for both single writes and watch-mode file rewrites.
4
+ *
5
+ * Optional `binary` callback returns a Buffer to write instead of the
6
+ * rendered text — used for screenshot/binary output.
7
+ */
8
+ import { BaseResultReporter } from './result-reporter.js';
9
+ export interface FileResultReporterOptions<T> {
10
+ outputPath: string;
11
+ render: (result: T) => string;
12
+ /** If provided and returns a Buffer, write that instead of the rendered text. */
13
+ binary?: (result: T) => Buffer | undefined;
14
+ /** Open the file with the platform's default viewer after the first write. */
15
+ open?: boolean;
16
+ /** Print a "Wrote output to <path>" status to stderr after each write. */
17
+ reportPath?: boolean;
18
+ }
19
+ export declare class FileResultReporter<T = unknown> extends BaseResultReporter<T> {
20
+ private _outputPath;
21
+ private _render;
22
+ private _binary?;
23
+ private _open;
24
+ private _reportPath;
25
+ private _hasOpened;
26
+ constructor(options: FileResultReporterOptions<T>);
27
+ onResult(result: T): void;
28
+ }
29
+ //# sourceMappingURL=file-result-reporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-result-reporter.d.ts","sourceRoot":"","sources":["../../src/reporting/file-result-reporter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,WAAW,yBAAyB,CAAC,CAAC;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,MAAM,CAAC;IAC9B,iFAAiF;IACjF,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC;IAC3C,8EAA8E;IAC9E,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,0EAA0E;IAC1E,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,qBAAa,kBAAkB,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,kBAAkB,CAAC,CAAC,CAAC;IACxE,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,OAAO,CAAC,CAAoC;IACpD,OAAO,CAAC,KAAK,CAAU;IACvB,OAAO,CAAC,WAAW,CAAU;IAC7B,OAAO,CAAC,UAAU,CAAS;gBAEf,OAAO,EAAE,yBAAyB,CAAC,CAAC,CAAC;IASxC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI;CAmBnC"}