diff --git a/packages/cli-types/package.json b/packages/cli-types/package.json index 987c9b1e1..60c95fdfb 100644 --- a/packages/cli-types/package.json +++ b/packages/cli-types/package.json @@ -6,7 +6,7 @@ "access": "public" }, "dependencies": { - "ora": "^3.4.0" + "ora": "^6.0.0" }, "files": [ "build", diff --git a/packages/cli-types/src/index.ts b/packages/cli-types/src/index.ts index b66ceb564..db58519b4 100644 --- a/packages/cli-types/src/index.ts +++ b/packages/cli-types/src/index.ts @@ -11,7 +11,7 @@ import { AndroidDependencyConfig, AndroidDependencyParams, } from './android'; -import {Ora} from 'ora'; +import type {Ora} from 'ora'; export type Prompt = any; diff --git a/packages/cli/package.json b/packages/cli/package.json index 4578bd577..2ac0bc63c 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -47,7 +47,7 @@ "lodash": "^4.17.15", "minimist": "^1.2.0", "node-stream-zip": "^1.9.1", - "ora": "^3.4.0", + "ora": "^6.0.0", "pretty-format": "^26.6.2", "prompts": "^2.4.0", "semver": "^6.3.0", diff --git a/packages/cli/src/commands/doctor/healthchecks/common.ts b/packages/cli/src/commands/doctor/healthchecks/common.ts index 45aeebfcb..bec3c9bd2 100644 --- a/packages/cli/src/commands/doctor/healthchecks/common.ts +++ b/packages/cli/src/commands/doctor/healthchecks/common.ts @@ -2,7 +2,7 @@ import chalk from 'chalk'; import readline from 'readline'; import wcwidth from 'wcwidth'; import stripAnsi from 'strip-ansi'; -import {Ora} from 'ora'; +import type {Ora} from 'ora'; import {logger} from '@react-native-community/cli-tools'; // Space is necessary to keep correct ordering on screen diff --git a/packages/cli/src/commands/doctor/healthchecks/iosDeploy.ts b/packages/cli/src/commands/doctor/healthchecks/iosDeploy.ts index 0d06dbebe..ee269ee2d 100644 --- a/packages/cli/src/commands/doctor/healthchecks/iosDeploy.ts +++ b/packages/cli/src/commands/doctor/healthchecks/iosDeploy.ts @@ -5,7 +5,7 @@ import {isSoftwareNotInstalled, PACKAGE_MANAGERS} from '../checkInstallation'; import {packageManager} from './packageManagers'; import {logError, removeMessage} from './common'; import {HealthCheckInterface} from '@react-native-community/cli-types'; -import {Ora} from 'ora'; +import type {Ora} from 'ora'; const label = 'ios-deploy'; diff --git a/packages/cli/src/commands/doctor/runAutomaticFix.ts b/packages/cli/src/commands/doctor/runAutomaticFix.ts index f70d58735..c3fbc5edd 100644 --- a/packages/cli/src/commands/doctor/runAutomaticFix.ts +++ b/packages/cli/src/commands/doctor/runAutomaticFix.ts @@ -1,5 +1,6 @@ import chalk from 'chalk'; -import ora, {Ora} from 'ora'; +import ora from 'ora'; +import type {Ora} from 'ora'; import {logger} from '@react-native-community/cli-tools'; import {HEALTHCHECK_TYPES} from './healthchecks'; import {EnvironmentInfo} from '@react-native-community/cli-types'; diff --git a/packages/cli/src/commands/init/init.ts b/packages/cli/src/commands/init/init.ts index 1ab8453a4..855fdbf0f 100644 --- a/packages/cli/src/commands/init/init.ts +++ b/packages/cli/src/commands/init/init.ts @@ -2,7 +2,7 @@ import os from 'os'; import path from 'path'; import fs from 'fs-extra'; import minimist from 'minimist'; -import ora from 'ora'; +import type {Ora} from 'ora'; import {validateProjectName} from './validate'; import DirectoryAlreadyExistsError from './errors/DirectoryAlreadyExistsError'; import printRunInstructions from './printRunInstructions'; @@ -156,7 +156,7 @@ async function installDependencies({ }: { directory: string; npm?: boolean; - loader: ora.Ora; + loader: Ora; root: string; }) { loader.start('Installing dependencies'); diff --git a/packages/cli/src/tools/brewInstall.ts b/packages/cli/src/tools/brewInstall.ts index 437d7888c..09987f817 100644 --- a/packages/cli/src/tools/brewInstall.ts +++ b/packages/cli/src/tools/brewInstall.ts @@ -1,11 +1,11 @@ import execa from 'execa'; -import ora from 'ora'; +import type {Ora} from 'ora'; import {logError} from '../commands/doctor/healthchecks/common'; type InstallArgs = { pkg: string; label?: string; - loader: ora.Ora; + loader: Ora; onSuccess?: () => void; onFail?: () => void; }; diff --git a/packages/cli/src/tools/install.ts b/packages/cli/src/tools/install.ts index 0c77f38ae..40a81034c 100644 --- a/packages/cli/src/tools/install.ts +++ b/packages/cli/src/tools/install.ts @@ -1,4 +1,4 @@ -import ora from 'ora'; +import type {Ora} from 'ora'; import {brewInstall} from './brewInstall'; import {logManualInstallation} from '../commands/doctor/healthchecks/common'; @@ -6,7 +6,7 @@ type InstallArgs = { pkg: string; label: string; url: string; - loader: ora.Ora; + loader: Ora; }; async function install({pkg, label, url, loader}: InstallArgs) { diff --git a/packages/cli/src/tools/installPods.ts b/packages/cli/src/tools/installPods.ts index ad12c9b31..6c7629ef4 100644 --- a/packages/cli/src/tools/installPods.ts +++ b/packages/cli/src/tools/installPods.ts @@ -1,7 +1,7 @@ import fs from 'fs'; import execa from 'execa'; import chalk from 'chalk'; -import ora from 'ora'; +import type {Ora} from 'ora'; import prompts from 'prompts'; import {logger} from '@react-native-community/cli-tools'; import {NoopLoader} from './loader'; @@ -15,7 +15,7 @@ type PromptCocoaPodsInstallation = { }; async function runPodInstall( - loader: ora.Ora, + loader: Ora, directory: string, shouldHandleRepoUpdate: boolean = true, ) { @@ -51,7 +51,7 @@ async function runPodInstall( } } -async function runPodUpdate(loader: ora.Ora) { +async function runPodUpdate(loader: Ora) { try { loader.start( `Updating CocoaPods repositories ${chalk.dim( @@ -128,7 +128,7 @@ async function installCocoaPodsWithGem() { } } -async function installCocoaPods(loader: ora.Ora) { +async function installCocoaPods(loader: Ora) { loader.stop(); const {installMethod} = await promptCocoaPodsInstallationQuestion(); @@ -166,7 +166,7 @@ async function installPods({ loader, }: { directory: string; - loader?: ora.Ora; + loader?: Ora; }) { loader = loader || new NoopLoader(); try { diff --git a/packages/cli/src/tools/loader.ts b/packages/cli/src/tools/loader.ts index d9ec81c64..104da63f6 100644 --- a/packages/cli/src/tools/loader.ts +++ b/packages/cli/src/tools/loader.ts @@ -1,43 +1,44 @@ import ora from 'ora'; +import type {Ora, Spinner, Color} from 'ora'; import {logger} from '@react-native-community/cli-tools'; -class OraNoop implements ora.Ora { - spinner: ora.Spinner = {interval: 1, frames: []}; +class OraNoop implements Ora { + spinner: Spinner = {interval: 1, frames: []}; indent: number = 0; isSpinning: boolean = false; text: string = ''; prefixText: string = ''; - color: ora.Color = 'blue'; + color: Color = 'blue'; succeed(_text?: string | undefined) { - return ora(); + return this; } fail(_text?: string) { - return ora(); + return this; } start(_text?: string) { - return ora(); + return this; } stop() { - return ora(); + return this; } warn(_text?: string) { - return ora(); + return this; } info(_text?: string) { - return ora(); + return this; } stopAndPersist() { - return ora(); + return this; } clear() { - return ora(); + return this; } render() { - return ora(); + return this; } frame() { - return ora(); + return this.text; } } diff --git a/packages/platform-ios/package.json b/packages/platform-ios/package.json index c153b146e..d359161f7 100644 --- a/packages/platform-ios/package.json +++ b/packages/platform-ios/package.json @@ -12,7 +12,7 @@ "glob": "^7.1.3", "js-yaml": "^3.13.1", "lodash": "^4.17.15", - "ora": "^3.4.0", + "ora": "^6.0.0", "plist": "^3.0.2", "xcode": "^2.0.0" }, diff --git a/yarn.lock b/yarn.lock index 0b7b56120..b4898ff6d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2767,6 +2767,11 @@ ansi-regex@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" @@ -3188,7 +3193,7 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= -base64-js@^1.0.2, base64-js@^1.5.1: +base64-js@^1.0.2, base64-js@^1.3.1, base64-js@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== @@ -3240,6 +3245,15 @@ bindings@^1.5.0: dependencies: file-uri-to-path "1.0.0" +bl@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-5.0.0.tgz#6928804a41e9da9034868e1c50ca88f21f57aea2" + integrity sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ== + dependencies: + buffer "^6.0.3" + inherits "^2.0.4" + readable-stream "^3.4.0" + bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.11.9: version "4.12.0" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" @@ -3423,6 +3437,14 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" @@ -3606,6 +3628,11 @@ chalk@^4.1.0, chalk@^4.1.2: ansi-styles "^4.1.0" supports-color "^7.1.0" +chalk@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.0.0.tgz#bd96c6bb8e02b96e08c0c3ee2a9d90e050c7b832" + integrity sha512-/duVOqst+luxCQRKEo4bNxinsOQtMP80ZYm7mMqzuh5PociNL0PvmHFvREJ9ueYL2TxlHjBcmLCdmocx9Vg+IQ== + char-regex@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" @@ -3707,15 +3734,22 @@ cli-cursor@^3.1.0: dependencies: restore-cursor "^3.1.0" +cli-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-4.0.0.tgz#3cecfe3734bf4fe02a8361cbdc0f6fe28c6a57ea" + integrity sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg== + dependencies: + restore-cursor "^4.0.0" + cli-spinners@^1.1.0: version "1.3.1" resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-1.3.1.tgz#002c1990912d0d59580c93bd36c056de99e4259a" integrity sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg== -cli-spinners@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.2.0.tgz#e8b988d9206c692302d8ee834e7a85c0144d8f77" - integrity sha512-tgU3fKwzYjiLEQgPMD9Jt+JjHVL9kW93FiIMX/l7rivvOD4/LL0Mf7gda3+4U2KJBloybwgj5KEoQgGRioMiKQ== +cli-spinners@^2.6.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d" + integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== cli-width@^3.0.0: version "3.0.0" @@ -6174,6 +6208,11 @@ ieee754@^1.1.4: resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== +ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + ignore-walk@^3.0.3: version "3.0.4" resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.4.tgz#c9a09f69b7c7b479a5d74ac1a3c0d4236d2a6335" @@ -6544,6 +6583,11 @@ is-html@^1.1.0: dependencies: html-tags "^1.0.0" +is-interactive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-2.0.0.tgz#40c57614593826da1100ade6059778d597f16e90" + integrity sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ== + is-lambda@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" @@ -6668,6 +6712,11 @@ is-typedarray@^1.0.0, is-typedarray@~1.0.0: resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= +is-unicode-supported@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-1.1.0.tgz#9127b71f9fa82f52ca5c20e982e7bec0ee31ee1e" + integrity sha512-lDcxivp8TJpLG75/DpatAqNzOpDPSpED8XNtrpBHTdQ2InQ1PbW78jhwSxyxhhu+xbVSast2X38bwj8atwoUQA== + is-url@^1.2.2: version "1.2.4" resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" @@ -7738,6 +7787,14 @@ log-symbols@^2.2.0: dependencies: chalk "^2.0.1" +log-symbols@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-5.1.0.tgz#a20e3b9a5f53fac6aeb8e2bb22c07cf2c8f16d93" + integrity sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA== + dependencies: + chalk "^5.0.0" + is-unicode-supported "^1.1.0" + logkitty@^0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/logkitty/-/logkitty-0.7.1.tgz#8e8d62f4085a826e8d38987722570234e33c6aa7" @@ -8991,16 +9048,19 @@ ora@^2.1.0: strip-ansi "^4.0.0" wcwidth "^1.0.1" -ora@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/ora/-/ora-3.4.0.tgz#bf0752491059a3ef3ed4c85097531de9fdbcd318" - integrity sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg== - dependencies: - chalk "^2.4.2" - cli-cursor "^2.1.0" - cli-spinners "^2.0.0" - log-symbols "^2.2.0" - strip-ansi "^5.2.0" +ora@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-6.0.1.tgz#68caa9fd6c485a40d6f46c50a3940fa3df99c7f3" + integrity sha512-TDdKkKHdWE6jo/6pIa5U5AWcSVfpNRFJ8sdRJpioGNVPLAzZzHs/N+QhUfF7ZbyoC+rnDuNTKzeDJUbAza9g4g== + dependencies: + bl "^5.0.0" + chalk "^4.1.2" + cli-cursor "^4.0.0" + cli-spinners "^2.6.0" + is-interactive "^2.0.0" + is-unicode-supported "^1.1.0" + log-symbols "^5.0.0" + strip-ansi "^7.0.1" wcwidth "^1.0.1" os-browserify@^0.3.0: @@ -10200,7 +10260,7 @@ read@1, read@1.0.x, read@~1.0.1: dependencies: mute-stream "~0.0.4" -readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.1.1: +readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.4.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -10490,6 +10550,14 @@ restore-cursor@^3.1.0: onetime "^5.1.0" signal-exit "^3.0.2" +restore-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-4.0.0.tgz#519560a4318975096def6e609d44100edaa4ccb9" + integrity sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" @@ -11259,6 +11327,13 @@ strip-ansi@^6.0.0: dependencies: ansi-regex "^5.0.0" +strip-ansi@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" + integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw== + dependencies: + ansi-regex "^6.0.1" + strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"