├── example ├── src │ ├── Data │ │ ├── Struct1.idr │ │ ├── Struct2.idr │ │ └── Struct2 │ │ │ └── Extra.idr │ ├── Control │ │ └── TestM.idr │ ├── TestModule.idr │ └── Main.idr └── Eq.yml ├── Eq.yml ├── src ├── Sae │ ├── Info.idr │ ├── Utils.idr │ ├── ArgsParser.idr │ ├── Ipkg.idr │ ├── Types.idr │ ├── Config.idr │ └── Command.idr ├── Js │ ├── Yaml.idr │ ├── Glob.idr │ ├── Dom.idr │ ├── Console.idr │ ├── Nullable.idr │ ├── Object.idr │ ├── FFI.idr │ ├── Array.idr │ ├── System.idr │ └── System │ │ └── File.idr ├── Main.idr └── Control │ └── Monad │ └── ExceptIO.idr ├── .gitignore ├── sae.ipkg ├── scripts └── install.sh ├── package.json ├── docs ├── Eq.yml-Structure.md └── Usage.md ├── README.md ├── pnpm-lock.yaml └── yarn.lock /example/src/Data/Struct1.idr: -------------------------------------------------------------------------------- 1 | module Data.Struct1 -------------------------------------------------------------------------------- /example/src/Data/Struct2.idr: -------------------------------------------------------------------------------- 1 | module Data.Struct2 -------------------------------------------------------------------------------- /example/src/Control/TestM.idr: -------------------------------------------------------------------------------- 1 | module Control.TestM -------------------------------------------------------------------------------- /example/src/TestModule.idr: -------------------------------------------------------------------------------- 1 | module TestModule 2 | 3 | asdas -------------------------------------------------------------------------------- /example/src/Data/Struct2/Extra.idr: -------------------------------------------------------------------------------- 1 | module Data.Struct2.Extra -------------------------------------------------------------------------------- /Eq.yml: -------------------------------------------------------------------------------- 1 | package: sae 2 | version: 0.0.3 3 | target: node 4 | 5 | depends: 6 | - contrib -------------------------------------------------------------------------------- /src/Sae/Info.idr: -------------------------------------------------------------------------------- 1 | module Sae.Info 2 | 3 | export 4 | version : String 5 | version = "0.0.3" 6 | -------------------------------------------------------------------------------- /example/src/Main.idr: -------------------------------------------------------------------------------- 1 | module Main 2 | 3 | import Js.Array 4 | 5 | main : IO () 6 | main = putStrLn "ザ・ワルド!" 7 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | build/ 3 | deps/ 4 | node_modules/ 5 | example/example.ipkg 6 | 7 | # Executables 8 | sae-macos 9 | sae-linux -------------------------------------------------------------------------------- /src/Js/Yaml.idr: -------------------------------------------------------------------------------- 1 | module Js.Yaml 2 | 3 | import Js.FFI 4 | 5 | export 6 | %foreign (js "x => JSON.stringify(require('js-yaml').load(x, 'utf-8'))") 7 | yamlToJson : String -> String 8 | -------------------------------------------------------------------------------- /src/Main.idr: -------------------------------------------------------------------------------- 1 | module Main 2 | 3 | import Data.List 4 | import Sae.ArgsParser 5 | import Sae.Command 6 | import Sae.Config 7 | import System 8 | 9 | main : IO () 10 | main = runCommand $ argsToCommand $ drop 1 !getArgs 11 | -------------------------------------------------------------------------------- /src/Js/Glob.idr: -------------------------------------------------------------------------------- 1 | module Js.Glob 2 | 3 | import Js.FFI 4 | 5 | %foreign (node "path => __prim_js2idris_array(require('glob').glob.sync(path))") 6 | prim__getFileNames : String -> PrimIO (List String) 7 | 8 | export 9 | getFileNames : String -> IO (List String) 10 | getFileNames = primIO . prim__getFileNames -------------------------------------------------------------------------------- /src/Sae/Utils.idr: -------------------------------------------------------------------------------- 1 | module Sae.Utils 2 | 3 | import System 4 | import Data.String.Extra 5 | 6 | export 7 | failMsg : String -> IO () 8 | failMsg msg = do 9 | putStrLn msg 10 | exitFailure 11 | 12 | export 13 | startsWith : String -> String -> Bool 14 | startsWith prefix' str = prefix' == take (length prefix') str 15 | -------------------------------------------------------------------------------- /src/Js/Dom.idr: -------------------------------------------------------------------------------- 1 | module Js.Dom 2 | 3 | import Js.FFI 4 | 5 | export 6 | data HtmlElement : Type where [external] 7 | 8 | %foreign (browser "x => document.getElementById(x)") 9 | prim__getElementById : String -> PrimIO HtmlElement 10 | 11 | export 12 | getElementById : String -> IO HtmlElement 13 | getElementById = primIO . prim__getElementById 14 | -------------------------------------------------------------------------------- /example/Eq.yml: -------------------------------------------------------------------------------- 1 | package: example 2 | version: 0.0.1 3 | target: node 4 | 5 | ignoredModules: 6 | - Data.Struct2 7 | - TestModule 8 | 9 | depends: 10 | - contrib 11 | - js-example == 0.0.1 12 | 13 | sources: 14 | - name: js-example 15 | url: https://github.com/DoctorRyner/idris-js-example 16 | version: 68484e7c36ae6a1fc4f3ee5a8c695602b823a5af 17 | - name: react-example 18 | url: https://github.com/DoctorRyner/idris-react-example 19 | version: b282080846f98a98fd1646c3f928b7dd9dd06d83 20 | -------------------------------------------------------------------------------- /src/Js/Console.idr: -------------------------------------------------------------------------------- 1 | module Js.Console 2 | 3 | import Js.FFI 4 | 5 | %foreign (js "(_, x) => console.log(x)") 6 | prim__log : a -> PrimIO () 7 | 8 | export 9 | log : a -> IO () 10 | log = primIO . prim__log 11 | 12 | %foreign (js "(_, x) => console.warn(x)") 13 | prim__warn : a -> PrimIO () 14 | 15 | export 16 | warn : a -> IO () 17 | warn = primIO . prim__warn 18 | 19 | %foreign (js "(_, x) => console.error(x)") 20 | prim__error : a -> PrimIO () 21 | 22 | export 23 | error : a -> IO () 24 | error = primIO . prim__warn 25 | -------------------------------------------------------------------------------- /src/Control/Monad/ExceptIO.idr: -------------------------------------------------------------------------------- 1 | module Control.Monad.ExceptIO 2 | 3 | import public Control.App 4 | import public Control.App.Console 5 | 6 | public export 7 | ExceptIO : Type -> Type -> Type 8 | ExceptIO err result = State () () (err :: Init) => App (err :: Init) result 9 | 10 | handleExceptIO : State () () Init => ExceptIO err result -> App Init (Either err result) 11 | handleExceptIO exceptIO = handle exceptIO (pure . Right) (pure . Left) 12 | 13 | export 14 | runExceptIO : ExceptIO err result -> IO (Either err result) 15 | runExceptIO exceptIO = run $ new () $ handleExceptIO exceptIO 16 | -------------------------------------------------------------------------------- /src/Js/Nullable.idr: -------------------------------------------------------------------------------- 1 | module Js.Nullable 2 | 3 | import Js.FFI 4 | 5 | public export 6 | data Nullable : Type -> Type where [external] 7 | 8 | export 9 | %foreign (js "(t1, x) => x ? 0 : 1") 10 | isNullInt : Nullable a -> Double 11 | 12 | export 13 | isNull : Nullable a -> Bool 14 | isNull nullable = isNullInt nullable == 1.0 15 | 16 | export 17 | %foreign (js "t1 => null") 18 | null : Nullable a 19 | 20 | export 21 | fromNull : a -> Nullable a -> a 22 | fromNull def nullable = 23 | if isNull nullable 24 | then def 25 | else unsafeCoerce nullable 26 | 27 | export 28 | unsafeFromNull : Nullable a -> a 29 | unsafeFromNull = unsafeCoerce -------------------------------------------------------------------------------- /sae.ipkg: -------------------------------------------------------------------------------- 1 | package sae 2 | version = 0.0.3 3 | 4 | sourcedir = "src" 5 | 6 | depends = contrib 7 | 8 | modules = Control.Monad.ExceptIO 9 | , Js.Array 10 | , Js.Console 11 | , Js.Dom 12 | , Js.FFI 13 | , Js.Glob 14 | , Js.Nullable 15 | , Js.Object 16 | , Js.System 17 | , Js.System.File 18 | , Js.Yaml 19 | , Main 20 | , Sae.ArgsParser 21 | , Sae.Command 22 | , Sae.Config 23 | , Sae.Info 24 | , Sae.Ipkg 25 | , Sae.Types 26 | , Sae.Utils -------------------------------------------------------------------------------- /src/Sae/ArgsParser.idr: -------------------------------------------------------------------------------- 1 | module Sae.ArgsParser 2 | 3 | import Data.List 4 | import public Sae.Types 5 | 6 | export 7 | argsToCommand : List String -> Command 8 | argsToCommand = \case 9 | "generate-ipkg" ::_ => GenerateIpkg 10 | "fetch" ::_ => FetchDeps 11 | "install-deps" ::_ => InstallDeps 12 | "reinstall-deps"::_ => ReinstallDeps 13 | "build" ::_ => Build 14 | "install" ::_ => Install 15 | "release" ::_ => Release 16 | "repl" ::_ => Repl 17 | "yarn" ::_ => Yarn 18 | "run" ::xs => Run xs 19 | "new" ::x::_ => New x 20 | _ => Help 21 | -------------------------------------------------------------------------------- /src/Js/Object.idr: -------------------------------------------------------------------------------- 1 | module Js.Object 2 | 3 | import Js.Array 4 | import Js.FFI 5 | 6 | public export 7 | data Object : Type where [external] 8 | 9 | export 10 | %foreign (js "() => ({})") 11 | empty : Object 12 | 13 | export 14 | %foreign (js "(_, key, val, obj) => {obj[key] = val; return obj}") 15 | insert : String -> a -> Object -> Object 16 | 17 | export 18 | singleton : String -> a -> Object 19 | singleton key val = insert key val empty 20 | 21 | infix 10 =: 22 | 23 | public export 24 | (=:) : String -> a -> Object 25 | (=:) = singleton 26 | 27 | export 28 | %foreign (js "xs => Object.assign({}, ...xs)") 29 | merge : Array Object -> Object 30 | 31 | export 32 | fromList : List Object -> Object 33 | fromList = merge . fromList 34 | -------------------------------------------------------------------------------- /src/Js/FFI.idr: -------------------------------------------------------------------------------- 1 | module Js.FFI 2 | 3 | public export 4 | js : String -> String 5 | js = ("javascript:lambda:" ++) 6 | 7 | public export 8 | node : String -> String 9 | node = ("node:lambda:" ++) 10 | 11 | public export 12 | browser : String -> String 13 | browser = ("browser:lambda:" ++) 14 | 15 | public export 16 | req : String -> String -> String -> String 17 | req path args body = 18 | "browser:lambda:" 19 | ++ args 20 | ++ " => " 21 | ++ "require('" ++ path ++ "')." 22 | ++ body 23 | 24 | export 25 | %foreign (js "(_a, _b, x) => x") 26 | unsafeCoerce : a -> b 27 | 28 | %foreign 29 | (js """ 30 | time => { 31 | var waitTill = new Date(new Date().getTime() + time) 32 | while(waitTill > new Date()) {} 33 | } 34 | """) 35 | prim__jsSleep : Double -> PrimIO () 36 | 37 | export 38 | jsSleep : Double -> IO () 39 | jsSleep = primIO . prim__jsSleep -------------------------------------------------------------------------------- /scripts/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -u -e 3 | 4 | # Installator 5 | 6 | OS="$(uname)" 7 | ARCH="$(uname -m)" 8 | 9 | if [ "$OS" != "Linux" ] && [ "$OS" != "Darwin" ]; then 10 | echo "This sae installer works only on macOS and Linux" 11 | exit 1 12 | fi 13 | 14 | SAE_URL=$([ "$OS" == "Darwin" ] \ 15 | && ([ "$ARCH" == "arm64" ] \ 16 | && echo "https://github.com/DoctorRyner/sae/releases/download/v0.0.3-preview/sae-apple-silicon.zip" \ 17 | || echo "https://github.com/DoctorRyner/sae/releases/download/v0.0.3-preview/sae-mac.zip") \ 18 | || echo "https://github.com/DoctorRyner/sae/releases/download/v0.0.3-preview/sae-linux.zip") 19 | 20 | curl -L "$SAE_URL" > sae.zip 21 | unzip sae.zip 22 | rm sae.zip 23 | 24 | if [ "$OS" == "Darwin" ]; then 25 | mv sae /usr/local/bin/sae 26 | else 27 | sudo mv sae /usr/local/bin/sae 28 | fi 29 | 30 | printf "\nSuccess! Type 'sae help' to get started\n" -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sae", 3 | "version": "0.0.3", 4 | "repository": "https://github.com/DoctorRyner/sae.git", 5 | "author": "DoctorRyner ", 6 | "license": "MIT", 7 | "bin": "build/exec/index.js", 8 | "pkg": { 9 | "assets": [ 10 | "./node_modules/glob", 11 | "./node_modules/js-yaml" 12 | ] 13 | }, 14 | "scripts": { 15 | "mk-exe": "sae release && pkg . --target nodev16-macos-x64,nodev14-linux-x64,nodev14-win-x64 --out-path build/", 16 | "install-mac": "sae release && pkg . --target nodev16-macos-x64 && sudo mv ./sae /usr/local/bin", 17 | "install-mac-m1": "sae release && pkg . --target nodev16-macos-arm64 && sudo mv ./sae /usr/local/bin", 18 | "install-linux": "sae release && pkg . --target nodev14-linux-x64 && sudo mv ./sae /usr/local/bin" 19 | }, 20 | "dependencies": { 21 | "glob": "^7.1.7", 22 | "js-yaml": "^4.1.0" 23 | }, 24 | "devDependencies": { 25 | "pkg": "^5.2.1" 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/Js/Array.idr: -------------------------------------------------------------------------------- 1 | module Js.Array 2 | 3 | import Js.FFI 4 | 5 | public export 6 | data Array : Type -> Type where [external] 7 | 8 | export 9 | %foreign (js "() => []") 10 | empty : Array a 11 | 12 | export 13 | %foreign (js "(_, x) => [x]") 14 | singleton : a -> Array a 15 | 16 | export 17 | %foreign (js "(_, xs, ys) => xs.concat(ys)") 18 | (++) : Array a -> Array a -> Array a 19 | 20 | snoc : Array a -> a -> Array a 21 | snoc xs a = xs ++ singleton a 22 | 23 | %foreign (js "(_, n, xs) => xs.slice(Number(n))") 24 | drop : Nat -> Array a -> Array a 25 | 26 | export 27 | tail : Array a -> Array a 28 | tail = drop 1 29 | 30 | export 31 | %foreign (js "(_, i, xs) => xs[i]") 32 | index : Nat -> Array a -> a 33 | 34 | export 35 | %foreign (js "(_, xs) => BigInt(xs.length)") 36 | length : Array a -> Nat 37 | 38 | export 39 | head : Array a -> a 40 | head = index 0 41 | 42 | export 43 | %foreign (js "(_, xs) => xs[xs.length - 1]") 44 | last : Array a -> a 45 | 46 | export 47 | fromList : List a -> Array a 48 | fromList [] = empty 49 | fromList (x::xs) = singleton x ++ fromList xs 50 | 51 | export 52 | toList : Array a -> List a 53 | toList xs = 54 | if length xs == 0 55 | then [] 56 | else [head xs] ++ toList (tail xs) 57 | -------------------------------------------------------------------------------- /docs/Eq.yml-Structure.md: -------------------------------------------------------------------------------- 1 | # Eq.yml structure 2 | 3 | Eq.yml has all of the fields of ipkg config format except for `modules`, it also has a few new fields. We will overview only these changes and required fields. If you need information about all config fields, you can see them here (Search for the Config record) https://github.com/DoctorRyner/sae/blob/master/src/Sae/Types.idr#L44 4 | 5 | * modules — no need to specify modules manually, they are all generated automatically 6 | * target — the same as `--codegen` or `--cg` for `idris2` executable, by default `chez` is used 7 | * ignoredModules — excludes listed modules from building 8 | * sources — a list of external dependencies in the format: 9 | 10 | ```yaml 11 | name: package-name 12 | url: https://github.com/SomeAuthor/repo-name 13 | version: v0.0.1 14 | ``` 15 | 16 | Where: 17 | 18 | * name — is used for distinguishing packages 19 | * url — can be any url, including a local path such as `./path/to/package` 20 | * version — is a commit or a release tag 21 | 22 | Required fields: 23 | 24 | * package — the package name, note: this field is used as the name for the generated .ipkg file 25 | * version — the package version, should be in the format `0.0.1` 26 | 27 | To add a dependency from a source, you need to specify a `package name` and a `version` like this: 28 | 29 | ```yaml 30 | depends: 31 | - contrib 32 | - package-name == 0.0.1 33 | ``` 34 | -------------------------------------------------------------------------------- /docs/Usage.md: -------------------------------------------------------------------------------- 1 | # Usage 2 | 3 | ## help 4 | 5 | Example: `sae help` or you can simply write `sae` or any unspecified command 6 | 7 | This gives you a brief overview of `sae`'s commands 8 | 9 | ## new 10 | 11 | Example: `sae new project-name` 12 | 13 | Create a basic project with next files: 14 | 15 | * Eq.yml 16 | * src/Main.idr 17 | * .gitignore 18 | 19 | ## build 20 | 21 | Example: `sae build` 22 | 23 | Installs dependencies and builds project 24 | 25 | ## release 26 | 27 | Example: `sae release` 28 | 29 | Compiles project into a file that, by default, will be placed at `./build/exec/` 30 | 31 | For js targets, it produces `build/exec/index.js`, for others, it produces `build/exec/project-name` 32 | 33 | ## run 34 | 35 | Example: `sae run` or `sae run arg1 arg2` 36 | 37 | Runs the compiled file, to use this command you need to run `sae release` first 38 | 39 | ## repl 40 | 41 | Example: `sae repl` 42 | 43 | Opens project in a repl session 44 | 45 | ## install-deps 46 | 47 | Example: `sae install-deps` 48 | 49 | Fetches, builds and installs dependencies, this is a step that automatically runs before build 50 | 51 | ## reinstall-deps 52 | 53 | Example: `sae reinstall-deps` 54 | 55 | Doest the same as `sae install-deps` but forcibly reinstalls every package. This feature is rarely needed 56 | 57 | ## install 58 | 59 | Example: `sae install` 60 | 61 | Installs package in the system, this is also rarely needed since you are supposed to install packages through `sae`'s `sources` field 62 | 63 | ## yarn 64 | 65 | Example: `sae yarn` 66 | 67 | Build project, resolves npm dependencies (creates build/package.json) and installs npm dependencies 68 | -------------------------------------------------------------------------------- /src/Js/System.idr: -------------------------------------------------------------------------------- 1 | module Js.System 2 | 3 | import Data.List 4 | import Js.FFI 5 | import Js.Array 6 | 7 | %foreign (js "() => process.argv") 8 | prim__getArgs : PrimIO (Array String) 9 | 10 | export 11 | getArgs : IO (List String) 12 | getArgs = toList <$> primIO prim__getArgs 13 | 14 | %foreign 15 | (node """ 16 | str => { 17 | try { 18 | require('child_process').execSync(str, {stdio: 'inherit'}) 19 | return 0 20 | } catch (err) {return err.status} 21 | } 22 | """) 23 | prim__system : String -> PrimIO Double 24 | 25 | export 26 | system : String -> IO Double 27 | system = primIO . prim__system 28 | 29 | %foreign 30 | (node """ 31 | str => { 32 | try { 33 | const result = require('child_process').execSync(str) 34 | return result.toString() 35 | } catch (err) {return '@!ERR'.concat(err)} 36 | } 37 | """) 38 | prim__systemStr : String -> PrimIO String 39 | 40 | export 41 | systemStr : String -> IO (Either String String) 42 | systemStr cmd = 43 | let output = !(primIO $ prim__systemStr cmd) 44 | in pure $ if pack (take 5 $ unpack output) == "@!ERR" 45 | then Left $ pack $ drop 5 $ unpack output 46 | else Right output 47 | 48 | %foreign (node "() => require('os').homedir()") 49 | prim__getHomeDir : PrimIO String 50 | 51 | export 52 | getHomeDir : IO String 53 | getHomeDir = primIO prim__getHomeDir 54 | 55 | %foreign (node "path => require('fs').existsSync(path) ? 1 : 0") 56 | prim__doesFileExist : String -> PrimIO Double 57 | 58 | export 59 | doesFileExist : String -> IO Bool 60 | doesFileExist path = do 61 | opCode <- primIO $ prim__doesFileExist path 62 | pure $ if opCode == 1 then True else False -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SAE (Solver of All Equations) 2 | 3 | Idris 2 build tool, manage packages and projects with ease! 4 | 5 | sae tested with — `Idris 2, version 0.3.0-40fa9b43a`, it may not work on previous versions due to idris' compiler changes 6 | 7 | ##### Table of Contents 8 | - [Install](#install) 9 | - [Examples](#examples) 10 | - [Development](#development) 11 | - [Eq.yml structure](docs/Eq.yml-Structure.md) 12 | - [Usage](docs/Usage.md) 13 | 14 | # Install 15 | 16 | Execute this 17 | ```bash 18 | sh -c "$(curl https://raw.githubusercontent.com/DoctorRyner/sae/master/scripts/install.sh)" 19 | ``` 20 | 21 | Or go to [releases](https://github.com/DoctorRyner/sae/releases) and place an executable in your path manually 22 | 23 | Then you can type `sae help` to see a brief usage info, for more information on `sae` check out [Eq.yml structure](docs/Eq.yml-Structure.md) and [Usage](docs/Usage.md) 24 | 25 | If you develop for JS backends then you may want to have `yarn` installed, you can install it with this command 26 | ```bash 27 | npm i -g yarn 28 | ``` 29 | 30 | After that `sae yarn` should work 31 | 32 | # Examples 33 | 34 | I made 2 example packages that target javascript: 35 | * https://github.com/DoctorRyner/idris-js-example 36 | * https://github.com/DoctorRyner/idris-react-example 37 | 38 | You can see how to use them in [examples](https://github.com/DoctorRyner/sae/tree/master/example) 39 | 40 | # Development 41 | 42 | Requirements: 43 | * sae 44 | * idris2 45 | * git 46 | * npm + yarn, for linux users, you can avoid issues if you install `npm` through `nvm` 47 | 48 | 1. Clone the project `git clone https://github.com/DoctorRyner/sae` 49 | 2. Type `sae build` to build the project 50 | 3. Make changes 51 | 4. Run `yarn install-mac`, `yarn install-mac-m1` or `yarn install-linux` to test your newly acquired executable at `/usr/local/bin/sae` 52 | -------------------------------------------------------------------------------- /src/Sae/Ipkg.idr: -------------------------------------------------------------------------------- 1 | module Sae.Ipkg 2 | 3 | import Data.String 4 | import Data.String.Extra 5 | import Data.List 6 | import Sae.Types 7 | 8 | (#) : a -> b -> (a, b) 9 | (#) = (,) 10 | 11 | optField : (String, Maybe String) -> String 12 | optField (name, Just x) = name ++ " = " ++ if name == "main " then x else show x 13 | optField _ = "" 14 | 15 | export 16 | configToIpkg : Config -> String 17 | configToIpkg cfg = concat 18 | [ "package " ++ cfg.package ++ "\n" 19 | , "version = " ++ cfg.version 20 | , "\n\n" 21 | , "sourcedir = " ++ show cfg.sourcedir ++ "\n" 22 | , let fields = filter (/= "") $ map optField 23 | [ "authors " # map show cfg.authors 24 | , "maintainers" # cfg.maintainers 25 | , "license " # cfg.license 26 | , "brief " # cfg.brief 27 | , "readme " # cfg.readme 28 | , "homepage " # cfg.homepage 29 | , "sourceloc " # cfg.sourceloc 30 | , "bugtracker " # cfg.bugtracker 31 | , "main " # cfg.main 32 | , "executable " # cfg.executable 33 | , "builddir " # cfg.builddir 34 | , "outputdir " # cfg.outputdir 35 | , "prebuild " # cfg.prebuild 36 | , "postbuild " # cfg.postbuild 37 | , "preinstall " # cfg.preinstall 38 | , "postinstall" # cfg.postinstall 39 | , "preclean " # cfg.preclean 40 | , "postclean " # cfg.postclean 41 | ] 42 | in if length fields == 0 43 | then "" 44 | else join "\n" fields ++ "\n" 45 | , "\n" 46 | , if length cfg.depends == 0 47 | then "" 48 | else "depends = " ++ join "\n , " cfg.depends ++ "\n\n" 49 | , if length cfg.modules == 0 50 | then "" 51 | else "modules = " ++ join "\n , " cfg.modules 52 | ] 53 | -------------------------------------------------------------------------------- /src/Js/System/File.idr: -------------------------------------------------------------------------------- 1 | module Js.System.File 2 | 3 | import System.File 4 | import Data.List 5 | 6 | %foreign "node:lambda:() => process.platform == 'win32' ? 1 : 0" 7 | prim__isWindows : PrimIO Double 8 | 9 | isWindows : IO Bool 10 | isWindows = pure $ if !(primIO prim__isWindows) == 1 11 | then True 12 | else False 13 | 14 | %foreign """ 15 | node:lambda:(path, data) => { 16 | try { 17 | require('fs').writeFileSync(path, data) 18 | return '' 19 | } catch(err) { 20 | return err 21 | } 22 | } 23 | """ 24 | prim__writeFile : String -> String -> PrimIO String 25 | 26 | writeFileWindowsCompatible : String -> String -> IO (Either String ()) 27 | writeFileWindowsCompatible path content = 28 | let error = !(primIO $ prim__writeFile path content) 29 | in pure $ if error == "" 30 | then Right () 31 | else Left error 32 | 33 | export 34 | writeFileFixed : String -> String -> IO (Either String ()) 35 | writeFileFixed path content = 36 | if !isWindows 37 | then writeFileWindowsCompatible path content 38 | else pure $ case !(System.File.ReadWrite.writeFile path content) of 39 | Left err => Left $ show err 40 | Right x => Right x 41 | 42 | export 43 | %foreign """ 44 | node:lambda:path => { 45 | try { 46 | return require('fs').readFileSync(path, 'utf-8') 47 | } catch(err) { 48 | return '@!ERR'.concat(err) 49 | } 50 | } 51 | """ 52 | prim__readFile : String -> PrimIO String 53 | 54 | readFileWindowsCompatible : String -> IO (Either String String) 55 | readFileWindowsCompatible path = 56 | let output = !(primIO $ prim__readFile path) 57 | in pure $ if pack (take 5 $ unpack output) == "@!ERR" 58 | then Left $ pack $ drop 5 $ unpack output 59 | else Right output 60 | 61 | export 62 | readFileFixed : String -> IO (Either String String) 63 | readFileFixed path = 64 | if !isWindows 65 | then readFileWindowsCompatible path 66 | else pure $ case !(System.File.ReadWrite.readFile path) of 67 | Left err => Left $ show err 68 | Right x => Right x -------------------------------------------------------------------------------- /src/Sae/Types.idr: -------------------------------------------------------------------------------- 1 | module Sae.Types 2 | 3 | import Control.App 4 | import Language.JSON 5 | import Data.String.Extra 6 | 7 | -- Command 8 | 9 | public export 10 | data Command 11 | = Help 12 | | GenerateIpkg 13 | | FetchDeps 14 | | InstallDeps 15 | | ReinstallDeps 16 | | Build 17 | | Install 18 | | Release 19 | | Repl 20 | | Run (List String) 21 | | New String 22 | | Yarn 23 | 24 | -- Config 25 | 26 | public export 27 | record Source where 28 | constructor MkSource 29 | name, 30 | url, 31 | version : String 32 | 33 | public export 34 | Show Source where 35 | show source = 36 | "MkSource {" 37 | ++ join 38 | ", " 39 | [ "name: " ++ source.name 40 | , "url: " ++ source.url 41 | , "version: " ++ source.version 42 | ] 43 | ++ "}" 44 | 45 | public export 46 | record Config where 47 | constructor MkConfig 48 | -- Direct ipkg fields 49 | package : String 50 | version : String 51 | authors : Maybe String 52 | maintainers : Maybe String 53 | license : Maybe String 54 | brief : Maybe String 55 | readme : Maybe String 56 | homepage : Maybe String 57 | sourceloc : Maybe String 58 | bugtracker : Maybe String 59 | depends : List String 60 | modules : List String -- Can't be specified manually 61 | main : Maybe String 62 | executable : Maybe String 63 | sourcedir : String -- optional 64 | builddir : Maybe String 65 | outputdir : Maybe String 66 | prebuild : Maybe String 67 | postbuild : Maybe String 68 | preinstall : Maybe String 69 | postinstall : Maybe String 70 | preclean : Maybe String 71 | postclean : Maybe String 72 | -- Original fields 73 | langVersion : String -- Can't be specified manually 74 | pkgsDir : String -- Can't be specified manually 75 | projectDir : String -- Can't be specified manually 76 | target : String -- optional 77 | ignoredModules : List String 78 | sources : List Source 79 | 80 | public export 81 | data ConfigError 82 | = UnknownField String 83 | | TypeMismatch String String 84 | | RequiredFieldMissing String 85 | | ConfigFileShouldBeObject 86 | | ReadingError String 87 | -------------------------------------------------------------------------------- /src/Sae/Config.idr: -------------------------------------------------------------------------------- 1 | module Sae.Config 2 | 3 | import Control.Monad.ExceptIO 4 | import Data.Maybe 5 | import Data.List 6 | import Data.String.Extra 7 | import Js.Array 8 | import Js.FFI 9 | import Js.Glob 10 | import Js.Nullable 11 | import Js.System 12 | import Js.Yaml 13 | import Sae.Types 14 | import Sae.Info 15 | import System.Directory 16 | import Js.System.File 17 | import System 18 | import Language.JSON 19 | 20 | ConfigIO : Type -> Type 21 | ConfigIO = ExceptIO ConfigError 22 | 23 | throwErr : ConfigError -> ConfigIO Config 24 | throwErr err = throw err 25 | 26 | stringFields : List String 27 | stringFields = 28 | [ "package" 29 | , "version" 30 | , "langVersion" 31 | , "target" 32 | , "authors" 33 | , "maintainers" 34 | , "license" 35 | , "brief" 36 | , "readme" 37 | , "homepage" 38 | , "sourceloc" 39 | , "bugtracker" 40 | , "main" 41 | , "executable" 42 | , "sourcedir" 43 | , "builddir" 44 | , "outputdir" 45 | , "prebuild" 46 | , "postbuild" 47 | , "preinstall" 48 | , "postinstall" 49 | , "preclean" 50 | , "postclean" 51 | ] 52 | 53 | stringListFields : List String 54 | stringListFields = ["depends", "modules", "ignoredModules"] 55 | 56 | sourceFields : List String 57 | sourceFields = ["name", "url", "version", "commit"] 58 | 59 | allowedFields : List String 60 | allowedFields = stringFields ++ stringListFields ++ ["sources"] 61 | 62 | reqStringField : String -> List (String, JSON) -> ConfigIO String 63 | reqStringField field xs = 64 | case lookup field xs of 65 | Just (JString x) => pure x 66 | _ => throw $ RequiredFieldMissing field 67 | 68 | optStringField : String -> List (String, JSON) -> Maybe String 69 | optStringField field xs = 70 | case lookup field xs of 71 | Just (JString x) => Just x 72 | _ => Nothing 73 | 74 | isJsonString : JSON -> Bool 75 | isJsonString = \case 76 | JString _ => True 77 | _ => False 78 | 79 | isJsonArrayOfStrings : JSON -> Bool 80 | isJsonArrayOfStrings = \case 81 | JArray xs => all isJsonString xs 82 | _ => False 83 | 84 | checkSourceField : (String, JSON) -> ConfigIO () 85 | checkSourceField (field, jsonVal) = do 86 | when (not $ elem field sourceFields) $ 87 | throw $ UnknownField field 88 | when (elem field sourceFields && not (isJsonString jsonVal)) $ 89 | throw $ TypeMismatch field "string" 90 | 91 | jsonToSource : JSON -> ConfigIO Source 92 | jsonToSource (JObject xs) = do 93 | traverse_ (\field => checkSourceField field) xs 94 | 95 | name <- reqStringField "name" xs 96 | url <- reqStringField "url" xs 97 | version <- reqStringField "version" xs 98 | 99 | pure $ MkSource {name, url, version} 100 | jsonToSource _ = throw $ TypeMismatch "sources" "another type" 101 | 102 | isJsonSource : JSON -> Bool 103 | isJsonSource = \case 104 | JObject obj => True 105 | _ => False 106 | 107 | isJsonArrayOfSources : JSON -> Bool 108 | isJsonArrayOfSources = \case 109 | JArray xs => all isJsonSource xs 110 | _ => False 111 | 112 | sourcesField : List (String, JSON) -> ConfigIO (List Source) 113 | sourcesField xs = do 114 | case lookup "sources" xs of 115 | (Just (JArray arr)) => traverse (\jsonVal => jsonToSource jsonVal) arr 116 | _ => pure [] 117 | 118 | checkField : (String, JSON) -> ConfigIO () 119 | checkField (field, jsonVal) = do 120 | when (not $ elem field allowedFields) $ 121 | throw $ UnknownField field 122 | when (elem field stringFields && not (isJsonString jsonVal)) $ 123 | throw $ TypeMismatch field "string" 124 | when (elem field stringListFields && not (isJsonArrayOfStrings jsonVal)) $ 125 | throw $ TypeMismatch field "string array" 126 | 127 | jsonListToStringList : List JSON -> List String 128 | jsonListToStringList (JString x::xs) = x :: jsonListToStringList xs 129 | jsonListToStringList (_::xs) = jsonListToStringList xs 130 | jsonListToStringList [] = [] 131 | 132 | stringArrayField : String -> List (String, JSON) -> List String 133 | stringArrayField field xs = 134 | case lookup field xs of 135 | Just (JArray ys) => jsonListToStringList ys 136 | _ => [] 137 | 138 | parseConfig : List (String, JSON) -> ConfigIO Config 139 | parseConfig xs = do 140 | traverse_ (\field => checkField field) xs 141 | 142 | let package = !(reqStringField "package" xs) 143 | version = !(reqStringField "version" xs) 144 | authors = optStringField "authors" xs 145 | maintainers = optStringField "maintainers" xs 146 | license = optStringField "license" xs 147 | brief = optStringField "brief" xs 148 | readme = optStringField "readme" xs 149 | homepage = optStringField "homepage" xs 150 | sourceloc = optStringField "sourceloc" xs 151 | bugtracker = optStringField "bugtracker" xs 152 | depends = stringArrayField "depends" xs 153 | main = optStringField "main" xs 154 | executable = optStringField "executable" xs 155 | sourcedir = fromMaybe "src" $ optStringField "sourcedir" xs 156 | builddir = optStringField "builddir" xs 157 | outputdir = optStringField "outputdir" xs 158 | prebuild = optStringField "prebuild" xs 159 | postbuild = optStringField "postbuild" xs 160 | preinstall = optStringField "preinstall" xs 161 | postinstall = optStringField "postinstall" xs 162 | preclean = optStringField "preclean" xs 163 | postclean = optStringField "postclean" xs 164 | target = fromMaybe "chez" $ optStringField "target" xs 165 | -- Here happenes an idris 2 version processing 166 | -- We need to get 'x.x.x' from 'Idris 2, version x.x.x-xxxxxxxxx' 167 | langVersion = 168 | pack $ 169 | take 5 $ 170 | drop 17 $ 171 | unpack 172 | !(primIO $ 173 | either 174 | (const "Idris 2, version 0.3.0") 175 | id 176 | <$> systemStr "idris2 --version") 177 | pkgsDir = !(primIO getHomeDir) ++ "/.idris2/idris2-" ++ langVersion 178 | projectDir = case !(primIO currentDir) of 179 | Just dir => dir 180 | Nothing => "" 181 | ignoredModules = stringArrayField "ignoredModules" xs 182 | dependsWithoutVersions = 183 | map (pack . takeWhile (\c => c /= ' ' && c /= '<' && c /= '>' && c /= '=') . unpack) 184 | depends 185 | sources = 186 | filter (\src => src.name `elem` dependsWithoutVersions) 187 | !(sourcesField xs) 188 | 189 | refineModuleString : String -> String 190 | refineModuleString xs = 191 | pack $ map (\c => if c == '/' then '.' else c) 192 | (unpack $ dropLast 4 xs) 193 | 194 | isNotIgnored : String -> Bool 195 | isNotIgnored moduleName = 196 | case find (== moduleName) ignoredModules of 197 | Just _ => False 198 | Nothing => True 199 | 200 | modules <- primIO $ do 201 | _ <- changeDir sourcedir 202 | fileNames <- getFileNames "**/*.idr" 203 | _ <- changeDir ".." 204 | pure 205 | $ filter isNotIgnored 206 | $ map refineModuleString fileNames 207 | 208 | pure $ MkConfig 209 | { package, version, langVersion, target, authors, maintainers, license, brief, readme 210 | , homepage, sourceloc, bugtracker, executable, sourcedir, builddir, outputdir, depends 211 | , modules, main, sources, ignoredModules, pkgsDir, prebuild, postbuild, preinstall 212 | , postinstall, preclean, postclean, projectDir 213 | } 214 | 215 | mkConfig : ConfigIO Config 216 | mkConfig = do 217 | eqFileContent <- 218 | case !(primIO $ readFileFixed "Eq.yml") of 219 | Left err => throw $ ReadingError err 220 | Right x => pure $ yamlToJson x 221 | objectContent <- 222 | case parse eqFileContent of 223 | Just (JObject xs) => pure xs 224 | _ => throw ConfigFileShouldBeObject 225 | 226 | parseConfig objectContent 227 | 228 | export 229 | readConfig : IO (Either ConfigError Config) 230 | readConfig = runExceptIO mkConfig 231 | 232 | export 233 | configErrorToString : ConfigError -> String 234 | configErrorToString = \case 235 | UnknownField field => "Unknown field: " ++ show field 236 | TypeMismatch field expectedType => "Type mismatch for the field " ++ field ++ ", expected " 237 | ++ show expectedType 238 | RequiredFieldMissing field => "Missing required " ++ show field ++ " field" 239 | ConfigFileShouldBeObject => "Config file should be an object" 240 | ReadingError err => "Couldn't read Eq.yml: " ++ err 241 | -------------------------------------------------------------------------------- /src/Sae/Command.idr: -------------------------------------------------------------------------------- 1 | module Sae.Command 2 | 3 | import Data.Either 4 | import Data.String 5 | import Data.String.Extra 6 | import Data.Maybe 7 | import Data.List 8 | import Js.Console 9 | import Js.Glob 10 | import Js.System 11 | import Js.System.File 12 | import Sae.Config 13 | import Sae.Info 14 | import Sae.Ipkg 15 | import Sae.Types 16 | import Sae.Utils 17 | import System.Directory 18 | 19 | usageInfo : String 20 | usageInfo = 21 | """ 22 | sae — Idris 2 Build Tool v\{Sae.Info.version} 23 | 24 | Usage: sae [command] [arg*] 25 | 26 | Available commands: 27 | help Show usage info 28 | install-deps Install dependencies 29 | reinstall-deps Forcibly reinstall dependencies 30 | build Build project 31 | yarn Build project and resolve npm dependencies 32 | install Register package in the system 33 | release Compile project into a file 34 | repl Open REPL 35 | new Create a sae project 36 | """ 37 | 38 | -- generate-ipkg 39 | 40 | generateIpkg : Config -> IO () 41 | generateIpkg cfg = 42 | let dir = fromMaybe "./" !currentDir 43 | ipkgFiles = !(getFileNames "*.ipkg") 44 | ipkgPath = dir ++ "/" ++ cfg.package ++ ".ipkg" 45 | ipkg = configToIpkg cfg 46 | in case !(writeFileFixed ipkgPath ipkg) of 47 | Left err => failMsg $ show err 48 | Right _ => 49 | when (not $ cfg.package ++ ".ipkg" `elem` ipkgFiles) $ 50 | putStrLn $ "Generated: " ++ ipkgPath 51 | 52 | -- fetch 53 | 54 | fetchSource : String -> Config -> Source -> IO () 55 | fetchSource depsDir cfg src = do 56 | let folderName = src.name ++ "-" ++ src.version 57 | cloneDestination = depsDir ++ folderName 58 | cloneCmd = "git clone " ++ src.url ++ " " ++ cloneDestination 59 | changeVersionCmd = "git -c advice.detachedHead=false checkout " ++ src.version 60 | 61 | _ <- changeDir cfg.projectDir 62 | 63 | when (not !(doesFileExist cloneDestination)) $ do 64 | if !(system cloneCmd) == 0 65 | then do 66 | _ <- changeDir cloneDestination 67 | if !(system changeVersionCmd) == 0 68 | then ignore $ do 69 | -- when (elem cfg.target ["javascript", "node"] && !(doesFileExist "package.json")) $ do 70 | -- yarnVersionCmdResult <- system "yarn --version" 71 | -- system $ if yarnVersionCmdResult == 0 then "yarn" else "npm i" 72 | -- pure () 73 | changeDir ".." 74 | else failMsg $ "Couldn't switch to version: " ++ changeVersionCmd 75 | else failMsg $ "Cloning failed: " ++ cloneCmd 76 | 77 | fetchDeps : Config -> IO () 78 | fetchDeps cfg = do 79 | let saeDir = !getHomeDir ++ "/.sae/" 80 | depsRootDir = saeDir ++ "deps/" 81 | depsDir = depsRootDir ++ "idris-" ++ cfg.langVersion ++ "/" 82 | 83 | traverse_ createDir [saeDir, depsRootDir, depsDir] 84 | traverse_ (fetchSource depsDir cfg) cfg.sources 85 | 86 | mutual 87 | -- install-deps / reinstall-deps 88 | 89 | installSource : Bool -> Source -> IO () 90 | installSource shouldRebuild src = do 91 | let folderName = src.name ++ "-" ++ src.version 92 | _ <- changeDir folderName 93 | case !readConfig of 94 | Right cfg => do 95 | let pkgName = cfg.package ++ "-" ++ cfg.version 96 | installedPkgDir = cfg.pkgsDir ++ "/" ++ pkgName 97 | installDeps shouldRebuild cfg 98 | _ <- changeDir folderName 99 | installedPkgDirDoesntExist <- not <$> doesFileExist installedPkgDir 100 | when (shouldRebuild || installedPkgDirDoesntExist) $ 101 | install cfg 102 | Left err => failMsg $ configErrorToString err 103 | _ <- changeDir ".." 104 | pure () 105 | 106 | installDeps : Bool -> Config -> IO () 107 | installDeps shouldRebuild cfg = do 108 | let depsDir = !getHomeDir ++ "/.sae/deps/idris-" ++ cfg.langVersion ++ "/" 109 | fetchDeps cfg 110 | _ <- changeDir depsDir 111 | traverse_ (installSource shouldRebuild) cfg.sources 112 | 113 | -- build 114 | 115 | build : Config -> IO () 116 | build cfg = do 117 | initialDir <- fromMaybe "" <$> currentDir 118 | generateIpkg cfg 119 | installDeps False cfg 120 | _ <- changeDir initialDir 121 | _ <- system $ "idris2 --build " ++ cfg.package ++ ".ipkg" 122 | pure () 123 | 124 | -- install 125 | 126 | install : Config -> IO () 127 | install cfg = do 128 | initialDir <- fromMaybe "" <$> currentDir 129 | putStrLn $ "package: " ++ cfg.package ++ "-" ++ cfg.version 130 | generateIpkg cfg 131 | installDeps False cfg 132 | _ <- changeDir initialDir 133 | _ <- system $ "idris2 --install " ++ cfg.package ++ ".ipkg" 134 | pure () 135 | 136 | -- new 137 | 138 | mkEqFile : String -> String 139 | mkEqFile projectName = 140 | """ 141 | package: \{projectName} 142 | version: 0.0.1 143 | 144 | # depends: 145 | # - contrib 146 | 147 | # sources: 148 | # - name: some-package 149 | # url: https://github.com/SomeAuthor/some-repository 150 | # version: v0.0.1 151 | """ 152 | 153 | basicMainFile : String 154 | basicMainFile = 155 | """ 156 | module Main 157 | 158 | main : IO () 159 | main = putStrLn "Now, I'm gonna solve all of the equations!" 160 | """ 161 | 162 | new : String -> IO () 163 | new projectName = do 164 | _ <- createDir projectName 165 | _ <- changeDir projectName 166 | _ <- createDir "src" 167 | _ <- writeFileFixed "Eq.yml" $ mkEqFile projectName 168 | _ <- writeFileFixed "src/Main.idr" basicMainFile 169 | _ <- writeFileFixed ".gitignore" $ unlines ["build/", "DS_Store", projectName ++ ".ipkg"] 170 | pure () 171 | 172 | -- release 173 | 174 | release : Config -> IO () 175 | release cfg = do 176 | build cfg 177 | 178 | let outputFileName = if elem cfg.target ["javascript", "node"] then "index.js" else cfg.package 179 | releaseCmd = join " " 180 | [ "idris2" 181 | , cfg.sourcedir ++ "/Main.idr" 182 | , "--codegen " ++ cfg.target 183 | , concatMap (" -p " ++) cfg.depends 184 | , "-o " ++ outputFileName 185 | ] 186 | releaseCmdResultCode = !(system releaseCmd) 187 | projectPath = fromMaybe "" !currentDir 188 | outputMsg = 189 | if releaseCmdResultCode == 0 190 | then Right $ "Compiled: " 191 | ++ projectPath 192 | ++ (fromMaybe "/build" cfg.builddir) 193 | ++ "/exec/" ++ outputFileName 194 | else Left $ "ERROR(" ++ show releaseCmdResultCode ++ "): Couldn't built " ++ cfg.package 195 | 196 | either failMsg putStrLn outputMsg 197 | 198 | -- run 199 | 200 | run : List String -> Config -> IO () 201 | run args cfg = do 202 | let outputFileName = if elem cfg.target ["javascript", "node"] then "index.js" else cfg.package 203 | projectPath = fromMaybe "" !currentDir 204 | outputFilePath = projectPath ++ (fromMaybe "/build" cfg.builddir) ++ "/exec/" ++ outputFileName 205 | runCmd = 206 | if cfg.target == "node" 207 | then "node " ++ outputFilePath ++ " " ++ join " " args 208 | else outputFilePath ++ " " ++ join " " args 209 | 210 | _ <- system runCmd 211 | pure () 212 | 213 | -- repl 214 | 215 | repl : Config -> IO () 216 | repl cfg = do 217 | initialDir <- fromMaybe "" <$> currentDir 218 | generateIpkg cfg 219 | installDeps False cfg 220 | _ <- changeDir initialDir 221 | 222 | let idrisReplCmd = "idris2 --repl \{cfg.package}.ipkg" 223 | rlwrapVersionCmdResult = !(systemStr "rlwrap --version") 224 | replCmd = 225 | if isRight rlwrapVersionCmdResult 226 | then "rlwrap " ++ idrisReplCmd 227 | else idrisReplCmd 228 | 229 | when (isLeft rlwrapVersionCmdResult) $ 230 | putStrLn "WARNING! Install 'rlwrap' to get history and improve your repl experience" 231 | _ <- system replCmd 232 | pure () 233 | 234 | -- yarn 235 | 236 | createMergedPackageJson : String -> Config -> IO () 237 | createMergedPackageJson initialDir cfg = do 238 | let saeDir = !getHomeDir ++ "/.sae/" 239 | depsRootDir = saeDir ++ "deps/" 240 | depsDir = depsRootDir ++ "idris-" ++ cfg.langVersion ++ "/" 241 | depsPaths = 242 | map (\src => depsDir ++ src.name ++ "-" ++ src.version ++ "/package.json") 243 | cfg.sources 244 | 245 | jsDepsPaths <- 246 | traverse 247 | (\path => pure (path, !(doesFileExist path))) 248 | depsPaths 249 | 250 | let verifiedPackageJsonPaths = map fst $ filter snd jsDepsPaths 251 | 252 | case !(readFileFixed "\{initialDir}/package.json") of 253 | Left err => pure () 254 | Right basePackageJson => do 255 | _ <- changeDir initialDir 256 | _ <- system "yarn" 257 | _ <- system $ "npx --yes package-json-merge package.json " 258 | ++ join " " verifiedPackageJsonPaths 259 | ++ " > build/package.json" 260 | _ <- system "cd build && yarn --production" 261 | pure () 262 | 263 | yarn : Config -> IO () 264 | yarn cfg = 265 | if cfg.target `elem` ["node", "javascript"] 266 | then do 267 | initialDir <- fromMaybe "" <$> currentDir 268 | build cfg 269 | createMergedPackageJson initialDir cfg 270 | else failMsg "yarn isn't supported for \{cfg.target} target, use node or javascript" 271 | 272 | evalCommand : Config -> Command -> IO () 273 | evalCommand cfg GenerateIpkg = generateIpkg cfg 274 | evalCommand cfg FetchDeps = fetchDeps cfg 275 | evalCommand cfg InstallDeps = installDeps False cfg 276 | evalCommand cfg ReinstallDeps = installDeps True cfg 277 | evalCommand cfg Build = build cfg 278 | evalCommand cfg Install = install cfg 279 | evalCommand cfg Release = release cfg 280 | evalCommand cfg Repl = repl cfg 281 | evalCommand cfg (Run args) = run args cfg 282 | evalCommand cfg Yarn = yarn cfg 283 | evalCommand _ Help = failMsg "help command should be handled by the runCommand function" 284 | evalCommand _ (New _) = failMsg "new command should be handled by the runCommand function" 285 | 286 | evalConfig : Command -> Either ConfigError Config -> IO () 287 | evalConfig _ (Left configError) = failMsg $ configErrorToString configError 288 | evalConfig cmd (Right cfg) = evalCommand cfg cmd 289 | 290 | export 291 | runCommand : Command -> IO () 292 | runCommand Help = log usageInfo 293 | runCommand (New projectName) = new projectName 294 | runCommand cmd = evalConfig cmd !readConfig 295 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.4 2 | 3 | specifiers: 4 | glob: ^7.1.7 5 | js-yaml: ^4.1.0 6 | pkg: ^5.2.1 7 | 8 | dependencies: 9 | glob: 7.2.3 10 | js-yaml: 4.1.0 11 | 12 | devDependencies: 13 | pkg: 5.8.0 14 | 15 | packages: 16 | 17 | /@babel/generator/7.18.2: 18 | resolution: {integrity: sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==} 19 | engines: {node: '>=6.9.0'} 20 | dependencies: 21 | '@babel/types': 7.18.4 22 | '@jridgewell/gen-mapping': 0.3.2 23 | jsesc: 2.5.2 24 | dev: true 25 | 26 | /@babel/helper-validator-identifier/7.19.1: 27 | resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} 28 | engines: {node: '>=6.9.0'} 29 | dev: true 30 | 31 | /@babel/parser/7.18.4: 32 | resolution: {integrity: sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==} 33 | engines: {node: '>=6.0.0'} 34 | hasBin: true 35 | dependencies: 36 | '@babel/types': 7.18.4 37 | dev: true 38 | 39 | /@babel/types/7.18.4: 40 | resolution: {integrity: sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==} 41 | engines: {node: '>=6.9.0'} 42 | dependencies: 43 | '@babel/helper-validator-identifier': 7.19.1 44 | to-fast-properties: 2.0.0 45 | dev: true 46 | 47 | /@jridgewell/gen-mapping/0.3.2: 48 | resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} 49 | engines: {node: '>=6.0.0'} 50 | dependencies: 51 | '@jridgewell/set-array': 1.1.2 52 | '@jridgewell/sourcemap-codec': 1.4.14 53 | '@jridgewell/trace-mapping': 0.3.17 54 | dev: true 55 | 56 | /@jridgewell/resolve-uri/3.1.0: 57 | resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} 58 | engines: {node: '>=6.0.0'} 59 | dev: true 60 | 61 | /@jridgewell/set-array/1.1.2: 62 | resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} 63 | engines: {node: '>=6.0.0'} 64 | dev: true 65 | 66 | /@jridgewell/sourcemap-codec/1.4.14: 67 | resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} 68 | dev: true 69 | 70 | /@jridgewell/trace-mapping/0.3.17: 71 | resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} 72 | dependencies: 73 | '@jridgewell/resolve-uri': 3.1.0 74 | '@jridgewell/sourcemap-codec': 1.4.14 75 | dev: true 76 | 77 | /@nodelib/fs.scandir/2.1.5: 78 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 79 | engines: {node: '>= 8'} 80 | dependencies: 81 | '@nodelib/fs.stat': 2.0.5 82 | run-parallel: 1.2.0 83 | dev: true 84 | 85 | /@nodelib/fs.stat/2.0.5: 86 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 87 | engines: {node: '>= 8'} 88 | dev: true 89 | 90 | /@nodelib/fs.walk/1.2.8: 91 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 92 | engines: {node: '>= 8'} 93 | dependencies: 94 | '@nodelib/fs.scandir': 2.1.5 95 | fastq: 1.15.0 96 | dev: true 97 | 98 | /agent-base/6.0.2: 99 | resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} 100 | engines: {node: '>= 6.0.0'} 101 | dependencies: 102 | debug: 4.3.4 103 | transitivePeerDependencies: 104 | - supports-color 105 | dev: true 106 | 107 | /ansi-regex/2.1.1: 108 | resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} 109 | engines: {node: '>=0.10.0'} 110 | dev: true 111 | 112 | /ansi-regex/5.0.1: 113 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 114 | engines: {node: '>=8'} 115 | dev: true 116 | 117 | /ansi-styles/4.3.0: 118 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 119 | engines: {node: '>=8'} 120 | dependencies: 121 | color-convert: 2.0.1 122 | dev: true 123 | 124 | /aproba/1.2.0: 125 | resolution: {integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==} 126 | dev: true 127 | 128 | /are-we-there-yet/1.1.7: 129 | resolution: {integrity: sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==} 130 | dependencies: 131 | delegates: 1.0.0 132 | readable-stream: 2.3.7 133 | dev: true 134 | 135 | /argparse/2.0.1: 136 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 137 | dev: false 138 | 139 | /array-union/2.1.0: 140 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 141 | engines: {node: '>=8'} 142 | dev: true 143 | 144 | /at-least-node/1.0.0: 145 | resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} 146 | engines: {node: '>= 4.0.0'} 147 | dev: true 148 | 149 | /balanced-match/1.0.2: 150 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 151 | dev: false 152 | 153 | /base64-js/1.5.1: 154 | resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} 155 | dev: true 156 | 157 | /bl/4.1.0: 158 | resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} 159 | dependencies: 160 | buffer: 5.7.1 161 | inherits: 2.0.4 162 | readable-stream: 3.6.0 163 | dev: true 164 | 165 | /brace-expansion/1.1.11: 166 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 167 | dependencies: 168 | balanced-match: 1.0.2 169 | concat-map: 0.0.1 170 | dev: false 171 | 172 | /braces/3.0.2: 173 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 174 | engines: {node: '>=8'} 175 | dependencies: 176 | fill-range: 7.0.1 177 | dev: true 178 | 179 | /buffer/5.7.1: 180 | resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} 181 | dependencies: 182 | base64-js: 1.5.1 183 | ieee754: 1.2.1 184 | dev: true 185 | 186 | /chalk/4.1.2: 187 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 188 | engines: {node: '>=10'} 189 | dependencies: 190 | ansi-styles: 4.3.0 191 | supports-color: 7.2.0 192 | dev: true 193 | 194 | /chownr/1.1.4: 195 | resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} 196 | dev: true 197 | 198 | /cliui/7.0.4: 199 | resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} 200 | dependencies: 201 | string-width: 4.2.3 202 | strip-ansi: 6.0.1 203 | wrap-ansi: 7.0.0 204 | dev: true 205 | 206 | /code-point-at/1.1.0: 207 | resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==} 208 | engines: {node: '>=0.10.0'} 209 | dev: true 210 | 211 | /color-convert/2.0.1: 212 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 213 | engines: {node: '>=7.0.0'} 214 | dependencies: 215 | color-name: 1.1.4 216 | dev: true 217 | 218 | /color-name/1.1.4: 219 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 220 | dev: true 221 | 222 | /concat-map/0.0.1: 223 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 224 | dev: false 225 | 226 | /console-control-strings/1.1.0: 227 | resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} 228 | dev: true 229 | 230 | /core-util-is/1.0.3: 231 | resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} 232 | dev: true 233 | 234 | /debug/4.3.4: 235 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 236 | engines: {node: '>=6.0'} 237 | peerDependencies: 238 | supports-color: '*' 239 | peerDependenciesMeta: 240 | supports-color: 241 | optional: true 242 | dependencies: 243 | ms: 2.1.2 244 | dev: true 245 | 246 | /decompress-response/4.2.1: 247 | resolution: {integrity: sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==} 248 | engines: {node: '>=8'} 249 | dependencies: 250 | mimic-response: 2.1.0 251 | dev: true 252 | 253 | /deep-extend/0.6.0: 254 | resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} 255 | engines: {node: '>=4.0.0'} 256 | dev: true 257 | 258 | /delegates/1.0.0: 259 | resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} 260 | dev: true 261 | 262 | /detect-libc/1.0.3: 263 | resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} 264 | engines: {node: '>=0.10'} 265 | hasBin: true 266 | dev: true 267 | 268 | /dir-glob/3.0.1: 269 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 270 | engines: {node: '>=8'} 271 | dependencies: 272 | path-type: 4.0.0 273 | dev: true 274 | 275 | /emoji-regex/8.0.0: 276 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 277 | dev: true 278 | 279 | /end-of-stream/1.4.4: 280 | resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} 281 | dependencies: 282 | once: 1.4.0 283 | dev: true 284 | 285 | /escalade/3.1.1: 286 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 287 | engines: {node: '>=6'} 288 | dev: true 289 | 290 | /expand-template/2.0.3: 291 | resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} 292 | engines: {node: '>=6'} 293 | dev: true 294 | 295 | /fast-glob/3.2.12: 296 | resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} 297 | engines: {node: '>=8.6.0'} 298 | dependencies: 299 | '@nodelib/fs.stat': 2.0.5 300 | '@nodelib/fs.walk': 1.2.8 301 | glob-parent: 5.1.2 302 | merge2: 1.4.1 303 | micromatch: 4.0.5 304 | dev: true 305 | 306 | /fastq/1.15.0: 307 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} 308 | dependencies: 309 | reusify: 1.0.4 310 | dev: true 311 | 312 | /fill-range/7.0.1: 313 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 314 | engines: {node: '>=8'} 315 | dependencies: 316 | to-regex-range: 5.0.1 317 | dev: true 318 | 319 | /from2/2.3.0: 320 | resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==} 321 | dependencies: 322 | inherits: 2.0.4 323 | readable-stream: 2.3.7 324 | dev: true 325 | 326 | /fs-constants/1.0.0: 327 | resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} 328 | dev: true 329 | 330 | /fs-extra/9.1.0: 331 | resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} 332 | engines: {node: '>=10'} 333 | dependencies: 334 | at-least-node: 1.0.0 335 | graceful-fs: 4.2.10 336 | jsonfile: 6.1.0 337 | universalify: 2.0.0 338 | dev: true 339 | 340 | /fs.realpath/1.0.0: 341 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 342 | dev: false 343 | 344 | /function-bind/1.1.1: 345 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 346 | dev: true 347 | 348 | /gauge/2.7.4: 349 | resolution: {integrity: sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==} 350 | dependencies: 351 | aproba: 1.2.0 352 | console-control-strings: 1.1.0 353 | has-unicode: 2.0.1 354 | object-assign: 4.1.1 355 | signal-exit: 3.0.7 356 | string-width: 1.0.2 357 | strip-ansi: 3.0.1 358 | wide-align: 1.1.5 359 | dev: true 360 | 361 | /get-caller-file/2.0.5: 362 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 363 | engines: {node: 6.* || 8.* || >= 10.*} 364 | dev: true 365 | 366 | /github-from-package/0.0.0: 367 | resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} 368 | dev: true 369 | 370 | /glob-parent/5.1.2: 371 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 372 | engines: {node: '>= 6'} 373 | dependencies: 374 | is-glob: 4.0.3 375 | dev: true 376 | 377 | /glob/7.2.3: 378 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 379 | dependencies: 380 | fs.realpath: 1.0.0 381 | inflight: 1.0.6 382 | inherits: 2.0.4 383 | minimatch: 3.1.2 384 | once: 1.4.0 385 | path-is-absolute: 1.0.1 386 | dev: false 387 | 388 | /globby/11.1.0: 389 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 390 | engines: {node: '>=10'} 391 | dependencies: 392 | array-union: 2.1.0 393 | dir-glob: 3.0.1 394 | fast-glob: 3.2.12 395 | ignore: 5.2.4 396 | merge2: 1.4.1 397 | slash: 3.0.0 398 | dev: true 399 | 400 | /graceful-fs/4.2.10: 401 | resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} 402 | dev: true 403 | 404 | /has-flag/4.0.0: 405 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 406 | engines: {node: '>=8'} 407 | dev: true 408 | 409 | /has-unicode/2.0.1: 410 | resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} 411 | dev: true 412 | 413 | /has/1.0.3: 414 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 415 | engines: {node: '>= 0.4.0'} 416 | dependencies: 417 | function-bind: 1.1.1 418 | dev: true 419 | 420 | /https-proxy-agent/5.0.1: 421 | resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} 422 | engines: {node: '>= 6'} 423 | dependencies: 424 | agent-base: 6.0.2 425 | debug: 4.3.4 426 | transitivePeerDependencies: 427 | - supports-color 428 | dev: true 429 | 430 | /ieee754/1.2.1: 431 | resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} 432 | dev: true 433 | 434 | /ignore/5.2.4: 435 | resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} 436 | engines: {node: '>= 4'} 437 | dev: true 438 | 439 | /inflight/1.0.6: 440 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 441 | dependencies: 442 | once: 1.4.0 443 | wrappy: 1.0.2 444 | dev: false 445 | 446 | /inherits/2.0.4: 447 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 448 | 449 | /ini/1.3.8: 450 | resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} 451 | dev: true 452 | 453 | /into-stream/6.0.0: 454 | resolution: {integrity: sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA==} 455 | engines: {node: '>=10'} 456 | dependencies: 457 | from2: 2.3.0 458 | p-is-promise: 3.0.0 459 | dev: true 460 | 461 | /is-core-module/2.9.0: 462 | resolution: {integrity: sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==} 463 | dependencies: 464 | has: 1.0.3 465 | dev: true 466 | 467 | /is-extglob/2.1.1: 468 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 469 | engines: {node: '>=0.10.0'} 470 | dev: true 471 | 472 | /is-fullwidth-code-point/1.0.0: 473 | resolution: {integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==} 474 | engines: {node: '>=0.10.0'} 475 | dependencies: 476 | number-is-nan: 1.0.1 477 | dev: true 478 | 479 | /is-fullwidth-code-point/3.0.0: 480 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 481 | engines: {node: '>=8'} 482 | dev: true 483 | 484 | /is-glob/4.0.3: 485 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 486 | engines: {node: '>=0.10.0'} 487 | dependencies: 488 | is-extglob: 2.1.1 489 | dev: true 490 | 491 | /is-number/7.0.0: 492 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 493 | engines: {node: '>=0.12.0'} 494 | dev: true 495 | 496 | /isarray/1.0.0: 497 | resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} 498 | dev: true 499 | 500 | /js-yaml/4.1.0: 501 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 502 | hasBin: true 503 | dependencies: 504 | argparse: 2.0.1 505 | dev: false 506 | 507 | /jsesc/2.5.2: 508 | resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} 509 | engines: {node: '>=4'} 510 | hasBin: true 511 | dev: true 512 | 513 | /jsonfile/6.1.0: 514 | resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} 515 | dependencies: 516 | universalify: 2.0.0 517 | optionalDependencies: 518 | graceful-fs: 4.2.10 519 | dev: true 520 | 521 | /lru-cache/6.0.0: 522 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 523 | engines: {node: '>=10'} 524 | dependencies: 525 | yallist: 4.0.0 526 | dev: true 527 | 528 | /merge2/1.4.1: 529 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 530 | engines: {node: '>= 8'} 531 | dev: true 532 | 533 | /micromatch/4.0.5: 534 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 535 | engines: {node: '>=8.6'} 536 | dependencies: 537 | braces: 3.0.2 538 | picomatch: 2.3.1 539 | dev: true 540 | 541 | /mimic-response/2.1.0: 542 | resolution: {integrity: sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==} 543 | engines: {node: '>=8'} 544 | dev: true 545 | 546 | /minimatch/3.1.2: 547 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 548 | dependencies: 549 | brace-expansion: 1.1.11 550 | dev: false 551 | 552 | /minimist/1.2.7: 553 | resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} 554 | dev: true 555 | 556 | /mkdirp-classic/0.5.3: 557 | resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} 558 | dev: true 559 | 560 | /ms/2.1.2: 561 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 562 | dev: true 563 | 564 | /multistream/4.1.0: 565 | resolution: {integrity: sha512-J1XDiAmmNpRCBfIWJv+n0ymC4ABcf/Pl+5YvC5B/D2f/2+8PtHvCNxMPKiQcZyi922Hq69J2YOpb1pTywfifyw==} 566 | dependencies: 567 | once: 1.4.0 568 | readable-stream: 3.6.0 569 | dev: true 570 | 571 | /napi-build-utils/1.0.2: 572 | resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} 573 | dev: true 574 | 575 | /node-abi/2.30.1: 576 | resolution: {integrity: sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==} 577 | dependencies: 578 | semver: 5.7.1 579 | dev: true 580 | 581 | /node-fetch/2.6.8: 582 | resolution: {integrity: sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg==} 583 | engines: {node: 4.x || >=6.0.0} 584 | peerDependencies: 585 | encoding: ^0.1.0 586 | peerDependenciesMeta: 587 | encoding: 588 | optional: true 589 | dependencies: 590 | whatwg-url: 5.0.0 591 | dev: true 592 | 593 | /npmlog/4.1.2: 594 | resolution: {integrity: sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==} 595 | dependencies: 596 | are-we-there-yet: 1.1.7 597 | console-control-strings: 1.1.0 598 | gauge: 2.7.4 599 | set-blocking: 2.0.0 600 | dev: true 601 | 602 | /number-is-nan/1.0.1: 603 | resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} 604 | engines: {node: '>=0.10.0'} 605 | dev: true 606 | 607 | /object-assign/4.1.1: 608 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 609 | engines: {node: '>=0.10.0'} 610 | dev: true 611 | 612 | /once/1.4.0: 613 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 614 | dependencies: 615 | wrappy: 1.0.2 616 | 617 | /p-is-promise/3.0.0: 618 | resolution: {integrity: sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==} 619 | engines: {node: '>=8'} 620 | dev: true 621 | 622 | /path-is-absolute/1.0.1: 623 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 624 | engines: {node: '>=0.10.0'} 625 | dev: false 626 | 627 | /path-parse/1.0.7: 628 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 629 | dev: true 630 | 631 | /path-type/4.0.0: 632 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 633 | engines: {node: '>=8'} 634 | dev: true 635 | 636 | /picomatch/2.3.1: 637 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 638 | engines: {node: '>=8.6'} 639 | dev: true 640 | 641 | /pkg-fetch/3.4.2: 642 | resolution: {integrity: sha512-0+uijmzYcnhC0hStDjm/cl2VYdrmVVBpe7Q8k9YBojxmR5tG8mvR9/nooQq3QSXiQqORDVOTY3XqMEqJVIzkHA==} 643 | hasBin: true 644 | dependencies: 645 | chalk: 4.1.2 646 | fs-extra: 9.1.0 647 | https-proxy-agent: 5.0.1 648 | node-fetch: 2.6.8 649 | progress: 2.0.3 650 | semver: 7.3.8 651 | tar-fs: 2.1.1 652 | yargs: 16.2.0 653 | transitivePeerDependencies: 654 | - encoding 655 | - supports-color 656 | dev: true 657 | 658 | /pkg/5.8.0: 659 | resolution: {integrity: sha512-8h9PUDYFi+LOMLbIyGRdP21g08mAtHidSpofSrf8LWhxUWGHymaRzcopEGiynB5EhQmZUKM6PQ9kCImV2TpdjQ==} 660 | hasBin: true 661 | peerDependencies: 662 | node-notifier: '>=9.0.1' 663 | peerDependenciesMeta: 664 | node-notifier: 665 | optional: true 666 | dependencies: 667 | '@babel/generator': 7.18.2 668 | '@babel/parser': 7.18.4 669 | '@babel/types': 7.18.4 670 | chalk: 4.1.2 671 | fs-extra: 9.1.0 672 | globby: 11.1.0 673 | into-stream: 6.0.0 674 | is-core-module: 2.9.0 675 | minimist: 1.2.7 676 | multistream: 4.1.0 677 | pkg-fetch: 3.4.2 678 | prebuild-install: 6.1.4 679 | resolve: 1.22.1 680 | stream-meter: 1.0.4 681 | transitivePeerDependencies: 682 | - encoding 683 | - supports-color 684 | dev: true 685 | 686 | /prebuild-install/6.1.4: 687 | resolution: {integrity: sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ==} 688 | engines: {node: '>=6'} 689 | hasBin: true 690 | dependencies: 691 | detect-libc: 1.0.3 692 | expand-template: 2.0.3 693 | github-from-package: 0.0.0 694 | minimist: 1.2.7 695 | mkdirp-classic: 0.5.3 696 | napi-build-utils: 1.0.2 697 | node-abi: 2.30.1 698 | npmlog: 4.1.2 699 | pump: 3.0.0 700 | rc: 1.2.8 701 | simple-get: 3.1.1 702 | tar-fs: 2.1.1 703 | tunnel-agent: 0.6.0 704 | dev: true 705 | 706 | /process-nextick-args/2.0.1: 707 | resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} 708 | dev: true 709 | 710 | /progress/2.0.3: 711 | resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} 712 | engines: {node: '>=0.4.0'} 713 | dev: true 714 | 715 | /pump/3.0.0: 716 | resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} 717 | dependencies: 718 | end-of-stream: 1.4.4 719 | once: 1.4.0 720 | dev: true 721 | 722 | /queue-microtask/1.2.3: 723 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 724 | dev: true 725 | 726 | /rc/1.2.8: 727 | resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} 728 | hasBin: true 729 | dependencies: 730 | deep-extend: 0.6.0 731 | ini: 1.3.8 732 | minimist: 1.2.7 733 | strip-json-comments: 2.0.1 734 | dev: true 735 | 736 | /readable-stream/2.3.7: 737 | resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==} 738 | dependencies: 739 | core-util-is: 1.0.3 740 | inherits: 2.0.4 741 | isarray: 1.0.0 742 | process-nextick-args: 2.0.1 743 | safe-buffer: 5.1.2 744 | string_decoder: 1.1.1 745 | util-deprecate: 1.0.2 746 | dev: true 747 | 748 | /readable-stream/3.6.0: 749 | resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==} 750 | engines: {node: '>= 6'} 751 | dependencies: 752 | inherits: 2.0.4 753 | string_decoder: 1.3.0 754 | util-deprecate: 1.0.2 755 | dev: true 756 | 757 | /require-directory/2.1.1: 758 | resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} 759 | engines: {node: '>=0.10.0'} 760 | dev: true 761 | 762 | /resolve/1.22.1: 763 | resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} 764 | hasBin: true 765 | dependencies: 766 | is-core-module: 2.9.0 767 | path-parse: 1.0.7 768 | supports-preserve-symlinks-flag: 1.0.0 769 | dev: true 770 | 771 | /reusify/1.0.4: 772 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 773 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 774 | dev: true 775 | 776 | /run-parallel/1.2.0: 777 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 778 | dependencies: 779 | queue-microtask: 1.2.3 780 | dev: true 781 | 782 | /safe-buffer/5.1.2: 783 | resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} 784 | dev: true 785 | 786 | /safe-buffer/5.2.1: 787 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 788 | dev: true 789 | 790 | /semver/5.7.1: 791 | resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} 792 | hasBin: true 793 | dev: true 794 | 795 | /semver/7.3.8: 796 | resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} 797 | engines: {node: '>=10'} 798 | hasBin: true 799 | dependencies: 800 | lru-cache: 6.0.0 801 | dev: true 802 | 803 | /set-blocking/2.0.0: 804 | resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} 805 | dev: true 806 | 807 | /signal-exit/3.0.7: 808 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 809 | dev: true 810 | 811 | /simple-concat/1.0.1: 812 | resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} 813 | dev: true 814 | 815 | /simple-get/3.1.1: 816 | resolution: {integrity: sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==} 817 | dependencies: 818 | decompress-response: 4.2.1 819 | once: 1.4.0 820 | simple-concat: 1.0.1 821 | dev: true 822 | 823 | /slash/3.0.0: 824 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 825 | engines: {node: '>=8'} 826 | dev: true 827 | 828 | /stream-meter/1.0.4: 829 | resolution: {integrity: sha512-4sOEtrbgFotXwnEuzzsQBYEV1elAeFSO8rSGeTwabuX1RRn/kEq9JVH7I0MRBhKVRR0sJkr0M0QCH7yOLf9fhQ==} 830 | dependencies: 831 | readable-stream: 2.3.7 832 | dev: true 833 | 834 | /string-width/1.0.2: 835 | resolution: {integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==} 836 | engines: {node: '>=0.10.0'} 837 | dependencies: 838 | code-point-at: 1.1.0 839 | is-fullwidth-code-point: 1.0.0 840 | strip-ansi: 3.0.1 841 | dev: true 842 | 843 | /string-width/4.2.3: 844 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 845 | engines: {node: '>=8'} 846 | dependencies: 847 | emoji-regex: 8.0.0 848 | is-fullwidth-code-point: 3.0.0 849 | strip-ansi: 6.0.1 850 | dev: true 851 | 852 | /string_decoder/1.1.1: 853 | resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} 854 | dependencies: 855 | safe-buffer: 5.1.2 856 | dev: true 857 | 858 | /string_decoder/1.3.0: 859 | resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} 860 | dependencies: 861 | safe-buffer: 5.2.1 862 | dev: true 863 | 864 | /strip-ansi/3.0.1: 865 | resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} 866 | engines: {node: '>=0.10.0'} 867 | dependencies: 868 | ansi-regex: 2.1.1 869 | dev: true 870 | 871 | /strip-ansi/6.0.1: 872 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 873 | engines: {node: '>=8'} 874 | dependencies: 875 | ansi-regex: 5.0.1 876 | dev: true 877 | 878 | /strip-json-comments/2.0.1: 879 | resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} 880 | engines: {node: '>=0.10.0'} 881 | dev: true 882 | 883 | /supports-color/7.2.0: 884 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 885 | engines: {node: '>=8'} 886 | dependencies: 887 | has-flag: 4.0.0 888 | dev: true 889 | 890 | /supports-preserve-symlinks-flag/1.0.0: 891 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 892 | engines: {node: '>= 0.4'} 893 | dev: true 894 | 895 | /tar-fs/2.1.1: 896 | resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} 897 | dependencies: 898 | chownr: 1.1.4 899 | mkdirp-classic: 0.5.3 900 | pump: 3.0.0 901 | tar-stream: 2.2.0 902 | dev: true 903 | 904 | /tar-stream/2.2.0: 905 | resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} 906 | engines: {node: '>=6'} 907 | dependencies: 908 | bl: 4.1.0 909 | end-of-stream: 1.4.4 910 | fs-constants: 1.0.0 911 | inherits: 2.0.4 912 | readable-stream: 3.6.0 913 | dev: true 914 | 915 | /to-fast-properties/2.0.0: 916 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 917 | engines: {node: '>=4'} 918 | dev: true 919 | 920 | /to-regex-range/5.0.1: 921 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 922 | engines: {node: '>=8.0'} 923 | dependencies: 924 | is-number: 7.0.0 925 | dev: true 926 | 927 | /tr46/0.0.3: 928 | resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} 929 | dev: true 930 | 931 | /tunnel-agent/0.6.0: 932 | resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} 933 | dependencies: 934 | safe-buffer: 5.2.1 935 | dev: true 936 | 937 | /universalify/2.0.0: 938 | resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} 939 | engines: {node: '>= 10.0.0'} 940 | dev: true 941 | 942 | /util-deprecate/1.0.2: 943 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 944 | dev: true 945 | 946 | /webidl-conversions/3.0.1: 947 | resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} 948 | dev: true 949 | 950 | /whatwg-url/5.0.0: 951 | resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} 952 | dependencies: 953 | tr46: 0.0.3 954 | webidl-conversions: 3.0.1 955 | dev: true 956 | 957 | /wide-align/1.1.5: 958 | resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} 959 | dependencies: 960 | string-width: 1.0.2 961 | dev: true 962 | 963 | /wrap-ansi/7.0.0: 964 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 965 | engines: {node: '>=10'} 966 | dependencies: 967 | ansi-styles: 4.3.0 968 | string-width: 4.2.3 969 | strip-ansi: 6.0.1 970 | dev: true 971 | 972 | /wrappy/1.0.2: 973 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 974 | 975 | /y18n/5.0.8: 976 | resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 977 | engines: {node: '>=10'} 978 | dev: true 979 | 980 | /yallist/4.0.0: 981 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 982 | dev: true 983 | 984 | /yargs-parser/20.2.9: 985 | resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} 986 | engines: {node: '>=10'} 987 | dev: true 988 | 989 | /yargs/16.2.0: 990 | resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} 991 | engines: {node: '>=10'} 992 | dependencies: 993 | cliui: 7.0.4 994 | escalade: 3.1.1 995 | get-caller-file: 2.0.5 996 | require-directory: 2.1.1 997 | string-width: 4.2.3 998 | y18n: 5.0.8 999 | yargs-parser: 20.2.9 1000 | dev: true 1001 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/helper-validator-identifier@^7.12.11": 6 | version "7.14.5" 7 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz#d0f0e277c512e0c938277faa85a3968c9a44c0e8" 8 | integrity sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg== 9 | 10 | "@babel/parser@7.13.13": 11 | version "7.13.13" 12 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.13.tgz#42f03862f4aed50461e543270916b47dd501f0df" 13 | integrity sha512-OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw== 14 | 15 | "@babel/types@7.13.12": 16 | version "7.13.12" 17 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.12.tgz#edbf99208ef48852acdff1c8a681a1e4ade580cd" 18 | integrity sha512-K4nY2xFN4QMvQwkQ+zmBDp6ANMbVNw6BbxWmYA4qNjhR9W+Lj/8ky5MEY2Me5r+B2c6/v6F53oMndG+f9s3IiA== 19 | dependencies: 20 | "@babel/helper-validator-identifier" "^7.12.11" 21 | lodash "^4.17.19" 22 | to-fast-properties "^2.0.0" 23 | 24 | "@nodelib/fs.scandir@2.1.5": 25 | version "2.1.5" 26 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" 27 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== 28 | dependencies: 29 | "@nodelib/fs.stat" "2.0.5" 30 | run-parallel "^1.1.9" 31 | 32 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": 33 | version "2.0.5" 34 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" 35 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== 36 | 37 | "@nodelib/fs.walk@^1.2.3": 38 | version "1.2.7" 39 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.7.tgz#94c23db18ee4653e129abd26fb06f870ac9e1ee2" 40 | integrity sha512-BTIhocbPBSrRmHxOAJFtR18oLhxTtAFDAvL8hY1S3iU8k+E60W/YFs4jrixGzQjMpF4qPXxIQHcjVD9dz1C2QA== 41 | dependencies: 42 | "@nodelib/fs.scandir" "2.1.5" 43 | fastq "^1.6.0" 44 | 45 | agent-base@6: 46 | version "6.0.2" 47 | resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" 48 | integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== 49 | dependencies: 50 | debug "4" 51 | 52 | ansi-regex@^2.0.0: 53 | version "2.1.1" 54 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 55 | integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= 56 | 57 | ansi-regex@^3.0.0: 58 | version "3.0.0" 59 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 60 | integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= 61 | 62 | ansi-regex@^5.0.0: 63 | version "5.0.0" 64 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" 65 | integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== 66 | 67 | ansi-styles@^4.0.0, ansi-styles@^4.1.0: 68 | version "4.3.0" 69 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 70 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 71 | dependencies: 72 | color-convert "^2.0.1" 73 | 74 | aproba@^1.0.3: 75 | version "1.2.0" 76 | resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" 77 | integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== 78 | 79 | are-we-there-yet@~1.1.2: 80 | version "1.1.5" 81 | resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" 82 | integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== 83 | dependencies: 84 | delegates "^1.0.0" 85 | readable-stream "^2.0.6" 86 | 87 | argparse@^2.0.1: 88 | version "2.0.1" 89 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" 90 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== 91 | 92 | array-union@^2.1.0: 93 | version "2.1.0" 94 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" 95 | integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== 96 | 97 | at-least-node@^1.0.0: 98 | version "1.0.0" 99 | resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" 100 | integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== 101 | 102 | balanced-match@^1.0.0: 103 | version "1.0.2" 104 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 105 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 106 | 107 | base64-js@^1.3.1: 108 | version "1.5.1" 109 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" 110 | integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== 111 | 112 | bl@^4.0.3: 113 | version "4.1.0" 114 | resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" 115 | integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== 116 | dependencies: 117 | buffer "^5.5.0" 118 | inherits "^2.0.4" 119 | readable-stream "^3.4.0" 120 | 121 | brace-expansion@^1.1.7: 122 | version "1.1.11" 123 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 124 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 125 | dependencies: 126 | balanced-match "^1.0.0" 127 | concat-map "0.0.1" 128 | 129 | braces@^3.0.1: 130 | version "3.0.2" 131 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 132 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 133 | dependencies: 134 | fill-range "^7.0.1" 135 | 136 | buffer@^5.5.0: 137 | version "5.7.1" 138 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" 139 | integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== 140 | dependencies: 141 | base64-js "^1.3.1" 142 | ieee754 "^1.1.13" 143 | 144 | chalk@^4.1.0: 145 | version "4.1.1" 146 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" 147 | integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== 148 | dependencies: 149 | ansi-styles "^4.1.0" 150 | supports-color "^7.1.0" 151 | 152 | chownr@^1.1.1: 153 | version "1.1.4" 154 | resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" 155 | integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== 156 | 157 | cliui@^7.0.2: 158 | version "7.0.4" 159 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" 160 | integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== 161 | dependencies: 162 | string-width "^4.2.0" 163 | strip-ansi "^6.0.0" 164 | wrap-ansi "^7.0.0" 165 | 166 | code-point-at@^1.0.0: 167 | version "1.1.0" 168 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 169 | integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= 170 | 171 | color-convert@^2.0.1: 172 | version "2.0.1" 173 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 174 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 175 | dependencies: 176 | color-name "~1.1.4" 177 | 178 | color-name@~1.1.4: 179 | version "1.1.4" 180 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 181 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 182 | 183 | concat-map@0.0.1: 184 | version "0.0.1" 185 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 186 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 187 | 188 | console-control-strings@^1.0.0, console-control-strings@~1.1.0: 189 | version "1.1.0" 190 | resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" 191 | integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= 192 | 193 | core-util-is@~1.0.0: 194 | version "1.0.2" 195 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 196 | integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= 197 | 198 | debug@4: 199 | version "4.3.1" 200 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" 201 | integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== 202 | dependencies: 203 | ms "2.1.2" 204 | 205 | decompress-response@^4.2.0: 206 | version "4.2.1" 207 | resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986" 208 | integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== 209 | dependencies: 210 | mimic-response "^2.0.0" 211 | 212 | deep-extend@^0.6.0: 213 | version "0.6.0" 214 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" 215 | integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== 216 | 217 | deep-is@~0.1.3: 218 | version "0.1.3" 219 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 220 | integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= 221 | 222 | delegates@^1.0.0: 223 | version "1.0.0" 224 | resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" 225 | integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= 226 | 227 | detect-libc@^1.0.3: 228 | version "1.0.3" 229 | resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" 230 | integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= 231 | 232 | dir-glob@^3.0.1: 233 | version "3.0.1" 234 | resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" 235 | integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== 236 | dependencies: 237 | path-type "^4.0.0" 238 | 239 | emoji-regex@^8.0.0: 240 | version "8.0.0" 241 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 242 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 243 | 244 | end-of-stream@^1.1.0, end-of-stream@^1.4.1: 245 | version "1.4.4" 246 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" 247 | integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== 248 | dependencies: 249 | once "^1.4.0" 250 | 251 | escalade@^3.1.1: 252 | version "3.1.1" 253 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" 254 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 255 | 256 | escodegen@^2.0.0: 257 | version "2.0.0" 258 | resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" 259 | integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== 260 | dependencies: 261 | esprima "^4.0.1" 262 | estraverse "^5.2.0" 263 | esutils "^2.0.2" 264 | optionator "^0.8.1" 265 | optionalDependencies: 266 | source-map "~0.6.1" 267 | 268 | esprima@^4.0.1: 269 | version "4.0.1" 270 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 271 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== 272 | 273 | estraverse@^5.2.0: 274 | version "5.2.0" 275 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" 276 | integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== 277 | 278 | esutils@^2.0.2: 279 | version "2.0.3" 280 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" 281 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 282 | 283 | expand-template@^2.0.3: 284 | version "2.0.3" 285 | resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" 286 | integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== 287 | 288 | fast-glob@^3.1.1: 289 | version "3.2.5" 290 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz#7939af2a656de79a4f1901903ee8adcaa7cb9661" 291 | integrity sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg== 292 | dependencies: 293 | "@nodelib/fs.stat" "^2.0.2" 294 | "@nodelib/fs.walk" "^1.2.3" 295 | glob-parent "^5.1.0" 296 | merge2 "^1.3.0" 297 | micromatch "^4.0.2" 298 | picomatch "^2.2.1" 299 | 300 | fast-levenshtein@~2.0.6: 301 | version "2.0.6" 302 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 303 | integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= 304 | 305 | fastq@^1.6.0: 306 | version "1.11.0" 307 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.11.0.tgz#bb9fb955a07130a918eb63c1f5161cc32a5d0858" 308 | integrity sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g== 309 | dependencies: 310 | reusify "^1.0.4" 311 | 312 | fill-range@^7.0.1: 313 | version "7.0.1" 314 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 315 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 316 | dependencies: 317 | to-regex-range "^5.0.1" 318 | 319 | from2@^2.3.0: 320 | version "2.3.0" 321 | resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" 322 | integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= 323 | dependencies: 324 | inherits "^2.0.1" 325 | readable-stream "^2.0.0" 326 | 327 | fs-constants@^1.0.0: 328 | version "1.0.0" 329 | resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" 330 | integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== 331 | 332 | fs-extra@^9.1.0: 333 | version "9.1.0" 334 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" 335 | integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== 336 | dependencies: 337 | at-least-node "^1.0.0" 338 | graceful-fs "^4.2.0" 339 | jsonfile "^6.0.1" 340 | universalify "^2.0.0" 341 | 342 | fs.realpath@^1.0.0: 343 | version "1.0.0" 344 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 345 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 346 | 347 | function-bind@^1.1.1: 348 | version "1.1.1" 349 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 350 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 351 | 352 | gauge@~2.7.3: 353 | version "2.7.4" 354 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" 355 | integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= 356 | dependencies: 357 | aproba "^1.0.3" 358 | console-control-strings "^1.0.0" 359 | has-unicode "^2.0.0" 360 | object-assign "^4.1.0" 361 | signal-exit "^3.0.0" 362 | string-width "^1.0.1" 363 | strip-ansi "^3.0.1" 364 | wide-align "^1.1.0" 365 | 366 | get-caller-file@^2.0.5: 367 | version "2.0.5" 368 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" 369 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== 370 | 371 | github-from-package@0.0.0: 372 | version "0.0.0" 373 | resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" 374 | integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4= 375 | 376 | glob-parent@^5.1.0: 377 | version "5.1.2" 378 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 379 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 380 | dependencies: 381 | is-glob "^4.0.1" 382 | 383 | glob@^7.1.7: 384 | version "7.1.7" 385 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" 386 | integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== 387 | dependencies: 388 | fs.realpath "^1.0.0" 389 | inflight "^1.0.4" 390 | inherits "2" 391 | minimatch "^3.0.4" 392 | once "^1.3.0" 393 | path-is-absolute "^1.0.0" 394 | 395 | globby@^11.0.3: 396 | version "11.0.3" 397 | resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.3.tgz#9b1f0cb523e171dd1ad8c7b2a9fb4b644b9593cb" 398 | integrity sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg== 399 | dependencies: 400 | array-union "^2.1.0" 401 | dir-glob "^3.0.1" 402 | fast-glob "^3.1.1" 403 | ignore "^5.1.4" 404 | merge2 "^1.3.0" 405 | slash "^3.0.0" 406 | 407 | graceful-fs@^4.1.6, graceful-fs@^4.2.0: 408 | version "4.2.6" 409 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" 410 | integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== 411 | 412 | has-flag@^4.0.0: 413 | version "4.0.0" 414 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 415 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 416 | 417 | has-unicode@^2.0.0: 418 | version "2.0.1" 419 | resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" 420 | integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= 421 | 422 | has@^1.0.3: 423 | version "1.0.3" 424 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 425 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 426 | dependencies: 427 | function-bind "^1.1.1" 428 | 429 | https-proxy-agent@^5.0.0: 430 | version "5.0.0" 431 | resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" 432 | integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== 433 | dependencies: 434 | agent-base "6" 435 | debug "4" 436 | 437 | ieee754@^1.1.13: 438 | version "1.2.1" 439 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" 440 | integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== 441 | 442 | ignore@^5.1.4: 443 | version "5.1.8" 444 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" 445 | integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== 446 | 447 | inflight@^1.0.4: 448 | version "1.0.6" 449 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 450 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 451 | dependencies: 452 | once "^1.3.0" 453 | wrappy "1" 454 | 455 | inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: 456 | version "2.0.4" 457 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 458 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 459 | 460 | ini@~1.3.0: 461 | version "1.3.8" 462 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" 463 | integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== 464 | 465 | into-stream@^6.0.0: 466 | version "6.0.0" 467 | resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-6.0.0.tgz#4bfc1244c0128224e18b8870e85b2de8e66c6702" 468 | integrity sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA== 469 | dependencies: 470 | from2 "^2.3.0" 471 | p-is-promise "^3.0.0" 472 | 473 | is-core-module@^2.2.0: 474 | version "2.4.0" 475 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1" 476 | integrity sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A== 477 | dependencies: 478 | has "^1.0.3" 479 | 480 | is-extglob@^2.1.1: 481 | version "2.1.1" 482 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 483 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 484 | 485 | is-fullwidth-code-point@^1.0.0: 486 | version "1.0.0" 487 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 488 | integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= 489 | dependencies: 490 | number-is-nan "^1.0.0" 491 | 492 | is-fullwidth-code-point@^2.0.0: 493 | version "2.0.0" 494 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 495 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= 496 | 497 | is-fullwidth-code-point@^3.0.0: 498 | version "3.0.0" 499 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 500 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 501 | 502 | is-glob@^4.0.1: 503 | version "4.0.1" 504 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" 505 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== 506 | dependencies: 507 | is-extglob "^2.1.1" 508 | 509 | is-number@^7.0.0: 510 | version "7.0.0" 511 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 512 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 513 | 514 | isarray@~1.0.0: 515 | version "1.0.0" 516 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 517 | integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= 518 | 519 | js-yaml@^4.1.0: 520 | version "4.1.0" 521 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" 522 | integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== 523 | dependencies: 524 | argparse "^2.0.1" 525 | 526 | jsonfile@^6.0.1: 527 | version "6.1.0" 528 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" 529 | integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== 530 | dependencies: 531 | universalify "^2.0.0" 532 | optionalDependencies: 533 | graceful-fs "^4.1.6" 534 | 535 | levn@~0.3.0: 536 | version "0.3.0" 537 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" 538 | integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= 539 | dependencies: 540 | prelude-ls "~1.1.2" 541 | type-check "~0.3.2" 542 | 543 | lodash@^4.17.19: 544 | version "4.17.21" 545 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" 546 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== 547 | 548 | lru-cache@^6.0.0: 549 | version "6.0.0" 550 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" 551 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 552 | dependencies: 553 | yallist "^4.0.0" 554 | 555 | merge2@^1.3.0: 556 | version "1.4.1" 557 | resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" 558 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== 559 | 560 | micromatch@^4.0.2: 561 | version "4.0.4" 562 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" 563 | integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== 564 | dependencies: 565 | braces "^3.0.1" 566 | picomatch "^2.2.3" 567 | 568 | mimic-response@^2.0.0: 569 | version "2.1.0" 570 | resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" 571 | integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== 572 | 573 | minimatch@^3.0.4: 574 | version "3.0.4" 575 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 576 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 577 | dependencies: 578 | brace-expansion "^1.1.7" 579 | 580 | minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5: 581 | version "1.2.5" 582 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" 583 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== 584 | 585 | mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: 586 | version "0.5.3" 587 | resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" 588 | integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== 589 | 590 | ms@2.1.2: 591 | version "2.1.2" 592 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 593 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 594 | 595 | multistream@^4.1.0: 596 | version "4.1.0" 597 | resolved "https://registry.yarnpkg.com/multistream/-/multistream-4.1.0.tgz#7bf00dfd119556fbc153cff3de4c6d477909f5a8" 598 | integrity sha512-J1XDiAmmNpRCBfIWJv+n0ymC4ABcf/Pl+5YvC5B/D2f/2+8PtHvCNxMPKiQcZyi922Hq69J2YOpb1pTywfifyw== 599 | dependencies: 600 | once "^1.4.0" 601 | readable-stream "^3.6.0" 602 | 603 | napi-build-utils@^1.0.1: 604 | version "1.0.2" 605 | resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" 606 | integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== 607 | 608 | node-abi@^2.7.0: 609 | version "2.30.0" 610 | resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.30.0.tgz#8be53bf3e7945a34eea10e0fc9a5982776cf550b" 611 | integrity sha512-g6bZh3YCKQRdwuO/tSZZYJAw622SjsRfJ2X0Iy4sSOHZ34/sPPdVBn8fev2tj7njzLwuqPw9uMtGsGkO5kIQvg== 612 | dependencies: 613 | semver "^5.4.1" 614 | 615 | node-fetch@^2.6.1: 616 | version "2.6.1" 617 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" 618 | integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== 619 | 620 | noop-logger@^0.1.1: 621 | version "0.1.1" 622 | resolved "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2" 623 | integrity sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI= 624 | 625 | npmlog@^4.0.1: 626 | version "4.1.2" 627 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" 628 | integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== 629 | dependencies: 630 | are-we-there-yet "~1.1.2" 631 | console-control-strings "~1.1.0" 632 | gauge "~2.7.3" 633 | set-blocking "~2.0.0" 634 | 635 | number-is-nan@^1.0.0: 636 | version "1.0.1" 637 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 638 | integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= 639 | 640 | object-assign@^4.1.0: 641 | version "4.1.1" 642 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 643 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 644 | 645 | once@^1.3.0, once@^1.3.1, once@^1.4.0: 646 | version "1.4.0" 647 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 648 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 649 | dependencies: 650 | wrappy "1" 651 | 652 | optionator@^0.8.1: 653 | version "0.8.3" 654 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" 655 | integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== 656 | dependencies: 657 | deep-is "~0.1.3" 658 | fast-levenshtein "~2.0.6" 659 | levn "~0.3.0" 660 | prelude-ls "~1.1.2" 661 | type-check "~0.3.2" 662 | word-wrap "~1.2.3" 663 | 664 | p-is-promise@^3.0.0: 665 | version "3.0.0" 666 | resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-3.0.0.tgz#58e78c7dfe2e163cf2a04ff869e7c1dba64a5971" 667 | integrity sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ== 668 | 669 | path-is-absolute@^1.0.0: 670 | version "1.0.1" 671 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 672 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 673 | 674 | path-parse@^1.0.6: 675 | version "1.0.7" 676 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 677 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 678 | 679 | path-type@^4.0.0: 680 | version "4.0.0" 681 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" 682 | integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== 683 | 684 | picomatch@^2.2.1, picomatch@^2.2.3: 685 | version "2.3.0" 686 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" 687 | integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== 688 | 689 | pkg-fetch@3.1.1: 690 | version "3.1.1" 691 | resolved "https://registry.yarnpkg.com/pkg-fetch/-/pkg-fetch-3.1.1.tgz#8f94115d926e71359ed96c211fe022b7a2452f8d" 692 | integrity sha512-3GfpNwbwoTxge2TrVp6Oyz/FZJOoxF1r0+1YikOhnBXa2Di/VOJKtUObFHap76BFnyFo1fwh5vARWFR9TzLKUg== 693 | dependencies: 694 | chalk "^4.1.0" 695 | fs-extra "^9.1.0" 696 | https-proxy-agent "^5.0.0" 697 | node-fetch "^2.6.1" 698 | progress "^2.0.3" 699 | semver "^7.3.5" 700 | yargs "^16.2.0" 701 | 702 | pkg@^5.2.1: 703 | version "5.2.1" 704 | resolved "https://registry.yarnpkg.com/pkg/-/pkg-5.2.1.tgz#929294d2dedbcd4427cfc00121a80c151a2a1d4c" 705 | integrity sha512-kQ5Fla+76rdmFJNrEOgoklxAURl3uvhvX+m4LCQCRrI+q2lOgsx9pS02NhNuDVnyXsthluAuXCh5SKcMyw+cWw== 706 | dependencies: 707 | "@babel/parser" "7.13.13" 708 | "@babel/types" "7.13.12" 709 | chalk "^4.1.0" 710 | escodegen "^2.0.0" 711 | fs-extra "^9.1.0" 712 | globby "^11.0.3" 713 | into-stream "^6.0.0" 714 | minimist "^1.2.5" 715 | multistream "^4.1.0" 716 | pkg-fetch "3.1.1" 717 | prebuild-install "6.0.1" 718 | progress "^2.0.3" 719 | resolve "^1.20.0" 720 | stream-meter "^1.0.4" 721 | tslib "2.1.0" 722 | 723 | prebuild-install@6.0.1: 724 | version "6.0.1" 725 | resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.0.1.tgz#5902172f7a40eb67305b96c2a695db32636ee26d" 726 | integrity sha512-7GOJrLuow8yeiyv75rmvZyeMGzl8mdEX5gY69d6a6bHWmiPevwqFw+tQavhK0EYMaSg3/KD24cWqeQv1EWsqDQ== 727 | dependencies: 728 | detect-libc "^1.0.3" 729 | expand-template "^2.0.3" 730 | github-from-package "0.0.0" 731 | minimist "^1.2.3" 732 | mkdirp-classic "^0.5.3" 733 | napi-build-utils "^1.0.1" 734 | node-abi "^2.7.0" 735 | noop-logger "^0.1.1" 736 | npmlog "^4.0.1" 737 | pump "^3.0.0" 738 | rc "^1.2.7" 739 | simple-get "^3.0.3" 740 | tar-fs "^2.0.0" 741 | tunnel-agent "^0.6.0" 742 | which-pm-runs "^1.0.0" 743 | 744 | prelude-ls@~1.1.2: 745 | version "1.1.2" 746 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" 747 | integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= 748 | 749 | process-nextick-args@~2.0.0: 750 | version "2.0.1" 751 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" 752 | integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== 753 | 754 | progress@^2.0.3: 755 | version "2.0.3" 756 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" 757 | integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== 758 | 759 | pump@^3.0.0: 760 | version "3.0.0" 761 | resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" 762 | integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== 763 | dependencies: 764 | end-of-stream "^1.1.0" 765 | once "^1.3.1" 766 | 767 | queue-microtask@^1.2.2: 768 | version "1.2.3" 769 | resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" 770 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== 771 | 772 | rc@^1.2.7: 773 | version "1.2.8" 774 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" 775 | integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== 776 | dependencies: 777 | deep-extend "^0.6.0" 778 | ini "~1.3.0" 779 | minimist "^1.2.0" 780 | strip-json-comments "~2.0.1" 781 | 782 | readable-stream@^2.0.0, readable-stream@^2.0.6, readable-stream@^2.1.4: 783 | version "2.3.7" 784 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" 785 | integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== 786 | dependencies: 787 | core-util-is "~1.0.0" 788 | inherits "~2.0.3" 789 | isarray "~1.0.0" 790 | process-nextick-args "~2.0.0" 791 | safe-buffer "~5.1.1" 792 | string_decoder "~1.1.1" 793 | util-deprecate "~1.0.1" 794 | 795 | readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: 796 | version "3.6.0" 797 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" 798 | integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== 799 | dependencies: 800 | inherits "^2.0.3" 801 | string_decoder "^1.1.1" 802 | util-deprecate "^1.0.1" 803 | 804 | require-directory@^2.1.1: 805 | version "2.1.1" 806 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 807 | integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= 808 | 809 | resolve@^1.20.0: 810 | version "1.20.0" 811 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" 812 | integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== 813 | dependencies: 814 | is-core-module "^2.2.0" 815 | path-parse "^1.0.6" 816 | 817 | reusify@^1.0.4: 818 | version "1.0.4" 819 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" 820 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== 821 | 822 | run-parallel@^1.1.9: 823 | version "1.2.0" 824 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" 825 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== 826 | dependencies: 827 | queue-microtask "^1.2.2" 828 | 829 | safe-buffer@^5.0.1, safe-buffer@~5.2.0: 830 | version "5.2.1" 831 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 832 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 833 | 834 | safe-buffer@~5.1.0, safe-buffer@~5.1.1: 835 | version "5.1.2" 836 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 837 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 838 | 839 | semver@^5.4.1: 840 | version "5.7.1" 841 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" 842 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== 843 | 844 | semver@^7.3.5: 845 | version "7.3.5" 846 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" 847 | integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== 848 | dependencies: 849 | lru-cache "^6.0.0" 850 | 851 | set-blocking@~2.0.0: 852 | version "2.0.0" 853 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 854 | integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= 855 | 856 | signal-exit@^3.0.0: 857 | version "3.0.3" 858 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" 859 | integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== 860 | 861 | simple-concat@^1.0.0: 862 | version "1.0.1" 863 | resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" 864 | integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== 865 | 866 | simple-get@^3.0.3: 867 | version "3.1.0" 868 | resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.0.tgz#b45be062435e50d159540b576202ceec40b9c6b3" 869 | integrity sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA== 870 | dependencies: 871 | decompress-response "^4.2.0" 872 | once "^1.3.1" 873 | simple-concat "^1.0.0" 874 | 875 | slash@^3.0.0: 876 | version "3.0.0" 877 | resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" 878 | integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== 879 | 880 | source-map@~0.6.1: 881 | version "0.6.1" 882 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 883 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 884 | 885 | stream-meter@^1.0.4: 886 | version "1.0.4" 887 | resolved "https://registry.yarnpkg.com/stream-meter/-/stream-meter-1.0.4.tgz#52af95aa5ea760a2491716704dbff90f73afdd1d" 888 | integrity sha1-Uq+Vql6nYKJJFxZwTb/5D3Ov3R0= 889 | dependencies: 890 | readable-stream "^2.1.4" 891 | 892 | string-width@^1.0.1: 893 | version "1.0.2" 894 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 895 | integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= 896 | dependencies: 897 | code-point-at "^1.0.0" 898 | is-fullwidth-code-point "^1.0.0" 899 | strip-ansi "^3.0.0" 900 | 901 | "string-width@^1.0.2 || 2": 902 | version "2.1.1" 903 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 904 | integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== 905 | dependencies: 906 | is-fullwidth-code-point "^2.0.0" 907 | strip-ansi "^4.0.0" 908 | 909 | string-width@^4.1.0, string-width@^4.2.0: 910 | version "4.2.2" 911 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" 912 | integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== 913 | dependencies: 914 | emoji-regex "^8.0.0" 915 | is-fullwidth-code-point "^3.0.0" 916 | strip-ansi "^6.0.0" 917 | 918 | string_decoder@^1.1.1: 919 | version "1.3.0" 920 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" 921 | integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== 922 | dependencies: 923 | safe-buffer "~5.2.0" 924 | 925 | string_decoder@~1.1.1: 926 | version "1.1.1" 927 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 928 | integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== 929 | dependencies: 930 | safe-buffer "~5.1.0" 931 | 932 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 933 | version "3.0.1" 934 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 935 | integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= 936 | dependencies: 937 | ansi-regex "^2.0.0" 938 | 939 | strip-ansi@^4.0.0: 940 | version "4.0.0" 941 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 942 | integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= 943 | dependencies: 944 | ansi-regex "^3.0.0" 945 | 946 | strip-ansi@^6.0.0: 947 | version "6.0.0" 948 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" 949 | integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== 950 | dependencies: 951 | ansi-regex "^5.0.0" 952 | 953 | strip-json-comments@~2.0.1: 954 | version "2.0.1" 955 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 956 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= 957 | 958 | supports-color@^7.1.0: 959 | version "7.2.0" 960 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 961 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 962 | dependencies: 963 | has-flag "^4.0.0" 964 | 965 | tar-fs@^2.0.0: 966 | version "2.1.1" 967 | resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" 968 | integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== 969 | dependencies: 970 | chownr "^1.1.1" 971 | mkdirp-classic "^0.5.2" 972 | pump "^3.0.0" 973 | tar-stream "^2.1.4" 974 | 975 | tar-stream@^2.1.4: 976 | version "2.2.0" 977 | resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" 978 | integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== 979 | dependencies: 980 | bl "^4.0.3" 981 | end-of-stream "^1.4.1" 982 | fs-constants "^1.0.0" 983 | inherits "^2.0.3" 984 | readable-stream "^3.1.1" 985 | 986 | to-fast-properties@^2.0.0: 987 | version "2.0.0" 988 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" 989 | integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= 990 | 991 | to-regex-range@^5.0.1: 992 | version "5.0.1" 993 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 994 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 995 | dependencies: 996 | is-number "^7.0.0" 997 | 998 | tslib@2.1.0: 999 | version "2.1.0" 1000 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" 1001 | integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== 1002 | 1003 | tunnel-agent@^0.6.0: 1004 | version "0.6.0" 1005 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" 1006 | integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= 1007 | dependencies: 1008 | safe-buffer "^5.0.1" 1009 | 1010 | type-check@~0.3.2: 1011 | version "0.3.2" 1012 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" 1013 | integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= 1014 | dependencies: 1015 | prelude-ls "~1.1.2" 1016 | 1017 | universalify@^2.0.0: 1018 | version "2.0.0" 1019 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" 1020 | integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== 1021 | 1022 | util-deprecate@^1.0.1, util-deprecate@~1.0.1: 1023 | version "1.0.2" 1024 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1025 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= 1026 | 1027 | which-pm-runs@^1.0.0: 1028 | version "1.0.0" 1029 | resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" 1030 | integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= 1031 | 1032 | wide-align@^1.1.0: 1033 | version "1.1.3" 1034 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" 1035 | integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== 1036 | dependencies: 1037 | string-width "^1.0.2 || 2" 1038 | 1039 | word-wrap@~1.2.3: 1040 | version "1.2.3" 1041 | resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" 1042 | integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== 1043 | 1044 | wrap-ansi@^7.0.0: 1045 | version "7.0.0" 1046 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" 1047 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== 1048 | dependencies: 1049 | ansi-styles "^4.0.0" 1050 | string-width "^4.1.0" 1051 | strip-ansi "^6.0.0" 1052 | 1053 | wrappy@1: 1054 | version "1.0.2" 1055 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1056 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 1057 | 1058 | y18n@^5.0.5: 1059 | version "5.0.8" 1060 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" 1061 | integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== 1062 | 1063 | yallist@^4.0.0: 1064 | version "4.0.0" 1065 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" 1066 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 1067 | 1068 | yargs-parser@^20.2.2: 1069 | version "20.2.7" 1070 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a" 1071 | integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw== 1072 | 1073 | yargs@^16.2.0: 1074 | version "16.2.0" 1075 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" 1076 | integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== 1077 | dependencies: 1078 | cliui "^7.0.2" 1079 | escalade "^3.1.1" 1080 | get-caller-file "^2.0.5" 1081 | require-directory "^2.1.1" 1082 | string-width "^4.2.0" 1083 | y18n "^5.0.5" 1084 | yargs-parser "^20.2.2" 1085 | --------------------------------------------------------------------------------