@rushstack/ts-command-line 4.10.1 → 4.10.2
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/CHANGELOG.json +12 -0
- package/CHANGELOG.md +6 -1
- package/dist/tsdoc-metadata.json +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/providers/CommandLineParameterProvider.js +1 -1
- package/lib/providers/CommandLineParserExitError.js +1 -1
- package/lib/providers/TabCompletionAction.js +1 -1
- package/lib/providers/TabCompletionAction.js.map +1 -1
- package/package.json +4 -4
package/CHANGELOG.json
CHANGED
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rushstack/ts-command-line",
|
|
3
3
|
"entries": [
|
|
4
|
+
{
|
|
5
|
+
"version": "4.10.2",
|
|
6
|
+
"tag": "@rushstack/ts-command-line_v4.10.2",
|
|
7
|
+
"date": "Wed, 13 Oct 2021 15:09:54 GMT",
|
|
8
|
+
"comments": {
|
|
9
|
+
"dependency": [
|
|
10
|
+
{
|
|
11
|
+
"comment": "Updating dependency \"@rushstack/eslint-config\" to `2.4.3`"
|
|
12
|
+
}
|
|
13
|
+
]
|
|
14
|
+
}
|
|
15
|
+
},
|
|
4
16
|
{
|
|
5
17
|
"version": "4.10.1",
|
|
6
18
|
"tag": "@rushstack/ts-command-line_v4.10.1",
|
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
# Change Log - @rushstack/ts-command-line
|
|
2
2
|
|
|
3
|
-
This log was last generated on
|
|
3
|
+
This log was last generated on Wed, 13 Oct 2021 15:09:54 GMT and should not be manually modified.
|
|
4
|
+
|
|
5
|
+
## 4.10.2
|
|
6
|
+
Wed, 13 Oct 2021 15:09:54 GMT
|
|
7
|
+
|
|
8
|
+
_Version update only_
|
|
4
9
|
|
|
5
10
|
## 4.10.1
|
|
6
11
|
Thu, 07 Oct 2021 07:13:35 GMT
|
package/dist/tsdoc-metadata.json
CHANGED
package/lib/index.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
|
|
3
3
|
// See LICENSE in the project root for license information.
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.CommandLineHelper = exports.DynamicCommandLineParser = exports.DynamicCommandLineAction = exports.CommandLineParser = exports.CommandLineParameterProvider = exports.CommandLineRemainder = exports.CommandLineChoiceListParameter = exports.CommandLineChoiceParameter = exports.CommandLineIntegerListParameter = exports.CommandLineIntegerParameter = exports.CommandLineStringListParameter = exports.CommandLineStringParameter = exports.CommandLineFlagParameter = exports.CommandLineParameterWithArgument = exports.CommandLineParameter = exports.CommandLineParameterKind = exports.CommandLineAction = void 0;
|
|
5
6
|
/**
|
|
6
7
|
* An object-oriented command-line parser for TypeScript projects.
|
|
7
8
|
*
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D;;;AAE3D;;;;GAIG;AAEH,mEAA6F;AAApF,sHAAA,iBAAiB,OAAA;AAe1B,wDAIkC;AAHhC,uHAAA,wBAAwB,OAAA;AACxB,mHAAA,oBAAoB,OAAA;AACpB,+HAAA,gCAAgC,OAAA;AAGlC,kFAAiF;AAAxE,oIAAA,wBAAwB,OAAA;AACjC,sFAAqF;AAA5E,wIAAA,0BAA0B,OAAA;AACnC,8FAA6F;AAApF,gJAAA,8BAA8B,OAAA;AACvC,wFAAuF;AAA9E,0IAAA,2BAA2B,OAAA;AACpC,gGAA+F;AAAtF,kJAAA,+BAA+B,OAAA;AACxC,sFAAqF;AAA5E,wIAAA,0BAA0B,OAAA;AACnC,8FAA6F;AAApF,gJAAA,8BAA8B,OAAA;AACvC,0EAAyE;AAAhE,4HAAA,oBAAoB,OAAA;AAE7B,yFAGkD;AAFhD,4IAAA,4BAA4B,OAAA;AAI9B,mEAA6F;AAAzD,sHAAA,iBAAiB,OAAA;AAErD,iFAAgF;AAAvE,oIAAA,wBAAwB,OAAA;AAEjC,iFAAgF;AAAvE,oIAAA,wBAAwB,OAAA;AAIjC,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\r\n// See LICENSE in the project root for license information.\r\n\r\n/**\r\n * An object-oriented command-line parser for TypeScript projects.\r\n *\r\n * @packageDocumentation\r\n */\r\n\r\nexport { CommandLineAction, ICommandLineActionOptions } from './providers/CommandLineAction';\r\n\r\nexport {\r\n IBaseCommandLineDefinition,\r\n IBaseCommandLineDefinitionWithArgument,\r\n ICommandLineFlagDefinition,\r\n ICommandLineStringDefinition,\r\n ICommandLineStringListDefinition,\r\n ICommandLineIntegerDefinition,\r\n ICommandLineIntegerListDefinition,\r\n ICommandLineChoiceDefinition,\r\n ICommandLineChoiceListDefinition,\r\n ICommandLineRemainderDefinition\r\n} from './parameters/CommandLineDefinition';\r\n\r\nexport {\r\n CommandLineParameterKind,\r\n CommandLineParameter,\r\n CommandLineParameterWithArgument\r\n} from './parameters/BaseClasses';\r\n\r\nexport { CommandLineFlagParameter } from './parameters/CommandLineFlagParameter';\r\nexport { CommandLineStringParameter } from './parameters/CommandLineStringParameter';\r\nexport { CommandLineStringListParameter } from './parameters/CommandLineStringListParameter';\r\nexport { CommandLineIntegerParameter } from './parameters/CommandLineIntegerParameter';\r\nexport { CommandLineIntegerListParameter } from './parameters/CommandLineIntegerListParameter';\r\nexport { CommandLineChoiceParameter } from './parameters/CommandLineChoiceParameter';\r\nexport { CommandLineChoiceListParameter } from './parameters/CommandLineChoiceListParameter';\r\nexport { CommandLineRemainder } from './parameters/CommandLineRemainder';\r\n\r\nexport {\r\n CommandLineParameterProvider,\r\n ICommandLineParserData as _ICommandLineParserData\r\n} from './providers/CommandLineParameterProvider';\r\n\r\nexport { ICommandLineParserOptions, CommandLineParser } from './providers/CommandLineParser';\r\n\r\nexport { DynamicCommandLineAction } from './providers/DynamicCommandLineAction';\r\n\r\nexport { DynamicCommandLineParser } from './providers/DynamicCommandLineParser';\r\n\r\nexport { CommandLineConstants } from './Constants';\r\n\r\nexport { CommandLineHelper } from './CommandLineHelper';\r\n"]}
|
|
@@ -16,7 +16,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
16
16
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
17
17
|
if (mod && mod.__esModule) return mod;
|
|
18
18
|
var result = {};
|
|
19
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
19
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
20
20
|
__setModuleDefault(result, mod);
|
|
21
21
|
return result;
|
|
22
22
|
};
|
|
@@ -16,7 +16,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
16
16
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
17
17
|
if (mod && mod.__esModule) return mod;
|
|
18
18
|
var result = {};
|
|
19
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
19
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
20
20
|
__setModuleDefault(result, mod);
|
|
21
21
|
return result;
|
|
22
22
|
};
|
|
@@ -165,7 +165,7 @@ class TabCompleteAction extends CommandLineAction_1.CommandLineAction {
|
|
|
165
165
|
yield* this._globalParameters.keys();
|
|
166
166
|
}
|
|
167
167
|
tokenizeCommandLine(commandLine) {
|
|
168
|
-
return string_argv_1.default(commandLine);
|
|
168
|
+
return (0, string_argv_1.default)(commandLine);
|
|
169
169
|
}
|
|
170
170
|
async _getParameterValueCompletions(parameter) {
|
|
171
171
|
let choiceParameterValues = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabCompletionAction.js","sourceRoot":"","sources":["../../src/providers/TabCompletionAction.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE3D,8DAAqC;AAIrC,2DAImC;AACnC,2DAAwD;AACxD,0BAAgD;AAGhD,MAAM,4BAA4B,GAAW,EAAE,CAAC;AAChD,MAAM,gBAAgB,GAAW,CAAC,CAAC;AAEnC,MAAa,iBAAkB,SAAQ,qCAAiB;IAMtD,YACE,OAAyC,EACzC,gBAAqD;QAErD,KAAK,CAAC;YACJ,UAAU,8CAA8C;YACxD,OAAO,EAAE,0BAA0B;YACnC,aAAa,EAAE,0BAA0B;SAC1C,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAA6C,CAAC;QACrE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC5B,MAAM,+BAA+B,GAAsC,IAAI,GAAG,EAG/E,CAAC;YACJ,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE;gBACzC,+BAA+B,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBACnE,IAAI,SAAS,CAAC,SAAS,EAAE;oBACvB,+BAA+B,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;iBACrE;aACF;YACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,+BAA+B,CAAC,CAAC;SACvE;QAED,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,EAAgC,CAAC;QACjE,KAAK,MAAM,SAAS,IAAI,gBAAgB,EAAE;YACxC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC1D,IAAI,SAAS,CAAC,SAAS,EAAE;gBACvB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;aAC5D;SACF;IACH,CAAC;IAES,kBAAkB;QAC1B,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,qBAAqB,CAAC;YACzD,iBAAiB,EAAE,QAAQ;YAC3B,YAAY,EAAE,MAAM;YACpB,WAAW,EAAE,uBAAuB;YACpC,YAAY,EAAE,4BAA4B;SAC3C,CAAC,CAAC;QAEH,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,CAAC;YACpD,iBAAiB,EAAE,YAAY;YAC/B,YAAY,EAAE,OAAO;YACrB,WAAW,EAAE,2CAA2C;YACxD,YAAY,EAAE,gBAAgB;SAC/B,CAAC,CAAC;IACL,CAAC;IAES,KAAK,CAAC,SAAS;;QACvB,MAAM,WAAW,GAAW,IAAI,CAAC,wBAAwB,CAAC,KAAK,IAAI,EAAE,CAAC;QACtE,MAAM,aAAa,GAAW,IAAI,CAAC,kBAAkB,CAAC,KAAK,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;;YAExG,KAA0B,IAAA,KAAA,cAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA,IAAA;gBAA9D,MAAM,KAAK,WAAA,CAAA;gBACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aACpB;;;;;;;;;IACH,CAAC;IAEa,cAAc,CAC1B,WAAmB,EACnB,gBAAwB,WAAW,CAAC,MAAM;;YAE1C,MAAM,OAAO,GAAmD,IAAI,CAAC,QAAQ,CAAC;YAE9E,IAAI,CAAC,WAAW,IAAI,CAAC,aAAa,EAAE;gBAClC,cAAA,KAAK,CAAC,CAAC,iBAAA,cAAA,IAAI,CAAC,cAAc,EAAE,CAAA,CAAA,CAAA,CAAC;gBAC7B,6BAAO;aACR;YAED,MAAM,MAAM,GAAa,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC;YAE3E,+DAA+D;YAC/D,MAAM,qBAAqB,GAAW,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;YAE7E,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,qBAAqB,EAAE;gBAC7C,cAAA,KAAK,CAAC,CAAC,iBAAA,cAAA,IAAI,CAAC,cAAc,EAAE,CAAA,CAAA,CAAA,CAAC;gBAC7B,6BAAO;aACR;YAED,MAAM,SAAS,GAAW,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACpD,MAAM,eAAe,GAAW,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAE1D,MAAM,mBAAmB,GAAY,aAAa,KAAK,WAAW,CAAC,MAAM,CAAC;YAE1E,IAAI,mBAAmB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,GAAG,qBAAqB,EAAE;gBACtE,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE;oBACvC,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,KAAK,CAAC,EAAE;wBAC/D,oBAAM,UAAU,CAAA,CAAC;qBAClB;iBACF;aACF;iBAAM;gBACL,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE;oBACvC,IAAI,UAAU,KAAK,MAAM,CAAC,CAAC,GAAG,qBAAqB,CAAC,EAAE;wBACpD,MAAM,gBAAgB,GAAsC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC;wBAErF,MAAM,cAAc,GAAa,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;wBAErE,IAAI,mBAAmB,EAAE;4BACvB,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE;gCAC1C,IAAI,aAAa,KAAK,eAAe,EAAE;oCACrC,MAAM,MAAM,GAAa,cAAM,IAAI,CAAC,6BAA6B,CAC/D,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAE,CACrC,CAAA,CAAC;oCACF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wCACrB,cAAA,KAAK,CAAC,CAAC,iBAAA,cAAA,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA,CAAA,CAAA,CAAC;wCACxD,6BAAO;qCACR;iCACF;6BACF;4BACD,cAAA,KAAK,CAAC,CAAC,iBAAA,cAAA,IAAI,CAAC,wBAAwB,CAAC,cAAc,EAAE,SAAS,CAAC,CAAA,CAAA,CAAA,CAAC;yBACjE;6BAAM;4BACL,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE;gCAC1C,IAAI,aAAa,KAAK,SAAS,EAAE;oCAC/B,MAAM,MAAM,GAAa,cAAM,IAAI,CAAC,6BAA6B,CAC/D,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAE,CACrC,CAAA,CAAC;oCACF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wCACrB,cAAA,KAAK,CAAC,CAAC,iBAAA,cAAA,MAAM,CAAA,CAAA,CAAA,CAAC;wCACd,6BAAO;qCACR;iCACF;6BACF;4BACD,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE;gCAC1C,IACE,aAAa,KAAK,SAAS;oCAC3B,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAE,CAAC,IAAI,KAAK,sCAAwB,CAAC,IAAI,EAC3E;oCACA,6EAA6E;oCAC7E,6BAAO;iCACR;6BACF;4BAED,cAAA,KAAK,CAAC,CAAC,iBAAA,cAAA,cAAc,CAAA,CAAA,CAAA,CAAC;yBACvB;wBAED,MAAM;qBACP;iBACF;aACF;QACH,CAAC;KAAA;IAEO,CAAC,cAAc;QACrB,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC5B,KAAK,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;IACvC,CAAC;IAEM,mBAAmB,CAAC,WAAmB;QAC5C,OAAO,qBAAU,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IAEO,KAAK,CAAC,6BAA6B,CAAC,SAA+B;QACzE,IAAI,qBAAqB,GAAa,EAAE,CAAC;QACzC,IAAI,SAAS,CAAC,IAAI,KAAK,sCAAwB,CAAC,MAAM,EAAE;YACtD,qBAAqB,GAAI,SAAwC,CAAC,YAAwB,CAAC;SAC5F;aAAM,IAAI,SAAS,CAAC,IAAI,KAAK,sCAAwB,CAAC,IAAI,EAAE;YAC3D,IAAI,8BAA8B,GAGlB,SAAS,CAAC;YAC1B,IAAI,SAAS,YAAY,8CAAgC,EAAE;gBACzD,8BAA8B,GAAG,SAA6C,CAAC;aAChF;iBAAM,IAAI,SAAS,YAAY,8BAA0B,EAAE;gBAC1D,8BAA8B,GAAG,SAAuC,CAAC;aAC1E;YACD,IAAI,8BAA8B,IAAI,8BAA8B,CAAC,WAAW,EAAE;gBAChF,qBAAqB,GAAG,MAAM,8BAA8B,CAAC,WAAW,EAAE,CAAC;aAC5E;SACF;QAED,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAEO,yBAAyB,CAAC,MAAgB;QAChD,MAAM,gBAAgB,GAAsC,IAAI,CAAC,iBAAiB,CAAC;QACnF,IAAI,KAAK,GAAW,CAAC,CAAC;QAEtB,KAAK,EAAE,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrD,KAAK,MAAM,eAAe,IAAI,gBAAgB,CAAC,MAAM,EAAE,EAAE;gBACvD,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,eAAe,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,eAAe,CAAC,SAAS,EAAE;oBACrF,MAAM,KAAK,CAAC;iBACb;aACF;YACD,KAAK,EAAE,CAAC;SACT;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,CAAC,wBAAwB,CAC/B,qBAA+B,EAC/B,SAAiB;QAEjB,KAAK,MAAM,oBAAoB,IAAI,qBAAqB,EAAE;YACxD,IAAI,oBAAoB,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;gBACjD,MAAM,oBAAoB,CAAC;aAC5B;SACF;IACH,CAAC;CACF;AA7MD,8CA6MC","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\r\n// See LICENSE in the project root for license information.\r\n\r\nimport stringArgv from 'string-argv';\r\n\r\nimport { CommandLineIntegerParameter } from '../parameters/CommandLineIntegerParameter';\r\nimport { CommandLineStringParameter } from '../parameters/CommandLineStringParameter';\r\nimport {\r\n CommandLineParameterKind,\r\n CommandLineParameter,\r\n CommandLineParameterWithArgument\r\n} from '../parameters/BaseClasses';\r\nimport { CommandLineAction } from './CommandLineAction';\r\nimport { CommandLineChoiceParameter } from '..';\r\nimport { CommandLineConstants } from '../Constants';\r\n\r\nconst DEFAULT_WORD_TO_AUTOCOMPLETE: string = '';\r\nconst DEFAULT_POSITION: number = 0;\r\n\r\nexport class TabCompleteAction extends CommandLineAction {\r\n private _wordToCompleteParameter!: CommandLineStringParameter;\r\n private _positionParameter!: CommandLineIntegerParameter;\r\n private readonly _actions: Map<string, Map<string, CommandLineParameter>>;\r\n private readonly _globalParameters: Map<string, CommandLineParameter>;\r\n\r\n public constructor(\r\n actions: ReadonlyArray<CommandLineAction>,\r\n globalParameters: ReadonlyArray<CommandLineParameter>\r\n ) {\r\n super({\r\n actionName: CommandLineConstants.TabCompletionActionName,\r\n summary: 'Provides tab completion.',\r\n documentation: 'Provides tab completion.'\r\n });\r\n\r\n this._actions = new Map<string, Map<string, CommandLineParameter>>();\r\n for (const action of actions) {\r\n const parameterNameToParameterInfoMap: Map<string, CommandLineParameter> = new Map<\r\n string,\r\n CommandLineParameter\r\n >();\r\n for (const parameter of action.parameters) {\r\n parameterNameToParameterInfoMap.set(parameter.longName, parameter);\r\n if (parameter.shortName) {\r\n parameterNameToParameterInfoMap.set(parameter.shortName, parameter);\r\n }\r\n }\r\n this._actions.set(action.actionName, parameterNameToParameterInfoMap);\r\n }\r\n\r\n this._globalParameters = new Map<string, CommandLineParameter>();\r\n for (const parameter of globalParameters) {\r\n this._globalParameters.set(parameter.longName, parameter);\r\n if (parameter.shortName) {\r\n this._globalParameters.set(parameter.shortName, parameter);\r\n }\r\n }\r\n }\r\n\r\n protected onDefineParameters(): void {\r\n this._wordToCompleteParameter = this.defineStringParameter({\r\n parameterLongName: '--word',\r\n argumentName: 'WORD',\r\n description: `The word to complete.`,\r\n defaultValue: DEFAULT_WORD_TO_AUTOCOMPLETE\r\n });\r\n\r\n this._positionParameter = this.defineIntegerParameter({\r\n parameterLongName: '--position',\r\n argumentName: 'INDEX',\r\n description: `The position in the word to be completed.`,\r\n defaultValue: DEFAULT_POSITION\r\n });\r\n }\r\n\r\n protected async onExecute(): Promise<void> {\r\n const commandLine: string = this._wordToCompleteParameter.value || '';\r\n const caretPosition: number = this._positionParameter.value || (commandLine && commandLine.length) || 0;\r\n\r\n for await (const value of this.getCompletions(commandLine, caretPosition)) {\r\n console.log(value);\r\n }\r\n }\r\n\r\n public async *getCompletions(\r\n commandLine: string,\r\n caretPosition: number = commandLine.length\r\n ): AsyncIterable<string> {\r\n const actions: Map<string, Map<string, CommandLineParameter>> = this._actions;\r\n\r\n if (!commandLine || !caretPosition) {\r\n yield* this._getAllActions();\r\n return;\r\n }\r\n\r\n const tokens: string[] = Array.from(this.tokenizeCommandLine(commandLine));\r\n\r\n // offset arguments by the number of global params in the input\r\n const globalParameterOffset: number = this._getGlobalParameterOffset(tokens);\r\n\r\n if (tokens.length < 2 + globalParameterOffset) {\r\n yield* this._getAllActions();\r\n return;\r\n }\r\n\r\n const lastToken: string = tokens[tokens.length - 1];\r\n const secondLastToken: string = tokens[tokens.length - 2];\r\n\r\n const completePartialWord: boolean = caretPosition === commandLine.length;\r\n\r\n if (completePartialWord && tokens.length === 2 + globalParameterOffset) {\r\n for (const actionName of actions.keys()) {\r\n if (actionName.indexOf(tokens[1 + globalParameterOffset]) === 0) {\r\n yield actionName;\r\n }\r\n }\r\n } else {\r\n for (const actionName of actions.keys()) {\r\n if (actionName === tokens[1 + globalParameterOffset]) {\r\n const parameterNameMap: Map<string, CommandLineParameter> = actions.get(actionName)!;\r\n\r\n const parameterNames: string[] = Array.from(parameterNameMap.keys());\r\n\r\n if (completePartialWord) {\r\n for (const parameterName of parameterNames) {\r\n if (parameterName === secondLastToken) {\r\n const values: string[] = await this._getParameterValueCompletions(\r\n parameterNameMap.get(parameterName)!\r\n );\r\n if (values.length > 0) {\r\n yield* this._completeParameterValues(values, lastToken);\r\n return;\r\n }\r\n }\r\n }\r\n yield* this._completeParameterValues(parameterNames, lastToken);\r\n } else {\r\n for (const parameterName of parameterNames) {\r\n if (parameterName === lastToken) {\r\n const values: string[] = await this._getParameterValueCompletions(\r\n parameterNameMap.get(parameterName)!\r\n );\r\n if (values.length > 0) {\r\n yield* values;\r\n return;\r\n }\r\n }\r\n }\r\n for (const parameterName of parameterNames) {\r\n if (\r\n parameterName === lastToken &&\r\n parameterNameMap.get(parameterName)!.kind !== CommandLineParameterKind.Flag\r\n ) {\r\n // The parameter is expecting a value, so don't suggest parameter names again\r\n return;\r\n }\r\n }\r\n\r\n yield* parameterNames;\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n private *_getAllActions(): IterableIterator<string> {\r\n yield* this._actions.keys();\r\n yield* this._globalParameters.keys();\r\n }\r\n\r\n public tokenizeCommandLine(commandLine: string): string[] {\r\n return stringArgv(commandLine);\r\n }\r\n\r\n private async _getParameterValueCompletions(parameter: CommandLineParameter): Promise<string[]> {\r\n let choiceParameterValues: string[] = [];\r\n if (parameter.kind === CommandLineParameterKind.Choice) {\r\n choiceParameterValues = (parameter as CommandLineChoiceParameter).alternatives as string[];\r\n } else if (parameter.kind !== CommandLineParameterKind.Flag) {\r\n let parameterWithArgumentOrChoices:\r\n | CommandLineParameterWithArgument\r\n | CommandLineChoiceParameter\r\n | undefined = undefined;\r\n if (parameter instanceof CommandLineParameterWithArgument) {\r\n parameterWithArgumentOrChoices = parameter as CommandLineParameterWithArgument;\r\n } else if (parameter instanceof CommandLineChoiceParameter) {\r\n parameterWithArgumentOrChoices = parameter as CommandLineChoiceParameter;\r\n }\r\n if (parameterWithArgumentOrChoices && parameterWithArgumentOrChoices.completions) {\r\n choiceParameterValues = await parameterWithArgumentOrChoices.completions();\r\n }\r\n }\r\n\r\n return choiceParameterValues;\r\n }\r\n\r\n private _getGlobalParameterOffset(tokens: string[]): number {\r\n const globalParameters: Map<string, CommandLineParameter> = this._globalParameters;\r\n let count: number = 0;\r\n\r\n outer: for (let i: number = 1; i < tokens.length; i++) {\r\n for (const globalParameter of globalParameters.values()) {\r\n if (tokens[i] !== globalParameter.longName && tokens[i] !== globalParameter.shortName) {\r\n break outer;\r\n }\r\n }\r\n count++;\r\n }\r\n\r\n return count;\r\n }\r\n\r\n private *_completeParameterValues(\r\n choiceParameterValues: string[],\r\n lastToken: string\r\n ): IterableIterator<string> {\r\n for (const choiceParameterValue of choiceParameterValues) {\r\n if (choiceParameterValue.indexOf(lastToken) === 0) {\r\n yield choiceParameterValue;\r\n }\r\n }\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"TabCompletionAction.js","sourceRoot":"","sources":["../../src/providers/TabCompletionAction.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\r\n// See LICENSE in the project root for license information.\r\n\r\nimport stringArgv from 'string-argv';\r\n\r\nimport { CommandLineIntegerParameter } from '../parameters/CommandLineIntegerParameter';\r\nimport { CommandLineStringParameter } from '../parameters/CommandLineStringParameter';\r\nimport {\r\n CommandLineParameterKind,\r\n CommandLineParameter,\r\n CommandLineParameterWithArgument\r\n} from '../parameters/BaseClasses';\r\nimport { CommandLineAction } from './CommandLineAction';\r\nimport { CommandLineChoiceParameter } from '..';\r\nimport { CommandLineConstants } from '../Constants';\r\n\r\nconst DEFAULT_WORD_TO_AUTOCOMPLETE: string = '';\r\nconst DEFAULT_POSITION: number = 0;\r\n\r\nexport class TabCompleteAction extends CommandLineAction {\r\n private _wordToCompleteParameter!: CommandLineStringParameter;\r\n private _positionParameter!: CommandLineIntegerParameter;\r\n private readonly _actions: Map<string, Map<string, CommandLineParameter>>;\r\n private readonly _globalParameters: Map<string, CommandLineParameter>;\r\n\r\n public constructor(\r\n actions: ReadonlyArray<CommandLineAction>,\r\n globalParameters: ReadonlyArray<CommandLineParameter>\r\n ) {\r\n super({\r\n actionName: CommandLineConstants.TabCompletionActionName,\r\n summary: 'Provides tab completion.',\r\n documentation: 'Provides tab completion.'\r\n });\r\n\r\n this._actions = new Map<string, Map<string, CommandLineParameter>>();\r\n for (const action of actions) {\r\n const parameterNameToParameterInfoMap: Map<string, CommandLineParameter> = new Map<\r\n string,\r\n CommandLineParameter\r\n >();\r\n for (const parameter of action.parameters) {\r\n parameterNameToParameterInfoMap.set(parameter.longName, parameter);\r\n if (parameter.shortName) {\r\n parameterNameToParameterInfoMap.set(parameter.shortName, parameter);\r\n }\r\n }\r\n this._actions.set(action.actionName, parameterNameToParameterInfoMap);\r\n }\r\n\r\n this._globalParameters = new Map<string, CommandLineParameter>();\r\n for (const parameter of globalParameters) {\r\n this._globalParameters.set(parameter.longName, parameter);\r\n if (parameter.shortName) {\r\n this._globalParameters.set(parameter.shortName, parameter);\r\n }\r\n }\r\n }\r\n\r\n protected onDefineParameters(): void {\r\n this._wordToCompleteParameter = this.defineStringParameter({\r\n parameterLongName: '--word',\r\n argumentName: 'WORD',\r\n description: `The word to complete.`,\r\n defaultValue: DEFAULT_WORD_TO_AUTOCOMPLETE\r\n });\r\n\r\n this._positionParameter = this.defineIntegerParameter({\r\n parameterLongName: '--position',\r\n argumentName: 'INDEX',\r\n description: `The position in the word to be completed.`,\r\n defaultValue: DEFAULT_POSITION\r\n });\r\n }\r\n\r\n protected async onExecute(): Promise<void> {\r\n const commandLine: string = this._wordToCompleteParameter.value || '';\r\n const caretPosition: number = this._positionParameter.value || (commandLine && commandLine.length) || 0;\r\n\r\n for await (const value of this.getCompletions(commandLine, caretPosition)) {\r\n console.log(value);\r\n }\r\n }\r\n\r\n public async *getCompletions(\r\n commandLine: string,\r\n caretPosition: number = commandLine.length\r\n ): AsyncIterable<string> {\r\n const actions: Map<string, Map<string, CommandLineParameter>> = this._actions;\r\n\r\n if (!commandLine || !caretPosition) {\r\n yield* this._getAllActions();\r\n return;\r\n }\r\n\r\n const tokens: string[] = Array.from(this.tokenizeCommandLine(commandLine));\r\n\r\n // offset arguments by the number of global params in the input\r\n const globalParameterOffset: number = this._getGlobalParameterOffset(tokens);\r\n\r\n if (tokens.length < 2 + globalParameterOffset) {\r\n yield* this._getAllActions();\r\n return;\r\n }\r\n\r\n const lastToken: string = tokens[tokens.length - 1];\r\n const secondLastToken: string = tokens[tokens.length - 2];\r\n\r\n const completePartialWord: boolean = caretPosition === commandLine.length;\r\n\r\n if (completePartialWord && tokens.length === 2 + globalParameterOffset) {\r\n for (const actionName of actions.keys()) {\r\n if (actionName.indexOf(tokens[1 + globalParameterOffset]) === 0) {\r\n yield actionName;\r\n }\r\n }\r\n } else {\r\n for (const actionName of actions.keys()) {\r\n if (actionName === tokens[1 + globalParameterOffset]) {\r\n const parameterNameMap: Map<string, CommandLineParameter> = actions.get(actionName)!;\r\n\r\n const parameterNames: string[] = Array.from(parameterNameMap.keys());\r\n\r\n if (completePartialWord) {\r\n for (const parameterName of parameterNames) {\r\n if (parameterName === secondLastToken) {\r\n const values: string[] = await this._getParameterValueCompletions(\r\n parameterNameMap.get(parameterName)!\r\n );\r\n if (values.length > 0) {\r\n yield* this._completeParameterValues(values, lastToken);\r\n return;\r\n }\r\n }\r\n }\r\n yield* this._completeParameterValues(parameterNames, lastToken);\r\n } else {\r\n for (const parameterName of parameterNames) {\r\n if (parameterName === lastToken) {\r\n const values: string[] = await this._getParameterValueCompletions(\r\n parameterNameMap.get(parameterName)!\r\n );\r\n if (values.length > 0) {\r\n yield* values;\r\n return;\r\n }\r\n }\r\n }\r\n for (const parameterName of parameterNames) {\r\n if (\r\n parameterName === lastToken &&\r\n parameterNameMap.get(parameterName)!.kind !== CommandLineParameterKind.Flag\r\n ) {\r\n // The parameter is expecting a value, so don't suggest parameter names again\r\n return;\r\n }\r\n }\r\n\r\n yield* parameterNames;\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n private *_getAllActions(): IterableIterator<string> {\r\n yield* this._actions.keys();\r\n yield* this._globalParameters.keys();\r\n }\r\n\r\n public tokenizeCommandLine(commandLine: string): string[] {\r\n return stringArgv(commandLine);\r\n }\r\n\r\n private async _getParameterValueCompletions(parameter: CommandLineParameter): Promise<string[]> {\r\n let choiceParameterValues: string[] = [];\r\n if (parameter.kind === CommandLineParameterKind.Choice) {\r\n choiceParameterValues = (parameter as CommandLineChoiceParameter).alternatives as string[];\r\n } else if (parameter.kind !== CommandLineParameterKind.Flag) {\r\n let parameterWithArgumentOrChoices:\r\n | CommandLineParameterWithArgument\r\n | CommandLineChoiceParameter\r\n | undefined = undefined;\r\n if (parameter instanceof CommandLineParameterWithArgument) {\r\n parameterWithArgumentOrChoices = parameter as CommandLineParameterWithArgument;\r\n } else if (parameter instanceof CommandLineChoiceParameter) {\r\n parameterWithArgumentOrChoices = parameter as CommandLineChoiceParameter;\r\n }\r\n if (parameterWithArgumentOrChoices && parameterWithArgumentOrChoices.completions) {\r\n choiceParameterValues = await parameterWithArgumentOrChoices.completions();\r\n }\r\n }\r\n\r\n return choiceParameterValues;\r\n }\r\n\r\n private _getGlobalParameterOffset(tokens: string[]): number {\r\n const globalParameters: Map<string, CommandLineParameter> = this._globalParameters;\r\n let count: number = 0;\r\n\r\n outer: for (let i: number = 1; i < tokens.length; i++) {\r\n for (const globalParameter of globalParameters.values()) {\r\n if (tokens[i] !== globalParameter.longName && tokens[i] !== globalParameter.shortName) {\r\n break outer;\r\n }\r\n }\r\n count++;\r\n }\r\n\r\n return count;\r\n }\r\n\r\n private *_completeParameterValues(\r\n choiceParameterValues: string[],\r\n lastToken: string\r\n ): IterableIterator<string> {\r\n for (const choiceParameterValue of choiceParameterValues) {\r\n if (choiceParameterValue.indexOf(lastToken) === 0) {\r\n yield choiceParameterValue;\r\n }\r\n }\r\n }\r\n}\r\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rushstack/ts-command-line",
|
|
3
|
-
"version": "4.10.
|
|
3
|
+
"version": "4.10.2",
|
|
4
4
|
"description": "An object-oriented command-line parser for TypeScript",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -16,9 +16,9 @@
|
|
|
16
16
|
"string-argv": "~0.3.1"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
|
-
"@rushstack/eslint-config": "2.4.
|
|
20
|
-
"@rushstack/heft": "0.
|
|
21
|
-
"@rushstack/heft-node-rig": "1.2.
|
|
19
|
+
"@rushstack/eslint-config": "2.4.3",
|
|
20
|
+
"@rushstack/heft": "0.41.6",
|
|
21
|
+
"@rushstack/heft-node-rig": "1.2.25",
|
|
22
22
|
"@types/heft-jest": "1.0.1",
|
|
23
23
|
"@types/node": "12.20.24"
|
|
24
24
|
},
|