Options
All
  • Public
  • Public/Protected
  • All
Menu

Module @zowe/imperative

Imperative CLI Framework

codecov

Imperative CLI Framework is a command processing system that lets you quickly build customized command-line interfaces. Focus on adding functionality for your users rather than creating CLI infrastructure. We provide you with all the tools to get started building your own CLI plug-ins.

Software Requirements

  • Install Node.js package manager on your computer. Node.jsĀ® is a JavaScript runtime environment on which we architected Imperative CLI Framework.

  • You must have a means to execute ".sh" (bash) scripts to run integration tests. On Windows, you can install "Git Bash", which is bundled with the standard Git installation - (choose the "Use Git and Unix Tools from Windows Command Prompt" installation option). When you run the integration tests on Windows, you must have Administrative authority to enable the integration tests to create symbolic links.

Note: Broadcom Inc. does not maintain the prerequisite software that Imperative CLI Framework requires. You are responsible for updating Node.js and other prerequisites on your computer. We recommend that you update Node.js regularly to the latest Long Term Support (LTS) version.

Install Imperative as a Dependency

Issue the following commands to install Imperative CLI Framework as a dependency. Note that the registry URL differs between versions of Imperative CLI Framework.

  • Install @latest version:

    Be aware that if you update via @latest, you accept breaking changes into your project.

    npm install --@zowe:registry=https://registry.npmjs.org --no-package-lock --force
    npm install --save @zowe/imperative
    
  • Install @lts-incremental version:

    npm install --@zowe:registry=https://registry.npmjs.org --no-package-lock --force
    npm install --save @zowe/imperative@lts-incremental
    

Build and Install Imperative CLI Framework from Source

To build and install the Imperative CLI Framework, follow these steps:

  1. Clone the zowe/imperative project to your PC.
  2. From the command line, issue cd [relative path]/imperative
  3. Issue npm install
  4. Issue npm run build
  5. Issue npm run test

To build the entire project (including test stand-alone CLIs): npm run build

To build only imperative source: gulp build

Run Tests

Command Description
npm run test Run all tests (unit & integration)
npm test:integration Run integration tests
npm test:unit Run unit tests

Note: To run the integration tests via gulp, install all dependencies for test CLIs, build all test CLIs, & install all sample CLIs globally using the following sequence:

  1. gulp build:install-all-cli-dependencies
  2. gulp build:all-clis
  3. gulp test:installSampleClis

Note: For more information about the tasks (details and descriptions), issue the following gulp command: gulp --tasks

Sample Applications

We provide a sample plug-in that you can use to get started developing your own plug-ins. See the Zowe CLI Sample Plug-in.

Documentation

We provide documentation that describes how to define commands, work with user profiles, and more! For more information, see the Imperative CLI Framework wiki.

Contribute

For information about how you can contribute code to Imperative CLI Framework, see CONTRIBUTING

Versioning

Imperative CLI Framework uses Semantic Versioning (SemVer) for versioning. For more information, see the Semantic Versioning website.

Licencing Imperative CLI Framework

For Imperative CLI Framework licensing rules, requirements, and guidelines, see LICENSE.

Index

Enumerations

Classes

Interfaces

Type aliases

Variables

Functions

Object literals

Type aliases

AUTH_TYPE_CHOICES

AUTH_TYPE_CHOICES: typeof AUTH_TYPE_NONE | typeof AUTH_TYPE_BASIC | typeof AUTH_TYPE_BEARER | typeof AUTH_TYPE_TOKEN | typeof AUTH_TYPE_CERT_PEM

type that specifies the choice of authentication types

CLIENT_PROPERTY

CLIENT_PROPERTY: "requestSuccess" | "requestFailure" | "data" | "dataString" | "response" | "session" | "log"

String type definition for properties of abstractRestClient that has a getter set. This can be safely used in a getter call as a variable for the abstractRestClient object.

export

COMMAND_RESPONSE_FORMAT

COMMAND_RESPONSE_FORMAT: "json" | "default"

The command response format type definition - currently only JSON or default (stdout/stderr) are supported.

export

CommandOptionType

CommandOptionType: "array" | "boolean" | "count" | "existingLocalFile" | "json" | "number" | "string" | "stringOrEmpty"

The type of value that should be specified for an option by the user. "array": an array of space delimited strings "boolean": a switch - the user specifies: true "--option-name" or false: "--option-name false" "count" : accepting only whole numbers as input value "existingLocalFile": a file for which fs.existsSync returns true "json": a parseable JSON string "number" : accepting integers as input value "string" : string input that does not allow "" as a valid input value "stringOrEmpty" : allow string to be empty when defined

CommandSegment

CommandSegment: "group" | "command"

The command segment represents the "level" you are at in the command (for help generation)

ContentEncoding

ContentEncoding: typeof CONTENT_ENCODING_TYPES[number]

HTTP_PROTOCOL_CHOICES

HTTP_PROTOCOL_CHOICES: typeof HTTP_PROTOCOL | typeof HTTPS_PROTOCOL

type that specifies the choice of protocols

HTTP_VERB

HTTP_VERB: "GET" | "PUT" | "POST" | "DELETE"

ICommandHandlerConstructor

ICommandHandlerConstructor: {}

This type is here so that we can indicate an object from a require can be instantiated.

Type declaration

ICommandNodeType

ICommandNodeType: "group" | "command"

Command Segment type - either "group" or "command".

"group" implies no handler and should have children. Use groups to logically arrange portions of your CLI. "command" implies there is a handler and may or may not have children.

IConfigSecure

IConfigSecure: {}

Type declaration

IConfigSecureProperties

IConfigSecureProperties: {}

Type declaration

  • [key: string]: any

IConstructor

