natureco-cli 5.20.4 → 5.21.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.
@@ -1,31 +1,43 @@
1
- const { select, input, password, confirm, checkbox } = require('@inquirer/prompts');
2
-
3
- module.exports = {
4
- async prompt(questions) {
5
- const results = {};
6
- for (const q of questions) {
7
- if (q.type === 'list') {
8
- results[q.name] = await select({
9
- message: q.message,
10
- choices: q.choices.map(c =>
11
- typeof c === 'string' ? { value: c, name: c } : c
12
- )
13
- });
14
- } else if (q.type === 'password') {
15
- results[q.name] = await password({ message: q.message, mask: q.mask });
16
- } else if (q.type === 'checkbox') {
17
- results[q.name] = await checkbox({
18
- message: q.message,
19
- choices: q.choices.map(c =>
20
- typeof c === 'string' ? { value: c, name: c } : c
21
- )
22
- });
23
- } else if (q.type === 'confirm') {
24
- results[q.name] = await confirm({ message: q.message, default: q.default });
25
- } else {
26
- results[q.name] = await input({ message: q.message, default: q.default });
27
- }
28
- }
29
- return results;
30
- }
31
- };
1
+ const { select, input, password, confirm, checkbox } = require('@inquirer/prompts');
2
+
3
+ module.exports = {
4
+ async prompt(questions) {
5
+ // Non-TTY (pipe/script/CI): interaktif soru SORULAMAZ.
6
+ // "readline was closed" çökmesi yerine güvenli varsayılanlarla dön:
7
+ // confirm → default ?? false (onay istenmişse reddet), diğerleri → default ?? ''.
8
+ if (!process.stdin.isTTY) {
9
+ const results = {};
10
+ for (const q of questions) {
11
+ if (q.type === 'confirm') results[q.name] = q.default ?? false;
12
+ else if (q.type === 'checkbox') results[q.name] = q.default ?? [];
13
+ else results[q.name] = q.default ?? '';
14
+ }
15
+ return results;
16
+ }
17
+ const results = {};
18
+ for (const q of questions) {
19
+ if (q.type === 'list') {
20
+ results[q.name] = await select({
21
+ message: q.message,
22
+ choices: q.choices.map(c =>
23
+ typeof c === 'string' ? { value: c, name: c } : c
24
+ )
25
+ });
26
+ } else if (q.type === 'password') {
27
+ results[q.name] = await password({ message: q.message, mask: q.mask });
28
+ } else if (q.type === 'checkbox') {
29
+ results[q.name] = await checkbox({
30
+ message: q.message,
31
+ choices: q.choices.map(c =>
32
+ typeof c === 'string' ? { value: c, name: c } : c
33
+ )
34
+ });
35
+ } else if (q.type === 'confirm') {
36
+ results[q.name] = await confirm({ message: q.message, default: q.default });
37
+ } else {
38
+ results[q.name] = await input({ message: q.message, default: q.default });
39
+ }
40
+ }
41
+ return results;
42
+ }
43
+ };