@elliemae/encw-leak-runner 1.0.2 → 1.0.4

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 (135) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +34 -17
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/bin/leak-runner.js +80 -9
  5. package/dist/cjs/cli/commands/runCommand.js +7 -2
  6. package/dist/cjs/config/requiredEnvParams.js +14 -2
  7. package/dist/cjs/config/runnerConfigLoader.js +6 -3
  8. package/dist/cjs/config/runnerConfigSchema.js +5 -1
  9. package/dist/cjs/config/unknownEnvError.js +36 -0
  10. package/dist/cjs/index.js +1 -0
  11. package/dist/cjs/runner/scenarioRunner.js +9 -1
  12. package/dist/cjs/scenarios/one-admin/export-navigation.scenario.js +10 -1
  13. package/dist/cjs/scenarios/one-admin/page-models/AdminLandingPageModel.js +42 -0
  14. package/dist/cjs/scenarios/one-admin/page-models/index.js +2 -0
  15. package/dist/esm/cli/commands/runCommand.js +11 -3
  16. package/dist/esm/config/requiredEnvParams.js +14 -2
  17. package/dist/esm/config/runnerConfigLoader.js +6 -3
  18. package/dist/esm/config/runnerConfigSchema.js +5 -1
  19. package/dist/esm/config/unknownEnvError.js +16 -0
  20. package/dist/esm/index.js +3 -1
  21. package/dist/esm/runner/scenarioRunner.js +9 -1
  22. package/dist/esm/scenarios/one-admin/export-navigation.scenario.js +11 -1
  23. package/dist/esm/scenarios/one-admin/page-models/AdminLandingPageModel.js +22 -0
  24. package/dist/esm/scenarios/one-admin/page-models/index.js +2 -0
  25. package/dist/types/lib/config/requiredEnvParams.d.ts +4 -1
  26. package/dist/types/lib/config/runnerConfigLoader.d.ts +1 -0
  27. package/dist/types/lib/config/runnerConfigSchema.d.ts +7 -0
  28. package/dist/types/lib/config/unknownEnvError.d.ts +5 -0
  29. package/dist/types/lib/index.d.ts +1 -1
  30. package/dist/types/lib/runner/aiEnhancementStep.d.ts +4 -3
  31. package/dist/types/lib/scenarios/one-admin/page-models/AdminLandingPageModel.d.ts +8 -0
  32. package/dist/types/lib/scenarios/one-admin/page-models/index.d.ts +1 -0
  33. package/dist/types/lib/types/scenario.d.ts +1 -0
  34. package/leak-runner.config.json +18 -0
  35. package/leak-runner.schema.json +5 -0
  36. package/lib/cli/commands/runCommand.ts +15 -2
  37. package/lib/config/requiredEnvParams.ts +15 -2
  38. package/lib/config/runnerConfigLoader.ts +12 -5
  39. package/lib/config/runnerConfigSchema.ts +4 -0
  40. package/lib/config/tests/fileConfigSource.test.ts +26 -0
  41. package/lib/config/tests/requiredEnvParams.test.ts +90 -2
  42. package/lib/config/tests/runnerConfigLoader.test.ts +30 -0
  43. package/lib/config/unknownEnvError.ts +13 -0
  44. package/lib/index.ts +1 -0
  45. package/lib/runner/aiEnhancementStep.ts +4 -3
  46. package/lib/runner/scenarioRunner.ts +8 -1
  47. package/lib/scenarios/one-admin/export-navigation.scenario.ts +13 -1
  48. package/lib/scenarios/one-admin/page-models/AdminLandingPageModel.ts +24 -0
  49. package/lib/scenarios/one-admin/page-models/index.ts +1 -0
  50. package/lib/types/scenario.ts +1 -0
  51. package/package.json +3 -3
  52. package/reports/analysis/index.html +1 -1
  53. package/reports/analysis/thresholdEvaluator.ts.html +1 -1
  54. package/reports/browser/iframeHeapProfiler.ts.html +1 -1
  55. package/reports/browser/index.html +1 -1
  56. package/reports/cli/commands/index.html +3 -3
  57. package/reports/cli/commands/listCommand.ts.html +1 -1
  58. package/reports/cli/commands/runCommand.ts.html +44 -5
  59. package/reports/cli/index.html +1 -1
  60. package/reports/cli/index.ts.html +1 -1
  61. package/reports/config/index.html +36 -21
  62. package/reports/config/missingRequiredParamError.ts.html +4 -4
  63. package/reports/config/requiredEnvParams.ts.html +67 -28
  64. package/reports/config/runnerConfigLoader.ts.html +38 -17
  65. package/reports/config/runnerConfigSchema.ts.html +18 -6
  66. package/reports/config/sources/cliOverrideConfigSource.ts.html +1 -1
  67. package/reports/config/sources/configSource.ts.html +2 -2
  68. package/reports/config/sources/envVarConfigSource.ts.html +1 -1
  69. package/reports/config/sources/fileConfigSource.ts.html +13 -13
  70. package/reports/config/sources/index.html +1 -1
  71. package/reports/config/unknownEnvError.ts.html +124 -0
  72. package/reports/index.html +35 -35
  73. package/reports/lcov-report/analysis/index.html +1 -1
  74. package/reports/lcov-report/analysis/thresholdEvaluator.ts.html +1 -1
  75. package/reports/lcov-report/browser/iframeHeapProfiler.ts.html +1 -1
  76. package/reports/lcov-report/browser/index.html +1 -1
  77. package/reports/lcov-report/cli/commands/index.html +3 -3
  78. package/reports/lcov-report/cli/commands/listCommand.ts.html +1 -1
  79. package/reports/lcov-report/cli/commands/runCommand.ts.html +44 -5
  80. package/reports/lcov-report/cli/index.html +1 -1
  81. package/reports/lcov-report/cli/index.ts.html +1 -1
  82. package/reports/lcov-report/config/index.html +36 -21
  83. package/reports/lcov-report/config/missingRequiredParamError.ts.html +4 -4
  84. package/reports/lcov-report/config/requiredEnvParams.ts.html +67 -28
  85. package/reports/lcov-report/config/runnerConfigLoader.ts.html +38 -17
  86. package/reports/lcov-report/config/runnerConfigSchema.ts.html +18 -6
  87. package/reports/lcov-report/config/sources/cliOverrideConfigSource.ts.html +1 -1
  88. package/reports/lcov-report/config/sources/configSource.ts.html +2 -2
  89. package/reports/lcov-report/config/sources/envVarConfigSource.ts.html +1 -1
  90. package/reports/lcov-report/config/sources/fileConfigSource.ts.html +13 -13
  91. package/reports/lcov-report/config/sources/index.html +1 -1
  92. package/reports/lcov-report/config/unknownEnvError.ts.html +124 -0
  93. package/reports/lcov-report/index.html +35 -35
  94. package/reports/lcov-report/registry/index.html +1 -1
  95. package/reports/lcov-report/registry/scenarioRegistry.ts.html +1 -1
  96. package/reports/lcov-report/reporting/consoleReporter.ts.html +1 -1
  97. package/reports/lcov-report/reporting/index.html +1 -1
  98. package/reports/lcov-report/reporting/junitReporter.ts.html +1 -1
  99. package/reports/lcov-report/runner/aiEnhancementStep.ts.html +8 -5
  100. package/reports/lcov-report/runner/batchRunner.ts.html +1 -1
  101. package/reports/lcov-report/runner/index.html +15 -15
  102. package/reports/lcov-report/runner/scenarioRunner.ts.html +32 -11
  103. package/reports/lcov-report/scenarios/index.html +1 -1
  104. package/reports/lcov-report/scenarios/index.ts.html +1 -1
  105. package/reports/lcov-report/scenarios/one-admin/export-navigation.scenario.ts.html +44 -8
  106. package/reports/lcov-report/scenarios/one-admin/index.html +11 -11
  107. package/reports/lcov-report/scenarios/one-admin/index.ts.html +1 -1
  108. package/reports/lcov-report/scenarios/one-admin/page-models/AdminLandingPageModel.ts.html +157 -0
  109. package/reports/lcov-report/scenarios/one-admin/page-models/ExportPageModel.ts.html +1 -1
  110. package/reports/lcov-report/scenarios/one-admin/page-models/SelectSettingsPageModel.ts.html +1 -1
  111. package/reports/lcov-report/scenarios/one-admin/page-models/index.html +19 -4
  112. package/reports/lcov-report/types/config.ts.html +1 -1
  113. package/reports/lcov-report/types/index.html +1 -1
  114. package/reports/lcov.info +302 -230
  115. package/reports/registry/index.html +1 -1
  116. package/reports/registry/scenarioRegistry.ts.html +1 -1
  117. package/reports/reporting/consoleReporter.ts.html +1 -1
  118. package/reports/reporting/index.html +1 -1
  119. package/reports/reporting/junitReporter.ts.html +1 -1
  120. package/reports/runner/aiEnhancementStep.ts.html +8 -5
  121. package/reports/runner/batchRunner.ts.html +1 -1
  122. package/reports/runner/index.html +15 -15
  123. package/reports/runner/scenarioRunner.ts.html +32 -11
  124. package/reports/scenarios/index.html +1 -1
  125. package/reports/scenarios/index.ts.html +1 -1
  126. package/reports/scenarios/one-admin/export-navigation.scenario.ts.html +44 -8
  127. package/reports/scenarios/one-admin/index.html +11 -11
  128. package/reports/scenarios/one-admin/index.ts.html +1 -1
  129. package/reports/scenarios/one-admin/page-models/AdminLandingPageModel.ts.html +157 -0
  130. package/reports/scenarios/one-admin/page-models/ExportPageModel.ts.html +1 -1
  131. package/reports/scenarios/one-admin/page-models/SelectSettingsPageModel.ts.html +1 -1
  132. package/reports/scenarios/one-admin/page-models/index.html +19 -4
  133. package/reports/types/config.ts.html +1 -1
  134. package/reports/types/index.html +1 -1
  135. package/test-report.xml +75 -62