IConstructor<T>: {}

An type that defines a class constructor

Type parameters

  • T

Type declaration

ICredentialManagerConstructor

ICredentialManagerConstructor: {}

This interface defines the constructor for a credential manager. This is used by the TypeScript compiler to verify that any class that wishes to be a Credential Manager adheres to the constructor arguments sent to it.

Your class will satisfy this interface when all the following are true:

  1. Your class extends AbstractCredentialManager
  2. Your constructor has less than or equal to the number of parameters specified in the interface
  3. Your constructor has matching parameter types for all parameters accepted

Type declaration

IImperativeOverrides

IImperativeOverrides: ConstructorOrString<ImperativeOverrides>

All of the Default Imperative classes that can be changed by your Imperative CLI app.

A plugin can also define overrides through the same means as an Imperative CLI app. When additional overrides provided by plugins are present, Imperative will favor those classes over ones provided by your application.

Whether you are defining an Imperative Plugin or an Imperative CLI app, all keys in this object are expected to be a class constructor or of type string.

  • A class constructor will be instantiated directly from imperative with no additional work by the provider. (Assuming it is properly defined for the specific key)
  • A string will trigger imperative to load the module before instantiating it.
    • If the string is absolute, nothing special happens.
    • If the string is relative, then imperative will base the load on a well known location depending on if it is a plugin provided override or base cli provided override.
      • For Imperative Plugins: The module is located relative to the packages default import path (e.g require('package-name'))
      • For Imperative CLI Apps: The module is located relative to the main entry point of your application

When defining the location of an overrides as a string, it must adhere to the following format. Otherwise Imperative will not be able to load the class.

Exporting an Anonymous Class

export = class {
  // Code goes here
};

Exporting a Named Class

export = class YourOverridesClass {
  // Code goes here
};

Using module.exports (Not preferred for TypeScript Users)

class YourOverridesClass {
  // Code goes here
}

module.exports = YourOverridesClass;
see

{@link ImperativeOverrides} for documentation on the available keys.

IOperationCompleted

IOperationCompleted<T>: (output: T) => void

Type parameters

  • T

Type declaration

    • (output: T): void
    • Parameters

      • output: T

      Returns void

IOperationResultReady

IOperationResultReady<T>: (output: T, operationResults: IOperationResult<any>) => void

Type parameters

  • T

Type declaration

IOperationUndoCompleted

IOperationUndoCompleted: () => void

Type declaration

    • (): void
    • Returns void

IProfArgValue

IProfArgValue: string | number | boolean | string[] | object

The value for the argument

IProfDataType

IProfDataType: "string" | "number" | "boolean" | "array" | "object"

The type of data for this property

IProfileValidationTaskFunction

IProfileValidationTaskFunction: (profile: any, done: (result: IProfileValidationTaskResult) => void) => void

A function that takes a profile and calls a done callback with the result of the profile validation

Type declaration

ImperativeReject

ImperativeReject: (error: ImperativeError) => void

Definition for a promise rejection method that provides an ImperativeError (or subclass)

Type declaration

ImperativeYargsCommandAction

ImperativeYargsCommandAction: "syntax validation" | "command handler invoked" | "help invoked"

Indicates the action performed.

OUTPUT_FORMAT

OUTPUT_FORMAT: "list" | "table" | "string" | "object"

The available format types for formatting of output.

list

Formats the output data as a list of strings. If an array of objects is present in the output, each is stringified and printed on a newline.

table

Formats the output data as a table using the properties as the column headers. You must ensure that the array of objects is homogeneous for the table to print properly.

string

Formats the output data as a string. If the output data is an object/array it is stringified.

object

Formats the output a prettified JSON object.

RestClientResolve

RestClientResolve: (data: string) => void

Type declaration

    • (data: string): void
    • Parameters

      • data: string

      Returns void

RestErrorSource

RestErrorSource: "client" | "http"

SecureCredential

SecureCredential: string

String credential

SecureOperationFunction

SecureOperationFunction: (propNamePath: string, propValue?: any, optional?: boolean) => Promise<any>

This type defines the signature for a function taht calls the credential manager. This is used by the TypeScript compiler to verify that any function that wants to call the credential manager have the necessary arguments sent to it.

Type declaration

    • (propNamePath: string, propValue?: any, optional?: boolean): Promise<any>
    • Parameters

      • propNamePath: string

        The path to a child property

      • Optional propValue: any

        The value of said property

      • Optional optional: boolean

        Set to true if failure to find credentials should be ignored

      Returns Promise<any>

      • The processed value after the secure operation function runs

TOKEN_TYPE_CHOICES

TOKEN_TYPE_CHOICES: typeof TOKEN_TYPE_LTPA | typeof TOKEN_TYPE_JWT | typeof TOKEN_TYPE_APIML

type that specifies the choice of token types

VALIDATION_OUTCOME

VALIDATION_OUTCOME: "Failed" | "OK" | "Warning"

YargsCommandCompleted

YargsCommandCompleted: (args: Arguments, response: IYargsResponse) => void

Callback that is invoked when a command defined to yargs completes execution.

Type declaration

Variables

Const ALL_TOKEN_TYPES

ALL_TOKEN_TYPES: string[] = [TOKEN_TYPE_APIML,TOKEN_TYPE_JWT,TOKEN_TYPE_LTPA]

list that specifies the choice of token types

Const AUTH_TYPE_BASIC

AUTH_TYPE_BASIC: "basic" = "basic"

Session type property value for basic authentication

Const AUTH_TYPE_BEARER

AUTH_TYPE_BEARER: "bearer" = "bearer"

Session type property value for bearer token authentication

Const AUTH_TYPE_CERT_PEM

