├── .prettierignore ├── .husky ├── .gitignore └── pre-commit ├── importmap.json ├── package.json ├── shared-deps.conf.mjs ├── LICENSE ├── README.md ├── .circleci └── config.yml ├── .gitignore └── pnpm-lock.yaml /.prettierignore: -------------------------------------------------------------------------------- 1 | npm -------------------------------------------------------------------------------- /.husky/.gitignore: -------------------------------------------------------------------------------- 1 | _ 2 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | . "$(dirname "$0")/_/husky.sh" 3 | 4 | pnpx pretty-quick --staged 5 | -------------------------------------------------------------------------------- /importmap.json: -------------------------------------------------------------------------------- 1 | { 2 | "imports": { 3 | "single-spa": "https://polyglot.microfrontends.app/npm/single-spa@5.9.0/lib/system/single-spa.min.js", 4 | "react": "https://cdn.jsdelivr.net/npm/react@17.0.1/umd/react.production.min.js", 5 | "react-dom": "https://polyglot.microfrontends.app/npm/react-dom@17.0.1/umd/react-dom.production.min.js", 6 | "vue": "https://polyglot.microfrontends.app/npm/vue@2.6.12/dist/vue.min.js", 7 | "vue-router": "https://polyglot.microfrontends.app/npm/vue-router@3.4.9/dist/vue-router.min.js", 8 | "single-spa-angularjs": "https://polyglot.microfrontends.app/npm/single-spa-angularjs@4.1.0/lib/single-spa-angularjs.js" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "poly-mf-shared-dependencies", 3 | "version": "1.0.0", 4 | "description": "[![CircleCI](https://circleci.com/gh/polyglot-microfrontends/shared-dependencies.svg?style=svg)](https://circleci.com/gh/polyglot-microfrontends/shared-dependencies)", 5 | "scripts": { 6 | "build": "shared-deps build shared-deps.conf.mjs", 7 | "postinstall": "husky install", 8 | "prepublishOnly": "pinst --disable", 9 | "postpublish": "pinst --enable" 10 | }, 11 | "repository": { 12 | "type": "git", 13 | "url": "git+https://github.com/polyglot-microfrontends/shared-dependencies.git" 14 | }, 15 | "author": "", 16 | "license": "MIT", 17 | "bugs": { 18 | "url": "https://github.com/polyglot-microfrontends/shared-dependencies/issues" 19 | }, 20 | "homepage": "https://github.com/polyglot-microfrontends/shared-dependencies#readme", 21 | "devDependencies": { 22 | "husky": "^6.0.0", 23 | "pinst": "^2.1.6", 24 | "prettier": "^2.2.1", 25 | "pretty-quick": "^3.1.0", 26 | "self-hosted-shared-dependencies": "^1.0.2" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /shared-deps.conf.mjs: -------------------------------------------------------------------------------- 1 | /** 2 | * @type {import('self-hosted-shared-dependencies').BuildOpts} 3 | */ 4 | const config = { 5 | packages: [ 6 | { 7 | name: "single-spa", 8 | versions: ["^5.9.0"], 9 | include: ["lib/system/**"], 10 | }, 11 | { 12 | name: "react", 13 | versions: ["^17"], 14 | include: ["umd/**"], 15 | }, 16 | { 17 | name: "react-dom", 18 | versions: ["^17"], 19 | include: ["umd/**"], 20 | }, 21 | { 22 | name: "vue", 23 | versions: ["^2.6.12"], 24 | include: ["dist/vue.js", "dist/vue.min.js"], 25 | }, 26 | { 27 | name: "vue-router", 28 | versions: ["^3.4.9"], 29 | include: ["dist/vue-router.js", "dist/vue-router.min.js"], 30 | }, 31 | { 32 | name: "single-spa-angularjs", 33 | versions: ["^4.1.0"], 34 | include: ["lib/**"], 35 | }, 36 | ], 37 | logLevel: "debug", 38 | clean: true, 39 | skipPackagesAtUrl: 40 | "https://storage.googleapis.com/polyglot.microfrontends.app/npm/", 41 | }; 42 | 43 | export default config; 44 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 polyglot-microfrontends 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 | # shared-dependencies 2 | 3 | [![CircleCI](https://circleci.com/gh/polyglot-microfrontends/shared-dependencies.svg?style=svg)](https://circleci.com/gh/polyglot-microfrontends/shared-dependencies) 4 | 5 | ## What is this? 6 | 7 | This is an example microfrontend repo demonstrating how to use [single-spa](https://single-spa.js.org). You can see the code running at https://polyglot.microfrontends.app. The full, deployed import map is visible at https://polyglot.microfrontends.app/importmap.json. 8 | 9 | ## How does it work? 10 | 11 | [Full article](https://single-spa.js.org/docs/recommended-setup) 12 | 13 | This repository contains an [import map](https://github.com/WICG/import-maps/) that controls the shared libraries between all microfrontends. 14 | 15 | Whenever a pull request is merged to master, [CircleCI deploys the import map](https://circleci.com/gh/polyglot-microfrontends/shared-dependencies). Deployments for this project are completely independent of deployments for any other module. 16 | 17 | ## Adapting for your organization 18 | 19 | Feel free to fork and modify any files you would like when doing a proof of concept for your organization. 20 | -------------------------------------------------------------------------------- /.circleci/config.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | jobs: 3 | build: 4 | docker: 5 | - image: ianwalter/pnpm:latest 6 | steps: 7 | - checkout 8 | - run: 9 | name: Build 10 | command: | 11 | pnpm install --frozen-lockfile 12 | pnpm run build 13 | - save_cache: 14 | key: build-output-{{ .Environment.CIRCLE_SHA1 }} 15 | paths: 16 | - npm 17 | deploy: 18 | docker: 19 | - image: google/cloud-sdk 20 | environment: 21 | steps: 22 | - checkout 23 | - restore_cache: 24 | key: build-output-{{ .Environment.CIRCLE_SHA1 }} 25 | - run: 26 | name: Deploy 27 | command: | 28 | echo "Creating google application credentials json file" 29 | echo $GOOGLE_APPLICATION_CREDENTIALS_JSON > google-application-credentials.json 30 | 31 | echo "Authenticating with Google" 32 | gcloud auth activate-service-account --key-file google-application-credentials.json 33 | 34 | if [ -z "$(ls -A /root/project/npm)" ]; then 35 | echo "No dependencies to upload" 36 | else 37 | echo "Uploading self hosted dependencies" 38 | gsutil cp -rZ /root/project/npm gs://$BUCKET_NAME 39 | fi 40 | 41 | echo "Import Map" 42 | cat importmap.json 43 | 44 | echo "Updating import map" 45 | curl -X PATCH $DEPLOYER_HOST/import-map.json\?env=$DEPLOYER_ENV --data "@importmap.json" -H "Accept: application/json" -H "Content-Type: application/json" -u $DEPLOYER_USERNAME:$DEPLOYER_PASSWORD 46 | 47 | workflows: 48 | version: 2 49 | build_and_deploy: 50 | jobs: 51 | - build 52 | - deploy: 53 | context: deploy-context 54 | requires: 55 | - build 56 | filters: 57 | branches: 58 | only: master 59 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | 9 | # Diagnostic reports (https://nodejs.org/api/report.html) 10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 11 | 12 | # Runtime data 13 | pids 14 | *.pid 15 | *.seed 16 | *.pid.lock 17 | 18 | # Directory for instrumented libs generated by jscoverage/JSCover 19 | lib-cov 20 | 21 | # Coverage directory used by tools like istanbul 22 | coverage 23 | *.lcov 24 | 25 | # nyc test coverage 26 | .nyc_output 27 | 28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 29 | .grunt 30 | 31 | # Bower dependency directory (https://bower.io/) 32 | bower_components 33 | 34 | # node-waf configuration 35 | .lock-wscript 36 | 37 | # Compiled binary addons (https://nodejs.org/api/addons.html) 38 | build/Release 39 | 40 | # Dependency directories 41 | node_modules/ 42 | jspm_packages/ 43 | 44 | # TypeScript v1 declaration files 45 | typings/ 46 | 47 | # TypeScript cache 48 | *.tsbuildinfo 49 | 50 | # Optional npm cache directory 51 | .npm 52 | 53 | # Optional eslint cache 54 | .eslintcache 55 | 56 | # Microbundle cache 57 | .rpt2_cache/ 58 | .rts2_cache_cjs/ 59 | .rts2_cache_es/ 60 | .rts2_cache_umd/ 61 | 62 | # Optional REPL history 63 | .node_repl_history 64 | 65 | # Output of 'npm pack' 66 | *.tgz 67 | 68 | # Yarn Integrity file 69 | .yarn-integrity 70 | 71 | # dotenv environment variables file 72 | .env 73 | .env.test 74 | 75 | # parcel-bundler cache (https://parceljs.org/) 76 | .cache 77 | 78 | # Next.js build output 79 | .next 80 | 81 | # Nuxt.js build / generate output 82 | .nuxt 83 | dist 84 | 85 | # Gatsby files 86 | .cache/ 87 | # Comment in the public line in if your project uses Gatsby and *not* Next.js 88 | # https://nextjs.org/blog/next-9-1#public-directory-support 89 | # public 90 | 91 | # vuepress build output 92 | .vuepress/dist 93 | 94 | # Serverless directories 95 | .serverless/ 96 | 97 | # FuseBox cache 98 | .fusebox/ 99 | 100 | # DynamoDB Local files 101 | .dynamodb/ 102 | 103 | # TernJS port file 104 | .tern-port 105 | 106 | npm -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.3 2 | 3 | specifiers: 4 | husky: ^6.0.0 5 | pinst: ^2.1.6 6 | prettier: ^2.2.1 7 | pretty-quick: ^3.1.0 8 | self-hosted-shared-dependencies: ^1.0.2 9 | 10 | devDependencies: 11 | husky: 6.0.0 12 | pinst: 2.1.6 13 | prettier: 2.2.1 14 | pretty-quick: 3.1.0_prettier@2.2.1 15 | self-hosted-shared-dependencies: 1.0.2 16 | 17 | packages: 18 | /@npmcli/move-file/1.1.2: 19 | resolution: 20 | { 21 | integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==, 22 | } 23 | engines: { node: ">=10" } 24 | dependencies: 25 | mkdirp: 1.0.4 26 | rimraf: 3.0.2 27 | dev: true 28 | 29 | /@tootallnate/once/1.1.2: 30 | resolution: 31 | { 32 | integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==, 33 | } 34 | engines: { node: ">= 6" } 35 | dev: true 36 | 37 | /@types/minimatch/3.0.4: 38 | resolution: 39 | { 40 | integrity: sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==, 41 | } 42 | dev: true 43 | 44 | /agent-base/6.0.2: 45 | resolution: 46 | { 47 | integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==, 48 | } 49 | engines: { node: ">= 6.0.0" } 50 | dependencies: 51 | debug: 4.3.1 52 | transitivePeerDependencies: 53 | - supports-color 54 | dev: true 55 | 56 | /agentkeepalive/4.1.4: 57 | resolution: 58 | { 59 | integrity: sha512-+V/rGa3EuU74H6wR04plBb7Ks10FbtUQgRj/FQOG7uUIEuaINI+AiqJR1k6t3SVNs7o7ZjIdus6706qqzVq8jQ==, 60 | } 61 | engines: { node: ">= 8.0.0" } 62 | dependencies: 63 | debug: 4.3.1 64 | depd: 1.1.2 65 | humanize-ms: 1.2.1 66 | transitivePeerDependencies: 67 | - supports-color 68 | dev: true 69 | 70 | /aggregate-error/3.1.0: 71 | resolution: 72 | { 73 | integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==, 74 | } 75 | engines: { node: ">=8" } 76 | dependencies: 77 | clean-stack: 2.2.0 78 | indent-string: 4.0.0 79 | dev: true 80 | 81 | /ansi-styles/3.2.1: 82 | resolution: 83 | { 84 | integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, 85 | } 86 | engines: { node: ">=4" } 87 | dependencies: 88 | color-convert: 1.9.3 89 | dev: true 90 | 91 | /ansi-styles/4.3.0: 92 | resolution: 93 | { 94 | integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, 95 | } 96 | engines: { node: ">=8" } 97 | dependencies: 98 | color-convert: 2.0.1 99 | dev: true 100 | 101 | /array-differ/3.0.0: 102 | resolution: 103 | { 104 | integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==, 105 | } 106 | engines: { node: ">=8" } 107 | dev: true 108 | 109 | /array-union/2.1.0: 110 | resolution: 111 | { 112 | integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==, 113 | } 114 | engines: { node: ">=8" } 115 | dev: true 116 | 117 | /arrify/2.0.1: 118 | resolution: 119 | { 120 | integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==, 121 | } 122 | engines: { node: ">=8" } 123 | dev: true 124 | 125 | /async/0.9.2: 126 | resolution: { integrity: sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0= } 127 | dev: true 128 | 129 | /balanced-match/1.0.2: 130 | resolution: 131 | { 132 | integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, 133 | } 134 | dev: true 135 | 136 | /brace-expansion/1.1.11: 137 | resolution: 138 | { 139 | integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, 140 | } 141 | dependencies: 142 | balanced-match: 1.0.2 143 | concat-map: 0.0.1 144 | dev: true 145 | 146 | /braces/3.0.2: 147 | resolution: 148 | { 149 | integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, 150 | } 151 | engines: { node: ">=8" } 152 | dependencies: 153 | fill-range: 7.0.1 154 | dev: true 155 | 156 | /builtins/1.0.3: 157 | resolution: { integrity: sha1-y5T662HIaWRR2zZTThQi+U8K7og= } 158 | dev: true 159 | 160 | /cacache/15.0.6: 161 | resolution: 162 | { 163 | integrity: sha512-g1WYDMct/jzW+JdWEyjaX2zoBkZ6ZT9VpOyp2I/VMtDsNLffNat3kqPFfi1eDRSK9/SuKGyORDHcQMcPF8sQ/w==, 164 | } 165 | engines: { node: ">= 10" } 166 | dependencies: 167 | "@npmcli/move-file": 1.1.2 168 | chownr: 2.0.0 169 | fs-minipass: 2.1.0 170 | glob: 7.1.6 171 | infer-owner: 1.0.4 172 | lru-cache: 6.0.0 173 | minipass: 3.1.3 174 | minipass-collect: 1.0.2 175 | minipass-flush: 1.0.5 176 | minipass-pipeline: 1.2.4 177 | mkdirp: 1.0.4 178 | p-map: 4.0.0 179 | promise-inflight: 1.0.1 180 | rimraf: 3.0.2 181 | ssri: 8.0.1 182 | tar: 6.1.0 183 | unique-filename: 1.1.1 184 | dev: true 185 | 186 | /chalk/2.4.2: 187 | resolution: 188 | { 189 | integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, 190 | } 191 | engines: { node: ">=4" } 192 | dependencies: 193 | ansi-styles: 3.2.1 194 | escape-string-regexp: 1.0.5 195 | supports-color: 5.5.0 196 | dev: true 197 | 198 | /chalk/3.0.0: 199 | resolution: 200 | { 201 | integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==, 202 | } 203 | engines: { node: ">=8" } 204 | dependencies: 205 | ansi-styles: 4.3.0 206 | supports-color: 7.2.0 207 | dev: true 208 | 209 | /chownr/2.0.0: 210 | resolution: 211 | { 212 | integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==, 213 | } 214 | engines: { node: ">=10" } 215 | dev: true 216 | 217 | /clean-stack/2.2.0: 218 | resolution: 219 | { 220 | integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==, 221 | } 222 | engines: { node: ">=6" } 223 | dev: true 224 | 225 | /color-convert/1.9.3: 226 | resolution: 227 | { 228 | integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, 229 | } 230 | dependencies: 231 | color-name: 1.1.3 232 | dev: true 233 | 234 | /color-convert/2.0.1: 235 | resolution: 236 | { 237 | integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, 238 | } 239 | engines: { node: ">=7.0.0" } 240 | dependencies: 241 | color-name: 1.1.4 242 | dev: true 243 | 244 | /color-name/1.1.3: 245 | resolution: { integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= } 246 | dev: true 247 | 248 | /color-name/1.1.4: 249 | resolution: 250 | { 251 | integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, 252 | } 253 | dev: true 254 | 255 | /concat-map/0.0.1: 256 | resolution: { integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= } 257 | dev: true 258 | 259 | /cross-spawn/7.0.3: 260 | resolution: 261 | { 262 | integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, 263 | } 264 | engines: { node: ">= 8" } 265 | dependencies: 266 | path-key: 3.1.1 267 | shebang-command: 2.0.0 268 | which: 2.0.2 269 | dev: true 270 | 271 | /debug/4.3.1: 272 | resolution: 273 | { 274 | integrity: sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==, 275 | } 276 | engines: { node: ">=6.0" } 277 | peerDependencies: 278 | supports-color: "*" 279 | peerDependenciesMeta: 280 | supports-color: 281 | optional: true 282 | dependencies: 283 | ms: 2.1.2 284 | dev: true 285 | 286 | /depd/1.1.2: 287 | resolution: { integrity: sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= } 288 | engines: { node: ">= 0.6" } 289 | dev: true 290 | 291 | /ejs/3.1.6: 292 | resolution: 293 | { 294 | integrity: sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==, 295 | } 296 | engines: { node: ">=0.10.0" } 297 | hasBin: true 298 | dependencies: 299 | jake: 10.8.2 300 | dev: true 301 | 302 | /encoding/0.1.13: 303 | resolution: 304 | { 305 | integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==, 306 | } 307 | dependencies: 308 | iconv-lite: 0.6.2 309 | dev: true 310 | optional: true 311 | 312 | /end-of-stream/1.4.4: 313 | resolution: 314 | { 315 | integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==, 316 | } 317 | dependencies: 318 | once: 1.4.0 319 | dev: true 320 | 321 | /err-code/2.0.3: 322 | resolution: 323 | { 324 | integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==, 325 | } 326 | dev: true 327 | 328 | /escape-string-regexp/1.0.5: 329 | resolution: { integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= } 330 | engines: { node: ">=0.8.0" } 331 | dev: true 332 | 333 | /execa/4.1.0: 334 | resolution: 335 | { 336 | integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==, 337 | } 338 | engines: { node: ">=10" } 339 | dependencies: 340 | cross-spawn: 7.0.3 341 | get-stream: 5.2.0 342 | human-signals: 1.1.1 343 | is-stream: 2.0.0 344 | merge-stream: 2.0.0 345 | npm-run-path: 4.0.1 346 | onetime: 5.1.2 347 | signal-exit: 3.0.3 348 | strip-final-newline: 2.0.0 349 | dev: true 350 | 351 | /filelist/1.0.2: 352 | resolution: 353 | { 354 | integrity: sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==, 355 | } 356 | dependencies: 357 | minimatch: 3.0.4 358 | dev: true 359 | 360 | /fill-range/7.0.1: 361 | resolution: 362 | { 363 | integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, 364 | } 365 | engines: { node: ">=8" } 366 | dependencies: 367 | to-regex-range: 5.0.1 368 | dev: true 369 | 370 | /find-up/4.1.0: 371 | resolution: 372 | { 373 | integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==, 374 | } 375 | engines: { node: ">=8" } 376 | dependencies: 377 | locate-path: 5.0.0 378 | path-exists: 4.0.0 379 | dev: true 380 | 381 | /fromentries/1.3.2: 382 | resolution: 383 | { 384 | integrity: sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==, 385 | } 386 | dev: true 387 | 388 | /fs-minipass/2.1.0: 389 | resolution: 390 | { 391 | integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==, 392 | } 393 | engines: { node: ">= 8" } 394 | dependencies: 395 | minipass: 3.1.3 396 | dev: true 397 | 398 | /fs.realpath/1.0.0: 399 | resolution: { integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8= } 400 | dev: true 401 | 402 | /get-stream/5.2.0: 403 | resolution: 404 | { 405 | integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==, 406 | } 407 | engines: { node: ">=8" } 408 | dependencies: 409 | pump: 3.0.0 410 | dev: true 411 | 412 | /glob/7.1.6: 413 | resolution: 414 | { 415 | integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==, 416 | } 417 | dependencies: 418 | fs.realpath: 1.0.0 419 | inflight: 1.0.6 420 | inherits: 2.0.4 421 | minimatch: 3.0.4 422 | once: 1.4.0 423 | path-is-absolute: 1.0.1 424 | dev: true 425 | 426 | /has-flag/3.0.0: 427 | resolution: { integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0= } 428 | engines: { node: ">=4" } 429 | dev: true 430 | 431 | /has-flag/4.0.0: 432 | resolution: 433 | { 434 | integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, 435 | } 436 | engines: { node: ">=8" } 437 | dev: true 438 | 439 | /hosted-git-info/4.0.2: 440 | resolution: 441 | { 442 | integrity: sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==, 443 | } 444 | engines: { node: ">=10" } 445 | dependencies: 446 | lru-cache: 6.0.0 447 | dev: true 448 | 449 | /http-cache-semantics/4.1.0: 450 | resolution: 451 | { 452 | integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==, 453 | } 454 | dev: true 455 | 456 | /http-proxy-agent/4.0.1: 457 | resolution: 458 | { 459 | integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==, 460 | } 461 | engines: { node: ">= 6" } 462 | dependencies: 463 | "@tootallnate/once": 1.1.2 464 | agent-base: 6.0.2 465 | debug: 4.3.1 466 | transitivePeerDependencies: 467 | - supports-color 468 | dev: true 469 | 470 | /https-proxy-agent/5.0.0: 471 | resolution: 472 | { 473 | integrity: sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==, 474 | } 475 | engines: { node: ">= 6" } 476 | dependencies: 477 | agent-base: 6.0.2 478 | debug: 4.3.1 479 | transitivePeerDependencies: 480 | - supports-color 481 | dev: true 482 | 483 | /human-signals/1.1.1: 484 | resolution: 485 | { 486 | integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==, 487 | } 488 | engines: { node: ">=8.12.0" } 489 | dev: true 490 | 491 | /humanize-ms/1.2.1: 492 | resolution: { integrity: sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0= } 493 | dependencies: 494 | ms: 2.1.3 495 | dev: true 496 | 497 | /husky/6.0.0: 498 | resolution: 499 | { 500 | integrity: sha512-SQS2gDTB7tBN486QSoKPKQItZw97BMOd+Kdb6ghfpBc0yXyzrddI0oDV5MkDAbuB4X2mO3/nj60TRMcYxwzZeQ==, 501 | } 502 | hasBin: true 503 | dev: true 504 | 505 | /iconv-lite/0.6.2: 506 | resolution: 507 | { 508 | integrity: sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==, 509 | } 510 | engines: { node: ">=0.10.0" } 511 | dependencies: 512 | safer-buffer: 2.1.2 513 | dev: true 514 | optional: true 515 | 516 | /ignore/5.1.8: 517 | resolution: 518 | { 519 | integrity: sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==, 520 | } 521 | engines: { node: ">= 4" } 522 | dev: true 523 | 524 | /imurmurhash/0.1.4: 525 | resolution: { integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o= } 526 | engines: { node: ">=0.8.19" } 527 | dev: true 528 | 529 | /indent-string/4.0.0: 530 | resolution: 531 | { 532 | integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==, 533 | } 534 | engines: { node: ">=8" } 535 | dev: true 536 | 537 | /infer-owner/1.0.4: 538 | resolution: 539 | { 540 | integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==, 541 | } 542 | dev: true 543 | 544 | /inflight/1.0.6: 545 | resolution: { integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= } 546 | dependencies: 547 | once: 1.4.0 548 | wrappy: 1.0.2 549 | dev: true 550 | 551 | /inherits/2.0.4: 552 | resolution: 553 | { 554 | integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, 555 | } 556 | dev: true 557 | 558 | /ip/1.1.5: 559 | resolution: { integrity: sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= } 560 | dev: true 561 | 562 | /is-lambda/1.0.1: 563 | resolution: { integrity: sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU= } 564 | dev: true 565 | 566 | /is-number/7.0.0: 567 | resolution: 568 | { 569 | integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, 570 | } 571 | engines: { node: ">=0.12.0" } 572 | dev: true 573 | 574 | /is-stream/2.0.0: 575 | resolution: 576 | { 577 | integrity: sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==, 578 | } 579 | engines: { node: ">=8" } 580 | dev: true 581 | 582 | /isexe/2.0.0: 583 | resolution: { integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= } 584 | dev: true 585 | 586 | /jake/10.8.2: 587 | resolution: 588 | { 589 | integrity: sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==, 590 | } 591 | hasBin: true 592 | dependencies: 593 | async: 0.9.2 594 | chalk: 2.4.2 595 | filelist: 1.0.2 596 | minimatch: 3.0.4 597 | dev: true 598 | 599 | /jsonparse/1.3.1: 600 | resolution: { integrity: sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= } 601 | engines: { "0": node >= 0.2.0 } 602 | dev: true 603 | 604 | /locate-path/5.0.0: 605 | resolution: 606 | { 607 | integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==, 608 | } 609 | engines: { node: ">=8" } 610 | dependencies: 611 | p-locate: 4.1.0 612 | dev: true 613 | 614 | /lru-cache/6.0.0: 615 | resolution: 616 | { 617 | integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==, 618 | } 619 | engines: { node: ">=10" } 620 | dependencies: 621 | yallist: 4.0.0 622 | dev: true 623 | 624 | /make-fetch-happen/8.0.14: 625 | resolution: 626 | { 627 | integrity: sha512-EsS89h6l4vbfJEtBZnENTOFk8mCRpY5ru36Xe5bcX1KYIli2mkSHqoFsp5O1wMDvTJJzxe/4THpCTtygjeeGWQ==, 628 | } 629 | engines: { node: ">= 10" } 630 | dependencies: 631 | agentkeepalive: 4.1.4 632 | cacache: 15.0.6 633 | http-cache-semantics: 4.1.0 634 | http-proxy-agent: 4.0.1 635 | https-proxy-agent: 5.0.0 636 | is-lambda: 1.0.1 637 | lru-cache: 6.0.0 638 | minipass: 3.1.3 639 | minipass-collect: 1.0.2 640 | minipass-fetch: 1.3.3 641 | minipass-flush: 1.0.5 642 | minipass-pipeline: 1.2.4 643 | promise-retry: 2.0.1 644 | socks-proxy-agent: 5.0.0 645 | ssri: 8.0.1 646 | transitivePeerDependencies: 647 | - supports-color 648 | dev: true 649 | 650 | /merge-stream/2.0.0: 651 | resolution: 652 | { 653 | integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, 654 | } 655 | dev: true 656 | 657 | /micromatch/4.0.4: 658 | resolution: 659 | { 660 | integrity: sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==, 661 | } 662 | engines: { node: ">=8.6" } 663 | dependencies: 664 | braces: 3.0.2 665 | picomatch: 2.2.3 666 | dev: true 667 | 668 | /mimic-fn/2.1.0: 669 | resolution: 670 | { 671 | integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==, 672 | } 673 | engines: { node: ">=6" } 674 | dev: true 675 | 676 | /minimatch/3.0.4: 677 | resolution: 678 | { 679 | integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==, 680 | } 681 | dependencies: 682 | brace-expansion: 1.1.11 683 | dev: true 684 | 685 | /minimist/1.2.5: 686 | resolution: 687 | { 688 | integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==, 689 | } 690 | dev: true 691 | 692 | /minipass-collect/1.0.2: 693 | resolution: 694 | { 695 | integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==, 696 | } 697 | engines: { node: ">= 8" } 698 | dependencies: 699 | minipass: 3.1.3 700 | dev: true 701 | 702 | /minipass-fetch/1.3.3: 703 | resolution: 704 | { 705 | integrity: sha512-akCrLDWfbdAWkMLBxJEeWTdNsjML+dt5YgOI4gJ53vuO0vrmYQkUPxa6j6V65s9CcePIr2SSWqjT2EcrNseryQ==, 706 | } 707 | engines: { node: ">=8" } 708 | dependencies: 709 | minipass: 3.1.3 710 | minipass-sized: 1.0.3 711 | minizlib: 2.1.2 712 | optionalDependencies: 713 | encoding: 0.1.13 714 | dev: true 715 | 716 | /minipass-flush/1.0.5: 717 | resolution: 718 | { 719 | integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==, 720 | } 721 | engines: { node: ">= 8" } 722 | dependencies: 723 | minipass: 3.1.3 724 | dev: true 725 | 726 | /minipass-json-stream/1.0.1: 727 | resolution: 728 | { 729 | integrity: sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==, 730 | } 731 | dependencies: 732 | jsonparse: 1.3.1 733 | minipass: 3.1.3 734 | dev: true 735 | 736 | /minipass-pipeline/1.2.4: 737 | resolution: 738 | { 739 | integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==, 740 | } 741 | engines: { node: ">=8" } 742 | dependencies: 743 | minipass: 3.1.3 744 | dev: true 745 | 746 | /minipass-sized/1.0.3: 747 | resolution: 748 | { 749 | integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==, 750 | } 751 | engines: { node: ">=8" } 752 | dependencies: 753 | minipass: 3.1.3 754 | dev: true 755 | 756 | /minipass/3.1.3: 757 | resolution: 758 | { 759 | integrity: sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==, 760 | } 761 | engines: { node: ">=8" } 762 | dependencies: 763 | yallist: 4.0.0 764 | dev: true 765 | 766 | /minizlib/2.1.2: 767 | resolution: 768 | { 769 | integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==, 770 | } 771 | engines: { node: ">= 8" } 772 | dependencies: 773 | minipass: 3.1.3 774 | yallist: 4.0.0 775 | dev: true 776 | 777 | /mkdirp/1.0.4: 778 | resolution: 779 | { 780 | integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==, 781 | } 782 | engines: { node: ">=10" } 783 | hasBin: true 784 | dev: true 785 | 786 | /mri/1.1.6: 787 | resolution: 788 | { 789 | integrity: sha512-oi1b3MfbyGa7FJMP9GmLTttni5JoICpYBRlq+x5V16fZbLsnL9N3wFqqIm/nIG43FjUFkFh9Epzp/kzUGUnJxQ==, 790 | } 791 | engines: { node: ">=4" } 792 | dev: true 793 | 794 | /ms/2.1.2: 795 | resolution: 796 | { 797 | integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, 798 | } 799 | dev: true 800 | 801 | /ms/2.1.3: 802 | resolution: 803 | { 804 | integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==, 805 | } 806 | dev: true 807 | 808 | /multimatch/4.0.0: 809 | resolution: 810 | { 811 | integrity: sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==, 812 | } 813 | engines: { node: ">=8" } 814 | dependencies: 815 | "@types/minimatch": 3.0.4 816 | array-differ: 3.0.0 817 | array-union: 2.1.0 818 | arrify: 2.0.1 819 | minimatch: 3.0.4 820 | dev: true 821 | 822 | /npm-package-arg/8.1.2: 823 | resolution: 824 | { 825 | integrity: sha512-6Eem455JsSMJY6Kpd3EyWE+n5hC+g9bSyHr9K9U2zqZb7+02+hObQ2c0+8iDk/mNF+8r1MhY44WypKJAkySIYA==, 826 | } 827 | engines: { node: ">=10" } 828 | dependencies: 829 | hosted-git-info: 4.0.2 830 | semver: 7.3.5 831 | validate-npm-package-name: 3.0.0 832 | dev: true 833 | 834 | /npm-registry-fetch/10.1.0: 835 | resolution: 836 | { 837 | integrity: sha512-XcKu0h6OuRTB7HO5uv8htavPQJ1dYTLAXLE5AMs4GFQ1LbY+LlHiNoqIbVshE3rk0vLk+nKxpA/4WJm1kE7eqg==, 838 | } 839 | engines: { node: ">=10" } 840 | dependencies: 841 | lru-cache: 6.0.0 842 | make-fetch-happen: 8.0.14 843 | minipass: 3.1.3 844 | minipass-fetch: 1.3.3 845 | minipass-json-stream: 1.0.1 846 | minizlib: 2.1.2 847 | npm-package-arg: 8.1.2 848 | transitivePeerDependencies: 849 | - supports-color 850 | dev: true 851 | 852 | /npm-run-path/4.0.1: 853 | resolution: 854 | { 855 | integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==, 856 | } 857 | engines: { node: ">=8" } 858 | dependencies: 859 | path-key: 3.1.1 860 | dev: true 861 | 862 | /once/1.4.0: 863 | resolution: { integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E= } 864 | dependencies: 865 | wrappy: 1.0.2 866 | dev: true 867 | 868 | /onetime/5.1.2: 869 | resolution: 870 | { 871 | integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==, 872 | } 873 | engines: { node: ">=6" } 874 | dependencies: 875 | mimic-fn: 2.1.0 876 | dev: true 877 | 878 | /p-limit/2.3.0: 879 | resolution: 880 | { 881 | integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==, 882 | } 883 | engines: { node: ">=6" } 884 | dependencies: 885 | p-try: 2.2.0 886 | dev: true 887 | 888 | /p-locate/4.1.0: 889 | resolution: 890 | { 891 | integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==, 892 | } 893 | engines: { node: ">=8" } 894 | dependencies: 895 | p-limit: 2.3.0 896 | dev: true 897 | 898 | /p-map/4.0.0: 899 | resolution: 900 | { 901 | integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==, 902 | } 903 | engines: { node: ">=10" } 904 | dependencies: 905 | aggregate-error: 3.1.0 906 | dev: true 907 | 908 | /p-try/2.2.0: 909 | resolution: 910 | { 911 | integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==, 912 | } 913 | engines: { node: ">=6" } 914 | dev: true 915 | 916 | /path-exists/4.0.0: 917 | resolution: 918 | { 919 | integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, 920 | } 921 | engines: { node: ">=8" } 922 | dev: true 923 | 924 | /path-is-absolute/1.0.1: 925 | resolution: { integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18= } 926 | engines: { node: ">=0.10.0" } 927 | dev: true 928 | 929 | /path-key/3.1.1: 930 | resolution: 931 | { 932 | integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, 933 | } 934 | engines: { node: ">=8" } 935 | dev: true 936 | 937 | /picomatch/2.2.3: 938 | resolution: 939 | { 940 | integrity: sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==, 941 | } 942 | engines: { node: ">=8.6" } 943 | dev: true 944 | 945 | /pinst/2.1.6: 946 | resolution: 947 | { 948 | integrity: sha512-B4dYmf6nEXg1NpDSB+orYWvKa5Kfmz5KzWC29U59dpVM4S/+xp0ak/JMEsw04UQTNNKps7klu0BUalr343Gt9g==, 949 | } 950 | engines: { node: ">=10.0.0" } 951 | hasBin: true 952 | dependencies: 953 | fromentries: 1.3.2 954 | dev: true 955 | 956 | /prettier/2.2.1: 957 | resolution: 958 | { 959 | integrity: sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==, 960 | } 961 | engines: { node: ">=10.13.0" } 962 | hasBin: true 963 | dev: true 964 | 965 | /pretty-quick/3.1.0_prettier@2.2.1: 966 | resolution: 967 | { 968 | integrity: sha512-DtxIxksaUWCgPFN7E1ZZk4+Aav3CCuRdhrDSFZENb404sYMtuo9Zka823F+Mgeyt8Zt3bUiCjFzzWYE9LYqkmQ==, 969 | } 970 | engines: { node: ">=10.13" } 971 | hasBin: true 972 | peerDependencies: 973 | prettier: ">=2.0.0" 974 | dependencies: 975 | chalk: 3.0.0 976 | execa: 4.1.0 977 | find-up: 4.1.0 978 | ignore: 5.1.8 979 | mri: 1.1.6 980 | multimatch: 4.0.0 981 | prettier: 2.2.1 982 | dev: true 983 | 984 | /promise-inflight/1.0.1: 985 | resolution: { integrity: sha1-mEcocL8igTL8vdhoEputEsPAKeM= } 986 | dev: true 987 | 988 | /promise-retry/2.0.1: 989 | resolution: 990 | { 991 | integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==, 992 | } 993 | engines: { node: ">=10" } 994 | dependencies: 995 | err-code: 2.0.3 996 | retry: 0.12.0 997 | dev: true 998 | 999 | /pump/3.0.0: 1000 | resolution: 1001 | { 1002 | integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==, 1003 | } 1004 | dependencies: 1005 | end-of-stream: 1.4.4 1006 | once: 1.4.0 1007 | dev: true 1008 | 1009 | /retry/0.12.0: 1010 | resolution: { integrity: sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= } 1011 | engines: { node: ">= 4" } 1012 | dev: true 1013 | 1014 | /rimraf/3.0.2: 1015 | resolution: 1016 | { 1017 | integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==, 1018 | } 1019 | hasBin: true 1020 | dependencies: 1021 | glob: 7.1.6 1022 | dev: true 1023 | 1024 | /safer-buffer/2.1.2: 1025 | resolution: 1026 | { 1027 | integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, 1028 | } 1029 | dev: true 1030 | optional: true 1031 | 1032 | /self-hosted-shared-dependencies/1.0.2: 1033 | resolution: 1034 | { 1035 | integrity: sha512-MlsCn7BgGxL1TQ4l+qvmpTLhiDx+Vw37Cpdqpaig8hlxNGRjCIsPl/IHYpVLLJicQqHQRkEbay59p4QvpbmcmA==, 1036 | } 1037 | hasBin: true 1038 | dependencies: 1039 | ejs: 3.1.6 1040 | micromatch: 4.0.4 1041 | minimist: 1.2.5 1042 | mkdirp: 1.0.4 1043 | npm-registry-fetch: 10.1.0 1044 | rimraf: 3.0.2 1045 | semver: 7.3.5 1046 | tar: 6.1.0 1047 | transitivePeerDependencies: 1048 | - supports-color 1049 | dev: true 1050 | 1051 | /semver/7.3.5: 1052 | resolution: 1053 | { 1054 | integrity: sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==, 1055 | } 1056 | engines: { node: ">=10" } 1057 | hasBin: true 1058 | dependencies: 1059 | lru-cache: 6.0.0 1060 | dev: true 1061 | 1062 | /shebang-command/2.0.0: 1063 | resolution: 1064 | { 1065 | integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, 1066 | } 1067 | engines: { node: ">=8" } 1068 | dependencies: 1069 | shebang-regex: 3.0.0 1070 | dev: true 1071 | 1072 | /shebang-regex/3.0.0: 1073 | resolution: 1074 | { 1075 | integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, 1076 | } 1077 | engines: { node: ">=8" } 1078 | dev: true 1079 | 1080 | /signal-exit/3.0.3: 1081 | resolution: 1082 | { 1083 | integrity: sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==, 1084 | } 1085 | dev: true 1086 | 1087 | /smart-buffer/4.1.0: 1088 | resolution: 1089 | { 1090 | integrity: sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==, 1091 | } 1092 | engines: { node: ">= 6.0.0", npm: ">= 3.0.0" } 1093 | dev: true 1094 | 1095 | /socks-proxy-agent/5.0.0: 1096 | resolution: 1097 | { 1098 | integrity: sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA==, 1099 | } 1100 | engines: { node: ">= 6" } 1101 | dependencies: 1102 | agent-base: 6.0.2 1103 | debug: 4.3.1 1104 | socks: 2.6.1 1105 | transitivePeerDependencies: 1106 | - supports-color 1107 | dev: true 1108 | 1109 | /socks/2.6.1: 1110 | resolution: 1111 | { 1112 | integrity: sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==, 1113 | } 1114 | engines: { node: ">= 10.13.0", npm: ">= 3.0.0" } 1115 | dependencies: 1116 | ip: 1.1.5 1117 | smart-buffer: 4.1.0 1118 | dev: true 1119 | 1120 | /ssri/8.0.1: 1121 | resolution: 1122 | { 1123 | integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==, 1124 | } 1125 | engines: { node: ">= 8" } 1126 | dependencies: 1127 | minipass: 3.1.3 1128 | dev: true 1129 | 1130 | /strip-final-newline/2.0.0: 1131 | resolution: 1132 | { 1133 | integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==, 1134 | } 1135 | engines: { node: ">=6" } 1136 | dev: true 1137 | 1138 | /supports-color/5.5.0: 1139 | resolution: 1140 | { 1141 | integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, 1142 | } 1143 | engines: { node: ">=4" } 1144 | dependencies: 1145 | has-flag: 3.0.0 1146 | dev: true 1147 | 1148 | /supports-color/7.2.0: 1149 | resolution: 1150 | { 1151 | integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, 1152 | } 1153 | engines: { node: ">=8" } 1154 | dependencies: 1155 | has-flag: 4.0.0 1156 | dev: true 1157 | 1158 | /tar/6.1.0: 1159 | resolution: 1160 | { 1161 | integrity: sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==, 1162 | } 1163 | engines: { node: ">= 10" } 1164 | dependencies: 1165 | chownr: 2.0.0 1166 | fs-minipass: 2.1.0 1167 | minipass: 3.1.3 1168 | minizlib: 2.1.2 1169 | mkdirp: 1.0.4 1170 | yallist: 4.0.0 1171 | dev: true 1172 | 1173 | /to-regex-range/5.0.1: 1174 | resolution: 1175 | { 1176 | integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, 1177 | } 1178 | engines: { node: ">=8.0" } 1179 | dependencies: 1180 | is-number: 7.0.0 1181 | dev: true 1182 | 1183 | /unique-filename/1.1.1: 1184 | resolution: 1185 | { 1186 | integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==, 1187 | } 1188 | dependencies: 1189 | unique-slug: 2.0.2 1190 | dev: true 1191 | 1192 | /unique-slug/2.0.2: 1193 | resolution: 1194 | { 1195 | integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==, 1196 | } 1197 | dependencies: 1198 | imurmurhash: 0.1.4 1199 | dev: true 1200 | 1201 | /validate-npm-package-name/3.0.0: 1202 | resolution: { integrity: sha1-X6kS2B630MdK/BQN5zF/DKffQ34= } 1203 | dependencies: 1204 | builtins: 1.0.3 1205 | dev: true 1206 | 1207 | /which/2.0.2: 1208 | resolution: 1209 | { 1210 | integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, 1211 | } 1212 | engines: { node: ">= 8" } 1213 | hasBin: true 1214 | dependencies: 1215 | isexe: 2.0.0 1216 | dev: true 1217 | 1218 | /wrappy/1.0.2: 1219 | resolution: { integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= } 1220 | dev: true 1221 | 1222 | /yallist/4.0.0: 1223 | resolution: 1224 | { 1225 | integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, 1226 | } 1227 | dev: true 1228 | --------------------------------------------------------------------------------