@@ -30,9 +30,9 @@
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">75% </span>
33
+ <span class="strong">76.66% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>21/28</span>
35
+ <span class='fraction'>23/30</span>
36
36
  </div>
37
37
 
38
38
 
@@ -147,7 +147,14 @@
147
147
  <a name='L82'></a><a href='#L82'>82</a>
148
148
  <a name='L83'></a><a href='#L83'>83</a>
149
149
  <a name='L84'></a><a href='#L84'>84</a>
150
- <a name='L85'></a><a href='#L85'>85</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
150
+ <a name='L85'></a><a href='#L85'>85</a>
151
+ <a name='L86'></a><a href='#L86'>86</a>
152
+ <a name='L87'></a><a href='#L87'>87</a>
153
+ <a name='L88'></a><a href='#L88'>88</a>
154
+ <a name='L89'></a><a href='#L89'>89</a>
155
+ <a name='L90'></a><a href='#L90'>90</a>
156
+ <a name='L91'></a><a href='#L91'>91</a>
157
+ <a name='L92'></a><a href='#L92'>92</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
151
158
  <span class="cline-any cline-neutral">&nbsp;</span>
152
159
  <span class="cline-any cline-neutral">&nbsp;</span>
153
160
  <span class="cline-any cline-yes">1x</span>