AUTH_TYPE_CERT_PEM: "cert-pem" = "cert-pem"

Session type property value for certificate authentication, which uses a certificate file and key file.

Const AUTH_TYPE_NONE

AUTH_TYPE_NONE: "none" = "none"

Session type property value for no authentication

Const AUTH_TYPE_TOKEN

AUTH_TYPE_TOKEN: "token" = "token"

Session type property value for cookie token authentication, which uses a named token type.

Const HTTPS_PROTOCOL

HTTPS_PROTOCOL: "https" = "https"

https protocol

Const HTTP_PROTOCOL

HTTP_PROTOCOL: "http" = "http"

http protocol

Const TOKEN_TYPE_APIML

TOKEN_TYPE_APIML: "apimlAuthenticationToken" = "apimlAuthenticationToken"

tokenType property value for an API Mediation Layer token

Const TOKEN_TYPE_JWT

TOKEN_TYPE_JWT: "jwtToken" = "jwtToken"

tokenType property value for a JWT token

Const TOKEN_TYPE_LTPA

TOKEN_TYPE_LTPA: "LtpaToken2" = "LtpaToken2"

tokenType property value for IBM's LTPA2 token

Const loggerUtilsRequire

loggerUtilsRequire: any = (jest as any).requireActual("../LoggerUtils").LoggerUtils

Functions

cmdToRun

  • cmdToRun(): any

coercePropValue

  • coercePropValue(value: any, type?: string): any

Const compareCommands

getActiveProfileName

  • getActiveProfileName(profileType: string, cmdArguments?: ICommandArguments, defaultProfileName?: string): string
  • Retrieves the name of the active profile for the given type. If no such profile exists, returns the default name which can be used to create a new profile.

    Parameters

    • profileType: string

      The type of CLI profile

    • Optional cmdArguments: ICommandArguments

      CLI arguments which may specify a profile

    • Optional defaultProfileName: string

      Name to fall back to if profile doesn't exist. If not specified, the profile type will be used.

    Returns string

    The profile name

getNpmPath

  • getNpmPath(): string

getPackageInfo

  • getPackageInfo(pkgSpec: string): Promise<{ name: string; version: string }>

getRegistry

  • getRegistry(): string

install

  • install(packageLocation: string, registry: string, installFromFile?: boolean): Promise<string>
  • Common function that abstracts the install process. This function should be called for each package that needs to be installed. (ex: sample-cli plugin install a b c d -> calls install 4 times)

    todo

    work needs to be done to support proper sharing of the plugins.json. As of now local plugins can only be reinstalled on the same machine. (due to how the conversion to an absolute URI happens)

    Parameters

    • packageLocation: string

      A package name or location. This value can be a valid npm package name or the location of an npm tar file or project folder. Also, git URLs are also acceptable here (basically anything that npm install supports). If this parameter is a relative path, it will be converted to an absolute path prior to being passed to the npm install command.

    • registry: string

      The npm registry to use, this is expected to be passed by every caller so if calling functions don't have a registry available, they need to get it from npm.

    • Default value installFromFile: boolean = false

    Returns Promise<string>

    The name of the plugin.

installPackages

  • installPackages(prefix: string, registry: string, npmPackage: string): string

npmLogin

  • npmLogin(registry: string): void

runValidatePlugin

  • runValidatePlugin(pluginName: string): string
  • Run another instance of the host CLI command to validate a plugin that has just been installed. We use a separate process instead of an API call because when the user re-installs an existing plugin we cannot validate if the plugin has conflicting command names because the plugin has already been incorporated into the Imperative command tree, and thus it could conflict with its own commands. However, if we run a validate command in a new process, we start with a clean slate and we get accurate results.

    Parameters

    • pluginName: string

      The name of a plugin to be validated.

    Returns string

    • The text output of the validate plugin command.

secureSaveError

uninstall

  • uninstall(packageName: string): void

update

  • update(packageName: string, registry: string): Promise<string>

Object literals

Const MOCKED_COMMAND_TREE

MOCKED_COMMAND_TREE: object

children

children: { description: string; name: string; options: ({ description: string; name: string; type: "string" } | { description: string; name: string; type: "boolean" })[]; positionals: { description: string; name: string; required: false; type: "string" }[]; type: "command" }[] = [{name: "test-command-one",description: "test command one",type: "command",options: [{name: "test-option",description: "the option",type: "string"},{name: "test-boolean",description: "the boolean option",type: "boolean"}],positionals: [{name: "positional1",description: "the positional option",type: "string",required: false}]},{name: "test-command-two",description: "test command two",type: "command",options: [{name: "test-option",description: "the option",type: "string"},{name: "test-boolean",description: "the boolean option",type: "boolean"}],positionals: [{name: "positional1",description: "the positional option",type: "string",required: false}]}]

description

description: string = "a test group"

name

name: string = "test-group"

type

type: "group" = "group"

Const apiErrorHeader

apiErrorHeader: object

message

message: string = `${Constants.FRAMEWORK_DISPLAY_NAME} API Error`

Const authCategoryDesc

authCategoryDesc: object

message

message: string = `Connect to token-based authentication services`

Const authLoginCommandDesc

authLoginCommandDesc: object

message

message: string = `Log in to {{type}} authentication service`

Const authLoginGroupDesc

authLoginGroupDesc: object

message

message: string = `${authLoginGroupSummary.message}.`

Const authLoginGroupSummary

authLoginGroupSummary: object

message

message: string = `Log in to an authentication service`

Const authLoginShowTokenDesc

authLoginShowTokenDesc: object

message

message: string = `Show the token when login is successful. If specified, does not save the token to a profile.`

Const authLogoutCommandDesc

authLogoutCommandDesc: object

message

