@codiac.io/codiac-cli 1.3.283 → 1.3.284
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 +174 -174
- package/dist/cli-common/built-in-cli-user-input.d.ts +3 -1
- package/dist/cli-common/built-in-cli-user-input.js +18 -0
- package/dist/cli-common/built-in-cli-user-input.js.map +1 -1
- package/dist/cli-common/fuzzy-search.d.ts +28 -0
- package/dist/cli-common/fuzzy-search.js +109 -0
- package/dist/cli-common/fuzzy-search.js.map +1 -0
- package/dist/cli-common/index.d.ts +1 -0
- package/dist/cli-common/index.js +1 -0
- package/dist/cli-common/index.js.map +1 -1
- package/dist/cli-common/mock-ui.d.ts +2 -1
- package/dist/cli-common/mock-ui.js +3 -0
- package/dist/cli-common/mock-ui.js.map +1 -1
- package/dist/ops/i-user-input-provider.d.ts +21 -0
- package/dist/ops/i-user-input-provider.js.map +1 -1
- package/dist/ops/test/mock-ui.d.ts +2 -1
- package/dist/ops/test/mock-ui.js +3 -0
- package/dist/ops/test/mock-ui.js.map +1 -1
- package/dist/ops/throwing-user-input-provider.d.ts +2 -1
- package/dist/ops/throwing-user-input-provider.js +3 -0
- package/dist/ops/throwing-user-input-provider.js.map +1 -1
- package/dist/uilogic/rootmap-ui-utils.d.ts +5 -1
- package/dist/uilogic/rootmap-ui-utils.js +24 -5
- package/dist/uilogic/rootmap-ui-utils.js.map +1 -1
- package/oclif.manifest.json +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as inquirer from 'inquirer';
|
|
2
|
-
import { IUserInputProvider, EntryValue, choice, FileSelectionOptions, FolderSelectionOptions, IEntryValidator, SelectOption, BooleanValidationResult } from "../ops";
|
|
2
|
+
import { IUserInputProvider, EntryValue, choice, FileSelectionOptions, FolderSelectionOptions, IEntryValidator, SelectOption, BooleanValidationResult, SearchOption, SearchPromptOptions } from "../ops";
|
|
3
3
|
/** Uses cli-ux and inquirer libraries to retrieve values from the user.
|
|
4
4
|
* Requires a TTY console.
|
|
5
5
|
* @see https://www.npmjs.com/package/inquirer
|
|
@@ -48,6 +48,8 @@ export declare class BuiltInCliUserInput implements IUserInputProvider {
|
|
|
48
48
|
promptConfirm(id: string, prompt: string, defaultValue?: boolean): Promise<boolean>;
|
|
49
49
|
promptSelect<T extends EntryValue>(id: string, prompt: string, choices: choice<T>[], multiSelect?: boolean | undefined, loop?: boolean | undefined, validator?: (input: T, answers?: inquirer.Answers | undefined) => boolean | string): Promise<T | undefined>;
|
|
50
50
|
promptSelectFuzzy<T>(id: string, prompt: string, fetchChoices: (searchString?: string) => Promise<SelectOption<T>[]>, suggestOnly?: boolean, defaultValue?: T, searchOnRemote?: boolean, validate?: (candidate: T) => BooleanValidationResult): Promise<T | undefined>;
|
|
51
|
+
/** Type-to-filter select backed by inquirer-autocomplete-prompt, ranked by the shared fuzzy matcher. */
|
|
52
|
+
promptSearch<T extends EntryValue>(id: string, prompt: string, choices: SearchOption<T>[], options?: SearchPromptOptions<T>): Promise<T | undefined>;
|
|
51
53
|
promptSelectMulti<T extends EntryValue>(id: string, prompt: string, choices: choice<T>[], loop?: boolean | undefined, validator?: (input: T, answers?: inquirer.Answers | undefined) => boolean | string): Promise<T[] | undefined>;
|
|
52
54
|
promptSelectFile(id: string, prompt: string, fileOptions: FileSelectionOptions): Promise<string>;
|
|
53
55
|
promptSelectFolder(id: string, prompt: string, folderOptions: FolderSelectionOptions): Promise<string>;
|
|
@@ -10,6 +10,7 @@ const autocomplete = require("inquirer-autocomplete-prompt");
|
|
|
10
10
|
const fuzzy = require("fuzzy");
|
|
11
11
|
const file_selector_1 = require("./file-selector");
|
|
12
12
|
const inversify_1 = require("inversify");
|
|
13
|
+
const fuzzy_search_1 = require("./fuzzy-search");
|
|
13
14
|
// // Moved to ops-common
|
|
14
15
|
// export class FolderSelectionOptions {
|
|
15
16
|
// /** The path under which the user is allowed to navigate (optional: Defaults to the current path).
|
|
@@ -322,6 +323,23 @@ let BuiltInCliUserInput = class BuiltInCliUserInput {
|
|
|
322
323
|
return entry;
|
|
323
324
|
});
|
|
324
325
|
}
|
|
326
|
+
/** Type-to-filter select backed by inquirer-autocomplete-prompt, ranked by the shared fuzzy matcher. */
|
|
327
|
+
promptSearch(id, prompt, choices, options) {
|
|
328
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
329
|
+
const inqChoices = choices.map(c => { var _a; return ({ name: c.name, value: c.value, searchText: (_a = c.searchText) !== null && _a !== void 0 ? _a : c.name }); });
|
|
330
|
+
const source = (_answers, input) => Promise.resolve((0, fuzzy_search_1.fuzzyFilter)(input, inqChoices, c => c.searchText).map(c => ({ name: c.name, value: c.value })));
|
|
331
|
+
// NB: FIXED answer key, never the caller's `id` (see ANSWER_KEY).
|
|
332
|
+
const question = { type: 'autocomplete', name: ANSWER_KEY, message: prompt, source, emptyText: 'No matches' };
|
|
333
|
+
if ((options === null || options === void 0 ? void 0 : options.defaultValue) !== undefined)
|
|
334
|
+
question.default = options.defaultValue;
|
|
335
|
+
if ((options === null || options === void 0 ? void 0 : options.pageSize) !== undefined)
|
|
336
|
+
question.pageSize = options.pageSize;
|
|
337
|
+
if ((options === null || options === void 0 ? void 0 : options.loop) !== undefined)
|
|
338
|
+
question.loop = options.loop;
|
|
339
|
+
const result = yield this.inquirerPrompt(question);
|
|
340
|
+
return result[ANSWER_KEY];
|
|
341
|
+
});
|
|
342
|
+
}
|
|
325
343
|
// TODO: Add param for FuzzyAutoSelect
|
|
326
344
|
promptSelectMulti(id, prompt, choices, loop, validator) {
|
|
327
345
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"built-in-cli-user-input.js","sourceRoot":"","sources":["../../src/cli-common/built-in-cli-user-input.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"built-in-cli-user-input.js","sourceRoot":"","sources":["../../src/cli-common/built-in-cli-user-input.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** Client-side fuzzy matching and ranking for type-to-filter select prompts.
|
|
2
|
+
*
|
|
3
|
+
* Pure functions (no I/O, no prompt library) so any large pick-list — cabinets, assets,
|
|
4
|
+
* environments — can share one matcher and it can be unit-tested in isolation.
|
|
5
|
+
*
|
|
6
|
+
* Matching rules (all case-insensitive, ANSI styling ignored):
|
|
7
|
+
* - The query is split on whitespace; EVERY token must match the text (AND semantics),
|
|
8
|
+
* so "hotfix pdf" narrows to rows containing both.
|
|
9
|
+
* - A token matches when its characters appear in order in the text (subsequence match).
|
|
10
|
+
* - Ranking, best first: exact match > prefix > substring starting at a word boundary
|
|
11
|
+
* > other contiguous substring > scattered subsequence (tighter runs rank higher).
|
|
12
|
+
* - Ties keep the original list order, so an empty or equally-good query preserves the
|
|
13
|
+
* caller's ordering (eg: environment grouping).
|
|
14
|
+
*/
|
|
15
|
+
/** Removes ANSI styling from a label. */
|
|
16
|
+
export declare function stripAnsi(text: string): string;
|
|
17
|
+
/** Scores how well `query` fuzzy-matches `text`.
|
|
18
|
+
*
|
|
19
|
+
* @returns `undefined` when it does not match; otherwise a score where higher is better.
|
|
20
|
+
* An empty/whitespace-only query matches everything with a score of 0.
|
|
21
|
+
*/
|
|
22
|
+
export declare function fuzzyScore(query: string | undefined, text: string): number | undefined;
|
|
23
|
+
/** Filters `items` to those matching `query` and orders them best-match first (stable).
|
|
24
|
+
* An empty query returns every item in its original order.
|
|
25
|
+
*
|
|
26
|
+
* @param extract Returns the searchable text for an item (ANSI styling is ignored).
|
|
27
|
+
*/
|
|
28
|
+
export declare function fuzzyFilter<T>(query: string | undefined, items: T[], extract: (item: T) => string): T[];
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/** Client-side fuzzy matching and ranking for type-to-filter select prompts.
|
|
3
|
+
*
|
|
4
|
+
* Pure functions (no I/O, no prompt library) so any large pick-list — cabinets, assets,
|
|
5
|
+
* environments — can share one matcher and it can be unit-tested in isolation.
|
|
6
|
+
*
|
|
7
|
+
* Matching rules (all case-insensitive, ANSI styling ignored):
|
|
8
|
+
* - The query is split on whitespace; EVERY token must match the text (AND semantics),
|
|
9
|
+
* so "hotfix pdf" narrows to rows containing both.
|
|
10
|
+
* - A token matches when its characters appear in order in the text (subsequence match).
|
|
11
|
+
* - Ranking, best first: exact match > prefix > substring starting at a word boundary
|
|
12
|
+
* > other contiguous substring > scattered subsequence (tighter runs rank higher).
|
|
13
|
+
* - Ties keep the original list order, so an empty or equally-good query preserves the
|
|
14
|
+
* caller's ordering (eg: environment grouping).
|
|
15
|
+
*/
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.fuzzyFilter = exports.fuzzyScore = exports.stripAnsi = void 0;
|
|
18
|
+
/** Matches ANSI escape sequences (colors/dim/bold) so styled labels match on their visible text. */
|
|
19
|
+
const ANSI_PATTERN = /\u001b\[[0-9;]*m/g;
|
|
20
|
+
const SCORE_EXACT = 1000;
|
|
21
|
+
const SCORE_PREFIX = 800;
|
|
22
|
+
const SCORE_WORD_BOUNDARY = 600;
|
|
23
|
+
const SCORE_SUBSTRING = 400;
|
|
24
|
+
/** Subsequence scores are clamped below every contiguous tier. */
|
|
25
|
+
const SCORE_SUBSEQUENCE_MAX = SCORE_SUBSTRING - 1;
|
|
26
|
+
const SCORE_SUBSEQUENCE_BASE = 100;
|
|
27
|
+
/** Removes ANSI styling from a label. */
|
|
28
|
+
function stripAnsi(text) {
|
|
29
|
+
return text.replace(ANSI_PATTERN, "");
|
|
30
|
+
}
|
|
31
|
+
exports.stripAnsi = stripAnsi;
|
|
32
|
+
function isWordBoundary(text, index) {
|
|
33
|
+
if (index <= 0)
|
|
34
|
+
return true;
|
|
35
|
+
return !/[a-z0-9]/i.test(text.charAt(index - 1));
|
|
36
|
+
}
|
|
37
|
+
/** Scores one (already lower-cased, non-empty) token against lower-cased text.
|
|
38
|
+
* @returns undefined when the token is not a subsequence of the text. */
|
|
39
|
+
function scoreToken(token, text) {
|
|
40
|
+
if (text === token)
|
|
41
|
+
return SCORE_EXACT;
|
|
42
|
+
// Contiguous matches: prefer the earliest word-boundary occurrence over a mid-word one.
|
|
43
|
+
let firstIndex = text.indexOf(token);
|
|
44
|
+
if (firstIndex === 0)
|
|
45
|
+
return SCORE_PREFIX;
|
|
46
|
+
if (firstIndex > 0) {
|
|
47
|
+
for (let i = firstIndex; i >= 0; i = text.indexOf(token, i + 1)) {
|
|
48
|
+
if (isWordBoundary(text, i))
|
|
49
|
+
return SCORE_WORD_BOUNDARY;
|
|
50
|
+
}
|
|
51
|
+
return SCORE_SUBSTRING;
|
|
52
|
+
}
|
|
53
|
+
// Subsequence: greedy left-to-right, rewarding consecutive runs and word-boundary hits,
|
|
54
|
+
// penalizing the gaps between matched characters.
|
|
55
|
+
let score = SCORE_SUBSEQUENCE_BASE;
|
|
56
|
+
let textIdx = 0;
|
|
57
|
+
let prevMatch = -1;
|
|
58
|
+
for (const ch of token) {
|
|
59
|
+
const found = text.indexOf(ch, textIdx);
|
|
60
|
+
if (found < 0)
|
|
61
|
+
return undefined;
|
|
62
|
+
if (prevMatch >= 0 && found === prevMatch + 1)
|
|
63
|
+
score += 10;
|
|
64
|
+
if (isWordBoundary(text, found))
|
|
65
|
+
score += 5;
|
|
66
|
+
if (prevMatch >= 0)
|
|
67
|
+
score -= (found - prevMatch - 1);
|
|
68
|
+
prevMatch = found;
|
|
69
|
+
textIdx = found + 1;
|
|
70
|
+
}
|
|
71
|
+
return Math.max(1, Math.min(SCORE_SUBSEQUENCE_MAX, score));
|
|
72
|
+
}
|
|
73
|
+
/** Scores how well `query` fuzzy-matches `text`.
|
|
74
|
+
*
|
|
75
|
+
* @returns `undefined` when it does not match; otherwise a score where higher is better.
|
|
76
|
+
* An empty/whitespace-only query matches everything with a score of 0.
|
|
77
|
+
*/
|
|
78
|
+
function fuzzyScore(query, text) {
|
|
79
|
+
const tokens = (query !== null && query !== void 0 ? query : "").toLowerCase().split(/\s+/).filter(t => t.length > 0);
|
|
80
|
+
if (tokens.length === 0)
|
|
81
|
+
return 0;
|
|
82
|
+
const haystack = stripAnsi(text).toLowerCase();
|
|
83
|
+
let total = 0;
|
|
84
|
+
for (const token of tokens) {
|
|
85
|
+
const s = scoreToken(token, haystack);
|
|
86
|
+
if (s === undefined)
|
|
87
|
+
return undefined;
|
|
88
|
+
total += s;
|
|
89
|
+
}
|
|
90
|
+
return total;
|
|
91
|
+
}
|
|
92
|
+
exports.fuzzyScore = fuzzyScore;
|
|
93
|
+
/** Filters `items` to those matching `query` and orders them best-match first (stable).
|
|
94
|
+
* An empty query returns every item in its original order.
|
|
95
|
+
*
|
|
96
|
+
* @param extract Returns the searchable text for an item (ANSI styling is ignored).
|
|
97
|
+
*/
|
|
98
|
+
function fuzzyFilter(query, items, extract) {
|
|
99
|
+
const scored = [];
|
|
100
|
+
items.forEach((item, index) => {
|
|
101
|
+
const score = fuzzyScore(query, extract(item));
|
|
102
|
+
if (score !== undefined)
|
|
103
|
+
scored.push({ item, score, index });
|
|
104
|
+
});
|
|
105
|
+
scored.sort((a, b) => (b.score - a.score) || (a.index - b.index));
|
|
106
|
+
return scored.map(s => s.item);
|
|
107
|
+
}
|
|
108
|
+
exports.fuzzyFilter = fuzzyFilter;
|
|
109
|
+
//# sourceMappingURL=fuzzy-search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fuzzy-search.js","sourceRoot":"","sources":["../../src/cli-common/fuzzy-search.ts"],"names":[],"mappings":"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"}
|
package/dist/cli-common/index.js
CHANGED
|
@@ -8,4 +8,5 @@ var command_base_1 = require("./command-base");
|
|
|
8
8
|
Object.defineProperty(exports, "commandBase", { enumerable: true, get: function () { return command_base_1.commandBase; } });
|
|
9
9
|
// export {TenantContextualizer} from "./tenant-contextualizer";
|
|
10
10
|
tslib_1.__exportStar(require("./mock-ui"), exports);
|
|
11
|
+
tslib_1.__exportStar(require("./fuzzy-search"), exports);
|
|
11
12
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli-common/index.ts"],"names":[],"mappings":";;;;AAAA,qDAA2B;AAC3B,gEAAsC;AACtC,+CAA2C;AAAnC,2GAAA,WAAW,OAAA;AACnB,gEAAgE;AAChE,oDAA0B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli-common/index.ts"],"names":[],"mappings":";;;;AAAA,qDAA2B;AAC3B,gEAAsC;AACtC,+CAA2C;AAAnC,2GAAA,WAAW,OAAA;AACnB,gEAAgE;AAChE,oDAA0B;AAAA,yDAA+B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EntryValue, choice, IUserInputProvider, IOutputStyler, SelectOption, BooleanValidationResult } from "../ops";
|
|
1
|
+
import { EntryValue, choice, IUserInputProvider, IOutputStyler, SelectOption, BooleanValidationResult, SearchOption, SearchPromptOptions } from "../ops";
|
|
2
2
|
import { FileSelectionOptions, FolderSelectionOptions } from "../ops";
|
|
3
3
|
export declare class MockUi implements IUserInputProvider, IOutputStyler {
|
|
4
4
|
constructor();
|
|
@@ -16,6 +16,7 @@ export declare class MockUi implements IUserInputProvider, IOutputStyler {
|
|
|
16
16
|
promptConfirm(id: string, prompt: string, defaultValue?: boolean | undefined): Promise<boolean>;
|
|
17
17
|
promptSelect<T extends EntryValue>(id: string, prompt: string, choices: choice<T>[], multiSelect?: boolean | undefined): Promise<T | undefined>;
|
|
18
18
|
promptSelectFuzzy<T>(id: string, prompt: string, fetchChoices: (searchString?: string) => Promise<SelectOption<T>[]>, suggestOnly?: boolean, defaultValue?: T, searchOnRemote?: boolean, validate?: (candidate: T) => BooleanValidationResult): Promise<T | undefined>;
|
|
19
|
+
promptSearch<T extends EntryValue>(id: string, prompt: string, choices: SearchOption<T>[], options?: SearchPromptOptions<T>): Promise<T | undefined>;
|
|
19
20
|
promptSelectMulti<T extends EntryValue>(id: string, prompt: string, choices: choice<T>[], loop?: boolean): Promise<T[] | undefined>;
|
|
20
21
|
promptSelectFile(id: string, prompt: string, fileOptions: FileSelectionOptions): Promise<string>;
|
|
21
22
|
promptSelectFolder(id: string, prompt: string, folderOptions: FolderSelectionOptions): Promise<string>;
|
|
@@ -69,6 +69,9 @@ class MockUi {
|
|
|
69
69
|
promptSelectFuzzy(id, prompt, fetchChoices, suggestOnly, defaultValue, searchOnRemote, validate) {
|
|
70
70
|
return this.getValue(id);
|
|
71
71
|
}
|
|
72
|
+
promptSearch(id, prompt, choices, options) {
|
|
73
|
+
return this.getValue(id);
|
|
74
|
+
}
|
|
72
75
|
promptSelectMulti(id, prompt, choices, loop) {
|
|
73
76
|
return this.getArrayValue(id);
|
|
74
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-ui.js","sourceRoot":"","sources":["../../src/cli-common/mock-ui.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"mock-ui.js","sourceRoot":"","sources":["../../src/cli-common/mock-ui.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,20 @@ export type SelectOption<T> = {
|
|
|
10
10
|
};
|
|
11
11
|
/** Return type for fuzzy-select validation callbacks. */
|
|
12
12
|
export type BooleanValidationResult = boolean | ValidationResult;
|
|
13
|
+
/** A choice for a type-to-filter search prompt.
|
|
14
|
+
* `searchText` (optional) is the plain text the user's query is matched against; defaults to `name`. */
|
|
15
|
+
export type SearchOption<T> = SelectOption<T> & {
|
|
16
|
+
searchText?: string;
|
|
17
|
+
};
|
|
18
|
+
/** Optional behavior for a type-to-filter search prompt. */
|
|
19
|
+
export type SearchPromptOptions<T> = {
|
|
20
|
+
/** Value of the choice to pre-highlight (optional). */
|
|
21
|
+
defaultValue?: T;
|
|
22
|
+
/** Number of rows rendered at once (optional). */
|
|
23
|
+
pageSize?: number;
|
|
24
|
+
/** Setting to false disables circular scrolling through the choices (optional, defaults to true). */
|
|
25
|
+
loop?: boolean;
|
|
26
|
+
};
|
|
13
27
|
export type choice<T extends EntryValue> = T | {
|
|
14
28
|
name: string;
|
|
15
29
|
value?: T;
|
|
@@ -63,6 +77,13 @@ export interface IUserInputProvider {
|
|
|
63
77
|
* @param validate Optional callback to validate the selected value; return `true` / `false` or a `ValidationResult`.
|
|
64
78
|
*/
|
|
65
79
|
promptSelectFuzzy<T>(id: string, prompt: string, fetchChoices: (searchString?: string) => Promise<SelectOption<T>[]>, suggestOnly?: boolean, defaultValue?: T, searchOnRemote?: boolean, validate?: (candidate: T) => BooleanValidationResult): Promise<T | undefined>;
|
|
80
|
+
/**
|
|
81
|
+
* Prompts the user to pick one choice from a (potentially very long) list, narrowing it as they type.
|
|
82
|
+
* Matching is client-side, case-insensitive, subsequence-based, and ranked best-first; an empty
|
|
83
|
+
* query shows every choice in the given order. Returns the selected choice's `value`.
|
|
84
|
+
* @param id Identifies the prompt for internal use, esp in mocking. This value never renders to the user.
|
|
85
|
+
*/
|
|
86
|
+
promptSearch<T extends EntryValue>(id: string, prompt: string, choices: SearchOption<T>[], options?: SearchPromptOptions<T>): Promise<T | undefined>;
|
|
66
87
|
/** Enables the user to retrieves a reference to a single existing file on the local machine.
|
|
67
88
|
* @param id Identifies the prompt for internal use, esp in mocking. This value never renders to the user. */
|
|
68
89
|
promptSelectFile(id: string, prompt: string, fileOptions: FileSelectionOptions): Promise<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i-user-input-provider.js","sourceRoot":"","sources":["../../src/ops/i-user-input-provider.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"i-user-input-provider.js","sourceRoot":"","sources":["../../src/ops/i-user-input-provider.ts"],"names":[],"mappings":";;;AA6BA,kFAAkF;AAClF,MAAa,sBAAsB;CAQlC;AARD,wDAQC;AAED,gFAAgF;AAChF,MAAa,oBAAqB,SAAQ,sBAAsB;CAG/D;AAHD,oDAGC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EntryValue, IUserInputProvider, choice, IOutputStyler, FileSelectionOptions, FolderSelectionOptions, SelectOption, BooleanValidationResult } from '../';
|
|
1
|
+
import { EntryValue, IUserInputProvider, choice, IOutputStyler, FileSelectionOptions, FolderSelectionOptions, SelectOption, BooleanValidationResult, SearchOption, SearchPromptOptions } from '../';
|
|
2
2
|
export declare class MockUi implements IUserInputProvider, IOutputStyler {
|
|
3
3
|
constructor();
|
|
4
4
|
private values;
|
|
@@ -13,6 +13,7 @@ export declare class MockUi implements IUserInputProvider, IOutputStyler {
|
|
|
13
13
|
prompt<T extends EntryValue>(id: string, prompt: string, required?: boolean | undefined, defaultValue?: T | undefined): Promise<T | undefined>;
|
|
14
14
|
promptPassword(id: string, prompt: string): Promise<string>;
|
|
15
15
|
promptSelect<T extends EntryValue>(id: string, prompt: string, choices: choice<T>[], multiSelect?: boolean | undefined): Promise<T | undefined>;
|
|
16
|
+
promptSearch<T extends EntryValue>(id: string, prompt: string, choices: SearchOption<T>[], options?: SearchPromptOptions<T>): Promise<T | undefined>;
|
|
16
17
|
promptSelectMulti<T extends EntryValue>(id: string, prompt: string, choices: choice<T>[], loop?: boolean): Promise<T[] | undefined>;
|
|
17
18
|
promptSelectFuzzy<T>(id: string, prompt: string, fetchChoices: (searchString?: string) => Promise<SelectOption<T>[]>, suggestOnly?: boolean, defaultValue?: T, searchOnRemote?: boolean, validate?: (candidate: T) => BooleanValidationResult): Promise<T | undefined>;
|
|
18
19
|
promptSelectFile(id: string, prompt: string, fileOptions: FileSelectionOptions): Promise<string>;
|
package/dist/ops/test/mock-ui.js
CHANGED
|
@@ -68,6 +68,9 @@ class MockUi {
|
|
|
68
68
|
promptSelect(id, prompt, choices, multiSelect) {
|
|
69
69
|
return this.getValue(id);
|
|
70
70
|
}
|
|
71
|
+
promptSearch(id, prompt, choices, options) {
|
|
72
|
+
return this.getValue(id);
|
|
73
|
+
}
|
|
71
74
|
promptSelectMulti(id, prompt, choices, loop) {
|
|
72
75
|
return this.getArrayValue(id);
|
|
73
76
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-ui.js","sourceRoot":"","sources":["../../../src/ops/test/mock-ui.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"mock-ui.js","sourceRoot":"","sources":["../../../src/ops/test/mock-ui.ts"],"names":[],"mappings":";;;;AAGA,qDAAqD;AACrD,EAAE;AACF,oDAAoD;AACpD,EAAE;AACF,qDAAqD;AAGrD,MAAa,MAAM;IACjB;QAIQ,WAAM,GAAgD,EAAE,CAAA;QACzD,cAAS,GAAwD,EAAE,CAAA;IAH1E,CAAC;IAMM,QAAQ,CAAC,EAAU,EAAE,KAAgC;QAC1D,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;IAC1B,CAAC;IAEO,QAAQ,CAAuB,EAAU;QAC/C,OAAO,IAAI,OAAO,CAAI,CAAO,OAAO,EAAE,MAAM,EAAE,EAAE;YAC9C,IAAI;gBACF,IAAI,QAAW,CAAC;gBAChB,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;oBACnB,QAAQ,GAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;iBAC/B;qBAAM;oBACL,MAAM,IAAI,KAAK,CAAC,yEAAyE,EAAE,mDAAmD,CAAC,CAAC;iBACjJ;gBACD,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC;gBAC9B,OAAO,CAAC,QAAQ,CAAC,CAAC;aACnB;YAAC,OAAO,GAAG,EAAE;gBACZ,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;gBACzB,MAAM,CAAC,GAAG,CAAC,CAAC;aACb;QACH,CAAC,CAAA,CAAC,CAAC;IACL,CAAC;IAEO,aAAa,CAAuB,EAAU;QACpD,OAAO,IAAI,OAAO,CAAM,CAAO,OAAO,EAAE,MAAM,EAAE,EAAE;YAChD,IAAI;gBACF,IAAI,QAAa,CAAC;gBAClB,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;oBACnB,QAAQ,GAAQ,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;iBACjC;qBAAM;oBACL,MAAM,IAAI,KAAK,CAAC,yEAAyE,EAAE,mDAAmD,CAAC,CAAC;iBACjJ;gBACD,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC;gBAC9B,OAAO,CAAC,QAAQ,CAAC,CAAC;aACnB;YAAC,OAAO,GAAG,EAAE;gBACZ,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;gBACzB,MAAM,CAAC,GAAG,CAAC,CAAC;aACb;QACH,CAAC,CAAA,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,OAAe;QACzB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IAED,UAAU,CAAC,OAAe;QACxB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,MAAM,CAAuB,EAAU,EAAE,MAAc,EAAE,QAA8B,EAAE,YAA4B;QACnH,OAAO,IAAI,CAAC,QAAQ,CAAI,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,cAAc,CAAC,EAAU,EAAE,MAAc;QACvC,OAAO,IAAI,CAAC,QAAQ,CAAS,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,YAAY,CAAuB,EAAU,EAAE,MAAc,EAAE,OAAoB,EAAE,WAAiC;QACpH,OAAO,IAAI,CAAC,QAAQ,CAAI,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,YAAY,CAAuB,EAAU,EAAE,MAAc,EAAE,OAA0B,EAAE,OAAgC;QACzH,OAAO,IAAI,CAAC,QAAQ,CAAI,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,iBAAiB,CAAuB,EAAU,EAAE,MAAc,EAAE,OAAoB,EAAE,IAAc;QACtG,OAAO,IAAI,CAAC,aAAa,CAAI,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,iBAAiB,CAAI,EAAU,EAAE,MAAc,EAAE,YAAmE,EAAE,WAAqB,EAAE,YAAgB,EAAE,cAAwB,EAAE,QAAoD;QAC3O,OAAO,IAAI,CAAC,QAAQ,CAAS,EAAE,CAAsC,CAAC;IACxE,CAAC;IAED,gBAAgB,CAAC,EAAU,EAAE,MAAc,EAAE,WAAiC;QAC5E,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,kBAAkB,CAAC,EAAU,EAAE,MAAc,EAAE,aAAqC;QAClF,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,aAAa,CAAC,EAAU,EAAE,MAAc,EAAE,YAAsB;QAC9D,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,CAAC,GAAW;QACjB,OAAO,IAAI,OAAO,CAAO,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,sCAAsC,GAAG,IAAI,CAAC,CAAC,CAAC;IAC7F,CAAC;IAED,YAAY,CAAC,WAAmB;QAC9B,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAChC,CAAC;IACD,WAAW,CAAC,WAAmB;QAC7B,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAChC,CAAC;IAGD,wBAAwB;IAExB,IAAI,CAAC,OAAe;QAClB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,GAAG,CAAC,OAAe;QACjB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,CAAC,OAAe;QACpB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,SAAS,CAAC,OAAe;QACvB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,YAAY,CAAC,OAAe;QAC1B,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,aAAa,CAAC,OAAe;QAC3B,OAAO,OAAO,CAAC;IACjB,CAAC;CAEF;AA9HD,wBA8HC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "reflect-metadata";
|
|
2
2
|
import { IBetterLogger } from "@codiac.io/codiac-common/IBetterLogger";
|
|
3
|
-
import { EntryValue, choice, IUserInputProvider, FileSelectionOptions, FolderSelectionOptions, SelectOption, BooleanValidationResult } from "./i-user-input-provider";
|
|
3
|
+
import { EntryValue, choice, IUserInputProvider, FileSelectionOptions, FolderSelectionOptions, SelectOption, BooleanValidationResult, SearchOption, SearchPromptOptions } from "./i-user-input-provider";
|
|
4
4
|
/** For use in a non-TTY scenario: Throws on any request for user interaction.
|
|
5
5
|
*/
|
|
6
6
|
export declare class ThrowingUserInputProvider implements IUserInputProvider {
|
|
@@ -19,6 +19,7 @@ export declare class ThrowingUserInputProvider implements IUserInputProvider {
|
|
|
19
19
|
promptSelect<T extends EntryValue>(id: string, prompt: string, choices: choice<T>[], multiSelect?: boolean, loop?: boolean): Promise<T | undefined>;
|
|
20
20
|
promptSelectMulti<T extends EntryValue>(id: string, prompt: string, choices: choice<T>[], loop?: boolean): Promise<T[] | undefined>;
|
|
21
21
|
promptSelectFuzzy<T>(id: string, prompt: string, fetchChoices: (searchString?: string) => Promise<SelectOption<T>[]>, suggestOnly?: boolean, defaultValue?: T, searchOnRemote?: boolean, validate?: (candidate: T) => BooleanValidationResult): Promise<T | undefined>;
|
|
22
|
+
promptSearch<T extends EntryValue>(id: string, prompt: string, choices: SearchOption<T>[], options?: SearchPromptOptions<T>): Promise<T | undefined>;
|
|
22
23
|
promptSelectFile(id: string, prompt: string, fileOptions: FileSelectionOptions): Promise<string>;
|
|
23
24
|
promptSelectFolder(id: string, prompt: string, folderOptions: FolderSelectionOptions): Promise<string>;
|
|
24
25
|
promptConfirm(id: string, prompt: string, defaultValue?: boolean): Promise<boolean>;
|
|
@@ -65,6 +65,9 @@ let ThrowingUserInputProvider = class ThrowingUserInputProvider {
|
|
|
65
65
|
promptSelectFuzzy(id, prompt, fetchChoices, suggestOnly, defaultValue, searchOnRemote, validate) {
|
|
66
66
|
throw new Error(`Cannot acquire input [id: ${id}]: this cli command disabled all user input.`);
|
|
67
67
|
}
|
|
68
|
+
promptSearch(id, prompt, choices, options) {
|
|
69
|
+
throw new Error(`Cannot acquire input [id: ${id}]: this cli command disabled all user input.`);
|
|
70
|
+
}
|
|
68
71
|
promptSelectFile(id, prompt, fileOptions) {
|
|
69
72
|
throw new Error(`Cannot acquire input [id: ${id}]: this cli command disabled all user input.`);
|
|
70
73
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"throwing-user-input-provider.js","sourceRoot":"","sources":["../../src/ops/throwing-user-input-provider.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"throwing-user-input-provider.js","sourceRoot":"","sources":["../../src/ops/throwing-user-input-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { IBetterLogger } from "@codiac.io/codiac-common";
|
|
2
2
|
import { AtLeast } from '@codiac.io/codiac-common/contracts';
|
|
3
|
-
import { IOutputStyler, IUserInputProvider } from "../ops";
|
|
3
|
+
import { IOutputStyler, IUserInputProvider, SearchOption } from "../ops";
|
|
4
4
|
import { PromptChoice } from "../cli-common";
|
|
5
5
|
import { RootMap, EnterpriseRoot, EnvironmentRoot, CabinetClusterRoot, AssetTypesEnum, ClusterWithIngress, Asset, ClusterDef, CloudProviderEnum } from "../apis/codiac-api/contracts";
|
|
6
6
|
export type TextValueParent = {
|
|
@@ -58,6 +58,10 @@ export declare class RootMapUiUtils {
|
|
|
58
58
|
* @param takeDefaults (optional, defaults to false) suppresses confirmation of default values when user has not provided any (but NOT when the user-supplied values were invalid and automatically CHANGED to a default).
|
|
59
59
|
*/
|
|
60
60
|
promptForCabinet(enterprise: string, rootMap: RootMap, defaultValue?: string | undefined, takeDefaults?: boolean, embellisher?: ICabinetTreeEmbellisher, userSuppliedValue?: string): Promise<[CabinetClusterRoot, string]>;
|
|
61
|
+
/** Flattens a cabinet tree (from buildCabinetTree / buildInfrxCabinetList) into searchable choices:
|
|
62
|
+
* one per cabinet, labelled "<environment> / <cabinet text>" so matches stay unambiguous without the tree.
|
|
63
|
+
* Each value is the cabinet branch's original value ("cabinet|<name>|<isLocal>"). */
|
|
64
|
+
buildCabinetSearchChoices(tree: TextValueParent[], environmentName?: string): SearchOption<string>[];
|
|
61
65
|
/** Returns an embellisher that appends the cabinet's assigned cluster name, provider, and location dimmed in parentheses. */
|
|
62
66
|
clusterLabelEmbellisher(): ICabinetTreeEmbellisher;
|
|
63
67
|
deriveEnvironmentFrom(enterprise: string, cabinet: string, rootMap: RootMap): EnvironmentRoot;
|
|
@@ -120,6 +120,7 @@ let RootMapUiUtils = class RootMapUiUtils {
|
|
|
120
120
|
* @param takeDefaults (optional, defaults to false) suppresses confirmation of default values when user has not provided any (but NOT when the user-supplied values were invalid and automatically CHANGED to a default).
|
|
121
121
|
*/
|
|
122
122
|
promptForCabinet(enterprise, rootMap, defaultValue, takeDefaults = false, embellisher, userSuppliedValue) {
|
|
123
|
+
var _a;
|
|
123
124
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
124
125
|
try {
|
|
125
126
|
let defaultCabName;
|
|
@@ -171,17 +172,18 @@ let RootMapUiUtils = class RootMapUiUtils {
|
|
|
171
172
|
selectedCabName = defaultCabName; // assertion ok bc defaultCabName travels w defaultValue
|
|
172
173
|
}
|
|
173
174
|
else {
|
|
175
|
+
// Type-to-filter: enterprises can have hundreds of cabinets, so the user narrows the list by typing.
|
|
176
|
+
// Only cabinet rows are offered (labelled "<environment> / <cabinet>"), so the value is always a cabinet choice.
|
|
177
|
+
const searchChoices = this.buildCabinetSearchChoices(cabTree);
|
|
178
|
+
const searchPrompt = (isInfrxEnterprise ? "Cluster" : "Cabinet").concat(" ", this.styler.dim("(type to filter)"), ": ");
|
|
174
179
|
let scope;
|
|
175
180
|
let target;
|
|
176
181
|
do {
|
|
177
|
-
|
|
178
|
-
// we could just filter it down from here...
|
|
179
|
-
}
|
|
180
|
-
let selection = (yield this._ui.promptSelect("cabinet", prompt, choices, false, false));
|
|
182
|
+
let selection = (_a = (yield this._ui.promptSearch("cabinet", searchPrompt, searchChoices, { loop: false }))) !== null && _a !== void 0 ? _a : "";
|
|
181
183
|
let parts = selection.split("|");
|
|
182
184
|
scope = parts[0];
|
|
183
185
|
target = parts[1];
|
|
184
|
-
} while (scope !==
|
|
186
|
+
} while (scope !== contracts_1.ScopeLevel.cabinet); // ensure they select a cabinet
|
|
185
187
|
selectedCabName = target;
|
|
186
188
|
}
|
|
187
189
|
let env = this.deriveEnvironmentFrom(enterprise, selectedCabName, rootMap); // this is fkng stupid. Put this value into the cab value
|
|
@@ -194,6 +196,23 @@ let RootMapUiUtils = class RootMapUiUtils {
|
|
|
194
196
|
}
|
|
195
197
|
});
|
|
196
198
|
}
|
|
199
|
+
/** Flattens a cabinet tree (from buildCabinetTree / buildInfrxCabinetList) into searchable choices:
|
|
200
|
+
* one per cabinet, labelled "<environment> / <cabinet text>" so matches stay unambiguous without the tree.
|
|
201
|
+
* Each value is the cabinet branch's original value ("cabinet|<name>|<isLocal>"). */
|
|
202
|
+
buildCabinetSearchChoices(tree, environmentName) {
|
|
203
|
+
const choices = [];
|
|
204
|
+
for (const branch of tree) {
|
|
205
|
+
const [scope, target] = branch.value.split("|");
|
|
206
|
+
if (scope === contracts_1.ScopeLevel.cabinet) {
|
|
207
|
+
const name = environmentName ? `${environmentName} / ${branch.text}` : branch.text;
|
|
208
|
+
choices.push({ name, value: branch.value });
|
|
209
|
+
}
|
|
210
|
+
if (branch.children) {
|
|
211
|
+
choices.push(...this.buildCabinetSearchChoices(branch.children, (scope === contracts_1.ScopeLevel.environment) ? target : environmentName));
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
return choices;
|
|
215
|
+
}
|
|
197
216
|
/** Returns an embellisher that appends the cabinet's assigned cluster name, provider, and location dimmed in parentheses. */
|
|
198
217
|
clusterLabelEmbellisher() {
|
|
199
218
|
return {
|