@@ -171,6 +178,13 @@
171
178
  <span class="cline-any cline-neutral">&nbsp;</span>
172
179
  <span class="cline-any cline-neutral">&nbsp;</span>
173
180
  <span class="cline-any cline-neutral">&nbsp;</span>
181
+ <span class="cline-any cline-neutral">&nbsp;</span>
182
+ <span class="cline-any cline-neutral">&nbsp;</span>
183
+ <span class="cline-any cline-neutral">&nbsp;</span>
184
+ <span class="cline-any cline-neutral">&nbsp;</span>
185
+ <span class="cline-any cline-neutral">&nbsp;</span>
186
+ <span class="cline-any cline-neutral">&nbsp;</span>
187
+ <span class="cline-any cline-neutral">&nbsp;</span>
174
188
  <span class="cline-any cline-yes">5x</span>
175
189
  <span class="cline-any cline-neutral">&nbsp;</span>
176
190
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -190,25 +204,25 @@
190
204
  <span class="cline-any cline-neutral">&nbsp;</span>
191
205
  <span class="cline-any cline-neutral">&nbsp;</span>
192
206
  <span class="cline-any cline-neutral">&nbsp;</span>
207
+ <span class="cline-any cline-yes">9x</span>
208
+ <span class="cline-any cline-yes">9x</span>
193
209
  <span class="cline-any cline-neutral">&nbsp;</span>
194
210
  <span class="cline-any cline-neutral">&nbsp;</span>
195
211
  <span class="cline-any cline-neutral">&nbsp;</span>
196
- <span class="cline-any cline-yes">6x</span>
197
- <span class="cline-any cline-yes">6x</span>
198
212
  <span class="cline-any cline-neutral">&nbsp;</span>
199
213
  <span class="cline-any cline-neutral">&nbsp;</span>
200
214
  <span class="cline-any cline-neutral">&nbsp;</span>
201
215
  <span class="cline-any cline-neutral">&nbsp;</span>
202
216
  <span class="cline-any cline-neutral">&nbsp;</span>
217
+ <span class="cline-any cline-yes">8x</span>
218
+ <span class="cline-any cline-yes">8x</span>
203
219
  <span class="cline-any cline-neutral">&nbsp;</span>
204
220
  <span class="cline-any cline-neutral">&nbsp;</span>
205
- <span class="cline-any cline-yes">5x</span>
206
- <span class="cline-any cline-yes">5x</span>
221
+ <span class="cline-any cline-yes">8x</span>
207
222
  <span class="cline-any cline-neutral">&nbsp;</span>
223
+ <span class="cline-any cline-yes">8x</span>
208
224
  <span class="cline-any cline-neutral">&nbsp;</span>