message: string = `Log out of {{type}} authentication service`

Const authLogoutGroupDesc

authLogoutGroupDesc: object

message

message: string = `${authLogoutGroupSummary.message}.`

Const authLogoutGroupSummary

authLogoutGroupSummary: object

message

message: string = `Log out of an authentication service`

Const autoInitCommandDesc

autoInitCommandDesc: object

message

message: string = `Automatically generate a config from {{source}}`

Const convertProfilesDefinition

convertProfilesDefinition: object

Definition of the convert-profiles command.

aliases

aliases: string[] = ["convert"]

description

description: string = `Convert v1 profiles to a global ${ImperativeConfig.instance.rootCommandName}.config.json file.`

examples

examples: { description: string; options: string }[] = [{description: "Convert profiles to team config without prompting",options: "--no-prompt"}, {description: "Convert profiles to team config and delete the old profiles",options: "--delete"}]

handler

handler: string = join(__dirname, "convert-profiles.handler")

name

name: string = "convert-profiles"

options

options: ({ defaultValue: boolean; description: string; name: string; type: "boolean" } | { description: string; name: string; type: "boolean" })[] = [{name: "prompt",description: "Prompt for confirmation. Use --no-prompt to disable prompting.",type: "boolean",defaultValue: true}, {name: "delete",description: "Delete the existing profiles on disk and any securely stored secrets.",type: "boolean"}]

summary

summary: string = "Convert profiles to team config"

type

type: "command" = "command"

Const couldNotInstantiateCommandHandler

couldNotInstantiateCommandHandler: object

message

message: string = `Could not instantiate the handler {{commandHandler}} for ` +`command {{definitionName}}`

Const createProfileCommandDesc

createProfileCommandDesc: object

message

message: string = `Create a {{type}} profile`

Const createProfileDisableDefaultsDesc

createProfileDisableDefaultsDesc: object

message

message: string = `Disable populating profile values of undefined properties with default values.`

Const createProfileOptionDesc

createProfileOptionDesc: object

message

message: string = `Specifies the name of the new {{type}} profile. ` +`You can load this profile by using the name on commands that support the ` +`"--{{type}}-profile" option.`

Const createProfileOptionOverwriteDesc

createProfileOptionOverwriteDesc: object

message

message: string = `Overwrite the {{type}} profile when a profile of the same name exists.`

Const createProfilesCommandDesc

createProfilesCommandDesc: object

message

message: string = `${createProfilesCommandSummary.message}.`

Const createProfilesCommandSummary

createProfilesCommandSummary: object

message

message: string = `Create new configuration profiles`

Const deleteProfileActionDesc

deleteProfileActionDesc: object

message

message: string = `Delete a {{type}} profile.`

Const deleteProfileCommandDesc

deleteProfileCommandDesc: object

message

message: string = `Delete a {{type}} profile.` +` You must specify a profile name to be deleted. To find a list of available profiles for deletion,` +` issue the profiles list command. By default, you will be prompted to confirm the profile removal.`

Const deleteProfileDepsDesc

deleteProfileDepsDesc: object

message

message: string = `Set to true to delete all dependent profiles along with the {{type}} profile.` +`If set to true, a list of dependent profiles will be shown along with a confirmation prompt before the ` +`deletions occur. If set to false, only the {{type}} profile specified will be deleted.`

Const deleteProfileExample

deleteProfileExample: object

message

message: string = `Delete a {{type}} profile named {{name}}`

Const deleteProfileForceOptionDesc

deleteProfileForceOptionDesc: object

message

message: string = `Force deletion of profile, and dependent profiles if specified. No prompt will be displayed before `+ ` deletion occurs.`

Const deleteProfileNameDesc

deleteProfileNameDesc: object

message

message: string = `Specifies the name of the {{type}} ` +` profile to be deleted. ` +`You can also load this profile by using the name on commands that support the ` +`"--{{typeOption}}" option.`

Const deleteProfilesCommandDesc

deleteProfilesCommandDesc: object

message

message: string = `${deleteProfilesCommandSummary.message}.`

Const deleteProfilesCommandSummary

deleteProfilesCommandSummary: object

message

message: string = `Delete existing profiles`

Const detailProfileCommandDesc

detailProfileCommandDesc: object

message

message: string = `Show details of a profile of a selected type.`

Const editDefinition

editDefinition: object

Definition of the edit command.

description

description: string = `Edit an existing config file in your system's default text editor.\n\n` +`In a graphical environment, the application associated with JSON files will be launched. ` +`In a command-line environment, vi will be launched. To override the command-line editor used, specify it in ` +`the ${ImperativeConfig.instance.loadedConfig.envVariablePrefix}_EDITOR environment variable.`

examples

examples: { description: string; options: string }[] = [{description: "Edit global config file",options: "--global-config"}]

handler

handler: string = join(__dirname, "edit.handler")

name

name: string = "edit"

options

options: { aliases: string[]; defaultValue: boolean; description: string; name: string; type: "boolean" }[] = [{name: "global-config",description: "Target the global config files.",aliases: ["gc"],type: "boolean",defaultValue: false},{name: "user-config",description: "Target the user config files.",aliases: ["uc"],type: "boolean",defaultValue: false}]

summary

summary: string = "edit config files"

type

type: "command" = "command"

Const errorDetailsHeader

errorDetailsHeader: object

message

message: string = "Error Details:"

Const importDefinition

importDefinition: object

Definition of the import command.

description

description: string = "Import config files from another location on disk or from an Internet URL.\n\n" +"If the config `$schema` property points to a relative path, the schema will also be imported."

examples

examples: { description: string; options: string }[] = [{description: "Import config from local file on disk",options: "~/Downloads/zowe.config.json"},{description: "Import global config from Internet URL",options: "https://example.com/zowe.config.json --global-config"}]

