@northflare/runner 0.0.12 → 0.0.13

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 (77) hide show
  1. package/package.json +2 -3
  2. package/coverage/base.css +0 -224
  3. package/coverage/block-navigation.js +0 -87
  4. package/coverage/coverage-final.json +0 -12
  5. package/coverage/favicon.png +0 -0
  6. package/coverage/index.html +0 -176
  7. package/coverage/lib/index.html +0 -116
  8. package/coverage/lib/preload-script.js.html +0 -964
  9. package/coverage/prettify.css +0 -1
  10. package/coverage/prettify.js +0 -2
  11. package/coverage/sort-arrow-sprite.png +0 -0
  12. package/coverage/sorter.js +0 -196
  13. package/coverage/src/collections/index.html +0 -116
  14. package/coverage/src/collections/runner-messages.ts.html +0 -312
  15. package/coverage/src/components/claude-manager.ts.html +0 -1290
  16. package/coverage/src/components/index.html +0 -146
  17. package/coverage/src/components/message-handler.ts.html +0 -730
  18. package/coverage/src/components/repository-manager.ts.html +0 -841
  19. package/coverage/src/index.html +0 -131
  20. package/coverage/src/index.ts.html +0 -448
  21. package/coverage/src/runner.ts.html +0 -1239
  22. package/coverage/src/utils/config.ts.html +0 -780
  23. package/coverage/src/utils/console.ts.html +0 -121
  24. package/coverage/src/utils/index.html +0 -161
  25. package/coverage/src/utils/logger.ts.html +0 -475
  26. package/coverage/src/utils/status-line.ts.html +0 -445
  27. package/exceptions.log +0 -24
  28. package/lib/codex-sdk/src/codex.ts +0 -38
  29. package/lib/codex-sdk/src/codexOptions.ts +0 -10
  30. package/lib/codex-sdk/src/events.ts +0 -80
  31. package/lib/codex-sdk/src/exec.ts +0 -336
  32. package/lib/codex-sdk/src/index.ts +0 -39
  33. package/lib/codex-sdk/src/items.ts +0 -127
  34. package/lib/codex-sdk/src/outputSchemaFile.ts +0 -40
  35. package/lib/codex-sdk/src/thread.ts +0 -155
  36. package/lib/codex-sdk/src/threadOptions.ts +0 -18
  37. package/lib/codex-sdk/src/turnOptions.ts +0 -6
  38. package/lib/codex-sdk/tests/abort.test.ts +0 -165
  39. package/lib/codex-sdk/tests/codexExecSpy.ts +0 -37
  40. package/lib/codex-sdk/tests/responsesProxy.ts +0 -225
  41. package/lib/codex-sdk/tests/run.test.ts +0 -687
  42. package/lib/codex-sdk/tests/runStreamed.test.ts +0 -211
  43. package/lib/codex-sdk/tsconfig.json +0 -24
  44. package/rejections.log +0 -68
  45. package/runner.log +0 -488
  46. package/src/components/claude-sdk-manager.ts +0 -1425
  47. package/src/components/codex-sdk-manager.ts +0 -1358
  48. package/src/components/enhanced-repository-manager.ts +0 -823
  49. package/src/components/message-handler-sse.ts +0 -1097
  50. package/src/components/repository-manager.ts +0 -337
  51. package/src/index.ts +0 -168
  52. package/src/runner-sse.ts +0 -917
  53. package/src/services/RunnerAPIClient.ts +0 -175
  54. package/src/services/SSEClient.ts +0 -258
  55. package/src/types/claude.ts +0 -66
  56. package/src/types/computer-name.d.ts +0 -4
  57. package/src/types/index.ts +0 -64
  58. package/src/types/messages.ts +0 -39
  59. package/src/types/runner-interface.ts +0 -36
  60. package/src/utils/StateManager.ts +0 -187
  61. package/src/utils/config.ts +0 -327
  62. package/src/utils/console.ts +0 -15
  63. package/src/utils/debug.ts +0 -18
  64. package/src/utils/expand-env.ts +0 -22
  65. package/src/utils/logger.ts +0 -134
  66. package/src/utils/model.ts +0 -29
  67. package/src/utils/status-line.ts +0 -122
  68. package/src/utils/tool-response-sanitizer.ts +0 -160
  69. package/test-debug.sh +0 -26
  70. package/tests/retry-strategies.test.ts +0 -410
  71. package/tests/sdk-integration.test.ts +0 -329
  72. package/tests/sdk-streaming.test.ts +0 -1180
  73. package/tests/setup.ts +0 -5
  74. package/tests/test-claude-manager.ts +0 -120
  75. package/tests/tool-response-sanitizer.test.ts +0 -63
  76. package/tsconfig.json +0 -36
  77. package/vitest.config.ts +0 -27