209
- <span class="cline-any cline-yes">5x</span>
210
225
  <span class="cline-any cline-neutral">&nbsp;</span>
211
- <span class="cline-any cline-yes">5x</span>
212
226
  <span class="cline-any cline-neutral">&nbsp;</span>
213
227
  <span class="cline-any cline-neutral">&nbsp;</span>
214
228
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -220,10 +234,10 @@
220
234
  <span class="cline-any cline-neutral">&nbsp;</span>
221
235
  <span class="cline-any cline-neutral">&nbsp;</span>
222
236
  <span class="cline-any cline-neutral">&nbsp;</span>
237
+ <span class="cline-any cline-yes">8x</span>
223
238
  <span class="cline-any cline-neutral">&nbsp;</span>
224
- <span class="cline-any cline-yes">5x</span>
239
+ <span class="cline-any cline-yes">8x</span>
225
240
  <span class="cline-any cline-neutral">&nbsp;</span>
226
- <span class="cline-any cline-yes">5x</span>
227
241
  <span class="cline-any cline-neutral">&nbsp;</span>
228
242
  <span class="cline-any cline-neutral">&nbsp;</span>
229
243
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -241,6 +255,7 @@ export interface ResolvedRunnerConfigPartial {
241
255
  readonly aiEnabled: boolean;
242
256
  readonly aiModel: string;
243
257
  readonly aiTemperature: number;
258
+ readonly envs: Readonly&lt;Record&lt;string, string&gt;&gt;;
244
259
  }
245
260
  &nbsp;
246
261
  type MutableRunner = { headless: boolean; outputDir: string; topN: number };
@@ -251,6 +266,12 @@ type AiAccumulator = {
251
266
  aiTemperature: number;
252
267
  };
253
268
  &nbsp;
269
+ type Accumulator = {
270
+ runner: MutableRunner;
271
+ ai: AiAccumulator;
272
+ envs: Record&lt;string, string&gt;;
273
+ };
274
+ &nbsp;
254
275
  function applyRunnerPayload(
255
276
  acc: MutableRunner,
256
277
  payload: NonNullable&lt;RawRunnerConfigFile['runner']&gt;,
@@ -273,16 +294,14 @@ function applyAiPayload(
273
294
  };
274
295
  }
275
296
  &nbsp;