handler

handler: string = join(__dirname, "import.handler")

name

name: string = "import"

options

options: { aliases: string[]; defaultValue: boolean; description: string; name: string; type: "boolean" }[] = [{name: "global-config",description: "Target the global config files.",aliases: ["gc"],type: "boolean",defaultValue: false},{name: "user-config",description: "Target the user config files.",aliases: ["uc"],type: "boolean",defaultValue: false},{name: "overwrite",description: "Overwrite config file if one already exists.",aliases: ["ow"],type: "boolean",defaultValue: false}]

positionals

positionals: { description: string; name: string; required: true; type: "string" }[] = [{name: "location",description: "File path or URL to import from.",required: true,type: "string"}]

summary

summary: string = "import config files"

type

type: "command" = "command"

Const initDefinition

initDefinition: object

Definition of the init command.

description

description: string = `Initialize config files. Defaults to initializing "${ImperativeConfig.instance.rootCommandName}.config.json" in the current ` +`working directory unless otherwise specified.\n\nUse "--user-config" to init ` +`"${ImperativeConfig.instance.rootCommandName}.config.user.json". Use "--global-config" to initialize the configuration files in your home ` +`"~/.zowe" directory.\n\nUse "--no-prompt" to skip prompting for values in a CI environment.`

examples

examples: { description: string; options: string }[] = [{description: `Initialize configuration files in your home "~/.zowe" directory.`,options: "--global-config"},{description: `Do a dry run of initializing configuration files in your home "~/.zowe" directory.`,options: "--global-config --dry-run"},{description: "Initialize the user config files.",options: "--user-config"},{description: "Initialize the user config files and do not prompt for secure values.",options: "--user-config --prompt false"},{description: "Do a dry run of initializing the user config files and do not prompt for secure values.",options: "--user-config --prompt false --dry-run"},{description: "Overwrite any existing global config files.",options: "--global-config --overwrite --for-sure"},{description: "Overwrite any existing user config files.",options: "--user-config --overwrite --for-sure"}]

handler

handler: string = join(__dirname, "init.handler")

name

name: string = "init"

options

options: ({ aliases: string[]; defaultValue: boolean; description: string; name: string; type: "boolean" } | { defaultValue: boolean; description: string; name: string; type: "boolean" } | { aliases: string[]; conflictsWith: string[]; description: string; implies: string[]; name: string; type: "boolean" } | { aliases: string[]; conflictsWith: string[]; description: string; name: string; type: "boolean" })[] = [{name: "global-config",description: "Target the global config files.",aliases: ["gc"],type: "boolean",defaultValue: false},{name: "user-config",description: "Target the user config files.",aliases: ["uc"],type: "boolean",defaultValue: false},{name: "prompt",description: "Prompt for missing values in the base profile. Useful for disabling prompting in CI environments.",type: "boolean",defaultValue: true},{name: "overwrite",description: "Replace existing config files instead of merging the new changes.",aliases: ["ow"],type: "boolean",conflictsWith: ["dry-run"],implies: ["for-sure"]},{name: "for-sure",aliases: ["fs"],description: "Confirms the overwrite option.",type: "boolean",defaultValue: false},{name: "dry-run",description: "Display the outcome of the initialization without saving it.",aliases: ["dr", "dry"],type: "boolean",conflictsWith: ["edit", "overwrite", "prompt"]},{name: "edit",aliases: ["e"],description: "Open in editor after initializing the configuration",type: "boolean",conflictsWith: ["dry-run"]}]

summary

summary: string = "init config files"

type

type: "command" = "command"

Const installDefinition

installDefinition: object

Definition of the install command.

description

description: string = "Install plug-ins to an application."

examples

examples: { description: string; options: string }[] = [{description: `Install plug-ins saved in ${PMFConstants.instance.PLUGIN_JSON}`,options: ""},{description: "Install plug-ins saved in a properly formatted config file",options: "--file /some/file/path/file_name.json"},{description: "Install a remote plug-in",options: "my-plugin"},{description: "Install a remote plug-in using semver",options: "my-plugin@\"^1.2.3\""},{description: "Install a remote plug-in from the specified registry",options: "my-plugin --registry https://registry.npmjs.org/"},{description: "Install a local folder, local TAR file, and a git URL",options: "./local-file /root/tar/some-tar.tgz git://github.com/project/repository.git#v1.0.0"},{description: "Install a remote plug-in from the registry which requires authorization" +"(don't need to use this flag if you have already logged in before)",options: "my-plugin --registry https://registry.npmjs.org/ --login"}]

handler

handler: string = join(__dirname, "install.handler")

name

name: string = "install"

options

options: ({ conflictsWith: string[]; description: string; name: string; required: false; type: "existingLocalFile" } | { description: string; name: string; required: false; type: "string" } | { description: string; implies: string[]; name: string; required: false; type: "boolean" })[] = [{name: "file",type: "existingLocalFile",description: fileDescription,required: false,conflictsWith: ["registry"]},{name: "registry",type: "string",description: registryDescription,required: false},{name: "login",type: "boolean",description: loginDescription,required: false,implies: ["registry"]}]

positionals

positionals: { description: string; name: string; required: false; type: "string" }[] = [{name: "plugin...",type: "string",description: pluginDescription,required: false}]

summary

summary: string = "Install a plug-in"

type

type: "command" = "command"

Const listDefinition

listDefinition: object

aliases

aliases: string[] = ["ls"]

description

description: string = "List config properties"

examples

