@quenty/cli-output-helpers 1.10.1 → 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 (151) hide show
  1. package/CHANGELOG.md +26 -105
  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/job-summary-reporter.d.ts.map +1 -1
  55. package/dist/reporting/github/job-summary-reporter.js.map +1 -1
  56. package/dist/reporting/grouped-reporter.d.ts.map +1 -1
  57. package/dist/reporting/grouped-reporter.js +6 -2
  58. package/dist/reporting/grouped-reporter.js.map +1 -1
  59. package/dist/reporting/index.d.ts +9 -0
  60. package/dist/reporting/index.d.ts.map +1 -1
  61. package/dist/reporting/index.js +12 -1
  62. package/dist/reporting/index.js.map +1 -1
  63. package/dist/reporting/json-file-reporter.d.ts.map +1 -1
  64. package/dist/reporting/json-file-reporter.js +2 -1
  65. package/dist/reporting/json-file-reporter.js.map +1 -1
  66. package/dist/reporting/progress-format.d.ts.map +1 -1
  67. package/dist/reporting/progress-format.js.map +1 -1
  68. package/dist/reporting/reporter.d.ts.map +1 -1
  69. package/dist/reporting/reporter.js.map +1 -1
  70. package/dist/reporting/result-reporter.d.ts +37 -0
  71. package/dist/reporting/result-reporter.d.ts.map +1 -0
  72. package/dist/reporting/result-reporter.js +22 -0
  73. package/dist/reporting/result-reporter.js.map +1 -0
  74. package/dist/reporting/simple-reporter.d.ts.map +1 -1
  75. package/dist/reporting/simple-reporter.js +3 -1
  76. package/dist/reporting/simple-reporter.js.map +1 -1
  77. package/dist/reporting/spinner-reporter.d.ts.map +1 -1
  78. package/dist/reporting/spinner-reporter.js +4 -4
  79. package/dist/reporting/spinner-reporter.js.map +1 -1
  80. package/dist/reporting/spinner-reporter.test.js.map +1 -1
  81. package/dist/reporting/state/live-state-tracker.d.ts.map +1 -1
  82. package/dist/reporting/state/live-state-tracker.js +1 -1
  83. package/dist/reporting/state/live-state-tracker.js.map +1 -1
  84. package/dist/reporting/state/loaded-state-tracker.d.ts.map +1 -1
  85. package/dist/reporting/state/loaded-state-tracker.js.map +1 -1
  86. package/dist/reporting/state/state-tracker.d.ts.map +1 -1
  87. package/dist/reporting/stdout-result-reporter.d.ts +14 -0
  88. package/dist/reporting/stdout-result-reporter.d.ts.map +1 -0
  89. package/dist/reporting/stdout-result-reporter.js +16 -0
  90. package/dist/reporting/stdout-result-reporter.js.map +1 -0
  91. package/dist/reporting/stdout-result-reporter.test.d.ts +2 -0
  92. package/dist/reporting/stdout-result-reporter.test.d.ts.map +1 -0
  93. package/dist/reporting/stdout-result-reporter.test.js +28 -0
  94. package/dist/reporting/stdout-result-reporter.test.js.map +1 -0
  95. package/dist/reporting/summary-table-reporter.d.ts +2 -0
  96. package/dist/reporting/summary-table-reporter.d.ts.map +1 -1
  97. package/dist/reporting/summary-table-reporter.js +44 -33
  98. package/dist/reporting/summary-table-reporter.js.map +1 -1
  99. package/dist/reporting/watch-renderer.d.ts +16 -0
  100. package/dist/reporting/watch-renderer.d.ts.map +1 -0
  101. package/dist/reporting/watch-renderer.js +110 -0
  102. package/dist/reporting/watch-renderer.js.map +1 -0
  103. package/dist/reporting/watch-renderer.test.d.ts +2 -0
  104. package/dist/reporting/watch-renderer.test.d.ts.map +1 -0
  105. package/dist/reporting/watch-renderer.test.js +103 -0
  106. package/dist/reporting/watch-renderer.test.js.map +1 -0
  107. package/dist/reporting/watch-result-reporter.d.ts +21 -0
  108. package/dist/reporting/watch-result-reporter.d.ts.map +1 -0
  109. package/dist/reporting/watch-result-reporter.js +34 -0
  110. package/dist/reporting/watch-result-reporter.js.map +1 -0
  111. package/dist/reporting/watch-result-reporter.test.d.ts +2 -0
  112. package/dist/reporting/watch-result-reporter.test.d.ts.map +1 -0
  113. package/dist/reporting/watch-result-reporter.test.js +37 -0
  114. package/dist/reporting/watch-result-reporter.test.js.map +1 -0
  115. package/package.json +2 -2
  116. package/src/outputHelper.ts +12 -3
  117. package/src/reporting/build-result-reporter.test.ts +48 -0
  118. package/src/reporting/build-result-reporter.ts +58 -0
  119. package/src/reporting/composite-reporter.ts +10 -2
  120. package/src/reporting/composite-result-reporter.test.ts +71 -0
  121. package/src/reporting/composite-result-reporter.ts +58 -0
  122. package/src/reporting/file-result-reporter.test.ts +112 -0
  123. package/src/reporting/file-result-reporter.ts +75 -0
  124. package/src/reporting/format-json.test.ts +34 -0
  125. package/src/reporting/format-json.ts +16 -0
  126. package/src/reporting/format-table.test.ts +113 -0
  127. package/src/reporting/format-table.ts +97 -0
  128. package/src/reporting/github/annotations.test.ts +1 -3
  129. package/src/reporting/github/annotations.ts +13 -12
  130. package/src/reporting/github/comment-table-reporter.ts +5 -5
  131. package/src/reporting/github/job-summary-reporter.ts +3 -1
  132. package/src/reporting/grouped-reporter.ts +6 -2
  133. package/src/reporting/index.ts +34 -1
  134. package/src/reporting/json-file-reporter.ts +2 -1
  135. package/src/reporting/progress-format.ts +5 -2
  136. package/src/reporting/reporter.ts +15 -2
  137. package/src/reporting/result-reporter.ts +40 -0
  138. package/src/reporting/simple-reporter.ts +3 -1
  139. package/src/reporting/spinner-reporter.test.ts +7 -6
  140. package/src/reporting/spinner-reporter.ts +20 -8
  141. package/src/reporting/state/live-state-tracker.ts +12 -6
  142. package/src/reporting/state/loaded-state-tracker.ts +2 -7
  143. package/src/reporting/state/state-tracker.ts +5 -1
  144. package/src/reporting/stdout-result-reporter.test.ts +34 -0
  145. package/src/reporting/stdout-result-reporter.ts +23 -0
  146. package/src/reporting/summary-table-reporter.ts +51 -36
  147. package/src/reporting/watch-renderer.test.ts +127 -0
  148. package/src/reporting/watch-renderer.ts +132 -0
  149. package/src/reporting/watch-result-reporter.test.ts +44 -0
  150. package/src/reporting/watch-result-reporter.ts +45 -0
  151. package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md CHANGED
