├── .gitignore ├── .prettierrc.json ├── LICENSE ├── README.md ├── bin └── ipfs-sync ├── docker └── Dockerfile ├── package-lock.json ├── package.json ├── src ├── cli.js ├── commands │ └── sync-files.js └── ipfs.js └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | 8 | # Runtime data 9 | pids 10 | *.pid 11 | *.seed 12 | *.pid.lock 13 | 14 | # Directory for instrumented libs generated by jscoverage/JSCover 15 | lib-cov 16 | 17 | # Coverage directory used by tools like istanbul 18 | coverage 19 | 20 | # nyc test coverage 21 | .nyc_output 22 | 23 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 24 | .grunt 25 | 26 | # Bower dependency directory (https://bower.io/) 27 | bower_components 28 | 29 | # node-waf configuration 30 | .lock-wscript 31 | 32 | # Compiled binary addons (https://nodejs.org/api/addons.html) 33 | build/Release 34 | 35 | # Dependency directories 36 | node_modules/ 37 | jspm_packages/ 38 | 39 | # TypeScript v1 declaration files 40 | typings/ 41 | 42 | # Optional npm cache directory 43 | .npm 44 | 45 | # Optional eslint cache 46 | .eslintcache 47 | 48 | # Optional REPL history 49 | .node_repl_history 50 | 51 | # Output of 'npm pack' 52 | *.tgz 53 | 54 | # Yarn Integrity file 55 | .yarn-integrity 56 | 57 | # dotenv environment variables file 58 | .env 59 | 60 | # next.js build output 61 | .next 62 | -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": false, 3 | "trailingComma": "all", 4 | "printWidth": 90, 5 | "singleQuote": true 6 | } 7 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 The Graph 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 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ipfs-sync 2 | 3 | Script to sync files from one IPFS node to another. 4 | 5 | ## **DEPRECATED** This repository is deprecated now as the code was rewriten to golang and was renamed to accomodate more features related to IPFS. The new code is here [ipfs-mgm](https://github.com/graphprotocol/ipfs-mgm) 6 | 7 | ## Install 8 | 9 | ```sh 10 | npm install -g @graphprotocol/ipfs-sync 11 | ``` 12 | 13 | ## Usage 14 | 15 | Transfer _all_ files from one IPFS node to another: 16 | 17 | ```sh 18 | ipfs-sync sync-files --from --to [--skip-existing] 19 | ``` 20 | 21 | Transfer only specific files from one IPFS node to another: 22 | 23 | ```sh 24 | ipfs-sync sync-files --from --to --file-list [--skip-existing] 25 | ``` 26 | 27 | In this case, `` has to be a file with one IPFS hash per line for each 28 | file that should be synced from the `--from` node to the `--to` node. 29 | 30 | ## Docker usage 31 | 32 | The Docker image is [graphprotocol/ipfs-sync](https://hub.docker.com/r/graphprotocol/ipfs-sync/). 33 | 34 | ```sh 35 | docker run -it graphprotocol/ipfs-sync sync-files --from --to [--skip-existing] 36 | ``` 37 | -------------------------------------------------------------------------------- /bin/ipfs-sync: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | require('../src/cli').run(process.argv) 4 | -------------------------------------------------------------------------------- /docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:18.12.1 2 | 3 | # Replace this with the graph-node branch you want to build the image from; 4 | # Note: Docker Hub substitutes this automatically using our hooks/post_checkout script. 5 | ENV SOURCE_BRANCH "master" 6 | 7 | # Clone the ipfs-sync repository 8 | RUN git clone https://github.com/graphprotocol/ipfs-sync \ 9 | && cd ipfs-sync \ 10 | && git checkout "$SOURCE_BRANCH" \ 11 | && npm install \ 12 | && npm install -g --verbose -unsafe-perm 13 | 14 | ENTRYPOINT ["/usr/local/bin/ipfs-sync"] 15 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@graphprotocol/ipfs-sync", 3 | "version": "1.0.0", 4 | "lockfileVersion": 3, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "@graphprotocol/ipfs-sync", 9 | "version": "1.0.0", 10 | "license": "MIT", 11 | "dependencies": { 12 | "batch-promises": "^0.0.3", 13 | "chalk": "^2.4.2", 14 | "form-data": "^2.5.1", 15 | "gluegun": "^3.3.4", 16 | "ipfs-http-client": "^52.0.0" 17 | }, 18 | "bin": { 19 | "ipfs-sync": "bin/ipfs-sync" 20 | }, 21 | "devDependencies": { 22 | "prettier": "^1.18.2" 23 | } 24 | }, 25 | "node_modules/@ipld/dag-cbor": { 26 | "version": "6.0.15", 27 | "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-6.0.15.tgz", 28 | "integrity": "sha512-Vm3VTSTwlmGV92a3C5aeY+r2A18zbH2amehNhsX8PBa3muXICaWrN8Uri85A5hLH7D7ElhE8PdjxD6kNqUmTZA==", 29 | "dependencies": { 30 | "cborg": "^1.5.4", 31 | "multiformats": "^9.5.4" 32 | } 33 | }, 34 | "node_modules/@ipld/dag-pb": { 35 | "version": "2.1.18", 36 | "resolved": "https://registry.npmjs.org/@ipld/dag-pb/-/dag-pb-2.1.18.tgz", 37 | "integrity": "sha512-ZBnf2fuX9y3KccADURG5vb9FaOeMjFkCrNysB0PtftME/4iCTjxfaLoNq/IAh5fTqUOMXvryN6Jyka4ZGuMLIg==", 38 | "dependencies": { 39 | "multiformats": "^9.5.4" 40 | } 41 | }, 42 | "node_modules/@protobufjs/aspromise": { 43 | "version": "1.1.2", 44 | "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", 45 | "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" 46 | }, 47 | "node_modules/@protobufjs/base64": { 48 | "version": "1.1.2", 49 | "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", 50 | "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" 51 | }, 52 | "node_modules/@protobufjs/codegen": { 53 | "version": "2.0.4", 54 | "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", 55 | "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" 56 | }, 57 | "node_modules/@protobufjs/eventemitter": { 58 | "version": "1.1.0", 59 | "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", 60 | "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" 61 | }, 62 | "node_modules/@protobufjs/fetch": { 63 | "version": "1.1.0", 64 | "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", 65 | "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", 66 | "dependencies": { 67 | "@protobufjs/aspromise": "^1.1.1", 68 | "@protobufjs/inquire": "^1.1.0" 69 | } 70 | }, 71 | "node_modules/@protobufjs/float": { 72 | "version": "1.0.2", 73 | "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", 74 | "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" 75 | }, 76 | "node_modules/@protobufjs/inquire": { 77 | "version": "1.1.0", 78 | "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", 79 | "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" 80 | }, 81 | "node_modules/@protobufjs/path": { 82 | "version": "1.1.2", 83 | "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", 84 | "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" 85 | }, 86 | "node_modules/@protobufjs/pool": { 87 | "version": "1.1.0", 88 | "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", 89 | "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" 90 | }, 91 | "node_modules/@protobufjs/utf8": { 92 | "version": "1.1.0", 93 | "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", 94 | "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" 95 | }, 96 | "node_modules/@types/long": { 97 | "version": "4.0.2", 98 | "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", 99 | "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" 100 | }, 101 | "node_modules/@types/minimatch": { 102 | "version": "3.0.5", 103 | "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", 104 | "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" 105 | }, 106 | "node_modules/@types/node": { 107 | "version": "18.17.0", 108 | "resolved": "https://registry.npmjs.org/@types/node/-/node-18.17.0.tgz", 109 | "integrity": "sha512-GXZxEtOxYGFchyUzxvKI14iff9KZ2DI+A6a37o6EQevtg6uO9t+aUZKcaC1Te5Ng1OnLM7K9NVVj+FbecD9cJg==" 110 | }, 111 | "node_modules/abort-controller": { 112 | "version": "3.0.0", 113 | "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", 114 | "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", 115 | "dependencies": { 116 | "event-target-shim": "^5.0.0" 117 | }, 118 | "engines": { 119 | "node": ">=6.5" 120 | } 121 | }, 122 | "node_modules/ansi-colors": { 123 | "version": "3.2.4", 124 | "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", 125 | "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", 126 | "engines": { 127 | "node": ">=6" 128 | } 129 | }, 130 | "node_modules/ansi-regex": { 131 | "version": "4.1.1", 132 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", 133 | "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", 134 | "engines": { 135 | "node": ">=6" 136 | } 137 | }, 138 | "node_modules/ansi-styles": { 139 | "version": "3.2.1", 140 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 141 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 142 | "dependencies": { 143 | "color-convert": "^1.9.0" 144 | }, 145 | "engines": { 146 | "node": ">=4" 147 | } 148 | }, 149 | "node_modules/any-signal": { 150 | "version": "2.1.2", 151 | "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-2.1.2.tgz", 152 | "integrity": "sha512-B+rDnWasMi/eWcajPcCWSlYc7muXOrcYrqgyzcdKisl2H/WTlQ0gip1KyQfr0ZlxJdsuWCj/LWwQm7fhyhRfIQ==", 153 | "dependencies": { 154 | "abort-controller": "^3.0.0", 155 | "native-abort-controller": "^1.0.3" 156 | } 157 | }, 158 | "node_modules/apisauce": { 159 | "version": "1.1.5", 160 | "resolved": "https://registry.npmjs.org/apisauce/-/apisauce-1.1.5.tgz", 161 | "integrity": "sha512-gKC8qb/bDJsPsnEXLZnXJ7gVx7dh87CEVNeIwv1dvaffnXoh5GHwac5pWR1P2broLiVj/fqFMQvLDDt/RhjiqA==", 162 | "dependencies": { 163 | "axios": "^0.21.2", 164 | "ramda": "^0.25.0" 165 | } 166 | }, 167 | "node_modules/app-module-path": { 168 | "version": "2.2.0", 169 | "resolved": "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz", 170 | "integrity": "sha512-gkco+qxENJV+8vFcDiiFhuoSvRXb2a/QPqpSoWhVz829VNJfOTnELbBmPmNKFxf3xdNnw4DWCkzkDaavcX/1YQ==" 171 | }, 172 | "node_modules/argparse": { 173 | "version": "1.0.10", 174 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", 175 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", 176 | "dependencies": { 177 | "sprintf-js": "~1.0.2" 178 | } 179 | }, 180 | "node_modules/asynckit": { 181 | "version": "0.4.0", 182 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 183 | "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" 184 | }, 185 | "node_modules/axios": { 186 | "version": "0.21.4", 187 | "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", 188 | "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", 189 | "dependencies": { 190 | "follow-redirects": "^1.14.0" 191 | } 192 | }, 193 | "node_modules/balanced-match": { 194 | "version": "1.0.2", 195 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 196 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" 197 | }, 198 | "node_modules/base64-js": { 199 | "version": "1.5.1", 200 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 201 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", 202 | "funding": [ 203 | { 204 | "type": "github", 205 | "url": "https://github.com/sponsors/feross" 206 | }, 207 | { 208 | "type": "patreon", 209 | "url": "https://www.patreon.com/feross" 210 | }, 211 | { 212 | "type": "consulting", 213 | "url": "https://feross.org/support" 214 | } 215 | ] 216 | }, 217 | "node_modules/batch-promises": { 218 | "version": "0.0.3", 219 | "resolved": "https://registry.npmjs.org/batch-promises/-/batch-promises-0.0.3.tgz", 220 | "integrity": "sha512-Xlr3HckJFoXNcLmoxHGi6okPMWGilmrFBCrgeSWjXLagVs1W3/b2huWJTm5do/um0jugbcqTGMoGS8DL4pPUpQ==" 221 | }, 222 | "node_modules/blob-to-it": { 223 | "version": "1.0.4", 224 | "resolved": "https://registry.npmjs.org/blob-to-it/-/blob-to-it-1.0.4.tgz", 225 | "integrity": "sha512-iCmk0W4NdbrWgRRuxOriU8aM5ijeVLI61Zulsmg/lUHNr7pYjoj+U77opLefNagevtrrbMt3JQ5Qip7ar178kA==", 226 | "dependencies": { 227 | "browser-readablestream-to-it": "^1.0.3" 228 | } 229 | }, 230 | "node_modules/brace-expansion": { 231 | "version": "1.1.11", 232 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 233 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 234 | "dependencies": { 235 | "balanced-match": "^1.0.0", 236 | "concat-map": "0.0.1" 237 | } 238 | }, 239 | "node_modules/browser-readablestream-to-it": { 240 | "version": "1.0.3", 241 | "resolved": "https://registry.npmjs.org/browser-readablestream-to-it/-/browser-readablestream-to-it-1.0.3.tgz", 242 | "integrity": "sha512-+12sHB+Br8HIh6VAMVEG5r3UXCyESIgDW7kzk3BjIXa43DVqVwL7GC5TW3jeh+72dtcH99pPVpw0X8i0jt+/kw==" 243 | }, 244 | "node_modules/buffer": { 245 | "version": "6.0.3", 246 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", 247 | "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", 248 | "funding": [ 249 | { 250 | "type": "github", 251 | "url": "https://github.com/sponsors/feross" 252 | }, 253 | { 254 | "type": "patreon", 255 | "url": "https://www.patreon.com/feross" 256 | }, 257 | { 258 | "type": "consulting", 259 | "url": "https://feross.org/support" 260 | } 261 | ], 262 | "dependencies": { 263 | "base64-js": "^1.3.1", 264 | "ieee754": "^1.2.1" 265 | } 266 | }, 267 | "node_modules/caller-callsite": { 268 | "version": "2.0.0", 269 | "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", 270 | "integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==", 271 | "dependencies": { 272 | "callsites": "^2.0.0" 273 | }, 274 | "engines": { 275 | "node": ">=4" 276 | } 277 | }, 278 | "node_modules/caller-path": { 279 | "version": "2.0.0", 280 | "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", 281 | "integrity": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==", 282 | "dependencies": { 283 | "caller-callsite": "^2.0.0" 284 | }, 285 | "engines": { 286 | "node": ">=4" 287 | } 288 | }, 289 | "node_modules/callsites": { 290 | "version": "2.0.0", 291 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", 292 | "integrity": "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==", 293 | "engines": { 294 | "node": ">=4" 295 | } 296 | }, 297 | "node_modules/camelcase": { 298 | "version": "5.3.1", 299 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", 300 | "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", 301 | "engines": { 302 | "node": ">=6" 303 | } 304 | }, 305 | "node_modules/cborg": { 306 | "version": "1.10.2", 307 | "resolved": "https://registry.npmjs.org/cborg/-/cborg-1.10.2.tgz", 308 | "integrity": "sha512-b3tFPA9pUr2zCUiCfRd2+wok2/LBSNUMKOuRRok+WlvvAgEt/PlbgPTsZUcwCOs53IJvLgTp0eotwtosE6njug==", 309 | "bin": { 310 | "cborg": "cli.js" 311 | } 312 | }, 313 | "node_modules/chalk": { 314 | "version": "2.4.2", 315 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 316 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 317 | "dependencies": { 318 | "ansi-styles": "^3.2.1", 319 | "escape-string-regexp": "^1.0.5", 320 | "supports-color": "^5.3.0" 321 | }, 322 | "engines": { 323 | "node": ">=4" 324 | } 325 | }, 326 | "node_modules/cli-cursor": { 327 | "version": "2.1.0", 328 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", 329 | "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", 330 | "dependencies": { 331 | "restore-cursor": "^2.0.0" 332 | }, 333 | "engines": { 334 | "node": ">=4" 335 | } 336 | }, 337 | "node_modules/cli-spinners": { 338 | "version": "2.9.0", 339 | "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.0.tgz", 340 | "integrity": "sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==", 341 | "engines": { 342 | "node": ">=6" 343 | }, 344 | "funding": { 345 | "url": "https://github.com/sponsors/sindresorhus" 346 | } 347 | }, 348 | "node_modules/cli-table3": { 349 | "version": "0.5.1", 350 | "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", 351 | "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", 352 | "dependencies": { 353 | "object-assign": "^4.1.0", 354 | "string-width": "^2.1.1" 355 | }, 356 | "engines": { 357 | "node": ">=6" 358 | }, 359 | "optionalDependencies": { 360 | "colors": "^1.1.2" 361 | } 362 | }, 363 | "node_modules/clone": { 364 | "version": "1.0.4", 365 | "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", 366 | "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", 367 | "engines": { 368 | "node": ">=0.8" 369 | } 370 | }, 371 | "node_modules/color-convert": { 372 | "version": "1.9.3", 373 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 374 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 375 | "dependencies": { 376 | "color-name": "1.1.3" 377 | } 378 | }, 379 | "node_modules/color-name": { 380 | "version": "1.1.3", 381 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 382 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" 383 | }, 384 | "node_modules/colors": { 385 | "version": "1.4.0", 386 | "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", 387 | "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", 388 | "engines": { 389 | "node": ">=0.1.90" 390 | } 391 | }, 392 | "node_modules/combined-stream": { 393 | "version": "1.0.8", 394 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 395 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 396 | "dependencies": { 397 | "delayed-stream": "~1.0.0" 398 | }, 399 | "engines": { 400 | "node": ">= 0.8" 401 | } 402 | }, 403 | "node_modules/concat-map": { 404 | "version": "0.0.1", 405 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 406 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" 407 | }, 408 | "node_modules/cosmiconfig": { 409 | "version": "5.1.0", 410 | "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.1.0.tgz", 411 | "integrity": "sha512-kCNPvthka8gvLtzAxQXvWo4FxqRB+ftRZyPZNuab5ngvM9Y7yw7hbEysglptLgpkGX9nAOKTBVkHUAe8xtYR6Q==", 412 | "dependencies": { 413 | "import-fresh": "^2.0.0", 414 | "is-directory": "^0.3.1", 415 | "js-yaml": "^3.9.0", 416 | "lodash.get": "^4.4.2", 417 | "parse-json": "^4.0.0" 418 | }, 419 | "engines": { 420 | "node": ">=4" 421 | } 422 | }, 423 | "node_modules/cross-spawn": { 424 | "version": "6.0.5", 425 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", 426 | "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", 427 | "dependencies": { 428 | "nice-try": "^1.0.4", 429 | "path-key": "^2.0.1", 430 | "semver": "^5.5.0", 431 | "shebang-command": "^1.2.0", 432 | "which": "^1.2.9" 433 | }, 434 | "engines": { 435 | "node": ">=4.8" 436 | } 437 | }, 438 | "node_modules/cross-spawn/node_modules/semver": { 439 | "version": "5.7.2", 440 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", 441 | "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", 442 | "bin": { 443 | "semver": "bin/semver" 444 | } 445 | }, 446 | "node_modules/debug": { 447 | "version": "4.3.4", 448 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 449 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 450 | "dependencies": { 451 | "ms": "2.1.2" 452 | }, 453 | "engines": { 454 | "node": ">=6.0" 455 | }, 456 | "peerDependenciesMeta": { 457 | "supports-color": { 458 | "optional": true 459 | } 460 | } 461 | }, 462 | "node_modules/decamelize": { 463 | "version": "1.2.0", 464 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 465 | "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", 466 | "engines": { 467 | "node": ">=0.10.0" 468 | } 469 | }, 470 | "node_modules/defaults": { 471 | "version": "1.0.4", 472 | "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", 473 | "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", 474 | "dependencies": { 475 | "clone": "^1.0.2" 476 | }, 477 | "funding": { 478 | "url": "https://github.com/sponsors/sindresorhus" 479 | } 480 | }, 481 | "node_modules/delayed-stream": { 482 | "version": "1.0.0", 483 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 484 | "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", 485 | "engines": { 486 | "node": ">=0.4.0" 487 | } 488 | }, 489 | "node_modules/dns-over-http-resolver": { 490 | "version": "1.2.3", 491 | "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz", 492 | "integrity": "sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA==", 493 | "dependencies": { 494 | "debug": "^4.3.1", 495 | "native-fetch": "^3.0.0", 496 | "receptacle": "^1.3.2" 497 | } 498 | }, 499 | "node_modules/ejs": { 500 | "version": "2.7.4", 501 | "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz", 502 | "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==", 503 | "hasInstallScript": true, 504 | "engines": { 505 | "node": ">=0.10.0" 506 | } 507 | }, 508 | "node_modules/electron-fetch": { 509 | "version": "1.9.1", 510 | "resolved": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.9.1.tgz", 511 | "integrity": "sha512-M9qw6oUILGVrcENMSRRefE1MbHPIz0h79EKIeJWK9v563aT9Qkh8aEHPO1H5vi970wPirNY+jO9OpFoLiMsMGA==", 512 | "dependencies": { 513 | "encoding": "^0.1.13" 514 | }, 515 | "engines": { 516 | "node": ">=6" 517 | } 518 | }, 519 | "node_modules/encoding": { 520 | "version": "0.1.13", 521 | "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", 522 | "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", 523 | "dependencies": { 524 | "iconv-lite": "^0.6.2" 525 | } 526 | }, 527 | "node_modules/end-of-stream": { 528 | "version": "1.4.4", 529 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", 530 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", 531 | "dependencies": { 532 | "once": "^1.4.0" 533 | } 534 | }, 535 | "node_modules/enquirer": { 536 | "version": "2.3.2", 537 | "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.2.tgz", 538 | "integrity": "sha512-PLhTMPUXlnaIv9D3Cq3/Zr1xb7soeDDgunobyCmYLUG19n24dvC8i+ZZgm2DekGpDnx7JvFSHV7lxfM58PMtbA==", 539 | "dependencies": { 540 | "ansi-colors": "^3.2.1" 541 | }, 542 | "engines": { 543 | "node": ">=8.6" 544 | } 545 | }, 546 | "node_modules/err-code": { 547 | "version": "3.0.1", 548 | "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", 549 | "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" 550 | }, 551 | "node_modules/error-ex": { 552 | "version": "1.3.2", 553 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", 554 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", 555 | "dependencies": { 556 | "is-arrayish": "^0.2.1" 557 | } 558 | }, 559 | "node_modules/escape-string-regexp": { 560 | "version": "1.0.5", 561 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 562 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", 563 | "engines": { 564 | "node": ">=0.8.0" 565 | } 566 | }, 567 | "node_modules/esprima": { 568 | "version": "4.0.1", 569 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", 570 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", 571 | "bin": { 572 | "esparse": "bin/esparse.js", 573 | "esvalidate": "bin/esvalidate.js" 574 | }, 575 | "engines": { 576 | "node": ">=4" 577 | } 578 | }, 579 | "node_modules/event-target-shim": { 580 | "version": "5.0.1", 581 | "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", 582 | "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", 583 | "engines": { 584 | "node": ">=6" 585 | } 586 | }, 587 | "node_modules/execa": { 588 | "version": "1.0.0", 589 | "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", 590 | "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", 591 | "dependencies": { 592 | "cross-spawn": "^6.0.0", 593 | "get-stream": "^4.0.0", 594 | "is-stream": "^1.1.0", 595 | "npm-run-path": "^2.0.0", 596 | "p-finally": "^1.0.0", 597 | "signal-exit": "^3.0.0", 598 | "strip-eof": "^1.0.0" 599 | }, 600 | "engines": { 601 | "node": ">=6" 602 | } 603 | }, 604 | "node_modules/fast-fifo": { 605 | "version": "1.3.0", 606 | "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.0.tgz", 607 | "integrity": "sha512-IgfweLvEpwyA4WgiQe9Nx6VV2QkML2NkvZnk1oKnIzXgXdWxuhF7zw4DvLTPZJn6PIUneiAXPF24QmoEqHTjyw==" 608 | }, 609 | "node_modules/follow-redirects": { 610 | "version": "1.15.2", 611 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", 612 | "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", 613 | "funding": [ 614 | { 615 | "type": "individual", 616 | "url": "https://github.com/sponsors/RubenVerborgh" 617 | } 618 | ], 619 | "engines": { 620 | "node": ">=4.0" 621 | }, 622 | "peerDependenciesMeta": { 623 | "debug": { 624 | "optional": true 625 | } 626 | } 627 | }, 628 | "node_modules/form-data": { 629 | "version": "2.5.1", 630 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", 631 | "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", 632 | "dependencies": { 633 | "asynckit": "^0.4.0", 634 | "combined-stream": "^1.0.6", 635 | "mime-types": "^2.1.12" 636 | }, 637 | "engines": { 638 | "node": ">= 0.12" 639 | } 640 | }, 641 | "node_modules/fs-jetpack": { 642 | "version": "2.4.0", 643 | "resolved": "https://registry.npmjs.org/fs-jetpack/-/fs-jetpack-2.4.0.tgz", 644 | "integrity": "sha512-S/o9Dd7K9A7gicVU32eT8G0kHcmSu0rCVdP79P0MWInKFb8XpTc8Syhoo66k9no+HDshtlh4pUJTws8X+8fdFQ==", 645 | "dependencies": { 646 | "minimatch": "^3.0.2", 647 | "rimraf": "^2.6.3" 648 | }, 649 | "engines": { 650 | "node": ">=4" 651 | } 652 | }, 653 | "node_modules/fs.realpath": { 654 | "version": "1.0.0", 655 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 656 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" 657 | }, 658 | "node_modules/get-iterator": { 659 | "version": "1.0.2", 660 | "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", 661 | "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" 662 | }, 663 | "node_modules/get-stream": { 664 | "version": "4.1.0", 665 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", 666 | "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", 667 | "dependencies": { 668 | "pump": "^3.0.0" 669 | }, 670 | "engines": { 671 | "node": ">=6" 672 | } 673 | }, 674 | "node_modules/glob": { 675 | "version": "7.2.3", 676 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", 677 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", 678 | "dependencies": { 679 | "fs.realpath": "^1.0.0", 680 | "inflight": "^1.0.4", 681 | "inherits": "2", 682 | "minimatch": "^3.1.1", 683 | "once": "^1.3.0", 684 | "path-is-absolute": "^1.0.0" 685 | }, 686 | "engines": { 687 | "node": "*" 688 | }, 689 | "funding": { 690 | "url": "https://github.com/sponsors/isaacs" 691 | } 692 | }, 693 | "node_modules/gluegun": { 694 | "version": "3.3.5", 695 | "resolved": "https://registry.npmjs.org/gluegun/-/gluegun-3.3.5.tgz", 696 | "integrity": "sha512-+9Y6Eib0+h6wH2J2nX2y2rvizaP9x13JU0hdsYMnWeM0OB4k4/0UOdBg9YrOgdNGP7Jw8TQPz8mQM0c9s1Penw==", 697 | "dependencies": { 698 | "apisauce": "^1.0.1", 699 | "app-module-path": "^2.2.0", 700 | "cli-table3": "~0.5.0", 701 | "colors": "^1.3.3", 702 | "cosmiconfig": "5.1.0", 703 | "cross-spawn": "^6.0.5", 704 | "ejs": "^2.6.1", 705 | "enquirer": "2.3.2", 706 | "execa": "^1.0.0", 707 | "fs-jetpack": "^2.2.2", 708 | "lodash.camelcase": "^4.3.0", 709 | "lodash.kebabcase": "^4.1.1", 710 | "lodash.lowercase": "^4.3.0", 711 | "lodash.lowerfirst": "^4.3.1", 712 | "lodash.pad": "^4.5.1", 713 | "lodash.padend": "^4.6.1", 714 | "lodash.padstart": "^4.6.1", 715 | "lodash.repeat": "^4.1.0", 716 | "lodash.snakecase": "^4.1.1", 717 | "lodash.startcase": "^4.4.0", 718 | "lodash.trim": "^4.5.1", 719 | "lodash.trimend": "^4.5.1", 720 | "lodash.trimstart": "^4.5.1", 721 | "lodash.uppercase": "^4.3.0", 722 | "lodash.upperfirst": "^4.3.1", 723 | "ora": "^3.4.0", 724 | "pluralize": "^8.0.0", 725 | "ramdasauce": "^2.1.0", 726 | "semver": "^6.1.1", 727 | "which": "^1.2.14", 728 | "yargs-parser": "^12.0.0" 729 | }, 730 | "bin": { 731 | "gluegun": "bin/gluegun" 732 | } 733 | }, 734 | "node_modules/has-flag": { 735 | "version": "3.0.0", 736 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 737 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", 738 | "engines": { 739 | "node": ">=4" 740 | } 741 | }, 742 | "node_modules/iconv-lite": { 743 | "version": "0.6.3", 744 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", 745 | "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", 746 | "dependencies": { 747 | "safer-buffer": ">= 2.1.2 < 3.0.0" 748 | }, 749 | "engines": { 750 | "node": ">=0.10.0" 751 | } 752 | }, 753 | "node_modules/ieee754": { 754 | "version": "1.2.1", 755 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", 756 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", 757 | "funding": [ 758 | { 759 | "type": "github", 760 | "url": "https://github.com/sponsors/feross" 761 | }, 762 | { 763 | "type": "patreon", 764 | "url": "https://www.patreon.com/feross" 765 | }, 766 | { 767 | "type": "consulting", 768 | "url": "https://feross.org/support" 769 | } 770 | ] 771 | }, 772 | "node_modules/import-fresh": { 773 | "version": "2.0.0", 774 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", 775 | "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==", 776 | "dependencies": { 777 | "caller-path": "^2.0.0", 778 | "resolve-from": "^3.0.0" 779 | }, 780 | "engines": { 781 | "node": ">=4" 782 | } 783 | }, 784 | "node_modules/inflight": { 785 | "version": "1.0.6", 786 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 787 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", 788 | "dependencies": { 789 | "once": "^1.3.0", 790 | "wrappy": "1" 791 | } 792 | }, 793 | "node_modules/inherits": { 794 | "version": "2.0.4", 795 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 796 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 797 | }, 798 | "node_modules/interface-datastore": { 799 | "version": "5.2.0", 800 | "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-5.2.0.tgz", 801 | "integrity": "sha512-nthO4C4BMJM2j9x/mT2KFa/g/sbcY8yf9j/kOBgli3u5mq9ZdPvQyDxi0OhKzr4JmoM81OYh5xcFjyebquqwvA==", 802 | "dependencies": { 803 | "err-code": "^3.0.1", 804 | "interface-store": "^1.0.2", 805 | "ipfs-utils": "^8.1.2", 806 | "it-all": "^1.0.2", 807 | "it-drain": "^1.0.1", 808 | "it-filter": "^1.0.2", 809 | "it-take": "^1.0.1", 810 | "nanoid": "^3.0.2", 811 | "uint8arrays": "^3.0.0" 812 | } 813 | }, 814 | "node_modules/interface-store": { 815 | "version": "1.0.2", 816 | "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-1.0.2.tgz", 817 | "integrity": "sha512-rUBLYsgoWwxuUpnQoSUr+DR/3dH3reVeIu5aOHFZK31lAexmb++kR6ZECNRgrx6WvoaM3Akdo0A7TDrqgCzZaQ==" 818 | }, 819 | "node_modules/ip-regex": { 820 | "version": "4.3.0", 821 | "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", 822 | "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", 823 | "engines": { 824 | "node": ">=8" 825 | } 826 | }, 827 | "node_modules/ipfs-core-types": { 828 | "version": "0.7.3", 829 | "resolved": "https://registry.npmjs.org/ipfs-core-types/-/ipfs-core-types-0.7.3.tgz", 830 | "integrity": "sha512-FkmOlqhEf3yG0K8Qt7We7kqA0xKjj8pe0dmNK593I3cgMP0MQS/xjMj1CXVdGeZc5Nn5CJ+TsuQydPbJ+7Y8eQ==", 831 | "deprecated": "js-IPFS has been deprecated in favour of Helia - please see https://github.com/ipfs/js-ipfs/issues/4336 for details", 832 | "dependencies": { 833 | "interface-datastore": "^5.2.0", 834 | "multiaddr": "^10.0.0", 835 | "multiformats": "^9.4.1" 836 | } 837 | }, 838 | "node_modules/ipfs-core-utils": { 839 | "version": "0.10.5", 840 | "resolved": "https://registry.npmjs.org/ipfs-core-utils/-/ipfs-core-utils-0.10.5.tgz", 841 | "integrity": "sha512-WPRbMkbn/99pKMF3h8x1/c19+eTXVWOZu1+cmlc3NLR6gMlCd8KNpcq9OCAvs9G1JHx3w/FbEWHnqJm0TJMvrw==", 842 | "deprecated": "js-IPFS has been deprecated in favour of Helia - please see https://github.com/ipfs/js-ipfs/issues/4336 for details", 843 | "dependencies": { 844 | "any-signal": "^2.1.2", 845 | "blob-to-it": "^1.0.1", 846 | "browser-readablestream-to-it": "^1.0.1", 847 | "err-code": "^3.0.1", 848 | "ipfs-core-types": "^0.7.3", 849 | "ipfs-unixfs": "^6.0.3", 850 | "ipfs-utils": "^8.1.4", 851 | "it-all": "^1.0.4", 852 | "it-map": "^1.0.4", 853 | "it-peekable": "^1.0.2", 854 | "multiaddr": "^10.0.0", 855 | "multiaddr-to-uri": "^8.0.0", 856 | "multiformats": "^9.4.1", 857 | "parse-duration": "^1.0.0", 858 | "timeout-abort-controller": "^1.1.1", 859 | "uint8arrays": "^3.0.0" 860 | } 861 | }, 862 | "node_modules/ipfs-http-client": { 863 | "version": "52.0.5", 864 | "resolved": "https://registry.npmjs.org/ipfs-http-client/-/ipfs-http-client-52.0.5.tgz", 865 | "integrity": "sha512-vQ2z6JdBcIJvf6N1Bh/ZdpYBa7fgl0jFV8Rn3HaADhHnIZ/dou8e6nSxHkBPpw2OUyR4ljjjsDvmy2SIIQXohA==", 866 | "deprecated": "js-IPFS has been deprecated in favour of Helia - please see https://github.com/ipfs/js-ipfs/issues/4336 for details", 867 | "dependencies": { 868 | "@ipld/dag-cbor": "^6.0.5", 869 | "@ipld/dag-pb": "^2.1.3", 870 | "abort-controller": "^3.0.0", 871 | "any-signal": "^2.1.2", 872 | "debug": "^4.1.1", 873 | "err-code": "^3.0.1", 874 | "form-data": "^4.0.0", 875 | "ipfs-core-types": "^0.7.3", 876 | "ipfs-core-utils": "^0.10.5", 877 | "ipfs-utils": "^8.1.4", 878 | "it-first": "^1.0.6", 879 | "it-last": "^1.0.4", 880 | "it-to-stream": "^1.0.0", 881 | "merge-options": "^3.0.4", 882 | "multiaddr": "^10.0.0", 883 | "multiformats": "^9.4.1", 884 | "nanoid": "^3.1.12", 885 | "native-abort-controller": "^1.0.3", 886 | "parse-duration": "^1.0.0", 887 | "stream-to-it": "^0.2.2", 888 | "uint8arrays": "^3.0.0" 889 | }, 890 | "engines": { 891 | "node": ">=14.0.0", 892 | "npm": ">=3.0.0" 893 | } 894 | }, 895 | "node_modules/ipfs-http-client/node_modules/form-data": { 896 | "version": "4.0.0", 897 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", 898 | "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", 899 | "dependencies": { 900 | "asynckit": "^0.4.0", 901 | "combined-stream": "^1.0.8", 902 | "mime-types": "^2.1.12" 903 | }, 904 | "engines": { 905 | "node": ">= 6" 906 | } 907 | }, 908 | "node_modules/ipfs-unixfs": { 909 | "version": "6.0.9", 910 | "resolved": "https://registry.npmjs.org/ipfs-unixfs/-/ipfs-unixfs-6.0.9.tgz", 911 | "integrity": "sha512-0DQ7p0/9dRB6XCb0mVCTli33GzIzSVx5udpJuVM47tGcD+W+Bl4LsnoLswd3ggNnNEakMv1FdoFITiEnchXDqQ==", 912 | "dependencies": { 913 | "err-code": "^3.0.1", 914 | "protobufjs": "^6.10.2" 915 | }, 916 | "engines": { 917 | "node": ">=16.0.0", 918 | "npm": ">=7.0.0" 919 | } 920 | }, 921 | "node_modules/ipfs-utils": { 922 | "version": "8.1.6", 923 | "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-8.1.6.tgz", 924 | "integrity": "sha512-V/cwb6113DrDhrjDTWImA6+zmJbpdbUkxdxmEQO7it8ykV76bBmzU1ZXSM0QR0qxGy9VW8dkUlPAC2K10VgSmw==", 925 | "dependencies": { 926 | "abort-controller": "^3.0.0", 927 | "any-signal": "^2.1.0", 928 | "buffer": "^6.0.1", 929 | "electron-fetch": "^1.7.2", 930 | "err-code": "^3.0.1", 931 | "is-electron": "^2.2.0", 932 | "iso-url": "^1.1.5", 933 | "it-glob": "~0.0.11", 934 | "it-to-stream": "^1.0.0", 935 | "merge-options": "^3.0.4", 936 | "nanoid": "^3.1.20", 937 | "native-abort-controller": "^1.0.3", 938 | "native-fetch": "^3.0.0", 939 | "node-fetch": "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz", 940 | "react-native-fetch-api": "^2.0.0", 941 | "stream-to-it": "^0.2.2" 942 | } 943 | }, 944 | "node_modules/is-arrayish": { 945 | "version": "0.2.1", 946 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 947 | "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" 948 | }, 949 | "node_modules/is-directory": { 950 | "version": "0.3.1", 951 | "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", 952 | "integrity": "sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==", 953 | "engines": { 954 | "node": ">=0.10.0" 955 | } 956 | }, 957 | "node_modules/is-electron": { 958 | "version": "2.2.2", 959 | "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.2.2.tgz", 960 | "integrity": "sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg==" 961 | }, 962 | "node_modules/is-fullwidth-code-point": { 963 | "version": "2.0.0", 964 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 965 | "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", 966 | "engines": { 967 | "node": ">=4" 968 | } 969 | }, 970 | "node_modules/is-ip": { 971 | "version": "3.1.0", 972 | "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", 973 | "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", 974 | "dependencies": { 975 | "ip-regex": "^4.0.0" 976 | }, 977 | "engines": { 978 | "node": ">=8" 979 | } 980 | }, 981 | "node_modules/is-plain-obj": { 982 | "version": "2.1.0", 983 | "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", 984 | "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", 985 | "engines": { 986 | "node": ">=8" 987 | } 988 | }, 989 | "node_modules/is-stream": { 990 | "version": "1.1.0", 991 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", 992 | "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", 993 | "engines": { 994 | "node": ">=0.10.0" 995 | } 996 | }, 997 | "node_modules/isexe": { 998 | "version": "2.0.0", 999 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 1000 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" 1001 | }, 1002 | "node_modules/iso-url": { 1003 | "version": "1.2.1", 1004 | "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.2.1.tgz", 1005 | "integrity": "sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng==", 1006 | "engines": { 1007 | "node": ">=12" 1008 | } 1009 | }, 1010 | "node_modules/it-all": { 1011 | "version": "1.0.6", 1012 | "resolved": "https://registry.npmjs.org/it-all/-/it-all-1.0.6.tgz", 1013 | "integrity": "sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A==" 1014 | }, 1015 | "node_modules/it-drain": { 1016 | "version": "1.0.5", 1017 | "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-1.0.5.tgz", 1018 | "integrity": "sha512-r/GjkiW1bZswC04TNmUnLxa6uovme7KKwPhc+cb1hHU65E3AByypHH6Pm91WHuvqfFsm+9ws0kPtDBV3/8vmIg==" 1019 | }, 1020 | "node_modules/it-filter": { 1021 | "version": "1.0.3", 1022 | "resolved": "https://registry.npmjs.org/it-filter/-/it-filter-1.0.3.tgz", 1023 | "integrity": "sha512-EI3HpzUrKjTH01miLHWmhNWy3Xpbx4OXMXltgrNprL5lDpF3giVpHIouFpr5l+evXw6aOfxhnt01BIB+4VQA+w==" 1024 | }, 1025 | "node_modules/it-first": { 1026 | "version": "1.0.7", 1027 | "resolved": "https://registry.npmjs.org/it-first/-/it-first-1.0.7.tgz", 1028 | "integrity": "sha512-nvJKZoBpZD/6Rtde6FXqwDqDZGF1sCADmr2Zoc0hZsIvnE449gRFnGctxDf09Bzc/FWnHXAdaHVIetY6lrE0/g==" 1029 | }, 1030 | "node_modules/it-glob": { 1031 | "version": "0.0.14", 1032 | "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-0.0.14.tgz", 1033 | "integrity": "sha512-TKKzs9CglbsihSpcwJPXN5DBUssu4akRzPlp8QJRCoLrKoaOpyY2V1qDlxx+UMivn0i114YyTd4AawWl7eqIdw==", 1034 | "dependencies": { 1035 | "@types/minimatch": "^3.0.4", 1036 | "minimatch": "^3.0.4" 1037 | } 1038 | }, 1039 | "node_modules/it-last": { 1040 | "version": "1.0.6", 1041 | "resolved": "https://registry.npmjs.org/it-last/-/it-last-1.0.6.tgz", 1042 | "integrity": "sha512-aFGeibeiX/lM4bX3JY0OkVCFkAw8+n9lkukkLNivbJRvNz8lI3YXv5xcqhFUV2lDJiraEK3OXRDbGuevnnR67Q==" 1043 | }, 1044 | "node_modules/it-map": { 1045 | "version": "1.0.6", 1046 | "resolved": "https://registry.npmjs.org/it-map/-/it-map-1.0.6.tgz", 1047 | "integrity": "sha512-XT4/RM6UHIFG9IobGlQPFQUrlEKkU4eBUFG3qhWhfAdh1JfF2x11ShCrKCdmZ0OiZppPfoLuzcfA4cey6q3UAQ==" 1048 | }, 1049 | "node_modules/it-peekable": { 1050 | "version": "1.0.3", 1051 | "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-1.0.3.tgz", 1052 | "integrity": "sha512-5+8zemFS+wSfIkSZyf0Zh5kNN+iGyccN02914BY4w/Dj+uoFEoPSvj5vaWn8pNZJNSxzjW0zHRxC3LUb2KWJTQ==" 1053 | }, 1054 | "node_modules/it-take": { 1055 | "version": "1.0.2", 1056 | "resolved": "https://registry.npmjs.org/it-take/-/it-take-1.0.2.tgz", 1057 | "integrity": "sha512-u7I6qhhxH7pSevcYNaMECtkvZW365ARqAIt9K+xjdK1B2WUDEjQSfETkOCT8bxFq/59LqrN3cMLUtTgmDBaygw==" 1058 | }, 1059 | "node_modules/it-to-stream": { 1060 | "version": "1.0.0", 1061 | "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-1.0.0.tgz", 1062 | "integrity": "sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA==", 1063 | "dependencies": { 1064 | "buffer": "^6.0.3", 1065 | "fast-fifo": "^1.0.0", 1066 | "get-iterator": "^1.0.2", 1067 | "p-defer": "^3.0.0", 1068 | "p-fifo": "^1.0.0", 1069 | "readable-stream": "^3.6.0" 1070 | } 1071 | }, 1072 | "node_modules/js-yaml": { 1073 | "version": "3.14.1", 1074 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", 1075 | "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", 1076 | "dependencies": { 1077 | "argparse": "^1.0.7", 1078 | "esprima": "^4.0.0" 1079 | }, 1080 | "bin": { 1081 | "js-yaml": "bin/js-yaml.js" 1082 | } 1083 | }, 1084 | "node_modules/json-parse-better-errors": { 1085 | "version": "1.0.2", 1086 | "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", 1087 | "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" 1088 | }, 1089 | "node_modules/lodash.camelcase": { 1090 | "version": "4.3.0", 1091 | "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", 1092 | "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" 1093 | }, 1094 | "node_modules/lodash.get": { 1095 | "version": "4.4.2", 1096 | "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", 1097 | "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==" 1098 | }, 1099 | "node_modules/lodash.kebabcase": { 1100 | "version": "4.1.1", 1101 | "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", 1102 | "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==" 1103 | }, 1104 | "node_modules/lodash.lowercase": { 1105 | "version": "4.3.0", 1106 | "resolved": "https://registry.npmjs.org/lodash.lowercase/-/lodash.lowercase-4.3.0.tgz", 1107 | "integrity": "sha512-UcvP1IZYyDKyEL64mmrwoA1AbFu5ahojhTtkOUr1K9dbuxzS9ev8i4TxMMGCqRC9TE8uDaSoufNAXxRPNTseVA==" 1108 | }, 1109 | "node_modules/lodash.lowerfirst": { 1110 | "version": "4.3.1", 1111 | "resolved": "https://registry.npmjs.org/lodash.lowerfirst/-/lodash.lowerfirst-4.3.1.tgz", 1112 | "integrity": "sha512-UUKX7VhP1/JL54NXg2aq/E1Sfnjjes8fNYTNkPU8ZmsaVeBvPHKdbNaN79Re5XRL01u6wbq3j0cbYZj71Fcu5w==" 1113 | }, 1114 | "node_modules/lodash.pad": { 1115 | "version": "4.5.1", 1116 | "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.5.1.tgz", 1117 | "integrity": "sha512-mvUHifnLqM+03YNzeTBS1/Gr6JRFjd3rRx88FHWUvamVaT9k2O/kXha3yBSOwB9/DTQrSTLJNHvLBBt2FdX7Mg==" 1118 | }, 1119 | "node_modules/lodash.padend": { 1120 | "version": "4.6.1", 1121 | "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", 1122 | "integrity": "sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw==" 1123 | }, 1124 | "node_modules/lodash.padstart": { 1125 | "version": "4.6.1", 1126 | "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz", 1127 | "integrity": "sha512-sW73O6S8+Tg66eY56DBk85aQzzUJDtpoXFBgELMd5P/SotAguo+1kYO6RuYgXxA4HJH3LFTFPASX6ET6bjfriw==" 1128 | }, 1129 | "node_modules/lodash.repeat": { 1130 | "version": "4.1.0", 1131 | "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-4.1.0.tgz", 1132 | "integrity": "sha512-eWsgQW89IewS95ZOcr15HHCX6FVDxq3f2PNUIng3fyzsPev9imFQxIYdFZ6crl8L56UR6ZlGDLcEb3RZsCSSqw==" 1133 | }, 1134 | "node_modules/lodash.snakecase": { 1135 | "version": "4.1.1", 1136 | "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", 1137 | "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==" 1138 | }, 1139 | "node_modules/lodash.startcase": { 1140 | "version": "4.4.0", 1141 | "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", 1142 | "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==" 1143 | }, 1144 | "node_modules/lodash.trim": { 1145 | "version": "4.5.1", 1146 | "resolved": "https://registry.npmjs.org/lodash.trim/-/lodash.trim-4.5.1.tgz", 1147 | "integrity": "sha512-nJAlRl/K+eiOehWKDzoBVrSMhK0K3A3YQsUNXHQa5yIrKBAhsZgSu3KoAFoFT+mEgiyBHddZ0pRk1ITpIp90Wg==" 1148 | }, 1149 | "node_modules/lodash.trimend": { 1150 | "version": "4.5.1", 1151 | "resolved": "https://registry.npmjs.org/lodash.trimend/-/lodash.trimend-4.5.1.tgz", 1152 | "integrity": "sha512-lsD+k73XztDsMBKPKvzHXRKFNMohTjoTKIIo4ADLn5dA65LZ1BqlAvSXhR2rPEC3BgAUQnzMnorqDtqn2z4IHA==" 1153 | }, 1154 | "node_modules/lodash.trimstart": { 1155 | "version": "4.5.1", 1156 | "resolved": "https://registry.npmjs.org/lodash.trimstart/-/lodash.trimstart-4.5.1.tgz", 1157 | "integrity": "sha512-b/+D6La8tU76L/61/aN0jULWHkT0EeJCmVstPBn/K9MtD2qBW83AsBNrr63dKuWYwVMO7ucv13QNO/Ek/2RKaQ==" 1158 | }, 1159 | "node_modules/lodash.uppercase": { 1160 | "version": "4.3.0", 1161 | "resolved": "https://registry.npmjs.org/lodash.uppercase/-/lodash.uppercase-4.3.0.tgz", 1162 | "integrity": "sha512-+Nbnxkj7s8K5U8z6KnEYPGUOGp3woZbB7Ecs7v3LkkjLQSm2kP9SKIILitN1ktn2mB/tmM9oSlku06I+/lH7QA==" 1163 | }, 1164 | "node_modules/lodash.upperfirst": { 1165 | "version": "4.3.1", 1166 | "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", 1167 | "integrity": "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==" 1168 | }, 1169 | "node_modules/log-symbols": { 1170 | "version": "2.2.0", 1171 | "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", 1172 | "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", 1173 | "dependencies": { 1174 | "chalk": "^2.0.1" 1175 | }, 1176 | "engines": { 1177 | "node": ">=4" 1178 | } 1179 | }, 1180 | "node_modules/long": { 1181 | "version": "4.0.0", 1182 | "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", 1183 | "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" 1184 | }, 1185 | "node_modules/merge-options": { 1186 | "version": "3.0.4", 1187 | "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", 1188 | "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==", 1189 | "dependencies": { 1190 | "is-plain-obj": "^2.1.0" 1191 | }, 1192 | "engines": { 1193 | "node": ">=10" 1194 | } 1195 | }, 1196 | "node_modules/mime-db": { 1197 | "version": "1.52.0", 1198 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", 1199 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", 1200 | "engines": { 1201 | "node": ">= 0.6" 1202 | } 1203 | }, 1204 | "node_modules/mime-types": { 1205 | "version": "2.1.35", 1206 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", 1207 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", 1208 | "dependencies": { 1209 | "mime-db": "1.52.0" 1210 | }, 1211 | "engines": { 1212 | "node": ">= 0.6" 1213 | } 1214 | }, 1215 | "node_modules/mimic-fn": { 1216 | "version": "1.2.0", 1217 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", 1218 | "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", 1219 | "engines": { 1220 | "node": ">=4" 1221 | } 1222 | }, 1223 | "node_modules/minimatch": { 1224 | "version": "3.1.2", 1225 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 1226 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 1227 | "dependencies": { 1228 | "brace-expansion": "^1.1.7" 1229 | }, 1230 | "engines": { 1231 | "node": "*" 1232 | } 1233 | }, 1234 | "node_modules/ms": { 1235 | "version": "2.1.2", 1236 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 1237 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 1238 | }, 1239 | "node_modules/multiaddr": { 1240 | "version": "10.0.1", 1241 | "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-10.0.1.tgz", 1242 | "integrity": "sha512-G5upNcGzEGuTHkzxezPrrD6CaIHR9uo+7MwqhNVcXTs33IInon4y7nMiGxl2CY5hG7chvYQUQhz5V52/Qe3cbg==", 1243 | "deprecated": "This module is deprecated, please upgrade to @multiformats/multiaddr", 1244 | "dependencies": { 1245 | "dns-over-http-resolver": "^1.2.3", 1246 | "err-code": "^3.0.1", 1247 | "is-ip": "^3.1.0", 1248 | "multiformats": "^9.4.5", 1249 | "uint8arrays": "^3.0.0", 1250 | "varint": "^6.0.0" 1251 | } 1252 | }, 1253 | "node_modules/multiaddr-to-uri": { 1254 | "version": "8.0.0", 1255 | "resolved": "https://registry.npmjs.org/multiaddr-to-uri/-/multiaddr-to-uri-8.0.0.tgz", 1256 | "integrity": "sha512-dq4p/vsOOUdVEd1J1gl+R2GFrXJQH8yjLtz4hodqdVbieg39LvBOdMQRdQnfbg5LSM/q1BYNVf5CBbwZFFqBgA==", 1257 | "deprecated": "This module is deprecated, please upgrade to @multiformats/multiaddr-to-uri", 1258 | "dependencies": { 1259 | "multiaddr": "^10.0.0" 1260 | } 1261 | }, 1262 | "node_modules/multiaddr/node_modules/uint8arrays": { 1263 | "version": "3.1.1", 1264 | "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", 1265 | "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", 1266 | "dependencies": { 1267 | "multiformats": "^9.4.2" 1268 | } 1269 | }, 1270 | "node_modules/multiformats": { 1271 | "version": "9.9.0", 1272 | "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", 1273 | "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==" 1274 | }, 1275 | "node_modules/nanoid": { 1276 | "version": "3.3.6", 1277 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", 1278 | "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", 1279 | "funding": [ 1280 | { 1281 | "type": "github", 1282 | "url": "https://github.com/sponsors/ai" 1283 | } 1284 | ], 1285 | "bin": { 1286 | "nanoid": "bin/nanoid.cjs" 1287 | }, 1288 | "engines": { 1289 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 1290 | } 1291 | }, 1292 | "node_modules/native-abort-controller": { 1293 | "version": "1.0.4", 1294 | "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-1.0.4.tgz", 1295 | "integrity": "sha512-zp8yev7nxczDJMoP6pDxyD20IU0T22eX8VwN2ztDccKvSZhRaV33yP1BGwKSZfXuqWUzsXopVFjBdau9OOAwMQ==", 1296 | "peerDependencies": { 1297 | "abort-controller": "*" 1298 | } 1299 | }, 1300 | "node_modules/native-fetch": { 1301 | "version": "3.0.0", 1302 | "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-3.0.0.tgz", 1303 | "integrity": "sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==", 1304 | "peerDependencies": { 1305 | "node-fetch": "*" 1306 | } 1307 | }, 1308 | "node_modules/nice-try": { 1309 | "version": "1.0.5", 1310 | "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", 1311 | "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" 1312 | }, 1313 | "node_modules/node-fetch": { 1314 | "name": "@achingbrain/node-fetch", 1315 | "version": "2.6.7", 1316 | "resolved": "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz", 1317 | "integrity": "sha512-iTASGs+HTFK5E4ZqcMsHmeJ4zodyq8L38lZV33jwqcBJYoUt3HjN4+ot+O9/0b+ke8ddE7UgOtVuZN/OkV19/g==", 1318 | "license": "MIT", 1319 | "engines": { 1320 | "node": "4.x || >=6.0.0" 1321 | } 1322 | }, 1323 | "node_modules/npm-run-path": { 1324 | "version": "2.0.2", 1325 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", 1326 | "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", 1327 | "dependencies": { 1328 | "path-key": "^2.0.0" 1329 | }, 1330 | "engines": { 1331 | "node": ">=4" 1332 | } 1333 | }, 1334 | "node_modules/object-assign": { 1335 | "version": "4.1.1", 1336 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 1337 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", 1338 | "engines": { 1339 | "node": ">=0.10.0" 1340 | } 1341 | }, 1342 | "node_modules/once": { 1343 | "version": "1.4.0", 1344 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1345 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 1346 | "dependencies": { 1347 | "wrappy": "1" 1348 | } 1349 | }, 1350 | "node_modules/onetime": { 1351 | "version": "2.0.1", 1352 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", 1353 | "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", 1354 | "dependencies": { 1355 | "mimic-fn": "^1.0.0" 1356 | }, 1357 | "engines": { 1358 | "node": ">=4" 1359 | } 1360 | }, 1361 | "node_modules/ora": { 1362 | "version": "3.4.0", 1363 | "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", 1364 | "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", 1365 | "dependencies": { 1366 | "chalk": "^2.4.2", 1367 | "cli-cursor": "^2.1.0", 1368 | "cli-spinners": "^2.0.0", 1369 | "log-symbols": "^2.2.0", 1370 | "strip-ansi": "^5.2.0", 1371 | "wcwidth": "^1.0.1" 1372 | }, 1373 | "engines": { 1374 | "node": ">=6" 1375 | } 1376 | }, 1377 | "node_modules/p-defer": { 1378 | "version": "3.0.0", 1379 | "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", 1380 | "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==", 1381 | "engines": { 1382 | "node": ">=8" 1383 | } 1384 | }, 1385 | "node_modules/p-fifo": { 1386 | "version": "1.0.0", 1387 | "resolved": "https://registry.npmjs.org/p-fifo/-/p-fifo-1.0.0.tgz", 1388 | "integrity": "sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A==", 1389 | "dependencies": { 1390 | "fast-fifo": "^1.0.0", 1391 | "p-defer": "^3.0.0" 1392 | } 1393 | }, 1394 | "node_modules/p-finally": { 1395 | "version": "1.0.0", 1396 | "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", 1397 | "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", 1398 | "engines": { 1399 | "node": ">=4" 1400 | } 1401 | }, 1402 | "node_modules/parse-duration": { 1403 | "version": "1.1.0", 1404 | "resolved": "https://registry.npmjs.org/parse-duration/-/parse-duration-1.1.0.tgz", 1405 | "integrity": "sha512-z6t9dvSJYaPoQq7quMzdEagSFtpGu+utzHqqxmpVWNNZRIXnvqyCvn9XsTdh7c/w0Bqmdz3RB3YnRaKtpRtEXQ==" 1406 | }, 1407 | "node_modules/parse-json": { 1408 | "version": "4.0.0", 1409 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", 1410 | "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", 1411 | "dependencies": { 1412 | "error-ex": "^1.3.1", 1413 | "json-parse-better-errors": "^1.0.1" 1414 | }, 1415 | "engines": { 1416 | "node": ">=4" 1417 | } 1418 | }, 1419 | "node_modules/path-is-absolute": { 1420 | "version": "1.0.1", 1421 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1422 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", 1423 | "engines": { 1424 | "node": ">=0.10.0" 1425 | } 1426 | }, 1427 | "node_modules/path-key": { 1428 | "version": "2.0.1", 1429 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", 1430 | "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", 1431 | "engines": { 1432 | "node": ">=4" 1433 | } 1434 | }, 1435 | "node_modules/pluralize": { 1436 | "version": "8.0.0", 1437 | "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", 1438 | "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", 1439 | "engines": { 1440 | "node": ">=4" 1441 | } 1442 | }, 1443 | "node_modules/prettier": { 1444 | "version": "1.19.1", 1445 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", 1446 | "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", 1447 | "dev": true, 1448 | "bin": { 1449 | "prettier": "bin-prettier.js" 1450 | }, 1451 | "engines": { 1452 | "node": ">=4" 1453 | } 1454 | }, 1455 | "node_modules/protobufjs": { 1456 | "version": "6.11.3", 1457 | "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", 1458 | "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", 1459 | "hasInstallScript": true, 1460 | "dependencies": { 1461 | "@protobufjs/aspromise": "^1.1.2", 1462 | "@protobufjs/base64": "^1.1.2", 1463 | "@protobufjs/codegen": "^2.0.4", 1464 | "@protobufjs/eventemitter": "^1.1.0", 1465 | "@protobufjs/fetch": "^1.1.0", 1466 | "@protobufjs/float": "^1.0.2", 1467 | "@protobufjs/inquire": "^1.1.0", 1468 | "@protobufjs/path": "^1.1.2", 1469 | "@protobufjs/pool": "^1.1.0", 1470 | "@protobufjs/utf8": "^1.1.0", 1471 | "@types/long": "^4.0.1", 1472 | "@types/node": ">=13.7.0", 1473 | "long": "^4.0.0" 1474 | }, 1475 | "bin": { 1476 | "pbjs": "bin/pbjs", 1477 | "pbts": "bin/pbts" 1478 | } 1479 | }, 1480 | "node_modules/pump": { 1481 | "version": "3.0.0", 1482 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", 1483 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", 1484 | "dependencies": { 1485 | "end-of-stream": "^1.1.0", 1486 | "once": "^1.3.1" 1487 | } 1488 | }, 1489 | "node_modules/ramda": { 1490 | "version": "0.25.0", 1491 | "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.25.0.tgz", 1492 | "integrity": "sha512-GXpfrYVPwx3K7RQ6aYT8KPS8XViSXUVJT1ONhoKPE9VAleW42YE+U+8VEyGWt41EnEQW7gwecYJriTI0pKoecQ==" 1493 | }, 1494 | "node_modules/ramdasauce": { 1495 | "version": "2.1.3", 1496 | "resolved": "https://registry.npmjs.org/ramdasauce/-/ramdasauce-2.1.3.tgz", 1497 | "integrity": "sha512-Ml3CPim4SKwmg5g9UI77lnRSeKr/kQw7YhQ6rfdMcBYy6DMlwmkEwQqjygJ3OhxPR+NfFfpjKl3Tf8GXckaqqg==", 1498 | "dependencies": { 1499 | "ramda": "^0.24.1" 1500 | } 1501 | }, 1502 | "node_modules/ramdasauce/node_modules/ramda": { 1503 | "version": "0.24.1", 1504 | "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.24.1.tgz", 1505 | "integrity": "sha512-HEm619G8PaZMfkqCa23qiOe7r3R0brPu7ZgOsgKUsnvLhd0qhc/vTjkUovomgPWa5ECBa08fJZixth9LaoBo5w==" 1506 | }, 1507 | "node_modules/react-native-fetch-api": { 1508 | "version": "2.0.0", 1509 | "resolved": "https://registry.npmjs.org/react-native-fetch-api/-/react-native-fetch-api-2.0.0.tgz", 1510 | "integrity": "sha512-GOA8tc1EVYLnHvma/TU9VTgLOyralO7eATRuCDchQveXW9Fr9vXygyq9iwqmM7YRZ8qRJfEt9xOS7OYMdJvRFw==", 1511 | "dependencies": { 1512 | "p-defer": "^3.0.0" 1513 | } 1514 | }, 1515 | "node_modules/readable-stream": { 1516 | "version": "3.6.2", 1517 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", 1518 | "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", 1519 | "dependencies": { 1520 | "inherits": "^2.0.3", 1521 | "string_decoder": "^1.1.1", 1522 | "util-deprecate": "^1.0.1" 1523 | }, 1524 | "engines": { 1525 | "node": ">= 6" 1526 | } 1527 | }, 1528 | "node_modules/receptacle": { 1529 | "version": "1.3.2", 1530 | "resolved": "https://registry.npmjs.org/receptacle/-/receptacle-1.3.2.tgz", 1531 | "integrity": "sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==", 1532 | "dependencies": { 1533 | "ms": "^2.1.1" 1534 | } 1535 | }, 1536 | "node_modules/resolve-from": { 1537 | "version": "3.0.0", 1538 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", 1539 | "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", 1540 | "engines": { 1541 | "node": ">=4" 1542 | } 1543 | }, 1544 | "node_modules/restore-cursor": { 1545 | "version": "2.0.0", 1546 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", 1547 | "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", 1548 | "dependencies": { 1549 | "onetime": "^2.0.0", 1550 | "signal-exit": "^3.0.2" 1551 | }, 1552 | "engines": { 1553 | "node": ">=4" 1554 | } 1555 | }, 1556 | "node_modules/retimer": { 1557 | "version": "2.0.0", 1558 | "resolved": "https://registry.npmjs.org/retimer/-/retimer-2.0.0.tgz", 1559 | "integrity": "sha512-KLXY85WkEq2V2bKex/LOO1ViXVn2KGYe4PYysAdYdjmraYIUsVkXu8O4am+8+5UbaaGl1qho4aqAAPHNQ4GSbg==" 1560 | }, 1561 | "node_modules/rimraf": { 1562 | "version": "2.7.1", 1563 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", 1564 | "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", 1565 | "dependencies": { 1566 | "glob": "^7.1.3" 1567 | }, 1568 | "bin": { 1569 | "rimraf": "bin.js" 1570 | } 1571 | }, 1572 | "node_modules/safe-buffer": { 1573 | "version": "5.2.1", 1574 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 1575 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 1576 | "funding": [ 1577 | { 1578 | "type": "github", 1579 | "url": "https://github.com/sponsors/feross" 1580 | }, 1581 | { 1582 | "type": "patreon", 1583 | "url": "https://www.patreon.com/feross" 1584 | }, 1585 | { 1586 | "type": "consulting", 1587 | "url": "https://feross.org/support" 1588 | } 1589 | ] 1590 | }, 1591 | "node_modules/safer-buffer": { 1592 | "version": "2.1.2", 1593 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 1594 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 1595 | }, 1596 | "node_modules/semver": { 1597 | "version": "6.3.1", 1598 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", 1599 | "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", 1600 | "bin": { 1601 | "semver": "bin/semver.js" 1602 | } 1603 | }, 1604 | "node_modules/shebang-command": { 1605 | "version": "1.2.0", 1606 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", 1607 | "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", 1608 | "dependencies": { 1609 | "shebang-regex": "^1.0.0" 1610 | }, 1611 | "engines": { 1612 | "node": ">=0.10.0" 1613 | } 1614 | }, 1615 | "node_modules/shebang-regex": { 1616 | "version": "1.0.0", 1617 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", 1618 | "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", 1619 | "engines": { 1620 | "node": ">=0.10.0" 1621 | } 1622 | }, 1623 | "node_modules/signal-exit": { 1624 | "version": "3.0.7", 1625 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", 1626 | "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" 1627 | }, 1628 | "node_modules/sprintf-js": { 1629 | "version": "1.0.3", 1630 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 1631 | "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" 1632 | }, 1633 | "node_modules/stream-to-it": { 1634 | "version": "0.2.4", 1635 | "resolved": "https://registry.npmjs.org/stream-to-it/-/stream-to-it-0.2.4.tgz", 1636 | "integrity": "sha512-4vEbkSs83OahpmBybNJXlJd7d6/RxzkkSdT3I0mnGt79Xd2Kk+e1JqbvAvsQfCeKj3aKb0QIWkyK3/n0j506vQ==", 1637 | "dependencies": { 1638 | "get-iterator": "^1.0.2" 1639 | } 1640 | }, 1641 | "node_modules/string_decoder": { 1642 | "version": "1.3.0", 1643 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", 1644 | "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", 1645 | "dependencies": { 1646 | "safe-buffer": "~5.2.0" 1647 | } 1648 | }, 1649 | "node_modules/string-width": { 1650 | "version": "2.1.1", 1651 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", 1652 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", 1653 | "dependencies": { 1654 | "is-fullwidth-code-point": "^2.0.0", 1655 | "strip-ansi": "^4.0.0" 1656 | }, 1657 | "engines": { 1658 | "node": ">=4" 1659 | } 1660 | }, 1661 | "node_modules/string-width/node_modules/ansi-regex": { 1662 | "version": "3.0.1", 1663 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", 1664 | "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", 1665 | "engines": { 1666 | "node": ">=4" 1667 | } 1668 | }, 1669 | "node_modules/string-width/node_modules/strip-ansi": { 1670 | "version": "4.0.0", 1671 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 1672 | "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", 1673 | "dependencies": { 1674 | "ansi-regex": "^3.0.0" 1675 | }, 1676 | "engines": { 1677 | "node": ">=4" 1678 | } 1679 | }, 1680 | "node_modules/strip-ansi": { 1681 | "version": "5.2.0", 1682 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 1683 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 1684 | "dependencies": { 1685 | "ansi-regex": "^4.1.0" 1686 | }, 1687 | "engines": { 1688 | "node": ">=6" 1689 | } 1690 | }, 1691 | "node_modules/strip-eof": { 1692 | "version": "1.0.0", 1693 | "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", 1694 | "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", 1695 | "engines": { 1696 | "node": ">=0.10.0" 1697 | } 1698 | }, 1699 | "node_modules/supports-color": { 1700 | "version": "5.5.0", 1701 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 1702 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 1703 | "dependencies": { 1704 | "has-flag": "^3.0.0" 1705 | }, 1706 | "engines": { 1707 | "node": ">=4" 1708 | } 1709 | }, 1710 | "node_modules/timeout-abort-controller": { 1711 | "version": "1.1.1", 1712 | "resolved": "https://registry.npmjs.org/timeout-abort-controller/-/timeout-abort-controller-1.1.1.tgz", 1713 | "integrity": "sha512-BsF9i3NAJag6T0ZEjki9j654zoafI2X6ayuNd6Tp8+Ul6Tr5s4jo973qFeiWrRSweqvskC+AHDKUmIW4b7pdhQ==", 1714 | "dependencies": { 1715 | "abort-controller": "^3.0.0", 1716 | "retimer": "^2.0.0" 1717 | } 1718 | }, 1719 | "node_modules/uint8arrays": { 1720 | "version": "3.1.1", 1721 | "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", 1722 | "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", 1723 | "dependencies": { 1724 | "multiformats": "^9.4.2" 1725 | } 1726 | }, 1727 | "node_modules/util-deprecate": { 1728 | "version": "1.0.2", 1729 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 1730 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" 1731 | }, 1732 | "node_modules/varint": { 1733 | "version": "6.0.0", 1734 | "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", 1735 | "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" 1736 | }, 1737 | "node_modules/wcwidth": { 1738 | "version": "1.0.1", 1739 | "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", 1740 | "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", 1741 | "dependencies": { 1742 | "defaults": "^1.0.3" 1743 | } 1744 | }, 1745 | "node_modules/which": { 1746 | "version": "1.3.1", 1747 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", 1748 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", 1749 | "dependencies": { 1750 | "isexe": "^2.0.0" 1751 | }, 1752 | "bin": { 1753 | "which": "bin/which" 1754 | } 1755 | }, 1756 | "node_modules/wrappy": { 1757 | "version": "1.0.2", 1758 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1759 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" 1760 | }, 1761 | "node_modules/yargs-parser": { 1762 | "version": "12.0.0", 1763 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-12.0.0.tgz", 1764 | "integrity": "sha512-WQM8GrbF5TKiACr7iE3I2ZBNC7qC9taKPMfjJaMD2LkOJQhIctASxKXdFAOPim/m47kgAQBVIaPlFjnRdkol7w==", 1765 | "dependencies": { 1766 | "camelcase": "^5.0.0", 1767 | "decamelize": "^1.2.0" 1768 | } 1769 | } 1770 | } 1771 | } 1772 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@graphprotocol/ipfs-sync", 3 | "version": "1.1.2", 4 | "author": "Graph Protocol, Inc.", 5 | "description": "Script to sync files from one IPFS node to another", 6 | "homepage": "https://github.com/graphprotocol/ipfs-sync#readme", 7 | "license": "MIT", 8 | "repository": { 9 | "type": "git", 10 | "url": "git+https://github.com/graphprotocol/ipfs-sync.git" 11 | }, 12 | "bugs": { 13 | "url": "https://github.com/graphprotocol/ipfs-sync/issues" 14 | }, 15 | "bin": "bin/ipfs-sync", 16 | "dependencies": { 17 | "batch-promises": "^0.0.3", 18 | "chalk": "^2.4.2", 19 | "form-data": "^2.5.1", 20 | "gluegun": "^3.3.4", 21 | "ipfs-http-client": "^52.0.0" 22 | }, 23 | "devDependencies": { 24 | "prettier": "^1.18.2" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/cli.js: -------------------------------------------------------------------------------- 1 | const { build } = require('gluegun') 2 | 3 | const run = async argv => { 4 | const cli = build() 5 | .brand('ipfs-sync') 6 | .src(__dirname) 7 | .plugins('./node_modules', { matching: 'ipfs-sync-*', hidden: true }) 8 | .help() 9 | .version() 10 | .defaultCommand() 11 | .create() 12 | 13 | return await cli.run(argv) 14 | } 15 | 16 | module.exports = { run } 17 | -------------------------------------------------------------------------------- /src/commands/sync-files.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs') 2 | const chalk = require('chalk') 3 | const ipfs = require('../ipfs') 4 | const batchPromises = require('batch-promises'); 5 | const { CID } = require('ipfs-http-client'); 6 | 7 | const DEFAULT_RETRY_WAIT_MS = 1000; 8 | 9 | 10 | const asyncIteratorToList = async (iterator) => { 11 | const values = [] 12 | for await (const value of iterator()) { 13 | values.push(value) 14 | } 15 | return values 16 | } 17 | 18 | const collectUnsyncedFiles = async ({ fromClient, toClient, skipExisting, fileList }) => { 19 | let fromPinnedFiles = fileList ? fileList : await asyncIteratorToList(fromClient.pin.ls) 20 | 21 | // If --skip-existing is provided, we obtain a list of all pinned files from 22 | // the target node. If not, we assume none of the source files exist on the 23 | // target node yet. 24 | if (skipExisting) { 25 | let toPinnedFiles = await asyncIteratorToList(toClient.pin.ls) 26 | return fromPinnedFiles.filter( 27 | sourceFile => 28 | !toPinnedFiles.find(targetFile => sourceFile.cid.equals(targetFile.cid)), 29 | ) 30 | } else { 31 | return fromPinnedFiles 32 | } 33 | } 34 | 35 | 36 | const syncWait = (ms) => { 37 | return new Promise((resolve, _reject) => { 38 | setTimeout(() => { 39 | resolve(ms) 40 | }, ms) 41 | }) 42 | } 43 | 44 | const fetchData = async ({ print, fromClient, sourceFile, label, syncResult, retries, retryWait}) => { 45 | let file 46 | try { 47 | file = await fromClient.cat(sourceFile.cid) 48 | } catch (e) { 49 | if (retries > 0) { 50 | print.info(`${label}: Failed to retrieve file: Retrying...`) 51 | await syncWait(retryWait || DEFAULT_RETRY_WAIT_MS) 52 | return await fetchData({ print, fromClient, sourceFile, label, syncResult, retries: retries - 1, retryWait }) 53 | } else { 54 | print.warning(`${label}: Failed to retrieve file: ${e.message}`) 55 | syncResult.failedFiles.push(sourceFile.cid) 56 | throw new Error("Max retries reached.") 57 | } 58 | } 59 | 60 | return file 61 | } 62 | 63 | const HELP = ` 64 | ${chalk.bold('ipfs-sync sync-files')} [options] 65 | 66 | ${chalk.dim('Options:')} 67 | -h, --help Show usage information 68 | --from Source IPFS node 69 | --to Target IPFS node(s). It accepts a comma separated list of URLs 70 | --file-list File with one IPFS cid to sync per line 71 | --skip-existing Skip files that already exist on the target IPFS node 72 | --retries Number of times to try to download a file from Source IPFS node 73 | Set to 1 by default 74 | --retry-wait Time to wait before attempting to download a file again 75 | Set to 1000 by default 76 | ` 77 | 78 | module.exports = { 79 | description: 'Syncs files from one IPFS node to another', 80 | run: async toolbox => { 81 | let { print } = toolbox 82 | 83 | // Parse CLI parameters 84 | let { h, help, from, to, skipExisting, fileList: fileListPath, retries, retryWait } = toolbox.parameters.options 85 | 86 | // Show help text if asked for 87 | if (h || help) { 88 | print.info(HELP) 89 | return 90 | } 91 | 92 | if (!from || !to) { 93 | print.info(HELP) 94 | process.exitCode = 1 95 | return 96 | } 97 | 98 | let targets = to.split(',') 99 | let fromClient = ipfs.createIpfsClient(from) 100 | 101 | for (const [index, target] of targets.entries()) { 102 | print.info(`Syncing files`) 103 | print.info(`Source node (--from): ${from}`) 104 | targets.length > 1 ? 105 | print.info(`Target node (--to) [${index + 1}/${targets.length}]: ${target}`) : 106 | print.info(`Target node (--to): ${target}`) 107 | 108 | let toClient = ipfs.createIpfsClient(target) 109 | 110 | // Read file list from the `--list` file 111 | fileList = fileListPath 112 | ? fs 113 | .readFileSync(fileListPath, 'utf-8') 114 | .trim() 115 | .split('\n') 116 | .map(cid => ({ cid: CID.parse(cid) })) 117 | : undefined 118 | 119 | // Obtain a list of all pinned files from both nodes 120 | let unsyncedFiles = await collectUnsyncedFiles({ 121 | fromClient, 122 | toClient, 123 | fileList, 124 | skipExisting, 125 | }) 126 | 127 | print.info(`${unsyncedFiles.length} files need to be synced`) 128 | if (unsyncedFiles.length > 0) { 129 | print.info(`---`) 130 | } 131 | 132 | let syncResult = { 133 | syncedFiles: [], 134 | failedFiles: [], 135 | skippedDirectories: [], 136 | } 137 | 138 | await batchPromises( 139 | // Sync in batches of 10 files 140 | 10, 141 | // Inject file indices 142 | unsyncedFiles.map((file, index) => { 143 | file.index = index 144 | return file 145 | }), 146 | // Upload promise 147 | async sourceFile => { 148 | let cidV = 1 149 | if ((`${sourceFile.cid}`).startsWith('Qm')) { 150 | cidV = 0 151 | } 152 | 153 | let totalFiles = unsyncedFiles.length 154 | let label = `${sourceFile.index}/${totalFiles} (${sourceFile.cid})` 155 | 156 | print.info(`${label}: Syncing`) 157 | 158 | // Download file 159 | print.info(`${label}: Retrieving file`) 160 | let data 161 | try { 162 | data = await fetchData({print, fromClient, sourceFile, label, syncResult, retries, retryWait}) 163 | } catch (e) { 164 | print.warning(`${label}: Failed to retrieve file: ${e}`) 165 | return 166 | } 167 | 168 | // Upload file 169 | print.info(`${label}: Uploading file`) 170 | 171 | let targetFile 172 | try { 173 | targetFile = await toClient.add(data, {cidVersion:cidV}) 174 | } catch (e) { 175 | if (e.message.match('expected a file argument')) { 176 | print.info(`${label}: Skipping file: File is a directory`) 177 | syncResult.skippedDirectories.push(sourceFile.cid) 178 | return 179 | } else { 180 | print.error(`${label}: Failed to upload file: ${e.message}`) 181 | syncResult.failedFiles.push(sourceFile.cid) 182 | return 183 | } 184 | } 185 | 186 | // Verify integrity before and after 187 | if (sourceFile.cid.equals(targetFile.cid)) { 188 | print.info(`${label}: File synced successfully.`) 189 | syncResult.syncedFiles.push(sourceFile.cid) 190 | } else { 191 | throw new Error( 192 | `${label}, version: ${cidV}: Failed to sync file: Uploaded file cid differs: ${targetFile.cid}`, 193 | ) 194 | } 195 | }, 196 | ) 197 | 198 | print.info(`---`) 199 | print.info(`${syncResult.syncedFiles.length}/${unsyncedFiles.length} files synced`) 200 | print.info(`${syncResult.skippedDirectories.length} skipped (directories)`) 201 | print.info(`${syncResult.failedFiles.length} failed`) 202 | 203 | if (syncResult.failedFiles.length > 0) { 204 | process.exitCode = 1 205 | } 206 | } 207 | }, 208 | } 209 | -------------------------------------------------------------------------------- /src/ipfs.js: -------------------------------------------------------------------------------- 1 | const { create } = require('ipfs-http-client') 2 | const toolbox = require('gluegun/toolbox') 3 | 4 | const createIpfsClient = node => { 5 | let url 6 | try { 7 | url = new URL(node) 8 | } catch (e) { 9 | throw new Error(`Invalid IPFS URL: ${node} 10 | 11 | The URL must be of the following format: http(s)://host[:port]/[path]`) 12 | } 13 | 14 | // Connect to the IPFS node (if a node address was provided) 15 | return create(node.replace(/\/$/, '') + '/api/v0') 16 | } 17 | 18 | module.exports = { 19 | createIpfsClient, 20 | } 21 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@ipld/dag-cbor@^6.0.5": 6 | "integrity" "sha512-Vm3VTSTwlmGV92a3C5aeY+r2A18zbH2amehNhsX8PBa3muXICaWrN8Uri85A5hLH7D7ElhE8PdjxD6kNqUmTZA==" 7 | "resolved" "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-6.0.15.tgz" 8 | "version" "6.0.15" 9 | dependencies: 10 | "cborg" "^1.5.4" 11 | "multiformats" "^9.5.4" 12 | 13 | "@ipld/dag-pb@^2.1.3": 14 | "integrity" "sha512-ZBnf2fuX9y3KccADURG5vb9FaOeMjFkCrNysB0PtftME/4iCTjxfaLoNq/IAh5fTqUOMXvryN6Jyka4ZGuMLIg==" 15 | "resolved" "https://registry.npmjs.org/@ipld/dag-pb/-/dag-pb-2.1.18.tgz" 16 | "version" "2.1.18" 17 | dependencies: 18 | "multiformats" "^9.5.4" 19 | 20 | "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": 21 | "integrity" "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" 22 | "resolved" "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz" 23 | "version" "1.1.2" 24 | 25 | "@protobufjs/base64@^1.1.2": 26 | "integrity" "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" 27 | "resolved" "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz" 28 | "version" "1.1.2" 29 | 30 | "@protobufjs/codegen@^2.0.4": 31 | "integrity" "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" 32 | "resolved" "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz" 33 | "version" "2.0.4" 34 | 35 | "@protobufjs/eventemitter@^1.1.0": 36 | "integrity" "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" 37 | "resolved" "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz" 38 | "version" "1.1.0" 39 | 40 | "@protobufjs/fetch@^1.1.0": 41 | "integrity" "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==" 42 | "resolved" "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz" 43 | "version" "1.1.0" 44 | dependencies: 45 | "@protobufjs/aspromise" "^1.1.1" 46 | "@protobufjs/inquire" "^1.1.0" 47 | 48 | "@protobufjs/float@^1.0.2": 49 | "integrity" "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" 50 | "resolved" "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz" 51 | "version" "1.0.2" 52 | 53 | "@protobufjs/inquire@^1.1.0": 54 | "integrity" "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" 55 | "resolved" "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz" 56 | "version" "1.1.0" 57 | 58 | "@protobufjs/path@^1.1.2": 59 | "integrity" "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" 60 | "resolved" "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz" 61 | "version" "1.1.2" 62 | 63 | "@protobufjs/pool@^1.1.0": 64 | "integrity" "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" 65 | "resolved" "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz" 66 | "version" "1.1.0" 67 | 68 | "@protobufjs/utf8@^1.1.0": 69 | "integrity" "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" 70 | "resolved" "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz" 71 | "version" "1.1.0" 72 | 73 | "@types/long@^4.0.1": 74 | "integrity" "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" 75 | "resolved" "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz" 76 | "version" "4.0.2" 77 | 78 | "@types/minimatch@^3.0.4": 79 | "integrity" "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" 80 | "resolved" "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz" 81 | "version" "3.0.5" 82 | 83 | "@types/node@>=13.7.0": 84 | "integrity" "sha512-GXZxEtOxYGFchyUzxvKI14iff9KZ2DI+A6a37o6EQevtg6uO9t+aUZKcaC1Te5Ng1OnLM7K9NVVj+FbecD9cJg==" 85 | "resolved" "https://registry.npmjs.org/@types/node/-/node-18.17.0.tgz" 86 | "version" "18.17.0" 87 | 88 | "abort-controller@*", "abort-controller@^3.0.0": 89 | "integrity" "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==" 90 | "resolved" "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz" 91 | "version" "3.0.0" 92 | dependencies: 93 | "event-target-shim" "^5.0.0" 94 | 95 | "ansi-colors@^3.2.1": 96 | "integrity" "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==" 97 | "resolved" "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz" 98 | "version" "3.2.4" 99 | 100 | "ansi-regex@^3.0.0": 101 | "integrity" "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==" 102 | "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz" 103 | "version" "3.0.1" 104 | 105 | "ansi-regex@^4.1.0": 106 | "integrity" "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==" 107 | "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz" 108 | "version" "4.1.1" 109 | 110 | "ansi-styles@^3.2.1": 111 | "integrity" "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==" 112 | "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" 113 | "version" "3.2.1" 114 | dependencies: 115 | "color-convert" "^1.9.0" 116 | 117 | "any-signal@^2.1.0", "any-signal@^2.1.2": 118 | "integrity" "sha512-B+rDnWasMi/eWcajPcCWSlYc7muXOrcYrqgyzcdKisl2H/WTlQ0gip1KyQfr0ZlxJdsuWCj/LWwQm7fhyhRfIQ==" 119 | "resolved" "https://registry.npmjs.org/any-signal/-/any-signal-2.1.2.tgz" 120 | "version" "2.1.2" 121 | dependencies: 122 | "abort-controller" "^3.0.0" 123 | "native-abort-controller" "^1.0.3" 124 | 125 | "apisauce@^1.0.1": 126 | "integrity" "sha512-gKC8qb/bDJsPsnEXLZnXJ7gVx7dh87CEVNeIwv1dvaffnXoh5GHwac5pWR1P2broLiVj/fqFMQvLDDt/RhjiqA==" 127 | "resolved" "https://registry.npmjs.org/apisauce/-/apisauce-1.1.5.tgz" 128 | "version" "1.1.5" 129 | dependencies: 130 | "axios" "^0.21.2" 131 | "ramda" "^0.25.0" 132 | 133 | "app-module-path@^2.2.0": 134 | "integrity" "sha512-gkco+qxENJV+8vFcDiiFhuoSvRXb2a/QPqpSoWhVz829VNJfOTnELbBmPmNKFxf3xdNnw4DWCkzkDaavcX/1YQ==" 135 | "resolved" "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz" 136 | "version" "2.2.0" 137 | 138 | "argparse@^1.0.7": 139 | "integrity" "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==" 140 | "resolved" "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" 141 | "version" "1.0.10" 142 | dependencies: 143 | "sprintf-js" "~1.0.2" 144 | 145 | "asynckit@^0.4.0": 146 | "integrity" "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" 147 | "resolved" "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" 148 | "version" "0.4.0" 149 | 150 | "axios@^0.21.2": 151 | "integrity" "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==" 152 | "resolved" "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz" 153 | "version" "0.21.4" 154 | dependencies: 155 | "follow-redirects" "^1.14.0" 156 | 157 | "balanced-match@^1.0.0": 158 | "integrity" "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" 159 | "resolved" "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" 160 | "version" "1.0.2" 161 | 162 | "base64-js@^1.3.1": 163 | "integrity" "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" 164 | "resolved" "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" 165 | "version" "1.5.1" 166 | 167 | "batch-promises@^0.0.3": 168 | "integrity" "sha512-Xlr3HckJFoXNcLmoxHGi6okPMWGilmrFBCrgeSWjXLagVs1W3/b2huWJTm5do/um0jugbcqTGMoGS8DL4pPUpQ==" 169 | "resolved" "https://registry.npmjs.org/batch-promises/-/batch-promises-0.0.3.tgz" 170 | "version" "0.0.3" 171 | 172 | "blob-to-it@^1.0.1": 173 | "integrity" "sha512-iCmk0W4NdbrWgRRuxOriU8aM5ijeVLI61Zulsmg/lUHNr7pYjoj+U77opLefNagevtrrbMt3JQ5Qip7ar178kA==" 174 | "resolved" "https://registry.npmjs.org/blob-to-it/-/blob-to-it-1.0.4.tgz" 175 | "version" "1.0.4" 176 | dependencies: 177 | "browser-readablestream-to-it" "^1.0.3" 178 | 179 | "brace-expansion@^1.1.7": 180 | "integrity" "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==" 181 | "resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" 182 | "version" "1.1.11" 183 | dependencies: 184 | "balanced-match" "^1.0.0" 185 | "concat-map" "0.0.1" 186 | 187 | "browser-readablestream-to-it@^1.0.1", "browser-readablestream-to-it@^1.0.3": 188 | "integrity" "sha512-+12sHB+Br8HIh6VAMVEG5r3UXCyESIgDW7kzk3BjIXa43DVqVwL7GC5TW3jeh+72dtcH99pPVpw0X8i0jt+/kw==" 189 | "resolved" "https://registry.npmjs.org/browser-readablestream-to-it/-/browser-readablestream-to-it-1.0.3.tgz" 190 | "version" "1.0.3" 191 | 192 | "buffer@^6.0.1", "buffer@^6.0.3": 193 | "integrity" "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==" 194 | "resolved" "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" 195 | "version" "6.0.3" 196 | dependencies: 197 | "base64-js" "^1.3.1" 198 | "ieee754" "^1.2.1" 199 | 200 | "caller-callsite@^2.0.0": 201 | "integrity" "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==" 202 | "resolved" "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz" 203 | "version" "2.0.0" 204 | dependencies: 205 | "callsites" "^2.0.0" 206 | 207 | "caller-path@^2.0.0": 208 | "integrity" "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==" 209 | "resolved" "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz" 210 | "version" "2.0.0" 211 | dependencies: 212 | "caller-callsite" "^2.0.0" 213 | 214 | "callsites@^2.0.0": 215 | "integrity" "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==" 216 | "resolved" "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz" 217 | "version" "2.0.0" 218 | 219 | "camelcase@^5.0.0": 220 | "integrity" "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" 221 | "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" 222 | "version" "5.3.1" 223 | 224 | "cborg@^1.5.4": 225 | "integrity" "sha512-b3tFPA9pUr2zCUiCfRd2+wok2/LBSNUMKOuRRok+WlvvAgEt/PlbgPTsZUcwCOs53IJvLgTp0eotwtosE6njug==" 226 | "resolved" "https://registry.npmjs.org/cborg/-/cborg-1.10.2.tgz" 227 | "version" "1.10.2" 228 | 229 | "chalk@^2.0.1", "chalk@^2.4.2": 230 | "integrity" "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==" 231 | "resolved" "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" 232 | "version" "2.4.2" 233 | dependencies: 234 | "ansi-styles" "^3.2.1" 235 | "escape-string-regexp" "^1.0.5" 236 | "supports-color" "^5.3.0" 237 | 238 | "cli-cursor@^2.1.0": 239 | "integrity" "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==" 240 | "resolved" "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz" 241 | "version" "2.1.0" 242 | dependencies: 243 | "restore-cursor" "^2.0.0" 244 | 245 | "cli-spinners@^2.0.0": 246 | "integrity" "sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==" 247 | "resolved" "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.0.tgz" 248 | "version" "2.9.0" 249 | 250 | "cli-table3@~0.5.0": 251 | "integrity" "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==" 252 | "resolved" "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz" 253 | "version" "0.5.1" 254 | dependencies: 255 | "object-assign" "^4.1.0" 256 | "string-width" "^2.1.1" 257 | optionalDependencies: 258 | "colors" "^1.1.2" 259 | 260 | "clone@^1.0.2": 261 | "integrity" "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==" 262 | "resolved" "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz" 263 | "version" "1.0.4" 264 | 265 | "color-convert@^1.9.0": 266 | "integrity" "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==" 267 | "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" 268 | "version" "1.9.3" 269 | dependencies: 270 | "color-name" "1.1.3" 271 | 272 | "color-name@1.1.3": 273 | "integrity" "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" 274 | "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" 275 | "version" "1.1.3" 276 | 277 | "colors@^1.1.2", "colors@^1.3.3": 278 | "integrity" "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" 279 | "resolved" "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz" 280 | "version" "1.4.0" 281 | 282 | "combined-stream@^1.0.6", "combined-stream@^1.0.8": 283 | "integrity" "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==" 284 | "resolved" "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" 285 | "version" "1.0.8" 286 | dependencies: 287 | "delayed-stream" "~1.0.0" 288 | 289 | "concat-map@0.0.1": 290 | "integrity" "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" 291 | "resolved" "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" 292 | "version" "0.0.1" 293 | 294 | "cosmiconfig@5.1.0": 295 | "integrity" "sha512-kCNPvthka8gvLtzAxQXvWo4FxqRB+ftRZyPZNuab5ngvM9Y7yw7hbEysglptLgpkGX9nAOKTBVkHUAe8xtYR6Q==" 296 | "resolved" "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.1.0.tgz" 297 | "version" "5.1.0" 298 | dependencies: 299 | "import-fresh" "^2.0.0" 300 | "is-directory" "^0.3.1" 301 | "js-yaml" "^3.9.0" 302 | "lodash.get" "^4.4.2" 303 | "parse-json" "^4.0.0" 304 | 305 | "cross-spawn@^6.0.0", "cross-spawn@^6.0.5": 306 | "integrity" "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==" 307 | "resolved" "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz" 308 | "version" "6.0.5" 309 | dependencies: 310 | "nice-try" "^1.0.4" 311 | "path-key" "^2.0.1" 312 | "semver" "^5.5.0" 313 | "shebang-command" "^1.2.0" 314 | "which" "^1.2.9" 315 | 316 | "debug@^4.1.1", "debug@^4.3.1": 317 | "integrity" "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==" 318 | "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" 319 | "version" "4.3.4" 320 | dependencies: 321 | "ms" "2.1.2" 322 | 323 | "decamelize@^1.2.0": 324 | "integrity" "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==" 325 | "resolved" "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" 326 | "version" "1.2.0" 327 | 328 | "defaults@^1.0.3": 329 | "integrity" "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==" 330 | "resolved" "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz" 331 | "version" "1.0.4" 332 | dependencies: 333 | "clone" "^1.0.2" 334 | 335 | "delayed-stream@~1.0.0": 336 | "integrity" "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" 337 | "resolved" "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" 338 | "version" "1.0.0" 339 | 340 | "dns-over-http-resolver@^1.2.3": 341 | "integrity" "sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA==" 342 | "resolved" "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz" 343 | "version" "1.2.3" 344 | dependencies: 345 | "debug" "^4.3.1" 346 | "native-fetch" "^3.0.0" 347 | "receptacle" "^1.3.2" 348 | 349 | "ejs@^2.6.1": 350 | "integrity" "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==" 351 | "resolved" "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz" 352 | "version" "2.7.4" 353 | 354 | "electron-fetch@^1.7.2": 355 | "integrity" "sha512-M9qw6oUILGVrcENMSRRefE1MbHPIz0h79EKIeJWK9v563aT9Qkh8aEHPO1H5vi970wPirNY+jO9OpFoLiMsMGA==" 356 | "resolved" "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.9.1.tgz" 357 | "version" "1.9.1" 358 | dependencies: 359 | "encoding" "^0.1.13" 360 | 361 | "encoding@^0.1.13": 362 | "integrity" "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==" 363 | "resolved" "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz" 364 | "version" "0.1.13" 365 | dependencies: 366 | "iconv-lite" "^0.6.2" 367 | 368 | "end-of-stream@^1.1.0": 369 | "integrity" "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==" 370 | "resolved" "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" 371 | "version" "1.4.4" 372 | dependencies: 373 | "once" "^1.4.0" 374 | 375 | "enquirer@2.3.2": 376 | "integrity" "sha512-PLhTMPUXlnaIv9D3Cq3/Zr1xb7soeDDgunobyCmYLUG19n24dvC8i+ZZgm2DekGpDnx7JvFSHV7lxfM58PMtbA==" 377 | "resolved" "https://registry.npmjs.org/enquirer/-/enquirer-2.3.2.tgz" 378 | "version" "2.3.2" 379 | dependencies: 380 | "ansi-colors" "^3.2.1" 381 | 382 | "err-code@^3.0.1": 383 | "integrity" "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" 384 | "resolved" "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz" 385 | "version" "3.0.1" 386 | 387 | "error-ex@^1.3.1": 388 | "integrity" "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==" 389 | "resolved" "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" 390 | "version" "1.3.2" 391 | dependencies: 392 | "is-arrayish" "^0.2.1" 393 | 394 | "escape-string-regexp@^1.0.5": 395 | "integrity" "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" 396 | "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" 397 | "version" "1.0.5" 398 | 399 | "esprima@^4.0.0": 400 | "integrity" "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" 401 | "resolved" "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" 402 | "version" "4.0.1" 403 | 404 | "event-target-shim@^5.0.0": 405 | "integrity" "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" 406 | "resolved" "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz" 407 | "version" "5.0.1" 408 | 409 | "execa@^1.0.0": 410 | "integrity" "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==" 411 | "resolved" "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz" 412 | "version" "1.0.0" 413 | dependencies: 414 | "cross-spawn" "^6.0.0" 415 | "get-stream" "^4.0.0" 416 | "is-stream" "^1.1.0" 417 | "npm-run-path" "^2.0.0" 418 | "p-finally" "^1.0.0" 419 | "signal-exit" "^3.0.0" 420 | "strip-eof" "^1.0.0" 421 | 422 | "fast-fifo@^1.0.0": 423 | "integrity" "sha512-IgfweLvEpwyA4WgiQe9Nx6VV2QkML2NkvZnk1oKnIzXgXdWxuhF7zw4DvLTPZJn6PIUneiAXPF24QmoEqHTjyw==" 424 | "resolved" "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.0.tgz" 425 | "version" "1.3.0" 426 | 427 | "follow-redirects@^1.14.0": 428 | "integrity" "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" 429 | "resolved" "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz" 430 | "version" "1.15.2" 431 | 432 | "form-data@^2.5.1": 433 | "integrity" "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==" 434 | "resolved" "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz" 435 | "version" "2.5.1" 436 | dependencies: 437 | "asynckit" "^0.4.0" 438 | "combined-stream" "^1.0.6" 439 | "mime-types" "^2.1.12" 440 | 441 | "form-data@^4.0.0": 442 | "integrity" "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==" 443 | "resolved" "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" 444 | "version" "4.0.0" 445 | dependencies: 446 | "asynckit" "^0.4.0" 447 | "combined-stream" "^1.0.8" 448 | "mime-types" "^2.1.12" 449 | 450 | "fs-jetpack@^2.2.2": 451 | "integrity" "sha512-S/o9Dd7K9A7gicVU32eT8G0kHcmSu0rCVdP79P0MWInKFb8XpTc8Syhoo66k9no+HDshtlh4pUJTws8X+8fdFQ==" 452 | "resolved" "https://registry.npmjs.org/fs-jetpack/-/fs-jetpack-2.4.0.tgz" 453 | "version" "2.4.0" 454 | dependencies: 455 | "minimatch" "^3.0.2" 456 | "rimraf" "^2.6.3" 457 | 458 | "fs.realpath@^1.0.0": 459 | "integrity" "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" 460 | "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" 461 | "version" "1.0.0" 462 | 463 | "get-iterator@^1.0.2": 464 | "integrity" "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" 465 | "resolved" "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz" 466 | "version" "1.0.2" 467 | 468 | "get-stream@^4.0.0": 469 | "integrity" "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==" 470 | "resolved" "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz" 471 | "version" "4.1.0" 472 | dependencies: 473 | "pump" "^3.0.0" 474 | 475 | "glob@^7.1.3": 476 | "integrity" "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==" 477 | "resolved" "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" 478 | "version" "7.2.3" 479 | dependencies: 480 | "fs.realpath" "^1.0.0" 481 | "inflight" "^1.0.4" 482 | "inherits" "2" 483 | "minimatch" "^3.1.1" 484 | "once" "^1.3.0" 485 | "path-is-absolute" "^1.0.0" 486 | 487 | "gluegun@^3.3.4": 488 | "integrity" "sha512-+9Y6Eib0+h6wH2J2nX2y2rvizaP9x13JU0hdsYMnWeM0OB4k4/0UOdBg9YrOgdNGP7Jw8TQPz8mQM0c9s1Penw==" 489 | "resolved" "https://registry.npmjs.org/gluegun/-/gluegun-3.3.5.tgz" 490 | "version" "3.3.5" 491 | dependencies: 492 | "apisauce" "^1.0.1" 493 | "app-module-path" "^2.2.0" 494 | "cli-table3" "~0.5.0" 495 | "colors" "^1.3.3" 496 | "cosmiconfig" "5.1.0" 497 | "cross-spawn" "^6.0.5" 498 | "ejs" "^2.6.1" 499 | "enquirer" "2.3.2" 500 | "execa" "^1.0.0" 501 | "fs-jetpack" "^2.2.2" 502 | "lodash.camelcase" "^4.3.0" 503 | "lodash.kebabcase" "^4.1.1" 504 | "lodash.lowercase" "^4.3.0" 505 | "lodash.lowerfirst" "^4.3.1" 506 | "lodash.pad" "^4.5.1" 507 | "lodash.padend" "^4.6.1" 508 | "lodash.padstart" "^4.6.1" 509 | "lodash.repeat" "^4.1.0" 510 | "lodash.snakecase" "^4.1.1" 511 | "lodash.startcase" "^4.4.0" 512 | "lodash.trim" "^4.5.1" 513 | "lodash.trimend" "^4.5.1" 514 | "lodash.trimstart" "^4.5.1" 515 | "lodash.uppercase" "^4.3.0" 516 | "lodash.upperfirst" "^4.3.1" 517 | "ora" "^3.4.0" 518 | "pluralize" "^8.0.0" 519 | "ramdasauce" "^2.1.0" 520 | "semver" "^6.1.1" 521 | "which" "^1.2.14" 522 | "yargs-parser" "^12.0.0" 523 | 524 | "has-flag@^3.0.0": 525 | "integrity" "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" 526 | "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" 527 | "version" "3.0.0" 528 | 529 | "iconv-lite@^0.6.2": 530 | "integrity" "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==" 531 | "resolved" "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" 532 | "version" "0.6.3" 533 | dependencies: 534 | "safer-buffer" ">= 2.1.2 < 3.0.0" 535 | 536 | "ieee754@^1.2.1": 537 | "integrity" "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" 538 | "resolved" "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" 539 | "version" "1.2.1" 540 | 541 | "import-fresh@^2.0.0": 542 | "integrity" "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==" 543 | "resolved" "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz" 544 | "version" "2.0.0" 545 | dependencies: 546 | "caller-path" "^2.0.0" 547 | "resolve-from" "^3.0.0" 548 | 549 | "inflight@^1.0.4": 550 | "integrity" "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==" 551 | "resolved" "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" 552 | "version" "1.0.6" 553 | dependencies: 554 | "once" "^1.3.0" 555 | "wrappy" "1" 556 | 557 | "inherits@^2.0.3", "inherits@2": 558 | "integrity" "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 559 | "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" 560 | "version" "2.0.4" 561 | 562 | "interface-datastore@^5.2.0": 563 | "integrity" "sha512-nthO4C4BMJM2j9x/mT2KFa/g/sbcY8yf9j/kOBgli3u5mq9ZdPvQyDxi0OhKzr4JmoM81OYh5xcFjyebquqwvA==" 564 | "resolved" "https://registry.npmjs.org/interface-datastore/-/interface-datastore-5.2.0.tgz" 565 | "version" "5.2.0" 566 | dependencies: 567 | "err-code" "^3.0.1" 568 | "interface-store" "^1.0.2" 569 | "ipfs-utils" "^8.1.2" 570 | "it-all" "^1.0.2" 571 | "it-drain" "^1.0.1" 572 | "it-filter" "^1.0.2" 573 | "it-take" "^1.0.1" 574 | "nanoid" "^3.0.2" 575 | "uint8arrays" "^3.0.0" 576 | 577 | "interface-store@^1.0.2": 578 | "integrity" "sha512-rUBLYsgoWwxuUpnQoSUr+DR/3dH3reVeIu5aOHFZK31lAexmb++kR6ZECNRgrx6WvoaM3Akdo0A7TDrqgCzZaQ==" 579 | "resolved" "https://registry.npmjs.org/interface-store/-/interface-store-1.0.2.tgz" 580 | "version" "1.0.2" 581 | 582 | "ip-regex@^4.0.0": 583 | "integrity" "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==" 584 | "resolved" "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz" 585 | "version" "4.3.0" 586 | 587 | "ipfs-core-types@^0.7.3": 588 | "integrity" "sha512-FkmOlqhEf3yG0K8Qt7We7kqA0xKjj8pe0dmNK593I3cgMP0MQS/xjMj1CXVdGeZc5Nn5CJ+TsuQydPbJ+7Y8eQ==" 589 | "resolved" "https://registry.npmjs.org/ipfs-core-types/-/ipfs-core-types-0.7.3.tgz" 590 | "version" "0.7.3" 591 | dependencies: 592 | "interface-datastore" "^5.2.0" 593 | "multiaddr" "^10.0.0" 594 | "multiformats" "^9.4.1" 595 | 596 | "ipfs-core-utils@^0.10.5": 597 | "integrity" "sha512-WPRbMkbn/99pKMF3h8x1/c19+eTXVWOZu1+cmlc3NLR6gMlCd8KNpcq9OCAvs9G1JHx3w/FbEWHnqJm0TJMvrw==" 598 | "resolved" "https://registry.npmjs.org/ipfs-core-utils/-/ipfs-core-utils-0.10.5.tgz" 599 | "version" "0.10.5" 600 | dependencies: 601 | "any-signal" "^2.1.2" 602 | "blob-to-it" "^1.0.1" 603 | "browser-readablestream-to-it" "^1.0.1" 604 | "err-code" "^3.0.1" 605 | "ipfs-core-types" "^0.7.3" 606 | "ipfs-unixfs" "^6.0.3" 607 | "ipfs-utils" "^8.1.4" 608 | "it-all" "^1.0.4" 609 | "it-map" "^1.0.4" 610 | "it-peekable" "^1.0.2" 611 | "multiaddr" "^10.0.0" 612 | "multiaddr-to-uri" "^8.0.0" 613 | "multiformats" "^9.4.1" 614 | "parse-duration" "^1.0.0" 615 | "timeout-abort-controller" "^1.1.1" 616 | "uint8arrays" "^3.0.0" 617 | 618 | "ipfs-http-client@^52.0.0": 619 | "integrity" "sha512-vQ2z6JdBcIJvf6N1Bh/ZdpYBa7fgl0jFV8Rn3HaADhHnIZ/dou8e6nSxHkBPpw2OUyR4ljjjsDvmy2SIIQXohA==" 620 | "resolved" "https://registry.npmjs.org/ipfs-http-client/-/ipfs-http-client-52.0.5.tgz" 621 | "version" "52.0.5" 622 | dependencies: 623 | "@ipld/dag-cbor" "^6.0.5" 624 | "@ipld/dag-pb" "^2.1.3" 625 | "abort-controller" "^3.0.0" 626 | "any-signal" "^2.1.2" 627 | "debug" "^4.1.1" 628 | "err-code" "^3.0.1" 629 | "form-data" "^4.0.0" 630 | "ipfs-core-types" "^0.7.3" 631 | "ipfs-core-utils" "^0.10.5" 632 | "ipfs-utils" "^8.1.4" 633 | "it-first" "^1.0.6" 634 | "it-last" "^1.0.4" 635 | "it-to-stream" "^1.0.0" 636 | "merge-options" "^3.0.4" 637 | "multiaddr" "^10.0.0" 638 | "multiformats" "^9.4.1" 639 | "nanoid" "^3.1.12" 640 | "native-abort-controller" "^1.0.3" 641 | "parse-duration" "^1.0.0" 642 | "stream-to-it" "^0.2.2" 643 | "uint8arrays" "^3.0.0" 644 | 645 | "ipfs-unixfs@^6.0.3": 646 | "integrity" "sha512-0DQ7p0/9dRB6XCb0mVCTli33GzIzSVx5udpJuVM47tGcD+W+Bl4LsnoLswd3ggNnNEakMv1FdoFITiEnchXDqQ==" 647 | "resolved" "https://registry.npmjs.org/ipfs-unixfs/-/ipfs-unixfs-6.0.9.tgz" 648 | "version" "6.0.9" 649 | dependencies: 650 | "err-code" "^3.0.1" 651 | "protobufjs" "^6.10.2" 652 | 653 | "ipfs-utils@^8.1.2", "ipfs-utils@^8.1.4": 654 | "integrity" "sha512-V/cwb6113DrDhrjDTWImA6+zmJbpdbUkxdxmEQO7it8ykV76bBmzU1ZXSM0QR0qxGy9VW8dkUlPAC2K10VgSmw==" 655 | "resolved" "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-8.1.6.tgz" 656 | "version" "8.1.6" 657 | dependencies: 658 | "abort-controller" "^3.0.0" 659 | "any-signal" "^2.1.0" 660 | "buffer" "^6.0.1" 661 | "electron-fetch" "^1.7.2" 662 | "err-code" "^3.0.1" 663 | "is-electron" "^2.2.0" 664 | "iso-url" "^1.1.5" 665 | "it-glob" "~0.0.11" 666 | "it-to-stream" "^1.0.0" 667 | "merge-options" "^3.0.4" 668 | "nanoid" "^3.1.20" 669 | "native-abort-controller" "^1.0.3" 670 | "native-fetch" "^3.0.0" 671 | "node-fetch" "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz" 672 | "react-native-fetch-api" "^2.0.0" 673 | "stream-to-it" "^0.2.2" 674 | 675 | "is-arrayish@^0.2.1": 676 | "integrity" "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" 677 | "resolved" "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" 678 | "version" "0.2.1" 679 | 680 | "is-directory@^0.3.1": 681 | "integrity" "sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==" 682 | "resolved" "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz" 683 | "version" "0.3.1" 684 | 685 | "is-electron@^2.2.0": 686 | "integrity" "sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg==" 687 | "resolved" "https://registry.npmjs.org/is-electron/-/is-electron-2.2.2.tgz" 688 | "version" "2.2.2" 689 | 690 | "is-fullwidth-code-point@^2.0.0": 691 | "integrity" "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==" 692 | "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" 693 | "version" "2.0.0" 694 | 695 | "is-ip@^3.1.0": 696 | "integrity" "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==" 697 | "resolved" "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz" 698 | "version" "3.1.0" 699 | dependencies: 700 | "ip-regex" "^4.0.0" 701 | 702 | "is-plain-obj@^2.1.0": 703 | "integrity" "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" 704 | "resolved" "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" 705 | "version" "2.1.0" 706 | 707 | "is-stream@^1.1.0": 708 | "integrity" "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==" 709 | "resolved" "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz" 710 | "version" "1.1.0" 711 | 712 | "isexe@^2.0.0": 713 | "integrity" "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" 714 | "resolved" "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" 715 | "version" "2.0.0" 716 | 717 | "iso-url@^1.1.5": 718 | "integrity" "sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng==" 719 | "resolved" "https://registry.npmjs.org/iso-url/-/iso-url-1.2.1.tgz" 720 | "version" "1.2.1" 721 | 722 | "it-all@^1.0.2", "it-all@^1.0.4": 723 | "integrity" "sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A==" 724 | "resolved" "https://registry.npmjs.org/it-all/-/it-all-1.0.6.tgz" 725 | "version" "1.0.6" 726 | 727 | "it-drain@^1.0.1": 728 | "integrity" "sha512-r/GjkiW1bZswC04TNmUnLxa6uovme7KKwPhc+cb1hHU65E3AByypHH6Pm91WHuvqfFsm+9ws0kPtDBV3/8vmIg==" 729 | "resolved" "https://registry.npmjs.org/it-drain/-/it-drain-1.0.5.tgz" 730 | "version" "1.0.5" 731 | 732 | "it-filter@^1.0.2": 733 | "integrity" "sha512-EI3HpzUrKjTH01miLHWmhNWy3Xpbx4OXMXltgrNprL5lDpF3giVpHIouFpr5l+evXw6aOfxhnt01BIB+4VQA+w==" 734 | "resolved" "https://registry.npmjs.org/it-filter/-/it-filter-1.0.3.tgz" 735 | "version" "1.0.3" 736 | 737 | "it-first@^1.0.6": 738 | "integrity" "sha512-nvJKZoBpZD/6Rtde6FXqwDqDZGF1sCADmr2Zoc0hZsIvnE449gRFnGctxDf09Bzc/FWnHXAdaHVIetY6lrE0/g==" 739 | "resolved" "https://registry.npmjs.org/it-first/-/it-first-1.0.7.tgz" 740 | "version" "1.0.7" 741 | 742 | "it-glob@~0.0.11": 743 | "integrity" "sha512-TKKzs9CglbsihSpcwJPXN5DBUssu4akRzPlp8QJRCoLrKoaOpyY2V1qDlxx+UMivn0i114YyTd4AawWl7eqIdw==" 744 | "resolved" "https://registry.npmjs.org/it-glob/-/it-glob-0.0.14.tgz" 745 | "version" "0.0.14" 746 | dependencies: 747 | "@types/minimatch" "^3.0.4" 748 | "minimatch" "^3.0.4" 749 | 750 | "it-last@^1.0.4": 751 | "integrity" "sha512-aFGeibeiX/lM4bX3JY0OkVCFkAw8+n9lkukkLNivbJRvNz8lI3YXv5xcqhFUV2lDJiraEK3OXRDbGuevnnR67Q==" 752 | "resolved" "https://registry.npmjs.org/it-last/-/it-last-1.0.6.tgz" 753 | "version" "1.0.6" 754 | 755 | "it-map@^1.0.4": 756 | "integrity" "sha512-XT4/RM6UHIFG9IobGlQPFQUrlEKkU4eBUFG3qhWhfAdh1JfF2x11ShCrKCdmZ0OiZppPfoLuzcfA4cey6q3UAQ==" 757 | "resolved" "https://registry.npmjs.org/it-map/-/it-map-1.0.6.tgz" 758 | "version" "1.0.6" 759 | 760 | "it-peekable@^1.0.2": 761 | "integrity" "sha512-5+8zemFS+wSfIkSZyf0Zh5kNN+iGyccN02914BY4w/Dj+uoFEoPSvj5vaWn8pNZJNSxzjW0zHRxC3LUb2KWJTQ==" 762 | "resolved" "https://registry.npmjs.org/it-peekable/-/it-peekable-1.0.3.tgz" 763 | "version" "1.0.3" 764 | 765 | "it-take@^1.0.1": 766 | "integrity" "sha512-u7I6qhhxH7pSevcYNaMECtkvZW365ARqAIt9K+xjdK1B2WUDEjQSfETkOCT8bxFq/59LqrN3cMLUtTgmDBaygw==" 767 | "resolved" "https://registry.npmjs.org/it-take/-/it-take-1.0.2.tgz" 768 | "version" "1.0.2" 769 | 770 | "it-to-stream@^1.0.0": 771 | "integrity" "sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA==" 772 | "resolved" "https://registry.npmjs.org/it-to-stream/-/it-to-stream-1.0.0.tgz" 773 | "version" "1.0.0" 774 | dependencies: 775 | "buffer" "^6.0.3" 776 | "fast-fifo" "^1.0.0" 777 | "get-iterator" "^1.0.2" 778 | "p-defer" "^3.0.0" 779 | "p-fifo" "^1.0.0" 780 | "readable-stream" "^3.6.0" 781 | 782 | "js-yaml@^3.9.0": 783 | "integrity" "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==" 784 | "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" 785 | "version" "3.14.1" 786 | dependencies: 787 | "argparse" "^1.0.7" 788 | "esprima" "^4.0.0" 789 | 790 | "json-parse-better-errors@^1.0.1": 791 | "integrity" "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" 792 | "resolved" "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" 793 | "version" "1.0.2" 794 | 795 | "lodash.camelcase@^4.3.0": 796 | "integrity" "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" 797 | "resolved" "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz" 798 | "version" "4.3.0" 799 | 800 | "lodash.get@^4.4.2": 801 | "integrity" "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==" 802 | "resolved" "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz" 803 | "version" "4.4.2" 804 | 805 | "lodash.kebabcase@^4.1.1": 806 | "integrity" "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==" 807 | "resolved" "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz" 808 | "version" "4.1.1" 809 | 810 | "lodash.lowercase@^4.3.0": 811 | "integrity" "sha512-UcvP1IZYyDKyEL64mmrwoA1AbFu5ahojhTtkOUr1K9dbuxzS9ev8i4TxMMGCqRC9TE8uDaSoufNAXxRPNTseVA==" 812 | "resolved" "https://registry.npmjs.org/lodash.lowercase/-/lodash.lowercase-4.3.0.tgz" 813 | "version" "4.3.0" 814 | 815 | "lodash.lowerfirst@^4.3.1": 816 | "integrity" "sha512-UUKX7VhP1/JL54NXg2aq/E1Sfnjjes8fNYTNkPU8ZmsaVeBvPHKdbNaN79Re5XRL01u6wbq3j0cbYZj71Fcu5w==" 817 | "resolved" "https://registry.npmjs.org/lodash.lowerfirst/-/lodash.lowerfirst-4.3.1.tgz" 818 | "version" "4.3.1" 819 | 820 | "lodash.pad@^4.5.1": 821 | "integrity" "sha512-mvUHifnLqM+03YNzeTBS1/Gr6JRFjd3rRx88FHWUvamVaT9k2O/kXha3yBSOwB9/DTQrSTLJNHvLBBt2FdX7Mg==" 822 | "resolved" "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.5.1.tgz" 823 | "version" "4.5.1" 824 | 825 | "lodash.padend@^4.6.1": 826 | "integrity" "sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw==" 827 | "resolved" "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz" 828 | "version" "4.6.1" 829 | 830 | "lodash.padstart@^4.6.1": 831 | "integrity" "sha512-sW73O6S8+Tg66eY56DBk85aQzzUJDtpoXFBgELMd5P/SotAguo+1kYO6RuYgXxA4HJH3LFTFPASX6ET6bjfriw==" 832 | "resolved" "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz" 833 | "version" "4.6.1" 834 | 835 | "lodash.repeat@^4.1.0": 836 | "integrity" "sha512-eWsgQW89IewS95ZOcr15HHCX6FVDxq3f2PNUIng3fyzsPev9imFQxIYdFZ6crl8L56UR6ZlGDLcEb3RZsCSSqw==" 837 | "resolved" "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-4.1.0.tgz" 838 | "version" "4.1.0" 839 | 840 | "lodash.snakecase@^4.1.1": 841 | "integrity" "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==" 842 | "resolved" "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz" 843 | "version" "4.1.1" 844 | 845 | "lodash.startcase@^4.4.0": 846 | "integrity" "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==" 847 | "resolved" "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz" 848 | "version" "4.4.0" 849 | 850 | "lodash.trim@^4.5.1": 851 | "integrity" "sha512-nJAlRl/K+eiOehWKDzoBVrSMhK0K3A3YQsUNXHQa5yIrKBAhsZgSu3KoAFoFT+mEgiyBHddZ0pRk1ITpIp90Wg==" 852 | "resolved" "https://registry.npmjs.org/lodash.trim/-/lodash.trim-4.5.1.tgz" 853 | "version" "4.5.1" 854 | 855 | "lodash.trimend@^4.5.1": 856 | "integrity" "sha512-lsD+k73XztDsMBKPKvzHXRKFNMohTjoTKIIo4ADLn5dA65LZ1BqlAvSXhR2rPEC3BgAUQnzMnorqDtqn2z4IHA==" 857 | "resolved" "https://registry.npmjs.org/lodash.trimend/-/lodash.trimend-4.5.1.tgz" 858 | "version" "4.5.1" 859 | 860 | "lodash.trimstart@^4.5.1": 861 | "integrity" "sha512-b/+D6La8tU76L/61/aN0jULWHkT0EeJCmVstPBn/K9MtD2qBW83AsBNrr63dKuWYwVMO7ucv13QNO/Ek/2RKaQ==" 862 | "resolved" "https://registry.npmjs.org/lodash.trimstart/-/lodash.trimstart-4.5.1.tgz" 863 | "version" "4.5.1" 864 | 865 | "lodash.uppercase@^4.3.0": 866 | "integrity" "sha512-+Nbnxkj7s8K5U8z6KnEYPGUOGp3woZbB7Ecs7v3LkkjLQSm2kP9SKIILitN1ktn2mB/tmM9oSlku06I+/lH7QA==" 867 | "resolved" "https://registry.npmjs.org/lodash.uppercase/-/lodash.uppercase-4.3.0.tgz" 868 | "version" "4.3.0" 869 | 870 | "lodash.upperfirst@^4.3.1": 871 | "integrity" "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==" 872 | "resolved" "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz" 873 | "version" "4.3.1" 874 | 875 | "log-symbols@^2.2.0": 876 | "integrity" "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==" 877 | "resolved" "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz" 878 | "version" "2.2.0" 879 | dependencies: 880 | "chalk" "^2.0.1" 881 | 882 | "long@^4.0.0": 883 | "integrity" "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" 884 | "resolved" "https://registry.npmjs.org/long/-/long-4.0.0.tgz" 885 | "version" "4.0.0" 886 | 887 | "merge-options@^3.0.4": 888 | "integrity" "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==" 889 | "resolved" "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz" 890 | "version" "3.0.4" 891 | dependencies: 892 | "is-plain-obj" "^2.1.0" 893 | 894 | "mime-db@1.52.0": 895 | "integrity" "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" 896 | "resolved" "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" 897 | "version" "1.52.0" 898 | 899 | "mime-types@^2.1.12": 900 | "integrity" "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==" 901 | "resolved" "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" 902 | "version" "2.1.35" 903 | dependencies: 904 | "mime-db" "1.52.0" 905 | 906 | "mimic-fn@^1.0.0": 907 | "integrity" "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" 908 | "resolved" "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz" 909 | "version" "1.2.0" 910 | 911 | "minimatch@^3.0.2", "minimatch@^3.0.4", "minimatch@^3.1.1": 912 | "integrity" "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==" 913 | "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" 914 | "version" "3.1.2" 915 | dependencies: 916 | "brace-expansion" "^1.1.7" 917 | 918 | "ms@^2.1.1", "ms@2.1.2": 919 | "integrity" "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 920 | "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" 921 | "version" "2.1.2" 922 | 923 | "multiaddr-to-uri@^8.0.0": 924 | "integrity" "sha512-dq4p/vsOOUdVEd1J1gl+R2GFrXJQH8yjLtz4hodqdVbieg39LvBOdMQRdQnfbg5LSM/q1BYNVf5CBbwZFFqBgA==" 925 | "resolved" "https://registry.npmjs.org/multiaddr-to-uri/-/multiaddr-to-uri-8.0.0.tgz" 926 | "version" "8.0.0" 927 | dependencies: 928 | "multiaddr" "^10.0.0" 929 | 930 | "multiaddr@^10.0.0": 931 | "integrity" "sha512-G5upNcGzEGuTHkzxezPrrD6CaIHR9uo+7MwqhNVcXTs33IInon4y7nMiGxl2CY5hG7chvYQUQhz5V52/Qe3cbg==" 932 | "resolved" "https://registry.npmjs.org/multiaddr/-/multiaddr-10.0.1.tgz" 933 | "version" "10.0.1" 934 | dependencies: 935 | "dns-over-http-resolver" "^1.2.3" 936 | "err-code" "^3.0.1" 937 | "is-ip" "^3.1.0" 938 | "multiformats" "^9.4.5" 939 | "uint8arrays" "^3.0.0" 940 | "varint" "^6.0.0" 941 | 942 | "multiformats@^9.4.1", "multiformats@^9.4.2", "multiformats@^9.4.5", "multiformats@^9.5.4": 943 | "integrity" "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==" 944 | "resolved" "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz" 945 | "version" "9.9.0" 946 | 947 | "nanoid@^3.0.2", "nanoid@^3.1.12", "nanoid@^3.1.20": 948 | "integrity" "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==" 949 | "resolved" "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz" 950 | "version" "3.3.6" 951 | 952 | "native-abort-controller@^1.0.3": 953 | "integrity" "sha512-zp8yev7nxczDJMoP6pDxyD20IU0T22eX8VwN2ztDccKvSZhRaV33yP1BGwKSZfXuqWUzsXopVFjBdau9OOAwMQ==" 954 | "resolved" "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-1.0.4.tgz" 955 | "version" "1.0.4" 956 | 957 | "native-fetch@^3.0.0": 958 | "integrity" "sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==" 959 | "resolved" "https://registry.npmjs.org/native-fetch/-/native-fetch-3.0.0.tgz" 960 | "version" "3.0.0" 961 | 962 | "nice-try@^1.0.4": 963 | "integrity" "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" 964 | "resolved" "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz" 965 | "version" "1.0.5" 966 | 967 | "node-fetch@*", "node-fetch@https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz": 968 | "integrity" "sha512-iTASGs+HTFK5E4ZqcMsHmeJ4zodyq8L38lZV33jwqcBJYoUt3HjN4+ot+O9/0b+ke8ddE7UgOtVuZN/OkV19/g==" 969 | "resolved" "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz" 970 | "version" "2.6.7" 971 | 972 | "npm-run-path@^2.0.0": 973 | "integrity" "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==" 974 | "resolved" "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz" 975 | "version" "2.0.2" 976 | dependencies: 977 | "path-key" "^2.0.0" 978 | 979 | "object-assign@^4.1.0": 980 | "integrity" "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" 981 | "resolved" "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" 982 | "version" "4.1.1" 983 | 984 | "once@^1.3.0", "once@^1.3.1", "once@^1.4.0": 985 | "integrity" "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==" 986 | "resolved" "https://registry.npmjs.org/once/-/once-1.4.0.tgz" 987 | "version" "1.4.0" 988 | dependencies: 989 | "wrappy" "1" 990 | 991 | "onetime@^2.0.0": 992 | "integrity" "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==" 993 | "resolved" "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz" 994 | "version" "2.0.1" 995 | dependencies: 996 | "mimic-fn" "^1.0.0" 997 | 998 | "ora@^3.4.0": 999 | "integrity" "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==" 1000 | "resolved" "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz" 1001 | "version" "3.4.0" 1002 | dependencies: 1003 | "chalk" "^2.4.2" 1004 | "cli-cursor" "^2.1.0" 1005 | "cli-spinners" "^2.0.0" 1006 | "log-symbols" "^2.2.0" 1007 | "strip-ansi" "^5.2.0" 1008 | "wcwidth" "^1.0.1" 1009 | 1010 | "p-defer@^3.0.0": 1011 | "integrity" "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==" 1012 | "resolved" "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz" 1013 | "version" "3.0.0" 1014 | 1015 | "p-fifo@^1.0.0": 1016 | "integrity" "sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A==" 1017 | "resolved" "https://registry.npmjs.org/p-fifo/-/p-fifo-1.0.0.tgz" 1018 | "version" "1.0.0" 1019 | dependencies: 1020 | "fast-fifo" "^1.0.0" 1021 | "p-defer" "^3.0.0" 1022 | 1023 | "p-finally@^1.0.0": 1024 | "integrity" "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==" 1025 | "resolved" "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz" 1026 | "version" "1.0.0" 1027 | 1028 | "parse-duration@^1.0.0": 1029 | "integrity" "sha512-z6t9dvSJYaPoQq7quMzdEagSFtpGu+utzHqqxmpVWNNZRIXnvqyCvn9XsTdh7c/w0Bqmdz3RB3YnRaKtpRtEXQ==" 1030 | "resolved" "https://registry.npmjs.org/parse-duration/-/parse-duration-1.1.0.tgz" 1031 | "version" "1.1.0" 1032 | 1033 | "parse-json@^4.0.0": 1034 | "integrity" "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==" 1035 | "resolved" "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz" 1036 | "version" "4.0.0" 1037 | dependencies: 1038 | "error-ex" "^1.3.1" 1039 | "json-parse-better-errors" "^1.0.1" 1040 | 1041 | "path-is-absolute@^1.0.0": 1042 | "integrity" "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" 1043 | "resolved" "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" 1044 | "version" "1.0.1" 1045 | 1046 | "path-key@^2.0.0", "path-key@^2.0.1": 1047 | "integrity" "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==" 1048 | "resolved" "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz" 1049 | "version" "2.0.1" 1050 | 1051 | "pluralize@^8.0.0": 1052 | "integrity" "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==" 1053 | "resolved" "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz" 1054 | "version" "8.0.0" 1055 | 1056 | "prettier@^1.18.2": 1057 | "integrity" "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==" 1058 | "resolved" "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz" 1059 | "version" "1.19.1" 1060 | 1061 | "protobufjs@^6.10.2": 1062 | "integrity" "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==" 1063 | "resolved" "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz" 1064 | "version" "6.11.3" 1065 | dependencies: 1066 | "@protobufjs/aspromise" "^1.1.2" 1067 | "@protobufjs/base64" "^1.1.2" 1068 | "@protobufjs/codegen" "^2.0.4" 1069 | "@protobufjs/eventemitter" "^1.1.0" 1070 | "@protobufjs/fetch" "^1.1.0" 1071 | "@protobufjs/float" "^1.0.2" 1072 | "@protobufjs/inquire" "^1.1.0" 1073 | "@protobufjs/path" "^1.1.2" 1074 | "@protobufjs/pool" "^1.1.0" 1075 | "@protobufjs/utf8" "^1.1.0" 1076 | "@types/long" "^4.0.1" 1077 | "@types/node" ">=13.7.0" 1078 | "long" "^4.0.0" 1079 | 1080 | "pump@^3.0.0": 1081 | "integrity" "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==" 1082 | "resolved" "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" 1083 | "version" "3.0.0" 1084 | dependencies: 1085 | "end-of-stream" "^1.1.0" 1086 | "once" "^1.3.1" 1087 | 1088 | "ramda@^0.24.1": 1089 | "integrity" "sha512-HEm619G8PaZMfkqCa23qiOe7r3R0brPu7ZgOsgKUsnvLhd0qhc/vTjkUovomgPWa5ECBa08fJZixth9LaoBo5w==" 1090 | "resolved" "https://registry.npmjs.org/ramda/-/ramda-0.24.1.tgz" 1091 | "version" "0.24.1" 1092 | 1093 | "ramda@^0.25.0": 1094 | "integrity" "sha512-GXpfrYVPwx3K7RQ6aYT8KPS8XViSXUVJT1ONhoKPE9VAleW42YE+U+8VEyGWt41EnEQW7gwecYJriTI0pKoecQ==" 1095 | "resolved" "https://registry.npmjs.org/ramda/-/ramda-0.25.0.tgz" 1096 | "version" "0.25.0" 1097 | 1098 | "ramdasauce@^2.1.0": 1099 | "integrity" "sha512-Ml3CPim4SKwmg5g9UI77lnRSeKr/kQw7YhQ6rfdMcBYy6DMlwmkEwQqjygJ3OhxPR+NfFfpjKl3Tf8GXckaqqg==" 1100 | "resolved" "https://registry.npmjs.org/ramdasauce/-/ramdasauce-2.1.3.tgz" 1101 | "version" "2.1.3" 1102 | dependencies: 1103 | "ramda" "^0.24.1" 1104 | 1105 | "react-native-fetch-api@^2.0.0": 1106 | "integrity" "sha512-GOA8tc1EVYLnHvma/TU9VTgLOyralO7eATRuCDchQveXW9Fr9vXygyq9iwqmM7YRZ8qRJfEt9xOS7OYMdJvRFw==" 1107 | "resolved" "https://registry.npmjs.org/react-native-fetch-api/-/react-native-fetch-api-2.0.0.tgz" 1108 | "version" "2.0.0" 1109 | dependencies: 1110 | "p-defer" "^3.0.0" 1111 | 1112 | "readable-stream@^3.6.0": 1113 | "integrity" "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==" 1114 | "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" 1115 | "version" "3.6.2" 1116 | dependencies: 1117 | "inherits" "^2.0.3" 1118 | "string_decoder" "^1.1.1" 1119 | "util-deprecate" "^1.0.1" 1120 | 1121 | "receptacle@^1.3.2": 1122 | "integrity" "sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==" 1123 | "resolved" "https://registry.npmjs.org/receptacle/-/receptacle-1.3.2.tgz" 1124 | "version" "1.3.2" 1125 | dependencies: 1126 | "ms" "^2.1.1" 1127 | 1128 | "resolve-from@^3.0.0": 1129 | "integrity" "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==" 1130 | "resolved" "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz" 1131 | "version" "3.0.0" 1132 | 1133 | "restore-cursor@^2.0.0": 1134 | "integrity" "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==" 1135 | "resolved" "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz" 1136 | "version" "2.0.0" 1137 | dependencies: 1138 | "onetime" "^2.0.0" 1139 | "signal-exit" "^3.0.2" 1140 | 1141 | "retimer@^2.0.0": 1142 | "integrity" "sha512-KLXY85WkEq2V2bKex/LOO1ViXVn2KGYe4PYysAdYdjmraYIUsVkXu8O4am+8+5UbaaGl1qho4aqAAPHNQ4GSbg==" 1143 | "resolved" "https://registry.npmjs.org/retimer/-/retimer-2.0.0.tgz" 1144 | "version" "2.0.0" 1145 | 1146 | "rimraf@^2.6.3": 1147 | "integrity" "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==" 1148 | "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" 1149 | "version" "2.7.1" 1150 | dependencies: 1151 | "glob" "^7.1.3" 1152 | 1153 | "safe-buffer@~5.2.0": 1154 | "integrity" "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" 1155 | "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" 1156 | "version" "5.2.1" 1157 | 1158 | "safer-buffer@>= 2.1.2 < 3.0.0": 1159 | "integrity" "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 1160 | "resolved" "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" 1161 | "version" "2.1.2" 1162 | 1163 | "semver@^5.5.0": 1164 | "integrity" "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" 1165 | "resolved" "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" 1166 | "version" "5.7.2" 1167 | 1168 | "semver@^6.1.1": 1169 | "integrity" "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" 1170 | "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" 1171 | "version" "6.3.1" 1172 | 1173 | "shebang-command@^1.2.0": 1174 | "integrity" "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==" 1175 | "resolved" "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz" 1176 | "version" "1.2.0" 1177 | dependencies: 1178 | "shebang-regex" "^1.0.0" 1179 | 1180 | "shebang-regex@^1.0.0": 1181 | "integrity" "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==" 1182 | "resolved" "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" 1183 | "version" "1.0.0" 1184 | 1185 | "signal-exit@^3.0.0", "signal-exit@^3.0.2": 1186 | "integrity" "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" 1187 | "resolved" "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" 1188 | "version" "3.0.7" 1189 | 1190 | "sprintf-js@~1.0.2": 1191 | "integrity" "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" 1192 | "resolved" "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" 1193 | "version" "1.0.3" 1194 | 1195 | "stream-to-it@^0.2.2": 1196 | "integrity" "sha512-4vEbkSs83OahpmBybNJXlJd7d6/RxzkkSdT3I0mnGt79Xd2Kk+e1JqbvAvsQfCeKj3aKb0QIWkyK3/n0j506vQ==" 1197 | "resolved" "https://registry.npmjs.org/stream-to-it/-/stream-to-it-0.2.4.tgz" 1198 | "version" "0.2.4" 1199 | dependencies: 1200 | "get-iterator" "^1.0.2" 1201 | 1202 | "string_decoder@^1.1.1": 1203 | "integrity" "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==" 1204 | "resolved" "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" 1205 | "version" "1.3.0" 1206 | dependencies: 1207 | "safe-buffer" "~5.2.0" 1208 | 1209 | "string-width@^2.1.1": 1210 | "integrity" "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==" 1211 | "resolved" "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz" 1212 | "version" "2.1.1" 1213 | dependencies: 1214 | "is-fullwidth-code-point" "^2.0.0" 1215 | "strip-ansi" "^4.0.0" 1216 | 1217 | "strip-ansi@^4.0.0": 1218 | "integrity" "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==" 1219 | "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz" 1220 | "version" "4.0.0" 1221 | dependencies: 1222 | "ansi-regex" "^3.0.0" 1223 | 1224 | "strip-ansi@^5.2.0": 1225 | "integrity" "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==" 1226 | "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" 1227 | "version" "5.2.0" 1228 | dependencies: 1229 | "ansi-regex" "^4.1.0" 1230 | 1231 | "strip-eof@^1.0.0": 1232 | "integrity" "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==" 1233 | "resolved" "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz" 1234 | "version" "1.0.0" 1235 | 1236 | "supports-color@^5.3.0": 1237 | "integrity" "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==" 1238 | "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" 1239 | "version" "5.5.0" 1240 | dependencies: 1241 | "has-flag" "^3.0.0" 1242 | 1243 | "timeout-abort-controller@^1.1.1": 1244 | "integrity" "sha512-BsF9i3NAJag6T0ZEjki9j654zoafI2X6ayuNd6Tp8+Ul6Tr5s4jo973qFeiWrRSweqvskC+AHDKUmIW4b7pdhQ==" 1245 | "resolved" "https://registry.npmjs.org/timeout-abort-controller/-/timeout-abort-controller-1.1.1.tgz" 1246 | "version" "1.1.1" 1247 | dependencies: 1248 | "abort-controller" "^3.0.0" 1249 | "retimer" "^2.0.0" 1250 | 1251 | "uint8arrays@^3.0.0": 1252 | "integrity" "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==" 1253 | "resolved" "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz" 1254 | "version" "3.1.1" 1255 | dependencies: 1256 | "multiformats" "^9.4.2" 1257 | 1258 | "util-deprecate@^1.0.1": 1259 | "integrity" "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" 1260 | "resolved" "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" 1261 | "version" "1.0.2" 1262 | 1263 | "varint@^6.0.0": 1264 | "integrity" "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" 1265 | "resolved" "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz" 1266 | "version" "6.0.0" 1267 | 1268 | "wcwidth@^1.0.1": 1269 | "integrity" "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==" 1270 | "resolved" "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz" 1271 | "version" "1.0.1" 1272 | dependencies: 1273 | "defaults" "^1.0.3" 1274 | 1275 | "which@^1.2.14", "which@^1.2.9": 1276 | "integrity" "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==" 1277 | "resolved" "https://registry.npmjs.org/which/-/which-1.3.1.tgz" 1278 | "version" "1.3.1" 1279 | dependencies: 1280 | "isexe" "^2.0.0" 1281 | 1282 | "wrappy@1": 1283 | "integrity" "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" 1284 | "resolved" "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" 1285 | "version" "1.0.2" 1286 | 1287 | "yargs-parser@^12.0.0": 1288 | "integrity" "sha512-WQM8GrbF5TKiACr7iE3I2ZBNC7qC9taKPMfjJaMD2LkOJQhIctASxKXdFAOPim/m47kgAQBVIaPlFjnRdkol7w==" 1289 | "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-12.0.0.tgz" 1290 | "version" "12.0.0" 1291 | dependencies: 1292 | "camelcase" "^5.0.0" 1293 | "decamelize" "^1.2.0" 1294 | --------------------------------------------------------------------------------