@@ -1,475 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for src/utils/logger.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">src/utils</a> logger.ts</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">0% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>0/131</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">0% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>0/1</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">0% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>0/1</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">0% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>0/131</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 low'></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>
80
- <a name='L15'></a><a href='#L15'>15</a>
81
- <a name='L16'></a><a href='#L16'>16</a>
82
- <a name='L17'></a><a href='#L17'>17</a>
83
- <a name='L18'></a><a href='#L18'>18</a>
84
- <a name='L19'></a><a href='#L19'>19</a>
85
- <a name='L20'></a><a href='#L20'>20</a>
86
- <a name='L21'></a><a href='#L21'>21</a>
87
- <a name='L22'></a><a href='#L22'>22</a>
88
- <a name='L23'></a><a href='#L23'>23</a>
89
- <a name='L24'></a><a href='#L24'>24</a>
90
- <a name='L25'></a><a href='#L25'>25</a>
91
- <a name='L26'></a><a href='#L26'>26</a>
92
- <a name='L27'></a><a href='#L27'>27</a>
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>
98
- <a name='L33'></a><a href='#L33'>33</a>
99
- <a name='L34'></a><a href='#L34'>34</a>
100
- <a name='L35'></a><a href='#L35'>35</a>
101
- <a name='L36'></a><a href='#L36'>36</a>
102
- <a name='L37'></a><a href='#L37'>37</a>
103
- <a name='L38'></a><a href='#L38'>38</a>
104
- <a name='L39'></a><a href='#L39'>39</a>
105
- <a name='L40'></a><a href='#L40'>40</a>
106
- <a name='L41'></a><a href='#L41'>41</a>
107
- <a name='L42'></a><a href='#L42'>42</a>
108
- <a name='L43'></a><a href='#L43'>43</a>
109
- <a name='L44'></a><a href='#L44'>44</a>
110
- <a name='L45'></a><a href='#L45'>45</a>
111
- <a name='L46'></a><a href='#L46'>46</a>
112
- <a name='L47'></a><a href='#L47'>47</a>
113
- <a name='L48'></a><a href='#L48'>48</a>
114
- <a name='L49'></a><a href='#L49'>49</a>
115
- <a name='L50'></a><a href='#L50'>50</a>
116
- <a name='L51'></a><a href='#L51'>51</a>
117
- <a name='L52'></a><a href='#L52'>52</a>
118
- <a name='L53'></a><a href='#L53'>53</a>
119
- <a name='L54'></a><a href='#L54'>54</a>
120
- <a name='L55'></a><a href='#L55'>55</a>
121
- <a name='L56'></a><a href='#L56'>56</a>
122
- <a name='L57'></a><a href='#L57'>57</a>
123
- <a name='L58'></a><a href='#L58'>58</a>
124
- <a name='L59'></a><a href='#L59'>59</a>
125
- <a name='L60'></a><a href='#L60'>60</a>
126
- <a name='L61'></a><a href='#L61'>61</a>
127
- <a name='L62'></a><a href='#L62'>62</a>
128
- <a name='L63'></a><a href='#L63'>63</a>
129
- <a name='L64'></a><a href='#L64'>64</a>
130
- <a name='L65'></a><a href='#L65'>65</a>
131
- <a name='L66'></a><a href='#L66'>66</a>
132
- <a name='L67'></a><a href='#L67'>67</a>
133
- <a name='L68'></a><a href='#L68'>68</a>
134
- <a name='L69'></a><a href='#L69'>69</a>
135
- <a name='L70'></a><a href='#L70'>70</a>
136
- <a name='L71'></a><a href='#L71'>71</a>
137
- <a name='L72'></a><a href='#L72'>72</a>
138
- <a name='L73'></a><a href='#L73'>73</a>
139
- <a name='L74'></a><a href='#L74'>74</a>
140
- <a name='L75'></a><a href='#L75'>75</a>
141
- <a name='L76'></a><a href='#L76'>76</a>
142
- <a name='L77'></a><a href='#L77'>77</a>
143
- <a name='L78'></a><a href='#L78'>78</a>
144
- <a name='L79'></a><a href='#L79'>79</a>
145
- <a name='L80'></a><a href='#L80'>80</a>
146
- <a name='L81'></a><a href='#L81'>81</a>
147
- <a name='L82'></a><a href='#L82'>82</a>
148
- <a name='L83'></a><a href='#L83'>83</a>
149
- <a name='L84'></a><a href='#L84'>84</a>
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>
158
- <a name='L93'></a><a href='#L93'>93</a>
159
- <a name='L94'></a><a href='#L94'>94</a>
160
- <a name='L95'></a><a href='#L95'>95</a>
161
- <a name='L96'></a><a href='#L96'>96</a>
162
- <a name='L97'></a><a href='#L97'>97</a>
163
- <a name='L98'></a><a href='#L98'>98</a>
164
- <a name='L99'></a><a href='#L99'>99</a>
165
- <a name='L100'></a><a href='#L100'>100</a>
166
- <a name='L101'></a><a href='#L101'>101</a>
167
- <a name='L102'></a><a href='#L102'>102</a>
168
- <a name='L103'></a><a href='#L103'>103</a>
169
- <a name='L104'></a><a href='#L104'>104</a>
170
- <a name='L105'></a><a href='#L105'>105</a>
171
- <a name='L106'></a><a href='#L106'>106</a>
172
- <a name='L107'></a><a href='#L107'>107</a>
173
- <a name='L108'></a><a href='#L108'>108</a>
174
- <a name='L109'></a><a href='#L109'>109</a>
175
- <a name='L110'></a><a href='#L110'>110</a>
176
- <a name='L111'></a><a href='#L111'>111</a>
177
- <a name='L112'></a><a href='#L112'>112</a>
178
- <a name='L113'></a><a href='#L113'>113</a>
179
- <a name='L114'></a><a href='#L114'>114</a>
180
- <a name='L115'></a><a href='#L115'>115</a>
181
- <a name='L116'></a><a href='#L116'>116</a>
182
- <a name='L117'></a><a href='#L117'>117</a>
183
- <a name='L118'></a><a href='#L118'>118</a>
184
- <a name='L119'></a><a href='#L119'>119</a>
185
- <a name='L120'></a><a href='#L120'>120</a>
186
- <a name='L121'></a><a href='#L121'>121</a>
187
- <a name='L122'></a><a href='#L122'>122</a>
188
- <a name='L123'></a><a href='#L123'>123</a>
189
- <a name='L124'></a><a href='#L124'>124</a>
190
- <a name='L125'></a><a href='#L125'>125</a>
191
- <a name='L126'></a><a href='#L126'>126</a>
192
- <a name='L127'></a><a href='#L127'>127</a>
193
- <a name='L128'></a><a href='#L128'>128</a>
194
- <a name='L129'></a><a href='#L129'>129</a>
195
- <a name='L130'></a><a href='#L130'>130</a>
196
- <a name='L131'></a><a href='#L131'>131</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
197
- <span class="cline-any cline-no">&nbsp;</span>
198
- <span class="cline-any cline-no">&nbsp;</span>
199
- <span class="cline-any cline-no">&nbsp;</span>
200
- <span class="cline-any cline-no">&nbsp;</span>
201
- <span class="cline-any cline-no">&nbsp;</span>
202
- <span class="cline-any cline-no">&nbsp;</span>
203
- <span class="cline-any cline-no">&nbsp;</span>
204
- <span class="cline-any cline-no">&nbsp;</span>
205
- <span class="cline-any cline-no">&nbsp;</span>
206
- <span class="cline-any cline-no">&nbsp;</span>
207
- <span class="cline-any cline-no">&nbsp;</span>
208
- <span class="cline-any cline-no">&nbsp;</span>
209
- <span class="cline-any cline-no">&nbsp;</span>
210
- <span class="cline-any cline-no">&nbsp;</span>
211
- <span class="cline-any cline-no">&nbsp;</span>
212
- <span class="cline-any cline-no">&nbsp;</span>
213
- <span class="cline-any cline-no">&nbsp;</span>
214
- <span class="cline-any cline-no">&nbsp;</span>
215
- <span class="cline-any cline-no">&nbsp;</span>
216
- <span class="cline-any cline-no">&nbsp;</span>
217
- <span class="cline-any cline-no">&nbsp;</span>
218
- <span class="cline-any cline-no">&nbsp;</span>
219
- <span class="cline-any cline-no">&nbsp;</span>
220
- <span class="cline-any cline-no">&nbsp;</span>
221
- <span class="cline-any cline-no">&nbsp;</span>
222
- <span class="cline-any cline-no">&nbsp;</span>
223
- <span class="cline-any cline-no">&nbsp;</span>
224
- <span class="cline-any cline-no">&nbsp;</span>
225
- <span class="cline-any cline-no">&nbsp;</span>
226
- <span class="cline-any cline-no">&nbsp;</span>
227
- <span class="cline-any cline-no">&nbsp;</span>
228
- <span class="cline-any cline-no">&nbsp;</span>
229
- <span class="cline-any cline-no">&nbsp;</span>
230
- <span class="cline-any cline-no">&nbsp;</span>
231
- <span class="cline-any cline-no">&nbsp;</span>
232
- <span class="cline-any cline-no">&nbsp;</span>
233
- <span class="cline-any cline-no">&nbsp;</span>
234
- <span class="cline-any cline-no">&nbsp;</span>
235
- <span class="cline-any cline-no">&nbsp;</span>
236
- <span class="cline-any cline-no">&nbsp;</span>
237
- <span class="cline-any cline-no">&nbsp;</span>
238
- <span class="cline-any cline-no">&nbsp;</span>
239
- <span class="cline-any cline-no">&nbsp;</span>
240
- <span class="cline-any cline-no">&nbsp;</span>
241
- <span class="cline-any cline-no">&nbsp;</span>
242
- <span class="cline-any cline-no">&nbsp;</span>
243
- <span class="cline-any cline-no">&nbsp;</span>
244
- <span class="cline-any cline-no">&nbsp;</span>
245
- <span class="cline-any cline-no">&nbsp;</span>
246
- <span class="cline-any cline-no">&nbsp;</span>
247
- <span class="cline-any cline-no">&nbsp;</span>
248
- <span class="cline-any cline-no">&nbsp;</span>
249
- <span class="cline-any cline-no">&nbsp;</span>
250
- <span class="cline-any cline-no">&nbsp;</span>
251
- <span class="cline-any cline-no">&nbsp;</span>
252
- <span class="cline-any cline-no">&nbsp;</span>
253
- <span class="cline-any cline-no">&nbsp;</span>
254
- <span class="cline-any cline-no">&nbsp;</span>
255
- <span class="cline-any cline-no">&nbsp;</span>
256
- <span class="cline-any cline-no">&nbsp;</span>
257
- <span class="cline-any cline-no">&nbsp;</span>
258
- <span class="cline-any cline-no">&nbsp;</span>
259
- <span class="cline-any cline-no">&nbsp;</span>
260
- <span class="cline-any cline-no">&nbsp;</span>
261
- <span class="cline-any cline-no">&nbsp;</span>
262
- <span class="cline-any cline-no">&nbsp;</span>
263
- <span class="cline-any cline-no">&nbsp;</span>
264
- <span class="cline-any cline-no">&nbsp;</span>
265
- <span class="cline-any cline-no">&nbsp;</span>
266
- <span class="cline-any cline-no">&nbsp;</span>
267
- <span class="cline-any cline-no">&nbsp;</span>
268
- <span class="cline-any cline-no">&nbsp;</span>
269
- <span class="cline-any cline-no">&nbsp;</span>
270
- <span class="cline-any cline-no">&nbsp;</span>
271
- <span class="cline-any cline-no">&nbsp;</span>
272
- <span class="cline-any cline-no">&nbsp;</span>
273
- <span class="cline-any cline-no">&nbsp;</span>
274
- <span class="cline-any cline-no">&nbsp;</span>
275
- <span class="cline-any cline-no">&nbsp;</span>
276
- <span class="cline-any cline-no">&nbsp;</span>
277
- <span class="cline-any cline-no">&nbsp;</span>
278
- <span class="cline-any cline-no">&nbsp;</span>
279
- <span class="cline-any cline-no">&nbsp;</span>
280
- <span class="cline-any cline-no">&nbsp;</span>
281
- <span class="cline-any cline-no">&nbsp;</span>
282
- <span class="cline-any cline-no">&nbsp;</span>
283
- <span class="cline-any cline-no">&nbsp;</span>
284
- <span class="cline-any cline-no">&nbsp;</span>
285
- <span class="cline-any cline-no">&nbsp;</span>
286
- <span class="cline-any cline-no">&nbsp;</span>
287
- <span class="cline-any cline-no">&nbsp;</span>
288
- <span class="cline-any cline-no">&nbsp;</span>
289
- <span class="cline-any cline-no">&nbsp;</span>
290
- <span class="cline-any cline-no">&nbsp;</span>
291
- <span class="cline-any cline-no">&nbsp;</span>
292
- <span class="cline-any cline-no">&nbsp;</span>
293
- <span class="cline-any cline-no">&nbsp;</span>
294
- <span class="cline-any cline-no">&nbsp;</span>
295
- <span class="cline-any cline-no">&nbsp;</span>
296
- <span class="cline-any cline-no">&nbsp;</span>
297
- <span class="cline-any cline-no">&nbsp;</span>
298
- <span class="cline-any cline-no">&nbsp;</span>
299
- <span class="cline-any cline-no">&nbsp;</span>
300
- <span class="cline-any cline-no">&nbsp;</span>
301
- <span class="cline-any cline-no">&nbsp;</span>
302
- <span class="cline-any cline-no">&nbsp;</span>
303
- <span class="cline-any cline-no">&nbsp;</span>
304
- <span class="cline-any cline-no">&nbsp;</span>
305
- <span class="cline-any cline-no">&nbsp;</span>
306
- <span class="cline-any cline-no">&nbsp;</span>
307
- <span class="cline-any cline-no">&nbsp;</span>
308
- <span class="cline-any cline-no">&nbsp;</span>
309
- <span class="cline-any cline-no">&nbsp;</span>
310
- <span class="cline-any cline-no">&nbsp;</span>
311
- <span class="cline-any cline-no">&nbsp;</span>
312
- <span class="cline-any cline-no">&nbsp;</span>
313
- <span class="cline-any cline-no">&nbsp;</span>
314
- <span class="cline-any cline-no">&nbsp;</span>
315
- <span class="cline-any cline-no">&nbsp;</span>
316
- <span class="cline-any cline-no">&nbsp;</span>
317
- <span class="cline-any cline-no">&nbsp;</span>
318
- <span class="cline-any cline-no">&nbsp;</span>
319
- <span class="cline-any cline-no">&nbsp;</span>
320
- <span class="cline-any cline-no">&nbsp;</span>
321
- <span class="cline-any cline-no">&nbsp;</span>
322
- <span class="cline-any cline-no">&nbsp;</span>
323
- <span class="cline-any cline-no">&nbsp;</span>
324
- <span class="cline-any cline-no">&nbsp;</span>
325
- <span class="cline-any cline-no">&nbsp;</span>
326
- <span class="cline-any cline-no">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js"><span class="cstat-no" title="statement not covered" >/**<span class="fstat-no" title="function not covered" ><span class="branch-0 cbranch-no" title="branch not covered" ></span></span></span>
327
- <span class="cstat-no" title="statement not covered" > * Logger configuration using Winston</span>
328
- <span class="cstat-no" title="statement not covered" > */</span>
329
- <span class="cstat-no" title="statement not covered" ></span>
330
- <span class="cstat-no" title="statement not covered" >import winston from "winston";</span>
331
- <span class="cstat-no" title="statement not covered" >import path from "path";</span>
332
- <span class="cstat-no" title="statement not covered" ></span>
333
- <span class="cstat-no" title="statement not covered" >// Custom log levels</span>
334
- <span class="cstat-no" title="statement not covered" >const levels = {</span>
335
- <span class="cstat-no" title="statement not covered" > error: 0,</span>
336
- <span class="cstat-no" title="statement not covered" > warn: 1,</span>
337
- <span class="cstat-no" title="statement not covered" > info: 2,</span>
338
- <span class="cstat-no" title="statement not covered" > http: 3,</span>
339
- <span class="cstat-no" title="statement not covered" > verbose: 4,</span>
340
- <span class="cstat-no" title="statement not covered" > debug: 5,</span>
341
- <span class="cstat-no" title="statement not covered" > silly: 6,</span>
342
- <span class="cstat-no" title="statement not covered" >};</span>
343
- <span class="cstat-no" title="statement not covered" ></span>
344
- <span class="cstat-no" title="statement not covered" >// Log colors</span>
345
- <span class="cstat-no" title="statement not covered" >const colors = {</span>
346
- <span class="cstat-no" title="statement not covered" > error: "red",</span>
347
- <span class="cstat-no" title="statement not covered" > warn: "yellow",</span>
348
- <span class="cstat-no" title="statement not covered" > info: "green",</span>
349
- <span class="cstat-no" title="statement not covered" > http: "magenta",</span>
350
- <span class="cstat-no" title="statement not covered" > verbose: "cyan",</span>
351
- <span class="cstat-no" title="statement not covered" > debug: "blue",</span>
352
- <span class="cstat-no" title="statement not covered" > silly: "gray",</span>
353
- <span class="cstat-no" title="statement not covered" >};</span>
354
- <span class="cstat-no" title="statement not covered" ></span>
355
- <span class="cstat-no" title="statement not covered" >winston.addColors(colors);</span>
356
- <span class="cstat-no" title="statement not covered" ></span>
357
- <span class="cstat-no" title="statement not covered" >// Format for console output</span>
358
- <span class="cstat-no" title="statement not covered" >const consoleFormat = winston.format.combine(</span>
359
- <span class="cstat-no" title="statement not covered" > winston.format.colorize({ all: true }),</span>
360
- <span class="cstat-no" title="statement not covered" > winston.format.timestamp({ format: "YYYY-MM-DD HH:mm:ss" }),</span>
361
- <span class="cstat-no" title="statement not covered" > winston.format.printf(({ timestamp, level, message, stack, ...metadata }) =&gt; {</span>
362
- <span class="cstat-no" title="statement not covered" > let msg = `${timestamp} [${level}]: ${message}`;</span>
363
- <span class="cstat-no" title="statement not covered" > // Only show stack traces and metadata in debug mode</span>
364
- <span class="cstat-no" title="statement not covered" > if (process.env["DEBUG"] === "true") {</span>
365
- <span class="cstat-no" title="statement not covered" > if (stack) {</span>
366
- <span class="cstat-no" title="statement not covered" > msg += `\n${stack}`;</span>
367
- <span class="cstat-no" title="statement not covered" > }</span>
368
- <span class="cstat-no" title="statement not covered" > const filteredMetadata = { ...metadata };</span>
369
- <span class="cstat-no" title="statement not covered" > delete filteredMetadata["component"]; // Keep component info</span>
370
- <span class="cstat-no" title="statement not covered" > if (Object.keys(filteredMetadata).length &gt; 0) {</span>
371
- <span class="cstat-no" title="statement not covered" > msg += ` ${JSON.stringify(filteredMetadata)}`;</span>
372
- <span class="cstat-no" title="statement not covered" > }</span>
373
- <span class="cstat-no" title="statement not covered" > }</span>
374
- <span class="cstat-no" title="statement not covered" > return msg;</span>
375
- <span class="cstat-no" title="statement not covered" > })</span>
376
- <span class="cstat-no" title="statement not covered" >);</span>
377
- <span class="cstat-no" title="statement not covered" ></span>
378
- <span class="cstat-no" title="statement not covered" >// Format for file output</span>
379
- <span class="cstat-no" title="statement not covered" >const fileFormat = winston.format.combine(</span>
380
- <span class="cstat-no" title="statement not covered" > winston.format.timestamp({ format: "YYYY-MM-DD HH:mm:ss" }),</span>
381
- <span class="cstat-no" title="statement not covered" > winston.format.errors({ stack: true }),</span>
382
- <span class="cstat-no" title="statement not covered" > winston.format.json()</span>
383
- <span class="cstat-no" title="statement not covered" >);</span>
384
- <span class="cstat-no" title="statement not covered" ></span>
385
- <span class="cstat-no" title="statement not covered" >// Create logger instance</span>
386
- <span class="cstat-no" title="statement not covered" >export const logger = winston.createLogger({</span>
387
- <span class="cstat-no" title="statement not covered" > level: process.env["DEBUG"] === "true" ? "debug" : "info",</span>
388
- <span class="cstat-no" title="statement not covered" > levels,</span>
389
- <span class="cstat-no" title="statement not covered" > transports: [</span>
390
- <span class="cstat-no" title="statement not covered" > // Always include console transport for errors</span>
391
- <span class="cstat-no" title="statement not covered" > new winston.transports.Console({</span>
392
- <span class="cstat-no" title="statement not covered" > format: consoleFormat,</span>
393
- <span class="cstat-no" title="statement not covered" > level: process.env["DEBUG"] === "true" ? "debug" : "error",</span>
394
- <span class="cstat-no" title="statement not covered" > }),</span>
395
- <span class="cstat-no" title="statement not covered" > ],</span>
396
- <span class="cstat-no" title="statement not covered" >});</span>
397
- <span class="cstat-no" title="statement not covered" ></span>
398
- <span class="cstat-no" title="statement not covered" >// Add file transports if log directory is configured</span>
399
- <span class="cstat-no" title="statement not covered" >export function configureFileLogging(logDir: string): void {</span>
400
- <span class="cstat-no" title="statement not covered" > // Error log file</span>
401
- <span class="cstat-no" title="statement not covered" > logger.add(</span>
402
- <span class="cstat-no" title="statement not covered" > new winston.transports.File({</span>
403
- <span class="cstat-no" title="statement not covered" > filename: path.join(logDir, "error.log"),</span>
404
- <span class="cstat-no" title="statement not covered" > level: "error",</span>
405
- <span class="cstat-no" title="statement not covered" > format: fileFormat,</span>
406
- <span class="cstat-no" title="statement not covered" > maxsize: 10 * 1024 * 1024, // 10MB</span>
407
- <span class="cstat-no" title="statement not covered" > maxFiles: 5,</span>
408
- <span class="cstat-no" title="statement not covered" > })</span>
409
- <span class="cstat-no" title="statement not covered" > );</span>
410
- <span class="cstat-no" title="statement not covered" ></span>
411
- <span class="cstat-no" title="statement not covered" > // Combined log file</span>
412
- <span class="cstat-no" title="statement not covered" > logger.add(</span>
413
- <span class="cstat-no" title="statement not covered" > new winston.transports.File({</span>
414
- <span class="cstat-no" title="statement not covered" > filename: path.join(logDir, "combined.log"),</span>
415
- <span class="cstat-no" title="statement not covered" > format: fileFormat,</span>
416
- <span class="cstat-no" title="statement not covered" > maxsize: 50 * 1024 * 1024, // 50MB</span>
417
- <span class="cstat-no" title="statement not covered" > maxFiles: 10,</span>
418
- <span class="cstat-no" title="statement not covered" > })</span>
419
- <span class="cstat-no" title="statement not covered" > );</span>
420
- <span class="cstat-no" title="statement not covered" ></span>
421
- <span class="cstat-no" title="statement not covered" > // Debug log file (only in debug mode)</span>
422
- <span class="cstat-no" title="statement not covered" > if (process.env["DEBUG"] === "true") {</span>
423
- <span class="cstat-no" title="statement not covered" > logger.add(</span>
424
- <span class="cstat-no" title="statement not covered" > new winston.transports.File({</span>
425
- <span class="cstat-no" title="statement not covered" > filename: path.join(logDir, "debug.log"),</span>
426
- <span class="cstat-no" title="statement not covered" > level: "debug",</span>
427
- <span class="cstat-no" title="statement not covered" > format: fileFormat,</span>
428
- <span class="cstat-no" title="statement not covered" > maxsize: 100 * 1024 * 1024, // 100MB</span>
429
- <span class="cstat-no" title="statement not covered" > maxFiles: 3,</span>
430
- <span class="cstat-no" title="statement not covered" > })</span>
431
- <span class="cstat-no" title="statement not covered" > );</span>
432
- <span class="cstat-no" title="statement not covered" > }</span>
433
- <span class="cstat-no" title="statement not covered" >}</span>
434
- <span class="cstat-no" title="statement not covered" ></span>
435
- <span class="cstat-no" title="statement not covered" >// Create child logger for specific components</span>
436
- <span class="cstat-no" title="statement not covered" >export function createLogger(component: string): winston.Logger {</span>
437
- <span class="cstat-no" title="statement not covered" > return logger.child({ component });</span>
438
- <span class="cstat-no" title="statement not covered" >}</span>
439
- <span class="cstat-no" title="statement not covered" ></span>
440
- <span class="cstat-no" title="statement not covered" >// Log unhandled errors</span>
441
- <span class="cstat-no" title="statement not covered" >logger.exceptions.handle(</span>
442
- <span class="cstat-no" title="statement not covered" > new winston.transports.File({</span>
443
- <span class="cstat-no" title="statement not covered" > filename: "exceptions.log",</span>
444
- <span class="cstat-no" title="statement not covered" > format: fileFormat,</span>
445
- <span class="cstat-no" title="statement not covered" > })</span>
446
- <span class="cstat-no" title="statement not covered" >);</span>
447
- <span class="cstat-no" title="statement not covered" ></span>
448
- <span class="cstat-no" title="statement not covered" >logger.rejections.handle(</span>
449
- <span class="cstat-no" title="statement not covered" > new winston.transports.File({</span>
450
- <span class="cstat-no" title="statement not covered" > filename: "rejections.log",</span>
451
- <span class="cstat-no" title="statement not covered" > format: fileFormat,</span>
452
- <span class="cstat-no" title="statement not covered" > })</span>
453
- <span class="cstat-no" title="statement not covered" >);</span>
454
- <span class="cstat-no" title="statement not covered" ></span>
455
- <span class="cstat-no" title="statement not covered" >// Export default logger</span>
456
- <span class="cstat-no" title="statement not covered" >export default logger;</span></pre></td></tr></table></pre>
457
-
458
- <div class='push'></div><!-- for sticky footer -->
459
- </div><!-- /wrapper -->
460
- <div class='footer quiet pad2 space-top1 center small'>
461
- Code coverage generated by
462
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
463
- at 2025-08-14T21:15:54.473Z
464
- </div>
465
- <script src="../../prettify.js"></script>
466
- <script>
467
- window.onload = function () {
468
- prettyPrint();
469
- };
470
- </script>
471
- <script src="../../sorter.js"></script>
472
- <script src="../../block-navigation.js"></script>
473
- </body>
474
- </html>
475
-