@@ -3,200 +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.1](https://github.com/Quenty/Nevermore/compare/@quenty/cli-output-helpers@1.10.0...@quenty/cli-output-helpers@1.10.1) (2026-04-27)
7
-
8
-
9
- ### Bug Fixes
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)
10
7
 
11
- * **cli-output-helpers:** collapse no-results PR comment to single line ([083969c](https://github.com/Quenty/Nevermore/commit/083969c128b14f8b8accceb6bc3e1dfd37c3739d))
8
+ ### Features
12
9
 
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))
13
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)
14
13
 
14
+ ### Bug Fixes
15
15
 
16
+ - **cli-output-helpers:** collapse no-results PR comment to single line ([083969c](https://github.com/Quenty/Nevermore/commit/083969c128b14f8b8accceb6bc3e1dfd37c3739d))
16
17
 
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)
18
19
 
19
-
20
20
  ### Features
21
21
 
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))
23
-
24
-
25
-
26
-
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))
27
23
 
28
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)
29
25
 
30
-
31
26
  ### Features
32
27
 
33
- * **cli:** add integration game deploy pipeline with base place merging ([b406938](https://github.com/Quenty/Nevermore/commit/b406938cee6a1af59adb6682eb6319c76c51aa1a))
34
- * **cli:** merge test and deploy results into single PR comment ([6750feb](https://github.com/Quenty/Nevermore/commit/6750feb4bb5c1075ca9931166aebae01c9333f8d))
35
-
36
-
37
-
38
-
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))
39
30
 
40
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)
41
32
 
42
-
43
33
  ### Features
44
34
 
45
- * **cli:** add GitHub Actions annotations for test failures ([2fd2f42](https://github.com/Quenty/Nevermore/commit/2fd2f423991ca6bf483fa2396045410f849223b6))
46
-
47
-
48
-
49
-
35
+ - **cli:** add GitHub Actions annotations for test failures ([2fd2f42](https://github.com/Quenty/Nevermore/commit/2fd2f423991ca6bf483fa2396045410f849223b6))
50
36
 
51
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)
52
38
 
53
-
54
39
  ### Features
55
40
 
56
- * **cli:** add GitHub Actions workflow annotations for linting ([698f7ba](https://github.com/Quenty/Nevermore/commit/698f7ba6ca2c1448b594b94ca5dedf7b528cc8f3))
57
-
58
-
59
-
60
-
41
+ - **cli:** add GitHub Actions workflow annotations for linting ([698f7ba](https://github.com/Quenty/Nevermore/commit/698f7ba6ca2c1448b594b94ca5dedf7b528cc8f3))
61
42
 
62
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)
63
44
 
64
-
65
45
  ### Bug Fixes
66
46
 
67
- * **cli:** strip redundant heading from job summary output ([3683d56](https://github.com/Quenty/Nevermore/commit/3683d56fd6ac889db6c33f4b348a32ee9807197e))
68
-
47
+ - **cli:** strip redundant heading from job summary output ([3683d56](https://github.com/Quenty/Nevermore/commit/3683d56fd6ac889db6c33f4b348a32ee9807197e))
69
48
 
70
49
  ### Features
71
50
 
72
- * **cli:** add GitHub Actions job summary reporter ([84db8d2](https://github.com/Quenty/Nevermore/commit/84db8d2518df1293fb9bc1d3e05c69cf236e2ed5))
73
-
74
-
75
-
76
-
51
+ - **cli:** add GitHub Actions job summary reporter ([84db8d2](https://github.com/Quenty/Nevermore/commit/84db8d2518df1293fb9bc1d3e05c69cf236e2ed5))
77
52
 
78
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)
79
54
 
80
-
81
55
  ### Bug Fixes
82
56
 
83
- * When no tests run we report that tests were not run ([66a8608](https://github.com/Quenty/Nevermore/commit/66a860829d7241a0055028669a0bf55d4670a245))
84
-
85
-
86
-
87
-
57
+ - When no tests run we report that tests were not run ([66a8608](https://github.com/Quenty/Nevermore/commit/66a860829d7241a0055028669a0bf55d4670a245))
88
58
 
89
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)
90
60
 
91
-
92
61
  ### Bug Fixes
93
62
 
94
- * devcontainer initializes properly with luau-lsp working out of the box ([b8591e8](https://github.com/Quenty/Nevermore/commit/b8591e8a62beda655e90875b0dc22d79fcae8e61))
95
-
96
-
97
-
98
-
63
+ - devcontainer initializes properly with luau-lsp working out of the box ([b8591e8](https://github.com/Quenty/Nevermore/commit/b8591e8a62beda655e90875b0dc22d79fcae8e61))
99
64
 
100
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)
101
66
 
102
-
103
67
  ### Bug Fixes
104
68
 
105
- * Fix spinner design showing stuff ([814cd91](https://github.com/Quenty/Nevermore/commit/814cd915358079f7d628a9739d0cd56e472b52f6))
106
-
69
+ - Fix spinner design showing stuff ([814cd91](https://github.com/Quenty/Nevermore/commit/814cd915358079f7d628a9739d0cd56e472b52f6))
107
70
 
108
71
  ### Features
109
72
 
110
- * Better error messages and optimized tests ([71ca056](https://github.com/Quenty/Nevermore/commit/71ca056517ee98e625d61e7dcd923dc808ac3edc))
111
- * Improve output quality of testing cli tools ([217630c](https://github.com/Quenty/Nevermore/commit/217630c354308b740092c07077341dc82d134965))
112
- * Use reporting system for studio bridge too (a bit ugly) ([20b675c](https://github.com/Quenty/Nevermore/commit/20b675cb22cb46c88b556f4afdda2700dd1258dd))
113
-
114
-
115
-
116
-
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))
117
76
 
118
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)
119
78
 
120
-
121
79
  ### Features
122
80
 
123
- * Nevermore CLI now checks to make sure it is up to date ([d86930c](https://github.com/Quenty/Nevermore/commit/d86930c85f24d879dee9ce5ce413488d1250246d))
124
-
125
-
126
-
127
-
81
+ - Nevermore CLI now checks to make sure it is up to date ([d86930c](https://github.com/Quenty/Nevermore/commit/d86930c85f24d879dee9ce5ce413488d1250246d))
128
82
 
129
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)
130
84
 
131
-
132
85
  ### Bug Fixes
133
86
 
134
- * Fix dependency installation process for pnpm ([9651b09](https://github.com/Quenty/Nevermore/commit/9651b09af34f252ef3f9c7c539793cc878dd8cba))
135
-
136
-
137
-
138
-
87
+ - Fix dependency installation process for pnpm ([9651b09](https://github.com/Quenty/Nevermore/commit/9651b09af34f252ef3f9c7c539793cc878dd8cba))
139
88
 
140
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)
141
90
 
142
91
  **Note:** Version bump only for package @quenty/cli-output-helpers
143
92
 
144
-
145
-
146
-
147
-
148
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)
149
94
 
150
-
151
95
  ### Bug Fixes
152
96
 
153
- * Add warning output to output helper ([573ce4e](https://github.com/Quenty/Nevermore/commit/573ce4ed42831d552cfeb4dde1703d4aeda54967))
154
-
155
-
156
-
157
-
97
+ - Add warning output to output helper ([573ce4e](https://github.com/Quenty/Nevermore/commit/573ce4ed42831d552cfeb4dde1703d4aeda54967))
158
98
 
159
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)
160
100
 
161
-
162
101
  ### Bug Fixes
163
102
 
164
- * Add types to packages ([2374fb2](https://github.com/Quenty/Nevermore/commit/2374fb2b043cfbe0e9b507b3316eec46a4e353a0))
165
- * Bump package versions for republishing ([ba47c62](https://github.com/Quenty/Nevermore/commit/ba47c62e32170bf74377b0c658c60b84306dc294))
166
-
167
-
168
-
169
-
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))
170
105
 
171
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)
172
107
 
173
-
174
108
  ### Bug Fixes
175
109
 
176
- * Add types to packages ([2374fb2](https://github.com/Quenty/Nevermore/commit/2374fb2b043cfbe0e9b507b3316eec46a4e353a0))
177
-
178
-
179
-
180
-
110
+ - Add types to packages ([2374fb2](https://github.com/Quenty/Nevermore/commit/2374fb2b043cfbe0e9b507b3316eec46a4e353a0))
181
111
 
182
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)
183
113
 
184
114
  **Note:** Version bump only for package @quenty/cli-output-helpers
185
115
 
186
-
187
-
188
-
189
-
190
116
  # 1.1.0 (2022-12-27)
191
117
 
192
-
193
118
  ### Features
194
119
 
195
- * Add ability to generate new Nevermore library packages ([e0e8e44](https://github.com/Quenty/Nevermore/commit/e0e8e44a21692d4c383274985d01a965dcfe389c))
196
-
197
-
198
-
199
-
120
+ - Add ability to generate new Nevermore library packages ([e0e8e44](https://github.com/Quenty/Nevermore/commit/e0e8e44a21692d4c383274985d01a965dcfe389c))
200
121
 
201
122
  # v1.1.0 (Tue Dec 27 2022)
202
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"}