diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 00000000..3573899c --- /dev/null +++ b/.prettierignore @@ -0,0 +1 @@ +/templates \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..7c2feb7e --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "editor.formatOnSave": false +} diff --git a/src/ditamap/command.ts b/src/ditamap/command.ts index 6236d00b..4a303cf4 100644 --- a/src/ditamap/command.ts +++ b/src/ditamap/command.ts @@ -7,45 +7,42 @@ import { asString, Dictionary, ensureJsonMap, ensureObject, ensureString, JsonMap } from '@salesforce/ts-types'; import { join } from 'path'; -import { punctuate } from '../utils'; +import { helpFromDescription, punctuate } from '../utils'; import { Ditamap } from './ditamap'; +export type CommandHelpInfo = { + hidden: boolean; + description: string; + longDescription: string; + required: boolean; + kind: string; + type: string; +}; + export class Command extends Ditamap { constructor(topic: string, subtopic: string, command: Dictionary, commandMeta: JsonMap = {}) { const commandWithUnderscores = ensureString(command.id).replace(/:/g, '_'); const filename = `cli_reference_${commandWithUnderscores}.xml`; - const flags = ensureObject(command.flags); - super(filename, {}); - const parameters = Object.entries(flags) - .filter(([, flag]) => !flag.hidden) - .map(([flagName, flag]) => { - if (!flag.longDescription) { - flag.longDescription = punctuate(flag.description); - } - return Object.assign(flag, { - name: flagName, - longDescriptionPs: this.formatParagraphs(flag.longDescription), - optional: !flag.required, - kind: flag.kind || flag.type, - hasValue: flag.type !== 'boolean' - }); - }); + const flags = ensureObject(command.flags); + const parameters = this.getParametersForTemplate(flags as Dictionary); + // The template only expects a oneline description. Punctuate the first line of either the lingDescription or description. + const description = punctuate(asString(command.longDescription) || asString(command.description)); + // Help are all the lines after the first line in the description. Before oclif, there was a 'help' property so continue to + // support that. + const help = this.formatParagraphs(asString(command.help) || helpFromDescription(asString(command.description))); let trailblazerCommunityUrl; let trailblazerCommunityName; + if (commandMeta.trailblazerCommunityLink) { const community = ensureJsonMap(commandMeta.trailblazerCommunityLink); trailblazerCommunityUrl = community.url; trailblazerCommunityName = community.name; } - if (!command.longDescription) { - command.longDescription = punctuate(asString(command.description)); - } - let fullName: string; if (subtopic) { fullName = commandWithUnderscores.replace(`${topic}_${subtopic}_`, ''); @@ -57,8 +54,8 @@ export class Command extends Ditamap { binary: 'sfdx', // The old style didn't have the topic or subtopic in the reference ID. full_name_with_underscores: fullName, - helpPs: this.formatParagraphs(asString(command.help)), - longDescriptionPs: this.formatParagraphs(asString(command.longDescription)), + help, + description, parameters, isClosedPilotCommand: state === 'closedPilot', isOpenPilotCommand: state === 'openPilot', @@ -75,6 +72,24 @@ export class Command extends Ditamap { } } + public getParametersForTemplate(flags: Dictionary) { + Object.entries(flags) + .filter(([, flag]) => !flag.hidden) + .map(([flagName, flag]) => { + const description = this.formatParagraphs(flag.longDescription || punctuate(flag.description)); + if (!flag.longDescription) { + flag.longDescription = punctuate(flag.description); + } + return Object.assign(flag, { + name: flagName, + description, + optional: !flag.required, + kind: flag.kind || flag.type, + hasValue: flag.type !== 'boolean' + }); + }); + } + public getTemplateFileName(): string { return 'command.hbs'; } diff --git a/src/utils.ts b/src/utils.ts index d7a7169c..40460442 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -43,5 +43,14 @@ export function punctuate(description: string): string { if (mainDescription.charAt(mainDescription.length - 1) !== '.') { mainDescription += '.'; } - return [mainDescription, ...lines.slice(1)].join(EOL); + + return mainDescription; +} + +export function helpFromDescription(description: string): string { + return description + .split(EOL) + .slice(1) + .join(EOL) + .trim(); } diff --git a/templates/command.hbs b/templates/command.hbs index 87bf7773..282d5762 100644 --- a/templates/command.hbs +++ b/templates/command.hbs @@ -10,7 +10,7 @@ IF YOU WANT TO CHANGE THIS CONTENT, CONTACT rsears@salesforce.com FOR DETAILS. --> {{!--Not all commands have a minor noun; some are just commandmajornoun:commandverb. This is a sample topic for a commmand with no minor noun.--}} <ph id="topic-title"><codeph otherprops="nolang">{{id}}</codeph>{{#if isClosedPilotCommand}} (Pilot){{/if}}{{#if isOpenPilotCommand}} (Pilot){{/if}}{{#if isBetaCommand}} (Beta){{/if}}{{#if deprecated}} (Deprecated){{/if}}</ph> - {{#if deprecated}}The command {{id}} has been deprecated and will be removed in v{{nextVersion deprecated.version}}.0 or later. Use {{deprecated.to}} instead. {{/if}}{{#if longDescription}}{{longDescription}}{{else}}{{description}}{{/if}} + {{#if deprecated}}The command {{id}} has been deprecated and will be removed in v{{nextVersion deprecated.version}}.0 or later. Use {{deprecated.to}} instead. {{/if}}{{description}} {{!--In the future we’ll add keywords here.--}} @@ -81,7 +81,7 @@ IF YOU WANT TO CHANGE THIS CONTENT, CONTACT rsears@salesforce.com FOR DETAILS.
{{#if char}}-{{char}} | {{/if}}--{{name}}{{#if hasValue}} {{toUpperCase name}}{{/if}}
{{#if deprecated}}
The parameter --{{name}} has been deprecated and will be removed in v{{nextVersion deprecated.version}}.0 or later. Use {{deprecated.to}} instead.
{{/if}}
{{#if optional}}Optional{{else}}Required{{/if}}
-
{{#if longDescriptionPs}}{{#each longDescriptionPs}}

{{[]}}

{{/each}}{{else}}

{{description}}

{{/if}}
{{#if kind}} +

{{description}}

{{#if kind}}
Type: {{kind}}
{{/if}}{{#if options}}
Permissible values are: {{join options}}
{{/if}}{{#if default}}
Default value: {{default}}
{{/if}} @@ -90,11 +90,13 @@ IF YOU WANT TO CHANGE THIS CONTENT, CONTACT rsears@salesforce.com FOR DETAILS. {{/if}} + {{#if help}}
<ph>Help for <codeph otherprops="nolang">{{id}}</codeph></ph> - {{#each helpPs}} + {{#each help}} {{#isCodeBlock this}}{{this}}{{else}}

{{this}}

{{/isCodeBlock}} {{/each}}
+ {{/if}} diff --git a/test/utils.test.ts b/test/utils.test.ts index 228cc990..41355a79 100644 --- a/test/utils.test.ts +++ b/test/utils.test.ts @@ -46,7 +46,7 @@ describe('punctuate', () => { it('multi line descriptions to longDescriptions', () => { expect(punctuate(`lowercase oclif description${EOL}${EOL}some other stuff`)).to.equal( - `Lowercase oclif description.${EOL}${EOL}some other stuff` + 'Lowercase oclif description.' ); }); diff --git a/yarn.lock b/yarn.lock index 84098679..d8ce8942 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,12 +9,12 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/generator@^7.10.5", "@babel/generator@^7.4.0": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.10.5.tgz#1b903554bc8c583ee8d25f1e8969732e6b829a69" - integrity sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig== +"@babel/generator@^7.11.0", "@babel/generator@^7.4.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.0.tgz#4b90c78d8c12825024568cbe83ee6c9af193585c" + integrity sha512-fEm3Uzw7Mc9Xi//qU20cBKatTfs2aOtKqmvy/Vm7RkJEGFQ4xc9myCfbXxqK//ZS8MR/ciOHw6meGASJuKmDfQ== dependencies: - "@babel/types" "^7.10.5" + "@babel/types" "^7.11.0" jsesc "^2.5.1" source-map "^0.5.0" @@ -34,12 +34,12 @@ dependencies: "@babel/types" "^7.10.4" -"@babel/helper-split-export-declaration@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz#2c70576eaa3b5609b24cb99db2888cc3fc4251d1" - integrity sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg== +"@babel/helper-split-export-declaration@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f" + integrity sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg== dependencies: - "@babel/types" "^7.10.4" + "@babel/types" "^7.11.0" "@babel/helper-validator-identifier@^7.10.4": version "7.10.4" @@ -55,10 +55,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.10.4", "@babel/parser@^7.10.5", "@babel/parser@^7.4.3": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.10.5.tgz#e7c6bf5a7deff957cec9f04b551e2762909d826b" - integrity sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ== +"@babel/parser@^7.10.4", "@babel/parser@^7.11.0", "@babel/parser@^7.4.3": + version "7.11.2" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.2.tgz#0882ab8a455df3065ea2dcb4c753b2460a24bead" + integrity sha512-Vuj/+7vLo6l1Vi7uuO+1ngCDNeVmNbTngcJFKCR/oEtz8tKz0CJxZEGmPt9KcIloZhOZ3Zit6xbpXT2MDlS9Vw== "@babel/template@^7.10.4", "@babel/template@^7.4.0": version "7.10.4" @@ -70,24 +70,24 @@ "@babel/types" "^7.10.4" "@babel/traverse@^7.4.3": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.10.5.tgz#77ce464f5b258be265af618d8fddf0536f20b564" - integrity sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ== + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.0.tgz#9b996ce1b98f53f7c3e4175115605d56ed07dd24" + integrity sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg== dependencies: "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.10.5" + "@babel/generator" "^7.11.0" "@babel/helper-function-name" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.10.4" - "@babel/parser" "^7.10.5" - "@babel/types" "^7.10.5" + "@babel/helper-split-export-declaration" "^7.11.0" + "@babel/parser" "^7.11.0" + "@babel/types" "^7.11.0" debug "^4.1.0" globals "^11.1.0" lodash "^4.17.19" -"@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.4.0": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.10.5.tgz#d88ae7e2fde86bfbfe851d4d81afa70a997b5d15" - integrity sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q== +"@babel/types@^7.10.4", "@babel/types@^7.11.0", "@babel/types@^7.4.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.0.tgz#2ae6bf1ba9ae8c3c43824e5861269871b206e90d" + integrity sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA== dependencies: "@babel/helper-validator-identifier" "^7.10.4" lodash "^4.17.19" @@ -285,16 +285,16 @@ fastq "^1.6.0" "@oclif/command@^1", "@oclif/command@^1.5.13", "@oclif/command@^1.5.16", "@oclif/command@^1.5.17", "@oclif/command@^1.5.19", "@oclif/command@^1.5.20", "@oclif/command@^1.6.0": - version "1.7.0" - resolved "https://registry.yarnpkg.com/@oclif/command/-/command-1.7.0.tgz#194dcc0be58f24470d884ff0cc09ed78c623b2a4" - integrity sha512-TkknFtWcZI8te0E8sW+ohiblExrLx73rIcV4KdIzDX01u+oTZWZaap51F6TSGFnR/Gey0WctaDvJhZlt4xgKdA== + version "1.8.0" + resolved "https://registry.yarnpkg.com/@oclif/command/-/command-1.8.0.tgz#c1a499b10d26e9d1a611190a81005589accbb339" + integrity sha512-5vwpq6kbvwkQwKqAoOU3L72GZ3Ta8RRrewKj9OJRolx28KLJJ8Dg9Rf7obRwt5jQA9bkYd8gqzMTrI7H3xLfaw== dependencies: "@oclif/config" "^1.15.1" "@oclif/errors" "^1.3.3" "@oclif/parser" "^3.8.3" "@oclif/plugin-help" "^3" debug "^4.1.1" - semver "^5.6.0" + semver "^7.3.2" "@oclif/config@1.13.3": version "1.13.3" @@ -306,16 +306,16 @@ tslib "^1.9.3" "@oclif/config@^1", "@oclif/config@^1.12.12", "@oclif/config@^1.14.0", "@oclif/config@^1.15.1": - version "1.16.0" - resolved "https://registry.yarnpkg.com/@oclif/config/-/config-1.16.0.tgz#fffe9939f1a7fac1e45e532b5c785381257f8aa6" - integrity sha512-vOnMPQcHokC03WBCuLipTxksTwgZcmDOnH2H0UHqndfKKN9GVDzpZTH6zaFVQBdjTME5VtRzg9A2UaNmq6OXWw== + version "1.17.0" + resolved "https://registry.yarnpkg.com/@oclif/config/-/config-1.17.0.tgz#ba8639118633102a7e481760c50054623d09fcab" + integrity sha512-Lmfuf6ubjQ4ifC/9bz1fSCHc6F6E653oyaRXxg+lgT4+bYf9bk+nqrUpAbrXyABkCqgIBiFr3J4zR/kiFdE1PA== dependencies: "@oclif/errors" "^1.3.3" "@oclif/parser" "^3.8.0" debug "^4.1.1" globby "^11.0.1" is-wsl "^2.1.1" - tslib "^1.9.3" + tslib "^2.0.0" "@oclif/dev-cli@^1.22.2": version "1.22.2" @@ -376,18 +376,18 @@ wrap-ansi "^4.0.0" "@oclif/plugin-help@^3": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@oclif/plugin-help/-/plugin-help-3.1.0.tgz#507ff8e9cabe734672b12d1ec0b79812d18c58a8" - integrity sha512-orSWpXGlJaX16eSjAtI8scA8QhrjQOaCSHodEx52t18JKbIVzG8jcngugyWAOB/V4jhPl0rdiVk9XFsaIIiG2g== + version "3.2.0" + resolved "https://registry.yarnpkg.com/@oclif/plugin-help/-/plugin-help-3.2.0.tgz#b2c1112f49202ebce042f86b2e42e49908172ef1" + integrity sha512-7jxtpwVWAVbp1r46ZnTK/uF+FeZc6y4p1XcGaIUuPAp7wx6NJhIRN/iMT9UfNFX/Cz7mq+OyJz+E+i0zrik86g== dependencies: "@oclif/command" "^1.5.20" "@oclif/config" "^1.15.1" chalk "^2.4.1" indent-string "^4.0.0" lodash.template "^4.4.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - widest-line "^2.0.1" + string-width "^4.2.0" + strip-ansi "^6.0.0" + widest-line "^3.1.0" wrap-ansi "^4.0.0" "@oclif/screen@^1.0.3": @@ -500,9 +500,9 @@ "@types/node" ">= 8" "@octokit/types@^5.0.0", "@octokit/types@^5.0.1", "@octokit/types@^5.2.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-5.2.0.tgz#d075dc23bf293f540739250b6879e2c1be2fc20c" - integrity sha512-XjOk9y4m8xTLIKPe1NFxNWBdzA2/z3PFFA/bwf4EoH6oS8hM0Y46mEa4Cb+KCyj/tFDznJFahzQ0Aj3o1FYq4A== + version "5.2.1" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-5.2.1.tgz#c212f03b0492faf215fa2ae506d5ec18038c2a36" + integrity sha512-PugtgEw8u++zAyBpDpSkR8K1OsT2l8QWp3ECL6bZHFoq9PfHDoKeGFWSuX2Z+Ghy93k1fkKf8tsmqNBv+8dEfQ== dependencies: "@types/node" ">= 8" @@ -551,9 +551,9 @@ cli-ux "^4.9.3" "@salesforce/core@^2.1.4", "@salesforce/core@^2.1.6", "@salesforce/core@^2.2.0", "@salesforce/core@^2.6.0": - version "2.9.0" - resolved "https://registry.yarnpkg.com/@salesforce/core/-/core-2.9.0.tgz#380996f5069433ec13a5e5b4e35890b3654fb871" - integrity sha512-z0ICMx7iaVb0gOu8zC2TnV4PP9pcCBGzVzQ1s5Xx6IrksgnYbe1xKGAxqxpoWWXSRuvKSmRsaJrf4rZHhDKFZQ== + version "2.9.1" + resolved "https://registry.yarnpkg.com/@salesforce/core/-/core-2.9.1.tgz#e936ec6664710183ae644e3106763319a9bbfe13" + integrity sha512-p3gamkPVkzbc5PUs+JzUoXWXVMQVGCKZUDpvORMsEiQIBUNBMP+SM+5mhbJCTc1k2nVSYfAtbgnqOjr8PCLp2g== dependencies: "@salesforce/bunyan" "^2.0.0" "@salesforce/kit" "^1.2.2" @@ -971,9 +971,9 @@ acorn-jsx@^5.2.0: integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ== acorn@^7.1.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.3.1.tgz#85010754db53c3fbaf3b9ea3e083aa5c5d147ffd" - integrity sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA== + version "7.4.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.0.tgz#e1ad486e6c54501634c6c397c5c121daa383607c" + integrity sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w== adm-zip@0.4.13: version "0.4.13" @@ -1016,7 +1016,7 @@ aggregate-error@^3.0.0: clean-stack "^2.0.0" indent-string "^4.0.0" -ajv@^6.10.0, ajv@^6.10.2, ajv@^6.5.5: +ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3: version "6.12.3" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.3.tgz#18c5af38a111ddeb4f2697bd78d68abc1cabd706" integrity sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA== @@ -1103,9 +1103,9 @@ append-transform@^1.0.0: default-require-extensions "^2.0.0" applicationinsights@^1.4.0: - version "1.8.2" - resolved "https://registry.yarnpkg.com/applicationinsights/-/applicationinsights-1.8.2.tgz#d1ac5bbc6172ec91ef213903e40683dab9325492" - integrity sha512-m0G9oBBnKG39mzM++heTjMPbl09Fx3mInOKbmTchsVxMhNeCZ8BSfBS/HwS4CcL7MXhmH4Td1QYVGWo/he+sHw== + version "1.8.4" + resolved "https://registry.yarnpkg.com/applicationinsights/-/applicationinsights-1.8.4.tgz#e00d282149695bdcf097872e6f396be6250ae8e3" + integrity sha512-pxwAC0KrSbdJn62HDixyoa36+yxNeM+pMcbfeOC2VUsr6FSnZE5Y+HXnAC4XcDvzdGGOSUVgTP8JSHl+gNa7ow== dependencies: cls-hooked "^4.2.2" continuation-local-storage "^3.2.1" @@ -2534,9 +2534,9 @@ dayjs-plugin-utc@^0.1.2: integrity sha512-ExERH5o3oo6jFOdkvMP3gytTCQ9Ksi5PtylclJWghr7k7m3o2U5QrwtdiJkOxLOH4ghr0EKhpqGefzGz1VvVJg== dayjs@^1.8.16: - version "1.8.31" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.8.31.tgz#0cd1114c2539dd5ad9428be0c38df6d4bb40b9d3" - integrity sha512-mPh1mslned+5PuIuiUfbw4CikHk6AEAf2Baxih+wP5fssv+wmlVhvgZ7mq+BhLt7Sr/Hc8leWDiwe6YnrpNt3g== + version "1.8.32" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.8.32.tgz#66c48b95c397d9f7907e89bd29f78b3d19d40294" + integrity sha512-V91aTRu5btP+uzGHaaOfodckEfBWhmi9foRP7cauAO1PTB8+tZ9o0Jec7q6TIIRY1N4q1IfiKsZunkB/AEWqMQ== debug@3.1.0, debug@=3.1.0: version "3.1.0" @@ -3094,9 +3094,9 @@ estraverse@^4.1.0, estraverse@^4.1.1: integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== estraverse@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642" - integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw== + version "5.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== esutils@^2.0.2: version "2.0.3" @@ -3329,9 +3329,9 @@ faye-websocket@~0.9.1: websocket-driver ">=0.5.1" faye@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/faye/-/faye-1.3.0.tgz#a8139ad9c45eef4d5faaa52a23d2b92c38d7254b" - integrity sha512-l+IzAmEsT2OCVeGbLfZBpm8HeHQYVelkqKWNE0LA/k68jhVIT/qzHTXLygURrLpKweqiaTBCtzxxO5JTQ+dnFQ== + version "1.4.0" + resolved "https://registry.yarnpkg.com/faye/-/faye-1.4.0.tgz#01d3d26ed5642c1cb203eed358afb1c1444b8669" + integrity sha512-kRrIg4be8VNYhycS2PY//hpBJSzZPr/DBbcy9VWelhZMW3KhyLkQR0HL0k0MNpmVoNFF4EdfMFkNAWjTP65g6w== dependencies: asap "*" csprng "*" @@ -4003,11 +4003,11 @@ har-schema@^2.0.0: integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= har-validator@~5.1.0, har-validator@~5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" - integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== dependencies: - ajv "^6.5.5" + ajv "^6.12.3" har-schema "^2.0.0" hard-rejection@^2.1.0: @@ -4585,9 +4585,9 @@ is-directory@^0.3.1: integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= is-docker@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.0.0.tgz#2cb0df0e75e2d064fe1864c37cdeacb7b2dcf25b" - integrity sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ== + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.1.1.tgz#4125a88e44e450d384e09047ede71adc2d144156" + integrity sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw== is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" @@ -4712,9 +4712,9 @@ is-redirect@^1.0.0: integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= is-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.0.tgz#ece38e389e490df0dc21caea2bd596f987f767ff" - integrity sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw== + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" + integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== dependencies: has-symbols "^1.0.1" @@ -6303,9 +6303,9 @@ normalize-url@2.0.1: sort-keys "^2.0.0" normalize-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-5.0.0.tgz#f46c9dc20670495e4e18fbd1b4396e41d199f63c" - integrity sha512-bAEm2fx8Dq/a35Z6PIRkkBBJvR56BbEJvhpNtvCZ4W9FyORSna77fn+xtYFjqk5JpBS+fMnAOG/wFgkQBmB7hw== + version "5.1.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-5.1.0.tgz#04b8f1b34ea49ff713fc20b2218eba41fb9974a3" + integrity sha512-UxHuSWsSAmzSqN+DSjasaZWQ3QPtEisHdlr4y9MJ5zg0RcImv5fQt8QM0izJSCdsdmhJGK+ubcTpJXwVDmwSVQ== npm-api@^1.0.0: version "1.0.0" @@ -6691,9 +6691,9 @@ onetime@^2.0.0: mimic-fn "^1.0.0" onetime@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" - integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== + version "5.1.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.1.tgz#5c8016847b0d67fcedb7eef254751cfcdc7e9418" + integrity sha512-ZpZpjcJeugQfWsfyQlshVoowIIQ1qBGSVll4rfDq6JJVO//fesjoX808hXWfBjY+ROZgpKDI5TRSRBSoJiZ8eg== dependencies: mimic-fn "^2.1.0" @@ -7965,9 +7965,9 @@ rx-lite@*, rx-lite@^4.0.8: integrity sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ= rxjs@>=6.4.0, rxjs@^6.4.0, rxjs@^6.6.0: - version "6.6.0" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.0.tgz#af2901eedf02e3a83ffa7f886240ff9018bbec84" - integrity sha512-3HMA8z/Oz61DUHe+SdOiQyzIf4tOx5oQHmMir7IZEu6TMqCLHT4LRcmNaUS0NwOz8VLvmmBduMsoaUvMaIiqzg== + version "6.6.2" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.2.tgz#8096a7ac03f2cc4fe5860ef6e572810d9e01c0d2" + integrity sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg== dependencies: tslib "^1.9.0" @@ -8679,7 +8679,7 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string-width@^4.1.0, string-width@^4.2.0: +string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== @@ -9298,9 +9298,9 @@ typescript@3.7.x, typescript@~3.7.4: integrity sha512-/P5lkRXkWHNAbcJIiHPfRoKqyd7bsyCma1hZNUGfn20qm64T6ZBlrzprymeu918H+mB/0rIg2gGK/BXkhhYgBw== uglify-js@^3.1.4: - version "3.10.0" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.10.0.tgz#397a7e6e31ce820bfd1cb55b804ee140c587a9e7" - integrity sha512-Esj5HG5WAyrLIdYU74Z3JdG2PxdIusvj6IWHMtlyESxc7kcDz7zYlYjpnSokn1UbpV0d/QX9fan7gkCNd/9BQA== + version "3.10.1" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.10.1.tgz#dd14767eb7150de97f2573a5ff210db14fffe4ad" + integrity sha512-RjxApKkrPJB6kjJxQS3iZlf///REXWYxYJxO/MpmlQzVkDWVI3PSnCBWezMecmTU/TRkNxrl8bmsfFQCp+LO+Q== uid-number@0.0.6: version "0.0.6" @@ -9641,6 +9641,13 @@ widest-line@^2.0.0, widest-line@^2.0.1: dependencies: string-width "^2.1.1" +widest-line@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" + integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== + dependencies: + string-width "^4.0.0" + windows-release@^3.1.0: version "3.3.1" resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-3.3.1.tgz#cb4e80385f8550f709727287bf71035e209c4ace"