qa-prompt 1.189.0 → 1.190.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/Prompt.d.ts +1 -1
- package/Prompt.js.map +1 -1
- package/index.d.ts +3 -3
- package/index.js.map +1 -1
- package/package.json +3 -3
- package/prompts/autocomplete.d.ts +2 -2
- package/prompts/autocomplete.js.map +1 -1
- package/prompts/confirm.d.ts +2 -2
- package/prompts/confirm.js.map +1 -1
- package/prompts/index.d.ts +3 -3
- package/prompts/index.js.map +1 -1
- package/prompts/text.d.ts +2 -2
- package/prompts/text.js.map +1 -1
- package/types.d.ts +2 -2
- package/types.js.map +1 -1
- package/validatePrompt.d.ts +1 -1
- package/validatePrompt.js.map +1 -1
package/Prompt.d.ts
CHANGED
package/Prompt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../Prompt.ts"],"sourcesContent":["import { PromptCallback, Promiseable, PromptType, PromptTypeMap, PromptValue, PromptConfig, PromptConfigInput, PromptResultValue } from './types.
|
|
1
|
+
{"version":3,"sources":["../Prompt.ts"],"sourcesContent":["import { PromptCallback, Promiseable, PromptType, PromptTypeMap, PromptValue, PromptConfig, PromptConfigInput, PromptResultValue } from './types.ts';\n\ntype WithPrompts = { [TType in PromptType]: PromptTypeMap[TType] };\n\ninterface Prompt<TState extends object = {}> extends WithPrompts {}\n\nclass Prompt<TState extends object = {}> implements PromiseLike<TState> {\n\n static definePrompt<TType extends PromptType>(type: TType, callback: PromptConfig<TType>) {\n Object.defineProperty(Prompt.prototype, type, {\n enumerable: true,\n value: function <TName extends string, TState extends object = {}, TInitial extends PromptValue<TType> | undefined = undefined, TRequired extends boolean = false, TSkip extends boolean = false>(this: Prompt<TState & { [K in TName]?: PromptValue<TType> }>, name: TName, prompt: PromptConfigInput<TType>) {\n return this.addCallback(async (state: TState) => {\n const { message, required, skip, initial: initialRaw, ...rest } = prompt as any;\n const initialValue = (state as any)[name];\n const initial = (typeof initialRaw === 'function' ? await initialRaw(initialValue, state) : initialRaw) ?? initialValue;\n const skipped = typeof skip === 'function' ? await skip(state) : skip ?? false;\n if (skipped) {\n return { [name]: (state as any)[name] ?? initial };\n }\n const resolved = {\n ...rest,\n message: typeof message === 'function'? await message(state) : message,\n required: typeof required === 'function' ? await required(state) : required ?? false,\n initial,\n skip: skipped,\n };\n return await callback(name, resolved, state) as PromptResultValue<TName, PromptValue<TType>, TInitial, TRequired, TSkip>;\n });\n }\n })\n }\n\n private callbacks: PromptCallback<TState, any>[];\n\n private addCallback<TOutputState extends object>(\n callback: PromptCallback<TState, TOutputState>\n ): Prompt<{ [K in keyof (Omit<TState, keyof TOutputState> & TOutputState)]: (Omit<TState, keyof TOutputState> & TOutputState)[K] }> {\n this.callbacks.push(callback);\n return this as never;\n }\n\n constructor(private initialState?: TState) {\n const callbacks: PromptCallback<TState, any>[] = [];\n this.callbacks = callbacks;\n }\n\n then<TResult1 = TState, TResult2 = never>(onfulfilled?: ((value: TState) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): PromiseLike<TResult1 | TResult2> {\n return this.callbacks.reduce(\n (next, callback) => next.then(\n async state => ({ ...state, ...await (callback(state))})\n ),\n Promise.resolve(this.initialState ?? {} as TState),\n )\n .then(onfulfilled, onrejected);\n }\n}\n\nexport default Prompt;"],"mappings":";;AAMA,MAAM,OAAkE;AAAA,EAoCpE,YAAoB,cAAuB;AAAvB;AAChB,UAAM,YAA2C,CAAC;AAClD,SAAK,YAAY;AAAA,EACrB;AAAA,EA7CJ,OAMwE;AAAA;AAAA;AAAA,EAEpE,OAAO,aAAuC,MAAa,UAA+B;AACtF,WAAO,eAAe,OAAO,WAAW,MAAM;AAAA,MAC1C,YAAY;AAAA,MACZ,OAAO,gCAAyP,MAAa,QAAkC;AAC3S,eAAO,KAAK,YAAY,OAAO,UAAkB;AAC7C,gBAAM,EAAE,SAAS,UAAU,MAAM,SAAS,YAAY,GAAG,KAAK,IAAI;AAClE,gBAAM,eAAgB,MAAc,IAAI;AACxC,gBAAM,WAAW,OAAO,eAAe,aAAa,MAAM,WAAW,cAAc,KAAK,IAAI,eAAe;AAC3G,gBAAM,UAAU,OAAO,SAAS,aAAa,MAAM,KAAK,KAAK,IAAI,QAAQ;AACzE,cAAI,SAAS;AACT,mBAAO,EAAE,CAAC,IAAI,GAAI,MAAc,IAAI,KAAK,QAAQ;AAAA,UACrD;AACA,gBAAM,WAAW;AAAA,YACb,GAAG;AAAA,YACH,SAAS,OAAO,YAAY,aAAY,MAAM,QAAQ,KAAK,IAAI;AAAA,YAC/D,UAAU,OAAO,aAAa,aAAa,MAAM,SAAS,KAAK,IAAI,YAAY;AAAA,YAC/E;AAAA,YACA,MAAM;AAAA,UACV;AACA,iBAAO,MAAM,SAAS,MAAM,UAAU,KAAK;AAAA,QAC/C,CAAC;AAAA,MACL,GAlBO;AAAA,IAmBX,CAAC;AAAA,EACL;AAAA,EAEQ;AAAA,EAEA,YACJ,UACgI;AAChI,SAAK,UAAU,KAAK,QAAQ;AAC5B,WAAO;AAAA,EACX;AAAA,EAOA,KAA0C,aAAwF,YAAuH;AACrP,WAAO,KAAK,UAAU;AAAA,MAClB,CAAC,MAAM,aAAa,KAAK;AAAA,QACrB,OAAM,WAAU,EAAE,GAAG,OAAO,GAAG,MAAO,SAAS,KAAK,EAAE;AAAA,MAC1D;AAAA,MACA,QAAQ,QAAQ,KAAK,gBAAgB,CAAC,CAAW;AAAA,IACrD,EACK,KAAK,aAAa,UAAU;AAAA,EACrC;AACJ;AAEA,IAAO,iBAAQ;","names":[]}
|
package/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import './prompts/index.
|
|
2
|
-
import Prompt from './Prompt.
|
|
3
|
-
import Stepper from './Stepper.
|
|
1
|
+
import './prompts/index.ts';
|
|
2
|
+
import Prompt from './Prompt.ts';
|
|
3
|
+
import Stepper from './Stepper.ts';
|
|
4
4
|
export { Stepper };
|
|
5
5
|
export default Prompt;
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../index.ts"],"sourcesContent":["import './prompts/index.
|
|
1
|
+
{"version":3,"sources":["../index.ts"],"sourcesContent":["import './prompts/index.ts';\nimport Prompt from './Prompt.ts';\nimport Stepper from './Stepper.ts';\nexport { Stepper }\nexport default Prompt;"],"mappings":"AAAA,OAAO;AACP,OAAO,YAAY;AACnB,OAAO,aAAa;AAEpB,IAAO,oBAAQ;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "qa-prompt",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.190.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
7
|
-
"default": "./index.
|
|
7
|
+
"default": "./index.ts"
|
|
8
8
|
}
|
|
9
9
|
},
|
|
10
10
|
"files": [
|
|
11
|
-
"
|
|
11
|
+
"./**/*"
|
|
12
12
|
],
|
|
13
13
|
"peerDependencies": {
|
|
14
14
|
"react": "18.2.0",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import Prompt from '../Prompt.
|
|
2
|
-
import { BasePrompt, PromptResult, Promiseable } from '../types.
|
|
1
|
+
import Prompt from '../Prompt.ts';
|
|
2
|
+
import { BasePrompt, PromptResult, Promiseable } from '../types.ts';
|
|
3
3
|
export type AutocompleteType<TValue = any, TMultiple extends boolean = false> = true extends TMultiple ? TValue[] : TValue;
|
|
4
4
|
export type AutocompleteChoice<TValue = any> = {
|
|
5
5
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../prompts/autocomplete.ts"],"sourcesContent":["import prompts from 'prompts';\nimport Prompt from '../Prompt.
|
|
1
|
+
{"version":3,"sources":["../../prompts/autocomplete.ts"],"sourcesContent":["import prompts from 'prompts';\nimport Prompt from '../Prompt.ts';\nimport { BasePrompt, PromptResult, PromptResultValue, Promiseable } from '../types.ts';\nimport validatePrompt from '../validatePrompt.ts';\nimport suggestChoices from '../suggestChoices.ts';\n\nexport type AutocompleteType<TValue = any, TMultiple extends boolean = false> = true extends TMultiple ? TValue[] : TValue;\n\nexport type AutocompleteChoice<TValue = any> = { name: string, value: TValue };\n\nexport type AutocompletePrompt<TName extends string, TState extends { [K in TName]?: any }, TValue = any, TMultiple extends boolean = false, TInitial extends AutocompleteType<TValue, TMultiple> | undefined = AutocompleteType<TValue, TMultiple> | undefined, TRequired extends boolean = false, TSkip extends boolean = false> = BasePrompt<TName, AutocompleteType<TValue, TMultiple>, TState, TInitial, TRequired, TSkip> & {\n choices: AutocompleteChoice<TValue>[] | ((state: TState) => Promiseable<AutocompleteChoice<TValue>[]>),\n multiple?: TMultiple\n}\n\nexport type AutocompletePromptCallback = {\n <TName extends string, TState extends object = {}, TValue = any, TMultiple extends boolean = false, TInitial extends AutocompleteType<TValue, TMultiple> | undefined = AutocompleteType<TValue, TMultiple> | undefined, TRequired extends boolean = false, TSkip extends boolean = false>(\n this: Prompt<TState & { [K in TName]?: AutocompleteType<TValue, TMultiple> }>,\n name: TName,\n prompt: AutocompletePrompt<TName, TState, TValue, TMultiple, TInitial, TRequired, TSkip>\n ): PromptResult<TName, AutocompleteType<TValue, TMultiple>, TState, TInitial, TRequired, TSkip>\n}\n\ndeclare module '../types.js' {\n export interface PromptTypeMap {\n autocomplete: AutocompletePromptCallback;\n }\n}\n\nPrompt.definePrompt('autocomplete', async (name, { message, choices: rawChoices, initial: rawInitial, validate, required, skip, multiple = false }, state) => {\n const resolvedChoices = (typeof rawChoices === 'function' ? await rawChoices(state) : rawChoices);\n const choices = resolvedChoices.map(({ name }) => ({ title: name, value: name, }));\n let selectedValue: any;\n let initial: any; \n\n if (rawInitial) {\n if (multiple) {\n initial = (rawInitial as any[])?.map(value => {\n const index = resolvedChoices.findIndex(choice => choice.value === value);\n return index >= 0 ? choices[index].value : null;\n }).filter(value => value != null)\n } else {\n const index = resolvedChoices.findIndex(choice => choice.value === rawInitial);\n initial = index >= 0 ? choices[index].value : undefined;\n }\n }\n\n const handle = async () => {\n let suggestContext = { reset: false }\n const suggest = suggestChoices(choices, 'title', () => suggestContext.reset = true);\n const result = await prompts({\n type: 'autocomplete',\n name,\n initial,\n message,\n choices: choices,\n multiple,\n validate: validatePrompt(required, state, validate) as never,\n suggest,\n format: (value: any) => {\n const index = choices.findIndex(choice => choice.value === value);\n selectedValue = index >= 0 ? resolvedChoices[index].value : value;\n return value;\n },\n onRender() {\n if (suggestContext.reset) {\n (this as any).moveSelect(0);\n suggestContext.reset = false;\n }\n },\n skip,\n } as never, { onCancel: () => process.exit() });\n\n Object.assign(result, { [name]: selectedValue });\n\n return result as PromptResultValue<typeof name, AutocompleteType, typeof initial, typeof required, typeof skip>;\n };\n\n return handle();\n});"],"mappings":";;AAAA,OAAO,aAAa;AACpB,OAAO,YAAY;AAEnB,OAAO,oBAAoB;AAC3B,OAAO,oBAAoB;AAyB3B,OAAO,aAAa,gBAAgB,OAAO,MAAM,EAAE,SAAS,SAAS,YAAY,SAAS,YAAY,UAAU,UAAU,MAAM,WAAW,MAAM,GAAG,UAAU;AAC1J,QAAM,kBAAmB,OAAO,eAAe,aAAa,MAAM,WAAW,KAAK,IAAI;AACtF,QAAM,UAAU,gBAAgB,IAAI,CAAC,EAAE,MAAAA,MAAK,OAAO,EAAE,OAAOA,OAAM,OAAOA,MAAM,EAAE;AACjF,MAAI;AACJ,MAAI;AAEJ,MAAI,YAAY;AACZ,QAAI,UAAU;AACV,gBAAW,YAAsB,IAAI,WAAS;AAC1C,cAAM,QAAQ,gBAAgB,UAAU,YAAU,OAAO,UAAU,KAAK;AACxE,eAAO,SAAS,IAAI,QAAQ,KAAK,EAAE,QAAQ;AAAA,MAC/C,CAAC,EAAE,OAAO,WAAS,SAAS,IAAI;AAAA,IACpC,OAAO;AACH,YAAM,QAAQ,gBAAgB,UAAU,YAAU,OAAO,UAAU,UAAU;AAC7E,gBAAU,SAAS,IAAI,QAAQ,KAAK,EAAE,QAAQ;AAAA,IAClD;AAAA,EACJ;AAEA,QAAM,SAAS,mCAAY;AACvB,QAAI,iBAAiB,EAAE,OAAO,MAAM;AACpC,UAAM,UAAU,eAAe,SAAS,SAAS,MAAM,eAAe,QAAQ,IAAI;AAClF,UAAM,SAAS,MAAM,QAAQ;AAAA,MACzB,MAAM;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAU,eAAe,UAAU,OAAO,QAAQ;AAAA,MAClD;AAAA,MACA,QAAQ,wBAAC,UAAe;AACpB,cAAM,QAAQ,QAAQ,UAAU,YAAU,OAAO,UAAU,KAAK;AAChE,wBAAgB,SAAS,IAAI,gBAAgB,KAAK,EAAE,QAAQ;AAC5D,eAAO;AAAA,MACX,GAJQ;AAAA,MAKR,WAAW;AACP,YAAI,eAAe,OAAO;AACtB,UAAC,KAAa,WAAW,CAAC;AAC1B,yBAAe,QAAQ;AAAA,QAC3B;AAAA,MACJ;AAAA,MACA;AAAA,IACJ,GAAY,EAAE,UAAU,6BAAM,QAAQ,KAAK,GAAnB,YAAqB,CAAC;AAE9C,WAAO,OAAO,QAAQ,EAAE,CAAC,IAAI,GAAG,cAAc,CAAC;AAE/C,WAAO;AAAA,EACX,GA7Be;AA+Bf,SAAO,OAAO;AAClB,CAAC;","names":["name"]}
|
package/prompts/confirm.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import Prompt from '../Prompt.
|
|
2
|
-
import { BasePrompt, PromptResult } from '../types.
|
|
1
|
+
import Prompt from '../Prompt.ts';
|
|
2
|
+
import { BasePrompt, PromptResult } from '../types.ts';
|
|
3
3
|
export type ConfirmType = boolean;
|
|
4
4
|
export type ConfirmPrompt<TName extends string, TState extends {
|
|
5
5
|
[K in TName]?: any;
|
package/prompts/confirm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../prompts/confirm.ts"],"sourcesContent":["import prompts from 'prompts';\nimport Prompt from '../Prompt.
|
|
1
|
+
{"version":3,"sources":["../../prompts/confirm.ts"],"sourcesContent":["import prompts from 'prompts';\nimport Prompt from '../Prompt.ts';\nimport { BasePrompt, PromptResult, PromptResultValue } from '../types.ts';\nimport validatePrompt from '../validatePrompt.ts';\n\nexport type ConfirmType = boolean;\n\nexport type ConfirmPrompt<TName extends string, TState extends { [K in TName]?: any }, TInitial extends boolean | undefined = boolean | undefined, TRequired extends boolean = false, TSkip extends boolean = false> = BasePrompt<TName, ConfirmType, TState, TInitial, TRequired, TSkip> & {}\n\nexport type ConfirmPromptCallback = {\n <TName extends string, TState extends object = {}, TInitial extends boolean | undefined = boolean | undefined, TRequired extends boolean = false, TSkip extends boolean = false>(\n this: Prompt<TState & { [K in TName]?: ConfirmType }>,\n name: TName,\n prompt: ConfirmPrompt<TName, TState, TInitial, TRequired, TSkip>\n ): PromptResult<TName, ConfirmType, TState, TInitial, TRequired, TSkip>\n}\n\ndeclare module '../types.js' {\n export interface PromptTypeMap {\n confirm: ConfirmPromptCallback;\n }\n}\n\nPrompt.definePrompt('confirm', async (name, { message, validate, initial, required }, state) => {\n const handle = async () => await prompts({\n type: 'confirm',\n name,\n initial,\n message,\n validate: validatePrompt(required, state, validate) as never,\n } as never, {\n onCancel: () => process.exit(),\n }) as PromptResultValue<typeof name, ConfirmType, ConfirmType, typeof required>;\n return handle();\n});"],"mappings":";;AAAA,OAAO,aAAa;AACpB,OAAO,YAAY;AAEnB,OAAO,oBAAoB;AAoB3B,OAAO,aAAa,WAAW,OAAO,MAAM,EAAE,SAAS,UAAU,SAAS,SAAS,GAAG,UAAU;AAC5F,QAAM,SAAS,mCAAY,MAAM,QAAQ;AAAA,IACrC,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU,eAAe,UAAU,OAAO,QAAQ;AAAA,EACpD,GAAY;AAAA,IACV,UAAU,6BAAM,QAAQ,KAAK,GAAnB;AAAA,EACZ,CAAC,GARY;AASf,SAAO,OAAO;AAClB,CAAC;","names":[]}
|
package/prompts/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from './text.
|
|
2
|
-
export * from './confirm.
|
|
3
|
-
export * from './autocomplete.
|
|
1
|
+
export * from './text.ts';
|
|
2
|
+
export * from './confirm.ts';
|
|
3
|
+
export * from './autocomplete.ts';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
package/prompts/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../prompts/index.ts"],"sourcesContent":["export * from './text.
|
|
1
|
+
{"version":3,"sources":["../../prompts/index.ts"],"sourcesContent":["export * from './text.ts';\nexport * from './confirm.ts';\nexport * from './autocomplete.ts';"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
|
package/prompts/text.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import Prompt from '../Prompt.
|
|
2
|
-
import { BasePrompt, PromptResult } from '../types.
|
|
1
|
+
import Prompt from '../Prompt.ts';
|
|
2
|
+
import { BasePrompt, PromptResult } from '../types.ts';
|
|
3
3
|
export type TextType = string;
|
|
4
4
|
export type TextPrompt<TName extends string, TState extends {
|
|
5
5
|
[K in TName]?: any;
|
package/prompts/text.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../prompts/text.ts"],"sourcesContent":["import prompts from 'prompts';\nimport Prompt from '../Prompt.
|
|
1
|
+
{"version":3,"sources":["../../prompts/text.ts"],"sourcesContent":["import prompts from 'prompts';\nimport Prompt from '../Prompt.ts';\nimport { BasePrompt, PromptResult, PromptResultValue } from '../types.ts';\nimport validatePrompt from '../validatePrompt.ts';\n\nexport type TextType = string;\n\nexport type TextPrompt<TName extends string, TState extends { [K in TName]?: any }, TInitial extends string | undefined = string | undefined, TRequired extends boolean = false, TSkip extends boolean = false> = BasePrompt<TName, InputType, TState, TInitial, TRequired, TSkip> & {}\n\nexport type TextPromptCallback = {\n <TName extends string, TState extends object = {}, TInitial extends string | undefined = string | undefined, TRequired extends boolean = false, TSkip extends boolean = false>(\n this: Prompt<TState & { [K in TName]?: TextType }>,\n name: TName,\n prompt: TextPrompt<TName, TState, TInitial, TRequired, TSkip>\n ): PromptResult<TName, TextType, TState, TInitial, TRequired, TSkip>\n}\n\ndeclare module '../types.js' {\n export interface PromptTypeMap {\n text: TextPromptCallback;\n }\n}\n\nPrompt.definePrompt('text', async (name, { message, validate, initial, required }, state) => {\n const handle = async () => await prompts([{\n type: 'text',\n name,\n initial,\n message,\n validate: validatePrompt(required, state, validate) as never,\n }] as never, {\n onCancel: () => process.exit(),\n }) as PromptResultValue<typeof name, TextType, TextType, typeof required>;\n return handle();\n});"],"mappings":";;AAAA,OAAO,aAAa;AACpB,OAAO,YAAY;AAEnB,OAAO,oBAAoB;AAoB3B,OAAO,aAAa,QAAQ,OAAO,MAAM,EAAE,SAAS,UAAU,SAAS,SAAS,GAAG,UAAU;AACzF,QAAM,SAAS,mCAAY,MAAM,QAAQ,CAAC;AAAA,IACtC,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU,eAAe,UAAU,OAAO,QAAQ;AAAA,EACpD,CAAC,GAAY;AAAA,IACX,UAAU,6BAAM,QAAQ,KAAK,GAAnB;AAAA,EACZ,CAAC,GARY;AASf,SAAO,OAAO;AAClB,CAAC;","names":[]}
|
package/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import Prompt from './Prompt.
|
|
2
|
-
export * from './prompts/index.
|
|
1
|
+
import Prompt from './Prompt.ts';
|
|
2
|
+
export * from './prompts/index.ts';
|
|
3
3
|
export type Promiseable<T> = Promise<T> | T;
|
|
4
4
|
export type Thunk<T> = T | (() => T);
|
|
5
5
|
export type ThunkPromiseable<T> = T | (() => T | Promiseable<T>);
|
package/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../types.ts"],"sourcesContent":["import Prompt from './Prompt.
|
|
1
|
+
{"version":3,"sources":["../types.ts"],"sourcesContent":["import Prompt from './Prompt.ts';\n\nexport * from './prompts/index.ts';\n\nexport type Promiseable<T> = Promise<T> | T;\nexport type Thunk<T> = T | (() => T);\nexport type ThunkPromiseable<T> = T | (() => T | Promiseable<T>);\nexport type ResolvePromise<T> = T extends PromiseLike<infer U> ? U : T;\nexport type StringKey<T> = Exclude<keyof T, symbol | number>;\nexport type BasePrompt<TName extends string, TValue, TState extends { [K in TName]?: any }, TInitial extends TValue | undefined = TValue | undefined, TRequired extends boolean = false, TSkip extends boolean = false> = {\n message: string |((state: TState) => Promiseable<string>);\n validate?: ValidateCallback<TValue, TState>; \n initial?: ((value: TValue | undefined, state: TState) => Promiseable<TInitial>) | (() => Promiseable<TInitial>) | TInitial,\n required?: TRequired | ((state: TState) => Promiseable<TRequired>),\n skip?: TSkip | ((state: TState) => Promiseable<TSkip>),\n}\n\nexport type PromptCallback<TState extends object, TOutputState extends object> = (state: TState) => Promiseable<TOutputState>;\n\nexport type PromptResultValue<TName extends string, TValue, TInitial extends TValue | undefined, TRequired extends boolean, TSkip extends boolean = false> = { [K in TName]: TSkip extends false ? TRequired extends true ? TValue : TValue | TInitial : TValue | TInitial };\n\nexport type PromptResult<TName extends string, TValue, TState extends object, TInitial extends TValue | undefined, TRequired extends boolean, TSkip extends boolean> = PromptResultValue<TName, TValue, TInitial, TRequired, TSkip> extends infer TResult\n ? Prompt<{ [K in keyof (Omit<TState, keyof TResult> & TResult)]: (Omit<TState, keyof TResult> & TResult)[K] }>\n : never;\n\nexport interface PromptTypeMap {};\n\nexport type PromptType = keyof PromptTypeMap;\n\nexport type PromptConfigInput<TType extends PromptType> = PromptTypeMap[TType] extends {\n (\n this: Prompt<any>,\n name: string,\n prompt: infer TInput\n ): PromptResult<string, any, any, any, boolean, boolean>\n} ? TInput : BasePrompt<string, any, any, boolean, boolean>;\n\nexport type ResolvePrompt<TType extends PromptType, TName extends string, TState extends { [K in TName]?: any }, TInitial extends PromptValue<TType> | undefined, TRequired extends boolean, TSkip extends boolean> = Omit<PromptConfigInput<TType>, 'message' | 'initial' | 'required' | 'skip'> & { message: string, initial: TInitial, required: TRequired, skip: TSkip };\n\nexport type PromptValue<TType extends PromptType> = ReturnType<PromptTypeMap[TType]> extends PromptResult<string, infer TValue, any, any, boolean, boolean> ? TValue : any;\n\nexport type PromptConfig<TType extends PromptType> = {\n <TName extends string, TState extends { [K in TName]?: PromptValue<TType> }, TInitial extends PromptValue<TType> | undefined, TRequired extends boolean, TSkip extends boolean>(name: TName, promptResult: ResolvePrompt<TType, TName, TState, TInitial, TRequired, TSkip>, state: TState): Promiseable<PromptResultValue<TName, PromptValue<TType>, TInitial, TRequired, TSkip>>\n}\n\nexport type ValidateCallback<T = any, TState extends object = any> = (value: T, state: TState) => Promiseable<true | string | false>;"],"mappings":"AAEA,cAAc;AAuBmB;","names":[]}
|
package/validatePrompt.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ValidateCallback } from './types.
|
|
1
|
+
import { ValidateCallback } from './types.ts';
|
|
2
2
|
declare function validatePrompt<T = any>(required: boolean, state: any, validate?: ValidateCallback<T>): (value: any) => Promise<string | true>;
|
|
3
3
|
export default validatePrompt;
|
|
4
4
|
//# sourceMappingURL=validatePrompt.d.ts.map
|
package/validatePrompt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../validatePrompt.ts"],"sourcesContent":["import { ValidateCallback } from './types.
|
|
1
|
+
{"version":3,"sources":["../validatePrompt.ts"],"sourcesContent":["import { ValidateCallback } from './types.ts';\n\nfunction validatePrompt<T = any>(required: boolean, state: any, validate?: ValidateCallback<T>) {\n return async (value: any) => {\n if (required && !(typeof value === 'string' ? value.trim() : value)) {\n return 'Invalid';\n }\n\n const result = await validate?.(value, state);\n\n if (result === false) {\n return 'Invalid input';\n }\n\n return result ?? true;\n };\n}\n\nexport default validatePrompt;"],"mappings":";;AAEA,SAAS,eAAwB,UAAmB,OAAY,UAAgC;AAC5F,SAAO,OAAO,UAAe;AACzB,QAAI,YAAY,EAAE,OAAO,UAAU,WAAW,MAAM,KAAK,IAAI,QAAQ;AACjE,aAAO;AAAA,IACX;AAEA,UAAM,SAAS,MAAM,WAAW,OAAO,KAAK;AAE5C,QAAI,WAAW,OAAO;AAClB,aAAO;AAAA,IACX;AAEA,WAAO,UAAU;AAAA,EACrB;AACJ;AAdS;AAgBT,IAAO,yBAAQ;","names":[]}
|