├── package.json ├── action.yml ├── README.md ├── LICENSE ├── .github └── workflows │ └── main.yml ├── .gitignore ├── index.js └── yarn.lock /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nigiri-github-action", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "repository": "https://github.com/vulpemventures/nigiri-github-action.git", 6 | "author": "Marco Argentieri <3596602+tiero@users.noreply.github.com>", 7 | "license": "MIT", 8 | "dependencies": { 9 | "@actions/core": "^1.4.0", 10 | "@actions/exec": "^1.1.0", 11 | "@actions/github": "^5.0.0", 12 | "@actions/io": "^1.1.1", 13 | "@actions/tool-cache": "^1.7.1" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /action.yml: -------------------------------------------------------------------------------- 1 | name: "Nigiri Bitcoin" 2 | description: "Run Nigiri Bitcoin in your Github Action" 3 | inputs: 4 | version: 5 | description: "nigiri version to install" 6 | required: false 7 | default: "latest" 8 | repository_url: 9 | description: "Github repository URL of the repository with release artifacts" 10 | required: false 11 | default: "https://github.com/vulpemventures/nigiri" 12 | use_liquid: 13 | description: "use --liquid flag" 14 | required: false 15 | default: "true" 16 | use_ln: 17 | description: "use --ln flag" 18 | required: false 19 | default: "false" 20 | use_ark: 21 | description: "use --ark flag" 22 | required: false 23 | default: "false" 24 | outputs: {} 25 | runs: 26 | using: "node12" 27 | main: "index.js" 28 | branding: 29 | icon: "box" 30 | color: "orange" 31 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Nigiri Bitcoin action 2 | 3 | Run Nigiri Bitcoin in your Github Action 4 | 5 | ## Inputs 6 | 7 | ## `version` 8 | 9 | **Optional** The Nigiri version tag. Default to latest. 10 | 11 | ## `repository_url` 12 | 13 | **Optional** The Github repository URL that contains the binary artifact. Default `"https://github.com/vulpemventures/nigiri"`. 14 | 15 | ## `use_liquid` 16 | 17 | **Optional** Use --liquid flag. Default `true`. 18 | 19 | ## `use_ln` 20 | 21 | **Optional** Use --ln flag. Default `false`. 22 | 23 | ## `use_ark` 24 | 25 | **Optional** Use --ark flag. Default `false`. 26 | 27 | ## Usage 28 | 29 | ```yml 30 | name: Run Nigiri 31 | uses: vulpemventures/nigiri-github-action@v1 32 | ``` 33 | 34 | ### start Bitcoin-only services with LN 35 | 36 | ```yml 37 | name: Run Nigiri 38 | uses: vulpemventures/nigiri-github-action@v1 39 | with: 40 | use_liquid: false 41 | use_ln: true 42 | ``` 43 | 44 | ### start with ARK network 45 | 46 | ```yml 47 | name: Run Nigiri 48 | uses: vulpemventures/nigiri-github-action@v1 49 | with: 50 | use_ark: true 51 | ``` 52 | 53 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Vulpem Ventures 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | # This is a basic workflow to help you get started with Actions 2 | 3 | name: CI 4 | 5 | # Controls when the workflow will run 6 | on: 7 | # Triggers the workflow on push or pull request events but only for the master branch 8 | push: 9 | branches: [master] 10 | 11 | # Allows you to run this workflow manually from the Actions tab 12 | workflow_dispatch: 13 | 14 | # A workflow run is made up of one or more jobs that can run sequentially or in parallel 15 | jobs: 16 | # This workflow contains a single job called "build" 17 | example: 18 | # The type of runner that the job will run on 19 | runs-on: ubuntu-latest 20 | 21 | # Steps represent a sequence of tasks that will be executed as part of the job 22 | steps: 23 | # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it 24 | - uses: actions/checkout@v2 25 | 26 | # Runs a single command using the runners shell 27 | - name: Run Nigiri 28 | uses: vulpemventures/nigiri-github-action@master 29 | 30 | # Runs a set of commands using the runners shell 31 | - name: Run a multi-line script 32 | run: | 33 | sleep 3 34 | docker ps -a 35 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | 9 | # Diagnostic reports (https://nodejs.org/api/report.html) 10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 11 | 12 | # Runtime data 13 | pids 14 | *.pid 15 | *.seed 16 | *.pid.lock 17 | 18 | # Directory for instrumented libs generated by jscoverage/JSCover 19 | lib-cov 20 | 21 | # Coverage directory used by tools like istanbul 22 | coverage 23 | *.lcov 24 | 25 | # nyc test coverage 26 | .nyc_output 27 | 28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 29 | .grunt 30 | 31 | # Bower dependency directory (https://bower.io/) 32 | bower_components 33 | 34 | # node-waf configuration 35 | .lock-wscript 36 | 37 | # Compiled binary addons (https://nodejs.org/api/addons.html) 38 | build/Release 39 | 40 | # Dependency directories 41 | jspm_packages/ 42 | 43 | # TypeScript v1 declaration files 44 | typings/ 45 | 46 | # TypeScript cache 47 | *.tsbuildinfo 48 | 49 | # Optional npm cache directory 50 | .npm 51 | 52 | # Optional eslint cache 53 | .eslintcache 54 | 55 | # Microbundle cache 56 | .rpt2_cache/ 57 | .rts2_cache_cjs/ 58 | .rts2_cache_es/ 59 | .rts2_cache_umd/ 60 | 61 | # Optional REPL history 62 | .node_repl_history 63 | 64 | # Output of 'npm pack' 65 | *.tgz 66 | 67 | # Yarn Integrity file 68 | .yarn-integrity 69 | 70 | # dotenv environment variables file 71 | .env 72 | .env.test 73 | 74 | # parcel-bundler cache (https://parceljs.org/) 75 | .cache 76 | 77 | # Next.js build output 78 | .next 79 | 80 | # Nuxt.js build / generate output 81 | .nuxt 82 | dist 83 | 84 | # Gatsby files 85 | .cache/ 86 | # Comment in the public line in if your project uses Gatsby and *not* Next.js 87 | # https://nextjs.org/blog/next-9-1#public-directory-support 88 | # public 89 | 90 | # vuepress build output 91 | .vuepress/dist 92 | 93 | # Serverless directories 94 | .serverless/ 95 | 96 | # FuseBox cache 97 | .fusebox/ 98 | 99 | # DynamoDB Local files 100 | .dynamodb/ 101 | 102 | # TernJS port file 103 | .tern-port 104 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | const core = require('@actions/core'); 2 | const exec = require('@actions/exec'); 3 | const tc = require('@actions/tool-cache'); 4 | const io = require('@actions/io'); 5 | 6 | const path = require('path'); 7 | 8 | 9 | async function run() { 10 | 11 | try { 12 | let version = core.getInput('version'); 13 | let useLiquid = core.getInput('use_liquid'); 14 | let useLn = core.getInput('use_ln'); 15 | let useArk = core.getInput('use_ark'); 16 | let repository = core.getInput('repository_url'); 17 | 18 | 19 | core.info(`Installing Nigiri ${version}`); 20 | core.info(`Repository URL ${repository}`); 21 | 22 | const name = "nigiri"; 23 | const downloadURL = !version || version === "latest" ? 24 | `${repository}/releases/latest/download/nigiri-linux-amd64` : 25 | `${repository}/releases/download/${version}/nigiri-linux-amd64`; 26 | 27 | let cachedPath = tc.find(name, version) 28 | if (!cachedPath) { 29 | core.addPath(cachedPath) 30 | 31 | core.info(`Fetching from ${downloadURL}`) 32 | const downloadPath = await tc.downloadTool(downloadURL); 33 | cachedPath = await tc.cacheFile(downloadPath, name, name, version); 34 | 35 | core.addPath(cachedPath) 36 | } 37 | core.info(`🍣 Nigiri Bitcoin installed`); 38 | 39 | const filePath = path.join(cachedPath, name); 40 | 41 | core.info(`Setting binary permissions...`); 42 | await exec.exec("chmod", ["+rwx", filePath]); 43 | 44 | const dataDir = "/home/runner/.nigiri"; 45 | 46 | core.info(`Creating ~/.nigiri folder...`); 47 | await io.mkdirP(dataDir); 48 | 49 | core.info(`Check Nigiri version...`); 50 | await exec.exec(filePath, ["version"]); 51 | 52 | core.info(`Setting ~/.nigiri permissions...`); 53 | await exec.exec("chmod", ["-R", "777", dataDir]); 54 | 55 | core.info(`Running Nigiri...`); 56 | let args = ["start", "--ci"]; 57 | if (useLiquid === "true") { 58 | args.push("--liquid"); 59 | } 60 | if (useLn === "true") { 61 | args.push("--ln"); 62 | } 63 | if (useArk === "true") { 64 | args.push("--ark"); 65 | } 66 | await exec.exec(filePath, args); 67 | 68 | } catch (error) { 69 | core.setFailed(error.message); 70 | } 71 | } 72 | 73 | 74 | run(); 75 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@actions/core@^1.2.6", "@actions/core@^1.4.0": 6 | version "1.4.0" 7 | resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.4.0.tgz#cf2e6ee317e314b03886adfeb20e448d50d6e524" 8 | integrity sha512-CGx2ilGq5i7zSLgiiGUtBCxhRRxibJYU6Fim0Q1Wg2aQL2LTnF27zbqZOrxfvFQ55eSBW0L8uVStgtKMpa0Qlg== 9 | 10 | "@actions/exec@^1.0.0", "@actions/exec@^1.1.0": 11 | version "1.1.0" 12 | resolved "https://registry.yarnpkg.com/@actions/exec/-/exec-1.1.0.tgz#53441d968e56d2fec69ad3f15773d4d94e01162c" 13 | integrity sha512-LImpN9AY0J1R1mEYJjVJfSZWU4zYOlEcwSTgPve1rFQqK5AwrEs6uWW5Rv70gbDIQIAUwI86z6B+9mPK4w9Sbg== 14 | dependencies: 15 | "@actions/io" "^1.0.1" 16 | 17 | "@actions/github@^5.0.0": 18 | version "5.0.0" 19 | resolved "https://registry.yarnpkg.com/@actions/github/-/github-5.0.0.tgz#1754127976c50bd88b2e905f10d204d76d1472f8" 20 | integrity sha512-QvE9eAAfEsS+yOOk0cylLBIO/d6WyWIOvsxxzdrPFaud39G6BOkUwScXZn1iBzQzHyu9SBkkLSWlohDWdsasAQ== 21 | dependencies: 22 | "@actions/http-client" "^1.0.11" 23 | "@octokit/core" "^3.4.0" 24 | "@octokit/plugin-paginate-rest" "^2.13.3" 25 | "@octokit/plugin-rest-endpoint-methods" "^5.1.1" 26 | 27 | "@actions/http-client@^1.0.11", "@actions/http-client@^1.0.8": 28 | version "1.0.11" 29 | resolved "https://registry.yarnpkg.com/@actions/http-client/-/http-client-1.0.11.tgz#c58b12e9aa8b159ee39e7dd6cbd0e91d905633c0" 30 | integrity sha512-VRYHGQV1rqnROJqdMvGUbY/Kn8vriQe/F9HR2AlYHzmKuM/p3kjNuXhmdBfcVgsvRWTz5C5XW5xvndZrVBuAYg== 31 | dependencies: 32 | tunnel "0.0.6" 33 | 34 | "@actions/io@^1.0.1", "@actions/io@^1.1.1": 35 | version "1.1.1" 36 | resolved "https://registry.yarnpkg.com/@actions/io/-/io-1.1.1.tgz#4a157406309e212ab27ed3ae30e8c1d641686a66" 37 | integrity sha512-Qi4JoKXjmE0O67wAOH6y0n26QXhMKMFo7GD/4IXNVcrtLjUlGjGuVys6pQgwF3ArfGTQu0XpqaNr0YhED2RaRA== 38 | 39 | "@actions/tool-cache@^1.7.1": 40 | version "1.7.1" 41 | resolved "https://registry.yarnpkg.com/@actions/tool-cache/-/tool-cache-1.7.1.tgz#f9f4f822cb639da6facdf3e22ea571361ab26f92" 42 | integrity sha512-y1xxxOhXaBUIUit3lhepmu/0xdgiTMpnZRLmVdtF0hTm521doi+MdRRRP62czHvM7wxH6epj4JPNJQ3iJpOrkQ== 43 | dependencies: 44 | "@actions/core" "^1.2.6" 45 | "@actions/exec" "^1.0.0" 46 | "@actions/http-client" "^1.0.8" 47 | "@actions/io" "^1.1.1" 48 | semver "^6.1.0" 49 | uuid "^3.3.2" 50 | 51 | "@octokit/auth-token@^2.4.4": 52 | version "2.4.5" 53 | resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.4.5.tgz#568ccfb8cb46f36441fac094ce34f7a875b197f3" 54 | integrity sha512-BpGYsPgJt05M7/L/5FoE1PiAbdxXFZkX/3kDYcsvd1v6UhlnE5e96dTDr0ezX/EFwciQxf3cNV0loipsURU+WA== 55 | dependencies: 56 | "@octokit/types" "^6.0.3" 57 | 58 | "@octokit/core@^3.4.0": 59 | version "3.5.1" 60 | resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.5.1.tgz#8601ceeb1ec0e1b1b8217b960a413ed8e947809b" 61 | integrity sha512-omncwpLVxMP+GLpLPgeGJBF6IWJFjXDS5flY5VbppePYX9XehevbDykRH9PdCdvqt9TS5AOTiDide7h0qrkHjw== 62 | dependencies: 63 | "@octokit/auth-token" "^2.4.4" 64 | "@octokit/graphql" "^4.5.8" 65 | "@octokit/request" "^5.6.0" 66 | "@octokit/request-error" "^2.0.5" 67 | "@octokit/types" "^6.0.3" 68 | before-after-hook "^2.2.0" 69 | universal-user-agent "^6.0.0" 70 | 71 | "@octokit/endpoint@^6.0.1": 72 | version "6.0.12" 73 | resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.12.tgz#3b4d47a4b0e79b1027fb8d75d4221928b2d05658" 74 | integrity sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA== 75 | dependencies: 76 | "@octokit/types" "^6.0.3" 77 | is-plain-object "^5.0.0" 78 | universal-user-agent "^6.0.0" 79 | 80 | "@octokit/graphql@^4.5.8": 81 | version "4.6.4" 82 | resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.6.4.tgz#0c3f5bed440822182e972317122acb65d311a5ed" 83 | integrity sha512-SWTdXsVheRmlotWNjKzPOb6Js6tjSqA2a8z9+glDJng0Aqjzti8MEWOtuT8ZSu6wHnci7LZNuarE87+WJBG4vg== 84 | dependencies: 85 | "@octokit/request" "^5.6.0" 86 | "@octokit/types" "^6.0.3" 87 | universal-user-agent "^6.0.0" 88 | 89 | "@octokit/openapi-types@^9.4.0": 90 | version "9.4.0" 91 | resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-9.4.0.tgz#31a76fb4c0f2e15af300edd880cedf4f75be212b" 92 | integrity sha512-rKRkXikOJgDNImPl49IJuECLVXjj+t4qOXHhl8SBjMQCGGp1w4m5Ud/0kfdUx+zCpTvBN8vaOUDF4nnboZoOtQ== 93 | 94 | "@octokit/plugin-paginate-rest@^2.13.3": 95 | version "2.15.0" 96 | resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.15.0.tgz#9c956c3710b2bd786eb3814eaf5a2b17392c150d" 97 | integrity sha512-/vjcb0w6ggVRtsb8OJBcRR9oEm+fpdo8RJk45khaWw/W0c8rlB2TLCLyZt/knmC17NkX7T9XdyQeEY7OHLSV1g== 98 | dependencies: 99 | "@octokit/types" "^6.23.0" 100 | 101 | "@octokit/plugin-rest-endpoint-methods@^5.1.1": 102 | version "5.7.0" 103 | resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.7.0.tgz#80b69452c17597738d4692c79829b72d9e72ccec" 104 | integrity sha512-G7sgccWRYQMwcHJXkDY/sDxbXeKiZkFQqUtzBCwmrzCNj2GQf3VygQ4T/BFL2crLVpIbenkE/c0ErhYOte2MPw== 105 | dependencies: 106 | "@octokit/types" "^6.24.0" 107 | deprecation "^2.3.1" 108 | 109 | "@octokit/request-error@^2.0.5", "@octokit/request-error@^2.1.0": 110 | version "2.1.0" 111 | resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.1.0.tgz#9e150357831bfc788d13a4fd4b1913d60c74d677" 112 | integrity sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg== 113 | dependencies: 114 | "@octokit/types" "^6.0.3" 115 | deprecation "^2.0.0" 116 | once "^1.4.0" 117 | 118 | "@octokit/request@^5.6.0": 119 | version "5.6.0" 120 | resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.6.0.tgz#6084861b6e4fa21dc40c8e2a739ec5eff597e672" 121 | integrity sha512-4cPp/N+NqmaGQwbh3vUsYqokQIzt7VjsgTYVXiwpUP2pxd5YiZB2XuTedbb0SPtv9XS7nzAKjAuQxmY8/aZkiA== 122 | dependencies: 123 | "@octokit/endpoint" "^6.0.1" 124 | "@octokit/request-error" "^2.1.0" 125 | "@octokit/types" "^6.16.1" 126 | is-plain-object "^5.0.0" 127 | node-fetch "^2.6.1" 128 | universal-user-agent "^6.0.0" 129 | 130 | "@octokit/types@^6.0.3", "@octokit/types@^6.16.1", "@octokit/types@^6.23.0", "@octokit/types@^6.24.0": 131 | version "6.24.0" 132 | resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.24.0.tgz#d7858ceae8ac29256da85dcfcb9acbae28e6ba22" 133 | integrity sha512-MfEimJeQ8AV1T2nI5kOfHqsqPHaAnG0Dw3MVoHSEsEq6iLKx2N91o+k2uAgXhPYeSE76LVBqjgTShnFFgNwe0A== 134 | dependencies: 135 | "@octokit/openapi-types" "^9.4.0" 136 | 137 | before-after-hook@^2.2.0: 138 | version "2.2.2" 139 | resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e" 140 | integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ== 141 | 142 | deprecation@^2.0.0, deprecation@^2.3.1: 143 | version "2.3.1" 144 | resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" 145 | integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== 146 | 147 | is-plain-object@^5.0.0: 148 | version "5.0.0" 149 | resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" 150 | integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== 151 | 152 | node-fetch@^2.6.1: 153 | version "2.6.1" 154 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" 155 | integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== 156 | 157 | once@^1.4.0: 158 | version "1.4.0" 159 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 160 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 161 | dependencies: 162 | wrappy "1" 163 | 164 | semver@^6.1.0: 165 | version "6.3.0" 166 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" 167 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 168 | 169 | tunnel@0.0.6: 170 | version "0.0.6" 171 | resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" 172 | integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== 173 | 174 | universal-user-agent@^6.0.0: 175 | version "6.0.0" 176 | resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" 177 | integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== 178 | 179 | uuid@^3.3.2: 180 | version "3.4.0" 181 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" 182 | integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== 183 | 184 | wrappy@1: 185 | version "1.0.2" 186 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 187 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 188 | --------------------------------------------------------------------------------