cdd-cli 3.2.0 → 4.0.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.
- package/.atl/skill-registry.md +30 -0
- package/.editorconfig +12 -0
- package/.eslintrc.json +1 -1
- package/.prettierignore +4 -0
- package/.prettierrc +8 -0
- package/.~lock.ROADMAP.md# +1 -0
- package/CHANGELOG.md +80 -0
- package/README.es.md +198 -0
- package/README.md +81 -23
- package/ROADMAP.md +647 -0
- package/SECURITY.md +5 -0
- package/__mocks__/ink.cjs +17 -0
- package/coverage/clover.xml +471 -500
- package/coverage/coverage-final.json +16 -16
- package/coverage/lcov-report/ContainerCreationPrompt.jsx.html +400 -0
- package/coverage/lcov-report/ControlsHUD.jsx.html +256 -0
- package/coverage/lcov-report/components/ContainerCreationPrompt.jsx.html +394 -0
- package/coverage/lcov-report/components/PromptField.jsx.html +229 -0
- package/coverage/lcov-report/components/SuggestionPanel.jsx.html +268 -0
- package/coverage/lcov-report/components/index.html +146 -0
- package/coverage/lcov-report/helpers/constants.js.html +139 -22
- package/coverage/lcov-report/helpers/containerOptionsBuilder.js.html +75 -42
- package/coverage/lcov-report/helpers/dockerHubService.js.html +310 -0
- package/coverage/lcov-report/helpers/dockerService/serviceComponents/containerActions.js.html +162 -84
- package/coverage/lcov-report/helpers/dockerService/serviceComponents/containerList.js.html +50 -32
- package/coverage/lcov-report/helpers/dockerService/serviceComponents/index.html +21 -21
- package/coverage/lcov-report/helpers/imageNameUtils.js.html +181 -0
- package/coverage/lcov-report/helpers/index.html +84 -54
- package/coverage/lcov-report/helpers/logger.js.html +68 -68
- package/coverage/lcov-report/helpers/safeCall.js.html +15 -15
- package/coverage/lcov-report/helpers/validationHelpers.js.html +66 -114
- package/coverage/lcov-report/hooks/creation/index.html +20 -20
- package/coverage/lcov-report/hooks/creation/useContainerActions.js.html +38 -17
- package/coverage/lcov-report/hooks/creation/useContainerCreation.js.html +593 -89
- package/coverage/lcov-report/hooks/creation/useLogsViewer.js.html +7 -7
- package/coverage/lcov-report/hooks/debug/index.html +5 -5
- package/coverage/lcov-report/hooks/debug/useDebugLogs.js.html +35 -20
- package/coverage/lcov-report/hooks/index.html +40 -40
- package/coverage/lcov-report/hooks/navigation/index.html +19 -19
- package/coverage/lcov-report/hooks/navigation/useContainerSelection.js.html +38 -29
- package/coverage/lcov-report/hooks/useContainerCommandRouter.js.html +119 -80
- package/coverage/lcov-report/hooks/useControls.js.html +306 -123
- package/coverage/lcov-report/hooks/useEraseConfirmation.js.html +8 -8
- package/coverage/lcov-report/hooks/useExitHandler.js.html +50 -41
- package/coverage/lcov-report/index.html +52 -67
- package/coverage/lcov.info +899 -952
- package/dist/App.js +18 -12
- package/dist/components/ContainerCreationPrompt.js +50 -13
- package/dist/components/ContainerList.js +3 -3
- package/dist/components/ContainerRow.js +20 -20
- package/dist/components/ContainerSection.js +3 -3
- package/dist/components/ControlsHUD.js +106 -0
- package/dist/components/Footer.js +2 -2
- package/dist/components/Header.js +7 -7
- package/dist/components/LogViewer.js +3 -3
- package/dist/components/MessageFeedback.js +2 -2
- package/dist/components/PromptField.js +4 -4
- package/dist/components/StatsBar.js +5 -5
- package/dist/components/SuggestionPanel.js +53 -0
- package/dist/components/UsageMenu.js +3 -3
- package/dist/helpers/appInfo.js +7 -7
- package/dist/helpers/constants.js +154 -1
- package/dist/helpers/containerOptionsBuilder.js +3 -3
- package/dist/helpers/dockerHubService.js +111 -0
- package/dist/helpers/dockerService/dockerService.js +1 -1
- package/dist/helpers/dockerService/serviceComponents/containerActions.js +99 -40
- package/dist/helpers/dockerService/serviceComponents/containerList.js +11 -11
- package/dist/helpers/dockerService/serviceComponents/containerLogs.js +9 -9
- package/dist/helpers/dockerService/serviceComponents/containerStats.js +5 -5
- package/dist/helpers/dockerService/serviceComponents/imageUtils.js +1 -1
- package/dist/helpers/exitWithMessage.js +10 -10
- package/dist/helpers/imageNameUtils.js +32 -0
- package/dist/helpers/logger.js +13 -13
- package/dist/helpers/safeCall.js +2 -2
- package/dist/helpers/validationHelpers.js +76 -21
- package/dist/hooks/creation/useContainerActions.js +28 -11
- package/dist/hooks/creation/useContainerCreation.js +452 -62
- package/dist/hooks/creation/useLogsViewer.js +2 -2
- package/dist/hooks/debug/useDebugLogs.js +4 -4
- package/dist/hooks/useContainerCommandRouter.js +14 -14
- package/dist/hooks/useContainers.js +3 -3
- package/dist/hooks/useControls.js +85 -38
- package/dist/hooks/useEraseConfirmation.js +3 -3
- package/dist/index.js +9 -2
- package/jest.config.cjs +7 -0
- package/package.json +7 -3
- package/src/App.jsx +39 -16
- package/src/components/ContainerCreationPrompt.jsx +54 -10
- package/src/components/ContainerList.jsx +3 -3
- package/src/components/ContainerRow.jsx +19 -16
- package/src/components/ContainerSection.jsx +3 -3
- package/src/components/ControlsHUD.jsx +66 -0
- package/src/components/Footer.jsx +2 -2
- package/src/components/Header.jsx +7 -7
- package/src/components/LogViewer.jsx +5 -3
- package/src/components/MessageFeedback.jsx +2 -2
- package/src/components/PromptField.jsx +4 -4
- package/src/components/StatsBar.jsx +11 -7
- package/src/components/SuggestionPanel.jsx +61 -0
- package/src/components/UsageMenu.jsx +18 -13
- package/src/helpers/appInfo.js +7 -7
- package/src/helpers/constants.js +48 -9
- package/src/helpers/containerOptionsBuilder.js +16 -5
- package/src/helpers/dockerHubService.js +75 -0
- package/src/helpers/dockerService/dockerService.js +1 -1
- package/src/helpers/dockerService/serviceComponents/containerActions.js +87 -61
- package/src/helpers/dockerService/serviceComponents/containerList.js +31 -25
- package/src/helpers/dockerService/serviceComponents/containerLogs.js +41 -26
- package/src/helpers/dockerService/serviceComponents/containerStats.js +13 -11
- package/src/helpers/dockerService/serviceComponents/imageUtils.js +5 -4
- package/src/helpers/exitWithMessage.js +13 -7
- package/src/helpers/imageNameUtils.js +32 -0
- package/src/helpers/logger.js +15 -16
- package/src/helpers/safeCall.js +2 -2
- package/src/helpers/validationHelpers.js +13 -29
- package/src/hooks/creation/useContainerActions.js +32 -12
- package/src/hooks/creation/useContainerCreation.js +293 -47
- package/src/hooks/creation/useLogsViewer.js +2 -2
- package/src/hooks/debug/useDebugLogs.js +15 -10
- package/src/hooks/navigation/useContainerSelection.js +17 -14
- package/src/hooks/useContainerCommandRouter.js +71 -58
- package/src/hooks/useContainers.js +4 -4
- package/src/hooks/useControls.js +135 -72
- package/src/hooks/useEraseConfirmation.js +3 -3
- package/src/hooks/useExitHandler.js +29 -26
- package/src/index.js +8 -4
- package/test/ContainerCreationPrompt.dom.test.js +313 -0
- package/test/ControlsHUD.dom.test.js +125 -0
- package/test/SuggestionPanel.dom.test.js +83 -0
- package/test/constants.test.js +41 -0
- package/test/dockerHubService.test.js +213 -0
- package/test/logger.test.js +58 -0
- package/test/resolveImageTag.test.js +26 -0
- package/test/useContainerCreation.dom.test.js +428 -2
- package/test/useContainerCreationHub.dom.test.js +184 -0
- package/test/useControls.dom.test.js +406 -4
|
@@ -116,13 +116,13 @@
|
|
|
116
116
|
<span class="cline-any cline-neutral"> </span>
|
|
117
117
|
<span class="cline-any cline-neutral"> </span>
|
|
118
118
|
<span class="cline-any cline-neutral"> </span>
|
|
119
|
-
<span class="cline-any cline-yes">
|
|
119
|
+
<span class="cline-any cline-yes">96x</span>
|
|
120
120
|
<span class="cline-any cline-neutral"> </span>
|
|
121
|
-
<span class="cline-any cline-yes">
|
|
121
|
+
<span class="cline-any cline-yes">96x</span>
|
|
122
122
|
<span class="cline-any cline-no"> </span>
|
|
123
123
|
<span class="cline-any cline-neutral"> </span>
|
|
124
124
|
<span class="cline-any cline-neutral"> </span>
|
|
125
|
-
<span class="cline-any cline-yes">
|
|
125
|
+
<span class="cline-any cline-yes">96x</span>
|
|
126
126
|
<span class="cline-any cline-neutral"> </span>
|
|
127
127
|
<span class="cline-any cline-no"> </span>
|
|
128
128
|
<span class="cline-any cline-no"> </span>
|
|
@@ -139,9 +139,9 @@
|
|
|
139
139
|
<span class="cline-any cline-neutral"> </span>
|
|
140
140
|
<span class="cline-any cline-neutral"> </span>
|
|
141
141
|
<span class="cline-any cline-neutral"> </span>
|
|
142
|
-
<span class="cline-any cline-yes">
|
|
142
|
+
<span class="cline-any cline-yes">96x</span>
|
|
143
143
|
<span class="cline-any cline-neutral"> </span>
|
|
144
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { useState, useCallback } from
|
|
144
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { useState, useCallback } from 'react';
|
|
145
145
|
|
|
146
146
|
/**
|
|
147
147
|
* Hook to manage the erase confirmation dialog flow.
|
|
@@ -163,13 +163,13 @@ export function useEraseConfirmation({ onConfirm, onCancel }) {
|
|
|
163
163
|
|
|
164
164
|
const processEraseConfirmation = useCallback(
|
|
165
165
|
<span class="fstat-no" title="function not covered" > (i</span>nput, key) => {
|
|
166
|
-
<span class="cstat-no" title="statement not covered" > if (input ===
|
|
166
|
+
<span class="cstat-no" title="statement not covered" > if (input === 'y' || input === 'Y') {</span>
|
|
167
167
|
<span class="cstat-no" title="statement not covered" > onConfirm();</span>
|
|
168
168
|
<span class="cstat-no" title="statement not covered" > setConfirmErase(false);</span>
|
|
169
169
|
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
170
170
|
}
|
|
171
171
|
|
|
172
|
-
<span class="cstat-no" title="statement not covered" > if (input ===
|
|
172
|
+
<span class="cstat-no" title="statement not covered" > if (input === 'n' || input === 'N' || key.escape) {</span>
|
|
173
173
|
<span class="cstat-no" title="statement not covered" > setConfirmErase(false);</span>
|
|
174
174
|
<span class="cstat-no" title="statement not covered" > onCancel();</span>
|
|
175
175
|
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
@@ -187,7 +187,7 @@ export function useEraseConfirmation({ onConfirm, onCancel }) {
|
|
|
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-04-
|
|
190
|
+
at 2026-04-27T22:13:21.150Z
|
|
191
191
|
</div>
|
|
192
192
|
<script src="../prettify.js"></script>
|
|
193
193
|
<script>
|
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">26.31% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>5/19</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">9.09% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>1/11</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">40% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>2/5</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">27.77% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>5/18</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -129,7 +129,10 @@
|
|
|
129
129
|
<a name='L64'></a><a href='#L64'>64</a>
|
|
130
130
|
<a name='L65'></a><a href='#L65'>65</a>
|
|
131
131
|
<a name='L66'></a><a href='#L66'>66</a>
|
|
132
|
-
<a name='L67'></a><a href='#L67'>67</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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
133
136
|
<span class="cline-any cline-neutral"> </span>
|
|
134
137
|
<span class="cline-any cline-neutral"> </span>
|
|
135
138
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -148,7 +151,7 @@
|
|
|
148
151
|
<span class="cline-any cline-neutral"> </span>
|
|
149
152
|
<span class="cline-any cline-neutral"> </span>
|
|
150
153
|
<span class="cline-any cline-neutral"> </span>
|
|
151
|
-
<span class="cline-any cline-yes">
|
|
154
|
+
<span class="cline-any cline-yes">96x</span>
|
|
152
155
|
<span class="cline-any cline-neutral"> </span>
|
|
153
156
|
<span class="cline-any cline-neutral"> </span>
|
|
154
157
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -161,9 +164,10 @@
|
|
|
161
164
|
<span class="cline-any cline-neutral"> </span>
|
|
162
165
|
<span class="cline-any cline-neutral"> </span>
|
|
163
166
|
<span class="cline-any cline-neutral"> </span>
|
|
164
|
-
<span class="cline-any cline-yes">
|
|
165
|
-
<span class="cline-any cline-
|
|
166
|
-
<span class="cline-any cline-
|
|
167
|
+
<span class="cline-any cline-yes">96x</span>
|
|
168
|
+
<span class="cline-any cline-neutral"> </span>
|
|
169
|
+
<span class="cline-any cline-yes">12x</span>
|
|
170
|
+
<span class="cline-any cline-yes">12x</span>
|
|
167
171
|
<span class="cline-any cline-neutral"> </span>
|
|
168
172
|
<span class="cline-any cline-neutral"> </span>
|
|
169
173
|
<span class="cline-any cline-no"> </span>
|
|
@@ -193,7 +197,9 @@
|
|
|
193
197
|
<span class="cline-any cline-no"> </span>
|
|
194
198
|
<span class="cline-any cline-neutral"> </span>
|
|
195
199
|
<span class="cline-any cline-neutral"> </span>
|
|
196
|
-
<span class="cline-any cline-
|
|
200
|
+
<span class="cline-any cline-neutral"> </span>
|
|
201
|
+
<span class="cline-any cline-neutral"> </span>
|
|
202
|
+
<span class="cline-any cline-yes">96x</span>
|
|
197
203
|
<span class="cline-any cline-neutral"> </span>
|
|
198
204
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { useCallback } from 'react';
|
|
199
205
|
import { useApp } from 'ink';
|
|
@@ -227,37 +233,40 @@ export function useExitHandler({ onBeforeExit } = <span class="branch-0 cbranch-
|
|
|
227
233
|
* @param {string} input - Raw character input from Ink's useInput
|
|
228
234
|
* @returns {boolean} True when the input was consumed, false otherwise
|
|
229
235
|
*/
|
|
230
|
-
const handleExitCommand = useCallback(
|
|
231
|
-
|
|
232
|
-
<span class="
|
|
233
|
-
|
|
236
|
+
const handleExitCommand = useCallback(
|
|
237
|
+
(input) => {
|
|
238
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (input !== 'q') {
|
|
239
|
+
return false;
|
|
240
|
+
}
|
|
234
241
|
|
|
235
|
-
<span class="cstat-no" title="statement not covered" >
|
|
236
|
-
<span class="cstat-no" title="statement not covered" >
|
|
237
|
-
|
|
242
|
+
<span class="cstat-no" title="statement not covered" > if (typeof onBeforeExit === 'function') {</span>
|
|
243
|
+
<span class="cstat-no" title="statement not covered" > onBeforeExit();</span>
|
|
244
|
+
}
|
|
238
245
|
|
|
239
|
-
|
|
240
|
-
<span class="cstat-no" title="statement not covered" >
|
|
241
|
-
<span class="cstat-no" title="statement not covered" >
|
|
242
|
-
<span class="cstat-no" title="statement not covered" >
|
|
243
|
-
|
|
244
|
-
<span class="cstat-no" title="statement not covered" >
|
|
246
|
+
const clearTerminal = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >()</span> => {</span>
|
|
247
|
+
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
248
|
+
<span class="cstat-no" title="statement not covered" > if (process.stdout && process.stdout.isTTY) {</span>
|
|
249
|
+
<span class="cstat-no" title="statement not covered" > process.stdout.write('\u001Bc');</span>
|
|
250
|
+
} else {
|
|
251
|
+
<span class="cstat-no" title="statement not covered" > console.clear();</span>
|
|
252
|
+
}
|
|
253
|
+
} catch (err) {
|
|
254
|
+
// Ignore clear errors to avoid blocking exit.
|
|
245
255
|
}
|
|
246
|
-
}
|
|
247
|
-
// Ignore clear errors to avoid blocking exit.
|
|
248
|
-
}
|
|
249
|
-
};
|
|
256
|
+
};
|
|
250
257
|
|
|
251
|
-
<span class="cstat-no" title="statement not covered" >
|
|
252
|
-
<span class="cstat-no" title="statement not covered" >
|
|
253
|
-
<span class="cstat-no" title="statement not covered" >
|
|
254
|
-
<span class="cstat-no" title="statement not covered" >
|
|
255
|
-
<span class="cstat-no" title="statement not covered" >
|
|
256
|
-
|
|
257
|
-
|
|
258
|
+
<span class="cstat-no" title="statement not covered" > setTimeout(<span class="fstat-no" title="function not covered" >()</span> => {</span>
|
|
259
|
+
<span class="cstat-no" title="statement not covered" > clearTerminal();</span>
|
|
260
|
+
<span class="cstat-no" title="statement not covered" > exit();</span>
|
|
261
|
+
<span class="cstat-no" title="statement not covered" > if (process.env.NODE_ENV !== 'test') {</span>
|
|
262
|
+
<span class="cstat-no" title="statement not covered" > setTimeout(<span class="fstat-no" title="function not covered" >()</span> => <span class="cstat-no" title="statement not covered" >process.exit(0),</span> 50);</span>
|
|
263
|
+
}
|
|
264
|
+
}, EXIT_DELAY);
|
|
258
265
|
|
|
259
|
-
<span class="cstat-no" title="statement not covered" >
|
|
260
|
-
|
|
266
|
+
<span class="cstat-no" title="statement not covered" > return true;</span>
|
|
267
|
+
},
|
|
268
|
+
[exit, onBeforeExit]
|
|
269
|
+
);
|
|
261
270
|
|
|
262
271
|
return { handleExitCommand };
|
|
263
272
|
}
|
|
@@ -268,7 +277,7 @@ export function useExitHandler({ onBeforeExit } = <span class="branch-0 cbranch-
|
|
|
268
277
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
269
278
|
Code coverage generated by
|
|
270
279
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
271
|
-
at 2026-04-
|
|
280
|
+
at 2026-04-27T22:13:21.150Z
|
|
272
281
|
</div>
|
|
273
282
|
<script src="../prettify.js"></script>
|
|
274
283
|
<script>
|
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">56.77% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>306/539</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">50.76% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>165/325</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">44.68% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>42/94</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">58.69% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>297/506</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -79,63 +79,48 @@
|
|
|
79
79
|
</tr>
|
|
80
80
|
</thead>
|
|
81
81
|
<tbody><tr>
|
|
82
|
-
<td class="file
|
|
83
|
-
<td data-value="
|
|
84
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
82
|
+
<td class="file medium" data-value="helpers"><a href="helpers/index.html">helpers</a></td>
|
|
83
|
+
<td data-value="52.94" class="pic medium">
|
|
84
|
+
<div class="chart"><div class="cover-fill" style="width: 52%"></div><div class="cover-empty" style="width: 48%"></div></div>
|
|
85
85
|
</td>
|
|
86
|
-
<td data-value="
|
|
87
|
-
<td data-value="
|
|
88
|
-
<td data-value="
|
|
89
|
-
<td data-value="
|
|
90
|
-
<td data-value="
|
|
91
|
-
<td data-value="
|
|
92
|
-
<td data-value="
|
|
93
|
-
<td data-value="
|
|
94
|
-
</tr>
|
|
95
|
-
|
|
96
|
-
<tr>
|
|
97
|
-
<td class="file medium" data-value="helpers/dockerService/serviceComponents"><a href="helpers/dockerService/serviceComponents/index.html">helpers/dockerService/serviceComponents</a></td>
|
|
98
|
-
<td data-value="71.69" class="pic medium">
|
|
99
|
-
<div class="chart"><div class="cover-fill" style="width: 71%"></div><div class="cover-empty" style="width: 29%"></div></div>
|
|
100
|
-
</td>
|
|
101
|
-
<td data-value="71.69" class="pct medium">71.69%</td>
|
|
102
|
-
<td data-value="159" class="abs medium">114/159</td>
|
|
103
|
-
<td data-value="63.21" class="pct medium">63.21%</td>
|
|
104
|
-
<td data-value="87" class="abs medium">55/87</td>
|
|
105
|
-
<td data-value="70.83" class="pct medium">70.83%</td>
|
|
106
|
-
<td data-value="24" class="abs medium">17/24</td>
|
|
107
|
-
<td data-value="73.68" class="pct medium">73.68%</td>
|
|
108
|
-
<td data-value="152" class="abs medium">112/152</td>
|
|
86
|
+
<td data-value="52.94" class="pct medium">52.94%</td>
|
|
87
|
+
<td data-value="153" class="abs medium">81/153</td>
|
|
88
|
+
<td data-value="45.79" class="pct low">45.79%</td>
|
|
89
|
+
<td data-value="107" class="abs low">49/107</td>
|
|
90
|
+
<td data-value="53.84" class="pct medium">53.84%</td>
|
|
91
|
+
<td data-value="26" class="abs medium">14/26</td>
|
|
92
|
+
<td data-value="55.39" class="pct medium">55.39%</td>
|
|
93
|
+
<td data-value="139" class="abs medium">77/139</td>
|
|
109
94
|
</tr>
|
|
110
95
|
|
|
111
96
|
<tr>
|
|
112
97
|
<td class="file low" data-value="hooks"><a href="hooks/index.html">hooks</a></td>
|
|
113
|
-
<td data-value="
|
|
114
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
98
|
+
<td data-value="48.63" class="pic low">
|
|
99
|
+
<div class="chart"><div class="cover-fill" style="width: 48%"></div><div class="cover-empty" style="width: 52%"></div></div>
|
|
115
100
|
</td>
|
|
116
|
-
<td data-value="
|
|
117
|
-
<td data-value="
|
|
118
|
-
<td data-value="
|
|
119
|
-
<td data-value="
|
|
120
|
-
<td data-value="
|
|
121
|
-
<td data-value="38" class="abs low">
|
|
122
|
-
<td data-value="
|
|
123
|
-
<td data-value="
|
|
101
|
+
<td data-value="48.63" class="pct low">48.63%</td>
|
|
102
|
+
<td data-value="183" class="abs low">89/183</td>
|
|
103
|
+
<td data-value="50" class="pct medium">50%</td>
|
|
104
|
+
<td data-value="136" class="abs medium">68/136</td>
|
|
105
|
+
<td data-value="28.94" class="pct low">28.94%</td>
|
|
106
|
+
<td data-value="38" class="abs low">11/38</td>
|
|
107
|
+
<td data-value="50.85" class="pct medium">50.85%</td>
|
|
108
|
+
<td data-value="175" class="abs medium">89/175</td>
|
|
124
109
|
</tr>
|
|
125
110
|
|
|
126
111
|
<tr>
|
|
127
112
|
<td class="file medium" data-value="hooks/creation"><a href="hooks/creation/index.html">hooks/creation</a></td>
|
|
128
|
-
<td data-value="
|
|
129
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
113
|
+
<td data-value="73.09" class="pic medium">
|
|
114
|
+
<div class="chart"><div class="cover-fill" style="width: 73%"></div><div class="cover-empty" style="width: 27%"></div></div>
|
|
130
115
|
</td>
|
|
131
|
-
<td data-value="
|
|
132
|
-
<td data-value="
|
|
133
|
-
<td data-value="
|
|
134
|
-
<td data-value="
|
|
135
|
-
<td data-value="
|
|
136
|
-
<td data-value="
|
|
137
|
-
<td data-value="
|
|
138
|
-
<td data-value="
|
|
116
|
+
<td data-value="73.09" class="pct medium">73.09%</td>
|
|
117
|
+
<td data-value="171" class="abs medium">125/171</td>
|
|
118
|
+
<td data-value="75.8" class="pct medium">75.8%</td>
|
|
119
|
+
<td data-value="62" class="abs medium">47/62</td>
|
|
120
|
+
<td data-value="61.9" class="pct medium">61.9%</td>
|
|
121
|
+
<td data-value="21" class="abs medium">13/21</td>
|
|
122
|
+
<td data-value="73.61" class="pct medium">73.61%</td>
|
|
123
|
+
<td data-value="163" class="abs medium">120/163</td>
|
|
139
124
|
</tr>
|
|
140
125
|
|
|
141
126
|
<tr>
|
|
@@ -149,23 +134,23 @@
|
|
|
149
134
|
<td data-value="10" class="abs low">0/10</td>
|
|
150
135
|
<td data-value="40" class="pct low">40%</td>
|
|
151
136
|
<td data-value="5" class="abs low">2/5</td>
|
|
152
|
-
<td data-value="
|
|
153
|
-
<td data-value="
|
|
137
|
+
<td data-value="35.29" class="pct low">35.29%</td>
|
|
138
|
+
<td data-value="17" class="abs low">6/17</td>
|
|
154
139
|
</tr>
|
|
155
140
|
|
|
156
141
|
<tr>
|
|
157
142
|
<td class="file low" data-value="hooks/navigation"><a href="hooks/navigation/index.html">hooks/navigation</a></td>
|
|
158
|
-
<td data-value="
|
|
159
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
143
|
+
<td data-value="35.71" class="pic low">
|
|
144
|
+
<div class="chart"><div class="cover-fill" style="width: 35%"></div><div class="cover-empty" style="width: 65%"></div></div>
|
|
160
145
|
</td>
|
|
161
|
-
<td data-value="
|
|
162
|
-
<td data-value="14" class="abs low">
|
|
163
|
-
<td data-value="
|
|
164
|
-
<td data-value="10" class="abs low">
|
|
165
|
-
<td data-value="
|
|
166
|
-
<td data-value="4" class="abs
|
|
167
|
-
<td data-value="
|
|
168
|
-
<td data-value="12" class="abs low">
|
|
146
|
+
<td data-value="35.71" class="pct low">35.71%</td>
|
|
147
|
+
<td data-value="14" class="abs low">5/14</td>
|
|
148
|
+
<td data-value="10" class="pct low">10%</td>
|
|
149
|
+
<td data-value="10" class="abs low">1/10</td>
|
|
150
|
+
<td data-value="50" class="pct medium">50%</td>
|
|
151
|
+
<td data-value="4" class="abs medium">2/4</td>
|
|
152
|
+
<td data-value="41.66" class="pct low">41.66%</td>
|
|
153
|
+
<td data-value="12" class="abs low">5/12</td>
|
|
169
154
|
</tr>
|
|
170
155
|
|
|
171
156
|
</tbody>
|
|
@@ -176,7 +161,7 @@
|
|
|
176
161
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
177
162
|
Code coverage generated by
|
|
178
163
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
179
|
-
at 2026-04-
|
|
164
|
+
at 2026-04-27T22:13:21.150Z
|
|
180
165
|
</div>
|
|
181
166
|
<script src="prettify.js"></script>
|
|
182
167
|
<script>
|