@topcli/prompts 3.0.0 → 3.1.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/README.md +42 -3
- package/dist/index.cjs +1152 -1259
- package/dist/index.d.cts +91 -76
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.mts +139 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +1175 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +14 -8
- package/dist/index.d.ts +0 -121
- package/dist/index.js +0 -1271
package/dist/index.d.cts
CHANGED
|
@@ -1,121 +1,136 @@
|
|
|
1
|
+
//#region src/validators.d.ts
|
|
1
2
|
type ValidResponseObject = {
|
|
2
|
-
|
|
3
|
+
isValid?: true;
|
|
3
4
|
};
|
|
4
5
|
type InvalidResponseObject = {
|
|
5
|
-
|
|
6
|
-
|
|
6
|
+
isValid: false;
|
|
7
|
+
error: string;
|
|
7
8
|
};
|
|
8
9
|
type ValidationResponseObject = ValidResponseObject | InvalidResponseObject;
|
|
9
10
|
type ValidationResponse = InvalidResponse | ValidResponse;
|
|
10
11
|
type InvalidResponse = string | InvalidResponseObject;
|
|
11
12
|
type ValidResponse = null | undefined | true | ValidResponseObject;
|
|
12
13
|
type ValidTransformationResponse<T> = {
|
|
13
|
-
|
|
14
|
-
|
|
14
|
+
isValid: true;
|
|
15
|
+
transformed: T;
|
|
15
16
|
};
|
|
16
17
|
type TransformationResponse<T> = InvalidResponse | ValidTransformationResponse<T>;
|
|
17
18
|
interface PromptValidator<T extends string | string[]> {
|
|
18
|
-
|
|
19
|
+
validate: (input: T) => ValidationResponse | Promise<ValidationResponse>;
|
|
19
20
|
}
|
|
20
21
|
interface PromptTransformer<T> {
|
|
21
|
-
|
|
22
|
+
transform: (input: string) => TransformationResponse<T> | Promise<TransformationResponse<T>>;
|
|
22
23
|
}
|
|
23
24
|
declare function required(): PromptValidator<any>;
|
|
24
|
-
|
|
25
|
+
//#endregion
|
|
26
|
+
//#region src/prompt-agent.d.ts
|
|
25
27
|
declare class PromptAgent<T = string> {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
28
|
+
#private;
|
|
29
|
+
/**
|
|
30
|
+
* The prompts answers queue.
|
|
31
|
+
* When not empty, any prompt will be answered by the first answer in this list.
|
|
32
|
+
*/
|
|
33
|
+
nextAnswers: T[];
|
|
34
|
+
static agent<T>(): PromptAgent<T>;
|
|
35
|
+
constructor(instancier: symbol);
|
|
36
|
+
/**
|
|
37
|
+
* Programmatically set the next answer for any prompt (`question()`, `confirm()`, `select()`)
|
|
38
|
+
*
|
|
39
|
+
* This is useful for testing.
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```js
|
|
43
|
+
* const promptAgent = PromptAgent.agent();
|
|
44
|
+
* promptAgent.nextAnswer("toto");
|
|
45
|
+
*
|
|
46
|
+
* const input = await question("what is your name?");
|
|
47
|
+
* assert.equal(input, "toto");
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
nextAnswer(value: T): void;
|
|
49
51
|
}
|
|
50
|
-
|
|
52
|
+
//#endregion
|
|
53
|
+
//#region src/transformers.d.ts
|
|
51
54
|
declare function number(): PromptTransformer<number>;
|
|
52
55
|
declare function integer(): PromptTransformer<number>;
|
|
53
56
|
declare function url(): PromptTransformer<URL>;
|
|
54
|
-
|
|
57
|
+
//#endregion
|
|
58
|
+
//#region src/types.d.ts
|
|
55
59
|
interface Choice<T extends string> {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
60
|
+
value: T;
|
|
61
|
+
label: string;
|
|
62
|
+
description?: string;
|
|
63
|
+
disabled?: boolean | string;
|
|
59
64
|
}
|
|
60
|
-
|
|
65
|
+
interface Separator {
|
|
66
|
+
type: "separator";
|
|
67
|
+
label?: string;
|
|
68
|
+
}
|
|
69
|
+
//#endregion
|
|
70
|
+
//#region src/prompts/abstract.d.ts
|
|
61
71
|
type Stdin = NodeJS.ReadStream & {
|
|
62
|
-
|
|
72
|
+
fd: 0;
|
|
63
73
|
};
|
|
64
74
|
type Stdout = NodeJS.WriteStream & {
|
|
65
|
-
|
|
75
|
+
fd: 1;
|
|
66
76
|
};
|
|
67
77
|
interface AbstractPromptOptions {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
78
|
+
stdin?: Stdin;
|
|
79
|
+
stdout?: Stdout;
|
|
80
|
+
message: string;
|
|
81
|
+
skip?: boolean;
|
|
82
|
+
signal?: AbortSignal;
|
|
73
83
|
}
|
|
74
|
-
|
|
84
|
+
//#endregion
|
|
85
|
+
//#region src/prompts/question.d.ts
|
|
75
86
|
interface QuestionOptions<T = string> extends AbstractPromptOptions {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
87
|
+
defaultValue?: string;
|
|
88
|
+
validators?: PromptValidator<string>[];
|
|
89
|
+
transformer?: PromptTransformer<T>;
|
|
90
|
+
secure?: boolean | {
|
|
91
|
+
placeholder: string;
|
|
92
|
+
};
|
|
82
93
|
}
|
|
83
|
-
|
|
94
|
+
//#endregion
|
|
95
|
+
//#region src/prompts/confirm.d.ts
|
|
84
96
|
interface ConfirmOptions extends AbstractPromptOptions {
|
|
85
|
-
|
|
97
|
+
initial?: boolean;
|
|
86
98
|
}
|
|
87
|
-
|
|
99
|
+
//#endregion
|
|
100
|
+
//#region src/prompts/select.d.ts
|
|
88
101
|
interface SelectOptions<T extends string> extends AbstractPromptOptions {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
102
|
+
choices: (Choice<T> | T | Separator)[];
|
|
103
|
+
maxVisible?: number;
|
|
104
|
+
ignoreValues?: (T | number | boolean)[];
|
|
105
|
+
validators?: PromptValidator<string>[];
|
|
106
|
+
autocomplete?: boolean;
|
|
107
|
+
caseSensitive?: boolean;
|
|
95
108
|
}
|
|
96
|
-
|
|
109
|
+
//#endregion
|
|
110
|
+
//#region src/prompts/multiselect.d.ts
|
|
97
111
|
interface MultiselectOptions<T extends string> extends AbstractPromptOptions {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
112
|
+
choices: (Choice<T> | T | Separator)[];
|
|
113
|
+
maxVisible?: number;
|
|
114
|
+
preSelectedChoices?: (Choice<T> | T)[];
|
|
115
|
+
validators?: PromptValidator<string[]>[];
|
|
116
|
+
autocomplete?: boolean;
|
|
117
|
+
caseSensitive?: boolean;
|
|
118
|
+
showHint?: boolean;
|
|
105
119
|
}
|
|
106
|
-
|
|
120
|
+
//#endregion
|
|
121
|
+
//#region src/index.d.ts
|
|
107
122
|
declare function question<T = string>(message: string, options?: Omit<QuestionOptions<T>, "message">): Promise<T>;
|
|
108
123
|
declare function select<T extends string>(message: string, options: Omit<SelectOptions<T>, "message">): Promise<T>;
|
|
109
124
|
declare function confirm(message: string, options?: Omit<ConfirmOptions, "message">): Promise<boolean>;
|
|
110
125
|
declare function multiselect<T extends string>(message: string, options: Omit<MultiselectOptions<T>, "message">): Promise<T[]>;
|
|
111
|
-
|
|
112
126
|
declare const validators: {
|
|
113
|
-
|
|
127
|
+
required: typeof required;
|
|
114
128
|
};
|
|
115
129
|
declare const transformers: {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
130
|
+
number: typeof number;
|
|
131
|
+
integer: typeof integer;
|
|
132
|
+
url: typeof url;
|
|
119
133
|
};
|
|
120
|
-
|
|
121
|
-
export { type AbstractPromptOptions, type Choice, type ConfirmOptions, type InvalidResponse, type InvalidResponseObject, type MultiselectOptions, PromptAgent, type PromptTransformer, type PromptValidator, type QuestionOptions, type SelectOptions, type TransformationResponse, type ValidResponse, type ValidResponseObject, type ValidTransformationResponse, type ValidationResponse, type ValidationResponseObject, confirm, multiselect, question, select, transformers, validators };
|
|
134
|
+
//#endregion
|
|
135
|
+
export { type AbstractPromptOptions, type Choice, type ConfirmOptions, type InvalidResponse, type InvalidResponseObject, type MultiselectOptions, PromptAgent, type PromptTransformer, type PromptValidator, type QuestionOptions, type SelectOptions, type Separator, type TransformationResponse, type ValidResponse, type ValidResponseObject, type ValidTransformationResponse, type ValidationResponse, type ValidationResponseObject, confirm, multiselect, question, select, transformers, validators };
|
|
136
|
+
//# sourceMappingURL=index.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/validators.ts","../src/prompt-agent.ts","../src/transformers.ts","../src/types.ts","../src/prompts/abstract.ts","../src/prompts/question.ts","../src/prompts/confirm.ts","../src/prompts/select.ts","../src/prompts/multiselect.ts","../src/index.ts"],"mappings":"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"}
|
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import EventEmitter from "node:events";
|
|
2
|
+
import readline from "node:readline";
|
|
3
|
+
|
|
4
|
+
//#region src/validators.d.ts
|
|
5
|
+
type ValidResponseObject = {
|
|
6
|
+
isValid?: true;
|
|
7
|
+
};
|
|
8
|
+
type InvalidResponseObject = {
|
|
9
|
+
isValid: false;
|
|
10
|
+
error: string;
|
|
11
|
+
};
|
|
12
|
+
type ValidationResponseObject = ValidResponseObject | InvalidResponseObject;
|
|
13
|
+
type ValidationResponse = InvalidResponse | ValidResponse;
|
|
14
|
+
type InvalidResponse = string | InvalidResponseObject;
|
|
15
|
+
type ValidResponse = null | undefined | true | ValidResponseObject;
|
|
16
|
+
type ValidTransformationResponse<T> = {
|
|
17
|
+
isValid: true;
|
|
18
|
+
transformed: T;
|
|
19
|
+
};
|
|
20
|
+
type TransformationResponse<T> = InvalidResponse | ValidTransformationResponse<T>;
|
|
21
|
+
interface PromptValidator<T extends string | string[]> {
|
|
22
|
+
validate: (input: T) => ValidationResponse | Promise<ValidationResponse>;
|
|
23
|
+
}
|
|
24
|
+
interface PromptTransformer<T> {
|
|
25
|
+
transform: (input: string) => TransformationResponse<T> | Promise<TransformationResponse<T>>;
|
|
26
|
+
}
|
|
27
|
+
declare function required(): PromptValidator<any>;
|
|
28
|
+
//#endregion
|
|
29
|
+
//#region src/prompt-agent.d.ts
|
|
30
|
+
declare class PromptAgent<T = string> {
|
|
31
|
+
#private;
|
|
32
|
+
/**
|
|
33
|
+
* The prompts answers queue.
|
|
34
|
+
* When not empty, any prompt will be answered by the first answer in this list.
|
|
35
|
+
*/
|
|
36
|
+
nextAnswers: T[];
|
|
37
|
+
static agent<T>(): PromptAgent<T>;
|
|
38
|
+
constructor(instancier: symbol);
|
|
39
|
+
/**
|
|
40
|
+
* Programmatically set the next answer for any prompt (`question()`, `confirm()`, `select()`)
|
|
41
|
+
*
|
|
42
|
+
* This is useful for testing.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```js
|
|
46
|
+
* const promptAgent = PromptAgent.agent();
|
|
47
|
+
* promptAgent.nextAnswer("toto");
|
|
48
|
+
*
|
|
49
|
+
* const input = await question("what is your name?");
|
|
50
|
+
* assert.equal(input, "toto");
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
nextAnswer(value: T): void;
|
|
54
|
+
}
|
|
55
|
+
//#endregion
|
|
56
|
+
//#region src/transformers.d.ts
|
|
57
|
+
declare function number(): PromptTransformer<number>;
|
|
58
|
+
declare function integer(): PromptTransformer<number>;
|
|
59
|
+
declare function url(): PromptTransformer<URL>;
|
|
60
|
+
//#endregion
|
|
61
|
+
//#region src/types.d.ts
|
|
62
|
+
interface Choice<T extends string> {
|
|
63
|
+
value: T;
|
|
64
|
+
label: string;
|
|
65
|
+
description?: string;
|
|
66
|
+
disabled?: boolean | string;
|
|
67
|
+
}
|
|
68
|
+
interface Separator {
|
|
69
|
+
type: "separator";
|
|
70
|
+
label?: string;
|
|
71
|
+
}
|
|
72
|
+
//#endregion
|
|
73
|
+
//#region src/prompts/abstract.d.ts
|
|
74
|
+
type Stdin = NodeJS.ReadStream & {
|
|
75
|
+
fd: 0;
|
|
76
|
+
};
|
|
77
|
+
type Stdout = NodeJS.WriteStream & {
|
|
78
|
+
fd: 1;
|
|
79
|
+
};
|
|
80
|
+
interface AbstractPromptOptions {
|
|
81
|
+
stdin?: Stdin;
|
|
82
|
+
stdout?: Stdout;
|
|
83
|
+
message: string;
|
|
84
|
+
skip?: boolean;
|
|
85
|
+
signal?: AbortSignal;
|
|
86
|
+
}
|
|
87
|
+
//#endregion
|
|
88
|
+
//#region src/prompts/question.d.ts
|
|
89
|
+
interface QuestionOptions<T = string> extends AbstractPromptOptions {
|
|
90
|
+
defaultValue?: string;
|
|
91
|
+
validators?: PromptValidator<string>[];
|
|
92
|
+
transformer?: PromptTransformer<T>;
|
|
93
|
+
secure?: boolean | {
|
|
94
|
+
placeholder: string;
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
//#endregion
|
|
98
|
+
//#region src/prompts/confirm.d.ts
|
|
99
|
+
interface ConfirmOptions extends AbstractPromptOptions {
|
|
100
|
+
initial?: boolean;
|
|
101
|
+
}
|
|
102
|
+
//#endregion
|
|
103
|
+
//#region src/prompts/select.d.ts
|
|
104
|
+
interface SelectOptions<T extends string> extends AbstractPromptOptions {
|
|
105
|
+
choices: (Choice<T> | T | Separator)[];
|
|
106
|
+
maxVisible?: number;
|
|
107
|
+
ignoreValues?: (T | number | boolean)[];
|
|
108
|
+
validators?: PromptValidator<string>[];
|
|
109
|
+
autocomplete?: boolean;
|
|
110
|
+
caseSensitive?: boolean;
|
|
111
|
+
}
|
|
112
|
+
//#endregion
|
|
113
|
+
//#region src/prompts/multiselect.d.ts
|
|
114
|
+
interface MultiselectOptions<T extends string> extends AbstractPromptOptions {
|
|
115
|
+
choices: (Choice<T> | T | Separator)[];
|
|
116
|
+
maxVisible?: number;
|
|
117
|
+
preSelectedChoices?: (Choice<T> | T)[];
|
|
118
|
+
validators?: PromptValidator<string[]>[];
|
|
119
|
+
autocomplete?: boolean;
|
|
120
|
+
caseSensitive?: boolean;
|
|
121
|
+
showHint?: boolean;
|
|
122
|
+
}
|
|
123
|
+
//#endregion
|
|
124
|
+
//#region src/index.d.ts
|
|
125
|
+
declare function question<T = string>(message: string, options?: Omit<QuestionOptions<T>, "message">): Promise<T>;
|
|
126
|
+
declare function select<T extends string>(message: string, options: Omit<SelectOptions<T>, "message">): Promise<T>;
|
|
127
|
+
declare function confirm(message: string, options?: Omit<ConfirmOptions, "message">): Promise<boolean>;
|
|
128
|
+
declare function multiselect<T extends string>(message: string, options: Omit<MultiselectOptions<T>, "message">): Promise<T[]>;
|
|
129
|
+
declare const validators: {
|
|
130
|
+
required: typeof required;
|
|
131
|
+
};
|
|
132
|
+
declare const transformers: {
|
|
133
|
+
number: typeof number;
|
|
134
|
+
integer: typeof integer;
|
|
135
|
+
url: typeof url;
|
|
136
|
+
};
|
|
137
|
+
//#endregion
|
|
138
|
+
export { type AbstractPromptOptions, type Choice, type ConfirmOptions, type InvalidResponse, type InvalidResponseObject, type MultiselectOptions, PromptAgent, type PromptTransformer, type PromptValidator, type QuestionOptions, type SelectOptions, type Separator, type TransformationResponse, type ValidResponse, type ValidResponseObject, type ValidTransformationResponse, type ValidationResponse, type ValidationResponseObject, confirm, multiselect, question, select, transformers, validators };
|
|
139
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/validators.ts","../src/prompt-agent.ts","../src/transformers.ts","../src/types.ts","../src/prompts/abstract.ts","../src/prompts/question.ts","../src/prompts/confirm.ts","../src/prompts/select.ts","../src/prompts/multiselect.ts","../src/index.ts"],"mappings":"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"}
|