@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.
@@ -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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"}
@@ -2,3 +2,4 @@ export * from "./entities";
2
2
  export * from "./prompt-select-fuzzy";
3
3
  export { commandBase } from "./command-base";
4
4
  export * from "./mock-ui";
5
+ export * from "./fuzzy-search";
@@ -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":";;;AAeA,kFAAkF;AAClF,MAAa,sBAAsB;CAQlC;AARD,wDAQC;AAED,gFAAgF;AAChF,MAAa,oBAAqB,SAAQ,sBAAsB;CAG/D;AAHD,oDAGC"}
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>;
@@ -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":";;;;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,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;AA1HD,wBA0HC"}
1
+ {"version":3,"file":"mock-ui.js","sourceRoot":"","sources":["../../../src/ops/test/mock-ui.ts"],"names":[],"mappings":"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"}
@@ -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
- if (scope === "environment") {
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 !== "cabinet"); // ensure they select a cabinet
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 {