All notable changes to the Imperative package will be documented in this file.
- BugFix: Clean up uses of execSync in Imperative where it makes sense to do so.
- BugFix: Fixed dot-separated words incorrectly rendered as links in the web help. #869
- BugFix: Removed some extraneous dependencies. #477
- BugFix: Added ANSI escape codes trimming for the Web Help. #704
- BugFix: Fixed
AbstractRestClient
not converting LF line endings to CRLF for every line when downloading large files on Windows. zowe/zowe-cli#1458 - BugFix: Fixed
zowe --version --rfj
including a trailing newline in the version field. #842
- BugFix: Updated
cli-table3
dependency for performance improvements.
- BugFix: Fixed
plugins uninstall
command failing when there is a space in the install path.
- BugFix: Added the ability to read option values from aliases. Enhanced backward compatibility with V1 profiles.
- BugFix: Removed
moment
dependency.
- BugFix: Updated
moment
dependency.
- BugFix: Fixed AbstractRestClient returning compressed data in
causeErrors
property for streamed responses. #753
- Enhancement: Sorted output of
plugins list
command in alphabetical order to make it easier to read. #489 - Enhancement: Added
--short
option toplugins list
command to abbreviate its output. #743 - BugFix: Fixed single character options rendered in help with double dash instead of single dash. #638
- BugFix: Fixed an error where, in certain situations, the web help displays data for another command with the same name. #728
- BugFix: Fixed web help wrongly escaping characters inside code blocks. #730
- BugFix: Updated log4js and nanoid for improved security.
- BugFix: Fixed --hw not adding new lines when
\n
is present in the text. #715
- BugFix: Fixed AbstractRestClient silently failing to decompress last chunk of gzip-compressed binary data that is truncated.
- BugFix: Updated prettyjson and cli-table3 in order to lockdown the
colors
package. #719 - BugFix: Updated markdown-it to address a vulnerability. Snyk Report
- BugFix: Fixed an issue where plugin install and uninstall did not work with NPM version 8. #683
- Enhancement: Export the Imperative Command Tree on the data object of the
zowe --ac
command when--rfj
is specified.
- BugFix: Reverts hiding the cert-key-file path so users can see what path was specified and check if the file exists
- BugFix: Updated dependencies to resolve problems with the ansi-regex package
- Enhancement: Implemented the ability to authenticate using client certificates in PEM format.
- Bugfix: Updated js-yaml to resolve a potential security issue
- Enhancement: Improved command suggestions for mistyped commands, add aliases to command suggestions
- Enhancement: The
plugins validate
command returns an error code when plugins have errors if the new--fail-on-error
option is specified. Also added--fail-on-warning
option to return with an error code when plugins have warnings. #463 - BugFix: Fixed regression where characters are not correctly escaped in web help causing extra slashes ("") to appear. #644
- BugFix: Added missing periods at the end of command group descriptions for consistency. #55
- Performance: Improved the way that HTTP response chunks are saved, reducing time complexity from O(n2) to O(n). This dramatically improves performance for larger requests. #618
- BugFix: Fixed web help examples description typo at line 440 in
packages/cmd/src/CommandPreparer.ts
. #612 - BugFix: Fixed Markdown special characters not being escaped in web help for descriptions of positional options and examples. #620
- BugFix: Fixed subgroups not being displayed under their own heading in web help. #323
- BugFix: Fixed active command tree item not updating in web help when scrolling. #425
- BugFix: Fixed main page of web help not staying scrolled to top of page when loaded. #525
- Enhancement: Added headers[] option to TextUtils.getTable(). #369
- BugFix: Print a subset of the
stdout
andstderr
buffers when callingmProgressApi
'sendBar()
to prevent duplication of output. - Bugfix: Replaced
this
withImperativeConfig.instance
inImperativeConfig.getCallerFile()
. #5
- Enhancement: Added decompression support for REST responses with Content-Encoding
gzip
,deflate
, orbr
. #318
- BugFix: Added
Protocol
to the Error Details coming from theAbstractRestClient
. #539
- BugFix: Fixed vulnerabilities by replacing marked with markdown-it and sanitize-html.
- BugFix: Fixed plugin install failing to install package from private registry.
- Enhancement: Fixed plugin install commands which were broken in npm@7. #457
- BugFix: Fixed incorrect formatting of code blocks in web help. #535
- BugFix: Fixed vulnerabilities by updating marked
- BugFix: Fixed an issue when
TypeError
has been raised byLogger.getCallerFileAndLineTag()
when there was not filename for a stack frame. #449
- Enhancement: Added an
arrayAllowDuplicate
option to theICommandOptionDefinition
interface. By default, the option value is set totrue
and duplicate values are allowed in an array. Specifyfalse
if you want Imperative to throw an error for duplicate array values. #437
- BugFix: Updated
opener
dependency due to command injection vulnerability on Windows - GHSL-2020-145 - Enhancement: Expose
trim
parameter fromwrap-ansi
withinTextUtils.wordWrap()
- BugFix: Fixed an issue with
ConnectionPropsForSessCfg
where the user would be prompted for user/password even if a token was present. #436
- Enhancement: Added the SSO Callback function, which allows applications to call their own functions while validating session properties (i.e. host, port, user, password, token, etc...). The callback option is named
getValuesBack
. #422
- Enhancement: Added support for dynamically generated cookie names. Updated
AbstractSession.storeCookie()
to process cookie names that are not fully known at build-time. #431
- BugFix: Added support for creating an array with
allowableValues
. Previously, array type options could fail in the Syntax Validator. #428
- Fix update profile API storing secure fields incorrectly when called without CLI args
- Fix web help failing to load in Internet Explorer 11
- Fix
--help-web
not working on macOS when DISPLAY environment variable is undefined - Change type of
ISession.tokenType
to "string" (for compatiblity with versions older than 4.7.0).
- Hide sensitive session properties (user, password, and token value) in log file. Since 4.7.0, only password was hidden.
- Don't load token value into Session object if user or password are supplied
- Add the --dd flag to profile creation to allow the profile to be created without the default values specified for that profile.
- Use a token for authentication if a token is present in the underlying REST session object.
- Added a new ConnectionPropsForSessCfg.addPropsOrPrompt function that places credentials (including a possible token) into a session configuration object.
- Plugins must use this function to create their sessions to gain the features of automatic token-handling and prompting for missing connection options.
- Connection information is obtained from the command line, environment variables, a service profile, a base profile, or from an option's default value in a service profile's definition, in that order.
- If key connection information is not supplied to any cor Zowe command, the command will prompt for:
- host
- port
- user
- and password
- Any prompt will timeout after 30 seconds so that it will not hang an automated script.
- Add base profiles, a new type of profile which can store values shared between profiles of other types.
- The properties that are currently recognized in a base profile are:
- host
- port
- user
- password
- rejectUnauthorized
- tokenType
- tokenValue
- To use base profiles in an Imperative-based CLI, define a
baseProfile
schema on your Imperative configuration object. - If the
baseProfile
schema is defined, base profile support will be added to any command that uses profiles.
- The properties that are currently recognized in a base profile are:
- Due to new options (like tokenValue) help text will change. Plugin developers may have to update any mismatched snapshots in their automated tests.
- Updated the version of TypeScript from 3.7.4 to 3.8.0.
- Updated the version of TSLint from 5.x to 6.1.2.
- Add login and logout commands to get and delete/invalidate tokens
- Add showToken flag to display token only, and not save it to the user profile
- Add ability to create a user profile on login if no profile of that type existed previously
- Fix optional secure fields not deleted when overwriting a profile
- Update log4js to improve Webpack compatibility for extenders
- Fix vulnerabilities by updating yargs
- Update perf-timing version
- Add Bearer token in rest Session
- Fix allowable values not exactly matching input
- Fix absence of default value text when falsy values are used.
- Patched vulnerabilities.
- Fixed alignment of output from
zowe plugins list
command.
- Fix failure to load secure profile fields that are optional when no value is found. Thanks @tjohnsonBCM
- Don't load secure profile fields when deleting profile. Thanks @tjohnsonBCM
- Deprecate the interface
ICliILoadProfile
. UseICliLoadProfile
instead.
- Check that password is defined when
AbstractSession
uses auth. Thanks @apsychogirl - Expose
IRestOptions
type in the API. Thanks @apsychogirl
- Add
request
function toAbstractRestClient
that returns REST client object in response. Thanks @Alexandru-Dimitru - Deprecate the method
AbstractRestClient.performRest
. UseAbstractRestClient.request
instead.
- Support
prompt*
as a value for any CLI option to enable interactive prompting.
- Rename package from "@brightside/imperative" to "@zowe/imperative".
- Change name of config option "credential-manager" to "CredentialManager".