276
- function applySource(
277
- acc: { runner: MutableRunner; ai: AiAccumulator },
278
- source: ConfigSource,
279
- ): { runner: MutableRunner; ai: AiAccumulator } {
297
+ function applySource(acc: Accumulator, source: ConfigSource): Accumulator {
280
298
  const payload = source.load();
281
299
  return {
282
300
  runner: payload.runner
283
301
  ? applyRunnerPayload(acc.runner, payload.runner)
284
302
  : acc.runner,
285
303
  ai: payload.ai ? applyAiPayload(acc.ai, payload.ai) : acc.ai,
304
+ envs: payload.envs ? { ...acc.envs, ...payload.envs } : acc.envs,
286
305
  };
287
306
  }
288
307
  &nbsp;
@@ -292,7 +311,7 @@ export class RunnerConfigLoader {
292
311
  resolveOptions(): ResolvedRunnerConfigPartial {
293
312
  const ordered = [...this.sources].sort((a, b) =&gt; a.priority - b.priority);
294
313
  &nbsp;
295
- const initial = {
314
+ const initial: Accumulator = {
296
315
  runner: {
297
316
  headless: BUILT_IN_DEFAULTS.runner.headless ?? <span class="branch-1 cbranch-no" title="branch not covered" >true,</span>
298
317
  outputDir: BUILT_IN_DEFAULTS.runner.outputDir ?? <span class="branch-1 cbranch-no" title="branch not covered" >'./leak-reports/',</span>
@@ -303,6 +322,7 @@ export class RunnerConfigLoader {
303
322
  aiModel: BUILT_IN_DEFAULTS.ai.model ?? <span class="branch-1 cbranch-no" title="branch not covered" >'Claude3.7',</span>
304
323
  aiTemperature: BUILT_IN_DEFAULTS.ai.temperature ?? <span class="branch-1 cbranch-no" title="branch not covered" >0.3,</span>
305
324
  },
325
+ envs: {},
306
326
  };
307
327
  &nbsp;
308
328
  const resolved = ordered.reduce(applySource, initial);
@@ -312,6 +332,7 @@ export class RunnerConfigLoader {
312
332
  aiEnabled: resolved.ai.aiEnabled,
313
333
  aiModel: resolved.ai.aiModel,
314
334
  aiTemperature: resolved.ai.aiTemperature,
335
+ envs: resolved.envs,
315
336
  };
316
337
  }
317
338
  }
@@ -322,7 +343,7 @@ export class RunnerConfigLoader {
322
343
  <div class='footer quiet pad2 space-top1 center small'>
323
344
  Code coverage generated by
324
345
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
325
- at 2026-05-08T18:03:27.910Z
346
+ at 2026-05-13T17:06:38.136Z
326
347
  </div>
327
348
  <script src="../prettify.js"></script>
328
349
  <script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">71.42% </span>
26
+ <span class="strong">66.66% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>5/7</span>
28
+ <span class='fraction'>6/9</span>
29
29
  </div>
30
30
 
31
31
 
@@ -46,7 +46,7 @@
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>4/4</span>
49
+ <span class='fraction'>5/5</span>
50
50
  </div>
51
51
 
52
52
 
@@ -90,7 +90,11 @@
90
90
  <a name='L25'></a><a href='#L25'>25</a>
91
91
  <a name='L26'></a><a href='#L26'>26</a>
92
92
  <a name='L27'></a><a href='#L27'>27</a>
93
- <a name='L28'></a><a href='#L28'>28</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
93
+ <a name='L28'></a><a href='#L28'>28</a>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
94
98
  <span class="cline-any cline-neutral">&nbsp;</span>
95
99
  <span class="cline-any cline-yes">1x</span>
96
100
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -108,7 +112,11 @@
108
112
  <span class="cline-any cline-neutral">&nbsp;</span>
109
113
  <span class="cline-any cline-neutral">&nbsp;</span>
110
114
  <span class="cline-any cline-neutral">&nbsp;</span>
111
- <span class="cline-any cline-yes">2x</span>
115
+ <span class="cline-any cline-yes">1x</span>
116
+ <span class="cline-any cline-neutral">&nbsp;</span>
117
+ <span class="cline-any cline-yes">4x</span>
118
+ <span class="cline-any cline-neutral">&nbsp;</span>
119
+ <span class="cline-any cline-neutral">&nbsp;</span>
112
120
  <span class="cline-any cline-neutral">&nbsp;</span>
113
121
  <span class="cline-any cline-neutral">&nbsp;</span>
114
122
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -135,10 +143,14 @@ export const <span class="cstat-no" title="statement not covered" >aiConfigFileS
135
143
  })
136
144
  .partial();
137
145
  &nbsp;
146
+ export const <span class="cstat-no" title="statement not covered" >envsSchema </span>= z.record(z.string().min(1));
147
+ &nbsp;
138
148
  export const runnerConfigFileSchema = z
139
149
  .object({
150
+ $schema: z.string().optional(),
140
151
  runner: runnerOptionsSchema,
141
152
  ai: aiConfigFileSchema,
153
+ envs: envsSchema,
142
154
  })
143
155
  .partial()
144
156
  .strict();
@@ -151,7 +163,7 @@ export type RawRunnerConfigFile = z.infer&lt;typeof runnerConfigFileSchema&gt;;
151
163
  <div class='footer quiet pad2 space-top1 center small'>
152
164
  Code coverage generated by
153
165
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
154
- at 2026-05-08T18:03:27.910Z
166
+ at 2026-05-13T17:06:38.136Z
155
167
  </div>
156
168
  <script src="../prettify.js"></script>
157
169
  <script>
@@ -160,7 +160,7 @@ export class CliOverrideConfigSource implements ConfigSource {
160
160
  <div class='footer quiet pad2 space-top1 center small'>
161
161
  Code coverage generated by
162
162
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
163
- at 2026-05-08T18:03:27.910Z
163
+ at 2026-05-13T17:06:38.136Z
164
164
  </div>
165
165
  <script src="../../prettify.js"></script>
166
166
  <script>
@@ -102,7 +102,7 @@
102
102
  <span class="cline-any cline-neutral">&nbsp;</span>
103
103
  <span class="cline-any cline-neutral">&nbsp;</span>
104
104
  <span class="cline-any cline-neutral">&nbsp;</span>
105
- <span class="cline-any cline-yes">30x</span>
105
+ <span class="cline-any cline-yes">48x</span>
106
106
  <span class="cline-any cline-neutral">&nbsp;</span>
107
107
  <span class="cline-any cline-neutral">&nbsp;</span>
108
108
  <span class="cline-any cline-yes">1x</span>
@@ -151,7 +151,7 @@ export const BUILT_IN_DEFAULTS: Required&lt;{
151
151
  <div class='footer quiet pad2 space-top1 center small'>
152
152
  Code coverage generated by
153
153
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
154
- at 2026-05-08T18:03:27.910Z
154
+ at 2026-05-13T17:06:38.136Z
155
155
  </div>
156
156
  <script src="../../prettify.js"></script>
157
157
  <script>
@@ -139,7 +139,7 @@ export class EnvVarConfigSource implements ConfigSource {
139
139
  <div class='footer quiet pad2 space-top1 center small'>
140
140
  Code coverage generated by
141
141
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
142
- at 2026-05-08T18:03:27.910Z
142
+ at 2026-05-13T17:06:38.136Z
143
143
  </div>
144
144
  <script src="../../prettify.js"></script>
145
145
  <script>
@@ -109,20 +109,20 @@
109
109
  <span class="cline-any cline-yes">1x</span>
110
110
  <span class="cline-any cline-neutral">&nbsp;</span>
111
111
  <span class="cline-any cline-neutral">&nbsp;</span>
112
- <span class="cline-any cline-yes">5x</span>
113
- <span class="cline-any cline-yes">5x</span>
112
+ <span class="cline-any cline-yes">7x</span>
113
+ <span class="cline-any cline-yes">7x</span>
114
114
  <span class="cline-any cline-neutral">&nbsp;</span>
115
- <span class="cline-any cline-yes">5x</span>
115
+ <span class="cline-any cline-yes">7x</span>
116
116
  <span class="cline-any cline-neutral">&nbsp;</span>
117
- <span class="cline-any cline-yes">5x</span>
117
+ <span class="cline-any cline-yes">7x</span>
118
118
  <span class="cline-any cline-neutral">&nbsp;</span>
119
119
  <span class="cline-any cline-neutral">&nbsp;</span>
120
- <span class="cline-any cline-yes">4x</span>
120
+ <span class="cline-any cline-yes">6x</span>
121
121
  <span class="cline-any cline-neutral">&nbsp;</span>
122
- <span class="cline-any cline-yes">3x</span>
122
+ <span class="cline-any cline-yes">5x</span>
123
123
  <span class="cline-any cline-neutral">&nbsp;</span>
124
- <span class="cline-any cline-yes">3x</span>
125
- <span class="cline-any cline-yes">3x</span>
124
+ <span class="cline-any cline-yes">5x</span>
125
+ <span class="cline-any cline-yes">5x</span>
126
126
  <span class="cline-any cline-neutral">&nbsp;</span>
127
127
  <span class="cline-any cline-yes">1x</span>
128
128
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -131,14 +131,14 @@
131
131
  <span class="cline-any cline-neutral">&nbsp;</span>
132
132
  <span class="cline-any cline-neutral">&nbsp;</span>
133
133
  <span class="cline-any cline-neutral">&nbsp;</span>
134
+ <span class="cline-any cline-yes">4x</span>
135
+ <span class="cline-any cline-yes">4x</span>
134
136
  <span class="cline-any cline-yes">2x</span>
135
137
  <span class="cline-any cline-yes">2x</span>
136
- <span class="cline-any cline-yes">1x</span>
137
- <span class="cline-any cline-yes">1x</span>
138
138
  <span class="cline-any cline-neutral">&nbsp;</span>
139
- <span class="cline-any cline-yes">1x</span>
139
+ <span class="cline-any cline-yes">2x</span>
140
140
  <span class="cline-any cline-neutral">&nbsp;</span>
141
- <span class="cline-any cline-yes">1x</span>
141
+ <span class="cline-any cline-yes">2x</span>
142
142
  <span class="cline-any cline-neutral">&nbsp;</span>
143
143
  <span class="cline-any cline-neutral">&nbsp;</span>
144
144
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import fs from 'node:fs';
@@ -187,7 +187,7 @@ export class FileConfigSource implements ConfigSource {
187
187
  <div class='footer quiet pad2 space-top1 center small'>
188
188
  Code coverage generated by
189
189
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
190
- at 2026-05-08T18:03:27.910Z
190
+ at 2026-05-13T17:06:38.136Z
191
191
  </div>
192
192
  <script src="../../prettify.js"></script>
193
193
  <script>
@@ -146,7 +146,7 @@
146
146
  <div class='footer quiet pad2 space-top1 center small'>
147
147
  Code coverage generated by
148
148
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
149
- at 2026-05-08T18:03:27.910Z
149
+ at 2026-05-13T17:06:38.136Z
150
150
  </div>
151
151
  <script src="../../prettify.js"></script>
152
152
  <script>
@@ -0,0 +1,124 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for config/unknownEnvError.ts</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../prettify.css" />
9
+ <link rel="stylesheet" href="../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../index.html">All files</a> / <a href="index.html">config</a> unknownEnvError.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">100% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>4/4</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">100% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>2/2</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">100% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>1/1</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">100% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>4/4</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line high'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">4x</span>
80
+ <span class="cline-any cline-neutral">&nbsp;</span>
81
+ <span class="cline-any cline-neutral">&nbsp;</span>
82
+ <span class="cline-any cline-neutral">&nbsp;</span>
83
+ <span class="cline-any cline-neutral">&nbsp;</span>
84
+ <span class="cline-any cline-neutral">&nbsp;</span>
85
+ <span class="cline-any cline-yes">2x</span>
86
+ <span class="cline-any cline-yes">2x</span>
87
+ <span class="cline-any cline-neutral">&nbsp;</span>
88
+ <span class="cline-any cline-neutral">&nbsp;</span>
89
+ <span class="cline-any cline-yes">2x</span>
90
+ <span class="cline-any cline-neutral">&nbsp;</span>
91
+ <span class="cline-any cline-neutral">&nbsp;</span>
92
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">export class UnknownEnvError extends Error {
93
+ constructor(
94
+ public readonly name: string,
95
+ public readonly knownEnvs: readonly string[],
96
+ ) {
97
+ const knownList =
98
+ knownEnvs.length &gt; 0 ? knownEnvs.join(', ') : '(none defined)';
99
+ super(
100
+ `Unknown env "${name}". Known envs in leak-runner.config.json: ${knownList}.`,
101
+ );
102
+ this.name = 'UnknownEnvError';
103
+ }
104
+ }
105
+ &nbsp;</pre></td></tr></table></pre>
106
+
107
+ <div class='push'></div><!-- for sticky footer -->
108
+ </div><!-- /wrapper -->
109
+ <div class='footer quiet pad2 space-top1 center small'>
110
+ Code coverage generated by
111
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
112
+ at 2026-05-13T17:06:38.136Z
113
+ </div>
114
+ <script src="../prettify.js"></script>
115
+ <script>
116
+ window.onload = function () {
117
+ prettyPrint();
118
+ };
119
+ </script>
120
+ <script src="../sorter.js"></script>
121
+ <script src="../block-navigation.js"></script>
122
+ </body>
123
+ </html>
124
+
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">66.75% </span>
26
+ <span class="strong">64.79% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>249/373</span>
28
+ <span class='fraction'>265/409</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">64.28% </span>
33
+ <span class="strong">64.74% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>81/126</span>
35
+ <span class='fraction'>90/139</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">65.95% </span>
40
+ <span class="strong">63% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>62/94</span>
42
+ <span class='fraction'>63/100</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">67.15% </span>
47
+ <span class="strong">65.14% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>231/344</span>
49
+ <span class='fraction'>243/373</span>
50
50
  </div>
51
51
 
52
52
 
@@ -131,7 +131,7 @@
131
131
  <td data-value="0" class="pct low">0%</td>
132
132
  <td data-value="47" class="abs low">0/47</td>
133
133
  <td data-value="0" class="pct low">0%</td>
134
- <td data-value="17" class="abs low">0/17</td>
134
+ <td data-value="19" class="abs low">0/19</td>
135
135
  <td data-value="0" class="pct low">0%</td>
136
136
  <td data-value="10" class="abs low">0/10</td>
137
137
  <td data-value="0" class="pct low">0%</td>
@@ -140,17 +140,17 @@
140
140
 
141
141
  <tr>
142
142
  <td class="file high" data-value="config"><a href="config/index.html">config</a></td>
143
- <td data-value="93.75" class="pic high">
144
- <div class="chart"><div class="cover-fill" style="width: 93%"></div><div class="cover-empty" style="width: 7%"></div></div>
143
+ <td data-value="92.53" class="pic high">
144
+ <div class="chart"><div class="cover-fill" style="width: 92%"></div><div class="cover-empty" style="width: 8%"></div></div>
145
145
  </td>
146
- <td data-value="93.75" class="pct high">93.75%</td>
147
- <td data-value="48" class="abs high">45/48</td>
148
- <td data-value="84.09" class="pct high">84.09%</td>
149
- <td data-value="44" class="abs high">37/44</td>
146
+ <td data-value="92.53" class="pct high">92.53%</td>
147
+ <td data-value="67" class="abs high">62/67</td>
148
+ <td data-value="86.79" class="pct high">86.79%</td>
149
+ <td data-value="53" class="abs high">46/53</td>
150
150
  <td data-value="100" class="pct high">100%</td>
151
- <td data-value="13" class="abs high">13/13</td>
152
- <td data-value="97.43" class="pct high">97.43%</td>
153
- <td data-value="39" class="abs high">38/39</td>
151
+ <td data-value="14" class="abs high">14/14</td>
152
+ <td data-value="98.07" class="pct high">98.07%</td>
153
+ <td data-value="52" class="abs high">51/52</td>
154
154
  </tr>
155
155
 
156
156
  <tr>
@@ -200,17 +200,17 @@
200
200
 
201
201
  <tr>
202
202
  <td class="file medium" data-value="runner"><a href="runner/index.html">runner</a></td>
203
- <td data-value="66.66" class="pic medium">
204
- <div class="chart"><div class="cover-fill" style="width: 66%"></div><div class="cover-empty" style="width: 34%"></div></div>
203
+ <td data-value="63.02" class="pic medium">
204
+ <div class="chart"><div class="cover-fill" style="width: 63%"></div><div class="cover-empty" style="width: 37%"></div></div>
205
205
  </td>
206
- <td data-value="66.66" class="pct medium">66.66%</td>
207
- <td data-value="114" class="abs medium">76/114</td>
208
- <td data-value="41.66" class="pct low">41.66%</td>
209
- <td data-value="24" class="abs low">10/24</td>
206
+ <td data-value="63.02" class="pct medium">63.02%</td>
207
+ <td data-value="119" class="abs medium">75/119</td>
208
+ <td data-value="40" class="pct low">40%</td>
209
+ <td data-value="25" class="abs low">10/25</td>
210
210
  <td data-value="80" class="pct high">80%</td>
211
211
  <td data-value="25" class="abs high">20/25</td>
212
- <td data-value="69.15" class="pct medium">69.15%</td>
213
- <td data-value="107" class="abs medium">74/107</td>
212
+ <td data-value="65.76" class="pct medium">65.76%</td>
213
+ <td data-value="111" class="abs medium">73/111</td>
214
214
  </tr>
215
215
 
216
216
  <tr>
@@ -234,13 +234,13 @@
234
234
  <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
235
235
  </td>
236
236
  <td data-value="0" class="pct low">0%</td>
237
- <td data-value="13" class="abs low">0/13</td>
238
- <td data-value="100" class="pct high">100%</td>
239
- <td data-value="0" class="abs high">0/0</td>
237
+ <td data-value="19" class="abs low">0/19</td>
240
238
  <td data-value="0" class="pct low">0%</td>
241
- <td data-value="4" class="abs low">0/4</td>
239
+ <td data-value="1" class="abs low">0/1</td>
242
240
  <td data-value="0" class="pct low">0%</td>
243
- <td data-value="13" class="abs low">0/13</td>
241
+ <td data-value="5" class="abs low">0/5</td>
242
+ <td data-value="0" class="pct low">0%</td>
243
+ <td data-value="19" class="abs low">0/19</td>
244
244
  </tr>
245
245
 
246
246
  <tr>
@@ -249,13 +249,13 @@
249
249
  <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
250
250
  </td>
251
251
  <td data-value="0" class="pct low">0%</td>
252
- <td data-value="13" class="abs low">0/13</td>
252
+ <td data-value="19" class="abs low">0/19</td>
253
253
  <td data-value="100" class="pct high">100%</td>
254
254
  <td data-value="0" class="abs high">0/0</td>
255
255
  <td data-value="0" class="pct low">0%</td>
256
- <td data-value="10" class="abs low">0/10</td>
256
+ <td data-value="14" class="abs low">0/14</td>
257
257
  <td data-value="0" class="pct low">0%</td>
258
- <td data-value="13" class="abs low">0/13</td>
258
+ <td data-value="19" class="abs low">0/19</td>
259
259
  </tr>
260
260
 
261
261
  <tr>
@@ -281,7 +281,7 @@
281
281
  <div class='footer quiet pad2 space-top1 center small'>
282
282
  Code coverage generated by
283
283
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
284
- at 2026-05-08T18:03:27.910Z
284
+ at 2026-05-13T17:06:38.136Z
285
285
  </div>
286
286
  <script src="prettify.js"></script>
287
287
  <script>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at 2026-05-08T18:03:27.864Z
104
+ at 2026-05-13T17:06:38.095Z
105
105
  </div>
106
106
  <script src="../prettify.js"></script>
107
107
  <script>
@@ -178,7 +178,7 @@ export class ThresholdEvaluator {
178
178
  <div class='footer quiet pad2 space-top1 center small'>
179
179
  Code coverage generated by
180
180
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
181
- at 2026-05-08T18:03:27.864Z
181
+ at 2026-05-13T17:06:38.095Z
182
182
  </div>
183
183
  <script src="../prettify.js"></script>
184
184
  <script>
@@ -160,7 +160,7 @@ export class IframeHeapProfiler extends HeapMemoryProfiler {
160
160
  <div class='footer quiet pad2 space-top1 center small'>
161
161
  Code coverage generated by
162
162
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
163
- at 2026-05-08T18:03:27.864Z
163
+ at 2026-05-13T17:06:38.095Z
164
164
  </div>
165
165
  <script src="../prettify.js"></script>
166
166
  <script>