diff --git a/lib/bootstrap.ts b/lib/bootstrap.ts index f2dba61abc..024cd730dd 100644 --- a/lib/bootstrap.ts +++ b/lib/bootstrap.ts @@ -188,6 +188,7 @@ injector.requireCommand("preview", "./commands/preview"); injector.requireCommand("debug|ios", "./commands/debug"); injector.requireCommand("debug|android", "./commands/debug"); +injector.requireCommand("fonts", "./commands/fonts"); injector.requireCommand("prepare", "./commands/prepare"); injector.requireCommand("build|ios", "./commands/build"); diff --git a/lib/commands/fonts.ts b/lib/commands/fonts.ts new file mode 100644 index 0000000000..bcdf0a996e --- /dev/null +++ b/lib/commands/fonts.ts @@ -0,0 +1,69 @@ +import { IProjectConfigService, IProjectData } from "../definitions/project"; +import { ICommand, ICommandParameter } from "../common/definitions/commands"; +import { injector } from "../common/yok"; +import { IFileSystem } from "../common/declarations"; +import * as constants from "../constants"; +import * as fontFinder from "font-finder"; +import { createTable } from "../common/helpers"; +import * as path from "path"; + +export class FontsCommand implements ICommand { + public allowedParameters: ICommandParameter[] = []; + + constructor( + private $projectData: IProjectData, + private $fs: IFileSystem, + private $logger: ILogger, + private $projectConfigService: IProjectConfigService + ) { + this.$projectData.initializeProjectData(); + } + + public async execute(args: string[]): Promise { + const supportedExtensions = [".ttf", ".otf"]; + + const defaultFontsFolderPaths = [ + path.join( + this.$projectConfigService.getValue("appPath") ?? "", + constants.FONTS_DIR + ), + path.join(constants.APP_FOLDER_NAME, constants.FONTS_DIR), + path.join(constants.SRC_DIR, constants.FONTS_DIR), + ].map((entry) => path.resolve(this.$projectData.projectDir, entry)); + + const fontsFolderPath = defaultFontsFolderPaths.find((entry) => + this.$fs.exists(entry) + ); + + if (!fontsFolderPath) { + this.$logger.warn("No fonts folder found."); + return; + } + + const files = this.$fs + .readDirectory(fontsFolderPath) + .map((entry) => path.parse(entry)) + .filter((entry) => { + return supportedExtensions.includes(entry.ext); + }); + + if (!files.length) { + this.$logger.warn("No custom fonts found."); + return; + } + + const table: any = createTable(["Font", "CSS Properties"], []); + + for (const file of files) { + const font = await fontFinder.get(fontsFolderPath + "/" + file.base); + table.push([ + file.base, + `font-family: "${font.name}", "${file.name}"; font-weight: ${font.weight};`, + ]); + } + + this.$logger.info(table.toString()); + } +} + +injector.registerCommand("fonts", FontsCommand); diff --git a/lib/constants.ts b/lib/constants.ts index 625aad2b09..79c8ffc473 100644 --- a/lib/constants.ts +++ b/lib/constants.ts @@ -45,6 +45,7 @@ export const AWAIT_NOTIFICATION_TIMEOUT_SECONDS = 9; export const SRC_DIR = "src"; export const MAIN_DIR = "main"; export const ASSETS_DIR = "assets"; +export const FONTS_DIR = "fonts"; export const ANDROID_ANALYTICS_DATA_DIR = "analytics"; export const ANDROID_ANALYTICS_DATA_FILE = "build-statistics.json"; export const MANIFEST_FILE_NAME = "AndroidManifest.xml"; diff --git a/package-lock.json b/package-lock.json index ec7388ad21..8aab638501 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7300,6 +7300,15 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz", "integrity": "sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==" }, + "font-finder": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/font-finder/-/font-finder-1.1.0.tgz", + "integrity": "sha512-wpCL2uIbi6GurJbU7ZlQ3nGd61Ho+dSU6U83/xJT5UPFfN35EeCW/rOtS+5k+IuEZu2SYmHzDIPL9eA5tSYRAw==", + "requires": { + "get-system-fonts": "^2.0.0", + "promise-stream-reader": "^1.0.1" + } + }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", @@ -7599,6 +7608,11 @@ "pump": "^3.0.0" } }, + "get-system-fonts": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-system-fonts/-/get-system-fonts-2.0.2.tgz", + "integrity": "sha512-zzlgaYnHMIEgHRrfC7x0Qp0Ylhw/sHpM6MHXeVBTYIsvGf5GpbnClB+Q6rAPdn+0gd2oZZIo6Tj3EaWrt4VhDQ==" + }, "get-uri": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-2.0.4.tgz", @@ -12245,6 +12259,11 @@ "retry": "^0.10.0" } }, + "promise-stream-reader": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-stream-reader/-/promise-stream-reader-1.0.1.tgz", + "integrity": "sha512-Tnxit5trUjBAqqZCGWwjyxhmgMN4hGrtpW3Oc/tRI4bpm/O2+ej72BB08l6JBnGQgVDGCLvHFGjGgQS6vzhwXg==" + }, "promise.allsettled": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/promise.allsettled/-/promise.allsettled-1.0.2.tgz", diff --git a/package.json b/package.json index 22484f5f6e..8997ca3683 100644 --- a/package.json +++ b/package.json @@ -68,6 +68,7 @@ "detect-newline": "3.1.0", "email-validator": "2.0.4", "esprima": "4.0.1", + "font-finder": "1.1.0", "glob": "7.1.6", "ios-device-lib": "0.8.0-rc.1", "ios-mobileprovision-finder": "1.0.11", diff --git a/yarn.lock b/yarn.lock index ea53576ebe..83db0814a8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -328,10 +328,22 @@ "@babel/runtime" "^7.7.2" regenerator-runtime "^0.13.3" -"@nativescript/doctor@^2.0.3": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@nativescript/doctor/-/doctor-2.0.3.tgz#c16fad1b5bcc46e061484760b880e19b25e79f31" - integrity sha512-m98wngxYkob2Nc439PjmjOSISov8WnTU62q4hv2rMwExAYyqqIordUFZaKLjrnTRvRKh/HiMQW+2hGhrCFEFvw== +"@kwsites/file-exists@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@kwsites/file-exists/-/file-exists-1.1.1.tgz#ad1efcac13e1987d8dbaf235ef3be5b0d96faa99" + integrity sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw== + dependencies: + debug "^4.1.1" + +"@kwsites/promise-deferred@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz#8ace5259254426ccef57f3175bc64ed7095ed919" + integrity sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw== + +"@nativescript/doctor@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@nativescript/doctor/-/doctor-2.0.4.tgz#a6d676bc56b34f1e17e6b5c5fd899cce177faff6" + integrity sha512-rRhigr30GkNI1OZ16K8NnDTrjmnvV84X9jccLA4DKrn6Lx8XpRJta6Er76GQUG7LURhi5pYjT6awLQ9uec4ceg== dependencies: lodash "4.17.15" osenv "0.1.3" @@ -1142,11 +1154,6 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= -base64-js@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.6.tgz#7b859f79f0bbbd55867ba67a7fab397e24a20947" - integrity sha1-e4WfefC7vVWGe6Z6f6s5fiSiCUc= - base64-js@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1" @@ -1643,6 +1650,15 @@ cliui@^6.0.0: strip-ansi "^6.0.0" wrap-ansi "^6.2.0" +cliui@^7.0.0: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + clone-response@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" @@ -2073,6 +2089,13 @@ debug@4, debug@^4.1.0, debug@^4.1.1: dependencies: ms "^2.1.1" +debug@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== + dependencies: + ms "2.1.2" + debuglog@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" @@ -2410,6 +2433,11 @@ es6-promisify@^5.0.0: dependencies: es6-promise "^4.0.3" +escalade@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -2904,7 +2932,7 @@ get-caller-file@^1.0.1: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== -get-caller-file@^2.0.1: +get-caller-file@^2.0.1, get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== @@ -3613,10 +3641,10 @@ invert-kv@^1.0.0: resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= -ios-device-lib@0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/ios-device-lib/-/ios-device-lib-0.7.3.tgz#f8c13c210930f1ff3d3ec8c68d2aaa9e3fc771a5" - integrity sha512-K9hg7JBAh7K/xtL5y9oblxXoatLr+MQbDPvqhaDL22JlbGx1zc8YaEG+UOfWSEfJN5uyrmQS475YQ9YvkPHe4A== +ios-device-lib@0.8.0-rc.1: + version "0.8.0-rc.1" + resolved "https://registry.yarnpkg.com/ios-device-lib/-/ios-device-lib-0.8.0-rc.1.tgz#0e4bb3296552922957069862e77ace8f05098edc" + integrity sha512-8Y4BgzSDb1P/aEyDomnnzbz7aekebzP4+If+g/uIIr8QsFOravEeWHk5uJAATCBZgb0eWrU81IvO++AyQw83Wg== dependencies: bufferpack "0.0.6" node-uuid "1.4.7" @@ -3630,18 +3658,18 @@ ios-mobileprovision-finder@1.0.11: plist "^2.0.1" yargs "^6.5.0" -ios-sim-portable@4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/ios-sim-portable/-/ios-sim-portable-4.2.0.tgz#9e89ddc2d38e39fb66054d8a1e5af6de609991e5" - integrity sha512-/xoxMqJnqMxjKUFlwr+VSEGJCrLrRiBZBlyqfowoVe+hwIAKiRMoSoOqbeuMBVJxF5rsmIskM+iif+GqtQf/zQ== +ios-sim-portable@4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/ios-sim-portable/-/ios-sim-portable-4.2.1.tgz#95eff49827c2937f53556592aad47a13a3beecab" + integrity sha512-vVy/fLYTDt7abfvaJfkvg/mZaM8dRPEgz9m+e6Ktjf/YY+yAuk5bMDZK0HRx7pFW675lYSiDoAr0y5OnOfDcbA== dependencies: bplist-parser "https://github.com/telerik/node-bplist-parser/tarball/master" colors "~1.4.0" - lodash "~4.0.0" + lodash "~4.17.15" osenv "~0.1.5" - plist "1.1.0" + plist "3.0.1" shelljs "~0.8.4" - yargs "~15.3.1" + yargs "~16.0.3" ip@1.1.5, ip@^1.1.4, ip@^1.1.5: version "1.1.5" @@ -4345,11 +4373,6 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" -lodash-node@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash-node/-/lodash-node-2.4.1.tgz#ea82f7b100c733d1a42af76801e506105e2a80ec" - integrity sha1-6oL3sQDHM9GkKvdoAeUGEF4qgOw= - lodash._reinterpolate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" @@ -4410,10 +4433,10 @@ lodash@4.17.4: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" integrity sha1-eCA6TRwyiuHYbcpkYONptX9AVa4= -lodash@~4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.0.1.tgz#cd8c902c9e03f2e69ce3e0e456d505ab89eb98f4" - integrity sha1-zYyQLJ4D8uac4+DkVtUFq4nrmPQ= +lodash@~4.17.15: + version "4.17.20" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" + integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== log-symbols@3.0.0, log-symbols@^3.0.0: version "3.0.0" @@ -5759,16 +5782,6 @@ plist-merge-patch@0.1.1: lodash "4.17.4" plist "2.1.0" -plist@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/plist/-/plist-1.1.0.tgz#ff6708590c97cc438e7bc45de5251bd725f3f89d" - integrity sha1-/2cIWQyXzEOOe8Rd5SUb1yXz+J0= - dependencies: - base64-js "0.0.6" - util-deprecate "1.0.0" - xmlbuilder "2.2.1" - xmldom "0.1.x" - plist@2.1.0, plist@^2.0.1: version "2.1.0" resolved "https://registry.yarnpkg.com/plist/-/plist-2.1.0.tgz#57ccdb7a0821df21831217a3cad54e3e146a1025" @@ -6539,6 +6552,15 @@ signal-exit@^3.0.0, signal-exit@^3.0.2: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= +simple-git@^2.20.1: + version "2.31.0" + resolved "https://registry.yarnpkg.com/simple-git/-/simple-git-2.31.0.tgz#3e5954c1e36c76fb382c08eaa2749a206db9f613" + integrity sha512-/+rmE7dYZMbRAfEmn8EUIOwlM2G7UdzpkC60KF86YAfXGnmGtsPrKsym0hKvLBdFLLW019C+aZld1+6iIVy5xA== + dependencies: + "@kwsites/file-exists" "^1.1.1" + "@kwsites/promise-deferred" "^1.1.1" + debug "^4.3.1" + simple-plist@1.1.0, simple-plist@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/simple-plist/-/simple-plist-1.1.0.tgz#8354ab63eb3922a054c78ce96c209c532e907a23" @@ -7489,11 +7511,6 @@ utif@^2.0.1: dependencies: pako "^1.0.5" -util-deprecate@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.0.tgz#3007af012c140eae26de05576ec22785cac3abf2" - integrity sha1-MAevASwUDq4m3gVXbsInhcrDq/I= - util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -7661,6 +7678,15 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -7703,13 +7729,6 @@ xml2js@^0.4.19, xml2js@^0.4.5: util.promisify "~1.0.0" xmlbuilder "~11.0.0" -xmlbuilder@2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-2.2.1.tgz#9326430f130d87435d4c4086643aa2926e105a32" - integrity sha1-kyZDDxMNh0NdTECGZDqikm4QWjI= - dependencies: - lodash-node "~2.4.1" - xmlbuilder@8.2.2: version "8.2.2" resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-8.2.2.tgz#69248673410b4ba42e1a6136551d2922335aa773" @@ -7755,6 +7774,11 @@ y18n@^4.0.0: resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== +y18n@^5.0.1: + version "5.0.5" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18" + integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg== + yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" @@ -7791,7 +7815,7 @@ yargs-parser@^15.0.1: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^18.1.1, yargs-parser@^18.1.2, yargs-parser@^18.1.3: +yargs-parser@^18.1.2, yargs-parser@^18.1.3: version "18.1.3" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== @@ -7799,6 +7823,11 @@ yargs-parser@^18.1.1, yargs-parser@^18.1.2, yargs-parser@^18.1.3: camelcase "^5.0.0" decamelize "^1.2.0" +yargs-parser@^20.0.0: + version "20.2.4" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== + yargs-parser@^4.2.0: version "4.2.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c" @@ -7886,22 +7915,18 @@ yargs@^6.5.0: y18n "^3.2.1" yargs-parser "^4.2.0" -yargs@~15.3.1: - version "15.3.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz#9505b472763963e54afe60148ad27a330818e98b" - integrity sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA== +yargs@~16.0.3: + version "16.0.3" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.0.3.tgz#7a919b9e43c90f80d4a142a89795e85399a7e54c" + integrity sha512-6+nLw8xa9uK1BOEOykaiYAJVh6/CjxWXK/q9b5FpRgNslt8s22F2xMBqVIKgCRjNgGvGPBy8Vog7WN7yh4amtA== dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.0" - get-caller-file "^2.0.1" + cliui "^7.0.0" + escalade "^3.0.2" + get-caller-file "^2.0.5" require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" string-width "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.1" + y18n "^5.0.1" + yargs-parser "^20.0.0" yauzl@2.10.0: version "2.10.0"