examples: { description: string; options: string }[] = [{description: "List property names for a specified config property.",options: `"defaults"`},{description: "List only root level property names for a specified config property.",options: `"defaults" --root`},{description: "List config properties by separating them by their respective config file locations.",options: "--locations"},{description: "List only the root level configuration property names.",options: "--root"},{description: "List only the root level configuration properties by separating them by their respective config file locations.",options: "--locations --root"}]

handler

handler: string = join(__dirname, "list.handler")

name

name: string = "list"

options

options: { description: string; name: string; type: "boolean" }[] = [{name: "locations",description: "Separate the config properties into their respective config file locations. " +"Helpful to determine where configuration value is specified.",type: "boolean"},{name: "root",description: "List only the root level property names. " +"For example, specify in addition to '--locations' to get a list of config file paths only.",type: "boolean"}]

positionals

positionals: { description: string; name: string; type: "string" }[] = [{name: "property",description: "The config property to list. Blank to list all properties.",type: "string"}]

summary

summary: string = "list config properties"

type

type: "command" = "command"

Const listGroupWithOnlyProfileCommandSummary

listGroupWithOnlyProfileCommandSummary: object

message

message: string = `List {{type}} loaded profiles`

Const listGroupWithOnlyProfileDefaultDesc

listGroupWithOnlyProfileDefaultDesc: object

message

message: string = `Lists all known profiles for this command group. ` +`When you issue a command that requires a profile or set of ` +`profiles, said profiles are loaded by default (or according to override options on the command). You can use this ` +`command to review your configured profiles, and verify your default profile set.`

Const listGroupWithOnlyProfileSetDesc

listGroupWithOnlyProfileSetDesc: object

message

message: string = `To set the default profiles, use the " ` +`{{type}} ${Constants.DEFAULT_SET_GROUP} ${Constants.DEFAULT_SET_PROFILE_OBJECT}" command.`

Const listGroupWithOnlyProfilesDefinition

listGroupWithOnlyProfilesDefinition: object

message

message: string = `List the {{type}} profiles loaded.`

Const listGroupWithOnlyProfilesSummary

listGroupWithOnlyProfilesSummary: object

message

message: string = `List the {{type}} profiles loaded`

Const listProfileCommandDesc

listProfileCommandDesc: object

message

message: string = `List profiles of the type {{type}}.`

Const listProfileCommandSummary

listProfileCommandSummary: object

message

message: string = `List existing profiles`

Const listProfileExample

listProfileExample: object

message

message: string = `List profiles of type {{type}}`

Const listProfileExampleShowContents

listProfileExampleShowContents: object

message

message: string = `List profiles of type {{type}} and display their contents`

Const listProfileLoadedModulesOptionDesc

listProfileLoadedModulesOptionDesc: object

message

message: string = `List {{type}} ` +` profiles that are loaded as part of normal command execution. ` +`This will show you the default profiles being loaded.`

Const listProfileVerboseOptionDesc

listProfileVerboseOptionDesc: object

message

message: string = `List {{type}} ` +` profiles and their contents. ` +`All profile details will be printed as part of command output.`

Const listProfilesFoundMessage

listProfilesFoundMessage: object

message

message: string = `The following profiles were found of the type "{{type}}":`

Const listProfilesNotFoundMessage

listProfilesNotFoundMessage: object

message

message: string = `No profiles were found of the type "{{type}}".`

Const locateProfilesDesc

locateProfilesDesc: object

message

message: string = `Configuration profiles are located and used by searching in the following order,` +` ending the search when a profile is found:`

Const overroteProfileMessage

overroteProfileMessage: object

message

message: string = "Overwrote existing profile for {{profileOption}}."

Const profileCreateErrorDetails

profileCreateErrorDetails: object

message

message: string = "Error Details: {{errorDetails}}"

Const profileCreateErrorHeader

profileCreateErrorHeader: object

message

message: string = "Profile Create Error"

Const profileCreatedSuccessfully

profileCreatedSuccessfully: object

message

message: string = `Profile created successfully.`

Const profileCreatedSuccessfullyAndPath

profileCreatedSuccessfullyAndPath: object

message

message: string = `Profile created successfully! Path:`

Const profileDeleteErrorDetails

profileDeleteErrorDetails: object

message

message: string = "Error Details: {{errorDetails}}"

Const profileDeleteErrorHeader

profileDeleteErrorHeader: object

message

message: string = "Profile Deletion Error"

Const profileDeletedSuccessfully

profileDeletedSuccessfully: object

message

message: string = "Successfully deleted the following profile(s): "

Const profileDesc

profileDesc: object

message

message: string = `Configuration profiles are loaded based on the requirements ` +`of the command:`

Const profileLoadError

profileLoadError: object

message

message: string = `Error loading {{type}} profile: {{profileName}}.\n\n` +`Additional Details:\n\n`

Const profileNotDeletedMessage

profileNotDeletedMessage: object

message

message: string = "No profiles were deleted."

Const profileReviewMessage

profileReviewMessage: object

message

message: string = "Review the created profile and edit if necessary using the profile update command."

Const profileUpdatedSuccessfullyAndPath

profileUpdatedSuccessfullyAndPath: object

message

message: string = `Profile updated successfully! Path:`

Const profilesDefinition

profilesDefinition: object

Definition of the paths command.

description

description: string = "Displays profile paths."

examples

examples: { description: string; options: string }[] = [{description: "Display profile paths.",options: ""}]

handler

handler: string = join(__dirname, "profiles.handler")

name

name: string = "profiles"

summary

summary: string = "displays profile paths"

type

type: "command" = "command"

Const schemaDefinition

schemaDefinition: object

Definition of the paths command.

description

description: string = "Dumps the JSON schema for the config. " +"The schema is dynamically created based on your available plugins. " +"Direct the output of this command to a file and include in your config with '$schema' property to get editor completion."

