cdd-cli 3.2.2 → 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/.~lock.ROADMAP.md# +1 -0
- package/CHANGELOG.md +51 -0
- package/README.es.md +198 -0
- package/README.md +81 -23
- package/ROADMAP.md +647 -0
- package/coverage/clover.xml +400 -519
- package/coverage/coverage-final.json +16 -20
- 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 +31 -13
- package/coverage/lcov-report/components/PromptField.jsx.html +4 -4
- package/coverage/lcov-report/components/SuggestionPanel.jsx.html +37 -13
- package/coverage/lcov-report/components/index.html +14 -14
- package/coverage/lcov-report/helpers/constants.js.html +87 -33
- package/coverage/lcov-report/helpers/containerOptionsBuilder.js.html +40 -40
- package/coverage/lcov-report/helpers/dockerHubService.js.html +310 -0
- package/coverage/lcov-report/helpers/dockerService/serviceComponents/containerActions.js.html +1 -1
- package/coverage/lcov-report/helpers/dockerService/serviceComponents/containerList.js.html +1 -1
- package/coverage/lcov-report/helpers/dockerService/serviceComponents/index.html +1 -1
- package/coverage/lcov-report/helpers/imageNameUtils.js.html +18 -18
- package/coverage/lcov-report/helpers/index.html +77 -62
- package/coverage/lcov-report/helpers/logger.js.html +60 -60
- package/coverage/lcov-report/helpers/safeCall.js.html +14 -14
- package/coverage/lcov-report/helpers/validationHelpers.js.html +52 -52
- package/coverage/lcov-report/hooks/creation/index.html +19 -19
- package/coverage/lcov-report/hooks/creation/useContainerActions.js.html +4 -4
- package/coverage/lcov-report/hooks/creation/useContainerCreation.js.html +225 -48
- package/coverage/lcov-report/hooks/creation/useLogsViewer.js.html +5 -5
- package/coverage/lcov-report/hooks/debug/index.html +1 -1
- package/coverage/lcov-report/hooks/debug/useDebugLogs.js.html +7 -7
- package/coverage/lcov-report/hooks/index.html +15 -15
- package/coverage/lcov-report/hooks/navigation/index.html +1 -1
- package/coverage/lcov-report/hooks/navigation/useContainerSelection.js.html +6 -6
- package/coverage/lcov-report/hooks/useContainerCommandRouter.js.html +13 -13
- package/coverage/lcov-report/hooks/useControls.js.html +82 -40
- package/coverage/lcov-report/hooks/useEraseConfirmation.js.html +5 -5
- package/coverage/lcov-report/hooks/useExitHandler.js.html +6 -6
- package/coverage/lcov-report/index.html +38 -68
- package/coverage/lcov.info +742 -981
- package/dist/App.js +7 -1
- package/dist/components/ContainerCreationPrompt.js +26 -10
- package/dist/components/ControlsHUD.js +106 -0
- package/dist/components/SuggestionPanel.js +16 -7
- package/dist/helpers/constants.js +60 -21
- package/dist/helpers/dockerHubService.js +111 -0
- package/dist/helpers/logger.js +1 -1
- package/dist/hooks/creation/useContainerActions.js +22 -5
- package/dist/hooks/creation/useContainerCreation.js +395 -107
- package/dist/hooks/useContainerCommandRouter.js +1 -1
- package/dist/hooks/useControls.js +23 -7
- package/dist/index.js +7 -0
- package/package.json +1 -1
- package/src/App.jsx +6 -0
- package/src/components/ContainerCreationPrompt.jsx +15 -5
- package/src/components/ControlsHUD.jsx +66 -0
- package/src/components/SuggestionPanel.jsx +10 -2
- package/src/helpers/constants.js +38 -20
- package/src/helpers/dockerHubService.js +75 -0
- package/src/helpers/logger.js +1 -2
- package/src/hooks/creation/useContainerActions.js +19 -6
- package/src/hooks/creation/useContainerCreation.js +224 -87
- package/src/hooks/useContainerCommandRouter.js +1 -1
- package/src/hooks/useControls.js +24 -8
- package/src/index.js +4 -0
- package/test/ContainerCreationPrompt.dom.test.js +245 -0
- package/test/ControlsHUD.dom.test.js +125 -0
- package/test/SuggestionPanel.dom.test.js +30 -0
- package/test/constants.test.js +7 -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 +306 -3
- package/test/useContainerCreationHub.dom.test.js +184 -0
- package/test/useControls.dom.test.js +212 -6
|
@@ -224,11 +224,11 @@
|
|
|
224
224
|
<span class="cline-any cline-neutral"> </span>
|
|
225
225
|
<span class="cline-any cline-neutral"> </span>
|
|
226
226
|
<span class="cline-any cline-neutral"> </span>
|
|
227
|
-
<span class="cline-any cline-yes">
|
|
227
|
+
<span class="cline-any cline-yes">96x</span>
|
|
228
228
|
<span class="cline-any cline-neutral"> </span>
|
|
229
|
-
<span class="cline-any cline-yes">
|
|
229
|
+
<span class="cline-any cline-yes">12x</span>
|
|
230
230
|
<span class="cline-any cline-neutral"> </span>
|
|
231
|
-
<span class="cline-any cline-yes">
|
|
231
|
+
<span class="cline-any cline-yes">12x</span>
|
|
232
232
|
<span class="cline-any cline-no"> </span>
|
|
233
233
|
<span class="cline-any cline-no"> </span>
|
|
234
234
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -240,7 +240,7 @@
|
|
|
240
240
|
<span class="cline-any cline-no"> </span>
|
|
241
241
|
<span class="cline-any cline-neutral"> </span>
|
|
242
242
|
<span class="cline-any cline-neutral"> </span>
|
|
243
|
-
<span class="cline-any cline-yes">
|
|
243
|
+
<span class="cline-any cline-yes">12x</span>
|
|
244
244
|
<span class="cline-any cline-no"> </span>
|
|
245
245
|
<span class="cline-any cline-no"> </span>
|
|
246
246
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -255,7 +255,7 @@
|
|
|
255
255
|
<span class="cline-any cline-no"> </span>
|
|
256
256
|
<span class="cline-any cline-neutral"> </span>
|
|
257
257
|
<span class="cline-any cline-neutral"> </span>
|
|
258
|
-
<span class="cline-any cline-yes">
|
|
258
|
+
<span class="cline-any cline-yes">12x</span>
|
|
259
259
|
<span class="cline-any cline-no"> </span>
|
|
260
260
|
<span class="cline-any cline-no"> </span>
|
|
261
261
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -264,7 +264,7 @@
|
|
|
264
264
|
<span class="cline-any cline-no"> </span>
|
|
265
265
|
<span class="cline-any cline-neutral"> </span>
|
|
266
266
|
<span class="cline-any cline-neutral"> </span>
|
|
267
|
-
<span class="cline-any cline-yes">
|
|
267
|
+
<span class="cline-any cline-yes">12x</span>
|
|
268
268
|
<span class="cline-any cline-no"> </span>
|
|
269
269
|
<span class="cline-any cline-no"> </span>
|
|
270
270
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -272,7 +272,7 @@
|
|
|
272
272
|
<span class="cline-any cline-no"> </span>
|
|
273
273
|
<span class="cline-any cline-neutral"> </span>
|
|
274
274
|
<span class="cline-any cline-neutral"> </span>
|
|
275
|
-
<span class="cline-any cline-yes">
|
|
275
|
+
<span class="cline-any cline-yes">12x</span>
|
|
276
276
|
<span class="cline-any cline-no"> </span>
|
|
277
277
|
<span class="cline-any cline-no"> </span>
|
|
278
278
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -281,10 +281,10 @@
|
|
|
281
281
|
<span class="cline-any cline-no"> </span>
|
|
282
282
|
<span class="cline-any cline-neutral"> </span>
|
|
283
283
|
<span class="cline-any cline-neutral"> </span>
|
|
284
|
-
<span class="cline-any cline-yes">
|
|
285
|
-
<span class="cline-any cline-yes">
|
|
286
|
-
<span class="cline-any cline-yes">
|
|
287
|
-
<span class="cline-any cline-yes">
|
|
284
|
+
<span class="cline-any cline-yes">12x</span>
|
|
285
|
+
<span class="cline-any cline-yes">12x</span>
|
|
286
|
+
<span class="cline-any cline-yes">12x</span>
|
|
287
|
+
<span class="cline-any cline-yes">12x</span>
|
|
288
288
|
<span class="cline-any cline-neutral"> </span>
|
|
289
289
|
<span class="cline-any cline-neutral"> </span>
|
|
290
290
|
<span class="cline-any cline-no"> </span>
|
|
@@ -307,7 +307,7 @@
|
|
|
307
307
|
<span class="cline-any cline-neutral"> </span>
|
|
308
308
|
<span class="cline-any cline-neutral"> </span>
|
|
309
309
|
<span class="cline-any cline-neutral"> </span>
|
|
310
|
-
<span class="cline-any cline-yes">
|
|
310
|
+
<span class="cline-any cline-yes">96x</span>
|
|
311
311
|
<span class="cline-any cline-neutral"> </span>
|
|
312
312
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { useCallback } from 'react';
|
|
313
313
|
|
|
@@ -439,7 +439,7 @@ export function useContainerCommandRouter({
|
|
|
439
439
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
440
440
|
Code coverage generated by
|
|
441
441
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
442
|
-
at 2026-04-
|
|
442
|
+
at 2026-04-27T22:13:21.150Z
|
|
443
443
|
</div>
|
|
444
444
|
<script src="../prettify.js"></script>
|
|
445
445
|
<script>
|
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">59.13% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>68/115</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">67.77% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>61/90</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">62.96% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>68/108</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -310,7 +310,21 @@
|
|
|
310
310
|
<a name='L245'></a><a href='#L245'>245</a>
|
|
311
311
|
<a name='L246'></a><a href='#L246'>246</a>
|
|
312
312
|
<a name='L247'></a><a href='#L247'>247</a>
|
|
313
|
-
<a name='L248'></a><a href='#L248'>248</a
|
|
313
|
+
<a name='L248'></a><a href='#L248'>248</a>
|
|
314
|
+
<a name='L249'></a><a href='#L249'>249</a>
|
|
315
|
+
<a name='L250'></a><a href='#L250'>250</a>
|
|
316
|
+
<a name='L251'></a><a href='#L251'>251</a>
|
|
317
|
+
<a name='L252'></a><a href='#L252'>252</a>
|
|
318
|
+
<a name='L253'></a><a href='#L253'>253</a>
|
|
319
|
+
<a name='L254'></a><a href='#L254'>254</a>
|
|
320
|
+
<a name='L255'></a><a href='#L255'>255</a>
|
|
321
|
+
<a name='L256'></a><a href='#L256'>256</a>
|
|
322
|
+
<a name='L257'></a><a href='#L257'>257</a>
|
|
323
|
+
<a name='L258'></a><a href='#L258'>258</a>
|
|
324
|
+
<a name='L259'></a><a href='#L259'>259</a>
|
|
325
|
+
<a name='L260'></a><a href='#L260'>260</a>
|
|
326
|
+
<a name='L261'></a><a href='#L261'>261</a>
|
|
327
|
+
<a name='L262'></a><a href='#L262'>262</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
314
328
|
<span class="cline-any cline-neutral"> </span>
|
|
315
329
|
<span class="cline-any cline-neutral"> </span>
|
|
316
330
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -334,12 +348,12 @@
|
|
|
334
348
|
<span class="cline-any cline-neutral"> </span>
|
|
335
349
|
<span class="cline-any cline-neutral"> </span>
|
|
336
350
|
<span class="cline-any cline-neutral"> </span>
|
|
337
|
-
<span class="cline-any cline-yes">
|
|
351
|
+
<span class="cline-any cline-yes">96x</span>
|
|
338
352
|
<span class="cline-any cline-neutral"> </span>
|
|
339
353
|
<span class="cline-any cline-neutral"> </span>
|
|
340
|
-
<span class="cline-any cline-yes">
|
|
354
|
+
<span class="cline-any cline-yes">96x</span>
|
|
341
355
|
<span class="cline-any cline-neutral"> </span>
|
|
342
|
-
<span class="cline-any cline-yes">
|
|
356
|
+
<span class="cline-any cline-yes">96x</span>
|
|
343
357
|
<span class="cline-any cline-neutral"> </span>
|
|
344
358
|
<span class="cline-any cline-yes">4x</span>
|
|
345
359
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -372,11 +386,15 @@
|
|
|
372
386
|
<span class="cline-any cline-neutral"> </span>
|
|
373
387
|
<span class="cline-any cline-neutral"> </span>
|
|
374
388
|
<span class="cline-any cline-neutral"> </span>
|
|
375
|
-
<span class="cline-any cline-yes">
|
|
376
|
-
<span class="cline-any cline-yes">
|
|
377
|
-
<span class="cline-any cline-yes">
|
|
389
|
+
<span class="cline-any cline-yes">96x</span>
|
|
390
|
+
<span class="cline-any cline-yes">96x</span>
|
|
391
|
+
<span class="cline-any cline-yes">96x</span>
|
|
378
392
|
<span class="cline-any cline-neutral"> </span>
|
|
379
|
-
<span class="cline-any cline-
|
|
393
|
+
<span class="cline-any cline-neutral"> </span>
|
|
394
|
+
<span class="cline-any cline-yes">96x</span>
|
|
395
|
+
<span class="cline-any cline-yes">96x</span>
|
|
396
|
+
<span class="cline-any cline-neutral"> </span>
|
|
397
|
+
<span class="cline-any cline-yes">96x</span>
|
|
380
398
|
<span class="cline-any cline-neutral"> </span>
|
|
381
399
|
<span class="cline-any cline-no"> </span>
|
|
382
400
|
<span class="cline-any cline-no"> </span>
|
|
@@ -395,7 +413,7 @@
|
|
|
395
413
|
<span class="cline-any cline-neutral"> </span>
|
|
396
414
|
<span class="cline-any cline-neutral"> </span>
|
|
397
415
|
<span class="cline-any cline-neutral"> </span>
|
|
398
|
-
<span class="cline-any cline-yes">
|
|
416
|
+
<span class="cline-any cline-yes">96x</span>
|
|
399
417
|
<span class="cline-any cline-neutral"> </span>
|
|
400
418
|
<span class="cline-any cline-no"> </span>
|
|
401
419
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -412,7 +430,7 @@
|
|
|
412
430
|
<span class="cline-any cline-neutral"> </span>
|
|
413
431
|
<span class="cline-any cline-neutral"> </span>
|
|
414
432
|
<span class="cline-any cline-neutral"> </span>
|
|
415
|
-
<span class="cline-any cline-yes">
|
|
433
|
+
<span class="cline-any cline-yes">96x</span>
|
|
416
434
|
<span class="cline-any cline-neutral"> </span>
|
|
417
435
|
<span class="cline-any cline-neutral"> </span>
|
|
418
436
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -427,10 +445,10 @@
|
|
|
427
445
|
<span class="cline-any cline-no"> </span>
|
|
428
446
|
<span class="cline-any cline-neutral"> </span>
|
|
429
447
|
<span class="cline-any cline-no"> </span>
|
|
430
|
-
<span class="cline-any cline-yes">
|
|
448
|
+
<span class="cline-any cline-yes">12x</span>
|
|
431
449
|
<span class="cline-any cline-neutral"> </span>
|
|
432
450
|
<span class="cline-any cline-neutral"> </span>
|
|
433
|
-
<span class="cline-any cline-yes">
|
|
451
|
+
<span class="cline-any cline-yes">96x</span>
|
|
434
452
|
<span class="cline-any cline-neutral"> </span>
|
|
435
453
|
<span class="cline-any cline-no"> </span>
|
|
436
454
|
<span class="cline-any cline-no"> </span>
|
|
@@ -442,28 +460,38 @@
|
|
|
442
460
|
<span class="cline-any cline-neutral"> </span>
|
|
443
461
|
<span class="cline-any cline-neutral"> </span>
|
|
444
462
|
<span class="cline-any cline-neutral"> </span>
|
|
445
|
-
<span class="cline-any cline-yes">
|
|
463
|
+
<span class="cline-any cline-yes">96x</span>
|
|
446
464
|
<span class="cline-any cline-neutral"> </span>
|
|
447
|
-
<span class="cline-any cline-yes">
|
|
465
|
+
<span class="cline-any cline-yes">27x</span>
|
|
448
466
|
<span class="cline-any cline-neutral"> </span>
|
|
449
|
-
<span class="cline-any cline-yes">
|
|
467
|
+
<span class="cline-any cline-yes">27x</span>
|
|
450
468
|
<span class="cline-any cline-no"> </span>
|
|
451
|
-
<span class="cline-any cline-yes">
|
|
469
|
+
<span class="cline-any cline-yes">27x</span>
|
|
452
470
|
<span class="cline-any cline-neutral"> </span>
|
|
453
|
-
<span class="cline-any cline-yes">
|
|
471
|
+
<span class="cline-any cline-yes">27x</span>
|
|
454
472
|
<span class="cline-any cline-no"> </span>
|
|
455
473
|
<span class="cline-any cline-no"> </span>
|
|
456
474
|
<span class="cline-any cline-no"> </span>
|
|
457
475
|
<span class="cline-any cline-neutral"> </span>
|
|
458
476
|
<span class="cline-any cline-neutral"> </span>
|
|
459
|
-
<span class="cline-any cline-yes">
|
|
477
|
+
<span class="cline-any cline-yes">27x</span>
|
|
460
478
|
<span class="cline-any cline-neutral"> </span>
|
|
461
|
-
<span class="cline-any cline-yes">
|
|
479
|
+
<span class="cline-any cline-yes">6x</span>
|
|
462
480
|
<span class="cline-any cline-yes">2x</span>
|
|
463
481
|
<span class="cline-any cline-yes">2x</span>
|
|
464
482
|
<span class="cline-any cline-neutral"> </span>
|
|
483
|
+
<span class="cline-any cline-yes">4x</span>
|
|
484
|
+
<span class="cline-any cline-yes">4x</span>
|
|
485
|
+
<span class="cline-any cline-neutral"> </span>
|
|
486
|
+
<span class="cline-any cline-neutral"> </span>
|
|
487
|
+
<span class="cline-any cline-neutral"> </span>
|
|
488
|
+
<span class="cline-any cline-yes">21x</span>
|
|
489
|
+
<span class="cline-any cline-yes">4x</span>
|
|
465
490
|
<span class="cline-any cline-yes">3x</span>
|
|
466
|
-
<span class="cline-any cline-yes">
|
|
491
|
+
<span class="cline-any cline-yes">1x</span>
|
|
492
|
+
<span class="cline-any cline-neutral"> </span>
|
|
493
|
+
<span class="cline-any cline-neutral"> </span>
|
|
494
|
+
<span class="cline-any cline-yes">4x</span>
|
|
467
495
|
<span class="cline-any cline-neutral"> </span>
|
|
468
496
|
<span class="cline-any cline-neutral"> </span>
|
|
469
497
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -505,35 +533,35 @@
|
|
|
505
533
|
<span class="cline-any cline-neutral"> </span>
|
|
506
534
|
<span class="cline-any cline-neutral"> </span>
|
|
507
535
|
<span class="cline-any cline-neutral"> </span>
|
|
508
|
-
<span class="cline-any cline-yes">
|
|
509
|
-
<span class="cline-any cline-yes">
|
|
536
|
+
<span class="cline-any cline-yes">96x</span>
|
|
537
|
+
<span class="cline-any cline-yes">39x</span>
|
|
510
538
|
<span class="cline-any cline-no"> </span>
|
|
511
539
|
<span class="cline-any cline-no"> </span>
|
|
512
540
|
<span class="cline-any cline-neutral"> </span>
|
|
513
541
|
<span class="cline-any cline-neutral"> </span>
|
|
514
|
-
<span class="cline-any cline-yes">
|
|
542
|
+
<span class="cline-any cline-yes">39x</span>
|
|
515
543
|
<span class="cline-any cline-no"> </span>
|
|
516
544
|
<span class="cline-any cline-no"> </span>
|
|
517
545
|
<span class="cline-any cline-neutral"> </span>
|
|
518
546
|
<span class="cline-any cline-no"> </span>
|
|
519
547
|
<span class="cline-any cline-neutral"> </span>
|
|
520
548
|
<span class="cline-any cline-neutral"> </span>
|
|
521
|
-
<span class="cline-any cline-yes">
|
|
522
|
-
<span class="cline-any cline-yes">
|
|
523
|
-
<span class="cline-any cline-yes">
|
|
549
|
+
<span class="cline-any cline-yes">39x</span>
|
|
550
|
+
<span class="cline-any cline-yes">27x</span>
|
|
551
|
+
<span class="cline-any cline-yes">27x</span>
|
|
524
552
|
<span class="cline-any cline-neutral"> </span>
|
|
525
553
|
<span class="cline-any cline-neutral"> </span>
|
|
526
|
-
<span class="cline-any cline-yes">
|
|
554
|
+
<span class="cline-any cline-yes">12x</span>
|
|
527
555
|
<span class="cline-any cline-no"> </span>
|
|
528
556
|
<span class="cline-any cline-no"> </span>
|
|
529
557
|
<span class="cline-any cline-neutral"> </span>
|
|
530
558
|
<span class="cline-any cline-neutral"> </span>
|
|
531
|
-
<span class="cline-any cline-yes">
|
|
532
|
-
<span class="cline-any cline-yes">
|
|
533
|
-
<span class="cline-any cline-yes">
|
|
559
|
+
<span class="cline-any cline-yes">12x</span>
|
|
560
|
+
<span class="cline-any cline-yes">12x</span>
|
|
561
|
+
<span class="cline-any cline-yes">12x</span>
|
|
534
562
|
<span class="cline-any cline-neutral"> </span>
|
|
535
563
|
<span class="cline-any cline-neutral"> </span>
|
|
536
|
-
<span class="cline-any cline-yes">
|
|
564
|
+
<span class="cline-any cline-yes">96x</span>
|
|
537
565
|
<span class="cline-any cline-neutral"> </span>
|
|
538
566
|
<span class="cline-any cline-neutral"> </span>
|
|
539
567
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -580,7 +608,7 @@ import { DB_IMAGES } from '../helpers/constants.js';
|
|
|
580
608
|
* @param {Array<Object>} containers - Current list of Docker containers
|
|
581
609
|
* @returns {Object} controls - API for the App component
|
|
582
610
|
*/
|
|
583
|
-
export function useControls(containers = <span class="branch-0 cbranch-no" title="branch not covered" >[]
|
|
611
|
+
export function useControls(containers = <span class="branch-0 cbranch-no" title="branch not covered" >[],</span> overrides = {}) {
|
|
584
612
|
const [creatingContainer, setCreatingContainer] = React.useState(false);
|
|
585
613
|
|
|
586
614
|
// — Modular hooks —
|
|
@@ -622,6 +650,10 @@ export function useControls(containers = <span class="branch-0 cbranch-no" title
|
|
|
622
650
|
const logsViewer = useLogsViewer();
|
|
623
651
|
const selection = useContainerSelection(containers.length);
|
|
624
652
|
const debugLogs = useDebugLogs();
|
|
653
|
+
|
|
654
|
+
// Allow overrides for testability (e.g. injecting a mock triggerHubSearch)
|
|
655
|
+
const triggerHubSearch = overrides.triggerHubSearch ?? creation.triggerHubSearch;
|
|
656
|
+
const isSearchingHub = overrides.isSearchingHub ?? creation.isSearchingHub;
|
|
625
657
|
|
|
626
658
|
const eraseConfirmation = useEraseConfirmation({
|
|
627
659
|
onConfirm: <span class="fstat-no" title="function not covered" >()</span> => {
|
|
@@ -712,6 +744,16 @@ export function useControls(containers = <span class="branch-0 cbranch-no" title
|
|
|
712
744
|
creation.nextStep();
|
|
713
745
|
return;
|
|
714
746
|
}
|
|
747
|
+
|
|
748
|
+
// Tab on step 0: trigger Docker Hub search (with guards)
|
|
749
|
+
if (key.tab) {
|
|
750
|
+
if (step === 0) {
|
|
751
|
+
if (!isSearchingHub && (creation.imageName || '').trim() !== '') {
|
|
752
|
+
triggerHubSearch();
|
|
753
|
+
}
|
|
754
|
+
}
|
|
755
|
+
return;
|
|
756
|
+
}
|
|
715
757
|
|
|
716
758
|
// Arrow keys on step 0: navigate suggestion list
|
|
717
759
|
if (step === 0 && creation.suggestions.length > 0) {
|
|
@@ -748,7 +790,7 @@ export function useControls(containers = <span class="branch-0 cbranch-no" title
|
|
|
748
790
|
<span class="cstat-no" title="statement not covered" > appendChar(creation.setEnvInput, creation.envInput, input);</span>
|
|
749
791
|
}
|
|
750
792
|
},
|
|
751
|
-
[creation, setCreatingContainer]
|
|
793
|
+
[creation, setCreatingContainer, triggerHubSearch, isSearchingHub]
|
|
752
794
|
);
|
|
753
795
|
|
|
754
796
|
// Single keyboard entry point
|
|
@@ -811,7 +853,7 @@ export function useControls(containers = <span class="branch-0 cbranch-no" title
|
|
|
811
853
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
812
854
|
Code coverage generated by
|
|
813
855
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
814
|
-
at 2026-04-
|
|
856
|
+
at 2026-04-27T22:13:21.150Z
|
|
815
857
|
</div>
|
|
816
858
|
<script src="../prettify.js"></script>
|
|
817
859
|
<script>
|
|
@@ -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,7 +139,7 @@
|
|
|
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
144
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { useState, useCallback } from 'react';
|
|
145
145
|
|
|
@@ -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>
|
|
@@ -151,7 +151,7 @@
|
|
|
151
151
|
<span class="cline-any cline-neutral"> </span>
|
|
152
152
|
<span class="cline-any cline-neutral"> </span>
|
|
153
153
|
<span class="cline-any cline-neutral"> </span>
|
|
154
|
-
<span class="cline-any cline-yes">
|
|
154
|
+
<span class="cline-any cline-yes">96x</span>
|
|
155
155
|
<span class="cline-any cline-neutral"> </span>
|
|
156
156
|
<span class="cline-any cline-neutral"> </span>
|
|
157
157
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -164,10 +164,10 @@
|
|
|
164
164
|
<span class="cline-any cline-neutral"> </span>
|
|
165
165
|
<span class="cline-any cline-neutral"> </span>
|
|
166
166
|
<span class="cline-any cline-neutral"> </span>
|
|
167
|
-
<span class="cline-any cline-yes">
|
|
167
|
+
<span class="cline-any cline-yes">96x</span>
|
|
168
168
|
<span class="cline-any cline-neutral"> </span>
|
|
169
|
-
<span class="cline-any cline-yes">
|
|
170
|
-
<span class="cline-any cline-yes">
|
|
169
|
+
<span class="cline-any cline-yes">12x</span>
|
|
170
|
+
<span class="cline-any cline-yes">12x</span>
|
|
171
171
|
<span class="cline-any cline-neutral"> </span>
|
|
172
172
|
<span class="cline-any cline-neutral"> </span>
|
|
173
173
|
<span class="cline-any cline-no"> </span>
|
|
@@ -199,7 +199,7 @@
|
|
|
199
199
|
<span class="cline-any cline-neutral"> </span>
|
|
200
200
|
<span class="cline-any cline-neutral"> </span>
|
|
201
201
|
<span class="cline-any cline-neutral"> </span>
|
|
202
|
-
<span class="cline-any cline-yes">
|
|
202
|
+
<span class="cline-any cline-yes">96x</span>
|
|
203
203
|
<span class="cline-any cline-neutral"> </span>
|
|
204
204
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { useCallback } from 'react';
|
|
205
205
|
import { useApp } from 'ink';
|
|
@@ -277,7 +277,7 @@ export function useExitHandler({ onBeforeExit } = <span class="branch-0 cbranch-
|
|
|
277
277
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
278
278
|
Code coverage generated by
|
|
279
279
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
280
|
-
at 2026-04-
|
|
280
|
+
at 2026-04-27T22:13:21.150Z
|
|
281
281
|
</div>
|
|
282
282
|
<script src="../prettify.js"></script>
|
|
283
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,78 +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 high" data-value="helpers"><a href="helpers/index.html">helpers</a></td>
|
|
98
|
-
<td data-value="89.83" class="pic high">
|
|
99
|
-
<div class="chart"><div class="cover-fill" style="width: 89%"></div><div class="cover-empty" style="width: 11%"></div></div>
|
|
100
|
-
</td>
|
|
101
|
-
<td data-value="89.83" class="pct high">89.83%</td>
|
|
102
|
-
<td data-value="118" class="abs high">106/118</td>
|
|
103
|
-
<td data-value="83.95" class="pct high">83.95%</td>
|
|
104
|
-
<td data-value="81" class="abs high">68/81</td>
|
|
105
|
-
<td data-value="86.36" class="pct high">86.36%</td>
|
|
106
|
-
<td data-value="22" class="abs high">19/22</td>
|
|
107
|
-
<td data-value="91.74" class="pct high">91.74%</td>
|
|
108
|
-
<td data-value="109" class="abs high">100/109</td>
|
|
109
|
-
</tr>
|
|
110
|
-
|
|
111
|
-
<tr>
|
|
112
|
-
<td class="file medium" data-value="helpers/dockerService/serviceComponents"><a href="helpers/dockerService/serviceComponents/index.html">helpers/dockerService/serviceComponents</a></td>
|
|
113
|
-
<td data-value="71.14" class="pic medium">
|
|
114
|
-
<div class="chart"><div class="cover-fill" style="width: 71%"></div><div class="cover-empty" style="width: 29%"></div></div>
|
|
115
|
-
</td>
|
|
116
|
-
<td data-value="71.14" class="pct medium">71.14%</td>
|
|
117
|
-
<td data-value="149" class="abs medium">106/149</td>
|
|
118
|
-
<td data-value="64.19" class="pct medium">64.19%</td>
|
|
119
|
-
<td data-value="81" class="abs medium">52/81</td>
|
|
120
|
-
<td data-value="69.56" class="pct medium">69.56%</td>
|
|
121
|
-
<td data-value="23" class="abs medium">16/23</td>
|
|
122
|
-
<td data-value="71.42" class="pct medium">71.42%</td>
|
|
123
|
-
<td data-value="147" class="abs medium">105/147</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>
|
|
124
94
|
</tr>
|
|
125
95
|
|
|
126
96
|
<tr>
|
|
127
97
|
<td class="file low" data-value="hooks"><a href="hooks/index.html">hooks</a></td>
|
|
128
|
-
<td data-value="
|
|
129
|
-
<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>
|
|
130
100
|
</td>
|
|
131
|
-
<td data-value="
|
|
132
|
-
<td data-value="
|
|
133
|
-
<td data-value="
|
|
134
|
-
<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>
|
|
135
105
|
<td data-value="28.94" class="pct low">28.94%</td>
|
|
136
106
|
<td data-value="38" class="abs low">11/38</td>
|
|
137
|
-
<td data-value="
|
|
138
|
-
<td data-value="
|
|
107
|
+
<td data-value="50.85" class="pct medium">50.85%</td>
|
|
108
|
+
<td data-value="175" class="abs medium">89/175</td>
|
|
139
109
|
</tr>
|
|
140
110
|
|
|
141
111
|
<tr>
|
|
142
112
|
<td class="file medium" data-value="hooks/creation"><a href="hooks/creation/index.html">hooks/creation</a></td>
|
|
143
|
-
<td data-value="
|
|
144
|
-
<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>
|
|
145
115
|
</td>
|
|
146
|
-
<td data-value="
|
|
147
|
-
<td data-value="
|
|
148
|
-
<td data-value="75" class="pct medium">75%</td>
|
|
149
|
-
<td data-value="
|
|
150
|
-
<td data-value="
|
|
151
|
-
<td data-value="
|
|
152
|
-
<td data-value="
|
|
153
|
-
<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>
|
|
154
124
|
</tr>
|
|
155
125
|
|
|
156
126
|
<tr>
|
|
@@ -191,7 +161,7 @@
|
|
|
191
161
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
192
162
|
Code coverage generated by
|
|
193
163
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
194
|
-
at 2026-04-
|
|
164
|
+
at 2026-04-27T22:13:21.150Z
|
|
195
165
|
</div>
|
|
196
166
|
<script src="prettify.js"></script>
|
|
197
167
|
<script>
|