examples

examples: { description: string; options: string }[] = [{description: "Display the JSON schema for the config.",options: ""}]

handler

handler: string = join(__dirname, "schema.handler")

name

name: string = "schema"

summary

summary: string = "dumps the JSON schema for the config"

type

type: "command" = "command"

Const secureDefinition

secureDefinition: object

description

description: string = "prompt for secure configuration properties"

examples

examples: { description: string; options: string }[] = [{description: "Secure the properties in global config.",options: "--global-config"},{description: "Secure the properties in user config.",options: "--user-config"}]

handler

handler: string = join(__dirname, "secure.handler")

name

name: string = "secure"

options

options: { aliases: string[]; defaultValue: boolean; description: string; name: string; type: "boolean" }[] = [{name: "global-config",description: "Secure properties in global config.",aliases: ["gc"],type: "boolean",defaultValue: false},{name: "user-config",description: "Secure properties in user config.",aliases: ["uc"],type: "boolean",defaultValue: false}]

summary

summary: string = "secure configuration properties"

type

type: "command" = "command"

Const selectProfileNameDesc

selectProfileNameDesc: object

message

message: string = `Specifies the name of the {{type}} ` +`profile to be used with this command. ` +`To see profiles that can be validated, issue the list action for this module. ` +`You can also load this profile by using the name on commands that support the ` +`"--{{typeOption}}" option.`

Const setDefinition

setDefinition: object

description

description: string = "create or update a configuration property"

examples

examples: { description: string; options: string }[] = [{description: "Set the property in global config.",options: `"profiles.host1.profiles.service1.properties.setting" "value" --global-config`},{description: "Set the property in user config.",options: `"profiles.host1.profiles.service2.properties.setting" "value" --user-config`},{description: "Set property value to JSON.",options: `"profiles.host1.profiles.service3.properties.setting" "{"property":"value"}" --json`},{description: "Store the property value",options: `"profiles.host1.profiles.service1.properties.setting" "value" --secure`}]

handler

handler: string = join(__dirname, "set.handler")

name

name: string = "set"

options

options: ({ aliases: string[]; defaultValue: boolean; description: string; name: string; type: "boolean" } | { defaultValue: boolean; description: string; name: string; type: "boolean" } | { description: string; name: string; type: "boolean" })[] = [{name: "global-config",description: "Set the property in global config.",aliases: ["gc"],type: "boolean",defaultValue: false},{name: "user-config",description: "Set the property in user config.",aliases: ["uc"],type: "boolean",defaultValue: false},{name: "json",description: "The property value is JSON.",type: "boolean",defaultValue: false},{name: "secure",description: "Store the property value securely. " +"If omitted, any property named in the secure array of the config file will be saved securely.",type: "boolean"}]

positionals

positionals: ({ description: string; name: string; required: true; type: "string" } | { description: string; name: string; type: "string" })[] = [{name: "property",description: "The property to set. You may specify a path using dot notation (e.g. profiles.host1.profiles.service1.properties.setting)",required: true,type: "string"},{name: "value",description: "The property value to set. The value may be JSON. Use '--json' to indicate.",type: "string"}]

summary

summary: string = "set configuration property"

type

type: "command" = "command"

Const setGroupWithOnlyProfilesCommandDesc

setGroupWithOnlyProfilesCommandDesc: object

message

message: string = `The {{type}} set ${Constants.DEFAULT_SET_PROFILE_OBJECT} command allows you to set the default profiles for ` +`this command group. When a {{type}} command is issued and no profile override options are ` +`specified, the default profiles for the command group are automatically loaded for the command based on the ` +`commands profile requirements.`

Const setGroupWithOnlyProfilesListDesc

setGroupWithOnlyProfilesListDesc: object

message

message: string = `To view the default profiles, use the " ` +`{{type}} ${Constants.DEFAULT_LIST_GROUP} ${Constants.DEFAULT_LIST_PROFILE_OBJECT}" command.`

Const setGroupWithOnlyProfilesSummary

setGroupWithOnlyProfilesSummary: object

message

message: string = `Set the defaultprofiles for the {{type}} group`

Const setProfileActionDesc

setProfileActionDesc: object

message

message: string = `${setProfileActionSummary.message}.`

Const setProfileActionSummary

setProfileActionSummary: object

message

message: string = `Set which profiles are loaded by default`

Const setProfileExample

setProfileExample: object

message

message: string = `Set the default profile for type {{type}} to the profile named '{{name}}'`

Const setProfileOptionDesc

setProfileOptionDesc: object

message

message: string = `Specify aprofile for default usage within the {{type}} group. ` +`When you issue commands within the {{type}} group without a profile specified as part of the command, the default ` +`will be loaded instead.`

Const showDependenciesCommandDesc

showDependenciesCommandDesc: object

message

message: string = `View all profiles which may be used within a selected group.`

Const syntaxErrorHeader

syntaxErrorHeader: object

message

message: string = `\nSyntax Error`

Const unableToCreateProfile

unableToCreateProfile: object

message

message: string = "Unable to create the requested profile."

Const unableToDeleteProfile

unableToDeleteProfile: object

message

message: string = "Not all requested profiles could be deleted."

Const unableToFindProfile

unableToFindProfile: object

message

message: string = "Could not find or load the supplied profile name. Error details: "

Const unableToLoadRequestedProfilesError

unableToLoadRequestedProfilesError: object

message

message: string = "Command processing cannot continue: Unable to load requested or default profiles."

Const unexpectedCommandError

unexpectedCommandError: object

message

message: string = "Unexpected Command Error"

Const unexpectedCommandPreparationError

unexpectedCommandPreparationError: object

message

message: string = "An unexpected command preparation error occurred:"

Const unexpectedProfileCreationError

unexpectedProfileCreationError: object

message

message: string = `An unexpected profile creation error occurred: \n{{unexpectedError}}`

Const unexpectedProfileLoadError

unexpectedProfileLoadError: object

message

message: string = "An unexpected profile load error occurred:"

Const unexpectedProfileUpdateError

unexpectedProfileUpdateError: object

message

message: string = `An unexpected profile update error occurred: \n{{unexpectedError}}`

Const unexpectedProfilesLoadError

unexpectedProfilesLoadError: object

message

message: string = "An unexpected error occurred while loading requested profiles:"

Const uninstallDefinition

uninstallDefinition: object

Definition of the uninstall command.

description

description: string = "Uninstall plug-ins."

examples

examples: { description: string; options: string }[] = [{description: "Uninstall a plug-in",options : "my-plugin"},]

handler

handler: string = join(__dirname, "uninstall.handler")

name

name: string = "uninstall"

positionals

positionals: { description: string; name: string; required: false; type: "string" }[] = [{name: "plugin...",type: "string",description: pluginDescription,required: false}]

summary

summary: string = "Uninstall a plug-in"

type

type: "command" = "command"

Const updateDefinition

updateDefinition: object

Definition of the update command.

description

description: string = "Update plug-ins."

examples

examples: { description: string; options: string }[] = [{description: "Update a plug-in",options : "my-plugin"},{description: "Update a remote plug-in from the registry which requires authorization" +"(don't need to use this flag if you have already logged in before)",options: "my-plugin --registry https://registry.npmjs.org/ --login"}]

handler

handler: string = join(__dirname, "update.handler")

name

name: string = "update"

options

options: ({ description: string; name: string; required: false; type: "string" } | { description: string; implies: string[]; name: string; required: false; type: "boolean" })[] = [{name: "registry",type: "string",description: registryDescription,required: false},{name: "login",type: "boolean",description: loginDescription,required: false,implies: ["registry"]}]

positionals

positionals: { description: string; name: string; required: false; type: "string" }[] = [{name: "plugin...",type: "string",description: pluginDescription,required: false}]

summary

summary: string = "Update a plug-in"

type

type: "command" = "command"

Const updateProfileActionDesc

updateProfileActionDesc: object

message

message: string = `Update a {{type}} profile`

Const updateProfileCommandDesc

updateProfileCommandDesc: object

message

message: string = `Update a {{type}} profile. ` +`You can update any property present within the profile configuration. The updated profile ` +`will be printed so that you can review the result of the updates.`

Const updateProfileCommandSummary

updateProfileCommandSummary: object

message

message: string = `Update existing profiles`

Const updateSchemasDefinition

updateSchemasDefinition: object

aliases

aliases: string[] = ["us"]

description

description: string = "Update schema files by looking up the directory structure.\n\n" +"Schema files up in higher level directories will always be updated. " +"To also update schema files down in lower level directories, specify the `--depth` flag."

examples

examples: { description: string; options: string }[] = [{description: "Update all schema files found in higher level directories",options: ``},{description: "Update all schema files found in higher level directories and 2 levels down the directory structure",options: `--depth 2`},]

handler

handler: string = join(__dirname, "update-schemas.handler")

name

name: string = "update-schemas"

options

options: { defaultValue: number; description: string; name: string; type: "number" }[] = [{name: "depth",description: "Specifies how many levels down the directory structure should the schemas be updated.",type: "number",defaultValue: 0},]

positionals

positionals: undefined[] = []

summary

summary: string = "update schema files"

type

type: "command" = "command"

Const validateDefinition

validateDefinition: object

Definition of the validate command.

description

description: string = "Validate a plug-in that has been installed."

examples

examples: { description: string; options: string }[] = [{description: `Validate a plug-in named my-plugin`,options : "my-plugin"},{description: "Validate all installed plug-ins",options : ""},{description: "Validate a plug-in named my-plugin, and treat warnings as errors",options : "my-plugin --fail-on-warning"}]

handler

handler: string = join(__dirname, "validate.handler")

name

name: string = "validate"

options

options: ({ aliases: string[]; defaultValue: boolean; description: string; name: string; required: false; type: "boolean" } | { aliases: string[]; defaultValue: boolean; description: string; implies: string[]; name: string; required: false; type: "boolean" })[] = [{name: "fail-on-error",aliases: ["foe"],type: "boolean",description: "Enables throwing an error and setting an error code if plugin validation detects an error",required: false,defaultValue: true},{name: "fail-on-warning",aliases: ["fow"],type: "boolean",description: "Treat validation warnings as errors. Requires fail-on-error.",required: false,defaultValue: false,implies: ["fail-on-error"]}]

positionals

positionals: { description: string; name: string; required: false; type: "string" }[] = [{name: "plugin",type: "string",description: pluginDescription,required: false}]

summary

summary: string = "Validate a plug-in"

type

type: "command" = "command"

Const validateProfileCommandDesc

validateProfileCommandDesc: object

message

message: string = `Test the validity of a {{type}} profile.`

Const validateProfileCommandSummary

validateProfileCommandSummary: object

message

message: string = `Test the validity of a profile`

Const validateProfileGroupDesc

validateProfileGroupDesc: object

message

message: string = `Test the validity of your profiles.`

Const validateProfileNameDesc

validateProfileNameDesc: object

message

message: string = `Specifies the name of the {{type}} ` +` profile to be validated. ` +`If the --print-plan-only option is specified, then only a plan to validate the specified profile will be displayed.`

Const validateProfileOptionDesc

validateProfileOptionDesc: object

message

message: string = `Validate the state of a group.`

Generated using TypeDoc